人像抠图 + OpenGL ES 还能这样玩?没想到吧(附带源码)

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

人像留色的原理

现在人像分割技术就像当初的人脸检测算法一样,称为广泛使用的基础算法。

今天本文介绍的人像留色其实就是三年前某 AI 巨头利用 video 分割技术展示的应用场景:人体区域保留彩色,人体区域之外灰度化。所以人像留色的关键技术在于高精度高性能的分割算法。

人像抠图 + OpenGL ES 还能这样玩?没想到吧(附带源码)_第1张图片

首先利用分割算法获取到人像的 mask 图(灰度图),其中人像区域的灰度值大于 0 ,非人像区域的灰度值等于 0 。在 shader 中,首先对 mask 图采样判断采样点是否位于人像区域,然后分别进行不同的处理。

获取人像 mask 图

那么如何获取人像 mask 图?Github 上已经有很多大神开源了相关的分割或者抠图算法。

这里推荐 3 个比较受欢迎的开源项目

Multi-Human-Parsing

你可能感兴趣的:(Android,OpenGLES,3.0,OpenGLES)