辛永信 黃泳波
摘 要:針對目前禽蛋臟污裂紋仍主要依靠人工目測挑選,導(dǎo)致效率低下等問題,以雞蛋為試驗(yàn)樣本,提出了一種基于Halcon視覺算法庫的家禽禽蛋臟污裂紋自動(dòng)識(shí)別檢測系統(tǒng)。首先進(jìn)行系統(tǒng)硬件選型,搭建檢測平臺(tái);之后對工業(yè)攝像機(jī)進(jìn)行單目相機(jī)內(nèi)外參數(shù)標(biāo)定;運(yùn)用濾波、形態(tài)學(xué)等方法對畸變矯正之后的圖像進(jìn)行預(yù)處理;以頻域?yàn)V波為核心算法,結(jié)合差分等思想對樣本進(jìn)行臟污及裂紋的檢測;最后利用Microsoft Visual Studio軟件開發(fā)平臺(tái),以C++為核心語言聯(lián)合Halcon混合編程,構(gòu)建圖形環(huán)境軟件平臺(tái)。
關(guān)鍵詞:機(jī)器視覺;缺陷檢測;禽蛋;裂紋臟污
0 引言
我國是世界家禽禽蛋生產(chǎn)及消費(fèi)大國,禽蛋蛋殼品質(zhì)對于種蛋、新鮮蛋和各種蛋制品的品質(zhì)來說是尤為重要的指標(biāo)。優(yōu)質(zhì)禽蛋表面干凈無裂紋,臟污破裂的禽蛋蛋殼無法保證蛋液干凈衛(wèi)生,微生物會(huì)侵入禽蛋內(nèi)部,隨著儲(chǔ)藏期的延長禽蛋加速變質(zhì),進(jìn)而發(fā)生嚴(yán)重的食品安全問題。現(xiàn)如今我國主要依靠工人在燈光下目測的方法挑選臟污開裂的禽蛋,這種傳統(tǒng)方法不僅效率低下,容易造成視覺疲勞引起誤判,而且人工成本高,因此,研究高速、高效、高精度的破損禽蛋自動(dòng)化檢測系統(tǒng)是現(xiàn)代蛋品檢測技術(shù)的必然發(fā)展趨勢。
本文基于Halcon視覺算法庫以及微軟基礎(chǔ)類庫,設(shè)計(jì)研究了一種家禽禽蛋臟污裂紋自動(dòng)識(shí)別檢測系統(tǒng),通過圖像矯正、Blob分析、頻域?yàn)V波、圖像差分等方法,對多個(gè)樣本雞蛋表面進(jìn)行臟污裂紋檢測試驗(yàn),利用Microsoft Visual Studio軟件開發(fā)平臺(tái),以C++為核心語言聯(lián)合Halcon混合編程,編寫MFC人機(jī)交互程序,顯示檢測結(jié)果。
1 檢測流程及系統(tǒng)硬件
1.1? ? 檢測流程
禽蛋臟污及裂紋檢測系統(tǒng)設(shè)計(jì)主要由構(gòu)建硬件平臺(tái)、相機(jī)標(biāo)定、缺陷檢測、設(shè)計(jì)軟件平臺(tái)4個(gè)過程組成,依次涉及系統(tǒng)硬件選型、標(biāo)定原理及實(shí)現(xiàn)、圖像矯正及預(yù)處理、臟污及裂紋不同缺陷檢測算法的編寫、MFC應(yīng)用框架及UI界面設(shè)計(jì)等過程。
1.2? ? 系統(tǒng)硬件
在機(jī)器視覺系統(tǒng)中,硬件的選型關(guān)系到圖像采集速度以及分辨精度,工業(yè)相機(jī)及鏡頭的選擇更是受到整個(gè)檢測系統(tǒng)要求的制約。本系統(tǒng)選用的相機(jī)部分參數(shù):CCD彩色,像元尺寸2.2 μm×2.2 μm,光譜范圍400~1 030 nm,相機(jī)動(dòng)態(tài)范圍(相機(jī)動(dòng)態(tài)范圍表明相機(jī)探測光信號(hào)的范圍)>70.1 dB,信噪比38.1 dB;鏡頭部分參數(shù):焦距8 mm,相對孔徑1.2,后截距7.53 mm,接口CS,光源采用白色同軸光。
2 相機(jī)標(biāo)定
2.1? ? 標(biāo)定原理
由于鏡頭無法完全避免畸變且相機(jī)無法做到絕對水平,為了避免處理失真的缺陷,對系統(tǒng)檢測準(zhǔn)確率造成影響,需要在開始檢測缺陷之前對相機(jī)進(jìn)行標(biāo)定,重建三維環(huán)境信息,在采集到缺陷圖像后進(jìn)行矯正。標(biāo)定的主要目的就是求解相機(jī)內(nèi)外參數(shù):設(shè)相機(jī)坐標(biāo)系是xoyz,設(shè)世界坐標(biāo)系為XWYWZW,則有xoyz=R(XWYWZW)+T,其中T是空間平移向量(Tx,Ty,Tz),R是空間旋轉(zhuǎn)矩陣R(a,b,c),式中T、R即相機(jī)外參,解得外參即可求解世界坐標(biāo)系中任一點(diǎn)在相機(jī)坐標(biāo)系中的坐標(biāo)。同樣保留相機(jī)坐標(biāo)系xoyz,設(shè)圖像物理坐標(biāo)系XOY,設(shè)圖像像素坐標(biāo)系xfofyf,從相機(jī)坐標(biāo)系xoyz到圖像物理坐標(biāo)系XOY是透視投影關(guān)系,即從三維坐標(biāo)轉(zhuǎn)換到平面坐標(biāo);圖像物理坐標(biāo)系XOY與像素坐標(biāo)系xfofyf的關(guān)系是原點(diǎn)不同,坐標(biāo)軸對應(yīng)平行且同平面,度量單位各自為毫米及像素;通過四個(gè)坐標(biāo)系的依次轉(zhuǎn)換,就得到從世界坐標(biāo)系XWYWZW轉(zhuǎn)換到像素坐標(biāo)系xfofyf的轉(zhuǎn)換關(guān)系,即相機(jī)內(nèi)參,所謂相機(jī)參數(shù)標(biāo)定就是為了通過一次標(biāo)定求得這些轉(zhuǎn)換關(guān)系,之后采集的圖像均可利用保存的內(nèi)參外參進(jìn)行矯正。
2.2? ? 標(biāo)定矯正
本系統(tǒng)設(shè)定世界坐標(biāo)系為與試驗(yàn)架測試平臺(tái)面重合的平面坐標(biāo)系,利用gen_caltab算子生成一個(gè)各參數(shù)已知的標(biāo)準(zhǔn)2D圓形精密靶標(biāo)標(biāo)定板圖像文件以及參數(shù)描述文件,借助Halcon Calibretion助手可獲得成像后的各個(gè)特征點(diǎn)像素坐標(biāo)系坐標(biāo),通過在測試平面不同角度對標(biāo)定板拍攝成像,且保證每次采集的圖像需覆蓋完整標(biāo)定板,從而建立多個(gè)方程求解,值得注意的是,在之后矯正及缺陷檢測過程中,相機(jī)鏡頭與試驗(yàn)架測試平臺(tái)的相對位置不允許發(fā)生改變,否則之前標(biāo)定的相機(jī)外參將失效,進(jìn)而影響圖像矯正,缺陷區(qū)域?qū)⒁琅f失真。為了更加明顯地展示標(biāo)定矯正的效果,選用白底黑色矩形進(jìn)行測試,未矯正及矯正后的圖像如圖1所示,可以看出原始矩形由于桶形失真造成的邊線彎曲已被矯正。
3 缺陷檢測
3.1? ? 臟污檢測
得到標(biāo)定過的樣本圖像后即可對缺陷進(jìn)行檢測。常用的Blob分析算法主要依靠二值化、圖像割補(bǔ)加減、形態(tài)學(xué)、連通性分析、特征值計(jì)算、場景描述等操作逐步逼近缺陷區(qū)域,但是由于前提是對灰度范圍的篩選,當(dāng)受到偏高或偏低光強(qiáng)影響,目標(biāo)連通域灰度范圍發(fā)生變化時(shí),往往檢測結(jié)果會(huì)產(chǎn)生較大誤差。因此,為提高系統(tǒng)準(zhǔn)確率及魯棒性,本文對于禽蛋蛋殼表面的臟污檢測以頻域?yàn)V波為核心算法,通過傅里葉變換將空間域變換到頻域,因?yàn)榕K污區(qū)域一般為圖像高頻成分,因此選擇低頻段進(jìn)行濾波,通過傅里葉逆變換從頻域返回空間域,進(jìn)而可得到缺陷增強(qiáng)區(qū)域。
濾波算法的實(shí)現(xiàn):首先利用opimize_rft_speed對指定圖像進(jìn)行傅里葉變換速度優(yōu)化;之后構(gòu)造帶通濾波器,先通過算子gen_gauss_filter連續(xù)構(gòu)造兩個(gè)高斯濾波器,其中Sigma1、Sigma2分別取12、0.01;通過sub_image對兩濾波器灰度相減得到目標(biāo)帶通濾波器;rft_generic計(jì)算圖像的頻域變換;convol_fft用新濾波器在頻域上做卷積運(yùn)算;同理利用rft_generic做逆變換得到帶通濾波后的空間域樣本圖像;之后通過gray_range_rect生成一個(gè)矩形掩膜,計(jì)算掩膜內(nèi)像素點(diǎn)最大、最小灰度差,并輸出到每個(gè)像素點(diǎn)以增強(qiáng)圖像對比度。最后輔助Blob分析包括threshold全局閾值分割、connection區(qū)域連通、形態(tài)學(xué)算子、特征區(qū)域篩選等方法,對樣本雞蛋臟污孔洞進(jìn)行ROI提取選中并顯示,檢測效果如圖2所示。同時(shí),針對上文提到的受光強(qiáng)影響問題,在試驗(yàn)環(huán)境恒定的前提下,改變同軸光源強(qiáng)度得到高光及低光影響的檢測效果,因?yàn)樵撍惴ê诵臑轭l率是表征圖像中灰度變化劇烈程度的指標(biāo),當(dāng)灰度整體變化時(shí)檢測系統(tǒng)有較強(qiáng)的穩(wěn)定性,且系統(tǒng)單次檢測的平均時(shí)間約為0.005 s,具有良好的實(shí)時(shí)檢測性。
3.2? ? 裂紋檢測
裂紋檢測的算法核心思想同樣是頻域?yàn)V波,但與上文臟污檢測不同,裂紋檢測涉及XLD輪廓的提取,關(guān)于頻域?yàn)V波的原理及具體實(shí)現(xiàn)不再贅述。裂紋檢測的主要流程為:首先進(jìn)行預(yù)處理,將原圖像通過decompose3拆分為R、G、B三個(gè)通道,根據(jù)裂紋的灰度特征,本次檢測試驗(yàn)選用B通道圖像;通過傅里葉變換算子生成頻域圖像,然后構(gòu)造一個(gè)較大Sigma值的高斯濾波器(低通濾波器),通過頻域?yàn)V波保留圖像低頻成分,由于設(shè)置的Sigma偏大(100~130),保留的低頻成分較為純凈,得到的濾波圖像會(huì)是一張各像素點(diǎn)灰度值均近似于背景灰度值的圖像;再通過sub_image算子以B通道圖像對濾波圖像做差分處理,差分計(jì)算式為:
ImageSub:=(ImageMinuend-ImageSubtrahend)*Mult+Add
通過差分使得裂紋得到銳化,最后通過lines_gauss(Image : Lines : Sigma, Low, High, LightDark, ExtractWidth, LineModel, CompleteJunctions :)提取裂紋及紋寬,需要注意的是,其中Sigma為空間域高斯濾波系數(shù)。
本次試驗(yàn)通過calculate_lines_gauss_parameters算子計(jì)算,該Sigma取4.907 48效果最佳。裂紋檢測效果如圖3所示。由于在本裂紋檢測算法中頻域?yàn)V波只起到增強(qiáng)目標(biāo)區(qū)域的作用,因此魯棒性也相對不如臟污檢測算法。
4 軟件平臺(tái)
本系統(tǒng)使用Microsoft Visual Studio professional 2015作為軟件開發(fā)平臺(tái),以C++為核心語言聯(lián)合Halcon混合編程,操作界面通過使用Microsoft Foundation Classes(MFC)作為應(yīng)用程序框架開發(fā),配置Halcon編程環(huán)境之后利用定時(shí)器實(shí)現(xiàn)消息循環(huán)過程;同時(shí)將圖像處理算子及相關(guān)參數(shù)封裝好,界面簡潔,運(yùn)行效果理想。
5 結(jié)語
禽蛋在日常生活中是必不可少的消費(fèi)食材,而禽蛋蛋殼有臟污裂紋是影響其品質(zhì)的重要因素之一,為了提高不合格禽蛋的檢測效率,本文基于機(jī)器視覺設(shè)計(jì)了一種禽蛋臟污及裂紋檢測系統(tǒng),包括構(gòu)建一個(gè)硬件平臺(tái),提出以頻域?yàn)V波為核心的臟污孔洞裂紋等視覺識(shí)別算法,設(shè)計(jì)MFC人機(jī)交互軟件界面,穩(wěn)定性良好,檢測速度快,可避免傳統(tǒng)人工目測方式帶來的諸多弊端,同時(shí)也適應(yīng)禽蛋工業(yè)檢測行業(yè)對禽蛋的基本質(zhì)檢要求,具有一定的實(shí)用價(jià)值。
[參考文獻(xiàn)]
[1] 孫力,蔡健榮,李雅琪,等.禽蛋蛋殼品質(zhì)無損檢測方法研究進(jìn)展[J].中國農(nóng)業(yè)科技導(dǎo)報(bào),2015,17(5):11-17.
[2] 姜勇,郭文川.基于DSP的雞蛋蛋殼破損檢測系統(tǒng)硬件設(shè)計(jì)[J].農(nóng)機(jī)化研究,2008(8):103-105.
[3] 黃思博,蔡昭權(quán),陳伽,等.基于HALCON的LED陶瓷基板缺陷檢測系統(tǒng)[J].現(xiàn)代計(jì)算機(jī),2019(16):48-53.
[4] 羅珍茜,薛雷,孫峰杰,等.基于HALCON的攝像機(jī)標(biāo)定[J].電視技術(shù),2010,34(4):100-102.
[5] 徐祥宇,劉玉婷,王超,等.基于機(jī)器視覺的食品缺陷檢測系統(tǒng)研究[J].大連民族大學(xué)學(xué)報(bào),2019,21(3):257-261.
[6] 任鵬霏,周傳德,胡帥,等.HALCON圖像處理在紙杯缺陷檢測中的應(yīng)用[J].自動(dòng)化應(yīng)用,2019(6):98-99.
[7] 司徒偉明,鄒湘軍,王成琳,等.基于OpenCV的木材表面缺陷檢測系統(tǒng)[J].現(xiàn)代電子技術(shù),2017,40(12):148-151.
收稿日期:2020-01-07
作者簡介:辛永信(1999—),男,廣東汕頭人,研究方向:機(jī)器視覺,裂紋檢測系統(tǒng)。