`
grunt1223
  • 浏览: 419762 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

黄色-图片识别引擎的一些心得

阅读更多
黄色-图片自动识别是一个涉及到图像处理、模式识别、机器学习、统计概率的综合领域,其关键技术包括:皮肤检测、人脸检测、连通区域分析、贝叶斯分类、支持向量机等等

第一步是皮肤检测。
肤色检测并不像我们想象那样简单,要做到不同光照下的肤色识别,并不是只要指定一个所谓的“肉色”的RGB区域那么容易。一般采用转换到HSV色彩空间+变换的方式获得概率模型。
我在获得概率模型之后,用一个二值的Mask去与原图像做&操作,得到如下的结果:

很直观的一点是,非零区域所占面积大的图片很可能是黄色-图片,反之则是正常图片

第二步是连通区域分析。
大块的部分更有可能是手臂、躯干,而孤立地小块很可能是噪声

第三步就是脸部检测
这里采用的是Haar小波特征


脸部检测的作用,其一在于,肤色检测往往会召回某些脸部面积占据较大区域的照片,而这部分图片可以认为是脸部特写,并不属于黄色-图片,比如:


脸部检测的作用,其二在于,往往可以根据脸部的位置来判断身体的位置,从而部分解决肤色模型的准确率问题。


由于室外光照的原因,第一步肤色检测的效果并不是很好,背景很多地方都被误召回了。但是,我们可以根据脸部的大小,推算出躯干的位置以及大小。


由于程序检测是红色区域为脸部,那么人体的躯干应该是在绿色区域以内,所以我们不必费力去检测绿框以外的部分。而内部的区域检测出的肤色区域很小,因此,这是一张正常图片。

上述三步的阈值如果凭经验而定往往不科学,因此最终的第四步就是训练,比如SVM、决策树或者贝叶斯分类器。

测试环境:visual C++ 2010 & opencv2.2 & libsvm
测试模特:苍井空~
  • 大小: 36.9 KB
  • 大小: 30.4 KB
  • 大小: 25.1 KB
  • 大小: 45.6 KB
  • 大小: 29.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics