學習海康VisionMaster之字符缺陷檢測

? ? ?前言:差不多三個月沒更新了,天天碼代碼,實在是太忙了,有時候也在想這么忙到底是不是工作方法的問題,怎么樣才能變成大師呢!

一:進一步學習

今天學習下VisionMaster中的字符缺陷檢測:包括字符臟污、缺失、差異等缺陷。該模塊適用于檢測各類部件的字符缺陷,如半導體芯片上雕刻字符缺陷和包裝行業印刷字符缺陷

二:開始學習

? ? ?1:什么是字符缺陷檢測?

字符缺陷檢測主要用于解決工業生產中產品標識(如生產日期、批次號、序列號等)的質量管控問題。它能夠自動識別字符區域的各種缺陷,如印刷不清、字符缺損、污染、墨跡過濃或過淡、位置偏移等。傳統人工檢測不僅效率低,且容易因疲勞產生漏檢。

? ? ?2:應用場景

海康VisionMaster的字符缺陷檢測功能在工業領域應用廣泛,它主要替代傳統人工目檢,自動識別產品表面字符的各種質量問題,如漏印、錯印、多墨、缺損、模糊、臟污、位置偏移等。這對于保證產品標識質量、實現生產自動化和滿足嚴格的可追溯性要求至關重要。

為了讓你能快速了解它的應用全貌,我用一個表格來概括其主要應用領域和檢測內容:

應用領域典型產品/場景舉例主要檢測內容/缺陷類型核心價值與備注
電子與半導體手機殼、電池(如動力電池)、PCB線路板字符內容是否正確、清晰、完整,有無漏印、錯印防止混料,確保產品追溯性(如電池混裝判斷)
醫藥與包裝藥盒、包裝盒(如牛奶包裝)、標簽生產日期、保質期、批次號等噴碼是否清晰、無誤,有無打花、缺碼、污點保障用藥安全,避免流通障礙,深度學習對復雜背景和變化字符處理優勢明顯
食品與飲料食品包裝、飲料瓶蓋、乳制品包裝生產日期、保質期、批號等噴印質量,有無缺失、模糊、污染確保產品標識合規,維護品牌形象,通常需在高速度生產線上穩定運行
汽車與零部件汽車零件、發動機部件、VIN碼零件編碼、符號、標識是否清晰可讀,內容是否正確滿足行業嚴格的質量追溯標準
日用與消費品鍵盤字符、衣物標簽字符、橡膠按鍵、紙杯字符印刷質量,有無缺損、模糊、錯誤提升產品外觀品質和用戶體驗(如紙杯杯沿、內壁臟污檢測)
物流與倉儲包裹面單、貨架標簽、檔案文件條碼、字符識別(OCR),用于分揀、盤點、數字化管理讀碼與字符識別同步進行,提升物流效率
其他工業場景電容、電子元器件、卡片(如IC卡、銀行卡)絲印質量、字符內容準確性

三:直接上案例

1:先導入需要測試的圖片集合

2:使用輪廓定位,把兩個組件的線連起來,這里是需要設定模版匹配功能,這樣圖像不管怎么旋轉都能準確定位圖像位置,具體操作步驟可以參考前面課程

3:拖入位置修正功能:這個非常重要,這里也不提了,可以參考上一篇筆記

4:拖入字符缺陷檢測模塊

5:雙擊組件,開始設定參數:

基本參數這里就是畫ROI,設定跟蹤參數和之前的工具是一樣的方法

下面開始設定參數:點擊字符模版,會彈出字符模版設定畫面

(1):第一步先畫ROI,將需要識別的字符框進去

*******假設我先訓練 框的這些字符******‘

(2):點擊生成模型(QAQ這個我也研究看半天,不點生成模型,下一步就點不了)

看到這個字符自動識別到了,變成綠色的了,代表初步OK

?------>參數設定:這個其實和前面學習的模版匹配原理是一樣的,就是生成輪廓,當然這里我選擇的都是自動,我看效果挺好的。如果覺得效果不好,可以改成手動,調節對比度試試

(3):在點擊下一步:這個窗口上面有提示,開始設定檢測目標

(4): 再次畫一個模版訓練框,然后直接點提取字符查看效果,這里就是自動分割字符的算法了

? ------>參數設定:看上圖有一個字母N沒有識別到,這個時候就要調整參數了

? ? ? 1):最小字符面積:設置面積閾值,查找面積大于設置數值的目標字符

? ? ? 2):最小字符寬度:設置字符寬度的閾值,查找寬度大于設置數值的目標字符

? ? ? 3):二值化尺度:設置的數值越低,可提取的二值化點越少,但也越可靠,請根據實際需求設置

? ? ? 4):二值化窗口大小:設置二值化點的領域的大小,上圖中我就是調整這個參數的,看官方文檔比較簡單,可以自己多試試效果??

? ? ? 5):二值化閾值:將字符與背景區分開來

? ? ?6):字符極性:這個根據實際來設定

? ? ?7):字符分割方式:感覺3個效果差不多,我就選了一個字符分割

(5): 上述參數設定好之后,在點擊下一步 設置精定位

? ?這個時候能看到每個字符旁邊會生成一個測量框,但是發現生成的框和字符是挨著的,然后訓練模版時候,字符旁邊的輪廓線可能會出不來,所以這里可以單獨調整每一個字符框的大小

這個看著字符效果就杠杠的

------>參數設定:這邊的參數感覺也不用說了,和第一頁的參數差不多,就是要把模版輪廓抓好就行了

(6): 上述參數設定好之后,在點下一步:這是檢測區域掩膜,這里一般不用,直接跳過

(7): 最后一個統計訓練,如下圖,就把當前設定的圖像添加進去,點統計當前圖像即可

最后看到生成了字碼的預覽圖,就代表模版創建OK了

6:上述是整個的創建字碼模版的步驟,接下來還要設定字碼檢測的參數

(1):缺陷類型:共有三種類型,可選亮缺陷、暗缺陷、亮暗缺陷,根據實際的來

(2):亮/暗缺陷閾值:這是亮/暗缺陷的最小灰度值,就是差不多二值化的意思

(3):亮/暗缺陷尺度:亮/暗缺陷的最小尺度

(4):邊緣容忍度:取值越大 對缺陷容忍程度就越高,如果邊緣部分報警比較多,可以適當調大一點

(5):面積大小閾值:這是最小面積,超過該數值的面積才算缺陷

四:實測:上述設定好參數,開始實際測量看看效果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/98031.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/98031.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/98031.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

若依4.8.1打包war后在Tomcat無法運行,404報錯的一個解決方法

背景 最近使用若依4.8.1進行二次開發,接著嘗試打包成war包進行部署,結果出現了404,提示“HTTP狀態 404 - 未找到,請求的資源[/ruoyi-admin/]不可用”,翻了網上的教程,包括看了官方的解疑都沒有說到該情況。…

華清遠見25072班網絡編程學習day6

重點內容:數據庫基本概念:數據(Data):能夠輸入計算機并能被計算機程序識別和處理的信息集合數據 (Database)數據庫是在數據庫管理系統管理和控制之下,存放在存儲介質上的數據集合重要概念&#…

機器學習-網絡架構搜索

Neural Architecture Search(NAS) 一個神經網絡有不同類型的超參數 拓撲結構:resnet,mobilenet 單獨層:核大小,卷積層的通道,輸出隱藏單元的個數NAS自動設計神經網絡 如何設計搜索空間 如何探索…

云手機在辦公領域中自動化的應用

云手機在辦公自動化領域正逐漸展現出強大的潛力,以下是其在辦公中自動化應用的多方面介紹:企業借助云手機搭載的辦公軟件,可實現文檔處理自動化,對于重復性文檔任務,如制作每月固定格式的銷售報告、財務報表等&#xf…

c++多線程(3)------休眠函數sleep_for和sleep_until

操作系統:ubuntu22.04 IDE:Visual Studio Code 編程語言:C11 算法描述 這兩個函數都定義在 頭文件中,屬于 std::this_thread 命名空間,用于讓當前線程暫停執行一段時間。函數功能sleep_for(rel_time)讓當前線程休眠一段相對時間&…

Intel RealSense D455深度相機驅動安裝與運行

Intel RealSense D455深度相機安裝過程遇到過一些報錯,所以記錄一下安裝過程!!!以后方便回顧。 1.安裝最新的IntelRealSense SDK2.0 (1) 注冊服務器的公鑰 sudo apt-get update && sudo apt-get upgrade && su…

從異步到半同步:全面解讀MySQL復制的數據一致性保障方案

MySQL 主從復制(Replication)是其最核心的高可用性和擴展性功能之一。它的原理是將一個 MySQL 實例(稱為主庫 Master)的數據變更,自動同步到另一個或多個 MySQL 實例(稱為從庫 Slave)的過程。下…

PostgreSQL GIN 索引揭秘

文章目錄什么是GIN Index?示例場景GIN Index的原理GIN Index結構MetapageEntriesLeaf PagesEntry page 和 Leaf page 的關系Posting list 和posting tree待處理列表(Pending List)進階解讀GIN index索引結構總結什么是GIN Index? GIN (Generalized In…

開源多模態OpenFlamingo橫空出世,基于Flamingo架構實現圖像文本自由對話,重塑人機交互未來

注:此文章內容均節選自充電了么創始人,CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

電子衍射模擬:基于GPU加速的MATLAB/Julia實現

點擊 “AladdinEdu,同學們用得起的【H卡】算力平臺”,注冊即送-H卡級別算力,80G大顯存,按量計費,靈活彈性,頂級配置,學生更享專屬優惠。 引言:電子衍射模擬的重要性與計算挑戰 電子…

easyExcel動態應用案例

代碼鏈接&#xff1a;https://download.csdn.net/download/ly1h1/919402991.案例說明&#xff1a;1.1.導入功能導入數據實現轉換成 List<List<String>> headers和 List<List<String>> datas&#xff0c;后續補充可以與數據模型注解結合&#xff0c;形…

【數據結構入門】排序算法(5):計數排序

目錄 1. 比較排序和非比較排序 2. 計數排序的原理 2.1 計數排序的弊端 3.代碼復現 3.1 代碼分析 3.2 排序核心 3.3 時間、空間復雜度 1. 比較排序和非比較排序 比較排序是根據排序元素的具體數值比較來進行排序&#xff1b;非比較排序則相反&#xff0c;非比較排序例如&…

輸入3.8V~32V 輸出2A 的DCDC降壓芯片SCT9320

同志們&#xff0c;今天來個降壓芯片SCT9320。輸入3.8V~32V&#xff0c;輸出最高可以達到2A。0.8V的參考電壓。500k的開關頻率。一共八個引腳&#xff0c;兩個NC&#xff08;為什么不做成六個引腳呢&#xff1f;&#xff09;。EN引腳懸空或者接到VIN都可以直接啟動&#xff0c;…

C++類和對象詳解(2);初識類的默認成員函數

1.類的默認成員函數默認成員函數就是用戶沒有顯示實現&#xff0c;編譯器會自動生成的成員函數稱為默認成員函數。一個類我們不寫的情況下編譯器會默認生成以下的6個默認成員函數。&#xff08;1&#xff09;構造函數&#xff1a;主要完成初始化的工作&#xff08;2&#xff09…

PLC通信 Tpc客戶端Socket

1.PLC通信 namespace _2.PLC通信 {public partial class Form1 : Form{public Form1(){InitializeComponent();}//連接//1.型號: 跟PLC溝通 使用哪個型號的PLC//2.IP 同上//3.機臺號:同上//4.插槽號:同上Plc plc new Plc(CpuType.S71200, "192.168.25.80", 0, 1);pr…

Android 開發實戰:從零到一集成 espeak-ng 實現中文離線 TTS(無需賬號開箱即用)

簡介 在移動應用開發中,語音合成(TTS)技術是提升用戶體驗的重要工具。然而,許多開發者在集成 TTS 時面臨依賴網絡、需注冊賬號、功能受限等問題。本文將帶你從零開始,通過開源項目 espeak-ng,實現無需賬號、開箱即用的中文離線語音播報。 文章將覆蓋以下核心內容: esp…

直播APP集成美顏SDK詳解:智能美妝功能的開發實戰

在這個“顏值即正義”的時代&#xff0c;用戶對直播APP的第一印象&#xff0c;往往來自主播的畫面質量。高清的視頻固然重要&#xff0c;但如果缺少自然美顏和智能美妝功能&#xff0c;觀眾體驗就會大打折扣。于是&#xff0c;美顏SDK成了直播行業的“標配”。今天&#xff0c;…

C++內存管理:new與delete的深層解析

1. 引言在C的世界里&#xff0c;動態內存管理是一個核心話題。對于從C語言過渡到C的開發者來說&#xff0c;一個常見的困惑是&#xff1a;既然C語言的malloc和free依然可以在C中使用&#xff0c;為什么C還要引入new和delete這兩個操作符&#xff1f;本文將深入探討這兩對內存管…

【AI開發】【前后端全棧】[特殊字符] AI 時代的快速開發思維

&#x1f680; AI 時代的快速開發思維 —— 以 Django Vue3 為例的前后端分離快捷開發流程 一、AI 時代的開發新思路 在 AI 的加持下&#xff0c;軟件開發不再是“純體力活”&#xff0c;而是 思維工具自動化 的協作。 過去&#xff1a;需求 → 設計 → 開發 → 測試 → 上…

Day24_【深度學習(3)—PyTorch使用—張量的創建和類型轉換】

一、創建張量1.張量基本創建方式torch.tensor 根據指定數據創建張量 &#xff08;最重要&#xff09;torch.Tensor 根據形狀創建張量, 其也可用來創建指定數據的張量torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 創建指定類型的張量1.1 torch.tensor# 方式一&…