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