EasyIV

Image processing (based on OpenCV) related learning notes, events, and release notes. I’m also planning write my post-graduate thesis paper base on this project, so, it’ll be one of the major research targets for me in the coming years. If you happen to be intrested in this field, let’s be friends, XDXD. All my research results will be posted here: 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”.