張 迎,江 劍,路 卓,王杰兵
(南京理工大學(xué) 機(jī)械工程學(xué)院,江蘇 南京 210094)
線陣相機(jī)立靶密集度測試技術(shù)[1]是一種非接觸式測量技術(shù),其靶面由兩臺相機(jī)交匯構(gòu)成的有效視場來決定,尺寸高度易于調(diào)節(jié). 由于具有使用方便、結(jié)構(gòu)簡單、測試速度快和自動化程度高等突出優(yōu)點,基于線陣相機(jī)交匯的立靶測試系統(tǒng)越來越多地替代同類產(chǎn)品,廣泛應(yīng)用于靶場測試活動中. 在測試系統(tǒng)中,彈丸過靶坐標(biāo)的計算依賴于相機(jī)仰角、系統(tǒng)基線長度、彈丸成像中心所在位置的像元編號等參數(shù)的獲取. 其中要想得到彈丸成像中心所在位置的像元編號,必須先精準(zhǔn)定位彈丸在圖像中的位置,然后確定它的中心點位置[2-4]. 在圖像處理領(lǐng)域,對于微小物體的提取算法[5-9]多是利用背景差分法[10]、邊緣檢測法[11]等常規(guī)方法. 但是,針對線陣相機(jī)立靶測試系統(tǒng)來說,其背景容易變化,亮度也難以保持均勻,因此,并不適用前面所提到的這些算法. 針對這些問題,本文提出一種彈丸圖像提取的改進(jìn)算法,可快速精確地提取出彈丸中心坐標(biāo),提高測試系統(tǒng)的捕獲率和實時處理效率.
為了提取出彈丸圖像,識別其中心位置,首要的便是對圖像進(jìn)行分析,才能針對圖像特點制定有效的算法,成功實現(xiàn)需求. 圖 1 為系統(tǒng)結(jié)構(gòu)示意圖,兩個CMOS線陣相機(jī)位于靶架底角并呈正交擺放,兩相機(jī)視場重疊的圓形區(qū)域即為有效靶面,靶面周圍三面布滿光源,其作用是給背景增加亮度,使彈丸能夠從背景中區(qū)分出來. 無彈丸經(jīng)過靶面時,相機(jī)正對光源拍攝,所得圖像整體亮度較高. 彈丸過靶時,遮擋部分光源,使得相機(jī)圖像上出現(xiàn)一個由于彈丸過靶所形成的暗點. 本文工作便是將暗點在圖像中的位置提取出來,以便后續(xù)計算獲得彈丸過靶坐標(biāo).
圖 1 系統(tǒng)結(jié)構(gòu)示意圖
圖 2 為無彈丸穿過時利用相機(jī)拍攝的背景圖像,從中可以看到,背景亮度并不均勻,主要呈現(xiàn)出明暗交替的特點,部分區(qū)域亮度較低.
圖 2 背景圖像
圖 3 為背景圖像中某一行的灰度值分布,從圖中可看出背景圖像灰度跨度超過50,波動幅度較大,這即是彈丸容易淹沒在背景中不易提取,從而導(dǎo)致測試系統(tǒng)捕獲率降低的主要原因之一.
圖 3 背景圖像灰度分布
經(jīng)過對圖像的分析不難發(fā)現(xiàn),雖然背景中的亮度不均勻,但仍然具備相應(yīng)的規(guī)律,主要有以下兩點:其一,亮度的不均勻性主要體現(xiàn)在同行不同列的像素點之間;其二,對于同一列的像素點來說,其灰度值基本相同. 造成這些現(xiàn)象的原因在于,同一行的像素灰度值雖然在同一時刻獲得,但是一行共有2 048個像素點,通過相機(jī)視場對應(yīng)的是靶面上較長的一段距離. 由于外界環(huán)境以及光源自身不均勻性的影響,這些像素點容易形成灰度值的不均勻分布. 由于系統(tǒng)使用的是CMOS線陣相機(jī),每次拍攝只獲得一行圖像,通過相機(jī)視場角對應(yīng)的寬度通常只有不到2 mm,結(jié)合超高速的相機(jī)行頻,圖像上同一列像素點灰度值基本不變. 總而言之,同行像素代表同一時刻不同位置的灰度值,同列像素代表同一位置不同時刻的灰度值.
通過以上分析研究,本文提出一種二次提取快速獲得彈丸圖像信息的方法,此方法分別對圖像列內(nèi)像素和行間像素做互相關(guān)運算定位彈丸位置,后利用閾值分割法求得彈丸中心像元編號,算法流程如圖 4 所示.
彈丸過靶瞬間,CMOS線陣相機(jī)連續(xù)抓拍得到的包含彈丸的圖像如圖 5 所示. 在離測試系統(tǒng)固定的距離布置一個觸發(fā)裝置,彈丸穿過觸發(fā)裝置后,觸發(fā)裝置給相機(jī)發(fā)出指令,經(jīng)過固定延時,相機(jī)連續(xù)快速拍照產(chǎn)生彈丸過靶圖像. 觸發(fā)裝置擺放距離和相機(jī)延時時間應(yīng)結(jié)合相機(jī)行頻進(jìn)行計算,保證在獲得彈丸過靶圖像前可拍得至少N行空白背景模板,以便后續(xù)圖像處理過程使用.
圖 4 基于二次提取的彈丸信息提取算法流程圖
互相關(guān)函數(shù)為隨機(jī)信號X(t)、Y(t)在任意2個不同時刻t1、t2下的值之間的相關(guān)程度[12]. 本文對互相關(guān)運算做如下定義:
對于函數(shù)f(t)、g(t),有
R(u)=f(t)*g(-t),
(1)
式中:*表示卷積;R(u)表示2個函數(shù)在不同的相對位置上互相匹配的程度.
第一次提取按列進(jìn)行提取,經(jīng)過前面的分析可知,背景中同列像素灰度值相近,在含有彈丸像素的列中,彈丸像素灰度值比背景灰度值低. 將每列像素一分為二,用前半列像素和后半列像素按序進(jìn)行互相關(guān)運算,計算出相關(guān)系數(shù),其數(shù)學(xué)表達(dá)式為
(2)
一般來說,背景像素列的相關(guān)程度更高,其相關(guān)系數(shù)絕對值也較高,而對于含彈丸像素列,不論彈丸像素在前半列、后半列或者是同時分布在兩列之中,利用式(2)求出的相關(guān)系數(shù)應(yīng)比背景像素列低. 因此,確定一個閾值用來區(qū)分背景像素列和含彈丸像素列,便可將彈丸像素所在的列提取出來. 圖 6 所示為各列做互相關(guān)運算后的相關(guān)系數(shù)分布圖,從圖中可以看出背景像素列的相關(guān)系數(shù)絕大部分處于0.6~1的范圍內(nèi),而含彈丸像素列的相關(guān)系數(shù)絕對值最小值小于 0.2,因此可以很清楚地區(qū)分它們.
圖 6 列相關(guān)系數(shù)分布圖
圖 7 按列提取結(jié)果圖
閾值的選擇非常重要,如果過高,會遺留大量背景像素,對后續(xù)處理產(chǎn)生噪聲干擾,如果過低,會將部分彈丸像素誤當(dāng)成背景像素處理,導(dǎo)致后續(xù)彈丸灰度中心提取精度降低. 采集一張不含彈丸的背景圖像,對各列像素進(jìn)行如式(2)的互相關(guān)運算,得到每列像素的相關(guān)系數(shù). 為了盡可能地濾除背景像素干擾,可取其中的絕對值最小值作為閾值. 在彈丸圖像中,相關(guān)系數(shù)絕對值大于閾值的像素列認(rèn)為是背景像素列,小于閾值的列認(rèn)為是含彈丸像素列,然后將它們提取出來. 為了防止彈丸邊緣被誤認(rèn)為背景像素列,將提取后的圖像左右各擴(kuò)張10列可保證提取的完整性,如圖 7 所示為按列提取后的彈丸圖像.
第二次提取按行進(jìn)行提取,將前面按列提取后的圖像中前N行背景像素疊加求均值,作為模板行.
(3)
將模板行和各像素行依次按序作互相關(guān)運算,相關(guān)系數(shù)大于閾值(前N行背景像素行兩兩做互相關(guān)運算,為了最大限度濾除背景像素干擾,可取相關(guān)系數(shù)絕對值最小值為閾值)的行認(rèn)為是背景像素行,相關(guān)系數(shù)小于閾值的行認(rèn)為是含彈丸像素行,然后將這些行提取出來. 圖 8 所示為模板行與各像素行做互相關(guān)運算后的相關(guān)系數(shù)分布圖,從圖中可以看出,各行相關(guān)系數(shù)絕大部分處于0.7~0.9 范圍內(nèi),含彈丸像素行分布在第50行~第60行之間. 同樣,為了防止彈丸邊緣被誤認(rèn)為背景像素行,將提取后的彈丸像素行上下各擴(kuò)張10行,如圖 9 所示為按行提取后的彈丸圖像.
圖 8 行相關(guān)系數(shù)分布圖
圖 9 按行提取結(jié)果圖
二次提取后,成功實現(xiàn)將彈丸位置精準(zhǔn)定位在一塊尺寸遠(yuǎn)小于原始圖像的小圖像中. 若想獲得彈丸中心坐標(biāo),首先要去除背景像素的影響,由于背景并不均勻且彈丸像素灰度值小于背景像素,因此,可以考慮利用閾值分割法[13]濾除背景像素的影響. 在二次提取后的彈丸圖像正上方分離一塊同等尺寸的背景圖像,為了消除背景噪聲的干擾,取其中像素灰度值最小值為閾值,對彈丸圖像進(jìn)行閾值分割處理. 其運算公式為
(4)
式中:h(i,j)為閾值分割前的彈丸圖像;g為閾值;k(i,j)為閾值分割后的彈丸圖像.
最后一步是確定彈丸中心坐標(biāo),也就是求得彈丸的豎直中心線所在的圖像列編號. 利用遍歷的方法,按照式(5)依次假設(shè)每一列為彈丸豎直中心線,將此列左右兩邊圖像各像素的灰度值進(jìn)行疊加然后做差分運算,當(dāng)出現(xiàn)絕對值最小的情況時,可認(rèn)定該列為彈丸中心. 具體算法如下:
設(shè)當(dāng)前圖像尺寸為m×n,當(dāng)前列為第k列,則有
(5)
式中:x(i,j)為閾值分割后的圖像;i為行編號;j為列編號.Δk的絕對值取最小值時,第k列所對應(yīng)的彈丸原始圖像中的列編號即為所求的彈丸中心像元編號.
利用圖 1 所示的測試系統(tǒng),采用像元數(shù)為2 048、像元尺寸為7.04 μm的CMOS線陣相機(jī)分別結(jié)合背景差分法和基于二次提取的彈丸信息提取算法進(jìn)行靶場試驗,并與紙靶坐標(biāo)進(jìn)行比對,表1 為進(jìn)行10次射擊的試驗結(jié)果.
為了比較兩種算法下測試系統(tǒng)的測量精度,以紙靶坐標(biāo)為參照,分別統(tǒng)計利用兩種圖像算法計算所得x坐標(biāo)、y坐標(biāo)以及位置誤差,列入表2.
通過計算可以得出,基于背景差分法獲得的彈丸坐標(biāo)和紙靶坐標(biāo)相比,x坐標(biāo)最大誤差為2.6 mm,標(biāo)準(zhǔn)差為2.08 mm,y坐標(biāo)最大誤差為3.8 mm,標(biāo)準(zhǔn)差為2.54 mm,坐標(biāo)平均精度為3.2 mm. 基于二次提取的彈丸信息提取算法獲得的彈丸坐標(biāo)和紙靶坐標(biāo)相比,x坐標(biāo)最大誤差為2.3 mm,標(biāo)準(zhǔn)差為1.61 mm,y坐標(biāo)最大誤差為2.4 mm,標(biāo)準(zhǔn)差為1.78 mm,坐標(biāo)平均精度為2.3 mm. 由此可見,使用基于二次提取的彈丸信息提取算法計算出的彈丸坐標(biāo)精度更高.
表1 試驗結(jié)果對比
表2 兩種算法計算所得坐標(biāo)誤差統(tǒng)計
通過分析研究發(fā)現(xiàn),彈丸過靶圖像處理產(chǎn)生的彈丸成像中心提取誤差主要由以下幾方面原因造成:
1)受光源限制,彈丸過靶圖像亮度低,背景復(fù)雜,均勻度差;
2)信噪比低、彈丸目標(biāo)像素占比小且目標(biāo)形狀尺寸易變;
3)受蚊蟲、振動等其他外界因素干擾,增加了噪聲的影響.
與其對應(yīng)的改善措施,除了光源等硬件裝置的迭代更新之外,通過算法的不斷改進(jìn),仍可進(jìn)一步縮小誤差,提高測量精度,這也是該領(lǐng)域后續(xù)研究的重要工作之一.
本文通過對彈丸圖像背景復(fù)雜、均勻性差等問題的分析,提出了一種基于CMOS線陣相機(jī)的彈丸圖像處理方法,可提取有用信息計算彈丸過靶坐標(biāo). 此方法先對圖像進(jìn)行二次提取定位彈丸大致位置,去除無用數(shù)據(jù),再利用閾值分割濾除背景影響,最后確定彈丸中心坐標(biāo). 相比于常規(guī)的彈丸提取算法,此方法可顯著消除背景噪聲影響,提高彈丸提取精度和系統(tǒng)捕獲率,在靶場測試活動中具有實用意義.