背景
在工業(yè)應(yīng)用中,使用面陣相機(jī)識(shí)別傳送帶上的物體,當(dāng)要識(shí)別的目標(biāo)的最小包圍矩形(不是最小包圍旋轉(zhuǎn)矩形)小于相機(jī)視野時(shí),可以進(jìn)行后續(xù)處理。但是當(dāng)要識(shí)別的目標(biāo)很大,比如超長(zhǎng)的物體,如果還使用面陣相機(jī),有兩種辦法,一種是硬件改進(jìn),另一種是軟件改進(jìn)。硬件改進(jìn)就是在傳送帶運(yùn)動(dòng)方向均布多個(gè)面陣相機(jī),通過(guò)同步觸發(fā)同時(shí)采集圖片,然后根據(jù)事先標(biāo)定好的相機(jī)相對(duì)位置進(jìn)行拼接。軟件改進(jìn)需要對(duì)傳送帶上的視頻流進(jìn)行處理,拼接出比較大的視野。
解決方法
一般在工業(yè)上會(huì)采用硬件改進(jìn)的方法。當(dāng)需要提高視覺(jué)識(shí)別的精度或者范圍時(shí),會(huì)采用多個(gè)相機(jī)圖像進(jìn)行拼接的辦法。但是在實(shí)驗(yàn)室,我們可以嘗試使用軟件的方法來(lái)解決。
解決這個(gè)問(wèn)題的關(guān)鍵是圖片的拼接,而圖像的拼接需要圖像中有明顯的特征點(diǎn)。而目標(biāo)上是否有特征點(diǎn)我們不能控制,所以需要事先在傳送帶上布置特征點(diǎn)。
傳送帶上只有平移,所有對(duì)于圖像拼接的3個(gè)參數(shù)x,y和θ,只需要計(jì)算x,如果相機(jī)成像平面和傳送帶平面不平行,需要先做一個(gè)透視變換。
特征的設(shè)計(jì)及擺放考慮如下:容易識(shí)別,編碼容量不需太大,循環(huán)布置。
原始視頻
以下是在傳送帶運(yùn)動(dòng)時(shí)采集到的視頻:
拼接結(jié)果
算法原理
第一步:從視頻流中提取一幀圖像,作為關(guān)鍵幀,轉(zhuǎn)到第2步。
第二步:提取下一幀,根據(jù)識(shí)別到靶標(biāo)計(jì)算該幀圖像和當(dāng)前關(guān)鍵幀平移距離x1,如果x1約等于
0.4倍的視頻運(yùn)動(dòng)方向圖像像素,則把這一幀作為次關(guān)鍵幀,轉(zhuǎn)到第三步,否則重復(fù)第二步。
第三步:提取下一幀,根據(jù)識(shí)別到靶標(biāo)計(jì)算該幀圖像和當(dāng)前次關(guān)鍵幀平移距離x2,如果x1+x2 約等于
0.8倍的視頻運(yùn)動(dòng)方向圖像像素,則把當(dāng)前幀作為新的關(guān)鍵幀,轉(zhuǎn)到第二步,否則重復(fù)第三步。
在23步循環(huán)的時(shí)候,把所有關(guān)鍵幀按照順序,根據(jù)當(dāng)時(shí)的平移距離x1+x2進(jìn)行拼接就得到一幅長(zhǎng)圖。當(dāng)然也可以實(shí)時(shí)輸出關(guān)鍵幀和對(duì)應(yīng)的x1+x2。這樣,在高層算法開(kāi)發(fā)時(shí),可以認(rèn)為這是一個(gè)幀觸發(fā)信號(hào)有點(diǎn)波動(dòng)(由于幀率和傳送帶運(yùn)動(dòng)速度的不確定性,x1+x2不是固定值)的線陣相機(jī)。這也相當(dāng)于做了一個(gè)中間層,屏蔽了底層的硬件細(xì)節(jié),使得原本為線陣相機(jī)開(kāi)發(fā)的算法也可以用在面陣相機(jī)上。
-
圖像
+關(guān)注
關(guān)注
2文章
1075瀏覽量
40269 -
視覺(jué)識(shí)別
+關(guān)注
關(guān)注
3文章
89瀏覽量
16603 -
工業(yè)應(yīng)用
+關(guān)注
關(guān)注
0文章
50瀏覽量
15387
原文標(biāo)題:使用面陣相機(jī)進(jìn)行傳送帶視頻流的拼接
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論