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

Geometric Pattern Matching vTool#

Geometric Pattern Matching vTool 允許您根據透過學習取得的圖案,透過邊緣來偵測影像中的物件。

它非常適合偵測具有明顯邊緣的大型物件,因為基於邊緣的匹配所需的處理時間和 memory 非常少。

Geometric Pattern Matching vTool 透過 Image 輸入 pin 接收影像,並透過其 output pins 輸出找到的匹配相關資訊。

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

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

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

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

若要購買 Geometric Pattern Matching vTool 的授權,請造訪 Basler 網站。該授權也包含 Image Alignment vTool。

Geometric Pattern Matching PRO vTool

Geometric Pattern Matching 版本#

Geometric Pattern Matching vTool 提供兩個版本。下表顯示不同版本之間的差異。按一下表格標題中的版本即可直接跳至本主題中的相關章節。

Basic Pro
是否能偵測到部分可見的圖案? 否 是
是否提供 Scaling? 否 是
傳回的匹配是否具有亞像素精度? 否 是
是否能偵測到邊緣polarity與模型中的邊緣不同的圖案? 否 是
您是否可以限制detection angle? 否 是
購買授權 造訪 Basler 網站 造訪 Basler 網站

運作原理#

透過定義圖案並將其套用到您的輸入影像,您可以收集有關匹配的以下資訊:

  • 匹配評分
  • 位置
  • 方向
  • 垂直與水平縮放比例因子(僅適用於該 vTool 的 PRO 版本)
  • 包含匹配視覺化效果的區域

圖案定義#

圖案匹配的第一步是根據應用程式要偵測之物件的代表性影像來進行模型學習。在此學習影像中,使用其中一支畫筆標記所需的圖案並進行學習。您的應用程式會使用此模型來偵測生產環境中相同的圖案。圖案是由邊緣所組成。

資訊

  • 選擇代表性影像作為範本。
  • 在範本影像中標記所需圖案的邊緣。選擇顯眼且通常存在於搜尋影像中的邊緣。
  • 畫筆標記的像素會構成圖案的一部分。了解這一點非常重要,因為 Geometric Pattern Matching Basic vTool 僅會偵測影像中完全可見的圖案。因此,Basler 建議盡可能使用最小的畫筆。

使用參考點#

您可以決定是否在標記的圖案中顯示參考點。根據預設,參考點會放置在您圖案的重心上。對於大多數應用程式而言,這樣做效果很好。

資訊

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

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

若要顯示參考點,您必須先在教導影像中標記圖案。

對比度#

Contrast 設定是指圖案邊緣的對比度。一方面,將對比度設得夠低,以便檢測所有相關的模型邊緣。另一方面,將對比度設得夠高,以排除雜訊或不需要的邊緣。在大多數情況下,啟用 Contrast Auto 可以提供良好的結果。如果啟用,vTool 會決定合適的對比度。

對比度包含在模型中。如果您在這裡進行變更,則必須重新教導模型。

Scaling#

Scaling 選項定義了模型與搜尋影像中物件之間的尺寸容差。

資訊

Scaling 僅適用於 vTool 的 PRO 版本。

提供三種不同的 Scaling 選項:

  • No scaling: 如果相機到物件的距離或物件尺寸本身保持不變,請選擇此選項。
  • Isotropic scaling: Isotropic scaling 可以補償相機與物件之間距離的變化或變化的物件尺寸。
  • Anisotropic scaling: Anisotropic scaling 意味著 Scaling 會在兩個方向進行:垂直與水平。因此,物件在長度和寬度上的變化程度可能會有所不同。例如,此選項可用於檢測具有不同長度和寬度的矩形。

資訊

  • 請始終選擇最簡單的縮放選項,以縮短處理時間並提升 vTool 的穩健性。若物件在應用程式中的比例保持不變,請使用「不縮放」;若物件大小會變化,請選擇「各向同性縮放」;僅在物件形狀會變化的情況下,才使用「各向異性縮放」。
  • 若應用程式需要縮放,請將縮放範圍設定得盡可能小。此舉不僅能縮短處理時間,還能提升 vTool 的穩定性。

縮放設定已包含在模型中。若您在此處進行變更,必須重新訓練該模型。

Polarity#

模式匹配演算法是基於模板與搜尋影像中的邊。所謂的「邊」,是指一組相鄰的邊點。

因此,邊緣點標示了背景與搜尋圖案之間的邊界,也就是從淺色像素到深色像素,或從深色像素到淺色像素的過渡。邊緣點的極性則指示了此灰度值過渡的方向。

關於搜尋圖片中邊緣點的極性,共有三種選項:

  • 完全一致:搜尋圖像中所有邊緣點的極性必須與範本圖像中的極性相同。若搜尋圖像中某些邊緣點的極性與範本圖像中的極性不同,系統仍可能偵測到該圖案,但得分會較低。
  • 相同與反轉:系統亦會偵測極性反轉的邊緣點。這表示無論是相同的圖案還是極性反轉的圖案,都會被偵測到。一個簡單的例子是圓形圖案的偵測:無論是淺色背景上的深色圓圈,還是深色背景上的淺色圓圈,都能透過同一套模型被偵測出來。
  • 忽略極性:邊緣點的極性將被忽略。這表示無論極性為何,系統都會偵測到該邊緣點。
    範例:您教導系統識別淺色背景上的灰色圓形圖案。因此,系統將偵測到淺色背景上的灰色圓形、深色背景上的淺色圓形,以及包含淺色與深色區域的混合背景上的圓形。 請注意,由於搜尋影像中符合指定最低邊緣對比度的邊緣點較少,配對分數可能會略微下降。

資訊

Basler 建議僅在您的應用程序確實需要時,才使用「相同與反轉」及「忽略極性」選項。特別是「忽略極性」選項,可能會增加偵測到不需要的圖案的機率。

下表列出了可用的各種極性選項:

極性設定 範本圖片 檢測到的特徵
完全相同 範本圖片 檢測到的特徵
相同且反向 範本圖片 檢測到的特徵 檢測到的特徵
忽略極性 範本圖片 檢測到的特徵 檢測到的特徵 檢測到的特徵

檢測角度#

在某些應用中,限制待檢測特徵相對於模型的旋轉角度範圍可能會很有幫助。這有助於提高處理速度和穩健性。

有兩個選項可用於定義檢測角度範圍:

  • 目標 (Target):這是特徵在允許被檢測到的同時,相對於模型旋轉的角度。請根據您要檢測的特徵的預期平均旋轉量來選擇數值。預設設定為 0 °,即假設搜尋影像中特徵的方向與模型相同。若要允許一定的變動,請選擇適當的容差。
  • 容差 (Tolerance):此選項允許您指定檢測角度的容差,即定義以目標角度為中心的角度範圍。預設設定為 180 °,即允許 360° 的旋轉。

根據目標和容差設定,可以按以下方式計算檢測角度範圍:它從 (目標 - 容差) 開始,到 (目標 + 容差) 結束。

範例:如果您知道應用程式中的物件可能會在 10° 到 30° 的範圍內旋轉,請將目標角度設為 20°,角度容差設為 10°。

限制角度對於具有任何對稱性的物件特別有用。對於矩形,請將容差設為 90°。對於圓形,請將容差設為 0°。

資訊

角度以逆時針方向為正。

執行設定#

  • 符合項 (Matches):如果應用程式中只可能出現有限數量的物件,您可能會希望將可能的符合項數量限制為確切的該數量。這將提高處理速度和穩健性。
  • 分數 (Score):系統會為每個符合項計算一個分數值。此分數表示影像中的實際物件與特徵模型的相似程度。例如,0.9 的分數值表示搜尋影像中邊緣有 90 % 的模型點能夠匹配。
    若要尋找最佳的 Score 設定,請從適中的數值開始並執行一些測試影像。觀察 Scores 引腳的輸出值。為了確實找到符合項,請務必將 Score 選項設定為低於 Scores 引腳輸出分數的數值。這是最佳做法,建議這樣做以保留一些容差。
    請選擇介於測試影像上所測得最低分數輸出值的 50–80 % 之間的數值。如果分數設定得太低,也可能會檢測到一些不需要的符合項。在這種情況下,請重新調整分數值,直到測試影像中只找到所需的特徵。
    如果影像中有數個符合項,系統會根據其分數按降序排序。
  • 逾時 (Timeout):對於時間緊迫的應用程式,您可以指定逾時時間。當處理時間變動或無法預測(例如影像不包含教導的特徵)時,逾時有助於處理這種情況。透過指定逾時,檢測過程會在指定的逾時後停止並繼續處理下一張影像。
    Basler 建議將逾時設定得比所需的時限稍低一點。這是因為 vTool 不會立即停止檢測過程。因此,請將逾時設定為所需時限的 70–80 %。

輸出設定#

對齊轉換#

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

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

資訊

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

位置輸出#

您可以選擇是要輸出對齊物件位置的絕對座標還是相對座標:

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

使用校正#

符合項的最終位置也可以用公尺為單位的世界座標輸出。為此,請將 Calibration vTool 的 Transformation 輸出引腳連接到 Geometric Pattern Matching vTool 的 Transformation 輸入引腳。

您必須使用與實際處理相同的校正設定來設定 Geometric Pattern Matching vTool。

資訊

  • 三維世界空間中物件的輪廓(會在影像中產生二維邊緣)必須大約位於同一平面上。如果是這種情況,則世界中物件的不同位置與影像中的邊緣所產生的透視變形影響可以忽略不計。
  • 對於因光學設置而產生顯著透視變形的廣角鏡頭,相對於物距而言,檢查物件的高度應較低。或者,如果物件高度無法忽略,請選擇位於相同高度水平的模型邊緣。
  • 在校準設定期間,將校準板的表面放置在該平面中,以對齊物件輪廓平面。

故障排除#

提示

如果 vTool 的執行時間非常長,請考慮以下優化:

  • 如果您搜尋的物件是對稱的(例如矩形或圓形),或者預期物件僅出現在特定區域,請限制偵測角度。
  • 如果需要 Scaling,請盡量限制 Scaling 因數。
  • 檢查您的極性設定。Identical 是最節省時間的選項,可能足以解決您的應用案例。
  • 如果已知匹配數量,請嘗試限制匹配數量。

常見使用案例#

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

以下顯示了圖案匹配結果的典型範例:

Geometric Pattern Matching Pro vTool Result

Geometric Pattern Matching Basic#

Geometric Pattern Matching Basic vTool 僅偵測在影像中完全可見的物件。在 pattern definition 期間標記的像素在訓練圖案時構成物件的一部分。

如果物件只有一個像素在影像外部,則根本無法偵測到該物件,或者偵測到的位置不正確且評分較低。因此,Basler 建議使用儘可能小的筆刷。

物件必須與訓練圖案中的物件大小完全相同且到相機的距離相同。如果您預期大小、距離或兩者會有所變化,請使用 Geometric Pattern Matching Pro vTool,因為此 vTool 提供 Scaling 選項。

Positions_px 輸出引腳會以整數值傳回物件的位置。如果需要亞像素精度,請使用 Geometric Pattern Matching Pro vTool。

設定 vTool#

若要設定 Geometric Pattern Matching Basic vTool:

Geometric Pattern Matching Basic vTool Settings

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

您可以在 pin data view 中檢視圖案比對的結果。在這裡,您可以選擇要顯示哪些輸出。

Geometric Pattern Matching PRO#

Geometric Pattern Matching Pro vTool 提供了最具靈活性圖案偵測功能。

使用 Scaling 選項,您可以確保即使物件的大小與學習的圖案不同,或是相機與物件之間的距離有所變異,仍能偵測到物件。此外,也能偵測到在影像區域中未完全顯示的物件,並以次像素精確度傳回符合項目的位置。

Polarity 選項可讓您指定圖案邊緣點是否必須與模型中的邊緣點具有相同的極性,或者是否也會偵測具有不同極性邊緣點的圖案。

使用 detection angle 選項,您可以限制圖案的旋轉角度允許與模型偏差多少。

設定 vTool#

若要設定 Geometric PatternMatching Pro vTool:

Geometric Pattern Matching Pro vTool 設定

  1. 在 vTool Settings 區域的 Recipe Management 窗格中,按一下 Open Settings 或按兩下 vTool。
    隨即會開啟 Geometric Pattern Matching Pro 對話方塊。
  2. 擷取或開啟訓練影像。
    使用 Single Shot 按鈕擷取即時影像,或按一下 Open Image 按鈕開啟現有影像。
  3. 使用筆刷在影像中標記所需的圖案。
    若要修正繪製內容,請使用橡皮擦或完全刪除。
  4. 在 Model Settings 區域中,調整 Contrast 以偵測模型的相關邊緣。
    模型邊緣會使用在 Edge visualization 中選取的顏色在教學影像中視覺化呈現。
  5. 在 Model Settings 區域中,若有需要請設定下列選項:

    • Scaling: 選取所需的選項,並根據應用程式的需求調整縮放範圍。
    • Polarity: 根據應用程式的需求選取所需的選項。
    • Detection angle: 根據應用程式的需求減少或調整偵測角度。
  6. 按一下工具列上的 Teach 按鈕來訓練匹配模型。

  7. 如有必要,請按一下 Show Reference Point 來顯示參考點。
    參考點會顯示在圖案的中心,且 Set Reference Point Manually 按鈕將會啟用。您現在可以將參考點拖曳至所需的位置。如果您再次按一下 Set Reference Point Manually,參考點將會貼齊回到其預設位置。
  8. 若有需要,請調整 Execution Settings 區域中的 Matches 設定,以限制符合項目的最大數量。
  9. 如有必要,請調整 Score 設定,以便只尋找到目標物件。
  10. 如果您想要指定逾時時間,請清除 No timeout 核取方塊,並在輸入欄位中輸入所需的逾時時間。
  11. 請指定您是要輸出單一符合項目還是所有找到的符合項目的對齊轉換資料。

您可以在 pin data view 中檢視圖案比對的結果。在這裡,您可以選擇要顯示哪些輸出。

Inputs#

Image#

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

  • 資料類型:Image
  • 影像格式:8 位元至 16 位元單色或彩色影像。彩色影像會在內部轉換為單色影像。

ROI#

接收來自 ROI Creator vTool 或任何其他輸出區域或矩形的 vTool 的興趣區域 (ROI)。多個矩形或區域會在內部合併,以形成單一興趣區域。

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

Transformation#

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

  • 資料類型:轉換資料

Outputs#

Scores#

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

  • 資料類型:浮點數陣列

Positions_px#

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

  • 資料類型:PointF 陣列

Positions_m#

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

  • 資料類型:PointF 陣列

Angles_rad#

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

  • 資料類型:浮點數陣列

VScalingFactors#

傳回符合項目的垂直縮放比例。

  • 資料類型:浮點數陣列

HScalingFactors#

傳回符合項目的水平縮放比例。

  • 資料類型:浮點數陣列

Regions#

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

  • 資料類型:Region Array

AlignmentTf#

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

  • 資料類型:轉換資料

AlignmentTfs#

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

  • 資料類型:Transformation Data Array

典型前置項目#

典型後續元件#