二維自動化光學檢測及應用_陳金聖_影像匹配_模板匹配

. DeltaMOOCx
50 位粉絲
58 觀看·2023年12月2日
DeltaMOOCx 台達磨課師是大學及高中/高工的免費公益磨課師(MOOCs)平臺。練習題、討論、教師輔導及更多數位課程資源,請至https://univ.deltamoocx.net 註冊。本影片採用「創用CC-姓名標示-非商業性-禁止改作4.0」臺灣授權條款,相關授權作業依「創用CC-姓名標示-非商業性-禁止改作4.0」規範辦理。
接下來我們介紹一下影像匹配中的模板匹配。
所謂的模板匹配就是將目標區域的影像建立為參考模板,然後進行搜尋跟比對辨識。
以這邊投影片上看,我們有一個Nina的圖形,那如果我們參考的模板是Nina的眼睛、鼻子跟嘴巴這張影像,
那接下來我們就要有一個描述方式,對影像區域的像素值來描述。
那一般的描述方式,對影像而言就是一個二維陣列,比如說這張影像來看,我們就有
一些數值是介於0到25,也就是它灰階的強度。
那比對的方式,我們要建立影像目標區域的一個模板矩陣,右上角這個就是一個我們的參考模板,
然後我們要求出要比對中的候選區域矩陣中的一個數值分佈,那接下來我們要找最接近的模板矩陣的位置。
那在找模板矩陣的最接近的位置,我們有兩種方法,第一個我們會介紹SAD,叫做Sound of Absolute Difference,
另外一個是NCC,叫Normalized Cost Correlation,那底下我們會分別針對這兩個方式來做介紹。
首先是SAD的比對方式,所謂SAD的比對方式就是模板矩陣跟候選矩陣或矩陣的值相減,
那相減完以後的值再取絕對值累加起來,如下面這個公式,那這邊有一個demo的一個動畫,
可以看得到我們將模板影像在整張圖像掃描,那接下來我們會尋找SAD最小值的位置,
就是我們最佳的比對結果,如下面這個u star跟v star這個公式,那各位可以看到我們就找到了這個圖像中紅色的框框,
也就是我們要的參考模板,那這邊是一個針對剛剛那個影像做了一個小小的範例,
第一個是我們掃描整張影像,計算SAD值,接下來是選取SAD的最小位置,就是我們最佳的比對結果,
所以各位可以看到這張影像裡面,我們在SAD1的地方,我們可以得到它的值是230,
然後我們順著移動,一直移動到SAD33這個地方,我們同樣的計算它SAD的值,
我們會發覺它的值是0,那以SAD來講,如剛剛的投影片所示,我們要找它的最小的位置,
所以0是它最小的絕對值位置,就是我們的標的位置,那接下來再介紹另外一種也是應用很廣泛的比對的
量度,叫做NCC,NCC的如底下這個公式,有點繁複,不過我們可以看到UT是代表它的一個模板的平均值,
那UI是我們要的這個待測影像掃描過程中的一個平均值,那接下來我們要選擇的
跟剛剛SAD反而是相反,因為這個意思是它的相關性,所以我們希望它是相關性最大,表示是最有可能是你的模板,
所以我們要的公式是如下這個U-star跟V-star,是整個範圍裡面會取最大值,一樣的,經過掃描完以後,我們可以看得到
紅色區域就被我們選取了,那這兩種方式個別有它的優缺點,在這邊我就不做太詳細的介紹,
那這個是我們NCC的一個案例,同樣的對剛剛那張影像,我們在NCC1的地方,我們找到一個值是0.225,
然後一直移動到我們剛剛這個33的位置,我們會得到值是1,那NCC因為它做正規化,所以
當它值是1的時候是最大的值,另外我們除了剛剛對它的灰階強度取它的相關性,
我們當然也可以從形狀特徵去取它相關性,以這個式子來講,我們叫shape-based matching,
我們是取它的模板影像的梯度向量跟待測影像的梯度向量,
其中模板影像的梯度向量就是我們這邊符號的d,那e值是我們待測影像的梯度向量,
那另外有一個向量是r跟c,是用q來代替的話,這個是我們邊緣影像的一個相對行星的座標,
那從這邊我們可以看一個圖像,左半邊這個地方是我們的模板影像,你可以看到它描述了邊緣點的一個梯度方向,
那在右邊的待測影像裡面,這邊其實有兩個物件是跟我們模板是一樣的,
所以透過這個方式,我們就可以找到NCC值最大的,就是代表我們物件所在的一個位置,
那這個是我們基於梯度向量機的物件匹配的一個流程,各位可以看到左邊這邊是我們模板影像的訓練,
我們透過精緻塔,然後透過修正型,所謂的修正型就是不加入我們高速逆波器的一個Kenny的邊緣演算法,
然後右邊這邊在真正待測影像進來的時候,我們會透過精緻塔,然後再透過Solver,
為什麼要透過Solver,因為Solver的運算會比Kenny來得快,所以真的在待測的時候,我們會採用比較快速的一個影像偵測法,
然後接下來找到最相似的匹配位置以後,我們真的要量度它真正的位置,我們會用原始影像,這樣它精確度比較夠,
那底下我們來看一下剛剛那個精緻塔的策略的示意圖,如這張圖所示,我們這個電路板可以分為三層,
那當然我們會從最第二層部分,它的那個影像的cos會比較低,所以我們會在第二層先運算,
那我們會儲存的一個模板裡面,一樣會經過一個鋼體轉換,跟多個姿態樣板會存起來,
然後經過第二層找到以後,我們會追蹤到第一層,甚至第零層裡面,最後是取到最精確位置,是在第零層。
好,那這邊我們針對模板匹配的部分,我們也做一個小節,首先在這個單元,我們先介紹模板區域的描述跟比對方式,
那另外我們介紹兩個量度方式,第一個是SAD的模板匹配,第二個是我們NCC的一個模板匹配,
最後我們進階更取,可以取它的邊緣特性,用梯度相量機的方式來進行模板匹配。
