一種魯棒的基於機器視覺的表面缺陷檢測方法與流程
2023-05-29 10:35:31
技術鄰域
本發明屬於圖像處理領域,其涉及一種魯棒的基於機器視覺的表面缺陷檢測方法。
背景技術:
目前,由於機器視覺的普及,基於機器視覺的表面缺陷檢測方法非常廣泛,在計算機視覺及圖像處理領域,圖像的二值化處理方法是圖像分析與識別最基本而很重要的研究內容之一,一般基於機器視覺的表面缺陷檢測方法是通過二值化對圖像進行檢測。目前,圖像的二值化方法較多,但是往往檢測效果不佳。缺乏魯棒性,往往只能針對一種檢測對象表面,比如織物、金屬和玻璃等等。常規二值化算法往往存在很大的錯誤檢測率,經常在不含有損傷圖像中錯誤檢測出損傷。
技術實現要素:
1.發明要解決的技術問題
針對現有二值化檢測算法往往只能針對一種檢測對象表面,比如織物、金屬和玻璃等的問題。同時為了降低常規二值化算法存在很大的錯誤檢測率,本發明提供了一種魯棒的基於機器視覺的表面缺陷檢測方法。採用本發明的技術方案,可以滿足絕大多數的材料表面缺陷的自動檢測,大大方便了基於機器視覺表面缺陷檢測的應用。
2.技術方案
為達到上述目的,本發明提供的技術方案為:
一種魯棒的基於機器視覺的表面缺陷檢測方法,具體包括以下步驟:
步驟1:灰度化處理。通過相機採集待檢測表面圖像,如果為彩色圖像,先進行灰度化處理得到灰度圖像i。
步驟2:圖像反色。如果損傷的灰度值高於背景值,灰度圖像i進行反色操作。
步驟3:閾值初始化。初始化二值化閾值t,並計算圖像的概率統計值p0(t)。
其中,pi為灰度值為i的概率,pi=ni/n,其中ni為圖像中灰度值為i的像素點個數,n為整個圖像像素點的個數。
步驟4:計算圖像的平均概率統計值u0(t)和u1(t).
其中,u0(t)為圖像的平均概率統計值,i=0到初始閾值t。
步驟5:定義二值化閾值的目標優化函數l(t)。
其中,二值化閾值優化函數l(t)的第一項來保證二值化後損傷的正確提取,通過第二項來保證二值化後背景不會判斷為損傷,第三項為正則項,用來消除背景和損傷之間的亮度差異,λ為調節係數。
步驟6:重複步驟3-6,求取使得l(t)最大時的th,th為最佳閾值。
步驟7:採用th對灰度圖像i進行二值化得到it。
步驟8:輪廓提取。採用八個方向freeman鏈碼算法對二值化的圖像進行操作,獲取的輪廓作為表面損傷的檢測結果。
附圖說明
圖1是本方法的檢測策略。
圖2是本方法的灰度圖像。
圖3是本方法的二值化結果。
圖4是本方法的迭代閾值法二值化結果。
圖5是本方法的大津法二值化結果。
圖6是本方法的雙峰平均值法二值化結果。
具體實施方式
為進一步了解本發明的內容,結合實施例對本發明做詳細描述。
實施例1
本實施例以金屬表面上圓形缺陷檢測為例進行說明,其流程如圖1所示,具體實施檢測步驟:
步驟1:灰度化處理。通過相機採集待檢測表面圖像,如果為彩色圖像,先進行灰度化處理得到灰度圖像i,灰度圖像i如圖2所示。
步驟2:圖像反色。如果損傷的灰度值高於背景值,灰度圖像i進行反色操作。
步驟3:閾值初始化。初始化二值化閾值t,並計算圖像的概率統計值p0(t)。
其中,pi為灰度值為i的概率,pi=ni/n,其中ni為圖像中灰度值為i的像素點個數,n為整個圖像像素點的個數。
步驟4:計算圖像的平均概率統計值u0(t)和u1(t).
其中,u0(t)為圖像的平均概率統計值,i=0到初始閾值t。
步驟5:定義二值化閾值的目標優化函數l(t)。
其中,二值化閾值優化函數l(t)的第一項來保證二值化後損傷的正確提取,通過第二項來保證二值化後背景不會判斷為損傷,第三項為正則項,用來消除背景和損傷之間的亮度差異,λ為調節係數,本實施中λ為0.01。
步驟6:重複步驟3-6,求取使得l(t)最大時的th,th為最佳閾值,本方案計算的th為48。
步驟7:採用th對灰度圖像i進行二值化得到it。
本方案二值化的結果如圖3所示,可以看到黑色圓形缺陷被很好的提取出來,圖4、圖5和圖6分別為迭代閾值法、大津法和雙峰平均值方法的二值化結果,可以看出上述三種方法沒有很好的將圓形損傷從背景提取出來,部分損傷淹沒在背景中,上述三種方法的二值化閾值分別為113、25和43。
步驟8:輪廓提取。採用八個方向freeman鏈碼算法對二值化的圖像進行操作,獲取的輪廓作為表面損傷的檢測結果。
以上示意性的對本發明及其實施方式進行了描述,該描述沒有局限性,附圖中所示的也只是本發明的實施方式之一,實際的結構並不局限於此。所以,如果本領域的普通技術人員受其啟示,在不脫離本發明創造宗旨的情況下,不經創造性的設計出與該技術方案相似的結構及實施例,均應屬於本發明的保護範圍。