700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python一键替换证件照背景 还用去照相馆?

Python一键替换证件照背景 还用去照相馆?

时间:2022-06-25 02:10:53

相关推荐

Python一键替换证件照背景 还用去照相馆?

哈喽,大家好。今天继续给大家分享实战项目。

用深度学习算法替换证件照背景,带 UI 界面那种,从此可以跟照相馆说拜拜了。

下面我们来学习一下该项目,文末有源代码和开源地址。

没有啰嗦的文字,没有多余的代码,只有通俗的讲解。

1. 思路

先来看一下最终的效果。

效果

左边是原图片,右边是替换背景后的图片,支持替换任意颜色背景。

项目的实现思路很简单:

用户上传的原图后,使用已经训练好的人像分割模型将人像切割出来

将切割后的图片展示在新背景上

2. 模型

图像分割是要将图片根据内容分割成不同的块,如下图所示:

相比图像分类和检测,图像分割是一项更精细的工作,因为需要对每个像素点分类,物体的轮廓是精准勾勒的。

本项目的图像(人像)分割采用飞桨(PaddlePaddle)提供的deeplabv3p_xception65_humanseg模型。该模型基于DeepLabv3+,用百度自建数据集进行训练,可用于人像分割,支持任意大小的图片输入。

DeepLabv3+是 Google DeepLab语义分割系列网络的最新作,这里说的语义分割是图像分割中的一类。

DeepLabv3+的网络结构如下:

DeepLabv3+

DeepLabv3+通过encoder-decoder进行多尺度信息的融合,encoder是原来的DeepLabv3,但DCNN采用了改进的Xception,提高了语义分割的健壮性和运行速率。

decoderDeepLabv3+相比DeepLabv3新增的,其将底层特征与高层特征进一步融合,提升分割边界准确度。

下面是人像分割的核心代码:

from paddlehub import Module# 加载训练好的人像分割模型module = Module(directory="module/deeplabv3p_xception65_humanseg")# 进行分割res = module.segmentation(paths=[filename], output_dir='../cache', visualization=True)

filename是原图片的路径。

3. UI

UI 界面使用ttkbootstrap开发,它是TKinter的美化库,使用方法跟TKinter一样。

这里介绍下 UI 界面的核心代码。

首先需要一个按钮来选择原图片

import ttkbootstrap as ttkttk.Button(self.leftFrame, text='选择图片', command=self.openFile)

点击选择图片按钮后,会调用openFile函数对原图片进行人像分割,分割出来的人像存储在临时文件中。

还需要一个按钮展示转换背景后的图片

ttk.Button(self.leftFrame, text='转换底色', command=self.render)

render函数会展示转换后的图片,核心代码如下:

def render(self):# 获取新背景色colorHEX = self.color.get()# 获取分割后的人像图片base_img = Image.open(self.outputdir)# 展示新背景background = Image.new('RGBA', base_img.size, colorHEX)x, y = base_img.size# 将分割后的人像贴在新背景上background.paste(base_img, (0, 0, x, y), base_img)self.image_final = background

self.image_final是转换背景后的图片,调整大小后便可以在 UI 上展示。

4. 运行

到这里,整个项目已经介绍完了,最后简单说下拿到源码后如何运行该项目。

首先,安装飞桨(PaddlePaddle)

pip install --upgrade paddlepaddle -i /pypi/simplepip install --upgrade paddlehub -i /pypi/simple

然后,安装ttkbootstrap

pip install ttkbootstrap

最后,运行Circulation.py文件即可。

如果本文对你有帮助,就点个在看鼓励下吧。

代码获取

源代码在下方公众号获取。

推荐文章

有人把吴恩达老师的机器学习和深度学习做成了中文版

上瘾了,最近又给公司撸了一个可视化大屏(附源码)

如此优雅,4款 Python 自动数据分析神器真香啊

梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学

年终汇总:20份可视化大屏模板,直接套用真香(文末附源码)

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

目前开通了面试技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

方式①、发送如下图片至微信,长按识别,后台回复:加群;方式②、添加微信号:dkl88191,备注:来自CSDN方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。