概述
在学习OpenCV 应用Haar cascade classifier进行face detection(人脸检测)的时候(https://docs.opencv.org/master/db/d28/tutorial_cascade_classifier.html),感觉其中关于原理的解释非常难以理解,尤其是特征矩形到底是如何应用的,以及级联的概念,查了一些资料,挺有帮助的。
下面的图说明了级联的早期阶段进行一级检测的过程,也就是拿一个个黑白矩形去图片的相应位置进行比对,看看是否符合灰度的分布特征,比如第一幅表明了眼睛区域比眼睛下面的脸颊颜色深,第二幅,表明了右眼比右眼下面的脸颊颜色深,等等。如果这一级的比对结果达不到阈值,就不再进行下一级了。
这是下一级特征对比图,很明显这一级由于比较靠后,所以需要比对的特征矩形也更多
下面这三幅图说明了在一幅图中检测人脸的过程,红框从左往右从上到下扫描,每次移动一个像素,在每个位置用上面两幅图说明的方法判断当前红框中的图片是否是人脸
红框扫描一遍图片后,会标出人脸区域,并且扩大红框的面积再次扫描,因为人脸的大小是不确定的。直到最大面积的红框扫描后,再从所有标出人脸的区域中找出分值最高的,就认为是人脸的位置。
总结一下,红框从图片上挖出一个window,然后用级联分类器判断这个window中是否有人脸,通过不同尺寸的window,实现对于不同大小人脸的检测。
相比template matching,template matching也有上述window扫描的过程,只不过不是用的级联分类器,而是直接进行window中所有像素的对比。
最后
以上就是高高冰棍为你收集整理的关于openCV Haar cascade classifier(Haar级联分类器)进行人脸检测更直观的解释的全部内容,希望文章能够帮你解决关于openCV Haar cascade classifier(Haar级联分类器)进行人脸检测更直观的解释所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复