NI Vision for LabVIEW 基礎(五): 完成機器視覺任務

這一節介紹如何完成常用的機器視覺任務。最常用的檢測任務是測試圖像中有還是沒有某個部件,並測量部件的大小以確定是否滿足標準。
測量是基於圖像中物體所表現出來特徵。圖像處理算法通常利用圖像中包含的信息進行分類,如邊、面或形狀。不同類型的機器視覺算法,影響並提取一種或多種信息。
邊緣檢測及其衍生技術,如耙子,同心耙,和輻條(rakes, concentric rakes, and spokes)用於圖像中所表現出了邊。他們可以精確地定位物體邊緣的位置。可以使用邊緣檢測來進行部件寬度一類的測量, 這一技術被稱爲卡尺。也可以綜合多條邊來計算交點、投射、適合的園或橢圓。
模式匹配算法使用邊和樣板。模式匹配可以精確的定位所檢測部件的基準位置或特性。可以綜合使用這些位置來計算長度、角度和其它的測量指標。
測量指標的健壯性以來與圖像採集條件的穩定性。傳感器分辨率、光照、光學、震動控制、 工件夾具,以及一般環境都是圖像建立的關鍵因素。 圖像採集環節的所有元素直接影響測量的精度。
下圖介紹了機器視覺過程中的基本步驟。
image
說明 圖中虛線框起來的內容是可選步驟。
檢測物體定位
典型的機器視覺應用中,是從關注區中提取測量指標而不是從整個圖像中。要使用這種技術,關注物體的各個部分都要出現在所定義的關注區中。
如果需要處理的圖像中被測物體始終保持在相同的位置和方向,那麼直接定義關注區就可以了。參見本文中關於選擇ROI一章。
通常,被測物體會在需要處理的圖像中發生相對位移或旋轉。 發生這種情況時,那麼關注區就需要跟所關注的物體的所有部分一起移動或旋轉。對於要隨物體一起移動的關注區,需要定義一個相對於參考圖像中物體的參考座標系統。在測量處理期間,當需要處理的圖像中的物體出現移動和旋轉時,座標系統也隨物體一起移動。這個座標系統稱爲測量座標系統。測量模塊利用相對於參考座標系統的測量位置自動地將關注區移動到正確的位置。關於座標系統,參見參見NI Vision概念手冊,第14章,維度測量。
可以利用邊緣檢測或模式匹配建立一個座標變換。建立座標變換的邊緣檢測和模式匹配模塊的輸出結果是原點、角度,和座標系統的軸向。某些 機器視覺模塊採用這一輸出結果並自動調整檢測區域。也可以通過編程利用這些輸出結果來移動做相對於物體的檢測區域。
利用邊緣檢測創建座標變換
可以採用兩種邊緣檢測技術創建一個座標變換。IMAQ Find CoordSys (Rect) 2 模塊利用一個矩形區域定義一個參考座標系。IMAQ Find CoordSys (2 Rects) 2 模塊使用兩個獨立的矩形區域定義一個座標系。使用邊沿檢測構建一個座標變換的完整步驟如下。
1. 指定一個或戀歌矩形區域。
a) 如果使用IMAQ Find CoordSys (Rect) 2 模塊,指定一個包含兩個正直部分的關注區,如下圖所示。這個矩形區域必須足夠大以包含全部圖像中所要檢測的邊緣。
image
 
1 座標系搜索區域
3 座標系原點
2 物體邊緣
4 測量區域
b) 如果使用IMAQ Find CoordSys (2 Rects) 2 模塊,指定兩個矩形關注區,每個區域包含一個分開的、正直物體邊緣,如下圖所示。這兩個邊不能平行。這兩個矩形區域必須足夠大以包含全部圖像中所要檢測的邊緣。
image
 
1 第一搜索區域
3 座標原點
2 第二搜索區域
4 測量區域
2. 選擇用於定位物體上邊緣的參數。
3. 選擇座標軸方向。
4. 選擇希望覆蓋在圖像上的結果。
5. 爲模塊選擇模式。第一次建立座標變化,將模式設置爲Find Reference。 要爲其後的圖像更新座標變換,將該模式設置爲Update CoordSys
使用模式匹配構建一個座標變換
使用模式匹配可以構建一個座標變換。IMAQ Find CoordSys (Pattern) 2 基於參考屬性的位置定義一個參考座標系。該技術用於檢測物體沒有正直邊,或不連續邊的情況。使用模式匹配構建一個座標變換的完整步驟如下:
說明 如果使用旋轉-不變模式匹配,使用該技術可以使物體在圖像中旋轉 360° 。
1. 定義代表用作參考屬性的物體的一部分的模板,。
2. 定義一個期望查找模板的矩形搜索區
3. 選擇匹配模式。當檢測圖像中所要的樣板發生旋轉時,選擇Rotation Invariant ,否則,選擇Shift Invariant
4. 選擇需要覆蓋在圖像上的結果
5. 爲模塊選擇模式。第一次建立座標變化,將模式設置爲Find Reference。 要爲其後的圖像更新座標變換,將該模式設置爲Update CoordSys。
選擇構建座標變換的方法
下圖所示的流程圖引導在應用程序中選擇最佳的建立座標變換的方法。
image
設置搜索區域
在圖像中選擇關注區,以限制處理和檢測的區域。可以通過交互式或編程來定義關注區。
交互式定義區域
下面的表列出了特定的測量模塊所 使用的關注區。
關注區
測量模塊
旋轉矩形
IMAQ Find Pattern 2
IMAQ Clamp Horizontal Max
IMAQ Clamp Horizontal Min
IMAQ Clamp Vertical Max
IMAQ Clamp Vertical Min
IMAQ Find Edge
IMAQ Find Straight Edges
環形
IMAQ Find Circular Edge
IMAQ Find Concentric Edge
程序化定義區域
當設計一個自動化應用程序是,需要程序化定義關注區。可以有兩種方法:
l 制定ROI描述元素。
l 提供描述要定義的區域的基本參數來制定區域。可以通過提供左上角座標,右下角,和旋轉角度來指定一個旋轉矩形。可以通過提供中心座標,內徑,外徑,起始角,結束角來指定一個環形。可以通過設置x-和y-座標來指定一個點。可以設置起點和終點來指定一條線。
查找測量點
在設置了檢測區域之後,就能夠定位基本測量的點。可以使用邊緣檢測、模式匹配、彩色模式匹配和色彩定位來定位測量點。
使用邊緣檢測獲得特徵
圖像的非連續性通常表現爲像素明暗度的突然改變。使用邊緣檢測工具可以識別和定位圖像中劇烈的不連續處。
查找線和圓
如果想沿着物體的邊沿查找點並找到描繪這條邊的線,使用IMAQ Find Edge, IMAQ Find Straight Edges,和IMAQ Find Concentric Edge模塊。IMAQ Find EdgeIMAQ Find Straight Edges 模塊基於矩形搜索區域查找邊緣,如下圖所示。 IMAQ Find Concentric Edge 模塊基於環形搜索區域查找邊緣。
image
 
1 搜索區域
3 檢測到的邊緣點
2 搜索線
4 與邊緣點所對應的線
如果想要沿着圓形邊緣查找點並找到最適合邊緣的圓,如下圖所示,使用IMAQ Find Circular Edge 模塊。
image
 
1 環形搜索區域
3 檢測到的邊緣的點
2 搜索線
4 與邊緣點所對應的圓
IMAQ Find Edge 和 IMAQ Find Concentric Edge 模塊查找物體邊緣和一組搜索區域中的搜索線之間的交叉點。爲模塊指定用於檢測邊緣的線的間隔。檢測模塊基於他們對比度、寬度和傾斜度來確定交叉點。軟件計算出緊貼外緣的最適合的線,或者通過所找到點的最適合的圓。檢測模塊返回所找到的邊的座標。
沿一個搜索輪廓線查找邊緣點
IMAQ Simple Edge 模塊和IMAQ Edge Tool 2 模塊用於沿着一個輪廓查找邊緣點。可以沿着輪廓查找 第一個邊緣,最後一個邊緣,或所有的邊緣。當圖像中包含很少的噪聲並且物體和背景明顯不同時,使用IMAQ Simple Edge模塊。否則,使用IMAQ Edge Tool 2模塊
IMAQ Simple Edge 模塊要求輸入沿着搜索輪廓的點的座標。使用IMAQ ROIProfile 模塊可以從輪廓的RO描述中獲得座標。如果有了一條直線,使用IMAQ GetPointsOnLine模塊來獲得線上的點,而不使用ROI描述。
IMAQ ROIProfile和IMAQ GetPointsOnLine基於對比度和斜度確定邊緣點。如果需要可以指定查找邊緣點的子像素精度。
沿着多個搜索輪廓查找邊緣點
IMAQ Rake 2, IMAQ Spoke 2, 和IMAQ Concentric Rake 2 模塊用於沿着多個搜索輪廓查找邊緣點。這些模塊需要傳入一個ROI描述用於定義搜索區域。
IMAQ Rake 作用於一個矩形搜索區域。搜索線被畫在與矩形平行的方向。通過指定區域中每條線之間以像素爲單位的距離來控制搜索線的數量。對於水平方向的矩形指定從左到右或從右到左的搜索方向。對垂直方向的矩形指定從上到下或從下到上的搜索方向。
IMAQ Spoke 2 作用於一個環形搜索區域,掃描每一條從區域的中心到外緣並落在搜索區域中的線。通過指定每條線之間以度數爲單位的角度來控制線的數量。搜索方向指定爲從中心向外或者從外沿向中心。
IMAQ Concentric Rake 2 作用於一個環形搜索區域。中心掃描耙(rake)是一個環形區域耙的適配器。邊緣檢測是沿着搜索區域中出現的與外層圓形邊緣同心的掃描線完成。通過以像素爲單位指定同心線的徑向距離可以控制用於邊緣檢測的同心搜索線的數量。搜索方向指定爲順時針或反時針。
使用模式匹配查找點
NI Vision中的模式匹配算法用於測量理想化的特徵表現,成爲模板,與圖像中的可能表現之間的相似度。特徵是圖像中像素的一個特定的模式。模式匹配返回模板和模板方位的中心位置。利用模式匹配查找圖像特徵通常需要以下步驟:
1. 定義一個參考或基準樣本作爲模板圖像。
2. 使用IMAQ Learn Pattern 2模塊利用參考樣本訓練模式匹配算法。
3. 定義一個圖像或圖像的一個區域作爲搜索區域。較小的搜索區域能減少查找特徵的時間。
4. 使用IMAQ Setup Match Pattern 2設置容限和參數以指定算法在運行時如何工作。
5. 使用IMAQ Match Pattern 2模塊在測試圖像上測試搜索算法。
6. 使用一種排序方法驗證結果。
定義並創建有效的模板圖像
一個有效的模板圖像是獲得最佳結果的關鍵部分。由於模板代表了所要查找的樣本,要確保樣本的所有特徵和唯一特性都要在圖像中定義。
在建立模板圖像的過程中有幾個因數是最關鍵的。這些關鍵因素包括均勻度,細節特徵,位置信息,以及背景信息。
均勻度
一個旋轉均勻的模板,如圖A所示,與一個不均勻的模板相比隊旋轉的時候有很少的敏感度。一個旋轉均勻的模板提供了很好的位置信息,而沒有方向信息 。圖B 顯示了一個旋轉非均勻模板。
image
細節特徵
具有相對粗糙特徵的模板,如圖B所示,與圖A所示的具有精細特徵的模板相比,對尺寸和旋轉變化有很少的敏感度。然而,模型必須包含足夠的細節以確定特徵。
image
位置信息
一個x-和y-方向具有明顯邊緣的模板便於定位。圖A 顯示了一個x-和y-方向都有邊緣的模板例子。圖B 顯示了一個僅在x-方向有邊緣的模板例子。
背景信息
模板中單一的背景信息有利於改善搜索效率和精度。圖A所示的模板包含很少的背景信息。圖B 所示的模板包含了 大量的背景信息可以用於將模板從其它可能的匹配中分離出來。
訓練模式匹配算法
在建立了良好的模板圖像之後,模式識別算法必須要學習模板的重要特徵。 IMAQ Learn Pattern 2 模塊用於學習模板。學習的過程依賴於所要完成的匹配類型。如果不期望圖像中的模板實例發生旋轉或改變大小,模式匹配算法必須學習的僅僅是對位移匹配相關的模板信息。然而,如果希望匹配任意方向的模板,學習過程必須考慮任意方向的可能性。IMAQ Setup Learn Pattern 2用於指定要使用哪種學習模式。可以爲IMAQ Learn Pattern 2提供一個遮罩,代表學習算法需要在圖像中忽略的像素區域。可以將被測圖像中變化的模板區域遮起來,以使匹配過程中忽略這個區域,使整個模式匹配過程更加有效(Robust)。遮罩必須與模板圖像大小相同。如果爲IMAQ Learn Pattern 2提供一個遮罩,該模塊僅學習模板中與遮罩中對應像素值爲0像素。遮罩像素不爲0的被忽略。如果需要學習整個模板,就不要使用遮罩。
學習過程通常是很耗時的,因爲算法試圖查找模板的每個特徵以便快速、準確地匹配。所選擇的學習模式也影響學習過程的速度。學習位移不變的匹配比學習旋轉不變得模板要快。爲了節省時間,也可以使用離線方式訓練匹配算法,然後使用IMAQ Write File 2的實例IMAQ Write Image and Vision Info File 2將模板圖像保存起來。
定義搜索區域
有兩個重要因素決定了模式匹配算法的成功與否:精度與速。可以定義一個搜索區域以減少搜索過程中的不確定性。例如,如果圖像中有多個樣板實例,而其中只有一個是用於檢測任務的,額外的樣板實例的出現可能產生不正確的結果。爲了避免發生這種情況,減少搜索區域以使僅僅所需要的樣板出現在搜索區中。
在圖像中定位一個樣板所需要的時間,即取決於模板的尺寸,也取決於搜索區域。減少搜索區域,可以減少所需的搜索時間。增加模板尺寸能改善搜索時間,但如果這樣做,如果較大的模板包含的過多的背景信息將較少匹配的精度。
在許多檢測應用中,已經擁有基準位置的一般信息,可以利用這一信息定義一個搜索區域。例如,在一個標準的元器件安置應用中,每個要檢測的印刷電路板可能不是以相同的方向放在相同的位置。在各種圖像中的印刷電路板位置可能在已知的範圍內移動和旋轉。圖A所示的模板用於定位圖像中的PCB。圖B所示的圖象包含一個想要定位的帶有基準的PCB 。注意,搜索區域是圍繞着基準的。如果在匹配過程開始之前就知道PCB 圖象可能在一個固定的範圍內移動或選裝,分別如圖C和D所示,就可以將基準的搜索區域限制在圖象的一個很小的區域內。
image
設置匹配參數和容限
每個模式匹配算法都對圖象和機器視覺應用中所使用模式匹配參數做出一些假設。這些假設適用於大多數應用。然而,也有一些應用中這些假設並不是最優的。瞭解特定應用和所要處理的圖象在選擇模式匹配參數時是非常有有用的。 IMAQ Setup Match Pattern 2 模塊用於設置以下影響NI Vision模式匹配算法的參數:匹配模式最小對比度旋轉角度範圍
匹配模式
設置匹配模式用於控制模式匹配算法如何處理不同的方向。如果希望有效的匹配相對於模版的方向變化小於±5°,可以將Match Mode設置Shift Invariant(位移不變)。否則,將Match Mode設置爲 Rotation Invariant。 位移不變匹配比旋轉不變更快。
最小對比度
模式匹配算法忽略所有對比度值低於所設置的最小對比度的圖象區域。對比度是一個區域中最小和最大像素值的差異。將Minimum Contrast 設置爲稍低於最低對比度搜索區域的對比度值。
設置最小對比度可以潛在地增加模式匹配算法的速度。如果搜索圖像整體對比度較高但包含一些低對比度區域,設置一個較高的最小對比度值可以排除所有的低對比度圖像區域。排除這些區域可以明顯地減少模式匹配算法必須搜索的面積。然而,如果搜索的圖像整體上對比度較低,那麼就應設置一個較低的最小對比度以確保模式匹配算法能在圖像的所有區域中搜索模板。
旋轉角度範圍
如果已經知道模板旋轉限制在一定的範圍內,例如,在–15°和15°之間,可爲該限制信息在Rotation Angle Ranges空間中提供給模式匹配算法。該信息可以改善搜索時間,因爲模式匹配算法可以在較小的角度內搜索。有關模式匹配的詳細內容,參見NI Vision 概念手冊,第12章,模式匹配。
在測試圖像上測試搜索算法
要驗證所選擇的模板或參考樣板是否適合自己的機器視覺應用,可以使用 IMAQ Match Pattern 2模塊在少量圖像上測試模板。這些測試圖像會反映出機器視覺應用在真實運行條件下所生成的圖像。如果模式匹配算法能夠在所有情況下都能定位到參考樣板,說明所選擇的是一個好的模板。否則,就要改善當前的模板,或者選擇一個更好的模板知道訓練和測試都是成功的。
使用分級方法驗證結果
解讀IMAQ Match Pattern 2模塊結果的方法取決於應用程序。對於標準的校準應用,例如查找晶片基準,最重要的信息是位置和最佳匹配部位。使用Matches指標PositionBounding Box 元素獲得位置和匹配部位。
在檢測應用中,例如光學字符檢驗(OCV),最匹配分值是比較有用的。模式匹配算法返回的匹配分值是原樣板與圖像中找到的內容匹配緊密度的指標。高分代表一個非常緊密的匹配,而低分代表匹配的比較差。分值可以作爲一個評判標準以確定打印的字符是否是可以接受的。使用Matches 指標的Score 元素來獲得對應的匹配分值。
使用幾何匹配查找點
NI Vision中的幾何匹配算法用於在灰度圖像中尋找與一個參考樣板匹配的模型,或模板。幾何匹配專門用於尋找具備離散化幾何或形狀信息的模板。幾何匹配查找模板匹配能夠忽略光的變化,模糊,噪聲,咬合,以及幾何變換,如模板的位移、旋轉,或比例。幾何匹配返回模板的中心位置,模板的方向,和模板的比例。
使用幾何匹配查找圖像中的特徵通常要完成以下步驟。
1. 使用一個模板圖像定義一個參考或基準的樣板。
2. 使用NI Vision模板編輯器利用參考樣板訓練幾何匹配算法。選擇 Start?All Programs?National Instruments?Vision?Template Editor 打開NI Vision模板編輯器。
3. 定義一個圖像或圖像的一個區域作爲搜索區域。小的搜索區域可以減少查找特徵的時間。
4. 使用IMAQ Setup Match Geometric Pattern模塊設置容限和參數以指定運行時算法如何工作。
5. 使用IMAQ Match Geometric Pattern模塊在測試圖像上測試搜索算法。
定義和創建有效的模板圖像
選擇一個有效的模板圖像是獲得好的結果的決定性的部分。由於模板圖像代表所要查找的樣板,要確保所有重要和獨特的特徵都被很好的定義在圖像中。
幾何匹配算法是爲定位具有良好幾何信息的物體而優化的。下面的圖線是了具有良好幾何或形狀信息的模板圖像的例子。
image
幾何匹配不適合於主要是灰度或紋理信息的模板圖像。下面的圖顯示了沒有良好幾何信息的模板圖像。圖A中的模板圖像的主要特徵是圖像中的灰度或紋理信息。圖B包含了太多的邊緣,會急劇地增加幾何匹配在圖像中定位模板的時間。
image
訓練幾何匹配算法
在建立了一個好的模板圖像之後,幾何匹配算法必須學習模板的重要特徵。使用NI Vision模板編輯器選擇模板中的重要特徵。幾何匹配使用在圖像中查找到的曲線作爲用於匹配的基本特徵。使用NI Vision模板編輯器可以去除模板中的噪聲或不重要的曲線並僅保存圖像中對定位模板重要的曲線。
圖A顯示了一個面具的圖像模板。圖B顯示了在圖像模板中發現的所有曲線。這些圖像由若干很適合匹配的曲線構成,例如沿着面具邊緣的線,噪聲或不重要的曲線,以及編碼周圍的線和圖像中反光區域的線。如果帶着不重要的曲線學習模板,幾何匹配算法會把這些曲線作爲必須在有效匹配區中必須查找的重要特徵。爲了使匹配過程更加可靠,應在學習模板之前去掉這些曲線。圖C 顯示了利用NI Vision模板編輯器去掉了不重要的曲線之後的用於學習模板的曲線。
image
一旦訓練了了模板圖像,就可以從NI Vision模板編輯器中將模板保存到文件中。使用IMAQ Read Image and Vision Info 模塊可以在程序中讀取模板文件。
關於訓練幾何匹配算法的詳細內容,參見NI Vision 模板編輯器幫助。
設置匹配參數和容限
幾何匹配算法對機器視覺應用中使用的圖像和幾何匹配參數作了一定的假設。這些假設適用於絕大多數應用。然而,也有一些應用中這些假設並不是最優的。瞭解特定應用和所要處理的圖象在選擇模式匹配參數時是非常有有用的。 IMAQ Setup Match Geometric Pattern模塊用於設置以下影響NI Vision模式匹配算法的參數:匹配模式轉角度範圍,咬合範圍
匹配模式
通過設置控制模式來控制幾何匹配算法查找模板的條件。如果希望有效的匹配與模板間的方向變化大於±5°,將Match Mode中的Rotation 選項設置爲有效。如果希望尺寸變化範圍大於5%, 將Match Mode中的Scale選項設置爲有效。如果期望有效的匹配可以部分覆蓋或缺失,將Match Mode中的Occlusion選項設置爲有效。任何一個選項設置爲無效或限制它們的範圍將減少搜索時間。
旋轉角度範圍
如果已知樣板限制在一定的範圍內,例如,在–15°和15°之間。設置Range Settings控件中的Rotation Angle(度) 將這些限制信息提供給幾何匹配算法。該信息改善了搜索時間,因爲幾何匹配算法能在更小的角度內搜索樣板。
比例因子範圍
Match ModeScale選項有效時,幾何匹配僅搜索圖像中模板出現與否而忽略有效的匹配是否是不同的大小。默認的比例範圍是75%到125%。如果已知有效匹配的比例範圍限制在一定的範圍內,例如,在90%和110%之間,通過設置Range Settings 控件中的Scale Factor (%)選項,將這一限制信息提供給幾何匹配算法。
咬合範圍
Match Mode 中的Occlusion選項有效時,幾何匹配搜索圖像中模板的有無,允許模板的一定比例被遮擋。默認的遮擋範圍是0% 到25%。如果已知有效匹配的遮擋範圍限制在一定範圍內,例如,在0%和10%之間。通過設置Range Settings 控件中的Occlusion (%)選項,將這一限制信息提供給幾何匹配算法。
有關幾何匹配的更多信息,參見NI Vision概念手冊,第13章,幾何匹配
在測試圖像上測試搜索算法
爲了驗證所選擇的模板或參考樣板是否滿足機器視覺程序的要求,可以使用IMAQ Match Geometric Pattern 模塊在少量測試圖像上對模板進行測試。這些測試圖像應該反映出機器視覺程序在實際運行條件下生成的圖像。如果幾何匹配算法在所有情況下都能找到參考樣板,就說明已經選擇了一個很好的模板。 否則, 就需要優化當前的模板,或者選擇一個更好的模板直到訓練和測試都成功爲止。
使用多模板圖像
如果應用程序需要在目標圖像中查找多個模板圖像,按下列步驟進行。
1. 使用定義和創建有效模板圖像訓練幾何匹配算法所介紹的方法建立和訓練每個模板圖像。
2. 使用IMAQ Learn Multiple Geometric Patterns 模塊將上面的步驟中訓練的模板合併到多幾何模板中。
如果想要離線完成學習過程,使用IMAQ Write Multiple Geometric Template 模塊將所生成的多幾何模板保存到文件中。使用IMAQ Read Multiple Geometric Template 模塊可以使應用程序在匹配處理期間讀取多幾何模板文件。
1. 使用設置破配參數和容限一節介紹的方法定義每個模板如何與目標圖像匹配。
說明 儘管本步驟生成的參數僅用於匹配期間,仍然可以在學習階段將這些參數傳遞給IMAQ Learn Multiple Geometric Patterns模塊。將這些參數存儲在多幾何模板中,當保存多幾何模板時它們就會存放到文件中。程序讀取多幾何模板文件時,它們將作爲多幾何模板的一部分在匹配處理期間使用。如果想在匹配處理期間覆蓋某些參數,可以將要覆蓋的參數傳遞給IMAQ Match Multiple Geometric Patterns 模塊。
2. 使用IMAQ Match Multiple Geometric Patterns 模塊在測試圖像上測試多模板搜索算法以匹配所有模板。該步驟的重要性與在測試圖像上策測試搜索算法中解釋的相同。
使用彩色模式匹配查找點
彩色模式匹配算法爲在出現彩色的時候提供了一種快速的查找物體的方法。如果圖像具有下列質量,就可以適用彩色模式匹配:
  1. 1. 要查找的物體的彩色信息與背景非常不同,並且希望在找到圖像中物體的精確位置。
  2. 2. 要查找的物體的灰度特性非常難以鑑別,或者與搜索圖像中的其它物體非常相像。這種情況下,灰度模式匹配可能得出不精確的結果。如果物體具有的彩色信息不同於屏幕中的其它物體,那麼色彩就爲機器視覺軟件提供了定位物體的額外信息。
彩色模式匹配返回模板的中心位置和模板的方向。適用彩色模式匹配查找圖像中的特徵採用以下步驟:
1. 以模板圖像的形式定義一個參考或基準樣板。
2. 使用IMAQ Setup Learn Color Pattern 模塊利用參考樣板訓練彩色模式匹配算法。
3. 定義一個圖像或圖像區域作爲搜索區域。較小的搜索區域可以減少查找特徵的時間。
4. 將Feature Mode 控件設置爲Color and Shape
5. 使用IMAQ Setup Match Color Pattern模塊設置容限和參數,以制定算法在運行時如何工作。
6. IMAQ Match Color Pattern 模塊在測試圖像上測試搜索工具。
7. 使用分級方法驗證結果
定義和建立好的彩色模板圖像
選擇一個好的模板圖像在使用彩色匹配算法獲得精確結果的過程中是關鍵的一步。因爲模板圖像代表着想要查找的彩色和樣本,應確保所有的重要和唯一的特徵都被定義在圖像中。
有幾個因素是建立模板圖像的關鍵。這些關鍵因素包括彩色信息、均勻度細節、位置信息,和背景信息。有關這些因素的更多信息,參見定義和建立有效的模板圖像
彩色信息
單色的模板比包含許多顏色的模板能爲樣板提供更好的結果,特別是背景或圖像中的其它物體。
均勻度
在兩度平面上一個旋轉均勻的模板比旋轉不均勻的模板對旋轉變化的敏感度低。
細節特徵
相對粗糙特徵的模板對尺寸變化的敏感度比具有細緻特徵模型要低。然而,模型必須要把包含足夠辨認它的細節。
位置信息
彩色模板的亮度平面包含的x-和y-方向的明顯的邊沿,便於定位。
背景信息
在灰度模式匹配期間,單一的背景信息可以改進搜索的性能和精度。這一要求對於彩色模式匹配的彩色信息要求是衝突的,因爲背景色可能在彩色定位階段產生干擾。解決這一問題的方法是爲灰度模式匹配選擇一個具有充分背景信息的模板,同時指定在彩色定位階段要排除的背景色。有關如何忽略色彩的更多信息,參見訓練彩色模板匹配算法
訓練彩色模式匹配算法
在建立了一個好的模板圖像之後,彩色模式匹配算法需要學習模板的重要信息。學習的過程取決於所期望完成的匹配類型。默認情況下,彩色模式匹配算法僅從模板中學習與位移不變匹配所必需的信息。然而,如果希望讓模板在任意方向上匹配,學習過程必須考慮任意方向的可能性。
使用IMAQ Setup Learn Color Pattern模塊指定使用哪種學習模式。然後使用IMAQ Learn Color Pattern 模塊學習模板。
排除模板中在搜索階段不感興趣的色彩。忽略模板中難於定位的色彩。模板與搜索圖像的部分區域僅僅是主色不同,可以考慮忽略掉主要的共同色彩以改善性能。通常,主色是彩色模板的背景色。
IMAQ Setup Learn Color Pattern 模塊用於忽略顏色。可以使用Ignore Black and White 控件忽略特定的預定顏色。要忽略其他顏色, 首先使用IMAQ ColorLearn 學習要忽略的顏色。然後,將IMAQ Setup Learn Color Pattern 模塊的Ignore Color Spectra 控件設置成結果的色譜。
學習算法是很耗時的,因爲算法要試圖找到模板的位移特性,以便快速、精確的匹配。但是,可以離線訓練模式匹配算法,並使用IMAQ Write File 2模塊的實例IMAQ Write Image and Vision Info File 2保存模板圖像。
定義搜索區域
有兩個同等重要的因素決定了彩色模式匹配算法是否成功,精度和速度。可以定義一個搜索區域以減少無爲的搜索過程。例如,如果圖像中有多個樣板的實例,且檢測任務僅需要一個實例,樣板其他實例的出現可能產生不正確的結果。爲了避免出現這個問題,減少搜索區域以使僅將需要的樣板留在搜索區內。比如,在保險箱檢測的例子中,使用要檢測的保險絲的位置定義搜索區。因爲所要檢測的保險箱可能不是處於精確的位置或者在圖像中的方向與上一個相同,所定義的搜索區域應該足夠大以適應箱子的位置變化。下圖顯示瞭如何爲不同的物體選擇搜索區域。
image
 
1 20 Amp保險絲搜索區
2  25 Amp 保險絲
在圖像中定位樣板所需的時間既取決於樣板大小,也取決於搜索面積。減少搜索面積,可以減少所需的搜索時間。增加模板大小可以改善搜索時間,但這樣做的話,如果更大的模板包含的多餘的背景信息會降低匹配的精度。
設置匹配參數和容限
每個彩色模式匹配算法都會對圖像和機器視覺程序中使用的彩色模式匹配參數做出一些假設。這些假設對絕大多數應用是有效的。但是,有些應用中算法所使用的假設可能不是最優的。這時就必須修改彩色模式匹配參數。瞭解應用以及所有處理的圖像對選擇模式匹配參數是非常有必要的。使用IMAQ Setup Match Color Pattern 模塊設置下列影響彩色模式匹配的參數:色彩感光度、搜索策略、色彩分值權重、忽略顏色、最小對比度,以及旋轉角度範圍。
色彩感光度
色彩感光度用於控制模板圖像中彩色信息的顆粒度。如果背景和圖像中的物體包含的色彩與模板圖像中的色彩非常相近的話,應適用更高的色彩感光度設置。 較高的感光度設置利用非常接近的色調來區分色彩。NI Vision中有三個色彩感光度設置: 低、中、和高。如果模板中的顏色與背景或不感興趣的物體的顏色非常不同,那麼就使用低設置。隨着差異的降低,應增加色彩感光度。IMAQ Setup Match Color Pattern模塊的Color Sensitivity控件用於設置色彩感光度。有關色彩感光度的更多信息,參見NI Vision概念手冊,第15章,彩色檢測
搜索策略
使用搜索策略可以優化彩色模式匹配算法的速度。搜索策略控制用於模板的步長、子採樣因子、以及彩色信息比例。
可選擇的策略如下:
  1. Conservative—使用一個非常小的步長,最小的子採樣量,和模板中出現的所有彩色信息。保守策略對於在可能降低速度的情況下搜索一個模板是最可靠的方法。
說明 如果圖像中有捱得特別近的多個目標時,適用保守策略。
  1. Balanced—使用挑戰型和保守型之間的值。
  2. Aggressive—使用一個較大的步長,許多子採樣,以及模板中全部的色譜信息。
  3. Very Aggressive—使用最大的步長,最多的子採樣,以及僅使用模板中主要的色彩來搜索模板。當模板中的色彩非常一致,模板與背景有明顯的對比,而且圖像中出現的模板很容易區分時使用該策略。該策略是在圖像中查找模板的俄最快速的方法。
通過不同的選項試驗來確定最好的策略。使用Search Strategy控件選擇搜索策略。
色彩分值權重
當同時使用色彩和形狀信息搜索模板時,匹配處理期間產生的色彩和形狀分值合併後生成最後的彩色模式匹配分值。色彩分值權重決定色彩分值對於最終彩色模式匹配分值的貢獻度。如果模板的色彩信息優於模板的形狀信息,就將權重設高。例如,如果使用1000的權重,算法同時使用色彩和形狀信息查找每個匹配,然後完全基於它們的色彩分值對匹配進行分類。 如果權重是0,匹配仍然使用色彩和形狀信息, 但他們完全被基於其形狀分值分類。使用Color Score Weight 控件來設置色彩分值權重。
最小對比度
使用最小對比度可以增加彩色模式匹配算法的速度。彩色模式匹配算法忽略所有灰度對比度值低於最小對比度值得圖像區域。使用Minimum Contrast 控件設置最小對比度。有關最小對比度的內容,參見設置匹配參數及容限
旋轉角度範圍
有關旋轉角度範圍的內容,參見 設置匹配參數及容限。
在測試圖像上測試搜索算法
有關測試搜索算法的信息,參見在測試圖像上測試搜索算法
使用彩色定位查找點
彩色定位算法爲在帶有特定顏色的圖像中定位一個區域提供了一種快速的方法。在應用程序中使用彩色定位有以下特點:
  1. 需要帶有特定彩色信息圖像中區域的位置和數量
  2. 依賴於區域中的累積的彩色信息,而不是彩色的分佈信息
  3. 不要求區域的方向
  4. 不要求子像素精度的位置
  5. 不要求區域的形狀信息
使用彩色定位在圖像中查找特徵,需要完成下列步驟:
1. 以模板圖像的形式定義一個參考樣板。
2. 使用IMAQ Learn Color Pattern模塊,利用參考樣板訓練彩色定位算法。
3. 定義一個圖像或圖像區域作爲搜索區。小的搜索區可以減少發現特徵的時間。
4. 將IMAQ Setup Learn Color Pattern 模塊的Feature Mode 控件設置爲Color
5. 使用IMAQ Setup Match Color Pattern模塊設置容限和參數,以指定運行時算法如何工作。
6. 使用IMAQ Match Color Pattern 模塊在測試圖像上彩色定位算法。
7. 使用分類算法驗證結果。
可以使用IMAQ Write File 2模塊的IMAQ Write Image and Vision Info File 2實例保存模板圖像。
將像素座標轉換成現實座標
通過邊緣檢測和模式識別得到的測量點是以像素爲座標的。如果需要以現實單位進行測量,需要使用IMAQ Convert Pixel to Real World 模塊將像素座標轉換成像素座標。
進行測量
可以從圖像或在圖像中檢測到的點中進行不同類型的測量。
進行距離測量
Measure Distances模塊用於測量搜索區中一個矩形中的兩個邊之間的間距。爲監測邊和搜索區內要查找邊的搜索線之間的間隔指定參數。
說明 使用IMAQ Select Rectangle 模塊爲卡尺模塊生成一個有效的輸入搜索區。
第一個模塊使用排隊函數監測所測物體邊緣的點。其它的模塊計算沿着取景框(rake)的每條搜索線上的各個測到的邊上的點之間的距離。這些模塊返回垂直或水平方向上的最大或最小距離,並輸出它們找到的所有邊緣點的座標。
下面的列表介紹可用的卡尺模塊:
IMAQ Clamp Horizontal Max—測量一個矩形搜索區域內兩條邊之間的最大水平間距。
IMAQ Clamp Horizontal Min—查找兩條垂直邊之間的最小水平間距。
IMAQ Clamp Vertical Max—查找兩條水平邊之間的最大間距。
IMAQ Clamp Vertical Min—查找兩條水平邊之間的最小間距。
IMAQ Point Distances模塊用於計算一個點矩陣中連續點對之間的距離。可以使用查找測量點中介紹的任何一種特徵檢測方法從圖象中獲得這樣的點。
進行分析幾何測量
使用以下模塊可以對在圖像中檢測到的點進行幾何測量:
IMAQ Fit Line—將點集擬合成一條線並計算出線的等式。
IMAQ Fit Circle 2—將至少有三個點的點集擬合成一個圓,並計算其面積,周長和半徑。
IMAQ Fit Ellipse 2—將至少六個點的點集擬合成一個橢圓,並計算其面積、周長,及長軸和短軸的長度。
IMAQ Lines Intersection—計算用起點和終點表示的兩條線的夾角和交叉點。
IMAQ Perpendicular Line—查找一個點到一條線之間的正交線和距離。
IMAQ Bisecting Line—查找兩條線之間的夾角等分線。
IMAQ Mid Line—查找一點與一條線之間的平行中線。
IMAQ Polygon Area—計算頂點表示的一個多邊形的面積。
進行儀表閱讀測量
下列模塊用於針對從儀表和LCD獲得的數值進行測量:
IMAQ Get Meter和IMAQ Get Meter 2 模塊用於校準需要閱讀的儀表或量器。
IMAQ Get Meter利用指針的起始位置和滿量程位置校準儀表。該模塊計算指針的基點位置和針尖軌跡的弧。
IMAQ Get Meter 2 利用儀表上的三個點校準儀表:指針的基點,出於起始位置的針尖,和處於滿量程位置的針尖。該模塊計算出針尖覆蓋的弧上點的位置。
IMAQ Read Meter模塊利用基點和針尖軌跡的弧上的點矩陣讀取指針的位置。
IMAQ Get LCD ROI模塊計算LCD或LED中包圍每個數字的關注區。爲了找到每個數字區域,顯示器的每個段都必須顯示。
IMAQ Read Single Digit模塊用於讀取LCD或LED的一個數字。IMAQ Read LCD模塊用於讀取LCD或LED的多個數字。
辨別被測部件
這設置了檢測區域之後除了進行測量,還可以使用分類來辨認部件、 光學字符識別,以及條形碼閱讀。
分類樣本
使用分類通過將未知物體的明顯特徵與已知物體類型的概念化表徵相比較來辨別物體。與分類有關的標準應用如下:
Sorting—各種形狀物體的分選。例如,將傳送帶上的不同機械零件分選到不同的箱子中。
Inspection—通過給每個物體賦予一個辨認分值來檢測物體,並剔除不能與訓練集中的成員緊密匹配的物體。
在進行物體分類之前,必須使用NI分類訓練界面,通過物體樣本的訓練分類器。選擇Start?All Programs?National Instruments?Vision?Classification Training 登錄NI 分類訓練接口。
在訓練了需要分類的物體樣本以後,適用以下模塊對物體進行分類:
在代碼的初始化部分,適用IMAQ Read Classifier File 木塊讀取一個使用NI 分類訓練接口創建的分類器會話。
IMAQ Classify模塊用於將被檢測圖像的關注區內的物體分類成NINI 分類訓練接口建立的類別的一種。
IMAQ Dispose Classifier模塊用於釋放分類器會話所使用的資源。
下圖顯示一種標準分類模塊的LabVIEW 僞代碼。
image
 
1 讀取一個分類器文件
4 分類樣本
7 類別
2 獲取和預處裏圖像
5 釋放分類器
8 停止
3 定位要分類的樣本
6 轉到訓練分類器文件
 
讀取字符
OCR用於讀取圖像中的文字或字符。檢測應用中OCR通常用於鑑別或分類零部件。
在讀取圖像中的文字或字符之前,必須使用NI OCR訓練接口利用字符樣本訓練OCR會話。選擇Start?All Programs?National Instruments?Vision?OCR Training登錄NI OCR訓練接口。
在訓練了所要讀取的樣本之後,利用以下模塊讀取字符:
在代碼的初始化部分,使用IMAQ OCR Read Character Set File 模塊讀取利用NI OCR訓練接口創建的一個會話。
IMAQ OCR Read Text 3 模塊用於讀取被測圖像關注區內的字符。
IMAQ OCR Dispose Session模塊用於釋放OCR會話所適用的資源。
讀取條碼
使用條碼閱讀模塊可以讀取一維條碼,數據陣列碼,QR碼和PDF417碼中編碼的值。
讀取一維條碼
IMAQ Read Barcode模塊讀取一維條碼中的編碼值。使用定位要檢測的物體設置搜索區域兩節中介紹的一種方法,定位圖像中的條碼,然後將位置的關注區描述傳遞給IMAQ Read Barcode模塊。使用Barcode Type控件指定一種條碼類型。
NI Vision 支持下列一維條碼類型:Codabar, Code 39, Code 93, Code 128, EAN 8, EAN 13, Interleaved 2 of 5, MSI, UPCA, Pharmacode,和RSS Limited。
讀取數據陣列碼
IMAQ Read Data Matrix Barcode 2 模塊用於讀取數據陣列碼中的編碼值。該模塊能自動地爲程序確定合適的搜索參數。但是,也可以通過爲程序指定特定的控件值來改進程序的性能。
IMAQ Read Data Matrix Barcode 2模塊能自動定位圖像中的數據陣列碼。但是,也可以通過定位來改進檢測性能。使用定位要檢測的物體一節中介紹的一種技術,然後將位置的關注區描述傳遞給IMAQ Read Data Matrix Barcode 2模塊。
讀取QR碼
IMAQ Read QR Code模塊用於讀取QR或micro-QR碼中的編碼值。該模能自動爲程序確定搜索參數。也可以通過爲控件指定特定的值來改善應用性能。
IMAQ Read QR Code模塊能自動定位圖像中的QR碼。也可以通過指定條碼的位置來改善程序的性能。用定位要檢測的物體一節中介紹的一種技術,然後將位置的關注區描述傳遞給IMAQ Read QR Code模塊。
讀取PDF417碼
IMAQ Read PDF417 Barcode 模塊用於讀取PDF417碼中的編碼值。
IMAQ Read PDF417 Barcode模塊能自動定位圖像中的一個或多個PDF417碼。也可以指定代碼位置來改進檢測性能。用定位要檢測的物體一節中介紹的一種技術,然後將位置的關注區描述傳遞給IMAQ Read PDF417 Barcode模塊。
提示 如果每個圖像中只讀取一個PDF417碼,那麼將Search Mode 設置爲Single Barcode, Conservative 以加快模塊的速度。
檢查圖像的缺陷
可以通過將被測圖像與一個黃金模板相比較並驗證圖像中的特徵來檢測圖像的缺陷。
與黃金模板比較
IMAQ Compare Golden Template模塊基於灰度差檢測圖像。使用NI Vision 模板編輯器學習所要檢測的黃金模板。選擇Start?All Programs?National Instruments?Vision?Template Editor 登錄 NI Vision模板編輯器。使用進行顆粒分析一節中介紹的方法,分析結果的二值圖像。
驗證字符
使用字符驗證函數驗證圖像中的字符。
在驗證文字之前,必須使用NI OCR訓練接口利用字符樣板訓練OCR會話。選擇Start?All Programs?National Instruments?Vision?OCR Training 登陸NI OCR訓練接口。然後必須爲字符集中的每個字符指定對應字符。需要驗證的字符與這些參考字符相比較,並基於這個比較付給一個分值。
當訓練了字符樣板並賦予相應字符之後,使用下列函數來驗證字符。
在代碼的初始化部分,使用IMAQ OCR Read Character Set File 模塊讀取使用NI OCR訓練接口創建的一個會話。
IMAQ OCR Verify Text 用於驗證被測圖像關注區域中的字符。
IMAQ OCR Dispose Session模塊用於釋放OCR會話使用的資源。
顯示結果
可以將檢測階段得到的結果覆蓋在檢測圖像上。NI Vision將所要覆蓋的信息附加到圖像上,而不修改圖像。也可以將相似的覆蓋信息分成組以將多個覆蓋信息作爲一個來起作用。每次顯示圖像時都會出現覆蓋信息。
使用下列模塊設置或查看圖像覆蓋的屬性。
IMAQ Set Overlay Properties—爲一幅圖像設置覆蓋屬性。
IMAQ Get Overlay Properties—從一幅圖像中獲取覆蓋屬性。
使用下列模塊覆蓋搜索區域、檢測結果,以及其它信息,如文字和位圖。
IMAQ Overlay Points—將點覆蓋在圖像上。用x-,y-座標表示一個點。
IMAQ Overlay Line—將一條直線覆蓋在圖像上,用起點和終點表示一條線。
IMAQ Overlay Multiple Lines—在圖像上覆蓋多條線。
IMAQ Overlay Rectangle—將矩形覆蓋在圖像上。
IMAQ Overlay Oval—將橢圓或圓覆蓋在圖像上。
IMAQ Overlay Arc—將弧覆蓋在圖像上。
IMAQ Overlay Bitmap—將位圖覆蓋在圖像上。
IMAQ Overlay Text—將文字覆蓋在圖像上。
IMAQ Overlay ROI—將一個有關注區描述符指定的關注區覆蓋在圖像上。
要使用這些模塊,需要傳入所要覆蓋的圖像和需要覆蓋的信息。
提示 使用前面的模塊時,可以選擇覆蓋的顏色。
可以爲下列處理模塊配置不同的圖像覆蓋信息類型:
IMAQ Edge
IMAQ Find Circular Edge
IMAQ Find Straight Edges
IMAQ Find Concentric Edge
IMAQ Clamp Horizontal Max
IMAQ Clamp Horizontal Min
IMAQ Clamp Vertical Max
IMAQ Clamp Vertical Min
IMAQ Find Pattern 2
IMAQ Count Objects 2
IMAQ Find CoordSys (Rect) 2
IMAQ Find CoordSys (2 Rects) 2
IMAQ Find CoordSys (Pattern) 2
下面的列表包含了各種可以在上述模塊上覆蓋的信息類型::
Search area input into the VI(搜索區域輸入到模塊)
Search lines used for edge detection(用於邊緣檢測的搜索線)
Edges detected along the search lines(沿着搜索線檢測到的邊)
Bounding rectangle of particles(顆粒的包羅矩形)
Center of particles (顆粒的中心)
Result of the VI (模塊的結果)
將模塊對應的布爾控件設置爲允許,來選擇覆蓋信息。
IMAQ Clear Overlay模塊用於從圖像中清除任何事先覆蓋信息。IMAQ Write File 2 模塊的IMAQ Write Image and Vision Info File 2實例可以將覆蓋信息保存到文件中。 也可以使用IMAQ Read Image and Vision Info 模塊從文件中將信息讀取到圖像中。
注意 當圖像大小或方向改變時,使用IMAQ Set Overlay Properties 模塊制定覆蓋信息的行爲。默認情況下,如果圖像大小或方向改變,校準和覆蓋信息會被從圖像中移除。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章