何 淼,王 浩,黃 勇,薛 紹
(1.南京理工大學 能源與動力工程學院,江蘇 南京 210094;2.南京信息職業技術學院 人工智能學院,江蘇 南京 210043)
開展野外爆破試驗是檢驗戰斗部設計合理性的必要環節,而對試驗所用靶板的毀傷情況進行精確、高效測量,是評判戰斗部設計及毀傷效果的直接依據。受野外測量環境和條件制約,使用人工對試驗靶板測量既低效又工作量巨大,尤其對非規則破片毀傷孔洞無法人工測量的情況,必須借助其他技術手段實現毀傷區自動測量與評估報靶。
隨著圖像處理技術的愈發成熟,本世紀初首先出現基于靶板圖像灰度值二值化分割識別彈孔及判定靶環的報靶方法[1-2],其識別成本低且易實現,但受靶板形變與光照不均影響,彈孔邊緣識別精度差直接制約其實用性。為解決靶板形變,科研人員提出基于Hough變換靶板形變糾正技術[3],采用小波變換、中值濾波與邊緣檢測算子等技術克服靶板圖像噪點與抗光照問題[4],以及運用神經網絡[5]、機器視覺[6-7]及深度學習技術[8],突破了在鋼靶、混凝土靶等非紙質靶場景下,因靶板圖像帶入靶板材質紋理光照對毀傷邊緣檢測的影響。但上述研究主要識別對象為偏圓孔型有固定毀傷形狀的槍彈靶識別,尤其是應用于胸環靶識別較多[9],對破片戰斗部面撒型不規則毀傷形狀的識別研究較少。
本文以大當量戰斗部野外爆破試驗中,大型鋼制薄靶板的面毀傷穿透區域的識別與測量為研究場景,針對野外大型鋼板靶圖像形變矯正及光照情景下不規則毀傷孔洞識別與測量問題進行了研究。
考慮野外靶板圖像受成像角度、靶面噪點以及光照等影響,靶面毀傷孔洞會出現形變、圖像分割干擾等問題,會降低靶面毀傷區域面積測量的精度。因此,需要將野外拍攝靶面轉換為無形變正視圖,并進行靶像去噪和抗光照處理,以保證靶面毀傷區域圖像分割精度,再通過靶面物理尺寸與靶像成像像素數之間關系,推算出毀傷區域面積。總體測量計算流程如圖1所示。

圖1 野外金屬破片靶毀傷區面積測量流程
依據透視投影變換原理和相機視線與靶面夾角關系可知,當相機視線與靶面法向方向存在夾角θ≠0°時,靶板成像將存在一定程度透視投影形變,如圖2所示,靶板物理寬度和高度分別設為WT和HT。
野外試驗中,人工拍攝不可避免靶像存在偏視角而導致透視斜投影情況,進而引起毀傷區域在靶像中出現形變,這會對靶板后續測量造成嚴重誤差。由于透視投影變換可看成透視變換加入相機視線法向平面作為正投影面后的透視結果[10],因此,可將圖2中靶板透視投影圖作為原圖,靶板正視圖作為透視變換目標圖,運用透視變換做逆變換矩陣求解,從而實現靶板圖像正視矯正。

圖2 靶板透視投影示意圖
由文獻[11]知,透視變換為圖像在三維空間中的轉換,設靶板透視投影圖像素空間坐標為P=(xyz),設靶板相機正視圖像素空間坐標為P′=(x′y′z′),設A為透視逆變換矩陣,則有[11]:
P′=P·A
(1)
由文獻[12]可得式(1)完成形式為
(2)
化簡得等式組形式:
(3)
考慮靶板透視投影圖和靶板正視圖均為二維平面圖像,可設z=1,z′=1,因此,從式(3)可知需有8個方程聯立求出透視投影變換陣A,8個方程需4對變換前后坐標點對:
T1(x1,y1)~T′1(x′1,y′1),T2(x2,y2)~T′2(x′2,y′2)T3(x3,y3)~T′3(x′3,y′3),T4(x4,y4)~T′4(x′4,y′4)
代入式(3)式即可求解[13]。本文將T1、T2、T3、T4設為逆透視轉換正視圖的4個邊角定點,即T1(0,0),T2(0,m),T3(n,0),T4(m,n),其中m、n分別為正視圖分辨率長和高,為保證所轉換正視圖與靶板實際比例相符,且轉換后的正視圖不出現形變失真,應有m∶n=WT∶HT。T′1、T′2、T′3、T′4為靶板圖像中靶板邊緣頂點,如圖3所示。

圖3 靶板逆透視轉換示意圖
由于金屬靶板在野外日曬雨淋,表面難免出現風化銹跡等現象,在靶板圖像上成為背景噪聲。為避免紋理噪聲影響靶圖毀傷區域分割,需要對靶圖進行濾波去噪處理。濾波的思路是通過設計濾波器,對原圖進行卷積領域運算,將運算后的值作為該卷積原圖區域中心位置新值。為解決原圖邊緣像素卷積區不夠的問題,本文采用在圖像外圍補填充一圈圖像邊緣像素,如圖4所示。同時,為減小運算量,考慮金屬靶面和毀傷區域顏色對比度較高,且顏色單一性較強,本文基于RGB單通道灰度圖進行濾波。

圖4 卷積領域運算示意圖
由于均值濾波對椒鹽噪點去噪良好[14],可針對金屬靶板銹點進行平滑去噪,但不能保護圖像細節,對破片毀傷區域邊緣易造成模糊。為保證毀傷區域邊緣銳度和后續二值分割的精度,在均值平滑去銹噪點時,本文利用中值濾波增強邊緣銳度特性[15]。
設f(i,j)表示原圖(i,j)處像素灰度級,h(m,n)表示濾波器算子在(m,n)處權值,濾波器大小為k×k,V(i,j)和M(i,j)分別表示原圖(i,j)處均值濾波和中值濾波卷積領域運算,則有:

(4)
(5)
式中:med{·}表示取中值運算。
運用圖像分割技術將毀傷區域從正視圖S中識別是毀傷區域測量重要環節。考慮到金屬靶板底色單一、靶圖分割語義簡單的情況,傳統分割方法在分割有效性及精度上均可滿足工程要求。其次,由于毀傷區域與靶板灰度對比度較大,靶面及毀傷區域各自內部灰度分布均勻,即類間方差較大,如圖5所示,因此本文選擇經典的2D-Otsu法。同時,為抑制靶面的紋理噪聲和光照不均勻、偏光的情況,本文引入了均值-中值雙濾波作為2D-Otsu閾值法[16-18]前處理,對金屬靶面進行二值分割。

圖5 野外鋼靶板測量區透視變換圖

(6)
式中:
(7)
(8)
(9)
(10)

(11)
因存在w*和l*2個閾值,則M圖上像素將被分在4個區域。圖6表示了圖5(c)的一維、二維直方圖,其中圖6(a)對偏單色金屬靶面不易形成直方圖谷底,顯然影響分割效果;圖6(b)中I1表示全局和局部領域灰度均小于w*和l*的靶面非毀傷區像素,I4表示全局和局部領域灰度均大于w*和l*的毀傷區像素,I2和I3表示非靶面和非毀傷區的噪點、干擾紋理以及毀傷區邊緣不確定像素。顯然基于均值-中值濾波后灰度圖所構造二維直方圖中,像素沿著對角線集中分布于I1和I4區域,說明噪聲影響較小,(w*=124,l*=122)閾值對取值越理想,靶面背景與毀傷區分割精度較高。
從圖6(c)看出,受金屬靶板毀傷程度不均勻和邊緣起邊毛刺的影響,二值分割圖往往存在毀傷區內分割噪點和邊緣非連續噪點情況。本文先使用膨脹腐蝕閉運算去除毀傷區內誤識別噪點,再用腐蝕膨脹開運算去除靶圖背景中誤識別噪點,并保持了毀傷區域原始大小,如圖6(d)和圖6(e)所示。

圖6 金屬靶板均值-中值雙濾波2D-Otsu分割
對分割二值圖進行精確測量需要計算每個毀傷區的像素數及單像素的物理單位面積。由于金屬靶板破片毀傷所產生的區域多為形狀隨機、邊緣不規則孔洞,傳統OpenCv等圖像處理平臺的輪廓識別函數FindContours在識別成功率和識別精度上不夠,且因為算法封裝不支持用戶自定義,同時考慮算法后續輕量化移植部署,本文針對二值靶圖的不規則破片毀傷區測量進行了自定義算法設計。
本文構建了一種基于像素的領域搜索生長法來識別每個二值圖毀傷區域,算法主要思路如圖7所示。該算法中使用面向對象集合存儲空間動態分配特性,對新識別毀傷區創建新像素點集合存儲,支持實現了各毀傷區搜索生長過程中該區像素總數不確定情況。

圖7 領域搜索生長法算法流程圖
圖7中使用了隊列作為算法輔助數據結構,核心思想是將所有毀傷區像素總點集合K中已判別屬于某毀傷區的像素入隊,并從K中刪除,對隊列內所有像素進行領域搜索點,新搜索到點繼續入隊,直到隊列為空時證明該毀傷區所有像素點已全部搜索完畢,此時再看K內是否還有像素,如果有則說明有新的非連通毀傷區,并創建新的毀傷區像素點集合,如果K中沒有像素,則說明整個靶面毀傷區全部識別完畢。這里,對某像素p進行領域搜索,是針對p周邊3×3區域,即搜索與p像素緊鄰的8個像素位置。
毀傷區領域搜索生長法面向對象偽代碼描述如下。
輸入:二值圖像src
輸出:各毀傷區像素集合AllRegions
1:functionFindSurface(src)
2:K←newList
3:fori=0 →src.Rowsdo
4:forj=0 →src.Colsdo
5:ifsrc[i,j]==255K.Add(src[i,j])
6:AllRegions←newList>()
7:whileK.Count>0 do
8:newRegion←newList
9:p′←K[0]
10:K.Remove(p′)
11:newRegion.Add(p′)
12:MQueue.Join(p′)
13: whileMQueue!=Emptydo
14:p←MQueue.GetOut()
15:newp←IsSidePoint(K,p)
16:K.Remove(newp)
17:newRegion.Add(newp)
18:MQueue.Join(newp)
使用領域搜索生長法對圖5靶面進行毀傷區識別,并標記每個毀傷區邊緣,效果如圖8所示。

圖8 野外金屬靶板毀傷區識別圖
對領域搜索生長法將靶圖各毀傷區識別像素數累計求和,即可得到每個毀傷區像素總數PSum,再基于靶圖物理尺寸和總分辨率計算出單個像素平均物理面積,從而計算出各毀傷區物理實際面積Ap,如式(12)所示,其中Sh和Sw分別表示靶板正視圖的高和寬。
(12)
由于破片飛行角度、速度的隨機性,在野外大型金屬靶板上毀傷區域往往呈不規則分布,且毀傷區形狀多為不規則形狀,毀傷邊緣多有毛刺不平滑,顯然依賴物理人工方法對本文測量結果精度驗證并不可行。因此,本文設計了一張1 m×1 m的鋁靶板,用AutoCAD畫出標準尺寸孔洞,由CAD尺寸計算出面積作為理論值,再與本文測量結果進行比較,以驗證本文方法的測量精度。
圖9為所設計標準鋁靶板尺寸和識別效果組圖。可看出圖9(d)通過濾波既保持了孔洞邊緣銳度,又盡量降低了鋁靶板金屬加工拉絲紋理,以及抑制了孔洞區域底色污漬噪點,為圖9(e)分割創造了良好條件,但圖9(e)分割孔洞區域仍然有個別誤識別噪點,先后使用膨脹腐蝕閉、開運算得到圖9(f)和圖9(g),在同樣膨脹腐蝕卷積尺寸規模下(本實驗選擇為5×5卷積尺寸)去除了孔洞區域噪點,又抑制了非毀傷區噪點生成,所得圖9(h)識別效果良好。

圖9 標準鋁靶板識別序列圖
表1給出了測量計算結果和CAD標準尺寸計算面積的比較分析。從表1可知,本文針對金屬靶板毀傷孔洞區識別及測量值損失比均分布于0~5%之間,相對本文測量方法的成本和野外使用便利性,滿足實際工程需求。

表1 標準1 m×1 m鋁靶板測量結果精度分析
在標準實驗驗證本文方法有效性基礎上,對圖10中兩副野外靶板進行了破片孔洞面積與周長測量及邊緣標識。圖10中1號靶尺寸0.75 m×1.5 m,2號靶尺寸1 m×1.2 m。1號、2號靶分別識別出14,58個破片孔,如表2、表3所示識別結果。受紋理影響,2號靶第0、1誤識別為孔洞情況。

表2 野外靶破片孔面積與周長測量結果(1號靶)

表3 野外靶破片孔面積與周長測量結果(2號靶)

圖10 野外靶實驗過程(上圖為1號靶,下圖為2號靶)
為解決野外巨幅金屬靶板破片毀傷測量困難,以及野外金屬靶繡噪點、金屬加工紋理、毀傷區形狀不規則等問題,本文設計了一套金屬破片靶孔圖像識別流程,采用提出了基于均值-中值復合濾波前處理的魯棒2D-Otsu方法進行抗銹、抗紋理靶板毀傷區分割識別,并提出了基于像素級的領域搜索生長法來高精度測量計算毀傷區面積算法,最后使用鋁靶板進行了驗證試驗,分析證明,本文方法對金屬破片靶的毀傷區識別與測量是有效和可行的,實靶試驗結果表明本文方法測量精度滿足實際工程需求,可低成本部署應用。