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