跳到主要內容

AI 驅動文件

您想了解什麼?

使用 Segmenter

本教程將引導您透過 OV80i 的 AI 驅動 segmentation 功能,建立一個完整的 segmentation 檢測。您將學習如何透過讓攝像頭逐畫素地識別和測量這些特徵來檢測和分析諸如鉛筆標記、劃痕或其他缺陷。

影片指南

以下是本主題的實際演示: 如何在幾分鐘內建立 segmentation 配方

您將學習的內容:

  • 如何從頭到尾設定 segmentation 配方
  • 如何訓練 AI 模型以識別特定特徵
  • 如何基於 segmentation 結果配置透過/不透過邏輯
  • 如何在生產應用中最佳化 segmentation 的效能

Real-World Application: 本教程以鉛筆標記檢測為例,但相同原理同樣適用於檢測劃痕、裂紋、汙染或任何其他可透過視覺區分的特徵。

前提條件

  • OV80i 相機系統已設定並連線
  • 含有要檢測特徵的樣品件(例如帶鉛筆標記的紙張)
  • 對 AI 訓練概念有基礎理解
  • 具備對 Recipe Editor 和 Node-RED 功能的訪問許可權

教程概覽

我們將構建的內容: 一個能夠檢測紙張上的鉛筆標記並基於檢測到的標記數量來確定透過/不透過的 segmentation 模型。

所需時間: 45-60 分鐘(含訓練時間)

掌握的技能: AI 模型訓練、 segmentation 標註、透過/不透過邏輯配置

第 1 步:建立新的 Segmentation 配方

1.1 開始一個新配方

  1. All Recipes 頁面,點選右上角的 "+ New"
  2. 將顯示 Add A New Recipe 對話方塊
  3. 為您的配方輸入描述性 名稱(例如 "Pencil_Mark_Detection")
  4. 從下拉選單中選擇 "Segmentation" 作為 Recipe Type
  5. 點選 "OK" 建立新配方

為什麼選擇 Segmentation? 與識別整個物件的分類不同,Segmentation 會在影象中定位並測量特徵的特定部分,因此非常適用於缺陷檢測、汙染分析或測量覆蓋面積。

image.png

1.2 啟用並開啟 Recipe Editor

  1. 新建立的配方將顯示在 All Recipes 頁面,標記為 "Inactive"(未啟用)
  2. 在配方右側選擇 "Activate" 以啟用

Activate button.png

  1. 點選 "Activate and go to editor" 以確認並啟動配方編輯器

檢查點: 您應該在麵包屑導航中看到帶有您的 segmentation 配方名稱的 Recipe Editor 介面。

第 2 步:配置相機成像

2.1 訪問成像設定

  1. 在 Recipe Editor 中,點選左下角的 "Configure Imaging"
  2. 這將開啟成像配置頁面,您將在其中最佳化攝像頭設定

image.png

2.2 最佳化對焦設定

  1. 將包含鉛筆標記的樣品紙放置在攝像頭的視野範圍內
  2. 使用 Focus slider 以在鉛筆標記處獲得清晰對焦
  3. 也可以手動輸入對焦值以提高精度
  4. 如有可用,請使用 Focus View 檢視邊緣高亮和對焦分數

對焦提示:

  • 將焦點聚焦在缺陷將出現的表面
  • 確保鉛筆標記清晰且輪廓分明
  • 更高的對焦分數表示更好的對焦質量

2.3 配置曝光設定

  1. 調整 曝光 滑塊以實現合適的亮度
  2. 鉛筆痕跡應清晰可見,且不過曝紙面
  3. 先使用自動設定,必要時進行微調
  4. 監控實時預覽以實現實時檢視變化

曝光指南:

  • 鉛筆痕跡應與紙面具有良好的對比度
  • 避免過曝導致細微痕跡被沖淡
  • 確保整個檢測區域照明一致

2.4 設定 LED 照明

  1. 為你的應用選擇合適的 LED Light Pattern 以適應你的場景
  2. 對於鉛筆痕跡,通常均勻照明效果最佳
  3. 調整 LED Light Intensity 以儘量減少陰影和眩光
  4. 如存在反射問題,請測試不同的模式

2.5 調整 Gamma 與對比度

  1. 進行微調 Gamma 以增強鉛筆痕跡與背景之間的對比度
  2. 更高的 gamma 可以讓微小鉛筆痕跡更明顯
  3. 較低的 gamma 可以降低乾淨區域的噪聲
  4. 平衡 gamma 以在缺陷可見性和背景清晰度之間達到最佳平衡

2.6 儲存成像設定

  1. 一旦所有設定均已最佳化,請點選 "Save Imaging Settings"
  2. 現在相機配置已為該配方儲存
  3. 實時預覽應顯示清晰、對比度良好的影象

檢查點: 您的相機應產生清晰的影象,鉛筆痕跡應能夠從紙張背景中輕鬆區分。

Step 3: 配置模板與對齊

3.1 導航至 模板影象與對齊

  1. 在麵包屑導航中單擊 配方名稱 以返回到配方編輯器
  2. 從選單中選擇 “模板影象與對齊”

3.2 跳過對齊器以本教程

  1. 由於我們要在整張紙上檢測特徵,請單擊 “Skip Aligner”
  2. 這將禁用基於位置的對齊並使用整張影象
  3. 點選 “Save” 以應用更改

何時使用對齊器: 啟用對齊器當你需要在可能移動或旋轉的部件的特定位置檢測特徵時。對於整張紙檢查(如鉛筆痕跡),跳過對齊器通常是合適的。

image.png

Step 4: 設定檢查區域

4.1 導航至 檢查設定

  1. 返回到配方編輯器並選擇 “檢查設定”
  2. 這裡你將定義要分析的影象區域

4.2 配置 ROI(Region of Interest)

  1. 你將看到相機視野的預覽
  2. 拖動 ROI 框的角點 以調整其大小和位置
  3. 對鉛筆痕跡的檢測,通常覆蓋整張紙區域
  4. 確保 ROI 包含鉛筆痕跡可能出現的所有區域

ROI 最佳實踐:

  • 包含可能出現缺陷的所有區域
  • 排除邊緣或背景等不應分析的區域
  • 讓 ROI 足夠大以捕捉部件定位的變化
  • 避免包含文字、徽標或其他預期標記

4.3 儲存 ROI 配置

  1. ROI 放置正確後,點選 "Save"
  2. 現在檢查區域已為您的分割模型定義

第 5 步:對模型進行標註和訓練

5.1 導航至“標註與訓練”

  1. 返回配方編輯器並選擇“標註與訓練”
  2. 這是你將教會 AI 如何識別鉛筆標記的地方

image.png

5.2 配置檢測類別

  1. Inspection Types(檢測型別)下,單擊 "Edit"(編輯)
  2. 將類別重新命名為 "Pencil Mark"(或你特定的缺陷型別)
  3. 為視覺化檢測到的標記選擇一個醒目的 顏色
  4. 單擊 "Save"(儲存)以應用更改

5.3 捕捉訓練影象

  1. 至少拍攝 10 張圖片,覆蓋具有不同鉛筆標記的紙張
  2. 調整訓練示例:
    • 不同大小和形狀的鉛筆標記
    • 明暗不同的標記
    • 紙張上的不同位置
    • 不同的標記密度

訓練影象提示:

  • 包含微妙和明顯的標記
  • 捕捉你將遇到的各種光照條件
  • 在每張圖片中包含未標記的乾淨區域
  • 確保影象代表生產條件

5.4 標註訓練影象

  1. 對於每張訓練影象,使用 Brush tool(畫筆工具)來勾畫鉛筆標記
  2. 僅塗抹鉛筆標記 - 避免標註紙張或其他特徵
  3. 標註要精確但全面
  4. 在完成每張影象後,單擊 "Save Annotations"(儲存標註)

註釋最佳實踐:

  • 在將標註為 "pencil marks" 時保持一致性
  • 包含完整標記,而不僅是部分
  • 不要標註諸如文字或徽標之類的預期標記
  • 使用穩健、細緻的筆觸以獲得準確邊界

5.5 稽覈標註

  1. 請再次檢查所有標註的影象以確保準確性
  2. 查詢漏標或標註錯誤的區域
  3. 對需要糾正的影象重新標註
  4. 高質量的標註可提升模型效能

Step 6: 訓練分割模型

6.1 啟動訓練過程

  1. 標註至少 10 張影象後,單擊“Return to Live”(返回實時)
  2. 單擊 "Train Segmentation Model"(訓練分割模型)
  3. 輸入用於訓練的 Number of Iterations(迭代次數)

迭代指南:

  • 初始訓練從 100-200 次迭代開始
  • 更多迭代通常會提高準確性,但耗時更長
  • 監控訓練進度並按需調整
  • 在準確性要求與訓練時間之間取得平衡

image.png

6.2 監控訓練進度

  1. 單擊 "Start Training"(開始訓練)以開始該過程
  2. 將顯示一個訓練進度模態框,包含:
    • 當前迭代次數
    • 訓練準確性百分比
    • 預計剩餘時間

6.3 訓練控制選項

在訓練過程中,您可以:

  • Abort Training(中止訓練) - 如需修改,請中止訓練
  • Finish Training Early(提前完成訓練) - 當準確性足夠時停止訓練
  • Monitor Progress(監控進度) - 觀察準確性在迭代中的提升

訓練提示:

  • 達到目標準確度後,訓練將自動結束
  • 更高的準確性百分比表示更好的模型效能
  • 如果準確性進入平臺期,您可能需要更多訓練資料

6.4 評估訓練結果

  1. 訓練完成後,檢視最終準確性
  2. 單擊 "Live Preview" 以檢視實時分割結果
  3. 使用新樣本進行測試以驗證模型效能

成功指標:

  • 鉛筆標記以您選擇的顏色高亮顯示
  • 乾淨區域保持未標記
  • 檢測在不同標記型別之間保持一致
  • 模型對新樣本(未見樣本)的響應良好

第 7 步:配置透過/失敗邏輯

7.1 導航至 IO Block

  1. 返回配方編輯器並單擊 "Configure I/O" 或從麵包屑選單中選擇 "IO Block"

7.2 設定 Node-RED 流

  1. 刪除現有的 Classification Block Logic 節點
  2. 從左側調色盤,拖入:
    • All Block Outputs 節點(若尚未存在)
    • Function 節點
    • Final Pass/Fail 節點
  3. 連線節點:All Block Outputs → Function → Final Pass/Fail

image.png

7.3 配置透過/失敗邏輯

雙擊 Function 節點並選擇下列邏輯示例之一:

選項 1:若未檢測到缺陷則透過

// Pass if no pencil marks are found
const allBlobs = msg.payload.segmentation.blobs;
const results = allBlobs.length <1;
msg.payload = results;
return msg;

選項 2:若所有標記都較小則透過

// Pass if all marks are smaller than threshold
const threshold = 500; // pixels
const allBlobs = msg.payload.segmentation.blobs;
const allUnderThreshold = allBlobs.every(blob => blob.pixel_count < threshold);
msg.payload = allUnderThreshold;
return msg;

選項 3:若總覆蓋率較低則透過

// Pass if total marked area is below threshold
const threshold = 5000; // total pixels
const allBlobs = msg.payload.segmentation.blobs;
const totalArea = allBlobs.reduce((sum, blob) => sum + blob.pixel_count, 0);
msg.payload = totalArea < threshold;
return msg;

7.4 部署並測試邏輯

  1. 單擊 "Done" 以儲存函式
  2. 單擊 "Deploy" 以啟用邏輯
  3. 導航至 HMI 以測試您的透過/失敗邏輯

測試您的邏輯:

  • 使用乾淨的樣本進行測試(應透過)
  • 對輕微標記的樣本進行測試(應按您的標準透過/失敗)
  • 對標記嚴重的樣本進行測試(應失敗)
  • 驗證結果是否符合您的預期

第 8 步:最佳化與驗證

8.1 使用生產樣本進行測試

  1. 透過檢測對多份測試樣本進行測試
  2. 驗證檢測準確性是否達到您的要求
  3. 檢查透過/失敗邏輯是否正確工作
  4. 記錄任何問題或邊緣情況

8.2 進一步調整模型效能

如果檢測不一致:

  • 新增更多具有變體示例的訓練影象
  • 提高標註質量與一致性
  • 調整成像設定以獲得更好對比度
  • 使用更多迭代進行重新訓練

若透過/失敗邏輯需要調整:

  • 修改 Node-RED 函式中的閾值
  • 測試不同的邏輯方法
  • 考慮用於複雜決策的多重標準
  • 使用生產要求進行驗證

8.3 生產驗證

  1. 在實際條件下對真實生產部件進行測試
  2. 與質量團隊共同驗證,以確保標準符合要求
  3. 記錄效能指標,如檢測準確性和假陽性率
  4. 建立監控,以隨時間跟蹤效能

第 9 步:理解分割結果

9.1 分割資料結構

您的分割結果包括:

  • Blobs:單個檢測到的特徵(鉛筆標記)
  • Pixel Count:每個檢測到的特徵的畫素計數
  • Location Data:特徵出現的位置
  • Confidence Scores:對每次檢測的置信度評分

9.2 使用分割資料

您可以基於以下條件建立更為複雜的透過/透過邏輯:

  • Number of defects 檢測到的缺陷數量
  • Size of individual defects(畫素計數)單個缺陷的大小
  • Total defect area(所有畫素計數之和)總缺陷面積
  • Defect location(缺陷出現的位置)缺陷位置
  • Defect shape characteristics(如用於高階應用時的缺陷形狀特徵)

成功!您的分割模型已完成

您的 OV80i 分割檢測現在可以:

在影象中自動檢測鉛筆標記(或您自定義的特徵)

測量檢測到的特徵的大小和數量

根據您的特定標準做出透過/失敗決定

提供關於每個檢測到的特徵的詳細資訊

適應標記大小、形狀和位置的變化

關鍵要點

Segmentation vs. Classification:

  • Segmentation 在影象中發現並測量特徵
  • Classification 識別整個物件或總體條件
  • 使用 Segmentation 進行缺陷檢測、汙染分析或覆蓋度測量

Training Best Practices:

  • 高質量標註比數量更重要
  • 在訓練集中包含多樣化示例
  • 對生產樣本進行 thoroughly 測試
  • 根據需要進行監控和重新訓練

Through/Fail Logic:

  • 從簡單的條件開始,按需逐步增加複雜性
  • 用邊界情況和邊界樣本測試邏輯
  • 為保持一致性記錄你的標準
  • 考慮多因素以實現穩健的決策

下一步

現在您已經完成了第一份分割模型:

  1. 應用於其他用例 - 嘗試檢測不同型別的缺陷或特徵
  2. 與生產系統整合 - 連線到 PLCs 或質量管理系統
  3. 建立資料收集 - 跟蹤效能指標和檢測統計
  4. 培訓操作員 - 確保團隊理解如何監控和維護系統
  5. 計劃維護 - 安排定期模型更新和效能評審

🔗 相關連結