使用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结合使用,能够在浏览器中快速执行切割任务。
🏷️

标签

➡️

继续阅读