使用BodyPix和TensorFlow.js实现Color Pop效果
💡
原文中文,约5500字,阅读约需14分钟。
📝
内容提要
谷歌相片运用程序的一个小功用是彩色弹出作用,但只对一些相片运用此作用。作者发现了一个解决方案,使用Tensorflow.js和BodyPix模型手动实现彩色弹出作用。文章介绍了如何加载图画、运用切割和制造布景灰度的过程,并对不同架构和设置进行了测验。最后,作者总结了BodyPix是一个很好的人物切割模型,并提供了源代码和实时工作版本的链接。
🎯
关键要点
- 谷歌相片的彩色弹出作用使主体从背景中突出,但仅对部分照片有效。
- 作者使用Tensorflow.js和BodyPix模型手动实现彩色弹出效果。
- 实现过程包括创建遮罩和将背景灰度化,同时保留主体的色彩。
- BodyPix是一个用于人物切割和姿势检测的机器学习模型,能够快速检测图像中的人。
- 使用HTML Canvas加载图像并操作像素数据是实现效果的关键。
- 加载BodyPix模型时,选择不同的架构(如MobileNet和ResNet)会影响精度和速度。
- 通过segmentPerson()函数进行人物切割,生成切割地图以便后续处理。
- 最终通过像素级操作实现背景灰度化,保留主体色彩,生成彩色弹出效果的图像。
- 测试表明,ResNet在切割精度上优于MobileNet,但速度较慢。
- BodyPix与Tensorflow.js结合使用,能够在浏览器中快速执行切割任务。
🏷️
标签
➡️