ApolloVision視覺之旅(2):基於形狀輪廓的1對N,N對N的機器視覺模板匹配的快速實現

在機器視覺領域,最常見的功能莫過於形狀匹配定位,無論是在對工件的有無判定、正反判定、工件的分類還是在工件尺寸的定位測量等需求均有非常廣泛的應用。本文中我們將結合ApolloVision對此進行深入的講解。

算法原理掃盲

基於形狀的匹配算法,通常的理解是針對圖像模板(從原圖中截取的一部分)進行一個抽象,比如先對圖像模板的分辨率進行調整,形成多個層級的圖像元素(這一過程通常稱爲圖像金字塔,主要目的是爲了提高匹配速度,但同時也會對匹配精度造成對應的影響),然後對不同層級的圖像元素進行邊緣的提取(通常採用Canny、Sobel、laplace、Scharr等算法計算,這裏同樣會結合其他的參數進行微調,比如對圖像模板中明暗極性、雜斑點的考慮,以及對散點斷點的輪廓擬合),然後將該結果作爲我們所稱作的“模板”保存;在進行匹配操作時,將目標圖(從相機中採集或本地加載圖像獲取)同樣進行多層級分辨率調整以及邊緣的提取,然後再將先前準備好的模板拿到目標圖中進行比對,將處理完成的結果按照相似度的從高到低的順序進行排列,最後結合用戶指定的輸出參數(比如最低匹配分數,期望匹配目標的個數等等)進行輸出得到結果。

軟件的實現

在ApolloVision中,我們需要先拿到一張原始圖像來建立模板(在ApolloVision當前版本(20200428)中已內置了海康威視的相機SDK),如果手頭上沒有該相機,也可以使用本地任意一張圖像進行相關的操作(默認使用黑白圖片,彩色圖像將自動轉換爲單通道的灰度圖),本文中將使用海康相機(型號:MV-CA050-10GM黑白相機)進行講解。

打開ApolloVision視覺軟件,我們先鼠標點擊“工作流程1”(表示我們將在工作流程1中添加功能模塊),這裏我們先添加相機圖像以及形狀匹配定位:

 雙擊“相機圖像”進入設置框:

選擇相機,並設置觸發模式、增益和曝光時間,這裏我們將默認,點擊“執行”即可預覽到畫面: 

 確定保存,接着雙擊打開“形狀匹配定位”,在圖像來源中選擇剛纔配置好的模塊“1 相機圖像”:

 然後在運行參數中設定我們需要的大致參數,這裏我們均使用默認參數(當最大匹配個數爲0時表示儘可能多的尋找):

 在模板特徵選項卡中我們來對模板進行創建(下圖爲點擊了右側工具欄中“繪製矩形區域”效果圖):

 在創建繪製了模板區域後,我們可以點擊“生成輪廓預覽”來查閱輪廓的線條,如果存在不需要的區域,可以使用“繪製屏蔽區域”中的圓形區域進行覆蓋(可以創建多個屏蔽區域,最後軟件將取所有區域合成一個區域),如果需要的匹配點不是模板區域的中心點時,也可以使用“自定義匹配點”進行自定義(自定義匹配點指自定義匹配工具圓的圓心位置,即下圖中粉色圓圓心位置)。

 點擊確定保存模板即可,同樣的流程可以創建多個形狀模板進行多目標匹配:

 點擊執行按鈕可以獲取得到圖像結果:

 在右下角的模塊信息框中可以獲取得到測試的結果:

匹配的結果可以通過腳本工具進行一系列的計算,或者使用標定工具進行物理座標系的轉換,再通過通訊工具,例如TCP通信,以JSON的標準格式進行輸出。

***********************************************************************************************************************************************

ApolloVision最新版下載地址(網盤有交流羣號):

(點擊跳轉至首頁文章,見文章最底部下載鏈接)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章