孫棪伊,丁立平,張亞莉,干興業(yè),湯日佳,韓銳
(上海機(jī)電工程研究所,上海 201109)
隨著軍工技術(shù)的發(fā)展和導(dǎo)彈裝備高效智能化水平的提高,傳統(tǒng)的人工或機(jī)電式導(dǎo)彈裝填,耗時長、效率低或存在安全隱患,難以滿足快捷、高效、安全的裝填需求,發(fā)展基于機(jī)器視覺的智能裝填技術(shù)就顯得越加重要和關(guān)鍵[1],也將成為裝填技術(shù)發(fā)展的必然趨勢。
基于機(jī)器視覺的智能化操作的基本原理,是通過圖像攝取裝置將被攝取目標(biāo)轉(zhuǎn)換成圖像信號,傳送給圖像處理系統(tǒng)得到目標(biāo)形態(tài)信息,根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變?yōu)閿?shù)字化信號,圖像系統(tǒng)對這些信號進(jìn)行各種運(yùn)算來抽取目標(biāo)特征,進(jìn)而根據(jù)判別結(jié)果來控制現(xiàn)場設(shè)備動作,完成對這一目標(biāo)的一整套運(yùn)動的精確操作[2-4]。針對智能裝填系統(tǒng),需要解決筒彈精確定位和抓取裝置精準(zhǔn)操作等問題,設(shè)計思路是選用工業(yè)相機(jī)捕捉筒彈、裝填位置圖像,通過圖像預(yù)處理、邊緣特征提取后,實現(xiàn)對筒彈、裝填位置的圖像識別和準(zhǔn)確定位,進(jìn)而完成裝填操作。
在基于機(jī)器視覺的智能裝填設(shè)計中,圖像信號處理一般包括圖像預(yù)處理與邊緣特征提取。預(yù)處理一般是降噪濾波處理和圖像增強(qiáng)處理,主要用于后續(xù)圖像特征提取[3-15];邊緣特征作為圖像的基本特征,對于機(jī)器視覺的圖像識別與檢測具有重要意義。
本文針對導(dǎo)彈裝備野外作戰(zhàn),多霧多雨、強(qiáng)光等復(fù)雜環(huán)境條件,提出一種改進(jìn)的圖像邊緣特征提取方法,以提高智能裝填系統(tǒng)對靶標(biāo)的識別和定位準(zhǔn)確度。
在進(jìn)行圖像邊緣提取之前,首先要進(jìn)行圖像預(yù)處理,以提高圖像的對比度,突出靶標(biāo)圖像邊緣。這里提出直方圖拉伸和直方圖均衡化這2種常用的圖像預(yù)處理算法,并比較其優(yōu)劣。
直方圖拉伸方法是圖像增強(qiáng)處理的經(jīng)典算法,是將灰度分布不均的原圖像進(jìn)行灰度擴(kuò)張?zhí)畛?,使其充滿整個灰度區(qū)間[1],操作簡單方便。首先計算原始圖像的最大、最小灰度值Gmax,Gmin;其次統(tǒng)計每一灰度級出現(xiàn)的像素個數(shù),將Gmin映射到0,Gmax映射到255。如果輸入圖像為f(x,y),直方圖拉伸后的圖像表示為g(x,y),則有
(1)
直方圖均衡化算法是將靶標(biāo)圖像分成若干區(qū)域,再計算不同區(qū)域的直方圖特征,并且使圖像亮度得到重新分布,這就增強(qiáng)了圖像邊緣與其他區(qū)域的對比度[1]。使用普通的均衡化算法,對每個像素與其周邊一個直方圖像素進(jìn)行均衡化,得到一個變換函數(shù),變換函數(shù)同像素周邊的直方圖累積分布函數(shù)(cumulative distribution function,CDF)成比例[4]。
處理工作步驟是:將原始圖片分割成不重疊的子塊,對每個子塊進(jìn)行直方圖處理,然后以待處理的像素點為中心,將鄰域取為子塊,在子塊內(nèi)做直方圖處理,處理結(jié)果僅映射到該點(消除塊效應(yīng)),最后,不再逐像素移動,而是以小于子塊寬度的步長進(jìn)行類卷積操作,以確保2個相鄰子塊有重疊,再在子塊內(nèi)進(jìn)行第3次直方圖均衡,這樣每一像素點起碼有2次賦值,取每一像素點的均值作為該像素點的最后賦值[5-12]。
直方圖均衡化原理如下:若MN為靶標(biāo)圖像像素總數(shù),L為灰度級數(shù)量。假設(shè)變化前的灰度級為r,0 可以構(gòu)造變換函數(shù) (2) 式中:ω為形式積分變量。 變換映射 (3) 定義第k灰度級rk出現(xiàn)的頻率為nk,則第k個灰度級的出現(xiàn)頻率為 (4) 所以變換函數(shù)的離散態(tài)可以表示為 (5) 通過變換函數(shù)將原圖像的灰度級rk各像素映射到輸出圖像灰度級sk,這樣就得到了直方圖均衡化后的靶標(biāo)圖像。 分別采用上述2種預(yù)處理算法,對靶標(biāo)圖像進(jìn)行預(yù)處理實驗,如圖1,2所示。 由實驗結(jié)果看出:相比于直方圖均衡化而言,經(jīng)典的直方圖拉伸算法處理像素值分布比較均勻的圖像,效果尚佳(圖3a)為強(qiáng)光下采集,b)為自然光下采集),但對于自動裝填中,進(jìn)行筒彈的精定位,算法需要對光照具有較高的魯棒性,而直方圖拉伸算法對光照變量敏感,在描述圖像細(xì)節(jié)方面也相對直方圖均衡算法粗糙很多。直方圖均衡化算法通過對局部區(qū)域進(jìn)行直方圖均衡克服了經(jīng)典算法的這一缺陷。 為此,選取直方圖均衡算法來對靶標(biāo)圖像進(jìn)行圖像增強(qiáng)處理,增強(qiáng)圖像邊緣特征,以便于后續(xù)的邊緣特征提取。增強(qiáng)后的靶標(biāo)圖像如圖4所示。 圖1 靶標(biāo)原圖 圖2 靶標(biāo)原圖灰度直方圖 圖3 增強(qiáng)后的灰度直方圖 圖4 增強(qiáng)后的靶標(biāo)圖像 針對自動裝填靶標(biāo)圖像的特點,邊緣特征可以作為主要的識別和檢測特性。邊緣特征提取算法主要由邊緣檢測和連接邊緣形成邊界組成。邊緣檢測通常采用各種邊緣檢測算子與圖像進(jìn)行卷積操作[6-18]。 Canny算子是很常用且有效的一種多邊緣檢測算法,由Canny在1986 年提出,并給出了判斷邊緣檢測性能的3個準(zhǔn)則:①盡可能多地找到邊緣,避免誤檢漏檢。②最佳定位,邊緣點要盡量貼近邊緣中心,避免產(chǎn)生粗亮邊緣,提高邊緣檢測精度。③單邊應(yīng)答標(biāo)準(zhǔn)是為了確保在單個邊緣上只有一個像素應(yīng)答,減少偽邊緣應(yīng)答[7-11]。 傳統(tǒng)的Canny算法實現(xiàn)大概分成4個步驟,即高斯模糊、計算梯度幅值和方向、非最大值抑制及閾值檢測與連接邊緣4個步驟。 高斯模糊主要用來去除噪聲,與邊緣同為高頻的噪聲信號很容易被識別為偽邊緣,也是由于邊緣信號為高頻,因此高斯模糊的半徑選擇一定要慎重,過大的半徑會弱化邊緣。 如果f(x,y)為原圖像,g1(x,y)為高斯濾波后的圖像,那么卷積后有 g1(x,y)=G(x,y,σ)*f(x,y), (6) 式中:高斯函數(shù)表示為 (7) 圖像的邊緣方向不同,因此經(jīng)典Canny算法由2個梯度算子分別計算水平、垂直2方向上的梯度。具體做法是:比較當(dāng)前點的梯度強(qiáng)度以及同方向其他點的梯度強(qiáng)度。如果當(dāng)前點梯度強(qiáng)度更大,則保留這一點的梯度值[8-17]。 假設(shè)Gx,Gy為圖像水平與垂直方向的差分,則梯度模表示為 (8) 梯度角度θ表示為 θ=arctan(Gy/Gx), (9) 式中:θ范圍為(-π,π),將得到的θ近似到0,90°水平與垂直2個方向上。 (10) (11) 這些導(dǎo)數(shù)以一個2×2的模板來實現(xiàn)。從這2個方向上,以這個2×2的模板為核與靶標(biāo)圖像上的每一點做卷積運(yùn)算。 圖5 傳統(tǒng)梯度計算后的邊緣提取 在之后進(jìn)行非最大值抑制操作對圖像進(jìn)行細(xì)化,由于卷積后得出的邊緣有時不止一個像素,而多個像素就會造成邊緣粗大明亮的效果,進(jìn)而使靶標(biāo)不能被準(zhǔn)確識別或檢測到,違背了準(zhǔn)則3的要求,而非最大值抑制能盡可能地保留局部最大梯度,也就是保留最突出的邊緣[9-20]。如圖5為傳統(tǒng)算法提取的邊緣,效果粗亮,特征不明顯。 最后使用雙閾值處理和連接分析來檢測和連接圖像邊緣,進(jìn)一步減少偽邊緣點。 Canny算子是常用且有效的邊緣檢測算子,具有很好的描述圖像邊緣的能力[10-14]。但由于在自動裝填系統(tǒng)中需要快速且高效地對靶標(biāo)進(jìn)行定位與識別,因此本文根據(jù)該系統(tǒng)的要求與靶標(biāo)圖像的特性提出了一種改進(jìn)的邊緣檢測算子。 本文采用3×3的Sobel算子來計算圖像梯度,Sobel算子作為非常有效便捷的計算圖像梯度的算子,對比于傳統(tǒng)Canny算子在進(jìn)行梯度計算時的 2×2 模板,3×3的模板可以做到有效抑制噪聲,減少漏檢邊緣。這樣在上文預(yù)處理中所用的直方圖均衡化,在這種可透霧算法的迭代作用下,更加符合自動裝填系統(tǒng)在野外雨霧天氣下的工作要求。 另外為了更加快速地識別靶標(biāo),本文未選用雙閾值處理,而是選擇了單閾值處理方法。單閾值處理方法更適應(yīng)靶標(biāo)這樣直方圖為雙峰的、背景與物體灰度差明顯的圖像。這樣提高了算法的效率,適應(yīng)機(jī)動化與快速化的要求。如圖6為改進(jìn)算法提取的邊緣,弱化了亮白的偽邊緣。 如果s(i,j)為邊緣圖像,那么Sobel算子如下 s(i,j)=Δxf+Δyf, (12) 式中: (13) s(i,j)=|f(i-1,j-1)+2f(i-1,j)+ f(i-1,j+1)+f(i+1,j-1)+ 2f(i+1,j)+f(i+1,j+1)|+ |f(i-1,j-1)+2f(i,j-1)+ f(i+1,j-1)+f(i-1,j+1)+ 2f(i,j+1)+f(i+1,j+1)|. (14) 由于靶標(biāo)圖像背景與物體的像素灰度差異十分明顯,全局閾值適用于自動裝填系統(tǒng)對靶標(biāo)系統(tǒng)的識別。首先生成靶標(biāo)圖像的灰度直方圖,找到波谷對應(yīng)的值,選擇一個初始閾值T,使用閾值T分割圖像得出2組像素G1,G2,G1小于T,G2大于T,計算G1,G2的均值m1,m2,得到一個新閾值T′: (15) 迭代至T′之間的值小于預(yù)定的ΔT,得到所要的T′。 結(jié)果對比與分析,見圖7,8和表1。 實驗結(jié)果表明,改進(jìn)的Canny算子與傳統(tǒng)的 圖6 改進(jìn)算法梯度計算后的邊緣提取 圖7 實驗結(jié)果1 圖8 實驗結(jié)果2 表1 實驗結(jié)果分析表 Canny算子相比,運(yùn)行時間有明顯縮短,效率提高顯著,識別效果也較為良好??梢悦黠@看出,改進(jìn)的Canny算子減少了圖像白亮的偽邊緣,最大程度地保留了靶標(biāo)圖像的邊緣細(xì)節(jié),邊緣連接與傳統(tǒng)方法相比也有明顯改善。 本文針對自動裝填靶標(biāo)圖像的改進(jìn)算法,節(jié)約了時間成本,提高了識別效率;邊緣檢測精度也有明顯提高,減少了偽邊緣的產(chǎn)生。由對比試驗結(jié)果可以看出,本文算法為邊緣檢測提供了一種新思路,適用于一批雙峰直方圖、且灰度分布明顯的邊緣檢測。但算法也存在依賴于先驗知識、對灰度特征魯棒性較低的問題。1.3 預(yù)處理對比分析
2 靶標(biāo)圖像邊緣特征提取
2.1 Canny邊緣檢測算子
2.2 改進(jìn)的Canny邊緣檢測算子
3 結(jié)束語