摘要:在目標(biāo)識(shí)別技術(shù)發(fā)展越來越迅速的今天,單純的目標(biāo)識(shí)別已經(jīng)滿足不了環(huán)境和需求的變更,人們更希望在一組視頻,或者視頻監(jiān)控中,針對(duì)一特定目標(biāo),用計(jì)算機(jī)持續(xù)的標(biāo)定出選定物體在當(dāng)前視野范圍內(nèi)的位置,進(jìn)而不需要人時(shí)刻關(guān)注這一物體的動(dòng)向。對(duì)此本文實(shí)現(xiàn)了針對(duì)物體的顏色屬性,在顏色空間中對(duì)其進(jìn)行識(shí)別與跟蹤。針對(duì)自主設(shè)定的顏色閾值,自動(dòng)識(shí)別當(dāng)前環(huán)境中最明顯的具有該顏色的物體,并在視頻的每一幀中都能跟蹤到該物體。經(jīng)試驗(yàn),該方法識(shí)別效率高,跟蹤速度快,具有廣闊的應(yīng)用前景。
關(guān)鍵詞:OpenCV;目標(biāo)識(shí)別;物體追蹤;圖像處理
1引言
從計(jì)算機(jī)被研制出現(xiàn)在世界上到現(xiàn)在計(jì)算機(jī)技術(shù)已經(jīng)面向廣大人民的階段,對(duì)物體的識(shí)別與物體的跟蹤是計(jì)算機(jī)視覺研究方面的一個(gè)比較關(guān)鍵的子路線。然而由于對(duì)運(yùn)動(dòng)著的物體的辨識(shí)和跟蹤工程它本身就很具有復(fù)雜性,所以識(shí)別與跟蹤這個(gè)方向到現(xiàn)在還是有很多的挑戰(zhàn)。最常見的智能監(jiān)控系統(tǒng),像一些人流量極大的場(chǎng)所,要確保人身財(cái)產(chǎn)安全,通常就會(huì)設(shè)置識(shí)別與跟蹤的監(jiān)控設(shè)備。通過算法由程序?qū)梢赡繕?biāo)進(jìn)行定位并分析其行為,倘若真正發(fā)生異常時(shí),監(jiān)控系統(tǒng)會(huì)智能發(fā)出警報(bào),以達(dá)到提醒人去處理的目的,將人的生理反映會(huì)隨時(shí)間減弱的問題最小化。這項(xiàng)技術(shù),特別是在軍事上的一些武器導(dǎo)航、無人機(jī)觀測(cè),軍事偵察具有重大意義[1]。
2系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
(1)顏色識(shí)別。本模塊主要實(shí)現(xiàn)的是將所需識(shí)別的目標(biāo)顏色在一幀畫面中分離出來,OpenCV中的inRange()函數(shù)它在這個(gè)部分的作用將視頻中的每一幀進(jìn)行二值化處理,并且通過給定閾值將顏色過濾出來。該函數(shù)方法可以對(duì)多通道圖像進(jìn)行處理。方法所需數(shù)據(jù)的意義是判斷檢測(cè)目標(biāo)數(shù)組中的元素值是不是和另外設(shè)置的兩個(gè)數(shù)組的元素值之間值相匹配的。這部分的數(shù)組存儲(chǔ)的本質(zhì)上也就是Mat矩陣或者向量,該inRange函數(shù)會(huì)在輸出圖像中得到被其二值化后的二值圖像[3]。
簡單的對(duì)這個(gè)過濾顏色解釋,這個(gè)方法是在判斷Mat類型的源圖像src中每一個(gè)像素的每一個(gè)通道的值是否在[lowerb,upperb]之間。其中l(wèi)owerb表示最小像素值,upperb最大像素值。在程序中Scalar(lowerb,lowerg,lowerr)和Scalar(upperb,upperg,upperr)。其中l(wèi)owerb表示藍(lán)色像素最小值,lowerg表示綠色像素最小值,lowerr紅色像素最小值。upperb表示藍(lán)色像素最大值,upperg綠色像素最大值,upperr紅色像素最大值這里要注意集合的開閉。如果結(jié)果為是開區(qū)間,那么在Mat類型的結(jié)果圖像dst相應(yīng)像素位置填上255,如果結(jié)果不是閉而是開,則是0[2]。
針對(duì)單通道圖像來講:dst(I) = lowerb(I)0 ≤ src(I)0 < upperb(I)0,如果這是一幅灰度圖像(圖像為純灰色,可以是有彩色圖像轉(zhuǎn)化過來的,每個(gè)像素只有一個(gè)通道)的某個(gè)像素的灰度值在我們?cè)O(shè)定好的的高和低閾值范圍之見,則在Mat類型的dst圖像中使得該像素值為255,否則使其設(shè)置成為0,這樣就可以將一幅真實(shí)的畫面轉(zhuǎn)化成為了一幅二值化圖像并輸出在顯示屏上。
針對(duì)三通道圖像來講:dst(I) = lowerb(I)0 ≤ src(I)0 < upperb(I)0 ∧ lowerb(I)1 ≤ src(I)1 < upperb(I)1 ∧lowerb(I)2 ≤ src(I)2 < upperb(I)2,也就是說,三通道圖像要求相對(duì)較高,要求的每個(gè)通道的像素值都必須要在對(duì)性的合適闕值內(nèi),不可越界,否則影響結(jié)果。
若這里單純使用inRange()函數(shù)提取到的目標(biāo)物體顏色二值圖像有一定的誤差,還有一定的噪聲在其中,所以接下來我們還要有后續(xù)操作,使分離的結(jié)果更加精確。
(2)形態(tài)學(xué)開操作。即是兩種圖像處理的基本操作(膨脹和腐蝕)在一起通過操作順序的先后,對(duì)圖像操作的結(jié)果。開操作則先是對(duì)圖片進(jìn)行腐蝕操作,操作完畢后,再進(jìn)行一次圖片的膨脹操作的過程。開操作可以使提取到的目標(biāo)顏色物體的二值圖像輪廓變得平滑,使狹窄的間斷斷開和將畫面中細(xì)小的突出物消除。這里的孔洞指的是黑色的部分,突出物和小物體指的是白色的部分[4]。
觀察顏色過濾提取結(jié)果可以得知,單純地應(yīng)用inRange函數(shù)我們可以成功的找到我們想要的目標(biāo)顏色。但是仔細(xì)觀察二值圖像后我們發(fā)現(xiàn),二值圖像中有一些誤差,也就是我們所說的噪點(diǎn)。
(3)尋找輪廓。在完成上述幾個(gè)模塊對(duì)目標(biāo)顏色物體的二值圖像進(jìn)行的一系列提取及增強(qiáng)準(zhǔn)確度和清晰度的操作后,我們可以從視頻畫面中清晰的得到運(yùn)動(dòng)目標(biāo)的二值圖像,這些操作為本模塊的輪廓發(fā)現(xiàn)提供了鋪墊。
輪廓發(fā)現(xiàn)(find contour)操作的前提和基礎(chǔ)就是基于圖像邊緣提取下的,來進(jìn)行尋找對(duì)象物體輪廓的方法。所以邊緣提取的闕值會(huì)影響最終的發(fā)現(xiàn)結(jié)果[5]。
(4)外接矩形獲取。完成了上述的輪廓發(fā)現(xiàn)的步驟之后需要根據(jù)查找到的輪廓獲取該物體輪廓的外界矩形。通俗的來講就是,就是在查找輪廓完畢之后,獲取它的最大外接矩形并繪制,也就是標(biāo)記物體在圖像中的位置。
最終的實(shí)現(xiàn)結(jié)果如下:
3結(jié)論
基于顏色空間的識(shí)別和跟蹤的研究背景,對(duì)于理論基礎(chǔ)和現(xiàn)有的技術(shù)支持,明確了需求和全面且詳細(xì)的設(shè)計(jì)與實(shí)現(xiàn)過程。本系統(tǒng)實(shí)現(xiàn)了通過攝像頭獲取實(shí)時(shí)視頻畫面,通過計(jì)算機(jī)視覺和圖像處理的方法,完成了在已知當(dāng)前復(fù)雜環(huán)境背景下,準(zhǔn)確提取出計(jì)劃內(nèi)的目標(biāo)顏色。而且可以從程序編寫和系統(tǒng)設(shè)計(jì)的過程中找出提取顏色造成誤差問題所在,然后利用現(xiàn)有的圖像處理手段進(jìn)行多次的操作,使圖像處理結(jié)果越來越準(zhǔn)確。最后完成了對(duì)二值圖像的輪廓查找,并完成最終的理想效果,實(shí)現(xiàn)了對(duì)目標(biāo)物體顏色的實(shí)時(shí)跟蹤。
參考文獻(xiàn)
[1]望熙榮、望熙貴.OpenCV和Visual Studio圖像識(shí)別應(yīng)用開發(fā).人民郵電出版社.2017.10
[2]毛星云.OpenCV 3編程入門.電子工業(yè)出版社.2015.2
[3]黃韶杰.基于聚類的煤巖分界圖像識(shí)別技術(shù)研究.中國礦業(yè)大學(xué)博士論文.2015:24-25
[4]胡學(xué)龍.數(shù)字圖像處理(第3版).電子工業(yè)出版社.2014.8
[5]張亮.基于OPENCV的輪廓檢測(cè).西安工業(yè)大學(xué)課程論文.2015:30-35
作者簡介:姓名 李彬(1996—),男,漢族,遼寧沈陽人,2019級(jí)在讀研究生,單位:沈陽理工大學(xué),研究方向:圖形圖像處理技術(shù)。