姚云凱
(閩江學(xué)院,福建 福州 350108)
本文的研究是基于機(jī)器學(xué)習(xí)中采用神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,實(shí)現(xiàn)自動(dòng)化瞄準(zhǔn)與打擊的相關(guān)研究,在目標(biāo)無規(guī)則快速運(yùn)動(dòng)的情況下,發(fā)射機(jī)構(gòu)需要提前預(yù)判目標(biāo)的運(yùn)動(dòng)路徑,因此反應(yīng)速度對(duì)于攝像頭對(duì)裝甲板的識(shí)別有很大的影響,表現(xiàn)在將非裝甲板部分識(shí)別成裝甲板,將場(chǎng)地環(huán)境部分識(shí)別為單級(jí)目標(biāo),導(dǎo)致發(fā)射機(jī)構(gòu)瞄準(zhǔn)非目標(biāo)點(diǎn),因此對(duì)于采用機(jī)器學(xué)習(xí)(ML)模型識(shí)別目標(biāo)、神經(jīng)網(wǎng)絡(luò)算法的自動(dòng)化瞄準(zhǔn)至關(guān)重要。
傳統(tǒng)的數(shù)字識(shí)別算法如果搭配使用濾光片,存在場(chǎng)地環(huán)境燈光不足時(shí)數(shù)字識(shí)別準(zhǔn)確度較低的情況,并且數(shù)字識(shí)別比較耗時(shí),無法對(duì)于每一幀都識(shí)別裝甲數(shù)字,對(duì)于場(chǎng)地?zé)艄廨^復(fù)雜的環(huán)境依然存在一定的誤識(shí)別情況,對(duì)于燈條的擬合采用橢圓擬合,問題是燈條的寬度對(duì)于擬合的高度存在較大影響[1-2]。當(dāng)前的研究更換為使用矩形擬合處理,采用神經(jīng)網(wǎng)絡(luò)去處理圖片,得到裝甲信息,從根本上提高程序的魯棒性。
目標(biāo)檢測(cè)算法主要源自YOLO,一種用于物體檢測(cè)的最先進(jìn)的單級(jí)檢測(cè)器。所用3個(gè)版本的YOLO背后的總體思想是使用FC(完全卷積)層在網(wǎng)絡(luò)的單個(gè)前向傳播中生成邊界框預(yù)測(cè),與之前的方法(例如Fast R)相比,該算法識(shí)別效率更高、識(shí)別速度更快。

圖1 YOLO 的邊界框預(yù)測(cè)
本研究提出的方法受最新版本YOLOV3的啟發(fā),使用較小的編碼器來限制硬件使用[4]。為了優(yōu)化推理速度,編碼器模型快速地將輸入RGB圖像采樣到一個(gè)小的潛在空間,同時(shí)保持跳過連接以提高性能。最后使用XNOR-Net的二進(jìn)制權(quán)重運(yùn)算,和使用Tensor核心的FP16推理進(jìn)一步降低了計(jì)算成本。
編碼器是Darknet19和Darknet53的混合體,總體上遵循它們使用步長(zhǎng)為1的3×3內(nèi)核。為了降低空間分辨率,在一組卷積塊之后運(yùn)行最大池化。為了防止梯度下降并優(yōu)化整體性能,在每個(gè)卷積塊上附加了跳躍連接。編碼器將輸入下采樣到更小的空間域,用于生成第一組邊界框預(yù)測(cè)。最后添加上采樣層以在模型中分布FLOP,同時(shí)允許YOLO層為較小的對(duì)象提供高分辨率輸入。在每一層的末尾應(yīng)用leaky ReLU激活函數(shù)。
模型同時(shí)使用2個(gè)RTX 2080 TI進(jìn)行訓(xùn)練。為了改進(jìn)泛化,該模型首先使用Adam優(yōu)化器進(jìn)行訓(xùn)練,以減少整體訓(xùn)練時(shí)間,然后使用帶有動(dòng)量的SGD優(yōu)化器對(duì)其進(jìn)行微調(diào)。對(duì)于增強(qiáng)飽和度,曝光和色調(diào)用于加強(qiáng)模型防止過度擬合。對(duì)于損失,使用與YOLO V3/V2相同的損失,如圖2所示。

圖2 YOLO 的損失優(yōu)化
損失的第一行計(jì)算模型的預(yù)測(cè)質(zhì)心(x,y)與地面實(shí)況的L2距離(均方誤差),而第二行計(jì)算每個(gè)邊界框與地面的預(yù)測(cè)寬度和高度之間的L2距離真相。最后三行計(jì)算模型預(yù)測(cè)的邏輯損失,以確定給定區(qū)域是否有對(duì)象,以及適當(dāng)?shù)念惛怕蔥5]。
神經(jīng)網(wǎng)絡(luò)通常使用FP32進(jìn)行訓(xùn)練,一種提高模型推理速度并減小其大小的流行方法是量化——模型可以代替FP32,使用FP16、INT8甚至INT4進(jìn)行計(jì)算,從本質(zhì)上是在推理之間權(quán)衡速度和準(zhǔn)確性。XNOR-Net使用二進(jìn)制作為模型的主要數(shù)據(jù)類型,最大限度地利用了這種方法,在基于CPU的平臺(tái)上將推理速度提高了32倍。受此啟發(fā),在某些層中利用基于 XNOR的量化來進(jìn)一步降低計(jì)算成本[6]。

設(shè)(a,b,c)為基礎(chǔ)轉(zhuǎn)塔框架中的重力加速度
假設(shè)彈丸在t=0離開槍管。將目標(biāo)的路徑等同于彈丸的路徑:
重新排列項(xiàng)(將a、b、c向左移動(dòng)并分解L+Vt):


使用d表示狀態(tài)參數(shù)的數(shù)量,使用m表示測(cè)量參數(shù)的數(shù)量。使用OpenCV的卡爾曼濾波器實(shí)現(xiàn)。
簡(jiǎn)單線性卡爾曼濾波器通過以下過程估計(jì)每個(gè)時(shí)間步的狀態(tài)。首先使用轉(zhuǎn)換模型對(duì)當(dāng)前狀態(tài)進(jìn)行估計(jì):預(yù)測(cè)狀態(tài)=轉(zhuǎn)換矩陣@前一個(gè)狀態(tài)向量+控制矩陣@控制向量。這通常稱為“預(yù)測(cè)步驟”。將時(shí)間k處的預(yù)測(cè)狀態(tài)表示為:x'k:x'k=Fkxk-1+Bkuk
不使用控制矩陣和控制向量,簡(jiǎn)化為x'k=Fkxk-1
獲得x'k后,濾波器通過使用在此時(shí)間步長(zhǎng)上獲得的測(cè)量值對(duì)其進(jìn)行校正,從而獲得更準(zhǔn)確的讀數(shù)。這通常稱為“更新步驟”。首先,它根據(jù)預(yù)測(cè)獲得該時(shí)間步長(zhǎng)上的測(cè)量值x'k:預(yù)測(cè)測(cè)量值=測(cè)量矩陣@預(yù)測(cè)狀態(tài)。將這個(gè)在時(shí)間步k處的預(yù)測(cè)測(cè)量表示為z'k。z'k=Hkx′k
然后計(jì)算yk實(shí)際測(cè)量值與預(yù)測(cè)測(cè)量值之間的差值:yk=zk-z′k。之后,它使用過程噪聲協(xié)方差、測(cè)量噪聲協(xié)方差和預(yù)測(cè)誤差協(xié)方差P′k(計(jì)算P′k未顯示)計(jì)算卡爾曼增益。然后它使用卡爾曼增益,更新預(yù)測(cè)狀態(tài)以獲得此時(shí)間步的最佳狀態(tài)估計(jì):xk=x′k+Kkyk
最后使用卡爾曼增益來給出誤差協(xié)方差的最佳估計(jì)值Pk。
然而直觀地,卡爾曼增益是一個(gè)d*m矩陣,它從測(cè)量空間映射到狀態(tài)空間,它給出了濾波器對(duì)測(cè)量值、zk、預(yù)測(cè)值的信任程度的度量x′k。卡爾曼增益隨著過程噪聲的增大而增加,隨著測(cè)量噪聲的增大而減小。在零矩陣的極端情況下,上面的更新步驟變?yōu)閤k=x′k并且測(cè)量被完全丟棄。在另一個(gè)極端,收斂的偽逆Hk,新狀態(tài)只是基于測(cè)量。
本研究擁有強(qiáng)大的基礎(chǔ),可以支持自動(dòng)化識(shí)別與瞄準(zhǔn)中的高級(jí)視覺使用。但是,還可以在許多方面進(jìn)行改進(jìn)以提高準(zhǔn)確性、響應(yīng)性和一致性:使系統(tǒng)對(duì)RealSense不穩(wěn)定性更加魯棒。這需要調(diào)查操作系統(tǒng)和庫級(jí)別的互操作問題。減少往返外循環(huán)時(shí)間:優(yōu)化神經(jīng)網(wǎng)絡(luò)檢測(cè)器的執(zhí)行(包裝器代碼和實(shí)際推理時(shí)間),向主控制器調(diào)查移動(dòng)彈道和里程計(jì),并僅發(fā)送3D位置和速度而不是炮塔目標(biāo)。提高幀和里程計(jì)時(shí)間戳的精度(消除捏造因素)所有主要組件的單元測(cè)試和模擬。