OpenGL ES 利用抠图算法实现人像留色


人像留色的原理
现在人像分割技术就像当初的人脸检测算法一样,称为广泛使用的基础算法。
今天本文介绍的人像留色其实就是三年前某 AI 巨头利用 video 分割技术展示的应用场景:人体区域保留彩色,人体区域之外灰度化。所以人像留色的关键技术在于高精度高性能的分割算法。

首先利用分割算法获取到人像的 mask 图(灰度图),其中人像区域的灰度值大于 0 ,非人像区域的灰度值等于 0 。在 shader 中,首先对 mask 图采样判断采样点是否位于人像区域,然后分别进行不同的处理。
获取人像 mask 图
那么如何获取人像 mask 图?Github 上已经有很多大神开源了相关的分割或者抠图算法。
这里推荐 3 个比较受欢迎的开源项目
该博客介绍了如何使用OpenGL ES结合人像分割算法,实现人像留色效果。通过Multi-Human-Parsing、BackgroundMattingV2和TensorFlow Lite等开源项目获取人像mask图,然后在shader中处理,实现人像区域保留彩色,背景灰度化。文章还提供了一个简单的shader实现示例,并分享了完整的项目源码。
订阅专栏 解锁全文
900

被折叠的 条评论
为什么被折叠?



