李 如,胡競文
(河南科技學院,河南 新鄉 453003)
現代社會對小區和居家安全的關注和要求不斷提高,運動目標的識別與跟蹤技術也已經迅速發展成為現代信息處理領域中一項非常重要的技術,在許多領域都發揮著不可代替的作用。目前,目標檢測與跟蹤算法已經較為成熟,但其在與嵌入式結合方面的應用研究還處于探索階段,很多識別算法還未移植到相關平臺。
由于嵌入式和各類開源硬件具有方便攜帶、占位置小等優勢,故在無法連接計算機的地方,如野外、便利店門口、街口等地,可實時完成對采集數據的處理。因此,根據上述情況設計一個能夠實時調用識別算法,在計算機無法裝配的地方實現對目標檢測與跟蹤系統是本次項目的主要目的。
本系統的實現主要可分為兩個步驟。第一步是攝像頭傳回實時視頻的數據采集和對視頻的逐幀數據處理,完成后即可獲得視頻每一幀中目標中心坐標。繼而在第二步中轉換成電信號傳遞給控制攝像頭位置的舵機以實現攝像頭對目標的跟蹤。
系統中的Raspberry通過排線連接攝像頭模塊(Pi Cam)[1]傳回實時視頻。并使用GitHub上提供的MMAL庫和Raspivid的源代碼,使其可以通過OpenCV進行圖像處理。
程序運行時會默認解析上次運行時錄制的視頻文件,我們可以檢測該視頻中的運動。如果不存在存儲的視頻,程序會轉而調用攝像頭數據。程序中定義了區域圖像的最小像素尺寸,為了防止像素級別的光線變化和塵埃影響,處理圖像數據之前進行降噪,過濾掉對于運動跟蹤無用的數據。
數據處理主要是利用Camshift算法對圖像的每一幀進行處理。具體做法是遍歷攝像頭數據流的同時,程序中的camera.read()將返回一個二元組[2]。首值為grabbed,將用于判斷讀取frame的緩沖是否成功。末值則為frame的值。
程序通過調用OpenCV中的函數對攝像頭中的圖像進行處理,并將運動跟蹤數據傳回。數據在終端進一步轉換為Arduino可以運行的源文件,進而控制舵機使攝像頭進行X軸和Y軸雙方向轉向。
進行運動分析之前,為了提高精確度并降低數據量和方便計算機進行顏色之間的對比處理,故先進行反向投影圖處理。隨后程序將圖像幀進一步轉換為灰階圖像,并調整到合適的大小,去除無用的RGB格式有利于壓縮數據提高運行速度。而使用高斯模糊平滑圖像是對一個11×11的區域的像素強度進行平均能進一步過濾使檢測算法失效的高頻噪音。
1.2.1 獲取反向投影圖
單幀圖像轉換為HSV圖像后,即可對其進行反向投影處理。反向投影的原理是對需要處理圖像的H分量單獨作直方圖,其中,不同H分量值的概率和像素總數各不相同,查找H分量大小的概率,可以到顏色概率查找表查找。再將圖像中像素的值用其顏色出現的概率對替換,就得到了顏色概率分布圖。所得到的輸出的顏色概率分布圖為一個灰度圖像。
其具體步驟是:
(1)對測試圖像中的每個像素( p(i, j) ),獲取色調數據并找到該色調( H ij, S ij )在直方圖中bin的位置。
(2)查詢模型直方圖中對應bin的數值。
(3)將此數值存儲在新的反射投影圖像中。也可以先歸一化直方圖數值0~255,這樣可以直接顯示反射投影圖像。
對每個像素進行(1)~(3)步驟的循環即可完成對一整幀的反投影處理。而在OpenCV中,使用calcBackProject()函數便可進行上述處理。
反向處理后可得到目標圖像的顏色直方圖,以及反向投影,此輸出與輸入圖像同等大小,其上的像素表征一種概率,即全圖上該點是目標圖像一部分的概率。像素點亮度大小直接與該點是否屬于原圖的概率相關[3]。
1.2.2 利用CamShift算法獲得移動軌跡
CamShift算法的程序實現步驟如下:
(1)提取運動物體的輪廓,并從原圖中獲取運動圖像的信息。對這個信息進行反向投影,獲取反向投影圖。根據反向投影圖和輸入的方框進行meanshift迭代,由于它是向重心移動,即向反向投影圖中概率大的地方移動,所以始終會移動到目標上。
(2)運用運動檢測算法將運動的物體與背景分割開來。程序通過兩方相應的像素強度差的絕對值來計算兩幀的不同。如果兩幀的數據差少于運動跟蹤的設定值,將其設置為黑色。若差值大于設定值,則將其設定為白色。
(3)下一幀圖像用上一幀輸出的方框來迭代即可。
完成圖像處理后,視頻中跟蹤目標圈定的中心坐標軌跡將寫入outpos文件,示例如圖1所示。其中命令行中每一行“1”代表上一行坐標可以寫入文件。為了避免靜止不動的鏡頭,沒有識別時的(0,0)坐標均不會寫入outpos文件。
通過Raspberry上Python程序對坐標的處理,即可得到控制方向的4位二進制碼用于控制舵機方向,處理方式如圖2所示。高兩位控制垂直方向,低兩位控制水平方向。1為轉動,0為靜止。使得攝像頭可以跟隨追蹤物體移動。
通過上述過程即可實現在嵌入式等硬件平臺上的實時目標跟蹤與處理。嵌入式與識別算法的結合也是目前探索領域的大勢所趨。采用OpenCV的開源算法也使設計的工作量減少,高效地實現識別跟蹤。系統采用的嵌入式平臺能夠滿足實時性和小型化的要求。可以運用于各種場合,如街口、商店等地。本系統的與日常使用的監控設備相比較為突出的優點是可以根據用戶的需求更改跟蹤目標。

圖1 獲得坐標文件outpos

圖2 舵機轉動控制