羅霞,唐清善,崔興倩
(長(zhǎng)沙理工大學(xué)物理與電子科學(xué)學(xué)院,湖南長(zhǎng)沙 410000)
目前,機(jī)械與智能化生產(chǎn)方式成為煙花爆竹生產(chǎn)的主要趨勢(shì),在煙花爆竹生產(chǎn)中還沒(méi)有實(shí)現(xiàn)對(duì)藥物填充量在線精確檢測(cè)自動(dòng)化作業(yè),如何實(shí)現(xiàn)爆竹筒裝藥量在線精確檢測(cè)變得越來(lái)越重要[1]。為了解決此類問(wèn)題,國(guó)內(nèi)外學(xué)者對(duì)非接觸式體積檢測(cè)方法進(jìn)行了大量研究,高如新等人對(duì)小型煤堆的體積測(cè)量采用雙目立體視覺(jué)的原理通過(guò)SURF 算法進(jìn)行匹配,三維重建煤堆得出體積[2]。該方法適合不規(guī)則且能看清整體輪廓的物體體積測(cè)量,不適合筒裝爆竹筒測(cè)量藥量。潘樂(lè)昊等人介紹了一種基于Sobel 邊緣檢測(cè)的體積估測(cè)算法,該方法直接通過(guò)模型建立和MATLAB 曲線擬合估測(cè)體積和蛋徑之間的關(guān)系式,適合估測(cè)不規(guī)則的類似球體的物體體積且誤差較大[3]。李小菁等人基于矩形光柵結(jié)構(gòu)和雙目立體視覺(jué)測(cè)量技術(shù),提出一種物體表面三維形貌的動(dòng)態(tài)測(cè)量方法,實(shí)現(xiàn)光條點(diǎn)三維重建,計(jì)算量大[4]。王玉偉等人提出一種基于RCF 邊緣檢測(cè)和雙目視覺(jué)的箱體體積測(cè)量算法,先定位出目標(biāo)箱體的邊緣和頂點(diǎn),再通過(guò)雙目測(cè)距計(jì)算箱體同頂點(diǎn)的視差、深度,最終計(jì)算箱體的長(zhǎng)、寬、高與體積,不適合筒裝內(nèi)體積估測(cè)[5]。李萍等人研究了基于機(jī)器視覺(jué)的對(duì)傳送帶上煤炭體積測(cè)量的方法[6]。馮相如等人提出了通過(guò)三維重建求取快遞紙箱體積的算法[7]。以上方法在各自應(yīng)用領(lǐng)域取得了不錯(cuò)的效果,但也存在操作難度較高、計(jì)算復(fù)雜、實(shí)用性不高的問(wèn)題,在煙花爆竹筒裝藥量檢測(cè)行業(yè)也缺乏研究。針對(duì)上述問(wèn)題,該文提出了一種基于Sobel 算子的爆竹筒裝藥量測(cè)量方法。
該文提出的爆竹筒裝藥量體積測(cè)量方法主要分為3 個(gè)部分,第一是圖像預(yù)處理部分,通過(guò)對(duì)攝像頭采集到的圖像進(jìn)行高斯濾波方式去噪、灰度變換RGB 三通道轉(zhuǎn)換為單通道,再運(yùn)用Sobel 邊緣檢測(cè)算法提取出目標(biāo)裝藥爆竹筒圖像的邊緣,定位圓心坐標(biāo)到目標(biāo)邊緣之間的像素距離,通過(guò)標(biāo)定物的精確物理尺寸求得像素當(dāng)量,再利用最小二乘法進(jìn)行曲線擬合進(jìn)而得到藥量高度值,最終得到藥量估測(cè)體積。
爆竹筒裝藥量檢測(cè)的圖像采集系統(tǒng)如圖1 所示,相機(jī)將拍攝到的裝藥爆竹筒圖像傳輸?shù)诫娔X里,再由電腦經(jīng)過(guò)一系列圖像預(yù)處理,提取邊緣,進(jìn)一步計(jì)算藥量高度,最后得到體積,實(shí)現(xiàn)了對(duì)爆竹筒裝藥量的實(shí)時(shí)檢測(cè)。裝藥量體積估測(cè)算法流程圖如圖2所示。
圖1 爆竹筒圖像采集系統(tǒng)
圖2 裝藥量體積估測(cè)算法流程圖
邊緣檢測(cè)是一種用于圖像處理的技術(shù),用于識(shí)別圖像內(nèi)目標(biāo)的邊緣。邊緣檢測(cè)主要用于圖像處理等領(lǐng)域中的圖像分割和數(shù)據(jù)提取。傳統(tǒng)的圖像邊緣檢測(cè)算法有Prewitt、Roberts、Log、Sobel和Canny等[8-9],這些方法針對(duì)特定的圖像邊緣檢測(cè)方面各有優(yōu)缺點(diǎn)。利用Roberts 邊緣檢測(cè)算子定位不精確,識(shí)別的邊緣不夠光滑;Prewitt 邊緣檢測(cè)算法不適合識(shí)別特定環(huán)境下的混合多復(fù)雜噪聲圖像;Log 邊緣檢測(cè)算子對(duì)噪聲較敏感,邊緣精度較低;Canny 算子計(jì)算復(fù)雜,參數(shù)多[10];Sobel 算子提取的邊緣較為精細(xì)光滑[11]。結(jié)合爆竹筒裝藥檢測(cè)實(shí)際應(yīng)用操作簡(jiǎn)單、計(jì)算量小的需求,該文采用Sobel 算子對(duì)裝藥爆竹筒圖像進(jìn)行邊緣檢測(cè),提取目標(biāo)邊緣。
Sobel 算子是比較常用的一種傳統(tǒng)邊緣檢測(cè)方法,它結(jié)合了高斯濾波器平滑噪聲和一階微分求導(dǎo),通過(guò)水平邊緣和垂直邊緣的兩個(gè)算子計(jì)算圖像亮度函數(shù)的像素梯度值[12]。算法原理如下:
采用高斯濾波器對(duì)原始圖像進(jìn)行去噪處理,高斯平滑函數(shù)如下所示:
其中,σ是高斯濾波器參數(shù)標(biāo)準(zhǔn)差,影響著去噪的質(zhì)量。
原始圖像f(x,y) 與高斯濾波器卷積得到圖像I(x,y):
對(duì)圖像I(x,y)分別在x和y方向求導(dǎo),得到Gx和Gy。
Sobel算子的3*3 卷積模板如式(3)所示:
計(jì)算圖像每一點(diǎn)的近似梯度:
設(shè)置合適的閾值便可得到邊緣點(diǎn)。
實(shí)驗(yàn)中爆竹筒圖像采集裝置采集裝藥爆竹筒圖像時(shí),攝像頭離爆竹筒的距離固定為5 cm,所以同等情況下,拍出圖像中目標(biāo)位置邊緣點(diǎn)間像素距和物體的實(shí)際測(cè)量值大小的關(guān)系是固定的,它倆成正相關(guān)的關(guān)系。所以只要求得被測(cè)物的幾何尺寸以及計(jì)算機(jī)輸出的物體的像素尺寸,兩者的比值就稱為像素當(dāng)量值[13-14]。
如圖3 所示坐標(biāo)系,點(diǎn)O為爆竹筒藥量的圓心;以圓心為原點(diǎn),分別以角度為0°、30°、60°、90°、120°、150°生成6 根直線,直線和邊緣輪廓相交得到交點(diǎn),計(jì)算得出12 對(duì)邊緣點(diǎn)之間的距離,過(guò)原點(diǎn)做x軸的平行線x′,分別交藥量邊緣和爆竹筒邊緣于點(diǎn)M1和M2,定位得到M1(x1,y1) 和M2(x2,y2) 的坐標(biāo),由兩點(diǎn)之間距離公式可求得M1M2之間長(zhǎng)度a1的像素距d為:
圖3 尺寸測(cè)量原理圖
求得標(biāo)定物的精確物理尺寸為D,像素當(dāng)量為:
以上述方法可繼續(xù)求得a2、a3、a4、a5、a6、a7、a8、a9、a10、a11、a12的像素距。
在獲得爆竹筒裝藥量目標(biāo)點(diǎn)像素距實(shí)驗(yàn)數(shù)據(jù)后,通過(guò)最小二乘法進(jìn)行數(shù)據(jù)擬合,可得出相應(yīng)的擬合函數(shù),獲取到已知樣本數(shù)據(jù)之間的關(guān)系式。最小二乘法主要是得到和數(shù)據(jù)匹配最佳的函數(shù),要求是誤差的平方和最小化[15-16]。主要原理如下:
有數(shù)據(jù)集S={(x1,y1),(x2,y2),(x3,y3),…(xn,yn)},要找到一個(gè)函數(shù)f(x)=ax+b,使得f(x)的結(jié)果接近于y:
求出Q值最小時(shí)對(duì)應(yīng)的a和b的值:
對(duì)Q求導(dǎo),求解出Q最小時(shí)a和b的值:
求出a和b的值后,通過(guò)將37 組圖像數(shù)據(jù)的目標(biāo)點(diǎn)像素距和實(shí)際高度進(jìn)行擬合,得出12 組數(shù)據(jù)的關(guān)系式,最終將求出的均值作為匹配結(jié)果值,由12 組擬合函數(shù)得到12 組匹配藥量邊緣距離筒壁邊緣的高度,如式(11)、(12)所示,求出均值作為最終估測(cè)的目標(biāo)邊緣高度,用于爆竹筒實(shí)際高度和底面積固定,由爆竹筒外包裝實(shí)際高度減去目標(biāo)邊緣高度即藥量實(shí)際高度。最終由圓柱體體積公式即可得出估測(cè)體積。
為驗(yàn)證該文方法的有效性,實(shí)驗(yàn)室自行設(shè)計(jì)爆竹筒圖像采集裝置采集圖像,固定攝像頭離爆竹筒距離為5 cm。圖像分辨率為1 500×2 000像素,該文所有的實(shí)驗(yàn)結(jié)果是在Microsoft Windows 10,Halcon17.12和MATLAB R2016b 環(huán)境下上進(jìn)行仿真驗(yàn)證,計(jì)算機(jī)配置為AMD A8-6410 APU with AMD Radeon R5 Graphics 2.00 GHz,內(nèi)存大小為4.00 GB,操作系統(tǒng)為64位Windows10。實(shí)驗(yàn)用的爆竹筒高為15.5 cm,筒壁厚1 cm,底面圓的半徑為2.3 cm,選取37 組藥量體積進(jìn)行統(tǒng)計(jì)分析,測(cè)量體積范圍為125.690~233.677 cm3。
如圖4(a)所示為實(shí)驗(yàn)室進(jìn)行測(cè)試選擇的自行設(shè)計(jì)的爆竹筒圖像采集裝置采集到的模擬裝藥爆竹筒灰度圖像,根據(jù)實(shí)際情況實(shí)驗(yàn)階段用的爆竹筒用竹筒代替,火藥用自制黃土材料代替,以進(jìn)行仿真驗(yàn)證,邊緣檢測(cè)效果如圖4(b)如所示。
圖4 裝藥爆竹筒圖像效果圖
對(duì)采集到的裝藥爆竹筒圖像進(jìn)行預(yù)處理,利用Sobel 邊緣檢測(cè)算法定位藥量邊緣和筒壁邊緣,分割出藥量邊緣和筒壁邊緣的目標(biāo)區(qū)域范圍,定位出其像素距,部分圖像分割處理后邊緣檢測(cè)圖像取值圖像如圖5 所示,根據(jù)圖3 所示每幅樣本圖像對(duì)應(yīng)一個(gè)藥量高度,前6 組數(shù)據(jù)實(shí)際高度和像素距統(tǒng)計(jì)圖如圖6所示,后6組數(shù)據(jù)實(shí)際高度和像素距統(tǒng)計(jì)圖如圖7所示。
圖5 邊緣檢測(cè)圖像取值圖像
圖6 前6組數(shù)據(jù)實(shí)際高度和像素距統(tǒng)計(jì)圖
圖7 后6組數(shù)據(jù)實(shí)際高度和像素距統(tǒng)計(jì)圖
通過(guò)將37 組圖像數(shù)據(jù)的目標(biāo)點(diǎn)像素距和實(shí)際高度進(jìn)行擬合得出12 組數(shù)據(jù)的關(guān)系式y(tǒng)=ax+b,x代表實(shí)際高度,y代表像素距。最終求出均值作為匹配結(jié)果值。L1~L12 代表12 條擬合線,求出a和b的值,如表1 所示,即可得到像素距和實(shí)際高度的擬合關(guān)系式。
表1 擬合曲線參數(shù)值統(tǒng)計(jì)表
因此,由12 組擬合函數(shù)得到12 組匹配藥量高度,求出其均值作為最終估測(cè)的目標(biāo)邊緣高度,由實(shí)際爆竹筒高度減去目標(biāo)邊緣高度得出藥量高度,再由圓柱體體積公式即可得出估測(cè)體積[17-18]。
為了驗(yàn)證該研究方法的測(cè)量精度,體積測(cè)量誤差只與藥量高度測(cè)量結(jié)果有關(guān),求出匹配藥量高度可進(jìn)一步得出體積測(cè)量結(jié)果。由實(shí)驗(yàn)室自行設(shè)計(jì)爆竹筒圖像采集裝置,提取隨機(jī)裝藥量在125.690~233.677 cm3之間的5 幅不同裝藥爆竹筒圖像進(jìn)行多次重復(fù)測(cè)試驗(yàn)證,進(jìn)行圖像預(yù)處理,提取邊緣,定位12 對(duì)目標(biāo)點(diǎn)的像素距離,根據(jù)所得的12 組體積擬合公式求得匹配藥量高度,得出具體的體積測(cè)量結(jié)果及誤差如表2 所示。
由表2 可知,第1 張圖像估測(cè)體積相對(duì)誤差最小為0.35%,測(cè)量體積與實(shí)際體積相差0.511 cm3,第3張圖像估測(cè)體積相對(duì)誤差最大為3.96%,測(cè)量體積與實(shí)際體積相差7.582 cm3。體積估測(cè)誤差基本控制在5%以內(nèi),均低于目前爆竹筒裝藥量檢測(cè)領(lǐng)域計(jì)量板稱裝藥大約5%的測(cè)量誤差。
表2 體積測(cè)量誤差分析
該文為解決爆竹筒藥量填充環(huán)節(jié)非接觸式體積測(cè)量問(wèn)題,提出了一種基于Sobel 邊緣檢測(cè)的爆竹筒裝藥量體積測(cè)量方法。通過(guò)圖像處理的方法進(jìn)行目標(biāo)藥量非接觸式體積估測(cè),有效地解決了實(shí)際生產(chǎn)過(guò)程中人工檢測(cè)裝藥量存在的藥量體積檢測(cè)控制耗時(shí)長(zhǎng)、勞動(dòng)強(qiáng)度大、藥量體積檢測(cè)精度低等問(wèn)題。實(shí)驗(yàn)結(jié)果表明,該文算法能較好地保留筒壁和藥量的邊緣信息,計(jì)算得出裝藥爆竹筒體積相對(duì)誤差控制在5%以內(nèi),能投入到煙花爆竹的自動(dòng)化生產(chǎn)線設(shè)備中,在煙花爆竹生產(chǎn)行業(yè)具有較高的實(shí)用價(jià)值。