效果预览:http://map.gnnu.work/rm21/qy/profilepicture

使用到:
1.pytorch 加载分割模型
2.PIL 更加方便地操作图像
2.U2-net 网络将人像的轮廓从图像中分割出来

具体实现步骤如下:

1.原始图

原始图

2.从原始图片获得Alpha图

# 从原始图片获得Alpha图  org:原始图的路径 返回得到的Alpha图
def seg_trimap(org):image = Image.open(org)img = np.array(image)net = pre_net()inputs_test = pre_test_data(img)d1, d2, d3, d4, d5, d6, d7 = net(inputs_test)# normalizationpred = d1[:, 0, :, :]pred = normPRED(pred)# 将数据转换成图片im = get_im(pred)# im.save(alpha)sp = image.size# 根据原始图片调整尺寸imo = im.resize((sp[0], sp[1]), resample=Image.BILINEAR)imo.save("alpha_resize111.jpg")return imoreturn imo

Alpha图

3.将Alpha图转成trimap图

def to_standard_trimap(alpha):#  Alpha图生成 trimap# image = Image.open(alpha)image = alpha;# image = image.convert("P")# image_file.save('resize_trimap.png')sp = image.sizewidth = sp[0]height = sp[1]for yh in range(height):for xw in range(width):dot = (xw, yh)color_d_arr = image.getpixel(dot)color_d=color_d_arr[0]if 0 < color_d <= 60:image.putpixel(dot, (0,0,0))if 60 < color_d <= 200:image.putpixel(dot, (128,128,128))if 200 < color_d <= 255:image.putpixel(dot, (255,255,255))image.save("trimap1111.jpg")return image

trimap图

4.通过原始图和trimap图结合背景色生成最终结果

def to_background(org, resize_trimap, id_image, color):"""org:原始图片resize_trimap:trimapid_image:新图片color: 背景颜色"""scale = 1.0image = load_image(org, "RGB", scale, "box")trimap = load_image(resize_trimap, "GRAY", scale, "nearest")im = Image.open(org)# estimate alpha from image and trimaptry:alpha = estimate_alpha_cf(image, trimap)except:print("异常")print(org)a = "-1"return anew_background = Image.new('RGB', im.size, color_dict[color])new_background.save("bj.png")# load new backgroundnew_background = load_image("bj.png", "RGB", scale, "box")# estimate foreground from image and alphaforeground, background = estimate_foreground_ml(image, alpha, return_background=True)# blend foreground with background and alphanew_image = blend(foreground, new_background, alpha)save_image(id_image, new_image)return id_image

结果图

至此,生成纯色证件照的功能已实现。
接下来使用Vue写程序界面以提供用户交互,由于证件照有特定的尺寸,此处借助vue-croppe实现让用户在前端将纯色证件照剪切成一寸或者两寸。

代码较多不进行展示,有需要跳转到文末获取源代码。

界面实现效果如下:

源码如下:
后端:https://github.com/QiuYang01/profilepicture-server
前端:https://github.com/QiuYang01/profilepicture-client

使用U2-Net深层网络实现——证件照生成程序相关推荐

  1. 爬虫分类——通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫

    爬虫分类 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫.聚焦网络爬虫.增量式网络爬虫.深层网络爬虫. 实际的网络爬虫系统通常是几种爬虫技术相结合实现的 通用网络爬虫 通用网络 ...

  2. 4.2 深层网络中的前向传播-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.1 深层神经网络 回到目录 4.3 核对矩阵的维数 深层网络中的前向传播 (Forward Propagation in a Deep Network) 跟往常一样,我们 ...

  3. 从自我学习到深层网络

     从自我学习到深层网络 From Ufldl Jump to: navigation, search 在前一节中,我们利用自编码器来学习输入至 softmax 或 logistic 回归分类器的特 ...

  4. Stanford UFLDL教程 从自我学习到深层网络

    从自我学习到深层网络 在前一节中,我们利用自编码器来学习输入至 softmax 或 logistic 回归分类器的特征.这些特征仅利用未标注数据学习获得.在本节中,我们描述如何利用已标注数据进行微调, ...

  5. TFboys:使用Tensorflow搭建深层网络分类器

    前言 根据官方文档整理而来的,主要是对Iris数据集进行分类.使用tf.contrib.learn.tf.contrib.learn快速搭建一个深层网络分类器, 步骤 导入csv数据 搭建网络分类器 ...

  6. Deep Web(深层网络or深度网络)

    深层网络:揭示网络中隐藏的价值   World Wide Web(简称WWW,或Web网)自20世纪90年代发明以来就一直呈现蓬勃发展之势,到今天为止其蕴含着海量的丰富资源,包罗万象,是人类一笔宝贵的 ...

  7. 深度学习入门笔记(八):深层网络的原理

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  8. 茹立云:深层网络搜索核心技术研讨

    [讲师]茹立云,搜索事业部总经理 [内容简介] 自google在90年代末推出搜索引擎引来,搜索引擎的技术有了长足的进步,尤其在搜索结果的及时性.精准性等方面有了很大突破.但是这十多年来,搜索引擎一直 ...

  9. (未完)论文笔记——深层网络的公理化属性(Axiomatic Attribution for Deep Networks)

    论文--Axiomatic Attribution for Deep Networks 1. 介绍 2. 基本公理 2.1 公理:敏感性(a) 2.2 公理:实现不变性 Axiomatic Attri ...

最新文章

  1. 【译】Go语言声明语法
  2. 测试ASP_NET 生命周期
  3. IMOAutocompletionViewController
  4. Serv-u 10.3 的图文安装教程及使用方法
  5. Linux内核--内核地址空间分布和进程地址空间
  6. CORDIC算法VHDL设计实现及仿真
  7. 学习ASP.NET Core,你必须知道“中间件”是什么?中间件如何注册?请求处理管道是如何通过中间件构建的?
  8. Flask-WTF 之防止CSRF***学习记录
  9. 想要实现自动驾驶?高精度地图不可或缺
  10. 帮内推 | 免费送50个推荐算法工程师的高薪offer!
  11. Ubuntu | 安装Pcan驱动和pcanview
  12. Hibernate主键生成策略
  13. 微信公众号-网页内实现微信支付
  14. 世界需要简化第四篇:从地面发射人造卫星或战术导弹,如何控制其运行轨道?——算法经高度抽象简化,所有下标经仔细核对
  15. Oracle导出FSG,SQL语句 - FSG行集、列集定义导出
  16. cai鸡——处女作博客“横空出世”
  17. 股票查询接口常见的证券编码规则是怎样的?
  18. stm32f103电子钟心得体会_STM32时钟小结
  19. 2021-12-29 迈向程序猿的第五十七步
  20. 华为云-容器引擎CCE-部署Nginx应用

热门文章

  1. PMP对职业发展帮助大吗?
  2. 5G时代的智慧物流~圆通副总裁相峰
  3. 四行代码,Python完成美图秀秀
  4. CentOS:超过2TB硬盘挂载
  5. 创客集结号:3D打印技术的三大缺点及解决方法
  6. paip.enhes efis 自动获取文件的中文编码
  7. 51信用卡 限流 实践
  8. 深入理解Wi-Fi P2P
  9. JAVASCRIPT、JSP、JS有什么区别和联系
  10. tomcat高级操作