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

Template Matching 版本#
Template Matching vTool 共有兩個版本。下表列出了各版本之間的差異。請點擊表格標題中的某個版本,即可直接跳轉至本主題中的相關段落。
| Starter | Basic | |
|---|---|---|
| 您如何定義您的範本? | 在目標物件周圍繪製一個矩形。 | 使用筆工具描繪目標物件的輪廓。 |
| 能否指定超時時間? | 否 | 是 |
| 你能定義什麼是參考點嗎? | 否 | 是 |
| 能否偵測到與所教導的物體呈不同角度的物體? | 否 | 是 |
| Roi 輸入 pin 的有效資料類型 | RectangleF | RectangleF, RectangleF Array, Region, Region Array |
| 支援哪些像素格式作為輸入? | 8 位元單色或彩色影像 | 8 位元至 16 位元的單色或彩色影像 |
| 購買授權 | 包含在 pylon Software Suite 中 | 造訪 Basler website |
運作原理#
透過定義一個模板並將其套用至您的輸入影像,您可以收集關於匹配項的以下資訊:
- 配對分數
- 職位
- 入學說明會
- 提供賽事視覺化呈現的地區
範本定義#
模板匹配的第一步,是根據您的應用程式需偵測之物件的代表性影像,來訓練一個模型。
在此訓練圖像中,請標記所需的區域並進行訓練。您的應用程式將使用此模型,在生產環境中偵測該物件。
只有在影像中完全可見的物件才能被偵測到。這意味著在模板影像中標記的區域必須完全位於搜尋影像之中。因此,請務必在標記目標物件時極為精確,並盡可能使用最細的筆。
物體的尺寸必須與教學模型中的物體完全相同,且與相機的距離也必須相同。
模板匹配直接基於模型與搜尋影像的灰階值資訊。模板匹配採用標準化互相關演算法。
資訊
- 選擇一張具代表性的圖片作為範本。
- 在模板圖像中標記目標物體的區域時,請選擇具有該物體特徵且通常會出現在搜尋圖像中的區域。
使用參考點#
Template Matching Basic vTool 允許您在已標記的物件中顯示一個參考點。預設情況下,參考點會置於物件的重心處。對於大多數應用情境而言,此設定已相當合適。
資訊
若您使用「感興趣區域」,預設的參考點必須位於該感興趣區域內。
不過,如有需要,您可以將參考點移動到其他位置。例如機器人拾取應用。在此類情境中,視覺系統必須在考量機器人的夾爪及待拾取物體的形狀後,確定機器人的抓取位置。此時,您可以據此調整參考點的位置,以兼顧這兩方面因素。
若要顯示參考點,您必須先在示教圖像中標記一個模板區域。
模型設定#
若要偵測與已訓練模型中物體方向不同的物體,您可以定義一個目標角度,並設定允許的公差值,以容許物體偏離該目標角度。此功能僅在 vTool 的基本版中提供。
執行設定#
- 匹配項:若應用程式的特性決定僅會出現有限數量的物件,您可能希望將可能的匹配項數量限制為與此數目完全相等。此舉將提升處理速度與系統的穩健性。
- 分數:系統會針對每次配對計算一個分數值。此分數即為模型中區域與搜尋影像中配對區域之間的相關係數。
若要找出最佳的「分數」設定,請先從適中的數值開始,並執行一些測試影像。觀察「分數」接腳的輸出值。為了能確實找到配對,請務必將 「分數」選項設定為低於「分數」接腳所輸出分數的數值。 這是最佳實務,建議預留一些容差空間。
請選擇一個分數值,該值應介於測試影像中測得的最低分數輸出值的 50% 至 80% 之間。若分數設定過低,可能會一併偵測到一些不需要的匹配結果。在此情況下,請重新調整分數值,直到測試影像中僅能找到預期的物件為止。
若影像中有多個匹配結果,系統會根據其分數由高到低進行排序。 - 超時:對於對時間要求嚴苛的應用,您可以指定超時時間。當處理時間不穩定或無法預測時(例如,當影像中未包含已教導的目標時),設定超時時間便能發揮作用。透過指定超時時間,偵測程序將在指定時間屆滿後停止,並轉至下一張影像。
Basler 建議將超時設定為略低於目標時間限制。這是因為 vTool 不會立即停止偵測程序。因此,請將超時設定為目標時間限制的 70–80 %。
輸出設定#
對齊轉換#
若要輸出對齊轉換資料,您可以從以下兩個選項中選擇:
- 單一值:此設定僅輸出第一個匹配項的對齊轉換資料。在此情況下,輸出引腳名稱為AlignmentTf。
- 陣列:此功能會將所有找到的匹配項之對齊轉換資料以陣列形式輸出。在此情況下,輸出引腳名稱為AlignmentTfs。
資訊
在推出此功能之前所建立的食譜,仍然可以正常運作。若您載入此類食譜,對齊變換的輸出將預設為「單一值」。如有需要,您可以變更此設定。
位置輸出#
在 vTool 的基本版本中,您可以選擇要輸出匹配物件位置的絕對座標或相對座標:
- 「絕對」意指座標是以影像座標系的原點 (0,0) 為基準。區域像素的座標同樣是以該原點為基準。
- 「相對」意指座標是以參考點為基準的。區域內像素的座標會據此進行變換。
Using Calibration#
配對結果的座標位置亦可輸出為以公尺為單位的世界座標系。要實現此功能,請將「Calibration」vTool的「Transformation」輸出引腳連接至「Template Matching 」vTool 的「Transformation」輸入引腳。
設定Template Matching vTool 時,必須使用與實際處理時相同的校準設定。
資訊
- 在三維世界空間中,產生二維影像的物體表面,必須至少大致上位於空間中的同一平面上。若情況確實如此,則因物體在世界中的位置與影像中的邊緣位置不同所造成的透視變形效應,可忽略不計。
- 廣角鏡頭會因光學結構而產生顯著的透視變形。對於這類鏡頭,待檢測物體的高度應相對於物體至相機的距離而言較低。若物體高度無法忽略,則應在模板影像中選擇位於相同高度層級的區域。
- 在進行校準設定時,將校準板的表面置於該物體的平面內,以校準該物體的平面。
疑難排解#
提示
以下是可能發生的一些問題清單:
- 教學過程需要很長的時間
- vTool 的執行時間非常長
- 這份食譜篇幅很長
若您遇到以下任何一種情況,請考慮採取以下優化措施:
- 若您要搜尋的物件具有對稱性(例如矩形或圓形),或預期該物件僅會出現在特定位置範圍內,請限制偵測角度。
- 若您要搜尋的物件具有清晰的邊緣,建議改用「Geometric Pattern Matching 」vTool。該演算法會偵測邊緣而非影像片段,藉此加速處理並節省記憶體。
- 如果您的圖片解析度非常高,請嘗試使用「Image Transformer 」vTool將圖片縮小,然後再搜尋該範本。
常見應用情境#
- 計數物件:在此情況下,僅「Scores」輸出腳位上的元素數量才具有參考價值。
- 在影像座標系中定位物件:請使用Positions_px和Angles_rad輸出接腳進行後續處理。
- 在世界座標系中定位物件:使用Positions_m和Angles_rad輸出接腳傳輸物件的位置,例如傳送給機器人以進行抓取。
Template Matching 開胃菜#
若要偵測不同方位的物件,請勾選「旋轉」核取方塊。如此一來,「模型設定」區域中的選項便會啟用。透過這些選項,您可以定義目標角度,以及物件允許偏離目標角度的容差範圍。使用「增量」選項,您可以指定以分步方式進行偵測。選擇較大的增量可加快處理速度,也就是說能讓偵測過程更迅速。
您可以指定要在影像中偵測的物件數量,或搜尋不限數量的物件。將匹配結果的數量限制在預期數量內,可使處理過程更快且更穩健。
透過調整分數值,您可以指定物件必須與訓練物件有多接近。
Template Matching Starter 會使用邊界框來標記包含目標物件的區域。當您載入圖片時,系統會自動顯示一個矩形。請將此矩形定位在目標物件周圍,並視需要調整其大小。您可以透過拖曳矩形的控制點來調整,或直接在「矩形設定」區域中手動輸入所需數值。
設定 vTool#
要設定「Template Matching Starter」vTool:

- 在vTool「設定」區域的「配方管理」窗格中,按一下「開啟設定」或雙擊該 vTool。
此時將開啟「Template Matching 啟動」對話方塊。 - 擷取或開啟教學圖片。
您可以使用「單張拍攝」按鈕擷取即時影像,或點擊「開啟圖片」按鈕開啟現有圖片。 - 在「矩形設定」區域中,請調整矩形的定位與大小,使其符合您欲用作範本的物件。
- 請點擊工具列上的「教導」按鈕,以對應模型進行教導。
- 如有需要,請調整「執行設定」區域中的「匹配項」設定,以將匹配項的數量限制在最大值。
- 如有必要,請調整「分數」設定,以確保僅能找到目標物件。
- 請指定您是要針對單一比對結果,還是針對所有找到的比對結果,輸出比對轉換資料。
您可以在引腳資料檢視中查看範本比對的結果。在此處,您可以選擇要顯示哪些輸出。
Template Matching 基礎#
若要偵測不同方位的物件,請使用「模型設定」區域中的選項。透過這些選項,您可以定義目標角度,以及物件允許偏離該目標角度的容差範圍。
您可以指定要在影像中偵測的物件數量,或搜尋不限數量的物件。將匹配結果的數量限制在預期數量內,可使處理過程更快且更穩健。
透過調整分數值,您可以指定物件必須與訓練物件有多接近。
對於對時間要求嚴格的應用,您可以指定超時時間。當處理時間不固定或無法預見時,設定超時時間會有所幫助,例如當影像中未包含已教導的物件時。
設定 vTool#
要設定「Template Matching 」基本 vTool:

- 在vTool「設定」區域的「配方管理」窗格中,按一下「開啟設定」,或雙擊該 vTool。
此時將開啟「Template Matching Basic」對話方塊。 - 擷取或開啟教學圖片。
您可以使用「單張拍攝」按鈕擷取即時影像,或點擊「開啟圖片」按鈕開啟現有圖片。 - 請使用畫筆在圖片中標記所需的區域。
若要修正繪圖,您可以使用橡皮擦進行修改,或將其完全刪除。 - 請點擊工具列上的「教導」按鈕,以對應模型進行教導。
- 如有需要,請按一下「顯示參考點」以顯示參考點。
參考點將顯示於範本區域的中心,且「手動設定參考點」按鈕將變為可用狀態。您現在可以將參考點拖曳至所需位置。若再次按一下「手動設定參考點」,參考點將彈回其預設位置。 - 如有需要,請在「模型設定」區域中設定旋轉角度與容差。
- 如有需要,請調整「執行設定」區域中的「匹配項」設定,以將匹配項的數量限制在最大值。
- 如有必要,請調整「分數」設定,以確保僅能找到目標物件。
- 若要指定超時時間,請取消勾選「無超時」核取方塊,並在輸入欄位中輸入所需的超時時間。
- 請指定您是要針對單一比對結果,還是針對所有找到的比對結果,輸出比對轉換資料。
您可以在引腳資料檢視中查看範本比對的結果。在此處,您可以選擇要顯示哪些輸出。
Inputs#
Image#
可直接從「相機」vTool 或任何能輸出影像的 vTool(例如「Image Format Converter 」vTool)接收影像。
- 資料類型:圖片
- 影像格式:8 位元至 16 位元的單色或彩色影像。彩色影像會在內部轉換為單色影像。入門版支援 8 位元像素格式。
Roi#
可接受來自「ROI Creator vTool 」或任何其他能輸出區域或矩形的 vTool 所提供的感興趣區域。多個矩形或區域會在內部合併,形成單一的感興趣區域。Starter 版本僅接受 RectangleF。
- 資料類型: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
Regions#
針對每個找到的匹配結果,皆會回傳一個區域。
- 資料類型:區域陣列
AlignmentTf#
回傳「Image Alignment 」vTool用於將輸入影像中的物件與配對過程中使用的參考物件對齊的變換資料。對齊變換的輸出設定為「單一值」。
- Data type: Transformation Data
對齊 Tfs#
回傳Image Alignment vTool用於將輸入影像中的物件與配對過程中使用的參考物件對齊所使用的變換資料。對齊變換的輸出設定為陣列。
- 資料類型:轉換資料陣列