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