跳至內容
測試伺服器
開發伺服器

Template Matching vTool#

透過 Template Matching vTool,您可以在影像中偵測物件。偵測是以學習過的範本之像素灰階值資訊為基礎。

它最適合用於偵測邊緣模糊或界線不明顯的物件。Basler 建議將其用於小型物件,因為比較像素的灰階值資訊需要佔用大量的處理時間和 memory。

Template Matching vTool 透過 Image 輸入 pin 接收影像,並透過其 output pins 輸出關於所找到符合項目的資訊。

它還會輸出對齊轉換資料,讓 Image Alignment vTool 能夠將輸入影像與匹配期間使用的參考影像進行對齊。這可讓 Measurements vTools 能夠測量與參考影像位置不同的物件。

如果您使用 ROI Creator vTool 來指定感興趣區域,Template Matching vTool 會透過其 Roi 輸入 pin 接收 ROI 資料。在這種情況下,只有當符合模型的 default reference point 位於感興趣區域內時,才會找到物件。

感興趣區域可用於聚焦於該特定區域中的物件、消除潛在的錯誤候選物件,或是減少處理時間。

Template Matching vTool 的 Regions 輸出也可以用作具備 Roi 輸入接腳的 vTools 的 Roi 輸入。如需詳細資訊,請參閱 ROI Creator vTool 主題。

您可以使用 Calibration vTool 提供的轉換資料,以公尺為單位輸出世界座標中的匹配位置(Positions_m outpin pin 將會啟用)。若要這樣做,請在匹配前使用 Calibration vTool 並連接兩個 vTools 的 Transformation 輸出/輸入 pin。

若要購買 Template Matching vTool 的授權,請造訪 Basler 網站。

Template Matching Basic vTool

Template Matching 版本#

Template Matching vTool 提供兩種版本。下表顯示各版本之間的差異。按一下表格標題中的版本,即可直接跳至本主題中對應的區段。

Starter Basic
如何定義您的範本? 在所需物件周圍框選一個矩形。 使用筆刷工具描繪所需物件的輪廓。
您可以指定 timeout 嗎? 否 是
您可以定義 reference point 嗎? 否 是
是否可以偵測與已教導物件具有不同 angles 的物件? 否 是
Roi 輸入接腳的有效資料類型 RectangleF RectangleF, RectangleF Array, Region, Region Array
支援哪些 pixel formats 作為輸入? 8 位元單色或彩色影像 8 位元至 16 位元單色或彩色影像
購買授權 包含在 pylon Software Suite 中 造訪 Basler 網站

運作原理#

透過定義範本並將其套用至輸入影像,您可以收集關於符合項目的下列資訊:

  • 匹配評分
  • 位置
  • 方向
  • 包含匹配視覺化效果的區域

模板定義#

樣板比對的第一步是根據應用程式要偵測之物件的代表性影像來教導模型。

在此教導影像中,標記所需的區域並進行教導。您的應用程式會使用此模型在您的生產環境中偵測該物件。

只能偵測影像中完全顯現的物件。這表示在範本影像中標記的區域必須完全位於搜尋影像內。因此,標記所需物件時務必非常精確,並使用盡可能小的筆刷。

物件必須具有與教導模型中物件完全相同的大小,且與相機保持相同的距離。

樣板比對直接基於模型和搜尋影像的灰階值資訊。樣板比對使用標準化互相關演算法。

資訊

  • 選擇代表性影像作為範本。
  • 在範本影像中標記所需物件的區域時,請選擇該物件具有代表性且通常存在於搜尋影像中的區域。

使用參考點#

Template Matching Basic vTool 允許您在標記的物件中顯示參考點。根據預設,參考點會置於物件的重心。對於大多數應用程式而言,這樣做效果很好。

資訊

如果您使用的是 ROI,則預設參考點必須位於 ROI 內。

不過,如有需要,您可以將參考點移動至不同的位置。例如機器人分揀應用。在此類情境中,視覺系統必須考慮機器人的夾爪與要分揀物件的形狀,來決定機器人的抓取位置。在此情況下,您可以相應地放置參考點以適應這兩個面向。

若要顯示參考點,您必須先在教導影像中標記範本區域。

模型設定#

若要偵測相對於教導模型中的物件具有不同方向的物件,您可以定義目標角度,並新增允許物件偏離目標角度的容許誤差值。這僅適用於 vTool 的 Basic 版本。

執行設定#

  • 符合項 (Matches):如果應用程式中只可能出現有限數量的物件,您可能會希望將可能的符合項數量限制為確切的該數量。這將提高處理速度和穩健性。
  • Score:系統會為每個符合項目計算評分值。此評分是模型中的區域與搜尋影像中符合區域之間的相關係數。
    若要尋找最佳的 Score 設定,請從適中的值開始並執行一些 Test Images。觀察 Scores 接腳的輸出值。為了確實找到符合項目,務必將 Score 選項設為低於 Scores 接腳所輸出評分的值。這是最佳實務做法,建議保留一些容許誤差。
    選擇介於測試影像上所決定最低評分值 50–80 % 之間的評分值。如果評分設定得太低,也可能會偵測到一些非預期的符合項目。在這種情況下,請重新調整評分值,直到測試影像中僅找到預期的物件。
    如果影像中有數個符合項目,系統會依其評分降冪排序。
  • Timeout:對於時間至關重要的應用程式,您可以指定逾時。當處理時間會變動或無法預知時(例如影像未包含教導的物件),逾時很有幫助。透過指定逾時,偵測程序會在指定的逾時後停止並移至下一張影像。
    Basler 建議將逾時設定得比所需的時限稍微低一點。這是因為 vTool 不會立即停止偵測程序。因此,請將逾時設定為所需時限的 70–80 %。

輸出設定#

對齊轉換#

如果您想要輸出對齊轉換資料,可以在兩個選項之間進行選擇:

  • 單一值 (Single value):這僅輸出第一個符合項的對齊轉換資料。在這種情況下,輸出引腳名稱為 AlignmentTf。
  • 陣列 (Array):這會將所有找到的符合項的對齊轉換資料以陣列形式輸出。在這種情況下,輸出引腳名稱為 AlignmentTfs。

資訊

在此功能引入之前建立的配方仍然有效。如果您載入此類配方,對齊轉換輸出會設定為 Single value。如果需要,您可以變更此設定。

位置輸出#

在 vTool 的 Basic 版本中,您可以選擇是要輸出相符物件位置的絕對座標還是相對座標:

  • 絕對 (Absolute) 表示座標參考影像座標系的原點 (0,0)。區域像素的座標也以原點為基礎。
  • 相對 (Relative) 表示座標相對於參考點。區域像素的座標也會相應進行轉換。

使用校正#

相符位置也可以以公尺為單位輸出為世界座標。若要實現此目的,請將 Calibration vTool 的 Transformation 輸出 pin 連接到 Template Matching vTool 的 Transformation 輸入 pin。

設定 Template Matching vTool 時,必須使用與實際處理相同的校正設定。

資訊

  • 三維世界空間中產生二維影像的物件表面,至少必須大致位於空間中的同一平面上。如果是這種情況,則由於物件在世界中的不同位置以及影像中的邊緣而導致的透視失真影響可以忽略不計。
  • 由於光學設定,廣角鏡頭會引入顯著的透視失真。對於這些鏡頭,檢測物件相對於物距的高度應較低。或者,如果無法忽略物件高度,請在範本影像中選擇高度相同的區域。
  • 在校正設定期間,透過將校正板表面放置在此平面中來註冊物件的平面。

故障排除#

提示

以下是可能發生的潛在問題列表:

  • 訓練過程需要很長時間
  • vTool 的執行時間非常長
  • Recipe 非常大

如果您遇到其中任何問題,請考慮以下最佳化方法:

  • 如果您搜尋的物件是對稱的(例如矩形或圓形),或者預期物件只在某個位置範圍內,請限制檢測角度。
  • 如果您搜尋的物件具有清晰的邊緣,請考慮改用 Geometric Pattern Matching vTool。該演算法會偵測邊緣而不是影像部分,這可以加快處理速度並節省 Memory。
  • 如果您的影像解析度非常高,請嘗試使用 Image Transformer vTool 對影像進行降採樣,然後再搜尋範本。

常見使用案例#

  • Counting 物件:在這種情況下,只有 Scores 輸出引腳上的元素數量是相關的。
  • 在 image coordinates 中 Locating 物件:使用 Positions_px 和 Angles_rad 輸出引腳進行後續處理。
  • 在 world coordinates 中 Locating 物件:使用 Positions_m 和 Angles_rad 輸出引腳將物件的位置傳輸給例如機器人以抓取物件。

Template Matching Starter#

如果您想要偵測不同方向的物件,請啟用 Rotation 核取方塊。如此一來,Model Settings 區域中的選項就會變為可用。利用這些選項,您可以定義目標角度以及物件允許偏離目標角度的容差。使用 Increment 選項,您可以指定以分步方式進行偵測。選擇較大的增量可以加快處理速度,也就是使偵測更快。

您可以指定要在影像中偵測多少個物件,或是搜尋無限數量的物件。將相符項目的數量限制為預期數量可使處理更快、更強固。

透過調整分數值,您可以指定物件與所訓練物件的相符程度。

Template Matching Starter 使用邊界框來標記包含所需物件的區域。當您載入影像時,系統會自動顯示一個矩形。將其放置在所需的目標物件周圍,並根據需要調整其大小。您可以使用矩形的控制代碼來執行此操作,或者在 Rectangle Settings 區域中手動輸入所需的值。

設定 vTool#

若要設定 Template Matching Starter vTool:

Template Matching Starter vTool 設定

  1. 在 vTool Settings 區域的 Recipe Management 窗格中,按一下 Open Settings 或按兩下 vTool。
    隨即會開啟 Template Matching Starter 對話方塊。
  2. 擷取或開啟訓練影像。
    您可以使用 Single Shot 按鈕來擷取即時影像,或按一下 Open Image 按鈕來開啟現有影像。
  3. 在 Rectangle Settings 區域中,調整矩形的位置和大小时,使其符合您要用作範本的物件。
  4. 按一下工具列上的 Teach 按鈕來訓練匹配模型。
  5. 若有需要,請調整 Execution Settings 區域中的 Matches 設定,以限制符合項目的最大數量。
  6. 如有必要,請調整 Score 設定,以便只尋找到目標物件。
  7. 請指定您是要輸出單一符合項目還是所有找到的符合項目的對齊轉換資料。

您可以在 pin data view 中檢視範本比對的結果。在此處,您可以選擇要顯示哪些輸出。

Template Matching Basic#

如果您想要偵測不同方向的物件,請使用 Model Settings 區域中的選項。利用這些選項,您可以定義目標角度以及物件允許偏離目標角度的容差。

您可以指定要在影像中偵測多少個物件,或是搜尋無限數量的物件。將相符項目的數量限制為預期數量可使處理更快、更強固。

透過調整分數值,您可以指定物件與所訓練物件的相符程度。

對於時間關鍵型應用,您可以指定逾時時間。當處理時間會變動或無法預測時(例如影像未包含所教導的物件),逾時設定將會派上用場。

設定 vTool#

若要設定 Template Matching Basic vTool:

Template Matching Basic vTool 設定

  1. 在 vTool Settings 區域的 Recipe Management 窗格中,按一下 Open Settings 或按兩下該 vTool。
    隨即會開啟 Template Matching Basic 對話方塊。
  2. 擷取或開啟訓練影像。
    您可以使用 Single Shot 按鈕來擷取即時影像,或按一下 Open Image 按鈕來開啟現有影像。
  3. 使用畫筆在影像中標記所需的區域。
    若要修正繪圖,您可以使用橡皮擦或將其完全刪除。
  4. 按一下工具列上的 Teach 按鈕來訓練匹配模型。
  5. 如有需要,請按一下 Show Reference Point 來顯示參考點。
    參考點會顯示在範本區域的中央,且 Set Reference Point Manually 按鈕將會啟用。您現在可以將參考點拖曳至所需的位置。如果您再次按一下 Set Reference Point Manually,參考點將會貼齊回到其預設位置。
  6. 若有需要,請在 Model Settings 區域中定義旋轉角度與公差。
  7. 若有需要,請調整 Execution Settings 區域中的 Matches 設定,以限制符合項目的最大數量。
  8. 如有必要,請調整 Score 設定,以便只尋找到目標物件。
  9. 如果您想要指定逾時時間,請清除 No timeout 核取方塊,並在輸入欄位中輸入所需的逾時時間。
  10. 請指定您是要輸出單一符合項目還是所有找到的符合項目的對齊轉換資料。

您可以在 pin data view 中檢視範本比對的結果。在此處,您可以選擇要顯示哪些輸出。

Inputs#

Image#

直接接收來自 Camera vTool 或輸出影像之 vTool(例如 Image Format Converter vTool)的影像。

  • 資料類型:Image
  • 影像格式:8-bit 至 16-bit 單色或彩色影像。彩色影像會在內部轉換為單色影像。Starter 版本支援 8-bit Pixel Format。

ROI#

接受來自 ROI Creator vTool 或任何其他輸出區域或矩形的 vTool 之興趣區域。多個矩形或區域會在內部合併,以形成單一興趣區域。Starter 版本僅接受 RectangleF。

  • 資料類型:RectangleF、RectangleF Array、Region、Region Array

Transformation#

接受來自「Calibration vTool」的轉換資料。

  • 資料類型:轉換資料

Outputs#

Scores#

以遞減順序傳回符合項目的分數。

  • 資料類型:浮點數陣列

Positions_px#

以影像座標 (列/欄) 傳回符合項目的位置。

  • 資料類型:PointF 陣列

Positions_m#

以公尺為單位 (x/y) 的世界座標傳回符合項目的位置。

  • 資料類型:PointF 陣列

Angles_rad#

以度 (弧度) 傳回符合項目的方向。

  • 資料類型:浮點數陣列

Regions#

傳回找到的每個相符項目的區域。

  • 資料類型:Region Array

AlignmentTf#

傳回 Image Alignment vTool 用於將輸入影像中的物件與對齊期間使用的參考物件進行對齊的轉換資料。alignment transformation output 設為 Single value。

  • 資料類型:轉換資料

AlignmentTfs#

傳回 Image Alignment vTool 用於將輸入影像中的物件與對齊期間使用的參考物件進行對齊的轉換資料。alignment transformation output 設為 Array。

  • 資料類型:Transformation Data Array

典型前置項目#

典型後續元件#