EasyIV



人体运动目标的检测与跟踪技术是计算机视觉的主要研究方向之一,在生物医学,人机交互,虚拟现实,智能安全监控,机器人技术,图像压缩,计算机图形学等领域都有着广泛的应用。 运动目标的检测就是从视频流中去除静止的背景,检测出运动的目标及携带的运动信息,运动目标的检测对跟踪等后期处理非常关键[1]。目前,运动目标的检测方法主要有四种:背景差分法、帧间差分法、光流法、基于特征的方法。 现有的目标跟踪方法主要有两类:一类是基于相关的目标跟踪。这是一种先检测后跟踪的方法,它适用于目标之间相互作用较小和背景较简单的情况 ;另一类是基于特征的目标跟踪。这是一种先跟踪后检测的方法,跟踪的结果需要检测来校正[2]。

人体运动目标的检测与跟踪


4
应用场景 跌倒侦测主要应用于针对老人、小孩的住家看护之类的场景,如:家里的,或者养老院的老人。一旦出现跌倒,必须做到一定的反应。 工作原理 利用背景差检测画面的差异,并检测差异部分是否接近、类似人形。 补充说明 由于本算法对其应用场景有一定的特殊要求,若是放到不太合适的地方容易出现许多误报的状况。 以下是接口说明。

OpenCV温故而知新: 人跌倒侦测



应用场景 人脸侦测的应用非常广泛,但真正意义上来说,检测出人脸在日常生活中的意义并不是那么大(只有在诸如相机之类的应用中才被广泛应用),而从未来来讲,主要的方向将是人脸识别,即通过人脸图像识别出这个人是谁,但是这个难度就有点高了(我有找到过一个算法可以识别人,但准确度相当差),但要是做出来那必然前途无量(Facebook已经实现在这个功能,但目前仍在试用中),试想,现在的搜索都是文字搜索,未来必然将逐步发展到图像搜索,甚至视频搜索,那将会是怎样的一个世界???好了,不啰嗦了,呵呵。 工作原理 利用haar like来实现。利用haarcascade来进行计算检测(程序附带一个haarcascade_frontalface_alt.xml)。 补充说明 本算法在OpenCV的自带示例里有完整代码,你完全可以参考该代码进行学习和修改。 以下是接口说明。

OpenCV温故而知新: 人脸检测


EasyIV - Intruder Detect snapshot 2
应用场景 入侵侦测通常可被广泛用于诸如禁行区域的非法进入,如:私家住宅、限制区域、军事区的非法进入等情景。检测对象为人物。 工作原理 预先设置一条线性区域,然后在该区域内检测移动人物,看是否有人物穿越。 补充说明 本算法容易受到穿越人物大小及穿越角度的影响,人体大小参数可设,但若是设置过大容易检测不到小物体,设置过小,则容易误报。通常需配合警报录像来工作,以实现实时的检测和事后的排查及过滤。注意:镜头视野(焦距)的大小也会影响检测的准确度。 使用者操作: 1.在视窗点选实体围墙的上面两角(顺序:左→右) 2.调整Threshold的大小:如果产生的FG杂讯太多,此时可以试着调高Threshold 3.调整pattern的大小:尽量让蓝色框包含整个人形 影片场景预设: 1.实体围墙,墙高至少要到成年人肩膀以上 2.摄影机的拍摄角度和围墙的法向量夹角不能超过45度以上 3.摄影机架设的高度约2.5公尺至3.5公尺左右 4.调整实体围墙分隔线最好是在画面1/2处左右

OpenCV温故而知新: 入侵侦测


这个异常对象侦测通常可被广泛用于诸如银行ATM机上的非法广告张贴等情景,但是同其他的一些算法一样,容易受到一些客观条件的干扰,如:灯光、光线,物体形状,物体大小等等,我们可以对这些参数做设置和配置,但是在各种不同的情景和场景下,仍然有比较大的误报可能性。 同时考虑到可能的误报,侦测背景也是做成了逐渐腐蚀渗透,即,一旦发生报警,而没有人去处理(可能是误报),就直接将该区域混合到计算背景中,以期在最大程度上降低误报的可能性(如:因白天的光亮度和晚上光亮度不一样而导致的整体误报)。

OpenCV温故而知新: 异常对象侦测



2
应用场景 人流统计主要被广泛应用于一些商场,或者步行街等与人流相关的商业活动场所,这也是以人流来评价一个地方(或者是在一定时间内)的商业价值的一个重要手段。除这个人流统计之外,其实还有一个类似的算法是车流统计,车流统计主要用于高速公路或者马路。但从算法实现、技术角度来讲,这二者其实并没有太大的差别。 补充说明 本算法在OpenCV的自带示例里有完整代码,你完全可以参考该代码进行学习和修改。

OpenCV温故而知新: 人流统计


函式功能规格說明 全域类别说明: class CLostDetect{ private: int         nAlarmFlag         ;                    //警告之flag int         nWidth, nHeight ;                    //Frame之宽高 int         nAlarmTimer              ;                    //警告时间   bool      bEgdeDen           ;                    //edge density的变数 bool      bObjectSetted            ;                    //侦测物是否设定 int         nHdims               ;                    //Histogram维度变数 float      pHranges_arr[2]  ;                    //Histogram范围大小 float      *pHranges           ; CvRect cvRectObjectWinodw       […]

OpenCV温故而知新: 遺失物偵測


2
应用场景 画面遮蔽侦测主要应用于一些强制性开放的视频地点,如:煤矿矿产区,或者是一些特定的娱乐场所,这些视频在一些时候通常是要作为“现场证据”来呈现的,而有人的却可能由于各种原因,不想让视频给录下来…这个模块的目标就是检测出画面遮蔽,并告警通知相关人员去进行必要的处理。 工作原理 先将视频进行灰度处理,然后进行背景、前景差检测画面的差异,并检测差异部分是否是大片连续的,若是则认为画面被遮蔽。 补充说明 由于本算法对其应用场景有一定的特殊要求,若是放到不太合适的地方容易出现许多误报的状况。 以下是接口说明。 函式功能规格说明 全域类别说明 class CMaliciousDetect{ private: bool bAlarmFlag;                                   //发出警告的bool variable int nAlarmTimer;                             //警告时间 int nWidth, nHeight;                       //Frame之宽高 bool IsSetted;                                         //background是否设定变量 IplImage *Frame;                                   //input image IplImage *Gray;                             //把input image转换成gray level IplImage *C_edge;                       // The edge value image IplImage *BG_edge; IplImage *_small; […]

OpenCV温故而知新: 画面遮蔽功能实现



passenger flow statistics
Using haarcascade_frontalface_alt to implement “passenger flow statistics”. The detail flow chart of the major implementation Sample test program:http://rg4.net/p/easyiv/passenger_flow_statistics.7z Sample video: http://rg4.net/p/easyiv/passenger_flow_statistics.avi BTW: This video file is temporary unavailable due to the my blog’s space limitation, I’m looking for a hosting with larger hard disk space and fair price.

Code review: Using Haarcascade to implement “passenger flow statistics”.