跳到主要內容

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. 計劃維護 - 安排定期模型更新和效能評審

🔗 參見