Geometric Pattern Matching vTool#
此方法最適合用於偵測具有銳利邊緣的物體以及較大的物體,因為基於邊緣的配對僅需極少的處理時間和記憶體。
Geometric Pattern Matching vTool 透過「影像」輸入腳位接收影像,並透過其輸出腳位輸出所找到的匹配資訊。
它還會輸出對齊轉換資料,讓「Image Alignment 」vTool能將輸入影像與配對過程中使用的參考影像進行對齊。這使得「Measurements」vTool 能夠測量位於參考影像以外不同位置的物件。
若您使用 ROI Creator vTool 來指定感興趣區域 (ROI),Geometric Pattern Matching vTool 會透過其Roi輸入引腳接收 ROI 資料。在此情況下,只有當配對模型的預設參考點位於感興趣區域內時,才會偵測到物件。
可利用感興趣區域來聚焦於該特定區域內的物件、排除潛在的錯誤候選項,或縮短處理時間。
您可以利用「校準 vTool」提供的變換資料,將配對結果的位置以世界座標系中的公尺為單位輸出(此時「Positions_m」輸出腳位將可使用)。要執行此操作,請在進行配對前使用「校準 vTool」,並將兩個 vTool 的「變換」輸出/輸入腳位相互連接。
如需購買「Geometric Pattern Matching 」vTool 的授權,請造訪Basler 網站。此授權亦包含「Image Alignment 」vTool。

Geometric Pattern Matching 版本#
Geometric Pattern Matching vTool 共有兩個版本。下表列出了各版本之間的差異。請點選表格標題中的某個版本,即可直接跳轉至本主題中的相關段落。
| Basic | Pro | |
|---|---|---|
| 是否偵測到部分可見的圖案? | 否 | 是 |
| 是否 是否 功能是否可用? | 否 | 是 |
| 匹配結果是否以亞像素級的精確度呈現? | 否 | 是 |
| 邊緣極性不同的圖案 極性的邊緣所構成的圖案 的圖案是否已被偵測到? | 否 | 是 |
| 能否限制 偵測角度嗎? | 否 | 是 |
| 購買授權 | 造訪 Basler website | 造訪 Basler website |
運作原理#
透過定義一個模式並將其套用至您的輸入影像,您可以取得關於匹配結果的以下資訊:
- 配對分數
- 職位
- 入學說明會
- 垂直與水平縮放係數(僅限 vTool Pro 版本提供)
- 提供賽事視覺化呈現的地區
模式定義#
模式配對的第一步,是根據應用程式需偵測的物件之代表性影像,建立一個模型。在此教學影像中,請使用其中一支筆標記所需的模式,並進行教學。您的應用程式將利用此模型,在生產環境中偵測相同的模式。模式是由邊界所構成的。
資訊
- 選擇一張具代表性的圖片作為範本。
- 在模板圖像中標記所需圖案的邊緣。請選擇那些明顯且通常出現在搜尋圖像中的邊緣。
- 筆所標記的像素屬於圖案的一部分。這一點很重要,因為Geometric Pattern Matching Basic vTool 僅能偵測到在影像中完全可見的圖案。因此,Basler 建議盡可能使用最細的筆。
使用參考點#
您可以選擇在已標記的圖案中顯示參考點。預設情況下,參考點會置於圖案的重心處。對於大多數應用情境而言,此設定已相當合適。
資訊
若您使用「感興趣區域」,預設的參考點必須位於該感興趣區域內。
不過,如有需要,您可以將參考點移動到其他位置。例如機器人拾取應用。在此類情境中,視覺系統必須在考量機器人的夾爪及待拾取物體的形狀後,確定機器人的抓取位置。此時,您可以據此調整參考點的位置,以兼顧這兩方面因素。
若要顯示參考點,您必須先在示教圖像中標記一個圖案。
對比度#
「對比度」設定指的是圖案邊緣的對比度。一方面,應將對比度設定得較低,以便偵測到所有相關的模型邊緣;另一方面,則應將對比度設定得足夠高,以排除雜訊或不需要的邊緣。在大多數情況下,啟用「自動對比度」功能可獲得良好的效果。若啟用此功能,vTool 會自動決定合適的對比度。
對比值已包含在模型中。若您在此處進行變更,必須重新訓練模型。
Scaling#
縮放選項用以定義模型與搜尋影像中物件之間的尺寸容差。
資訊
Scaling 此功能僅在 vTool 的 Pro 版本中提供。
提供三種不同的縮放選項:
- 不進行縮放:若相機與物體之間的距離或物體本身的大小恆定不變,請選擇此選項。
- 各向同性縮放:各向同性縮放可彌補相機與物體之間距離的變化,或物體尺寸的變化。
- 各向異性縮放:各向異性縮放意指縮放作用會沿著兩個方向進行:垂直方向與水平方向。因此,物件的長度和寬度可能會以不同程度發生變化。此選項對於偵測長寬不一的矩形等情況非常有用。
資訊
- 請始終選擇最簡單的縮放選項,以縮短處理時間並提高 vTool 的穩健性。若物件在應用程式中的比例保持不變,請使用「不縮放」;若物件大小會變化,請選擇「各向同性縮放」;僅在物件形狀會變化時,才使用「各向異性縮放」。
- 若應用程式需要縮放,請將縮放範圍設定得盡可能小。此舉亦可縮短處理時間,並提升 vTool 的穩定性。
縮放設定已包含在模型中。若在此處進行變更,必須重新訓練模型。
Polarity#
模式匹配演算法是基於模板與搜尋影像中的邊。所謂的邊,是一組相鄰的邊點。
因此,邊緣點標示了背景與搜尋圖案之間的邊界,也就是從淺色像素到深色像素,或是從深色像素到淺色像素的過渡。邊緣點的極性則指示了此灰度值過渡的方向。
關於搜尋圖片中邊緣點的極性,共有三種選項:
- 完全一致:搜尋圖像中所有邊緣點的極性必須與範本圖像中的極性相同。若搜尋圖像中某些邊緣點的極性與範本圖像中的極性不同,系統仍可能偵測到該圖案,但分數會較低。
- 相同與反轉:系統亦會偵測極性反轉的邊緣點。這意味著無論是相同的圖案還是反轉的圖案,都會被偵測到。一個簡單的例子是圓形圖案的偵測:無論是淺色背景上的深色圓圈,還是深色背景上的淺色圓圈,都會透過同一個模型被偵測到。
- 忽略極性:邊緣點的極性將被忽略。這表示無論極性為何,系統都會偵測到該邊緣點。
範例:您教導系統辨識「淺色背景上的灰色圓圈」這類圖案。因此,系統將會偵測到:淺色背景上的灰色圓圈、深色背景上的淺色圓圈,以及包含淺色與深色區域的混合背景上的圓圈。 請注意,由於搜尋影像中符合指定最低邊緣對比度的邊緣點較少,配對分數可能會略微下降。
資訊
Basler 建議僅在您的應用程序確實需要時,才使用「相同與反轉」及「忽略極性」這兩個選項。特別是「忽略極性」選項,可能會增加偵測到不需要的圖案的機率。
下表列出了可用的各種極性選項:
| 極性設定 | 範本影像 | 偵測到的模式 |
|---|---|---|
| 完全相同 | ||
| 相同與反轉 | ||
| 忽略極性 |
偵測角度#
在某些應用中,限制待偵測圖案的方位相對於模型可旋轉的角度,可能會有所助益。此舉可提高處理速度與系統的穩健性。
有兩種選項可定義偵測角度的範圍:
- 目標:此為圖案在模型基礎上允許旋轉的角,在此範圍內仍可被偵測到。請根據您欲偵測之圖案的預期平均旋轉角度選擇適當數值。預設設定為 0 °,也就是說,系統假設搜尋影像中圖案的方位與模型中的方位相同。若需容許一定程度的變動,請選擇適當的容差值。
- 容差:此選項可讓您指定偵測角度的容差,也就是說,它定義了以目標角度為中心的角度範圍。預設值為 180°,也就是說允許 360° 的旋轉。
根據目標值與容差設定,可按以下方式計算檢測角度的範圍:其起點為 (目標值 - 容差),終點為 (目標值 + 容差)。
範例:若您知道應用程式中的物件可能會在 10° 至 30° 的範圍內出現旋轉,請將目標角度設定為 20°,並將角度容差設定為 10°。
對於具有任何對稱性的物件而言,限制角度特別有用。對於矩形,請將容差設定為 90°;對於圓形,請將容差設定為 0°。
資訊
角度在逆時針方向上為正值。
執行設定#
- 匹配項:若應用程式的特性決定僅會出現有限數量的物件,您可能希望將可能的匹配項數量限制為與此數目完全相等。此舉將提升處理速度與系統的穩健性。
- 分數:每次配對都會計算出一個分數值。此分數顯示影像中的實際物件與模式模型的相似程度。例如,分數值為 0.9 表示所有模型點中有 90% 可與搜尋影像中的邊緣配對。
若要找出最佳的分數設定,請先從適中的數值開始,並對若干測試影像進行測試。 請觀察「Scores」接腳的輸出值。為了確保能可靠地找到匹配結果,請務必將「Score」選項設定為低於「Scores」接腳輸出值的數值。這是最佳實務做法,建議預留一些容差空間。
請選擇一個分數值,該值應介於測試影像中確定的最低分數輸出值的 50% 至 80% 之間。若分數設定過低,可能會一併偵測到一些不想要的匹配結果。若發生此情況,請重新調整分數值,直到測試影像中僅能找到預期的圖案為止。
若影像中存在多個匹配結果,系統會根據其分數由高至低進行排序。 - 超時:對於對時間要求嚴格的應用,您可以指定超時時間。當處理時間不穩定或無法預估時(例如,當影像中未包含已教導的模式時),設定超時時間便能發揮作用。透過指定超時時間,偵測程序將在指定時間後停止,並轉至下一張影像。
Basler 建議將超時設定為略低於預期時間限制。這是因為 vTool 不會立即停止檢測過程。因此,請將超時設定為預期時間限制的 70–80%。
輸出設定#
對齊轉換#
若要輸出對齊轉換資料,您可以從以下兩個選項中選擇:
- 單一值:此設定僅輸出第一個匹配項的對齊轉換資料。在此情況下,輸出引腳名稱為AlignmentTf。
- 陣列:此功能會將所有找到的匹配項之對齊轉換資料以陣列形式輸出。在此情況下,輸出引腳名稱為AlignmentTfs。
資訊
在推出此功能之前所建立的食譜,仍然可以正常運作。若您載入此類食譜,對齊變換的輸出將預設為「單一值」。如有需要,您可以變更此設定。
位置輸出#
您可以選擇要輸出匹配物件位置的絕對座標或相對座標:
- 「絕對」意指座標是以影像座標系的原點 (0,0) 為基準。區域像素的座標同樣是以該原點為基準。
- 「相對」意指座標是以參考點為基準的。區域內像素的座標會據此進行變換。
Using Calibration#
配對結果的位置也可輸出為以公尺為單位的世界座標。要實現此功能,請將「校準」vTool的「變換」輸出接腳連接至「Geometric Pattern Matching 」vTool 的「變換」輸入接腳。
設定Geometric Pattern Matching vTool 時,必須使用與實際處理時相同的校準設定。
資訊
- 在三維世界空間中,那些在影像中形成二維邊緣的物體輪廓,必須至少在某種程度上位於同一平面上。若情況確實如此,則因物體在世界中的位置與影像中邊緣的位置不同而產生的透視變形效應,可視為微不足道。
- 對於廣角鏡頭而言,由於其光學結構會造成顯著的透視失真,因此被檢視物體的高度應相對於物體至相機的距離而言較低。若物體高度無法忽略,則應選擇位於相同高度層級的模型邊緣。
- 在進行校準設定時,將校準板的表面置於物體輪廓平面內,以校準該平面。
疑難排解#
提示
如果 vTool 的執行時間過長,請考慮採取以下優化措施:
- 若您要搜尋的物體具有對稱性(例如長方形或圓形),或是預期該物體僅會出現在特定區域,請限制偵測角度。
- 如果需要進行縮放,請盡可能將縮放係數控制在最低範圍內。
- 請檢查您的極性設定。「相同」是節省時間最多的選項,且可能足以解決您的使用情境。
- 如果事先已知,請試著限制匹配的數量。
常見應用情境#
- 計數物件:在此情況下,僅「Scores」輸出腳位上的元素數量才具有參考價值。
- 在影像座標系中定位物件:請使用Positions_px和Angles_rad輸出接腳進行後續處理。
- 在世界座標系中定位物件:使用Positions_m和Angles_rad輸出接腳傳輸物件的位置,例如傳送給機器人以進行抓取。
- 確定物體的尺寸:使用VScalingFactors和HScalingFactors輸出接腳來測量尺寸或物體距離的變化。
以下為模式比對結果的一個典型範例:

Geometric Pattern Matching 基礎#
Geometric Pattern Matching Basic vTool 僅能偵測影像中完全可見的物件。在定義圖案時標記的像素,於教導圖案時將被視為該物件的一部分。
如果物體僅有 1 個像素位於影像範圍之外,該物體將完全無法被偵測到,或被偵測至錯誤位置並獲得較低分數。因此,Basler 建議使用盡可能小的筆。
物體的尺寸必須與所教導的圖案中的物體完全相同,且與相機的距離也必須相同。若預期尺寸或距離(或兩者皆有)會有所變化,請使用「Geometric Pattern Matching Pro」vTool,因為此 vTool 提供了一項 Scaling 選項。
「Positions_px」輸出接腳會以整數值返回物件的位置。若需要亞像素級的精確度,請使用「Geometric Pattern Matching 」Pro vTool。
設定 vTool#
要設定「Geometric Pattern Matching 」基本 vTool:

- 在vTool「設定」區域的「配方管理」窗格中,按一下「開啟設定」或雙擊該 vTool。
此時將開啟「Geometric Pattern Matching Basic」對話方塊。 - 擷取或開啟學習影像。
使用 Single Shot 按鈕擷取即時影像,或按一下 Open Image 按鈕開啟現有影像。 - 請使用筆在圖片上標記出想要的圖案。
若要修正圖畫,請使用橡皮擦,或將其完全刪除。 - 在「模型設定:對比度」區塊中,調整「對比度」以偵測模型的相關邊緣。
模型邊緣會在教學影像中,以「邊緣視覺化」中選定的顏色呈現。 - 請點擊工具列上的「教導」按鈕,以對應模型進行教導。
- 如有需要,請按一下「顯示參考點」以顯示參考點。
參考點將顯示於圖案中央,且「手動設定參考點」按鈕將變為可用狀態。您現在可以將參考點拖曳至所需位置。若再次按一下「手動設定參考點」,參考點將彈回其預設位置。 - 如有需要,請調整「執行設定」區域中的「匹配項」設定,以將匹配項的數量限制在最大值。
- 如有必要,請調整「分數」設定,以確保僅能找到目標物件。
- 若要指定超時時間,請取消勾選「無超時」核取方塊,並在輸入欄位中輸入所需的超時時間。
- 請指定您是要針對單一比對結果,還是針對所有找到的比對結果,輸出比對轉換資料。
您可以在引腳資料檢視中查看模式比對的結果。在此處,您可以選擇要顯示哪些輸出。
Geometric Pattern Matching Pro#
Geometric Pattern Matching Pro vTool 在圖案偵測方面提供了最大的靈活性。
使用 Scaling 選項,即使物件的大小與已訓練的模式不同,或是相機與物件之間的距離有所變化,仍可確保物件被偵測到。此外,即使物件在影像區域內未完全可見,也能被偵測到,且系統會以亞像素級的精確度回傳匹配位置。
「極性」選項可讓您指定:圖案邊緣點是否必須與模型中的邊緣點具有相同的極性,或是是否也會偵測到邊緣點極性不同的圖案。
透過「檢測角度」選項,您可以限制圖案的旋轉角度與模型之間的允許偏差範圍。
設定 vTool#
要設定「Geometric Pattern Matching Pro」vTool:

- 在vTool「設定」區域的「配方管理」窗格中,按一下「開啟設定」或雙擊該 vTool。
此時將開啟「Geometric Pattern Matching Pro」對話方塊。 - 擷取或開啟學習影像。
使用 Single Shot 按鈕擷取即時影像,或按一下 Open Image 按鈕開啟現有影像。 - 請使用筆在圖片上標記出想要的圖案。
若要修正圖畫,請使用橡皮擦,或將其完全刪除。 - 在「模型設定」區域中,調整「對比度」以偵測模型的相關邊緣。
模型邊緣將在教學影像中以「邊緣視覺化」中選定的顏色呈現。 -
在「模型設定」區域中,如有需要,請設定以下選項:
- Scaling:選擇所需的選項,並根據您的應用需求調整縮放範圍。
- 極性:請根據您的應用需求,選擇所需的選項。
- 偵測角度:請根據您的應用需求,適度縮小或調整偵測角度。
-
請點擊工具列上的「教導」按鈕,以對應模型進行教導。
- 如有需要,請按一下「顯示參考點」以顯示參考點。
參考點將顯示於圖案中央,且「手動設定參考點」按鈕將變為可用狀態。您現在可以將參考點拖曳至所需位置。若再次按一下「手動設定參考點」,參考點將彈回其預設位置。 - 如有需要,請調整「執行設定」區域中的「匹配項」設定,以將匹配項的數量限制在最大值。
- 如有必要,請調整「分數」設定,以確保僅能找到目標物件。
- 若要指定超時時間,請取消勾選「無超時」核取方塊,並在輸入欄位中輸入所需的超時時間。
- 請指定您是要針對單一比對結果,還是針對所有找到的比對結果,輸出比對轉換資料。
您可以在引腳資料檢視中查看模式比對的結果。在此處,您可以選擇要顯示哪些輸出。
Inputs#
Image#
可直接從「相機」vTool 或任何能輸出影像的 vTool(例如「Image Format Converter 」vTool)接收影像。
- 資料類型:圖片
- 影像格式:8 位元至 16 位元單色或彩色影像。彩色影像會在內部轉換為單色影像。
Roi#
接受來自 ROI Creator vTool 或任何其他輸出區域或矩陣的 vTool 的興趣區域 (ROI)。多個矩陣或區域會在內部合併,以形成單一興趣區域。
- 資料類型:RectangleF、RectangleF 陣列、Region、Region 陣列
Transformation#
接收來自 Calibration vTool 的轉換資料。
- Data type: Transformation Data
Outputs#
Scores#
回傳比賽的得分,並按降序排列。
- 資料類型:Float Array
Positions_px#
回傳匹配位置的影像座標(行/列)。
- 資料類型:PointF Array
Positions_m#
回傳匹配點在世界座標系中的位置(以公尺為單位的 (x/y) 座標)。
- 資料類型:PointF Array
Angles_rad#
回傳匹配項的方位角(單位為弧度)。
- 資料類型:Float Array
VScalingFactors#
回傳匹配項的垂直縮放係數。
- 資料類型:Float Array
HScalingFactors#
回傳匹配項的水平縮放係數。
- 資料類型:Float Array
Regions#
針對每個找到的匹配結果,皆會回傳一個區域。
- 資料類型:區域陣列
AlignmentTf#
回傳「Image Alignment 」vTool用於將輸入影像中的物件與配對過程中使用的參考物件對齊的變換資料。對齊變換的輸出設定為「單一值」。
- Data type: Transformation Data
對齊 Tfs#
回傳Image Alignment vTool用於將輸入影像中的物件與配對過程中使用的參考物件對齊所使用的變換資料。對齊變換的輸出設定為陣列。
- 資料類型:轉換資料陣列