python+opencv实现人头检测
python+opencv实现人头检测
前段时间琢磨了下人头检测这个功能,现在有了初步的认知和体会,下面开始讲下我在实现人头检测过程中遇到的坑和解决方法。
环境搭建:pycharm,python2.7,opencv2.7,numpy。
这些个环境都是前期准备的,安装和配置都挺方便的,不得不说这里就是python的各种功能的库是真的多,前辈们真是值得膜拜。这里给出一个我下载那些库的网站,python库下载
下载了需要的库用pip安装就行。
进入正题,因为opencv只有现成的人脸识别特征分类器,但是没有人头识别的,所以需要自己训练一个。这里我采用的是HAAR特征训练分类器。看了很多这方面的博文,大多数用的HAAR特征,所以也就开始就打定主意使用这个特征来训练,后面也简单了解了下HAAR特征和LBP特征,HAAR特征是将图像中相同像素内的白色部分减去黑色部分得到该区域的HAAR特征值,反应了图像的灰度变换情况;LBP特征则是将每个像素周围看成一个3*3的正方形,将中心像素的值作为阀值,周围8个点像素点与中心点做比较,若像素大于中心点则与中心像素作比较的点的LBP值置为1,反之为0。这样就得到一个中心的LBP值,反应区域的纹理信息。得到特征值后,用特征值作为分类依据训练分类器的事情就是那些个算法做的事情了,这里我就不发表拙见了。看看大牛写的一篇文章吧,涉及到很多数学内容,细细看还是会很有理解的。图像特征提取。
接下来进行具体训练过程:
1.创建一个训练所用的文件夹,目录结构如下:<