苑瑋琦,李夢(mèng)祺
(1.沈陽工業(yè)大學(xué) 視覺檢測(cè)技術(shù)研究所 遼寧省機(jī)器視覺重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽 110870;2.沈陽工業(yè)大學(xué) 信息學(xué)院,遼寧 沈陽 110870)
近年來,隨著高新技術(shù)迅猛發(fā)展,高新技術(shù)在射擊訓(xùn)練當(dāng)中的應(yīng)用也越來越廣泛。目前在戶外射擊訓(xùn)練中,主要采取的是人工報(bào)靶方式,選擇具有報(bào)靶經(jīng)驗(yàn)并且熟練掌握?qǐng)?bào)靶規(guī)則的人員對(duì)訓(xùn)練者的射擊結(jié)果進(jìn)行記錄,但是這種報(bào)靶方式存在著一些問題。例如,人工報(bào)靶占用了射擊訓(xùn)練大量的時(shí)間,而且對(duì)報(bào)靶人員的生命安全造成了一定的威脅,還有可能存在著“人情分”現(xiàn)象,不利于公平公正。
早期國內(nèi)國外的自動(dòng)報(bào)靶系統(tǒng)主要有雙電極短路采樣系統(tǒng)、光電傳感式自動(dòng)報(bào)靶系統(tǒng)、聲電定位自動(dòng)報(bào)靶系統(tǒng)等,但是這些系統(tǒng)配置嚴(yán)苛和后期維護(hù)的成本過高,而且在環(huán)境上無法適應(yīng)戶外射擊訓(xùn)練?;谝曈X檢測(cè)的胸環(huán)靶自動(dòng)報(bào)靶系統(tǒng),主要由胸環(huán)靶區(qū)域提取、靶線識(shí)別、彈孔識(shí)別、環(huán)值判定四個(gè)部分組成。文中通過借鑒大量的文獻(xiàn)研究理論知識(shí),并且實(shí)踐報(bào)靶準(zhǔn)確度,發(fā)現(xiàn)彈孔識(shí)別是整個(gè)自動(dòng)報(bào)靶系統(tǒng)最核心也是最艱難的地方,并且發(fā)現(xiàn)通過滯后閾值邊緣檢測(cè)、減影運(yùn)算、仿射變換相結(jié)合的方法能夠基本準(zhǔn)確獲取彈孔信息。而對(duì)于胸環(huán)靶區(qū)域提取、靶線識(shí)別和環(huán)值判定的方法大多數(shù)文獻(xiàn)當(dāng)中的方法大同小異。
目前國內(nèi)所研究的自動(dòng)報(bào)靶系統(tǒng)按其實(shí)現(xiàn)原理可分為以下幾種類型:
(1)雙層電極短路采樣系統(tǒng)[1]是在靶紙后面放置兩張相互間隔的金屬紙,根據(jù)子彈的導(dǎo)電特性,能夠檢測(cè)到彈點(diǎn)信號(hào),這種報(bào)靶系統(tǒng)雖然方法簡(jiǎn)單、成本低廉,但是報(bào)靶率很低,而且不能連續(xù)射擊,很難運(yùn)用到軍事訓(xùn)練當(dāng)中。
(2)光線編碼定位靶是利用光線編碼的機(jī)制,平行安裝兩組不同焦距的鏡頭,形成一個(gè)光學(xué)靶面[2]。光纖編碼定位靶成本高、組件制作工藝復(fù)雜且遠(yuǎn)距離射擊的實(shí)驗(yàn)精度十分困難,不適用于國內(nèi)的軍事訓(xùn)練。
(3)聲電定位自動(dòng)報(bào)靶系統(tǒng)是在固定靶紙框架的四周安裝若干個(gè)聲電傳感器[3],該系統(tǒng)報(bào)靶精度高,但是對(duì)于同一個(gè)靶面,連續(xù)兩次射擊的時(shí)間間隔太短有一定的干擾。
(4)光電傳感器式自動(dòng)報(bào)靶系統(tǒng)是在靶面的四周圍,按照垂直方向和水平方向相對(duì)應(yīng)的方式,安裝兩套高靈敏度的光電傳感器(一般是感光二極管和發(fā)光二極管)[4],形成一個(gè)激光網(wǎng)格。如果想要該系統(tǒng)報(bào)靶精度高,那么勢(shì)必需要大量的光電傳感器,這樣就會(huì)使成本大大增加。
(5)電極埋入式自動(dòng)報(bào)靶系統(tǒng)與光電傳感器式自動(dòng)報(bào)靶系統(tǒng)原理十分相同,不同點(diǎn)是將光電傳感器換成電極,是由電極組成的網(wǎng)格,這種特制的靶體是一次性的,每射擊一次就要更換一次靶紙,成本非常高。
(6)基于圖像處理的自動(dòng)報(bào)靶系統(tǒng)由圖像采集模塊、信息傳輸模塊、圖像處理模塊及成績顯示模塊組成。對(duì)基于圖像處理技術(shù)的自動(dòng)報(bào)靶系統(tǒng)國外研究的比較早,如:芬蘭的Noptel ST-2000 Sport,還有1999年美國Rots Burgun設(shè)計(jì)的Ad-vanced Target Scoring & Reporting System。
圖像減影運(yùn)算識(shí)別彈孔[5-7],把前后兩張圖像做減影運(yùn)算,把差值不為零的區(qū)域默認(rèn)為彈孔區(qū)域,這種方法能夠快速有效地識(shí)別彈孔,但是光照不穩(wěn)定和靶面抖動(dòng)會(huì)帶來很大的干擾,抗噪聲能力弱。
改進(jìn)的模板匹配識(shí)別彈孔的方法有普通模板匹配與彈點(diǎn)統(tǒng)計(jì)性質(zhì)結(jié)合的方法[8],特征匹配方法[9],基于特征中心不變矩匹配算法[10]。這些改進(jìn)的模板匹配方法是對(duì)彈孔區(qū)域和干擾噪聲區(qū)域計(jì)算它們各自的特征向量,與待檢測(cè)圖像中的每一個(gè)像素點(diǎn)的特征向量進(jìn)行比較,在彈孔區(qū)域特征向量范圍內(nèi)的像素點(diǎn)就代表屬于彈孔區(qū)域。這種方法需要在系統(tǒng)中預(yù)存大量的數(shù)據(jù),需要大量計(jì)算,導(dǎo)致系統(tǒng)負(fù)擔(dān)大,運(yùn)行時(shí)間相對(duì)較長。
模糊理論識(shí)別彈孔[11],根據(jù)彈孔灰度值與背景灰度值之間存在的差異性來識(shí)別彈孔,計(jì)算彈孔區(qū)域的平均灰度值與背景的平均灰度值做比較,來判斷是否為彈孔區(qū)域。這種方法簡(jiǎn)單快速,但是沒有考慮到由于子彈的穿透而造成靶面顫動(dòng)的問題。
基于小波變換的圖像信息融合技術(shù)識(shí)別彈孔[12],分別對(duì)兩幅圖像進(jìn)行小波分解,對(duì)兩幅圖像小波變換系數(shù)進(jìn)行融合,主要改變存在著新彈點(diǎn)圖像的小波變換系數(shù),以此來突出新彈點(diǎn)的邊緣和位置,最后對(duì)存在著新彈點(diǎn)的圖像進(jìn)行小波逆變換,恢復(fù)成原始圖像。這種識(shí)別彈孔的方法抗干擾能力強(qiáng),很好地解決了減影運(yùn)算方法中的靶線干擾問題,但是時(shí)間復(fù)雜度高,算法復(fù)雜。
基于顏色相似性識(shí)別彈孔[13],這種方法不同于以往采用黑白圖像作為研究對(duì)象而是以彩色圖像作為研究對(duì)象,首先將RGB圖像轉(zhuǎn)換為HSI顏色模型,以矩形區(qū)域?yàn)閱挝?,?jì)算兩幅圖像矩形區(qū)域內(nèi)顏色相似性系數(shù),通過比較顏色相似性系數(shù)來判斷彈孔區(qū)域和非彈孔區(qū)域。這種方法利用RGB圖像包含了相對(duì)豐富的信息,能夠很好地識(shí)別彈孔,但是計(jì)算量大,運(yùn)行時(shí)間較長。
基于統(tǒng)計(jì)模型識(shí)別彈孔[14],首先獲取不同狀況下的彈孔圖像和非彈孔圖像,訓(xùn)練級(jí)聯(lián)分類器,然后根據(jù)訓(xùn)練好的級(jí)聯(lián)分類器與拍攝到的靶面圖像進(jìn)行匹配,掃描整張圖像,掃描到彈孔信息后進(jìn)行標(biāo)記。這種方法的優(yōu)點(diǎn)是不會(huì)由于對(duì)彈孔的先驗(yàn)知識(shí)和參數(shù)模型的知識(shí)掌握不完全,導(dǎo)致檢測(cè)結(jié)果不精確。
彈孔識(shí)別是整個(gè)系統(tǒng)中最核心的部分,射擊訓(xùn)練的時(shí)候,射擊完畢后,子彈會(huì)在靶紙上留下彈孔。而文中所設(shè)計(jì)的胸環(huán)靶自動(dòng)報(bào)靶系統(tǒng)的拍攝順序是射擊完畢一次拍攝一張圖像,所以當(dāng)前圖像和前一張圖像的區(qū)別就在于當(dāng)前圖像比前一張圖像多了一個(gè)彈孔,因此運(yùn)用圖像減影能夠很容易地找到彈孔的位置,但是由于一些外界的不可抗因素,每張圖片都會(huì)有一些較小的差異,比如有些小角度的旋轉(zhuǎn)和很小距離的平移變化等,所以要對(duì)當(dāng)前圖像進(jìn)行圖像幾何校正處理,再進(jìn)行圖像減影運(yùn)算。
所設(shè)計(jì)的胸環(huán)靶自動(dòng)報(bào)靶系統(tǒng)需要進(jìn)行兩種圖像幾何校正,一種是由于相機(jī)以仰角的方式拍攝胸環(huán)靶,造成采集到的圖像豎直方向的壓縮,要把這種畸變校正過來以便于后續(xù)環(huán)值判定的計(jì)算;另一種是由于子彈在穿過胸環(huán)靶的時(shí)候會(huì)有一定的沖擊力,造成當(dāng)前圖像與上一張圖像會(huì)有一定的位移和旋轉(zhuǎn),為了后續(xù)彈孔識(shí)別算法的順利進(jìn)行,需要將這種畸變校正過來。
圖像幾何校正又稱為圖像空間變換,它將一幅圖像中的坐標(biāo)位置映射到另一幅圖像中的坐標(biāo)位置[15]。圖像幾何校正不改變圖像的像素值,只是在圖像平面上進(jìn)行像素的重新排列。圖像校正一般需要進(jìn)行兩部分運(yùn)算:首先是空間變換所需的運(yùn)算,如平移、旋轉(zhuǎn)和鏡像等,需要用它來表示輸出圖像與輸入圖像之間的像素映射關(guān)系;然后使用灰度差值算法,因?yàn)榘凑者@種變換關(guān)系進(jìn)行計(jì)算,輸出圖像的像素可能被映射到輸入圖像的非整數(shù)坐標(biāo)上。
圖像幾何校正的方法一般有:埃爾米特變換、仿射變換和投影變換等。
3.1.1 校正系數(shù)的確定
對(duì)于第一種圖像幾何校正,是由于拍攝角度造成的,所以采集到的每張圖像都會(huì)有相同的畸變,校正這種畸變主要是為了后續(xù)的環(huán)值判定,而環(huán)值判定主要是利用彈心坐標(biāo)、10環(huán)中心點(diǎn)坐標(biāo)和環(huán)間距這些數(shù)據(jù)進(jìn)行計(jì)算。這次校正的主要目的是校正彈心坐標(biāo)和10環(huán)中心點(diǎn)坐標(biāo),使彈心坐標(biāo)和10環(huán)中心點(diǎn)坐標(biāo)復(fù)原到實(shí)際情況,所以只需要通過數(shù)學(xué)上的幾何問題就可以求出校正系數(shù)。
校正系數(shù)的計(jì)算過程是:由于形變10環(huán)靶線變?yōu)闄E圓形,橢圓形長軸為水平方向的長度,短軸為豎直方向的長度,通過獲取十環(huán)靶線的長半軸長度A1和短半軸長度B1,計(jì)算校正系數(shù)K,K=A1/B1,如圖1所示。
圖1 10環(huán)的長軸與短軸
3.1.2 基于仿射變換的圖像校正
對(duì)于第二種圖像幾何變換,是由于子彈的沖擊力使固定胸環(huán)靶紙的支架發(fā)生了位置的變化,使得采集到的圖像與上一槍所采集到的圖像有所不同,因?yàn)槭勘鋼魰r(shí)每一槍所瞄準(zhǔn)的位置不同,所以采集到的每一槍圖像所產(chǎn)生的畸變也不同,所以以上一槍采集的圖像為主圖像,以當(dāng)前圖像為待配準(zhǔn)圖像,進(jìn)行圖像幾何校正。通過比較幾種圖像幾何校正的方法,文中選擇仿射變換。
仿射變換:如果一幅圖像上的直線經(jīng)過變換后映射到另一幅圖像上仍然為直線,并且保持平行關(guān)系,則這種變換稱為仿射變換。仿射變換適用于平移、旋轉(zhuǎn)、比例、剪切[16]。
(1)平移:設(shè)坐標(biāo)點(diǎn)(x,y),平移Δx和Δy到坐標(biāo)點(diǎn)(x',y'),則仿射變換矩陣方程表示為:
(1)
為了便于變換矩陣計(jì)算,將2×2矩陣擴(kuò)展為3×3矩陣,表示為:
(2)
(2)旋轉(zhuǎn):設(shè)坐標(biāo)點(diǎn)(x,y),旋轉(zhuǎn)θ角到坐標(biāo)點(diǎn)(x',y'),則仿射變換矩陣方程為:
(3)
擴(kuò)展成3×3矩陣表示為:
(4)
(3)縮放:設(shè)坐標(biāo)點(diǎn)(x,y),放大或縮小k倍后的坐標(biāo)點(diǎn)為(x',y'),則仿射變換矩陣方程為:
(5)
擴(kuò)展成3×3矩陣表示為:
(6)
文中設(shè)計(jì)的胸環(huán)靶自動(dòng)報(bào)靶系統(tǒng)只用到平移和旋轉(zhuǎn)這兩個(gè)性質(zhì),所以使用到的仿射變換矩陣可以表示為:
(7)
設(shè)主圖像基本點(diǎn)坐標(biāo)為(x,y),待配準(zhǔn)圖像基本點(diǎn)坐標(biāo)為(x',y');主圖像與x軸所形成的角度為phi,待配準(zhǔn)圖像與x軸所形成的角度為phi',式7中θ=phi-phi',Δx=x-x',Δy=y-y'。
圖2表示圖像中基本點(diǎn)的位置和角度。由圖2可知,(x,y)表示胸環(huán)靶左下角的坐標(biāo),即為所選取的基本點(diǎn);phi表示胸環(huán)靶底邊與x軸所成夾角,即為所選取的角度。
圖2 基本點(diǎn)和角度的位置
文中是針對(duì)戶外射擊訓(xùn)練設(shè)計(jì)的自動(dòng)報(bào)靶系統(tǒng),戶外光照強(qiáng)度不穩(wěn)定且不受控制,導(dǎo)致采集到的每張圖像的光照強(qiáng)度不一樣。當(dāng)光照強(qiáng)度較小時(shí),彈孔區(qū)域與背景區(qū)域灰度值相差較小,為了使設(shè)計(jì)的算法適用于每種情況,采取基于邊緣的分割方法,進(jìn)行彈孔與背景區(qū)域的分割。
運(yùn)用圖像減影算法需要運(yùn)用當(dāng)前圖像信息減去前一張圖像信息,所以首先需要對(duì)仿射變換后的當(dāng)前圖像和前一張圖像進(jìn)行滯后閾值邊緣檢測(cè),將兩張圖像的邊緣信息進(jìn)行二值化,只用0或1進(jìn)行表達(dá)。滯后閾值邊緣檢測(cè)需要設(shè)置三個(gè)參數(shù):TL、TH、Len,下面對(duì)這三個(gè)參數(shù)進(jìn)行詳細(xì)介紹。由Sobel算子獲得兩張圖像的幅值圖像,對(duì)兩張圖像的幅值圖像進(jìn)行滯后閾值分割,根據(jù)胸環(huán)靶靶面提取使用的全局閾值Otsu算法得到的最佳閾值T,設(shè)置一個(gè)低閾值TL,一個(gè)高閾值TH,當(dāng)幅值圖像中像素點(diǎn)的灰度值大于或等于TH時(shí),作為圖像的真實(shí)邊緣;當(dāng)幅值圖像中像素點(diǎn)的灰度值小于TL時(shí),不作為圖像的邊緣;當(dāng)幅值圖像中像素點(diǎn)的灰度值在[TL,TH]時(shí),作為圖像的偽邊緣。再設(shè)置Len,如果兩段真實(shí)邊緣之間有Len個(gè)像素點(diǎn)的偽邊緣,那么將這Len個(gè)像素點(diǎn)的偽邊緣與兩段真實(shí)邊緣連接在一起,形成一個(gè)完整的邊緣。通過建立圖庫,觀察彈孔,發(fā)現(xiàn)彈孔直徑像素點(diǎn)在15個(gè)像素點(diǎn)到30個(gè)像素點(diǎn)之間,所以將Len設(shè)置為10足夠檢測(cè)到完整的彈孔邊緣。由圖3能夠明顯觀察到,當(dāng)Len=1時(shí),彈孔的少量邊緣沒有被檢測(cè)出來,當(dāng)Len=10時(shí),彈孔的邊緣被完整地檢測(cè)出來。
(a)Len = 1 (b)Len=10
在很多文獻(xiàn)中邊緣檢測(cè)運(yùn)用的是Canny算子,Canny算子檢測(cè)邊緣效果很好,效果好隨之帶來的代價(jià)是運(yùn)算時(shí)間長,而文中運(yùn)用運(yùn)算時(shí)間較短的Sobel算子結(jié)合滯后閾值同樣能很好地檢測(cè)到彈孔邊緣,也可以降低運(yùn)算時(shí)間。
圖像減影也稱為圖像差影[17],其原理是將當(dāng)前圖像與前一張圖像做減法運(yùn)算,也就是將兩張圖像互相對(duì)應(yīng)坐標(biāo)的像素點(diǎn)的灰度值進(jìn)行減法運(yùn)算,得到對(duì)應(yīng)坐標(biāo)的像素點(diǎn)的新的灰度值構(gòu)成新的圖像。文中對(duì)兩張圖像二值化后的圖像進(jìn)行減影運(yùn)算,兩張圖像完全相同的部分的灰度值進(jìn)行減法運(yùn)算后,灰度值為0,在新圖像上就表示為黑色的部分,而兩張圖像不相同的部分的灰度值進(jìn)行減法運(yùn)算后,就會(huì)在新圖像上完整表示出來,結(jié)果如圖4所示。
圖4 減影圖像
減影算法的數(shù)學(xué)公式為:
glr(x,y)=|glp(x,y)-glb(x,y)|
(8)
其中,glp(x,y)是當(dāng)前圖像;glb(x,y)是前一張圖像;glr(x,y)是減影圖。假如glp(x,y) 由圖4可以觀察到經(jīng)過減影運(yùn)算后,除了彈孔信息還有少量的環(huán)線干擾信息,這是由于兩張圖像不能完全重合造成的。圖像幾何校正只適用于剛性變換,而子彈的沖擊不僅會(huì)使靶體產(chǎn)生振動(dòng),也會(huì)使靶紙產(chǎn)生抖動(dòng),紙是柔性的,所以靶紙產(chǎn)生的變化屬于柔性變換,所以減影運(yùn)算后會(huì)有少量的靶線干擾信息。靶線干擾區(qū)域包含的像素點(diǎn)比彈孔區(qū)域包含的像素點(diǎn)少很多,所以進(jìn)行一次數(shù)學(xué)形態(tài)的開運(yùn)算就可以將干擾區(qū)域消除。 腐蝕和膨脹是數(shù)學(xué)形態(tài)學(xué)最基本的變換,數(shù)學(xué)形態(tài)學(xué)的應(yīng)用幾乎覆蓋了圖像處理的所有領(lǐng)域,下面介紹利用數(shù)學(xué)形態(tài)學(xué)對(duì)二值圖像進(jìn)行的腐蝕膨脹運(yùn)算。 用B(x)代表結(jié)構(gòu)元素,E代表二值化圖像,腐蝕和膨脹運(yùn)算的定義式分別為: 腐蝕: E⊙B={x:B(x)?E} (9) 膨脹: E⊕B={x:B(x)∩E≠?} (10) 腐蝕運(yùn)算是把結(jié)構(gòu)B平移后,使B包含于E的所有點(diǎn)構(gòu)成的集合,結(jié)果使二值圖像收縮;膨脹運(yùn)算是把結(jié)構(gòu)B平移后,使B與E交集不為空集的所有點(diǎn)構(gòu)成的集合,結(jié)果使二值圖像擴(kuò)張。 一般情況下,膨脹和腐蝕是不可恢復(fù)的運(yùn)算。開運(yùn)算是先腐蝕后膨脹的過程,用來消除小物體、分離物體、平滑較大物體的邊界,并且可以保持其面積基本不變。 通過實(shí)驗(yàn)發(fā)現(xiàn),彈孔直徑像素點(diǎn)在15個(gè)到30個(gè)之間,而環(huán)線干擾區(qū)域像素點(diǎn)在1個(gè)到5個(gè)之間,所以結(jié)構(gòu)元素選擇圓形,半徑為3.0能夠達(dá)到消除環(huán)線干擾并且保留彈孔信息的效果。圖5為開運(yùn)算的結(jié)果。 圖5 開運(yùn)算的結(jié)果 通過建立圖庫測(cè)試文中系統(tǒng)的準(zhǔn)確性和運(yùn)行時(shí)長;所建立的圖庫共260張圖像,通過測(cè)試準(zhǔn)確率為99.2%,運(yùn)行時(shí)長為0.525 s。為了使用戶能夠更方便地使用該系統(tǒng),還設(shè)計(jì)了用戶所使用的人機(jī)交互界面,圖6顯示了系統(tǒng)運(yùn)行的結(jié)果。 圖6 系統(tǒng)運(yùn)行結(jié)果 對(duì)大量的自動(dòng)報(bào)靶系統(tǒng)文獻(xiàn)進(jìn)行閱讀研究,介紹了自動(dòng)報(bào)靶系統(tǒng)的發(fā)展歷程,并且對(duì)自動(dòng)報(bào)靶系統(tǒng)中的核心算法——彈孔識(shí)別算法進(jìn)行了分析對(duì)比。實(shí)驗(yàn)結(jié)果表明,提出的彈孔識(shí)別方法準(zhǔn)確度高,運(yùn)行時(shí)長符合實(shí)彈訓(xùn)練要求,能夠較好地適應(yīng)野外射擊訓(xùn)練,具有良好的應(yīng)用前景。3.4 開運(yùn)算消除干擾區(qū)域
4 實(shí)驗(yàn)結(jié)果
5 結(jié)束語