跳到主要內容

AI 驅動文件

您想了解什麼?

使用分割器

本教程將指導您使用OV20i的AI驅動分割功能建立完整的分割檢測。您將學習如何透過逐畫素教會相機識別和測量鉛筆痕跡、劃痕或其他缺陷等特定特徵。

影片指南

檢視此主題的實際操作:如何在幾分鐘內建立分割配方

備註

OV10i不具備分割功能。

您將學習:

  • 如何從頭到尾設定分割配方
  • 如何訓練AI模型以識別特定特徵
  • 如何根據分割結果配置合格/不合格邏輯
  • 如何最佳化分割效能以便於生產使用

實際應用: 本教程使用鉛筆痕跡檢測作為示例,但相同的原理適用於檢測劃痕、裂縫、汙染或任何其他可以視覺區分的特徵。

先決條件​

  • 已設定並連線的OV20i相機系統
  • 具有您想要檢測特徵的樣本部件(例如,帶有鉛筆痕跡的紙張)
  • 對AI訓練概念的基本理解
  • 訪問配方編輯器和Node-RED功能

教程概述​

我們將構建的內容: 一個能夠檢測紙張上鉛筆痕跡並根據檢測到的標記數量確定合格/不合格的分割模型。

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

學習的技能: AI模型訓練、分割標註、合格/不合格邏輯配置

第一步:建立新的分割配方​

1.1 開始新的配方​

  1. 從所有配方頁面,點選右上角的**"+ 新建"**
  2. 將出現新增新配方的模態框
  3. 輸入您配方的描述性名稱(例如,“Pencil_Mark_Detection”)
  4. 從配方型別下拉選單中選擇**“分割”**
  5. 點選**“確定”**以建立新配方

為什麼選擇分割? 與識別整個物件的分類不同,分割在影象中查詢並測量特定特徵,非常適合缺陷檢測、汙染分析或測量覆蓋區域。

image.png

1.2 啟用並開啟配方編輯器​

  1. 您的新配方將在所有配方頁面上標記為**“未啟用”**
  2. 選擇配方右側的**“啟用”**

Activate button.png

  1. 點選**“啟用並轉到編輯器”**以確認並啟動配方編輯器

檢查點: 您應該在麵包屑選單中看到配方編輯器介面及您的分割配方名稱。

第二步:配置相機成像​

2.1 訪問成像設定​

  1. 在配方編輯器中,點選左下角的**“配置成像”**
  2. 這將開啟成像配置頁面,您將在此最佳化相機設定

image.png

2.2 最佳化焦距設定​

  1. 將帶有鉛筆標記的樣本紙放置在相機的視野中
  2. 使用 焦距滑塊 使鉛筆標記達到清晰聚焦
  3. 您也可以手動輸入焦距值以提高精度
  4. 使用 焦距檢視(如果可用)檢視邊緣高亮和焦距評分

焦距提示:

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

2.3 配置曝光設定​

  1. 調整 曝光 滑塊以獲得適當的亮度
  2. 鉛筆標記應清晰可見且不應過度曝光紙張
  3. 從自動設定開始,根據需要進行微調
  4. 監控實時預覽以實時檢視變化

曝光指南:

  • 鉛筆標記應與紙張有良好的對比度
  • 避免過度曝光,以免沖淡細微標記
  • 確保整個檢測區域的照明一致

2.4 設定 LED 照明​

  1. 選擇適合您應用的 LED 燈光模式
  2. 對於鉛筆標記,均勻的照明通常效果最佳
  3. 調整 LED 燈光強度 以最小化陰影和眩光
  4. 如果反射是一個問題,請測試不同的模式

2.5 調整伽瑪和對比度​

  1. 微調 伽瑪 以增強標記與背景之間的對比度
  2. 更高的伽瑪可以使細微的鉛筆標記更清晰可見
  3. 較低的伽瑪可以減少乾淨區域的噪聲
  4. 平衡伽瑪以最佳化缺陷可見性和背景清晰度

2.6 儲存成像設定​

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

檢查點: 您的相機應能生成清晰的影象,其中鉛筆標記與紙張背景易於區分。

Step 3: 配置模板和對齊​

3.1 導航到模板影象和對齊​

  1. 點選麵包屑選單中的 配方名稱 返回配方編輯器
  2. 從選單中選擇 "模板影象和對齊"

3.2 跳過對齊器以進行本教程​

  1. 由於我們正在檢測整個紙張上的特徵,請點選 "跳過對齊器"
  2. 這將禁用基於位置的對齊並使用完整影象
  3. 點選 "儲存" 以應用更改

何時使用對齊器: 當您需要檢測可能移動或旋轉的部件上特定位置的特徵時,請啟用對齊器。對於像鉛筆標記這樣的全紙檢查,跳過對齊器通常是合適的。

image.png

Step 4: 設定檢測區域​

4.1 導航到檢測設定​

  1. 返回配方編輯器並選擇 "檢測設定"
  2. 這是您將定義要分析的影象區域的地方

4.2 配置興趣區域(ROI)​

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

ROI 最佳實踐:

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

4.3 儲存 ROI 配置​

  1. 一旦您的 ROI 正確定位,請點選 "儲存"
  2. 檢查區域現在已為您的分割模型定義

第 5 步:標記並訓練您的模型​

5.1 導航到標記和訓練​

  1. 返回配方編輯器並選擇 "標記和訓練"
  2. 在這裡,您將教 AI 識別鉛筆標記的樣子

image.png

5.2 配置檢查類別​

  1. 在 檢查型別 下,點選 "編輯"
  2. 將類別重新命名為 "鉛筆標記"(或您特定的缺陷型別)
  3. 選擇一種獨特的 顏色 來視覺化檢測到的標記
  4. 點選 "儲存" 以應用更改

5.3 捕獲訓練影象​

  1. 拍攝至少 10 張 帶有不同鉛筆標記的紙張影象
  2. 變化訓練示例:
    • 不同的鉛筆標記大小和形狀
    • 淺色和深色標記
    • 紙張上的不同位置
    • 不同的標記密度

訓練影象提示:

  • 包括細微和明顯的標記
  • 捕獲您將遇到的各種光照條件
  • 每張影象中包括沒有標記的乾淨區域
  • 確保影象代表生產條件

5.4 註釋訓練影象​

  1. 對於每張訓練影象,使用 畫筆工具 在鉛筆標記上描繪
  2. 僅繪製鉛筆標記 - 避免標記紙張或其他特徵
  3. 在註釋時要準確但全面
  4. 完成每張影象後點選 "儲存註釋"

註釋最佳實踐:

  • 在標記“鉛筆標記”時保持一致
  • 包括完整的標記,而不僅僅是部分
  • 不要標記預期的標記,如文字或徽標
  • 使用穩定、細緻的畫筆筆觸以確保準確的邊界

5.5 審查您的註釋​

  1. 仔細檢查所有標記的影象 以確保準確性
  2. 查詢遺漏的標記或標記錯誤的區域
  3. 重新註釋任何需要更正的影象
  4. 高質量的註釋會導致更好的模型效能

第 6 步:訓練分割模型​

6.1 開始訓練過程​

  1. 一旦您標記了至少 10 張影象,請點選 "返回實時"
  2. 點選 "訓練分割模型"
  3. 輸入訓練的 迭代次數

迭代指南:

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

image.png

6.2 監控訓練進度​

  1. 點選 "開始訓練" 以開始過程
  2. 將出現一個訓練進度模態,顯示:
    • 當前迭代次數
    • 訓練準確性百分比
    • 剩餘估計時間

6.3 訓練控制選項​

在訓練期間,您可以:

  • 中止訓練 - 如果需要進行更改,請停止
  • 提前結束訓練 - 當準確性足夠時停止
  • 監控進度 - 觀察準確性隨迭代提高

訓練提示:

  • 當達到目標準確性時,訓練將自動完成
  • 更高的準確性百分比表示更好的模型效能
  • 如果準確性停滯,您可能需要更多的訓練資料

6.4 評估訓練結果​

  1. 訓練完成後,檢視最終準確率
  2. 點選 "實時預覽" 檢視實時分割結果
  3. 使用新樣本測試以驗證模型效能

成功指標:

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

第 7 步:配置合格/不合格邏輯​

7.1 導航到 I/O 塊​

  1. 返回配方編輯器,點選 "配置 I/O" 或從麵包屑選單中選擇 "IO 塊"

7.2 設定 Node-RED 流程​

  1. 刪除現有的分類塊邏輯 節點
  2. 從左側調色盤中拖入:
    • 所有塊輸出 節點(如果尚未存在)
    • 函式 節點
    • 最終合格/不合格 節點
  3. 連線節點:所有塊輸出 → 函式 → 最終合格/不合格

image.png

7.3 配置合格/不合格邏輯​

雙擊 函式 節點並選擇以下邏輯示例之一:

選項 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. 點選 "完成" 儲存函式
  2. 點選 "部署" 啟用邏輯
  3. 導航到 HMI 測試您的合格/不合格邏輯

測試您的邏輯:

  • 使用乾淨的紙張測試(應合格)
  • 使用輕微標記的紙張測試(應根據您的標準合格/不合格)
  • 使用重度標記的紙張測試(應不合格)
  • 驗證結果是否符合您的預期

第 8 步:最佳化和驗證​

8.1 使用生產樣本測試​

  1. 透過您的檢測執行多個測試樣本
  2. 驗證檢測準確率是否滿足您的要求
  3. 檢查合格/不合格邏輯是否正常工作
  4. 記錄任何問題或邊緣情況

8.2 微調模型效能​

如果檢測不一致:

  • 新增更多具有不同示例的訓練影象
  • 改善註釋質量和一致性
  • 調整成像設定以獲得更好的對比度
  • 進行額外迭代重新訓練

如果合格/不合格邏輯需要調整:

  • 修改您 Node-RED 函式中的閾值
  • 測試不同的邏輯方法
  • 考慮多種標準以進行復雜決策
  • 根據生產要求進行驗證

8.3 生產驗證​

  1. 在實際條件下使用真實生產零件測試
  2. 與質量團隊驗證 以確保標準符合要求
  3. 記錄效能指標 如檢測準確率和假陽性率
  4. 設定監控 以跟蹤效能隨時間的變化

第 9 步:理解分割結果​

9.1 分割資料結構​

您的分割結果包括:

  • Blobs:單個檢測到的特徵(鉛筆標記)
  • 畫素計數:每個檢測到的特徵的大小
  • 位置資訊:特徵被發現的位置
  • 置信度分數:模型對每個檢測的確定程度

9.2 使用分割資料​

您可以基於以下內容建立複雜的合格/不合格邏輯:

  • 檢測到的缺陷數量
  • 單個缺陷的大小(畫素計數)
  • 總缺陷面積(所有畫素計數的總和)
  • 缺陷位置(缺陷出現的位置)
  • 缺陷形狀特徵(如果需要用於高階應用)

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

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

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

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

✅ 根據您的特定標準做出合格/不合格決策

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

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

關鍵要點​

分割與分類:

  • 分割 在影象中查詢和測量特定特徵
  • 分類 識別整個物體或整體條件
  • 使用分割進行缺陷檢測、汙染分析或覆蓋測量

培訓最佳實踐:

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

合格/不合格邏輯:

  • 從簡單標準開始,根據需要增加複雜性
  • 使用邊緣案例和臨界樣本測試邏輯
  • 記錄您的標準以保持一致性
  • 考慮多個因素以做出穩健的決策

下一步​

現在您已完成第一個分割模型:

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

🔗 參見​