检测视频流中的皮肤

Detect skin in video stream

我需要对视频输入中的脸部皮肤进行模糊处理。使用内置函数我可以找到人脸。此外,我使用 dlib 找到面部标志(我需要它用于另一个目的)。检测皮肤的最快方法是什么,如果无论如何,我检测面部和面部标志?是否有任何算法使用面部位置(或面部标志)来寻找皮肤?

鉴于头发和面部毛发可以在 dlib 地标包围的区域内,我建议:

  1. 提取dlib点包围的多边形(1, 29, 17.16, 15, 31, 3,2 ,1*)

  2. 从左右两侧切掉15%的宽度

  3. 将像素转换为 HSV 并估计范围

  4. 分析 dlib 检测到的区域中的像素,以及眉毛上方和下巴周围(如果需要)以提取所有皮肤区域。

我在几个应用程序中使用过它,它通常有效。