动手学深度学习——8. 人物肖像画
动手学深度学习——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. 人物肖像画相关推荐
- 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板!
论 AI 圈活菩萨,非李沐老师莫属. 前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番. 如此 ...
- 《动手学深度学习》中文第二版预览版发布
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨李沐@知乎 来源丨https://zhuanlan.zhihu ...
- 收藏 |《动手学深度学习》中文版PDF
对于初学者来说,直接阅读英文资料,效率慢,估计读着读着都没有信心读下去了.对于初学者,中文资料是再好不过了.今天小编就来安利一本中文资料--中文版本的<动手学深度学习>. 资料领取: 扫码 ...
- 深度学习经典教程:深度学习+动手学深度学习
作者:[美] Ian,Goodfellow(伊恩·古德费洛),[加] Yoshua,Bengio(约书亚·本吉奥)等 出版社:人民邮电出版社 品牌:异步图书 出版时间:2019-06-01 深度学习经 ...
- 资源 | 李沐等人开源中文书《动手学深度学习》预览版上线
来源:机器之心 本文约2000字,建议阅读10分钟. 本文为大家介绍了一本交互式深度学习书籍. 近日,由 Aston Zhang.李沐等人所著图书<动手学深度学习>放出了在线预览版,以供读 ...
- 最新版 | 2020李沐《动手学深度学习》
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 强烈推荐李沐等人的<动手学深度学习>最新版!完整中文版 PDF 终于 在 ...
- 动手学深度学习需要这些数学基础知识
https://www.toutiao.com/a6716993354439066124/ 本附录总结了本书中涉及的有关线性代数.微分和概率的基础知识.为避免赘述本书未涉及的数学背景知识,本节中的少数 ...
- 《动手学深度学习》PyTorch版GitHub资源
之前,偶然间看到过这个PyTorch版<动手学深度学习>,当时留意了一下,后来,着手学习pytorch,发现找不到这个资源了.今天又看到了,赶紧保存下来. <动手学深度学习>P ...
- 用PyTorch实现的李沐《动手学深度学习》,登上GitHub热榜,获得700+星
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 李沐老师的<动手学深度学习>是一本入门深度学习的优秀教材,也是各大在线书店的计算机类畅销书. 作为MXNet的作者之一,李沐老 ...
最新文章
- 解释型和编译型编程语言_解释型和编译型编程语言:有什么区别?
- 支持 Drupal 的 虚拟空间
- Guns根据条件查询数据_入门试炼04
- java log4j logback jcl_进阶之路:Java 日志框架全画传(下)
- 如何有效地刷算法题?
- I.MX6 linux kernel编译错误处理
- rabbits php实现文件下载!
- 1. MFC编程——变量命名规则
- 应用密码学(张仕斌)第四章
- 示波器抓取RC663身份证的天线耦合波形
- stp网页浏览器2.0版本
- 从乘客丢钱包的报警处理过程谈职业化和专业化
- Xcelsius调用Webservice实例
- thinkphp 6.x 利用 easywechat获取微信公众号粉丝信息
- 正则表达式 匹配中文,英文字母和数字及_长度详解
- kafka之broker
- 3DMAX入门教程 | 命令面板 标准基本体的创建和参数
- EBS 清除node信息 fnd_conc_clone.setup_clean
- 加拿大魁北克大学计算机,加拿大魁北克大学.pdf
- HOW2J.CN--JAVA学习笔记