肤色检测(分割)via Random Forest

偶然上 UCI Machine Learning Repository , 发现新增加了一批新的数据集,包括一个 "Skin Segmentation" 样本集:

样本数:245057 (其中有50,000+正样本,剩余负样本)

特征: B G R(像素颜色)

类别: 2类(废话,肤色/非肤色)

页面上对这个数据库的简要介绍:

"The Skin Segmentation dataset is constructed over B, G, R color space. Skin and Nonskin dataset is generated using skin textures from face images ofdiversity of age, gender, and race people"(很直白,不翻译了吧)

肤色检测一直是一个比较实用,实时性也很强的方法。早前也有以肤色为基础做人脸检测的[1]。另外,肤色检测也可以用来做人脸检测的验证等。

之前,也一直想要实现一个肤色检测,用过最简单的矩形和椭圆区域在颜色空间中标记肤色的方法(中文文献,具体忘记了)。但是,如果要自己收集数据集的话还是比较繁琐,所以后来也不了了之了。正好有了上面这个"Skin Segmentation" 样本集,wow~~,然后用随机森林训练了一个肤色检测器,参数如下:

(1)集成随机树15棵

(2)节点分裂用轴平行的简单弱分类器

(3)每个节点随机选择特征空间一维

训练与测试:

其实应该将RGB转换到其他颜色空间的,把色调和亮度分离。但是这里又偷懒了,直接RGB作训练和分类。

在全部245057个样本中随机5500个样本(正负约接近),训练/测试为2475/3025(准备数据集满足分类器的输入也是我最不喜欢的繁琐的事,这里或许使用的样本有点少了)。上述随机森林大概花了600ms训练完成,在测试集上分类准确率>99%(重复实验过N次,大概在99.2%左右)。对一幅516*345的图像需要2s时间(3G RAM/1.83GHz laptop),平均到每个像素点为0.01123ms(这种统计数据有意义吗?!)

下面是一些效果图:

先拿我刺的(sorry,是你们皇马的)魔笛来试试:

白鹿巷的魔笛和帕克(这图截的太不专业了!)

然后是那时还在里昂的皮少

在罗马卖萌的皮皮

再来四张斯内德吧,今天谈判破裂(预想中的),你的下一站是何方?

然后,今天科比成为最年轻的Mr. 30K!恭喜!希望湖人走上正轨吧!

原来对黑人的肤色效果欠佳,这也是在情理之中。

绝杀之后的老男孩

最后来一张热刺的全家福吧,当然是在老雷时代

最后,想说,不要指望肤色可以解决很高难的问题,肤色检测大多数应该只是一个辅助手段,如[4]用在了人体部件的跟踪上。

关于用RF做肤色检测的论文可以参考[2]和[3],其中[3]对各种分类器和各种颜色空间做了大量实验。

纯属业余兴趣,想法很naive,欢迎拍砖。

[1] Rein-Lien Hsu, Mohamed Abdel-Mottaleb and Anil K. Jain. Face Detection in Color Images.TPAMI, 24(5), 2002.

[2] Rehanullah Khan, Allan Hanbury, Julian Stoettinger. Skin Detection: A Random Forest Approach.ICIP, 2010.

[3] Rehanullah Khan, Allan Hanbury, Julian Stöttinger, Abdul Bais. Color based skin classification. Pattern Recognition Letters, 33(2), 2012.

[4] Haris Baltzakis, Maria Pateraki, Panos Trahanias. Visual Tracking of Hands, Faces and Facial Features of Multiple Persons. Machine Vision and Applications, 2012.

--------------------------------------------------我不是分类面,下面也没有演职人员表了----------------------------------------------------

最后,祝魔笛和皮皮在各自的球队好好表现,稳扎稳打。不过,说实话还是喜欢冬季转会时皮皮来我们热刺的。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值