人脸检测中误检漏检
来源:互联网 发布:linux mkdir函数 编辑:程序博客网 时间:2024/06/10 09:31
版权声明:作者:迷雾forest(请随意转载,若顾及到博主打字耗费的卡路里,请添加博主小名,权当娱乐)
人脸检测是二分类问题,误检指的是非人脸被认为是人脸,漏检指的是人脸被认为是非人脸,误检和漏检的理论解释有一些,本文尝试从下面这个角度与童鞋们探讨一下误检漏检的原因。
如果训练样本比较少(小样本问题),会造成人脸检测的误检还是漏检?
答案应该是漏检,请看下面这个图,假设特征在二维空间中进行表征(w1,w2),黑色圆圈代表正样本(人脸),黑色叉叉代表负样本(非人脸)。红色圆圈和绿色圆圈代表不同训练样本集合学习到的分类器。这里我们进一步假设红色圆圈是最优分类器,绿色圆圈是当前训练样本集合学习到的分类器。
红色圆圈代表样本多样性最好的正样本集合学习到的分类器,这个集合训练出来的分类器的性能是最好的,然而,由于训练样本个数较少,虽然没有负样本,但多样性不足,只能形成绿色圆圈代表的分类器,从图上看,这种训练样本集学习出来的分类器势必会造成一些正样本被错分为负样本,却不会令负样本被分为正样本,因为小样本得到的分类器始终是正确的,只是性能不足而已,在图上就表现为,绿色圆圈始终会在红色圆圈之内。所以,小样本问题会造成漏检,而不是误检。
然而,为什么在做人脸检测的时候,样本不够多,发现误检漏检都很多?什么情况下会造成人脸检测的误检?
如果正样本训练集合中,存在着负样本(这点非常常见,需要花费较多的人力进行筛选),那么训练出来的分类器,无论如何都会导致一定程度的误检,即便是小样本问题,如果此时训练样本中存在着负样本,那么同样也会导致误检,如下图所示。
所以,在做人脸检测的时候,如果发现结果不是很理想,如果是漏检较多,那就应该尽可能增加人脸样本,如果是误检较多,那么就要检查一下正样本(人脸)训练集合中,是否有一些干扰样本混在其中。同时,也要观察负样本集合,确保其中不要含有任何人脸样本。
再说说另外一种情况,由于人脸存在着姿态,光照等各种复杂因素。导致正样本集合中人脸分布较为松散,这个时候,有必要进一步把人脸进行细分,分开训练。比如说,侧脸的分为一类,正脸的分为一类,低头的分为一类。然后各自训练,得到多个人脸检测器。那么,此时如果类别之间有所交叉,会不会造成漏检或者误检呢?
我认为不会,因为就算是正样本集合之间存在交叉,对于单个正样本集合来说,不论其余样本是否均为负样本,它能够保证的只是判断自己能力范围内的正样本,判断不来的,完全可以由其他正样本子类确定。如上图所示,三个正样本子类存在交叉,只要其合集学习到的分类器在红色圈圈内,变和混合单类没有什么区别。
- 人脸检测中误检漏检
- 对人脸检测中误检漏检的一些理解~
- 小知识点检漏
- 从摄像头中检测人脸
- 从图像中检测人脸
- 视频流中实时人脸检测
- 基于Boost方法的人脸检测(5):在一张图片中检测人脸
- 肤色检测&人脸检测数据集等链接大集合(持续更新中...)
- opencv中检测视频内容是否变化,并且能够进行人脸检测。
- 肤色检测&人脸检测数据集等链接大集合(持续更新中...)
- 人脸检测中现有的人脸数据库
- AdaBoost人脸检测训练算法 (中)
- 从图像中检测人脸,并将人脸提取出来
- 人脸检测分类器haarcasade_frontalface_alt_xml文件中数据含义
- AdaBoost人脸检测训练算法 (中)
- OpenCV中Haar-like特征人脸检测函数介绍
- IOS 中调用opencv进行人脸检测
- 借助摄像头在Python中实现人脸检测
- HttpCallUtil
- 发现一个不错的博客
- 第三章:字符串、向量和数组
- 线段树--区间合并hdu--1540
- JavaScript的执行上下文(与上下文不同,此点常被混淆)
- 人脸检测中误检漏检
- 四种控制事务的方法
- java中类的加载顺序
- 点击增加输入框,可删除,类似投票选项增加
- hive jdbc连接
- x265-2.4版本编译问题 error C2668: “pow”: 对重载函数的调用不明确
- 【Android】CameraUtil
- c++作业五
- android layout 属性大全