來源:亞坤工業視覺
缺陷檢測是工業視覺領域非常重要的應用之一。幾乎所有的工業產品在流入市場之前都會有缺陷檢測的環節,目的是確保產品是合格的。
對產品進行缺陷檢測時,分為人工目視檢測和工業視覺檢測。利用工業視覺做缺陷檢測時,常用的解決思路如下:
Ⅰ、傳統圖像算法
用傳統圖像算法做缺陷檢測時,方法有二:
①特征工程
特征工程是缺陷檢測中最常用的方法。特征工程是通過傳統圖像算法分析圖像灰度值、方差、均值、顏色、型狀、輪廓、面積等特征去檢測缺陷,方法非常靈活,開發速度也快。在應用層面,一般會將缺陷特征的相關參數開放到軟件端,供使用者靈活調整。
②模板匹配
模板匹配是通過預設一些圖像模板,將圖像模板與待測圖像進行比較,以達到識別缺陷的目的。這種算法應用有限,舉個例子,做某品牌飲料瓶標簽的缺陷檢測,會利用方法①特征工程的技術識別部分缺陷類型,但也會利用模板匹配,通過預設一些標簽圖像模板去匹配待測圖像,以判斷標簽是否有缺陷。
Ⅱ、CV算法
計算機視覺算法即CV(Computer Vision)算法,是指讓計算機理解圖像的一種技術,屬于AI(Artificial Intelligence)算法的分支之一。
在工業視覺領域,處理對象是圖像,故提到AI算法便是CV算法。也許AI算法聽起來高級,所以在工業視覺領域,大家一般多說AI算法,不怎么提CV算法。
圖像分類、目標檢測、語義分割、實例分割、目標跟蹤、OCR、人臉識別、圖像生成、異常檢測、等都屬于CV算法。其中,在工業視覺缺陷檢測領域應用較多的CV算法為圖像分類、目標檢測、實例分割。
①圖像分類
圖像分類,顧名思義,是對圖像進行分類并確定圖像類別的一種算法。根據分類任務不同,圖像分類又分為單標簽分類和多標簽分類。常用的分類網絡有ResNet、MobileNet、EfficientNet等。
在工業視覺領域,理論上講,可以利用圖像分類算法對整張圖像直接分類,以確定其缺陷類別。由于工業相機拍攝的視野問題,會使整張圖像除了目標區域外,還會包含很多無關的背景,這些無關的背景會干擾圖像分類模型的訓練,導致圖像分類算法的準確率低,因此實際項目中,極少利用圖像分類算法直接對整張圖進行分類。
②目標檢測
目標檢測算法是在圖像中對所有感興趣的目標,用檢測框定位目標的位置和類別。這種方法簡單粗暴,即通過標注大量缺陷數據集,訓練一個具有缺陷檢測能力的目標檢測模型。
最經典目標檢測算法首推YOLO系列,準確率高且推理速度快,屬于非常優異的算法。在實際應用中,需要對圖像進行尺寸的縮放,使圖像大小符合目標檢測模型所要求的尺寸。如果原圖很大,缺陷很小,使缺陷在原圖中占比很小,比如點狀的微小缺陷,可能會使圖像在預處理縮放過程中,將缺陷丟失。因此,如果有此類問題的風險,一般會將原圖進行裁剪為多份,比如100005000分辨率的圖像,拆分為10張20002500分辨率的圖像,然后對這10張圖像單獨進行檢測,最后將檢測結果匯總。
此類方法也有弊端,那就是數據集,成也數據集,敗也數據集。因為目標檢測算法屬于有監督學習,依賴大量的數據集,如果數據集不夠,會導致算法準確率低。實際項目中,往往需要持續收集數據,反復多次迭代模型,才能達到理想效果。
③實例分割
實例分割是目標檢測的升華版本,即在目標檢測的基礎上用更精細的mask進行定位,而非檢測框。
YOLO算法的原創作者Joseph Redmon在他YOLOv3論文的最后寫了這樣一句話:Boxes are stupid anyway though, I’m probably a true believerin masks except I can’t get YOLO to learn them。由此可見,Joseph Redmon是認可mask而非box。
將實例分割算法應用到缺陷檢測上,可以獲得比目標檢測算法更加精準的缺陷定位,這是有利于缺陷檢測的。另一方面,當不同的缺陷離得很近,并且出現交叉或者包含的情況,目標檢測算法很難獲得較好的類別區分,但是實例分割算法并沒有這個困境。若用實例分割算法在尺寸很大的圖像上進行缺陷檢測時,處理方法與目標檢測算法一致,也是將圖像拆分。
實例分割算法和目標檢測算法一樣,都屬于有監督學習,需要依賴大量的數據集。相比于目標檢測算法拉框式的標注,實例分割算法標注的更為精確,標注工作量更大。實際項目中,實例分割算法往往也需要持續收集圖像數據,反復多次迭代模型,才能達到理想效果。
PS:此處致敬一下Joseph Redmon大神,摘選他YOLOv3論文驚人敬佩的結束語。
Ⅲ、傳統圖像算法+CV****算法
這種方法將傳統圖像算法和CV算法結合在一起,也是常用的策略。
通常是利用傳統圖像算法先定位缺陷,然后再將缺陷ROI圖像傳給AI分類算法進行分類。這種方法解決了傳統圖像算法定位容易,但是分類困難的問題。
結束語
工業視覺缺陷檢測算法有很多,本文羅列了三大類主流方法,除了上述三大類,也有無監督學習算法、圖像異常檢測算法,讀者感興趣可自行檢索研究。
任何一種缺陷檢測算法都有自己的技術邊界,在使用的時候,要具體情況具體分析,好的策略是將多種不同的算法組合使用,形成“絕對檢測”。
審核編輯:湯梓紅
-
缺陷檢測
+關注
關注
2文章
142瀏覽量
12203 -
工業視覺
+關注
關注
0文章
70瀏覽量
7123 -
圖像算法
+關注
關注
0文章
11瀏覽量
724
原文標題:工業視覺缺陷檢測的算法總結
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論