基于openCV和Haar特征的区域图像人数检测方法刘子源摘要:选取大量含有人的Haar特征的样本图片,利用openCV和Adaboost算法训练分类器,并通过实验深入分析选取样本的方法,以及对检测效果的影响关键字:Haar特征 openCV Adaboost 分类器 人数检测 模式识别一、模式识别理论基础区域图像人数识别,又即图像人数检测,属于模式识别技术领域,具体实施方法是通过计算机或其他设备来识别某个区域的静态图片或动态视频中的人数特征分析模式对于字符和简单几何形状,或具有一些明显特征的图像(如人脸等)的再认,都可提供简单、快速的方法,所以图像人数检测最好采用该模式本论文所论述使用的特征方法是Haar特征方法对于人数识别来说,该方法更加适用,人数识别模型的建立更方便,检测速度更快,性能更好二、用Haar特征模式进行人数检测的流程首先,需要一个可以检测人体特征的Haar特征分类器通过这个分类器,可以将待识别图像中含有人体特征的部分分离出来每当检测到一个含有人的特征的部分,人数计数器就会自加1,通过这种方法,可实现区域图像的人数检测利用Haar特征分类器做区域图像人数检测的流程如下:YYNN结束移动裁剪窗口加载特征分类器获得待识别图像调整裁剪窗口截取待识别图像截取图像进入分类器是否通过分类器是否检测完毕记录信息开始三、训练Haar特征分类器 1、训练特征分类器的方法 训练分类器需要提供相应的特征正例样本和反例样本。
正例样本要求样本图片中含有所要识别的特征信息,反例样本要求样本图片中不可以含有所要识别的特征信息通过对大量正反样本进行计算,可以最终得出识别分类器2、特征的选取可以表征人的特征有很多,如:眼睛、鼻子、嘴、人脸、头部、上半身、全身等等但是,在实际人数检测过程中,有些特征则不能很好的辅助识别人数比如在某个识别模型中,所获取的图像,并未拍摄到人的正脸,全部是人的侧脸,或后脑部分,则眼睛、鼻子和嘴等特征就完全不起作用所以,选取适当的人的特征进行识别,是至关重要的同时,在不同的场景模式下,选取的特征也会有所不同通过对多个公共场所监控设备的配置,以及相应监控录像的调查,最终选取人的从肩部到头部的上半身像和全身像作为目标特征,进行样本收集、处理,和分类器的训练3、正例样本的选取通过对监控录像进行截图,要求监控摄像头安放于高于正常人身高的50%及以上的位置,并且尽可能位于道路正中央将图片中的人的从肩部到头部的上半身像,以及全身像部分进行图像裁剪,并统一尺寸, 从肩部到头部的上半身像图像尺寸为25x25,全身像尺寸为30x60在裁剪的时候,要求人体的从肩部到头部的上半身像、全身像不允许被遮挡,并且要求图像清晰,噪点较少,有效特征部分占裁剪图像的90%及以上。
裁剪之后,按照上述要求统一尺寸,并利用软件(如Acdsee等)将图像转换为8位灰度BMP格式4、反例样本的选取反例样本,又称为负样本、背景描述文件,样本的采集相对于正样本来说要容易的多要求采集的负样本,绝对不允许含有正例样本的特征在尺寸方面,对负样本没有特殊要求,负样本图像的大小只要不小于正样本就可以,在使用负样本时,openCV会自动从负样本图像中抠出一块和正样本同样大小的区域作为负样本所以,只需将收集到的负样本转换成灰度(8位)bmp格式即可其中,负样本最好含有正样本中的背景部分,以便在训练分类器时,可以更快地将正样本中的非目标特征部分及时地去掉另外,负样本的尺寸越小,openCV训练的时间就越少 5、为每个场景模式训练专属识别分类器从大量的场所进行调查研究发现,不同场所的布局差异较大,所以很难训练出一个通用的人数检测分类器来适应各种不同场景模式这就需要为每个场景模式训练专属识别分类器对于某个固定的场所(如医院、博物馆)来说,其负样本大量采用由该场所的监控摄像机拍摄的无人背景图像,正样本则尽量在该场所采集,并可以融合其他场所采集到的正样本,当然,这些正样本中的背景部分可以加入到负样本集中。
在假设监控环境尽量稳定,比如摄像机角度、位置不变的情况下,仅仅考虑光线改变这种单一变量,可以快速训练出固定场景模式的专属分类器,其识别性能必然会超过通用型分类器6、分类器的训练时间及训练出的分类器大小通过大量训练实验不难发现,不同的正负样本,即便数目、大小、比例相同,其训练时间也不同许多分类器训练失败,绝大多数原因是因为负样本数目过少,导致Adaboost算法不能跳出死循环也有的原因,是因为负样本之间重复部分过多,或者正样本的尺寸过大,导致训练分类器时内存溢出目前还不能寻找出训练样本数目、尺寸、正负样本比例与训练时间的函数关系但是通过大量实验可以证明,在正(负)样本数目一定的情况下,负(正)样本数目越多,训练时间越长并且,正负样本尺寸越大,训练时间也会越长负样本中如果含有所要识别的特征信息,则必然导致分类器训练失败,或者训练出的分类器的识别性能极差所有实验中,样本的尺寸均为正样本从肩部到头部的上半身像图像尺寸为25x25,格式为8位灰度BMP格式负样本尺寸统一为320x240,格式为灰度JPG格式通过实验可以发现,样本图片尺寸越大,训练分类器的时间就越长通过部分训练数据如下:序号正样本数负样本数openCV版本训练总时间得到分类器大小12020openCV 2.22 min 14 s13 KB22030openCV 2.25 min 21 s28 KB350100openCV 2.211 min 42 s23 KB450100openCV 2.218 min 19 s39 KB5100100openCV 2.248 min 17 s52 KB6200200openCV 2.21 h 2 min97 KB75001000openCV 2.29 h 36 min185 KB810001000openCV 2.220 h 51 min201 KB910001000openCV 2.224 h 38 min253 KB该数据由openCV分类器训练控制台程序自动提供。
实验中训练分类器的计算机平台为HP Compaq 6515B KS257PA#AB2,处理器为AMD Turion 64 X2 TL-60 2.0GHz , 内存为DDR II 667 1GB * 2, 操作系统为Windows7 旗舰版 32位,编译环境为Visual Studio 2010四、研究意义鉴于目前国内各公共场所中缺乏人数统计方面的解决方案,为人们的学习工作生活造成诸多不便并且,当发生紧急情况需要疏散人群时,没有人流信息的辅助,会造成人员逃生的盲目性,甚至因为逃生不及时而造成重大的生命财产损失通过开发一套区域图像人数统计系统,力争识别准确,方便快捷,在保证成本低廉的同时,利用网络、公示屏幕等方式向人们提供某一场所的人流信息,并提供监控摄像头发来的图像,不仅方便对该场所进行管理,同时也能在紧急情况发生时,迅速检测发生地点,并指引在场人员迅速逃生,最大程度地降低损失,解决公共安全、管理问题,应急性、实用性极佳利用openCV和Haar特征,可以高效、方便地解决区域图像人数检测问题参考文献[1]Gary Bradski, Adrian Kaehler. 学习openCV[M]. 清华大学出版社, 2009[2] 陈传波,金先级. 数字图像处理[M]. 机械工业出版社, 2006[3] 郑国荣,熊昌镇,张彦. 一种基于OpenCV的嵌入式视频监控方法[C]. 北京:北方工业大学出版社 2010:10-21[4]Paul Viola and Michael J. Jones. Robust Real-Time Face Detection. International Journal of Computer Vision, Vol. 57, pp.137-154, May 2004.[5]Richard O. Duda, Peter E. Hart, David G. Stork. Pattern Classification, 2nd Edition, Nov 2000.[6]Rainer Lienhart and Jochen Maydt. An Extended Set of Haar-like Features for Rapid Object Detection. IEEE ICIP 2002, Vol. 1, pp. 900-903, Sep. 2002.[7]OpenCV Source Code, Intel, 2007.。