动手学深度学习——8. 人物肖像画

记录一下学习深度学习的一些。本篇记录一下使用 U^2-Net (paper) 生成人物肖像画,还有 APDrawingGAN。

环境:

  • Windows 10
  • 8700K
  • 2070
  • Pytorch 1.7.1

U^2-Net 是一个用于显著目标检测的网络 (Salient Object Detection),至于为什么叫 U^2-Net,看网络结构

checkpoints:

  • GoogleDrive
  • Baidu pan:chgd

肖像生成

使用 U^2-Net 生成肖像很简单,官方提供详细的操作流程,不过有一点小瑕疵的就是,官方在测试的时候别没有禁用梯度,也就是没有在 with torch.no_grad(): 域下进行 forward,占用不少显存,导致一些分辨率稍大的图片,例如 1080P 之类在本机会报错 OOM。同时,demo 的 normalize 与 test 不同,会导致结果稍微差一点,表现明显的就是头发没那么密实,所以我修改了一番。

demo:

input = input/np.max(input)tmpImg[:,:,0] = (input[:,:,2]-0.406)/0.225
tmpImg[:,:,1] = (input[:,:,1]-0.456)/0.224
tmpImg[:,:,2] = (input[:,:,0]-0.485)/0.229

fixed:

img = img / np.max(img)
tmpImg[:, :, 2] = (img[:, :, 0] - 0.406) / 0.225
tmpImg[:, :, 1] = (img[:, :, 1] - 0.456) / 0.224
tmpImg[:, :, 0] = (img[:, :, 2] - 0.485) / 0.229

生成:

python pics_2_portrait.py --ckpt path_to_model --output dir_to_output input_dir

对比结果:

demo test fixed

效果展示:

src dst

可以看到第三张的背景有点瑕疵,可见对于复杂背景的还是难以处理,当然也可能和训练模型的数据有关,作者使用的是 APDrawing dataset,实体较少,就140名不同的艺术家的面部照片,分辨率为 512×512512 \times 512512×512,其余的都是增强得来,即旋转缩放之类。

这个网络不仅可以生成人物的肖像,还可以生成其他生物的,我试了一些狗子的,效果尚可。待有空再试一下用 U^2-Net 训练肖像生成,人像分割和显著物体检测,还有 APDrawingGAN。

视频生成

素描视频生成其实就是将视频的每帧读取出来,按照单张相片进行处理,处理完毕后再写入文件即可。这里的视频读取及写入分别使用了 OpenCV 的 VideoCapture 和 VideoWriter。

python video_2_portrait.py --ckpt path_to_model --output path_to_output_video path_to_video

由于视频素材不好找,而且处理时间过长,没有效果展示了。尝试了一下 16 分钟的 1080P 的 60fps 的视频,处理时间长达8小时。

Code

  • Scripts

动手学深度学习——8. 人物肖像画相关推荐

  1. 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板!

    论 AI 圈活菩萨,非李沐老师莫属. 前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番. 如此 ...

  2. 《动手学深度学习》中文第二版预览版发布

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨李沐@知乎 来源丨https://zhuanlan.zhihu ...

  3. 收藏 |《动手学深度学习》中文版PDF

    对于初学者来说,直接阅读英文资料,效率慢,估计读着读着都没有信心读下去了.对于初学者,中文资料是再好不过了.今天小编就来安利一本中文资料--中文版本的<动手学深度学习>. 资料领取: 扫码 ...

  4. 深度学习经典教程:深度学习+动手学深度学习

    作者:[美] Ian,Goodfellow(伊恩·古德费洛),[加] Yoshua,Bengio(约书亚·本吉奥)等 出版社:人民邮电出版社 品牌:异步图书 出版时间:2019-06-01 深度学习经 ...

  5. 资源 | 李沐等人开源中文书《动手学深度学习》预览版上线

    来源:机器之心 本文约2000字,建议阅读10分钟. 本文为大家介绍了一本交互式深度学习书籍. 近日,由 Aston Zhang.李沐等人所著图书<动手学深度学习>放出了在线预览版,以供读 ...

  6. 最新版 | 2020李沐《动手学深度学习》

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 强烈推荐李沐等人的<动手学深度学习>最新版!完整中文版 PDF 终于 在 ...

  7. 动手学深度学习需要这些数学基础知识

    https://www.toutiao.com/a6716993354439066124/ 本附录总结了本书中涉及的有关线性代数.微分和概率的基础知识.为避免赘述本书未涉及的数学背景知识,本节中的少数 ...

  8. 《动手学深度学习》PyTorch版GitHub资源

    之前,偶然间看到过这个PyTorch版<动手学深度学习>,当时留意了一下,后来,着手学习pytorch,发现找不到这个资源了.今天又看到了,赶紧保存下来. <动手学深度学习>P ...

  9. 用PyTorch实现的李沐《动手学深度学习》,登上GitHub热榜,获得700+星

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 李沐老师的<动手学深度学习>是一本入门深度学习的优秀教材,也是各大在线书店的计算机类畅销书. 作为MXNet的作者之一,李沐老 ...

最新文章

  1. 解释型和编译型编程语言_解释型和编译型编程语言:有什么区别?
  2. 支持 Drupal 的 虚拟空间
  3. Guns根据条件查询数据_入门试炼04
  4. java log4j logback jcl_进阶之路:Java 日志框架全画传(下)
  5. 如何有效地刷算法题?
  6. I.MX6 linux kernel编译错误处理
  7. rabbits php实现文件下载!
  8. 1. MFC编程——变量命名规则
  9. 应用密码学(张仕斌)第四章
  10. 示波器抓取RC663身份证的天线耦合波形
  11. stp网页浏览器2.0版本
  12. 从乘客丢钱包的报警处理过程谈职业化和专业化
  13. Xcelsius调用Webservice实例
  14. thinkphp 6.x 利用 easywechat获取微信公众号粉丝信息
  15. 正则表达式 匹配中文,英文字母和数字及_长度详解
  16. kafka之broker
  17. 3DMAX入门教程 | 命令面板 标准基本体的创建和参数
  18. EBS 清除node信息 fnd_conc_clone.setup_clean
  19. 加拿大魁北克大学计算机,加拿大魁北克大学.pdf
  20. HOW2J.CN--JAVA学习笔记

热门文章

  1. 几何光学学习笔记(16)- 4.5 光楔
  2. Solaris10中如何设置ndd参数
  3. Springer latex期刊模板使用的坑
  4. 面对数字化转型 一个微软软件工程师的进阶之路
  5. 技校计算机学期计划书,技校新学期学习计划书范文
  6. Kafka学习笔记——Kafka原理与使用详解
  7. springboot+layui整合百度地图
  8. 龙岩市物联网应用平台建设方案
  9. MEGA修复了允许解密用户数据的关键漏洞
  10. 将可穿戴设备打造成随身专业心电“监护仪”