- 機器視覺與機器學習:算法原理、框架應用與代碼實現
- 宋麗梅 朱新軍編著
- 2325字
- 2020-09-18 18:33:19
2.5 案例——燈泡燈腳檢測中的圖像處理
2.5.1 檢測背景
本案例的主要任務是檢測H3型車用燈泡燈腳。在工廠生產H3型車用燈泡時,有一個十分重要的環節,就是封裝H3型車用燈泡燈腳,其封裝前后對比如圖2-37所示,其中,圖2-37a為原始燈泡圖像,圖2-37b為封裝后的燈泡圖像。由于封裝蓋底部是封閉的,并且有一只燈腳必須焊接在封裝盒里面,所以燈腳的長度是必須嚴格限制的,以免太長擠壓封裝蓋底部以致燈腳彎曲或者斷裂甚至短路,或太短而無法封裝燈腳。因此本項目的任務是設計一個H3型車用燈泡燈腳檢測系統,完成在線實時檢測,并對不合格的燈泡進行分類剔除,以滿足工廠的實際需求。
檢測標準如下。
1)合格產品:雙燈腳長度均為8mm,誤差小于0.15mm。
2)不合格產品:①若只有一個燈腳長度合格,則存入采集盒1;②若為其他不合格產品(根據目前的劃分規則),則存入采集盒2;③若為待添加的新類型不合格產品(用于后續擴展),則存入備用采集盒3。

圖2-37 燈泡燈腳封裝前后對比
a)原始燈泡圖像 b)封裝后的燈泡圖像
根據項目實際需求搭建的檢測平臺如圖2-38所示。為方便在企業使用及安裝,檢測平臺使用的是工業中常用的傳送帶。該檢測平臺將紅色LED環形光源以低角度照射待檢測燈泡,再通過垂直于待檢測燈泡方向的相機捕獲圖像并檢測,然后通過判斷該燈泡的屬性來控制氣閥,將不合格的燈泡推入對應的采集盒中,合格的燈泡將繼續前行。整個系統利用遠心鏡頭搭配CCD來獲取圖像,然后針對燈泡燈腳的實際情況進行一系列的圖像處理。一般傳送帶的顏色都為暗鎘綠色,由補色原理可知,選用紅色光源可以將皮帶本身的顏色掩蓋掉,并且自然界紅色光源較少,有助于濾除一些雜光干擾。由于燈泡較小,如果集中光線照射燈泡本身可以減少燈泡周圍其他物體的反光,降低干擾。另外,系統后續進行圖像處理時需要捕獲燈泡燈腳與燈泡本體之間的接觸面,利用低角度照明方式會更加合適,所以本系統選用了紅色環形LED光源,照明方式為低角度照射。系統結構圖如圖2-38所示。

圖2-38 系統結構圖
本案例使用的計算機內存為2.0GB,主頻為3.2GHz,軟件為VS2012,使用C++編程,并加入了OpenCv函數庫。
2.5.2 圖像處理過程與結果
系統利用所搭建的硬件平臺捕獲待檢測的燈泡圖像,根據后續處理需要依次對圖像進行灰度化、中值濾波,通過最小誤差閾值選擇算法進行邊緣提取,及使用開運算改良燈腳形狀。它們的具體效果如圖2-39所示。
在圖像信號的形成、傳輸和記錄過程中,由于成像系統、傳輸介質、工作環境和記錄設備的不完善均會導致噪聲的產生而使圖像質量下降。所以需要先采用中值濾波進行處理,將圖像的每個像素用鄰域(以當前像素為中心的正方形區域)像素的中值代替,從而較好地去除燈絲和支架之間的連接部分并且濾除噪聲,為接下來的處理做好準備。代碼如下。


圖2-39 待檢測燈泡圖像預處理
a)灰度化 b)中值濾波 c)邊緣提取 d)開運算
邊緣信息是重要的圖像特征信息,是識別燈腳和測量長度的基礎。考慮到實時性,此處利用自適應二值化對圖像進行處理(圖2-40)。
自適應二值化代碼如下。

其中,MedianblurImg表示原始圖像(已經過中值濾波);ThresholdingImg表示處理后的圖像,255為滿足條件的最大值,CV_ADAPTIVE_THRESH_MEAN_C為自適應閾值方法,先求出塊中的均值,再減掉param1,其中param1=5;CV_THRESH_BINARY為閾值類型;“2?AdtThr-barPosition+3”用來計算閾值的像素鄰域大小,AdtThrbarPosition表示當前滾動條的值。

圖2-40 邊緣檢測
a)原始圖像 b)自適應二值化的圖像
系統的核心任務是提取燈腳圖像并進行尺寸判斷。圖像檢測到的燈腳包絡輪廓可用一個多邊形來表示,如圖2-41a所示。為了獲得燈腳的矩形輪廓,將多邊形輪廓的一條邊與矩形輪廓的一條邊重合,多邊形輪廓需要先旋轉一定角度,如圖2-41b所示。

圖2-41 矩形輪廓示意圖
在圖2-41a中取凸多邊形中的兩點a和b,設a點的坐標為(x1,y1),b點的坐標為(x2,y2),則直線ab旋轉前后的夾角α為

對凸多邊形進行旋轉時,需要對其所有頂點進行旋轉,則以原點(0,0)為中心逆時針旋轉后的多邊形頂點坐標為

式中,(xi,yi)是旋轉前的坐標點,(,
)是旋轉后的坐標點。
據式(2-127),假設已知旋轉中心O(x0,y0),待旋轉點a(x,y),逆時針旋轉角度α,旋轉后的點為b(x′,y′),則有

完成旋轉計算之后,再求凸多邊形的包絡矩形,從而通過計算包絡矩形的特征參數判斷燈腳是否合格。
對于燈腳輪廓是凹多邊形的情況,可先將凹點以及凹點兩側的直線去掉,然后連接斷開兩點,即可將其轉換為凸多邊形,由此來確定圖像的包絡矩形。檢測到的燈腳如圖2-42所示。

圖2-42 燈腳提取
部分檢測代碼如下。


由于利用燈腳和接觸面兩者的關系便于判定產品合格與否,而且出錯率極低,所以根據檢測的分類任務,可以根據這一關系進行如下判斷。
(1)合格產品
首先利用矩形限定算法,假設R1.w、R2.w、R3.w分別為兩個燈腳和一個接觸面的矩形長度,R1.h、R2.h、R3.h分別為兩個燈腳和一個接觸面的矩形輪廓寬度,利用式(2-130)可以限定得出基本符合要求的矩形,然后利用三個擬合矩形的矩形中心相對位置進行判斷,見式(2-131),擬合出的三個矩形的矩形中心坐標分別為(R1.x,R1.y),(R2.x,R2.y),(R3.x,R3.y)。

(2)不合格產品
① 對于只有一個燈腳長度合格的產品,檢測方法和合格產品類似。由于只能檢測到一個燈腳和接觸面,即此時沒有矩形R2(R2.x,R2.y),所以檢測的公式略有變化:

② 其他不合格產品。利用燈腳和接觸面的相對關系很容易準確限定出燈腳輪廓,再利用擬合出的矩形直接計算長邊就可得出燈腳的長度。
圖2-43中是幾種常見的情況,其中圖2-43a為矩形限定后合格品的燈腳和接觸面,圖2-43b為確定合格品的燈腳顯示圖,圖2-43c為矩形限定后不合格品①的燈腳和接觸面,圖2-43d為確定不合格品①的燈腳,圖2-43e為不合格品②的矩形擬合圖,圖2-43f為接觸面在無燈腳燈泡上的顯示圖。

圖2-43 燈腳提取
a)合格品的燈腳和接觸面 b)合格品的燈腳 c)不合格品①的燈腳和接觸面 d)不合格品①的燈腳 e)不合格品②的矩形擬合圖 f)不合格品②的接觸面
- 中文版SketchUp 2022完全實戰技術手冊
- 云化虛擬現實技術與應用
- VR新未來
- 邊做邊學:Photoshop圖像制作案例教程(Photoshop CC 2019·微課版)
- Moldflow 2010完全自學與速查手冊(模流分析·成本控制)
- 3ds max & VRay產品造型設計經典
- Authorware應用案例教程
- Drupal Multimedia
- 人臉識別算法與案例分析
- AIGC輔助數據分析與挖掘:基于ChatGPT的方法與實踐
- 品悟:Alias 2014+Showcase產品可視化造型與渲染
- 中文版Maya 2022完全自學教程
- SolidWorks2014基礎實例教程
- Google App Engine Java and GWT Application Development
- 量化投資與FOF投資:以MATLAB+Python為工具