【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照

实现的功能

利用torchvision的语义分割模型deeplab3+,进行转换,然后部署到安卓上,实现二寸证件照的生成。
详细功能如下:
1. 从相册中选择一张 相片  
2. 利用语义分割模型实现相片的分割,并且背景换成证件照的蓝色
3. 生成的证件照,分割的边缘带有一点之前的背景;进行再处理让分割的相片和蓝色背景更好的融合

在这里插入图片描述
4. 对生成的证件照进行保存

总体效果如下(相片为默认的相片,用户可以从相册中选择要处理的相片):

【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照_第1张图片

具体实现

1.生成可以在安卓上运行的模型
把转换生成的.pt模型拷贝到安卓项目的assets文件夹
2. 在安卓项目的app的build.gradle中增加

    implementation 'org.pytorch:pytorch_android:1.7.1'
    implementation 'org.pytorch:pytorch_android_torchvision:1.7.0'
  1. 完成从相册选择相片的功能
    【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照_第2张图片

  2. 在代码中load此模型,使用此模型
    得到分割之后的人像,并且把背景更换成证件照的蓝色
    即点击生成二寸证件照的button,生成效果如下:
    【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照_第3张图片
    此时生成的相片:人物边缘带有一点原来的背景,需要进一步处理,让人物边缘和蓝色背景更好的融合。此外,相片的底部有一点多余的蓝色,需要做裁剪处理。

  3. 点击生成相片再处理,对生成的二寸证件照进一步处理,效果如下:
    【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照_第4张图片

  4. 可以将生成的相片保存下来
    此外: 二寸相片的像素是:274*379
    我们以二寸相片像素大小来展示一下处理前后效果
    A: 最终生成的二寸证件照:
    【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照_第5张图片

B:语义分割没有再处理的效果图:
【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照_第6张图片
C:没有进行任何处理,从相册选择相片之后的效果图:
【项目实战:证件照】语义分割deeplab3+(pytorch/python)部署安卓实现证件照_第7张图片

写在最后的话

今天就写到这里啦~~有做过类似的或者准备做的童鞋,欢迎相互交流学习~~

你可能感兴趣的:(人工智能模型部署安卓,python,android,studio,深度学习,java,人工智能)