周 鵬,李長楨,鄭 毅,韓 隆
(華北光電技術研究所,北京 100015)
近年來,隨著激光技術的快速發(fā)展,光電設備在模擬訓練器材中的應用越發(fā)成熟,以激光打靶來代替實彈射擊的激光模擬射擊廣泛應用于競技射擊、軍事訓練以及仿真射擊娛樂項目中[1-3]。
激光模擬射擊自動報靶系統(tǒng)中命中環(huán)數(shù)的采集方式分為基于光電傳感式和基于圖像處理兩種類型。光電傳感式報靶系統(tǒng)采用安裝在靶上的光電傳感器陣列探測激光,自動報靶速度快,但其報靶精度與光電傳感器密度相關,精度越高所需要光電傳感器密度越高,而成本也越高,還存在抗干擾能力差、安裝復雜、維護困難等缺點[4-5]。圖像處理式報靶采用高清攝像技術采集靶面圖像,通過圖像處理算法對靶面圖像進行處理,計算出命中環(huán)數(shù),從而完成報靶,其報靶精度高,且系統(tǒng)硬件成本低,安裝維護方便,能夠在復雜光線環(huán)境下穩(wěn)定運行[6]。
圖像處理式報靶系統(tǒng)通過計算圖像中激光光斑中心與靶環(huán)中心之間的距離來確定命中環(huán)數(shù),其結果是否準確可靠取決于是否能夠準確找到圖像中靶環(huán)的中心和激光光斑的中心。文獻[7]中以10環(huán)小圓內所有像素點坐標值的平均值作為靶環(huán)的中心,通過圖像相減來提取激光光斑,并采用灰度重心法計算其中心,進而計算出命中環(huán)數(shù);文獻[8]在確定靶環(huán)中心時通過提取環(huán)線進行圓擬合得到圓心作為靶環(huán)中心,通過圖像相減來提取激光光斑,以光斑輪廓的最大內接圓表示光斑區(qū)域,圓心為光斑中心,進而計算出命中環(huán)數(shù)。這些方法在光斑形狀規(guī)則、亮度均勻,且圖像沒有畸變的情況下,計算結果是準確可靠的。但是在實際應用中,光斑形狀不規(guī)則、亮度不均勻、雜光等會影響光斑中心計算精度,并且攝像機鏡頭的光學畸變和拍攝角度的問題會使采集到的靶面圖像有畸變,在畸變的圖像中使用上述方法進行計算,得到靶環(huán)中心和光斑中心會存在較大誤差,對于一些報靶精度要求很高的應用場景如競技射擊運動中,這樣的誤差超出了允許范圍,計算出的結果不能代表運動員的真實射擊成績。針對上述問題,本文提出一種高精度命中環(huán)數(shù)算法,利用參考點來確定靶環(huán)中心,根據(jù)光斑實際情況改進光斑中心算法,通過圖像中參考點與實際參考點位置對應關系來校正靶面圖像中畸變的點,得到準確的光斑中心及靶環(huán)中心,進而計算出準確的命中環(huán)數(shù),提高了命中環(huán)數(shù)的精度。
本文所述算法實際應用的激光模擬射擊系統(tǒng)主要由仿真激光槍、靶、攝像機、主機和顯示終端組成,如圖1所示。系統(tǒng)工作時,仿真激光槍在發(fā)射激光的同時通過無線傳輸?shù)姆绞桨l(fā)射同步信號,主機接收到同步信號后給控制攝像機采集靶面圖像,然后對圖像進行處理,通過命中環(huán)數(shù)算法計算出激光光斑命中的環(huán)數(shù),在顯示終端的上顯示命中環(huán)數(shù)與命中點位置并語音報靶。
圖1 激光模擬射擊系統(tǒng)示意圖Fig.1 Laser simulation shooting system
攝像機置于靶面正后方的封閉腔體中,且靶面不能透過環(huán)境光,只能透過激光器發(fā)出的激光,所以攝像機只能采集到的圖像中只有激光光斑而沒有靶環(huán),因此需要在靶面上設置參考點,通過參考點來建立靶面坐標系,以此確定靶環(huán)中心及激光光斑中心在靶面上的位置,從而計算出命中環(huán)數(shù)。靶面圖案及參考點位置如圖2所示,靶面上共有8個參考點,為靶面上一正方形的四個頂點和四邊中點,靶環(huán)區(qū)域位于正方形中央,并且靶環(huán)中心與正方形中心重合。
圖2 靶面示意圖Fig.2 Target
攝像機通過鏡頭在圖像傳感器上所成的像為倒立縮小的實像,可將其簡化為小孔成像模型,物體P在像平面上成倒立的實像P′,為了便于分析,假設將像平面移至物方,所成像為正立的實像P″,大小與P′相等,如圖3所示。
圖3 小孔成像模型示意圖Fig.3 The pinhole imaging model
在鏡頭沒有畸變的情況下,物平面上的所有物點與像平面對應像點的連線交于小孔中心點O,成像的過程即為物平面上的上的物點以中心O為基準,投影成像平面上的像點,所以攝像機成像過程是單點透視投影[9],攝像機拍攝靶面時將靶面經過透視變換,生成另一個平面圖像。如圖4所示,當正方形ABCD所在平面與光軸OZ垂直時,也即物平面與像平面平行,此時像平面上投影生成的四邊形A′B′C′D′仍為正方形,只是大小發(fā)生變化而沒有出現(xiàn)變形,這種投影稱為正投影。
圖4 透視投影示意圖Fig.4 Perspective projection
但是在實際應用中,此激光模擬射擊系統(tǒng)基于成本的限制和安裝維護便利性的考慮,攝像機與靶均采用較為簡單的結構進行安裝固定。由于沒有光學基準面,安裝時無法確保攝像機光軸對準靶環(huán)中心且像平面與靶面平行,會使得攝像機拍攝到的靶面圖像存在透視變形,即四邊形A′B′C′D′不再是正方形,表現(xiàn)為“近大遠小”,透視變形是造成圖像畸變的原因之一。
造成圖像畸變的另一個原因是鏡頭的光學畸變。鏡頭光學畸變屬于非線性畸變[10-11],主要有徑向畸變、偏心畸變和薄棱鏡畸變。其中徑向畸變是指所成像點相對于理想像點位置發(fā)生徑向偏移,是共軸球面光學系統(tǒng)中的一種像差,光學系統(tǒng)設計時就存在,對圖像的影響最為顯著;偏心畸變和薄棱鏡畸變是由于透鏡在制造、裝配過程中存在誤差而產生的,通常情況下對圖像影響較小,本文主要考慮徑向畸變。
徑向畸變的大小與像點到光軸即圖像中心的大小有關,圖像中心處無畸變,隨著所成像由中心向邊緣移動,徑向畸變就會越來越大。當像點相對于理想像點位置朝著圖像中心方向移動時,會產生負畸變,也叫桶形畸變,如圖5(b)所示,多出現(xiàn)在廣角鏡頭中,并且鏡頭視場角越大,圖像畸變也越大;反之,當像點對于理想像點位置朝著遠離圖像中心方向移動時,則會產生正畸變,也叫枕形畸變,如圖5(c)所示,一般出現(xiàn)在長焦鏡頭中。
圖5 徑向畸變示意圖Fig.5 Radial distortion
在透視變形與鏡頭光學畸變的共同作用下,攝像機拍攝到的靶面圖像會出現(xiàn)非線性畸變。這種非線性畸變會導致圖像上靶環(huán)中心的定位存在誤差,并且圖像中靶環(huán)中心到光斑中心的距離與真實距離不再是簡單的線性對應關系,若以此直接計算命中環(huán)數(shù),最后得到的結果與真實命中環(huán)數(shù)會存在較大誤差。
除了圖像畸變會對計算得到的命中環(huán)數(shù)產生影響外,光斑中心定位是否準確也會影響命中環(huán)數(shù)結果。常用的光斑中心定位算法有灰度重心法、圓擬合法和高斯擬合法等[12]?;叶戎匦姆ㄟm用于光斑清晰且分布均勻的情況,其優(yōu)點是計算速度快,但對于分布不均勻的光斑,使用這種方法將產生較大誤差。圓擬合法計算速度快、精度高,但抗干擾能力較差,當噪聲存在時,會導致光斑中心定位精度降低,噪聲較大甚至會產生錯誤結果。高斯擬合法適用于激光實際光強分布符合高斯分布的情況,對于較為理想的光斑其計算精度高,其缺點是計算耗時,實時性差。
為了消除由于圖像畸變和光斑中心定位誤差對命中環(huán)數(shù)的影響,提高命中環(huán)數(shù)精度,本文提出一種高精度命中環(huán)數(shù)算法,算法流程如圖6所示。
圖6 命中環(huán)數(shù)計算流程Fig.6 Calculation process of hit rings
①對原始靶面圖像進行高斯濾波降噪的預處理,然后設置閾值對圖像行進二值化處理;
②利用角點檢測算法計算出8個參考點坐標;
③在命中判別區(qū)域中利用改進的灰度重心法計算光斑中心坐標;
④利用中點參考點計算出透視投影變換系數(shù),對原始靶面圖像進行透視變形校正,得到校正后的參考點坐標和光斑中心坐標;利用8個參考點計算出徑向畸變系數(shù),對透視變形校正后的靶面圖像進行徑向畸變校正,得到無畸變的參考點坐標、光斑中心坐標和靶環(huán)中心坐標;
⑤通過無畸變靶面圖像上參考點之間的像素距離與實際靶面上參考點之間的距離對應關系,計算出實際靶面上光斑中心到靶環(huán)中心的距離,根據(jù)環(huán)數(shù)規(guī)則計算出命中環(huán)數(shù)。
攝像機拍攝到的光斑圖像如圖7(a)所示,中央亮斑亮度均勻但其周圍有散斑,因此不能直接采用灰度重心法計算光斑中心。通過對圖像分析可知,圖像中散斑像素的灰度值約為中央亮斑像素灰度值的80 %。為了提取出清晰且均勻的光斑,將光斑所在區(qū)域最大像素灰度值的85 %作為閾值對圖像進行二值化處理,處理完得到的光斑圖像如圖7(b)所示。
圖7 激光光斑示意圖Fig.7 Laser spot
然后利用灰度重心法計算光斑中心坐標,公式如下:
(1)
其中,M、N為圖像各分區(qū)的寬高像素數(shù);G(i,j)為圖像二值化后像素點的值,取值為0或1。
用攝像機采集靶面圖像的過程可分解為如下步驟,首先真實的靶面經過透視投影,在攝像機圖像傳感器所在平面上形成有透視變形的靶面圖像,此圖像再經過鏡頭徑向畸變作用,得到畸變后的靶面圖像,然后再經過圖像傳感器數(shù)字化、離散化處理,最終得到一幅有畸變的靶面圖像。因此,在校正圖像畸變時,可分為兩步,先校正透視變形,然后校正徑向畸變。
透視變形校正是將畸變圖像上的各點經過透視投影,變換到與實際靶面平行的一個平面上,這個平面與實際靶面的投影關系為正投影,由于正投影不改變圖形的形狀,所以通過此透視投影即可消除透視變形。
設物平面上一點Q在物平面坐標系上的坐標為(x,y),其齊次坐標為(x,y,1),經透視投影后得到點Q′,點Q′的齊次坐標為(x0,y0,w),點Q′在像平面坐標系的坐標為(x′,y′),則透視投影變換可表示為:
(2)
變換矩陣中的a33代表縮放因子,可令a33=1,將(2)式展開可得
(3)
由此式可將透視投影中兩個平面上的點的坐標進行相互轉換[13]。
由公式(3)可知,透視投影變換中一個點對可以產生兩個方程,要想求解8個未知的變換系數(shù),需要不共線的4個點對提供8個方程來進行求解。因為圖像存在徑向畸變,畸變圖像中的8個參考點不再是正方形的頂點和各邊中點,根據(jù)徑向畸變的特性,作為各邊中點的參考點距離圖像中心距離更近,徑向畸變也越小。因此,在校正透視變形時用各邊中點的參考點進行計算,誤差更小。
MA=U
(4)
其中M為8階方陣,A為投影變換系數(shù)組成的列向量,U為投影變換后的參考點坐標組成的列向量,則:
A=M-1U
(5)
由此可以求解出投影變換系數(shù),再將畸變圖像中光斑中心點、圖像中心和其余參考點的坐標代入公式(3),即可求出經過投影變換后的對應點坐標。
在經過透視變形校正的圖像中,以圖像中心為徑向畸變中心點,徑向畸變模型[14-16]如下:
(6)
(7)
其中,Spixel為像元的實際尺寸。根據(jù)理想共軸球面光學系統(tǒng)垂軸放大率公式[17],可計算出對應的無畸變理想像高rui為
(8)
其中,f為鏡頭焦距;l為靶面到攝像頭的距離,即物距,當靶環(huán)中心與圖像中心重合時,r為實際靶面上參考點到靶環(huán)中心的距離,若靶環(huán)中心與圖像中心不重合,計算r時需要將靶環(huán)中心與畸變中心的偏移量一起納入計算。
將各參考點的畸變像高rdi與無畸變像高rui以及畸變中心點代入公式(6),采用最小二乘法求解出徑向畸變系數(shù)k1、k2、k3。再利用公式(6),可求解出經過透視變形校正的圖像中各點(u′,v′)經過徑向畸變正后的坐標(xu,yu),公式如下:
(9)
由此可計算出在無畸變圖像中各參考點、光斑中心點和靶環(huán)中心的坐標。
在無畸變靶面圖像中,將坐標原點移至靶環(huán)中心,設此時光斑中心的坐標為(xL,yL),在實際靶面上光斑中心到靶環(huán)中心的距離LLT為
(10)
真實的子彈打在靶面上會產生一個彈孔,命中環(huán)數(shù)是根據(jù)彈孔邊緣與靶環(huán)中心最近的距離來計算,激光模擬射擊在計算命中環(huán)數(shù)時需要以光斑中心為圓心、與真實子彈彈孔直徑相等的圓來模擬彈孔,計算出準確的命中環(huán)數(shù)。因此,計算環(huán)數(shù)時還需要用光斑中心到靶環(huán)中心的距離LLT減去彈孔的半徑,再判斷這個距離屬于幾環(huán)區(qū)域,從而得到準確的命中環(huán)數(shù)。以下圖8所示為例,雖然光斑中心在2環(huán)與三環(huán)之間,但激光射擊后產生的“彈孔”已經跨過3環(huán)線,因此此次射擊的命中環(huán)數(shù)為3環(huán)。
圖8 環(huán)數(shù)計算示意圖Fig.8 Hit rings calculation
為了驗證本文算法的精度與可靠性,設計并進行了如下實驗。
激光器采用波長650 nm的半導體激光器,功率為5 mW,激光器與目標靶之間距離為10 m,出射激光打到靶上的光斑直徑約3 mm,模擬直徑為4.5 mm的鉛彈。目標靶采用10 m氣步槍靶,1環(huán)為直徑45.5 mm的圓,環(huán)間距2.5 mm,環(huán)線寬度0.1~0.2 mm,9環(huán)為直徑5.5 mm圓,10環(huán)為中心處直徑0.5 mm的點。靶環(huán)圖案印刷在透明有機玻璃板一面上,在靶環(huán)四周預留8個透光區(qū)域,其中心角點作為參考點,參考點組成的正方形邊長為180 mm,除參考點區(qū)域外其余部分均不透光,僅能透過激光器發(fā)出的激光,靶板安裝在封閉腔開口處,如圖9所示。
圖9 靶板及其安裝示意圖Fig.9 Target plate and its installation
采集圖像所用攝像機為黑白的工業(yè)相機,其像元大小為4.8 μm,鏡頭為廣角鏡頭,焦距4 mm,攝像機安裝在封閉腔內部、靶板的正后方,圖像中心對準靶環(huán)中心且光軸垂直于靶面,相機與靶板之間的距離為159 mm。攝像機與電腦相連,采集到圖像后傳輸至電腦,用MATLAB編寫的命中環(huán)數(shù)算法程序進行處理計算,采集到的靶面圖像如圖10所示。
圖10 攝像機采集到的靶面圖像Fig.10 Target image captured by camera
激光器射擊15次,原始靶面圖像直接計算出的命中環(huán)數(shù)、本文算法計算出的命中環(huán)數(shù)與實際命中環(huán)數(shù)結果如表1所示。
從表1中數(shù)據(jù)可以看出,15次射擊中,本文算法計算出的命中環(huán)數(shù)有14次與實際命中環(huán)數(shù)一致,僅有1次比實際命中環(huán)數(shù)小0.1環(huán);而用原始靶面圖像直接計算的命中環(huán)數(shù)結果僅有10次與實際命中環(huán)數(shù)一致,在命中環(huán)數(shù)不一致的5次中,有4次比實際命中環(huán)數(shù)小0.1環(huán),1次小0.2環(huán)。由此可知,本文算法的命中環(huán)數(shù)結果更接近真實命中環(huán)數(shù)。與環(huán)數(shù)對應的光斑中心到靶環(huán)中心距離如表2所示。
表1 命中環(huán)數(shù)結果對比Tab.1 Comparison of hit rings
表2 光斑中心到靶環(huán)中心距離結果對比Tab.2 Comparison of the distance between the center of the spot and the center of the target rings
從表2中數(shù)據(jù)可知,在每次射擊中,本文算法得到的光斑中心到靶環(huán)中心的距離與實際值的距離誤差均小于直接用原始靶面圖像計算得到的距離與實際值的距離誤差,本文算法距離誤差最大值為0.0661 mm,而直接用原始靶面圖像計算的距離誤差最大值為0.4763 mm,也就說明本文算法得到的光斑中心到靶環(huán)中心的距離更接近于實際值。此外,由于靶板和攝像機的安裝誤差,導致靶環(huán)中心與圖像不重合,使得光斑在靶面不同方向上的距離誤差大小不一致,總體上,越靠近靶環(huán)中心,距離誤差越小。
由以上實驗結果可知,本文算法能夠有效地消除圖像畸變和光斑中心定位帶來的誤差,提高命中環(huán)數(shù)精度,其命中環(huán)數(shù)達到0.1環(huán)級別,光斑中心在靶面上的定位精度達到0.1 mm級,能代表真實射擊命中環(huán)數(shù)。
本文通過對命中環(huán)數(shù)誤差來源分析,針對由于圖像畸變和光斑中心定位誤差而造成命中環(huán)數(shù)計算結果與實際值偏差較大的問題,提出一種高精度命中環(huán)數(shù)算法。算法通過參考點確定靶環(huán)中心,采用帶閾值處理的灰度重心法計算光斑中心,利用參考點對畸變圖像進行透視變形校正和徑向畸變校正,消除因圖像畸變而帶來的計算誤差,最后計算出準確的射擊命中環(huán)數(shù)。實驗結果表明,本文算法相比于不考慮圖像畸變的環(huán)數(shù)計算結果更為準確,精度更高,能有效提高命中環(huán)數(shù)精度,其命中環(huán)數(shù)達到0.1環(huán)級別,光斑中心在靶面上的定位精度達到0.1 mm級,能代表真實射擊成績,在激光模擬射擊中具有實用意義。