李 俊,唐智靈, 廖 斌
(1.廣西警察學院 網(wǎng)絡信息中心,南寧 530023;2.桂林電子科技大學 廣西自動檢測技術與儀器重點實驗室,廣西 桂林 541004)
?
基于機器視覺的遺留物檢測算法
李俊1,唐智靈2, 廖斌2
(1.廣西警察學院 網(wǎng)絡信息中心,南寧530023;2.桂林電子科技大學 廣西自動檢測技術與儀器重點實驗室,廣西 桂林541004)
為解決公共場所安全的自動檢測問題,提出一種基于機器視覺的遺留物檢測算法。該算法采用背景差分法實現(xiàn)對視野外來物的檢測。同時,采用幀間差分法檢測外來物的靜止或移動狀態(tài),并根據(jù)物體靜止停留的時間判斷靜止前景的屬性。實驗結(jié)果表明,該算法可準確檢測出監(jiān)視區(qū)中出現(xiàn)或丟失的物體,對其位置加以標識,并發(fā)出遺留物報警或失物報警信號。
機器視覺;圖像檢測;OpenCV;邊緣匹配
隨著計算機技術的高速發(fā)展,在工業(yè)生產(chǎn)中采用自動化技術極大地提高了勞動生產(chǎn)率。機器視覺是研究計算機模擬生物外顯或宏觀視覺功能的科學技術,采用圖像創(chuàng)建和恢復現(xiàn)實世界模型,最終應用于實際檢測、測量和控制,是一門涉及人工智能、神經(jīng)生物、心理物理、計算機科學、圖像處理及模式識別等多領域的交叉學科[1-2]。如今,以圖像處理理論為基礎,機器視覺技術正廣泛地應用于各個領域。
為解決公共場所安全的自動檢測問題,提出了采用機器視覺技術的遺留物檢測算法。通過對視野外來物的檢測、外來物的運動特性進行實時跟蹤與分析,自動檢測外來物的位置和停留時間,最終形成對于外來物為遺留物的判斷,輸出遺留物報警信號并標出遺留物位置。
遺留物自動檢測算法主要包括對攝像頭視野外來物的檢測、對外來物的運動狀態(tài)的跟蹤、判斷其是否為遺留物等模塊。
1.1攝像頭視野外來物檢測
對視野外來物檢測采用背景差分法[3],具有簡單、快速的優(yōu)點。取背景中的一幅或幾幅圖像的平均灰度值作為背景,把后面的序列圖像當前幀像素和背景圖像像素相減,進行背景消去。若得到像素大于某一閾值,則判斷其為前景像素。其計算式為:
(1)
(2)
其中:d(x,y)為某像素的差分值;Fk為第k幀(當前幀)圖像幀;Bk為第k幀的背景圖像幀;Dk(x,y)為對應像素的背景差分法計算結(jié)果。
1.2外來物狀態(tài)的實時跟蹤分析
采用幀間差分方法[4-5]能夠?qū)\動物體的狀態(tài)進行實時跟蹤分析。幀間差分是檢測圖像序列中相鄰兩幀圖像變化的最簡單方法,主要比較圖像序列中前后兩幀圖像對應像素點灰度值的不同。分析兩幀相減結(jié)果,若灰度值變化小,則認為該點無運動物體經(jīng)過;若灰度值變化大,則認為有物體經(jīng)過。第k幀和第k+1幀的變化用D(x,y)表示為
(3)
其中:D(x,y)為幀間差分閾值化結(jié)果;fk(x,y)和fk+1(x,y)分別對應像素點(x,y)第k幀和第k+1幀的灰度值;T為差分圖像二值化閾值。
1.3前景靜止物體屬性的判斷
當外來物停留在視野內(nèi)超時,則認為該外來物是遺留物,從而發(fā)出“遺留物”報警信號。另一方面,當原本在視野內(nèi)的物體被移動也可產(chǎn)生前景的圖像差分結(jié)果,從而發(fā)出“丟失物”報警信號。
2.1算法結(jié)構(gòu)
圖1為算法結(jié)構(gòu),系統(tǒng)的輸入為攝像頭采集的視頻流數(shù)據(jù),輸出為對檢測到的靜止前景標識后的畫面以及相應屬性的報警信號。算法的核心為靜止前景檢測模塊、遺留物失物判別模塊、報警標識模塊。為了保證系統(tǒng)擁有良好的可移植性,核心處理模塊為獨立于運行平臺的結(jié)構(gòu),而視頻采集模塊和顯示結(jié)果模塊則依賴于軟件工作的環(huán)境平臺。算法的實現(xiàn)采用OpenCV的圖像處理數(shù)據(jù)庫,提供圖像處理的基礎功能[6]。

圖1 算法結(jié)構(gòu)Fig.1 Algorithm structure
2.2視頻采集與圖像的顯示
由于許多圖像處理過程使用OpenCV的功能函數(shù),雖然其視頻捕獲函數(shù)存在一定局限性,但通過OpenCV的視頻捕獲函數(shù)得到的IplImage圖像幀結(jié)構(gòu),能較為方便地給圖像處理函數(shù)使用。因此,采用該方案實現(xiàn)視頻采集。
為了使軟件設計具有更好的人機交互能力,應用程序的顯示方式均建立于GUI圖形界面的基礎上,在MFC程序的窗口界面上繪圖輸出[7]。但由于MFC應用程序窗口一般以DIB位圖的形式顯示圖像,因此,必須解決從IplImage結(jié)構(gòu)到DIB位圖數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換。
2.3算法核心的實現(xiàn)方法
算法核心包括前景檢測、靜止前景檢測、遺留物與失物判別、報警區(qū)域標識。
2.3.1基于前景矩形區(qū)域輪廓邊緣匹配法的靜止前景檢測
在前景幀的基礎上區(qū)分靜止的前景塊和運動的前景塊,即可實現(xiàn)檢測。根據(jù)運動物體幀間差分塊中像素點出現(xiàn)明顯灰度值變化的特點,可通過在幀間差分后的前景區(qū)域塊中,設一些非零點像素占的比例,將靜止的前景加以區(qū)分。如圖2所示,場景的人和書包為前景物。圖2(a)為前一幀圖像;圖2(b)為當前幀圖像;圖2(c)為對應圖2(a)的前景檢測結(jié)果;圖2(d)為圖2(b)的前景檢測結(jié)果,并對白色團塊區(qū)域作矩形標識;圖2(e)為圖2(c)、(d)前后兩幀前景差分的結(jié)果,并標識了圖2(d)中前景團塊對應的矩形。
比較2個前景圖2(c)、(d)可知,書包的位置未變化,而人的位置發(fā)生變化,因此,人是運動的,而書包是靜止的。對圖2(c)、(d)作差分后,書包區(qū)域相減為零,幾乎不存在非零像素點,人的區(qū)域出現(xiàn)運動物體,幀間差分的結(jié)果如圖2(e)所示。從圖2(e)可看出,對應書包的矩形內(nèi)幾乎不存在非零像素點,而其他的矩形都存在大量的非零像素點。因此,以矩形內(nèi)非零像素占矩形區(qū)總像素的比值作為參數(shù)判斷矩形的屬性。當這個比值極小時,可以認為這個矩形是靜止前景矩形。判斷過程的數(shù)學描述為:

圖2 前景差分過程Fig.2 Foreground difference process
假設判斷的矩形ri={(xi,yi),wi,hi},則
其中:ri為被判定的矩形;(xi,yi)為矩形的左上角坐標;wi為矩形寬度;hi為矩形高度;di(x,y)為矩形內(nèi)某像素點的幀間差分絕對值;Di(x,y)為矩形內(nèi)幀間差分二值化的結(jié)果;C為幀間差分閾值后矩形內(nèi)非零的像素;R為幀間差分閾值后的矩形內(nèi)非零像素點矩形像素的比值。當R≤P(P為比例閾值),矩形ri被判定為靜止前景矩形,反之,則判定為運動前景矩形。
通過這種方式,可從運動前景矩形中區(qū)別靜止前景的矩形,且矩形區(qū)域內(nèi)的前景必為靜止前景,所以檢測出靜止前景矩形,即實現(xiàn)了靜止前景的檢測。但如何計算前景中白色團塊區(qū)域的矩形為此方法的關鍵。利用OpenCV的關鍵函數(shù)cvFindContours( ),實現(xiàn)在二值圖像中尋找輪廓,并且返回提取輪廓的數(shù)目。指針first_contour的內(nèi)容由函數(shù)填寫。它包含第一個最外層輪廓的指針,若指針為NULL,則未檢測到輪廓(如全黑圖像)。其他輪廓可從first_contour利用h_next和v_next鏈接訪問。在cvDrawContours的樣例顯示如何使用輪廓檢測連通域。
前景矩形標識過程如圖3所示,圖3(a)為前景檢測的二值圖像結(jié)果。首先通過調(diào)用cvFindContours( )對圖3(a)提取最外層的輪廓(mode=CV_RETR_EXTERNAL提取模式),其返回結(jié)果(每塊白色區(qū)域?qū)粋€輪廓點的集合)存放在指針first_contour的內(nèi)容中;通過調(diào)用cvDrawContours( )函數(shù)可將上一步的結(jié)果(點集)以曲線方法描繪,如圖3(b)所示,白色團塊周圍出現(xiàn)了輪廓點集構(gòu)成的輪廓曲線。在尋找到白色團塊輪廓點集的基礎上,在對應每塊白色區(qū)域的輪廓點集中找到X坐標的最小值、最大值和Y坐標最小值、最大值,即可確定相應的白色區(qū)域矩形的左上角坐標(Xmin,Ymin)和右下角坐標(Xmax,Ymax),從而得到輪廓矩形,如圖3(c)所示。其過程的數(shù)學描述為:

圖3 前景矩形標識過程Fig.3 Identification procedure of foreground rectangle
假設第i個輪廓的點集合{Ai}={(x1,y1),(x2,y2),…,(xk,yk)},則
可求得
雖然以上算法具有可行性,但仍存在對緩慢移動物不敏感的缺點,需要加以改進。再次觀察2幅前景幀圖3(a)、(b),前后兩幀中書包無改變。從邊緣角度出發(fā),圖3(a)、(b)的白色塊都有明顯的外圍邊緣。在圖3(c)的差分結(jié)果中,由于靜止書包前景的前后兩幀完全重合,所以表現(xiàn)為黑色;而人體并不完全重合,可以估計兩幀外圍邊緣。所以,只要物體是移動的,即使移動速度很慢,前后對應兩幀的物體外圍輪廓邊緣總存在錯開,利用這一特點可以解決緩慢移動物體出現(xiàn)誤判的問題。矩形邊緣匹配過程如圖4所示。
在圖4的矩形邊緣匹配過程中,圖4(a)、(b)為對圖3(a)、(b)作邊緣檢測的結(jié)果。圖4(a)、(b)、(c)均標識了對應當前幀前景白色塊的區(qū)域矩形。圖4(c)是圖4(a)、(b)的對應像素點按位邏輯“與”的結(jié)果。從圖4(c)可看出,邏輯“與”后對于書包仍能看出明顯的邊緣,而人體邊緣則顯得很模糊。所以,前后兩幀圖像的書包邊緣是匹配的,而人體邊緣則是不匹配的。對于邊緣匹配的判斷,同樣可以使用非零像素點比值的方法實現(xiàn)。首先分別計算圖4(b)、(c)各

圖4 矩形邊緣匹配過程Fig.4 Rectangle edge matching process
矩形區(qū)的非零像素點;將矩形區(qū)對應在圖4(c)的非零像素除以圖4(b)的非零像素,若比值高于閾值,則認為是匹配的。其數(shù)學描述為:
假設判斷矩形ri={(xi,yi),wi,hi},則
Ek=canny(Fk{Di(x,y)∈ri});
Ek-1=canny(Fk-1{Di(x,y)∈ri});


2.3.2基于靜止前景與背景邊緣匹配法的遺留物和失物判別方法
該方法主要是判斷檢測到的靜止前景的屬性。當檢測到有靜止前景時,靜止前景矩形區(qū)內(nèi)的白色區(qū)域塊可能是遺留物背景差分的結(jié)果,也可能是失物背景差分的結(jié)果。遺留物和失物屬性判斷過程如圖5所示。情況一為圖5(a)、(b)、(c),場景中地上原本沒有書包,當前幀為地上放置了一個書包,背景差分后,可以得到書包形狀的白色團塊,即檢測出的前景屬于遺留物;情況二為圖5(d)、(e)、(f),場景中地上放置有一個書包,當前幀為書包被拿走,背景差分后仍得到書包形狀的白色團塊,這時檢測出的前景為原來書包位置的背景,檢測出這塊背景,則表明書包被拿走了,這個“前景”屬于失物。對比圖5(c)、(f),它們的前景都一樣,所以僅根據(jù)前景白色塊是無法判斷其屬性的,要區(qū)分是“遺留物”還是“失物”,則應該進一步分析處理。

圖5 遺留物和失物屬性判斷過程Fig.5 Attribute judgment process of the remains and the lost object
因為遺留物或失物本身容易被移動,而可移動物體一般為獨立物體,且具有明顯的邊緣。因此,采用相似靜止前景檢測模塊中的邊緣匹配法進行檢測,當檢測到靜止前景,則將這個前景輪廓邊緣與對應的背景邊緣作匹配。若匹配,則說明該物體屬于背景,即檢測的靜止“前景”為失物;否則,為遺留物。
2.3.3背景更新問題
由于前景檢測方法基于背景幀,確定并實現(xiàn)更新這個參考背景顯得尤為重要。實際對某個視場做智能監(jiān)視時,應先按需求設置智能監(jiān)視系統(tǒng)的參數(shù),包括第一幀參考背景。第一幀的參考背景應該確保監(jiān)控視野內(nèi)無運動物體。當設置參考背景后,攝像頭視野內(nèi)的所有物體則被作為背景物,當它們被移動,系統(tǒng)會發(fā)出“丟失物”報警信號。而攝像頭視野外的物體進入視野并停留,系統(tǒng)會發(fā)出“遺留物”報警信號。攝像頭視野外的物體受系統(tǒng)排斥,所以,當檢測到有外來物停留發(fā)出“遺留物”報警信號后,需要更新參考背景,其過程如圖6所示。

圖6 前景檢測效果Fig.6 Foreground detection results
通過OpenCV的IplROI可找出感興趣的區(qū)域。IplROI是一個矩形CvRect結(jié)構(gòu)的指針,一旦ROI被設置,則通常對整個圖像操作的函數(shù),只根據(jù)ROI指定的圖像子區(qū)域進行操作。利用該功能可以對檢測到靜止前景的當前幀設置該靜止前景的矩形為ROI,然后再用OpenCV里的cvCopy函數(shù)將ROI的區(qū)域拷貝到原來的背景幀中,即實現(xiàn)了將靜止前景物更新為背景物。OpenCV函數(shù)包括cvSetImageROI(CurFrame, rect)、cvSetImageROI(BackFrame, rect)、cvCopy(CurFrame, BackFrame)、cvResetImageROI(CurFrame)、cvResetImageROI(BackFrame)。
2.3.4報警區(qū)域標識方法
報警區(qū)域標識使用矩形框圍住應檢測的靜止前景。由于靜止前景檢測模塊選定的方案是基于前景矩形區(qū)域邊緣匹配實現(xiàn)的,當檢測到靜止前景矩形且要發(fā)出報警信號時,可以將矩形繪制到當前幀中。使用OpenCV的cvRectangle( )函數(shù)可簡單地實現(xiàn)這個功能。cvRectangle( )函數(shù)定義為:
void cvRectangle(CvArr* img, CvPoint pt1,
CvPoint pt2,CvScalar color,int thickness=
1,int line_type=8, int shift=0)。
其中:img為圖像;pt1為矩形的一個頂點;pt2為矩形對角線上的另一個頂點;color為線條顏色(RGB)或亮度(灰度圖像);thickness為組成矩形線條的粗細程度;line_type為線條的類型;shift為坐標點的小數(shù)點位數(shù)。
由于監(jiān)視區(qū)域人來人往,經(jīng)常有行人短暫停留的情況,此時不需要發(fā)出報警信號。因此,當檢測到前景遺留物時,不能立即發(fā)出報警信號,而是允許遺留物有一定的合理停留時間,當停留超過此時間后才發(fā)出報警信號。相反,若檢測到前景失物,由于背景內(nèi)物體處于保護狀態(tài),應該立即發(fā)出報警信號,通過人員對失物事件做出處理。這樣,發(fā)出報警信號則應該檢測靜止前景屬性,而發(fā)出對應“遺留物報警”或是“失物報警”的信號,讓人能區(qū)分出報警信號的性質(zhì)。
通過對靜止前景檢測模塊、遺留物失物判別模塊、報警標識模塊各核心模塊的方案論證與選定,整個系統(tǒng)流程為:首先,通過視頻采集塊采集圖像幀,確定第一參考背景幀;接著對當前幀作背景差分,得到前景幀圖像;隨后計算前景區(qū)域塊矩形,判斷矩形內(nèi)前景幀與前一幀的前景是否邊緣匹配,確定靜止的前景區(qū)域矩形;再將得到的靜止前景矩形區(qū)域與參考背景作邊緣匹配,分辨該靜止前景矩形是“遺留物矩形”還是“失物矩形”;最后根據(jù)得到的“遺留物矩形”或

圖7 遺留物檢測算法的實驗結(jié)果Fig.7 Experimental results of the remains detection algorithm
“失物矩形”做出相應的報警和標識。遺留物檢測算法的實驗結(jié)果如圖7所示,自動檢測到的遺留物采用實線框標標識。
為解決公共區(qū)域的安全問題,提出了一種基于機器視覺的遺留物檢測算法。包括對攝像頭視野外來物檢測、對外來物的運動狀態(tài)的跟蹤、是否為遺留物的判斷等算法模塊。為了保證算法對圖像變化的魯棒性,提出對現(xiàn)有算法的改進。算法的實現(xiàn)基于OpenCV函數(shù)庫提供的圖像基本處理方法,使用計算機與攝像頭搭建的實驗平臺對各算法模塊驗證,最終的遺留物檢測算法能夠正確識別“遺留物”與“丟失物”,并且能夠在圖像中標識報警區(qū)域。該算法可應用于智能攝像頭,具有一定的工程實用價值。
[1]賈云得.機器視覺[M].北京:科學出版社,2000:45-50.
[2]KIMI S,HONG S C,YI K M,et al.Intelligent visual surveillance:survey[J].International Journal of Control, Automation and Systems,2010,8(5):926-939.
[3]HU Weiming,TAN Tieniu,WANG Liang,et al.A survey on visual surveillance of object motion and behaviors[J].IEEE Transactionson Systems, Man, and Cybernetics-Part C: Applications and Reviews,2004,34(3):334-352.
[4]屈晶晶,辛云宏.連續(xù)幀間差分與背景差分相融合的運動目標檢測方法[J].光子學報,2014,43(7):213-220.
[5]HARITAOGLU I,HARWOOD D,DAVIS L S.W4: real-time surveillance of people and their activities[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,22(8):809-830.
[6]劉瑞禎,于仕琪.OpenCV教程:基礎篇[M].北京:北京航空航天大學出版社,2007:52-55.
[7]王艷平.Windows程序設計[M].北京:人民郵電出版社,2005:63-68.
編輯:梁王歡
A remains detection algorithm based on machine vision
LI Jun1, TANG Zhiling2, LIAO Bin2
(1.Network Information Center, Guangxi Police College, Nanning 530023, China;2.Guangxi Key Laboratory of Automatic Detection Technology and Instrument,Guilin University of Electronic Technology, Guilin 541004, China)
In order to solve the security problem in public places, a remains detection algorithm based on machine vision is proposed. The background difference method is used to detect new objects in the field of view. At the same time, the inter-frame difference algorithm is adopted to detect the motion status of all new objects,and the properties of the stationary foreground are judged according to the static time. Experimental results show that this algorithm can identify remains and mark their positions accurately.
machine vision; image detection; OpenCV; edge match
2016-02-26
國家自然科學基金(61461013);廣西自動檢測技術與儀器重點實驗室主任基金(YQ15115)
唐智靈(1975-),廣西桂林人,男,副教授,博士,研究方向為信號自動檢測與識別技術。E-mail:tzl888@guet.edu.cn
TP391.4
A
1673-808X(2016)03-0220-06
引文格式: 李俊,唐智靈,廖斌.基于機器視覺的遺留物檢測算法[J].桂林電子科技大學學報,2016,36(3):220-225.