蔡云驤, 石磊, 田振錫
(陸軍研究院 第5研究所, 江蘇 無錫 214035)
迷彩是機動裝備偽裝的基本措施之一,主要通過在目標表面設(shè)置涂層或貼片來分割目標外形,減小目標與背景在亮度、顏色、紋理等光學特性上的差別,降低各類探測系統(tǒng)對目標的發(fā)現(xiàn)和識別概率,從而有效提升武器裝備戰(zhàn)場生存能力[1-2]。數(shù)碼迷彩是近年發(fā)展起來的迷彩偽裝新技術(shù),綜合運用人類視覺特性和計算機圖像處理技術(shù),通過“馬賽克”化的斑點組合模擬自然背景的斑駁特性,是實現(xiàn)裝備迷彩偽裝實效化、精確化、智能化的有效途徑[3]。
數(shù)碼迷彩設(shè)計是實施迷彩偽裝的重要環(huán)節(jié),直接關(guān)系裝備目標最終達到的偽裝效果。目前,數(shù)碼迷彩設(shè)計主要有兩種方式:一是由專業(yè)技術(shù)人員借助計算機輔助設(shè)計(CAD)軟件在裝備二維外形圖紙上開展設(shè)計,設(shè)計周期長、誤差大,不適合自動化涂裝,難以實現(xiàn)裝備迷彩圖案多樣性;二是運用隨機場分布算法[4]、小波重構(gòu)算法[5]、分形算法[6]或等周理論[7]等方法自動生成二維數(shù)碼迷彩圖案,該類方法自動化程度較高,有較好的理論依據(jù),但設(shè)計輸出為二維平面圖案,與裝備自動化涂裝要求尚有差距。
當前,綜合集成計算機、自動控制、機器人等技術(shù)發(fā)展迷彩自動化精確噴涂作業(yè)裝備,已成為國內(nèi)外研究熱點[8-10],迷彩圖案設(shè)計也需順應(yīng)趨勢、有所發(fā)展。本文針對現(xiàn)有數(shù)碼迷彩設(shè)計方法存在的不足,提出了一種基于裝備三維模型構(gòu)建和迷彩圖案自動生成的數(shù)碼迷彩圖案設(shè)計方法,其設(shè)計輸出可直接用于指導(dǎo)噴涂規(guī)劃等自動噴涂作業(yè)流程,為數(shù)碼迷彩自動化噴涂裝備發(fā)展奠定技術(shù)基礎(chǔ)。
目標建模是開展三維數(shù)碼迷彩設(shè)計的基礎(chǔ),其目的是對數(shù)據(jù)采集模塊獲取的裝備目標點云數(shù)據(jù)進行處理,輸出符合數(shù)碼迷彩設(shè)計要求的三維規(guī)則四邊形網(wǎng)格模型。目標建模流程如圖1所示。
圖1 目標建模流程Fig.1 Object modeling process
具體步驟[11]為:
步驟1采用標準高斯濾波的數(shù)據(jù)平滑方法,對點云數(shù)據(jù)進行平滑去噪處理。
步驟2運用盒邊長為1 cm的最小包圍盒劃分點云數(shù)據(jù),通過加權(quán)平均法計算獲取每一個包圍盒中的代表點,如(1)式:
(1)
式中:i、j、k分別表示空間長、寬、高3個方向的序列數(shù);Si,j,k表示第i、j、k個包圍盒內(nèi)的點云數(shù)據(jù)集合;n表示點集Si,j,k中數(shù)據(jù)點的個數(shù);vmid表示包圍盒的幾何中心坐標;vp表示Si,j,k中數(shù)據(jù)點坐標;dis()表示取兩點間距離,本文采用歐式距離。
步驟3連接相鄰包圍盒的代表點,形成多邊形網(wǎng)格。此處包圍盒相鄰包括面相鄰和邊相鄰兩種情況,代表點連接時按照先面相鄰和邊相鄰的優(yōu)先級順序。
步驟4將步驟3得到的小尺寸網(wǎng)格通過區(qū)域生長法合并為10 cm邊長的大尺寸網(wǎng)格。
步驟5采用統(tǒng)一的面片數(shù)據(jù)結(jié)構(gòu)封裝四邊形網(wǎng)格的頂點坐標、法向量等信息。
步驟6網(wǎng)格模型輸出采用多邊形文本存儲標準格式(PLY格式)。
三維空間任意物體可以通過其前視、后視、左視、右視、俯視5個正投影面進行表述,反之亦然。根據(jù)此事實,本文采用一種基于最小法矢角的紋理映射法實現(xiàn)二維數(shù)碼迷彩圖案向三維目標表面數(shù)碼迷彩圖案的轉(zhuǎn)換,流程如圖2所示。具體步驟為:
圖2 三維迷彩圖案生成方法Fig.2 Flow chart of 3D camouflage pattern generation method
步驟1導(dǎo)入PLY格式的目標三維網(wǎng)格模型。
步驟2由目標網(wǎng)格模型計算獲取目標最小外接矩形體,并將目標網(wǎng)格按照實際空間關(guān)系分別對應(yīng)至目標前、后、左、右、俯5個視面。
步驟3根據(jù)裝備最小外接矩形體,計算得到其五面展開圖的最小外包絡(luò)矩形尺寸,尺寸為(a+2b)×(2b+c),如圖3所示。
圖3 最小外接矩形體示意Fig.3 Minimum enclosing rectangular body
步驟4采用基于分形布朗模型的數(shù)碼迷彩圖案生成算法(DSH算法)生成尺寸為(a+2b)×(2b+c)的二維數(shù)碼迷彩圖案,算法流程[6]如圖4所示。
圖4 DSH數(shù)碼迷彩生成算法流程Fig.4 Flow chart of DSH digital pattern generation algorithm
步驟4.1依據(jù)預(yù)設(shè)的偵察分辨率,對背景圖像進行灰度化,生成灰度圖Gray并低分辨化處理,提取圖像紋理特征Hurst系數(shù)、亮度平均值Graya和亮度方差Grayv.
步驟4.2將背景圖像顏色轉(zhuǎn)化至Lab顏色空間,采用模糊c均值聚類算法提取得到背景主色及其面積比例。
步驟4.3運用鉆石- 菱形算法生成紋理。
步驟4.4根據(jù)背景主色及面積比例及其與紋理亮度對應(yīng)關(guān)系,完成紋理圖像賦色,生成得到數(shù)碼迷彩圖案。
步驟5采取最小法矢角法進行二維、三維圖案映射。
步驟5.1計算得到模型各面片的法向矢量,定義面片朝外的方向為法向方向。
步驟5.2計算面片法向矢量同裝備前、后、左、右、頂5個視面法向矢量的夾角,將面片對應(yīng)夾角最小的視面。
步驟5.3計算得到模型各面片的中心點坐標。
步驟5.4根據(jù)模型面片中心點坐標,投影得到各面片在五視面的對應(yīng)位置,以此建立模型面片和二維數(shù)碼迷彩圖案基本單元間的映射關(guān)系。
步驟5.5根據(jù)建立的映射關(guān)系,完成三維模型面片的偽裝色賦色。
步驟6以PLY格式輸出三維數(shù)碼迷彩圖案模型。
由于在二維迷彩圖案生成時沒有考慮裝備凹凸、拐角等外形特征,為了進一步提高設(shè)計圖案偽裝效果,在實際操作中需要對自動生成的圖案進行優(yōu)化修改。為此,本文基于微軟基礎(chǔ)類庫(MFC)和開放圖形庫(OpenGL)開發(fā)了3個功能模塊,以實現(xiàn)對三維數(shù)碼迷彩圖案的人工交互修改與優(yōu)化設(shè)計。其中,功能模塊1用于通過鼠標選取單個網(wǎng)格面片,如圖5所示。具體步驟為:
圖5 鼠標選取單個網(wǎng)格面片F(xiàn)ig.5 Selection of a single mesh patch by mouse
步驟1獲取鼠標點的Window視窗坐標,根據(jù)Window視窗坐標與OpenGL坐標系的關(guān)系,計算得到鼠標點在OpenGL坐標系下的坐標值。
步驟2運用gluUnProject函數(shù)得到揀選射線OP與OpenGL場景平截頭體遠截面、近截面的交點Y、J的世界坐標點[12]。揀選射線、OpenGL場景平截頭體和OpenGL視窗的關(guān)系如圖6所示。
圖6 揀選射線、OpenGL場景平截頭體和OpenGL視窗的關(guān)系Fig.6 Relation among picking ray, OpenGL scene frustum and OpenGL view window
步驟3由J、Y確定得到選揀射線方程,遍歷模型網(wǎng)格面片,計算選揀射線與網(wǎng)格面片所在平面的交點;考慮網(wǎng)格面片中存在空間四邊形的情況,將面片分為兩個三角形,并通過面積法判斷交點是否在網(wǎng)格面片內(nèi),由此得到與選揀射線相交的網(wǎng)格面片[13]。由于很多時候與選揀射線相交的網(wǎng)格面片不止一個,通過比較面片法矢量與選揀射線的夾角,選取得到面朝視點的網(wǎng)格面片。
功能模塊2用于同色網(wǎng)格面片區(qū)域生長,流程如圖7所示。具體步驟為:
圖7 同色網(wǎng)格面片區(qū)域生長Fig.7 Region growing of mesh patches with same color
步驟1新建面片鏈表用來存儲生長得到的面片,將當前面片存入所選面片鏈表。
步驟2若當前面片存在鄰接面片,則轉(zhuǎn)步驟3,否則算法結(jié)束。
步驟3讀取一個鄰接面片,若其顏色與當前面片相同,則將該鄰接面片存入所選面片鏈表。遍歷鄰接面片后算法結(jié)束。
功能模塊3用于通過鼠標選取斑點,流程如圖8所示。具體步驟為:
圖8 鼠標選取單個斑點Fig.8 Selection of a single spot by mouse
步驟1獲取鼠標點坐標,由功能模塊1得到所選面片,并設(shè)為當前面片,存入所選面片鏈表。
步驟2若當前面片存在鄰接面片,則轉(zhuǎn)步驟3,否則算法結(jié)束。
步驟3讀取一個鄰接面片,若該鄰接面片與當前面片顏色一致,則將其存入所選面片鏈表,設(shè)為當前面片后調(diào)用功能模塊2;否則讀取下一個鄰接面片,執(zhí)行步驟3.
本文算法測試環(huán)境:Intel Core(TM)i7-4800MQ CPU筆記本電腦,8 GB內(nèi)存,Windows7×64、Visual studio 2010、OpenGL和OpenCv. 測試目標為某型坦克1∶1模型,目標點云數(shù)據(jù)通過基于CamCube3.0深度相機和ABB IRB 5400-14噴涂機器人搭建的采集裝置獲取[8]。目標三維數(shù)碼迷彩圖案設(shè)計主要流程如圖9所示。
圖9 三維數(shù)碼迷彩圖案設(shè)計主要流程Fig.9 Flow chart of 3-D digital pattern design
由點云數(shù)據(jù)建模得到目標網(wǎng)格模型,如圖10、圖11所示。提取背景特征參數(shù)后,依據(jù)目標尺寸生成五面展開數(shù)碼迷彩圖案,采用二維、三維映射方式完成三維數(shù)碼迷彩圖案模型生成。
圖10 目標點云數(shù)據(jù)Fig.10 Point cloud data of target
圖11 目標網(wǎng)格模型Fig.11 Mesh model of target
對于自動生成圖案在目標交界面處的斑點搭接缺陷,采用人工交互方式進行優(yōu)化修改。如圖12所示,目標右側(cè)裙板中前部同上側(cè)面交界處的綠色斑點無順延銜接(圖12(a)中紅圈標注),不符合迷彩設(shè)計原則,通過優(yōu)化設(shè)計功能,在相應(yīng)位置增加了綠色斑點。
圖12 圖案修改優(yōu)化Fig.12 Modification and optimization of pattern
圖13、圖14、圖15、圖16分別是針對草原、荒漠、林地、叢林等不同背景類型設(shè)計得到的三維數(shù)碼迷彩圖案。
圖14 荒漠型數(shù)碼迷彩設(shè)計結(jié)果Fig.14 Design result of desert type digital pattern
圖15 林地型數(shù)碼迷彩設(shè)計結(jié)果Fig.15 Design result of forest type digital pattern
圖16 叢林型數(shù)碼迷彩設(shè)計結(jié)果Fig.16 Design result of jungle type digital pattern
采用平均灰度對比K和紋理相似度S[14]對生成三維圖案的前、后、左、右、頂5個不同視面與背景圖案進行紋理相似度計算,以此作為偽裝效果的評價:
(2)
(3)
表1 荒漠型數(shù)碼迷彩偽裝效果
表2 林地型數(shù)碼迷彩偽裝效果
表3 叢林型數(shù)碼迷彩偽裝效果
從上述設(shè)計過程和結(jié)果可以看出,運用本文方法,可以根據(jù)不同背景圖像數(shù)據(jù),結(jié)合裝備三維外形信息,自動生成符合背景特征的三維數(shù)碼迷彩圖案,并可以方便地進行修改優(yōu)化。由于得到的三維數(shù)碼迷彩圖案本質(zhì)上是帶有顏色信息的網(wǎng)格模型數(shù)據(jù)(PLY格式),設(shè)計輸出結(jié)果滿足構(gòu)建的自動噴涂作業(yè)系統(tǒng)[8]數(shù)據(jù)接口要求,可以直接用于解析與指導(dǎo)自動噴涂指令生成等后續(xù)作業(yè)流程。
本文提出了一種面向自動涂裝作業(yè)的機動裝備三維數(shù)碼迷彩設(shè)計方法。首先通過目標建模方法構(gòu)建目標四邊形三維網(wǎng)格模型,然后采用DSH算法生成目標五面展開數(shù)碼迷彩圖案,之后運用最小法矢紋理映射的方法實現(xiàn)二維、三維迷彩圖案轉(zhuǎn)化,最后通過基于OpenGL和MFC的交互功能模塊進行圖案優(yōu)化修改,最終完成符合背景特征的三維數(shù)碼迷彩圖案設(shè)計。今后進一步開展工作的方向包括:1)生成目標五面展開圖時,考慮前后視圖與左右視圖交界面的斑點銜接問題,以滿足偽裝圖案設(shè)計原則中關(guān)于交界面斑點需具有延續(xù)性的要求;2)探索考慮目標外形特征的迷彩斑點生成方法,以滿足偽裝圖案設(shè)計原則中關(guān)于目標凹凸部位亮暗斑點的配置原則。