AI 驅動文件
您想了解什麼?
同一配方中的多檢視
本指南向您展示如何設定一個單一配方,以在不切換到其他配方的情況下對不同部件、角度或檢視進行檢測。這樣做有多種原因,但兩個主要使用場景是:
- 當拍攝之間沒有足夠的時間來切換配方時,
- 當對同一部件的多個部位或角度執行相同檢測時(例如在車身的五個不同位置檢查螺栓的存在/缺失)。在這種情況下,該方法可避免在不同配方中多次訓練相同的存在/缺失模型。
備註
以下示例是一個簡單版本,只有兩個檢視和一種檢測型別,但你可以將此相同技術應用於無限數量的檢測型別和檢視。在此檢測中,我們將檢查鑽頭盒兩側位的存在/缺失。 一側底部有五個位,另一側頂部和底部各有八個位。我們將具有16個位的一側稱為 side A,具有五個位的一側稱為 side B。
![]() | ![]() |
|---|---|
| Side A (16 bits) | Side B (5 bits) |
建立並訓練一個新配方
與每個側面單獨一個配方不同,由於佈局不同,我們將把兩側合併為一個配方,從而避免為存在/缺失模型訓練兩次。
-
建立一個新配方。在此案例中,它是一個 classification 配方,但同樣的原理也可用於 segmentation。
-
為第一檢視設定 Template Image 和 Alignment:
備註
當在同一配方中檢查多於一個檢視時,Aligner 將不可用。Template Image 和 Aligner 僅用於為 Inspection Setup 設定基準影象。

- 為側 A 繪製 ROI。給它們命名,以便識別所屬的側。在本示例中,我們將 ROI 命名為 A1-A16。

- 返回 Template Image 和 Alignment,以從新捕獲或庫中替換為側 B 的影象。

- 使用每個 ROI 旁邊的鎖圖示,以避免移動側 A 的 ROI,然後為側 B 繪製並命名 ROI。

備註
對於更復雜的配方,可以對需要檢測的檢視數量重複此過程。
- 使用來自兩側 A 和 B 的影象對分類模型進行標註和訓練。拍攝並標註側 A 時,不要標註側 B 的 ROI,反之亦然。
![]() | ![]() |
|---|---|
| Labeling side A (Pass) | Labeling side A (Fail) |
![]() | ![]() |
| Labeling side B (Pass) | Labeling side B (Fail) |
配置 Node-RED 邏輯
- 導航到 IO Block(從 Recipe Editor 的 Configure IO)以開啟您的 Node-RED 流。
- 建立一個源以告訴 OV20i 當前正在檢查哪一側。
備註
這可以是機器人位置資料、來自 PLC 的資訊,或您想要使用的任何其他資訊。下面的示例中,我們將使用兩個 Inject 節點來模擬:一個傳送字串 "A",一個傳送字串 "B"。
- 由於傳入的側資料可能是瞬態的,但我們想要檢查活動的是哪一側,因此將狀態資料儲存為一個 Flow 變數,該變數將持續到接收到下一條側資訊。將您的資料來源連線到包含以下程式碼的函式塊:
flow.set('side',msg.payload);
return msg;

- 可以透過開啟 context 資料側欄、傳送一條訊息,然後在 Flow variable 窗格中點選 重新整理 來測試側資料是否正確儲存。資料流窗格僅在使用小型 refresh 按鈕手動重新整理時才會更新。

- 一旦側資料正確儲存在 Flow variable 中,新增一個連線到 All Block Outputs 的 switch 節點。這將是根據 Flow variable 中活動的側來路由帶有檢測資料的訊息的區塊。將其配置為檢視 Flow 變數,並在 A 活動時將訊息路由到埠 1,B 活動時路由到埠 2。

備註
對於更復雜的配方,可以對需要檢測的檢視數量重複此過程。
- 將 switch 的每個輸出埠連線到一個 Classification Block Logic block,並根據您要檢測的該側的規則進行配置。Switch 節點一次只會將訊息路由到其中一個節點。下圖顯示了用於交換口 B 的配置。請注意它沒有引用 A 的 ROI,因此當檢測透過該節點路由時,該側的結果將被忽略。

- 最後,將 邏輯塊連線到 Inspection Pass/Fail block。這可以使結果在 HMI 上顯示,並傳遞給任何附加的 PLC 或其他流元件。

測試配方
現在 Node-RED 流已配置完畢,是時候對配方進行端到端測試。
- 首先,我們將使用 Node-RED 的 inject 節點傳送 A 側指令。然後使用 HMI 檢查一個合格部件。請注意,儘管 B 側的某些區域失敗,整個檢測仍然透過。

- 現在在 A 側移除一個鑽頭並再次檢測時,我們得到我們想要的失敗結果。

- 繼續到 B 側時,使用 Node-RED inject 傳送 B 訊號,並在上下文資料窗格的 Flow 變數部分點選 重新整理,以確保其已儲存。

- 現在切換到良品的 B 側時,儘管 A 側的區域全部失敗,檢測仍然透過。

恭喜!您現在已掌握在部件的多個檢視之間使用單一配方和模型的方法。這將允許在高速條件下執行復雜的檢測,並實現與機器人之間的緊密整合。它還將為您節省大量時間,避免為同一檢測在不同檢視上訓練多種模型。





