侯凱強(qiáng), 李俊山, 王雪博, 劉靚歡, 張浩鈞
(上海無線電設(shè)備研究所,上海201109)
在強(qiáng)調(diào)高動(dòng)態(tài)和強(qiáng)對(duì)抗的導(dǎo)彈領(lǐng)域,近年來對(duì)智能化、自主性和復(fù)雜環(huán)境自適應(yīng)等新質(zhì)能力的需求越來越迫切。在實(shí)際應(yīng)用中,彈載制導(dǎo)平臺(tái)面臨著目標(biāo)種類多,背景復(fù)雜、目標(biāo)尺度變化劇烈、干擾遮擋等現(xiàn)狀,導(dǎo)致傳統(tǒng)的信號(hào)處理算法失效,已有的算法很難適用上述情況,識(shí)別目標(biāo)能力提升遭遇瓶頸。
相較于傳統(tǒng)特征提取方法,人工智能算法擁有更強(qiáng)大的特征學(xué)習(xí)和表征能力,對(duì)于處于對(duì)抗環(huán)境的彈載制導(dǎo)平臺(tái)目標(biāo)識(shí)別問題有很好的應(yīng)用前景。而人工智能算法在完成數(shù)據(jù)積累和算法訓(xùn)練后,如何將訓(xùn)練好的網(wǎng)絡(luò)快速部署在對(duì)功耗和體積都有嚴(yán)格要求的彈載制導(dǎo)平臺(tái)上,將成為人工智能技術(shù)在軍事領(lǐng)域落地的關(guān)鍵技術(shù)和瓶頸所在[1]。
國內(nèi)極少有將人工智能技術(shù)應(yīng)用在導(dǎo)彈中的根本原因在于人工智能芯片與彈載環(huán)境的嵌入式適配。這一輪人工智能技術(shù)的快速崛起得益于數(shù)據(jù)、算法、芯片三大支柱的推動(dòng),其中數(shù)據(jù)用于算法訓(xùn)練階段,本文主要討論推理階段的嵌入式適配;AI算法目前的成果頗豐,彈載應(yīng)用只需從中選擇其中無依賴項(xiàng),輕量、靈活的算法進(jìn)行適當(dāng)裁剪即可;芯片是彈載AI嵌入式適配的基石,現(xiàn)有的AI芯片可以總結(jié)為ASIC、GPU 和FPGA 三個(gè)發(fā)展路線。由于實(shí)時(shí)性、功耗、體積、成本、可靠性等方面的綜合考量,F(xiàn)PGA 一直以來都備受彈載嵌入式應(yīng)用的青睞。所以在AI算法的嵌入式適配上,選擇了在FPGA 基礎(chǔ)上發(fā)展衍生而來的AI芯片。
綜上,本文首先選擇了適合應(yīng)用在彈載環(huán)境下的AI目標(biāo)識(shí)別算法—YOLO_v2,分析YOLO_v2算法的計(jì)算過程,對(duì)其進(jìn)行輕量化裁剪。然后選取了國內(nèi)自主研發(fā)的新一代AI芯片和AI指令集編譯器,在國產(chǎn)AI芯片上進(jìn)行了軟硬件協(xié)同開發(fā),實(shí)現(xiàn)YOLO_v2 算法的快速片上部署,對(duì)AI算法在彈載導(dǎo)引系統(tǒng)上的嵌入式應(yīng)用進(jìn)行了探索,為之后國產(chǎn)AI芯片的推廣及在型號(hào)中的應(yīng)用提供前期驗(yàn)證和技術(shù)支撐,最終將把人工智能技術(shù)集成并應(yīng)用到智能導(dǎo)彈導(dǎo)引頭中。
通過對(duì)比分析最新的人工智能算法和在研的彈載平臺(tái)制導(dǎo)體制,選擇具有目標(biāo)識(shí)別精度高、速度快等符合彈載制導(dǎo)平臺(tái)要求的YOLO_v2算法作為本文研究的基礎(chǔ)。YOLO(you only look once)卷積神經(jīng)網(wǎng)絡(luò)是一種基于回歸思想的深度學(xué)習(xí)目標(biāo)檢測算法,在保證檢測精度的同時(shí),大幅度提高了檢測速度,為推動(dòng)目標(biāo)檢測研究領(lǐng)域的發(fā)展做出了杰出的貢獻(xiàn)[2]。但初始版本的YOLO 算法由于在網(wǎng)格劃分以及預(yù)測邊框數(shù)量的選取方面不太成熟,出現(xiàn)了定位不精準(zhǔn)等問題。YOLO_v2 算法在YOLO 算法的基礎(chǔ)上進(jìn)行了改進(jìn),使得檢測效果有了進(jìn)一步提升。
YOLO_v2網(wǎng)絡(luò)包含了24 個(gè)卷積層和5 個(gè)池化層,運(yùn)算次數(shù)達(dá)30 BFLOPs(billion float point operation)。為了YOLO_v2算法的嵌入式實(shí)現(xiàn),必須對(duì)YOLO_v2網(wǎng)絡(luò)進(jìn)行算法和硬件設(shè)計(jì)進(jìn)行優(yōu)化,降低其計(jì)算復(fù)雜度。下面將從計(jì)算方式和深度模型壓縮兩個(gè)方面對(duì)YOLO_v2算法進(jìn)行優(yōu)化。
卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算成本最高的是二維卷積,因此,二維卷積計(jì)算的優(yōu)化是提升算法效率的關(guān)鍵。本文利用im2col快速卷積來減少計(jì)算量,利用硬件設(shè)計(jì)進(jìn)行計(jì)算內(nèi)存的優(yōu)化。im2col方法的基本思想是:將卷積操作轉(zhuǎn)換為矩陣乘法,這樣可以高效利用優(yōu)化后的矩陣乘法,犧牲加法運(yùn)算來替代部分乘法運(yùn)算,減少對(duì)本文選擇的AI芯片中DSP硬核的依賴。目前幾乎所有的主流計(jì)算框架都實(shí)現(xiàn)了該方法。
圖1展示了im2col方法的計(jì)算過程。圖中,輸入特征(input features)的每一個(gè)二維矩陣對(duì)應(yīng)輸入圖像或特征圖中的一個(gè)通道。
采用滑窗法,對(duì)于每一個(gè)滑動(dòng)窗口,將對(duì)應(yīng)感受野里的矩陣轉(zhuǎn)化成行向量,各個(gè)通道的特征按行連接,不同感受野里獲得的行矩陣按列連接;將重排后的輸入特征矩陣和重排后的核矩陣相乘,獲得卷積結(jié)果。
圖1 滑窗法與im2col方法
神經(jīng)網(wǎng)絡(luò)壓縮的需求是伴隨這神經(jīng)網(wǎng)絡(luò)發(fā)展和應(yīng)用規(guī)模的拓展出現(xiàn)的,利用統(tǒng)計(jì)分析的方法可以發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型中存在大量的冗余信息。由于嵌入式設(shè)備運(yùn)行條件的限制,必須對(duì)模型進(jìn)行壓縮處理,針對(duì)這些冗余和不重要的項(xiàng),深度模型壓縮方法主要有模型量化、參數(shù)修剪與共享、關(guān)鍵信息提取、權(quán)重矩陣分解等。本文主要進(jìn)行了模型量化、權(quán)重參數(shù)修剪與共享。
隨著數(shù)據(jù)的產(chǎn)生、算法的突破以及硬件的發(fā)展,人工智能在最近幾年迎來了全面的爆發(fā)。硬件的發(fā)展,是支撐著人工智能發(fā)展的基礎(chǔ)。這里的硬件,是指運(yùn)行AI算法的芯片。
從部署位置來分,AI可以分為:云端和終端。云端,即數(shù)據(jù)中心,在深度學(xué)習(xí)的訓(xùn)練階段需要極大的數(shù)據(jù)量和大運(yùn)算量,單一處理器無法獨(dú)立完成,因此訓(xùn)練環(huán)節(jié)只能在云端實(shí)現(xiàn);終端,即手機(jī)、汽車、智能家居設(shè)備、各種IOT 設(shè)備等執(zhí)行邊緣計(jì)算的智能設(shè)備,終端的數(shù)量龐大,而且需求差異較大。
云端AI芯片的特點(diǎn)是性能強(qiáng)大、能夠同時(shí)支持大量運(yùn)算、并且能夠靈活地支持圖片、語音、視頻等不同AI應(yīng)用。終端AI芯片的特點(diǎn)是體積小、耗電少,而且性能不需要特別強(qiáng)大,通常只需要支持一兩種AI能力[3]。顯然,彈載制導(dǎo)平臺(tái)是一種終端。
從應(yīng)用場景而言,人工智能主要分為:訓(xùn)練、推理兩個(gè)方面。訓(xùn)練,是指通過大數(shù)據(jù)訓(xùn)練出一個(gè)復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型。訓(xùn)練需要極高的計(jì)算性能,需要較高的精度,需要能處理海量的數(shù)據(jù),需要有一定的通用性,以便完成各種各樣的學(xué)習(xí)任務(wù)。推理,是指利用訓(xùn)練好的模型,使用新數(shù)據(jù)推理出各種結(jié)論。即借助現(xiàn)有神經(jīng)網(wǎng)絡(luò)模型進(jìn)行運(yùn)算,利用新的輸入數(shù)據(jù)來一次性獲得正確結(jié)論的過程。也有叫做預(yù)測或推斷。訓(xùn)練芯片,注重絕對(duì)的計(jì)算能力,而推斷芯片更注重綜合指標(biāo),單位能耗算力、時(shí)延、成本等都要考慮[3]。由于實(shí)時(shí)性、體積、功耗等的限制,彈載制導(dǎo)平臺(tái)適宜選擇推理芯片。
綜上考慮,選取了復(fù)旦微電子自主研發(fā)的國內(nèi)新一代AI芯片,作為彈載目標(biāo)識(shí)別算法的實(shí)時(shí)運(yùn)行環(huán)境。
復(fù)旦微電子研發(fā)的AI 芯片是一款采用22 nm工藝的全可編程AI芯片,它是在SOPC芯片的基礎(chǔ)上發(fā)展而來,能高效的執(zhí)行卷積,激活,池化和全連接操作。主要面向人工智能領(lǐng)域里視頻與圖像處理的邊緣計(jì)算和推理任務(wù)提供強(qiáng)勁的硬件平臺(tái)支持。它在單芯片上集成了具有強(qiáng)大處理能力的四核處理器的處理系統(tǒng)(簡稱PS)、可編程邏輯(簡稱PL)、彈載AI加速硬核、大容量片上存儲(chǔ)器,其芯片結(jié)構(gòu)如圖2所示。
圖2 AI芯片架構(gòu)
AI加速硬核集中了大量的DSP 資源,能以GHz級(jí)別的頻率進(jìn)行計(jì)算,支持卷積神經(jīng)網(wǎng)絡(luò)的各個(gè)運(yùn)算層,能高效的執(zhí)行卷積,激活,池化和全連接操作。
用戶使用基于彈載AI指令集和加速硬核開發(fā)的編譯器,可以容易地實(shí)現(xiàn)人工智能應(yīng)用的快速部署,應(yīng)用的動(dòng)態(tài)重構(gòu)和快速升級(jí)。具有高效的性能,以及合適的性價(jià)比。在該芯片中,CPU、可編程邏輯門陣列和彈載AI加速硬核各司其職。CPU 仍然是未來計(jì)算機(jī)系統(tǒng)的核心,而可編程邏輯門陣列和AI加速硬核則突破了馮諾依曼架構(gòu),專用于處理智能能力、處理速度和能耗,負(fù)責(zé)智能和認(rèn)知的部分。在處理器系統(tǒng)和可編程邏輯門陣列部分均分布DDR 存儲(chǔ)器,最大化數(shù)據(jù)交互和共享,完美的實(shí)現(xiàn)了“讓最適合的單元迅速處理相關(guān)任務(wù)”。
卷積神經(jīng)網(wǎng)絡(luò)中,卷積層的計(jì)算量占據(jù)了總計(jì)算量的95%以上,同時(shí)存儲(chǔ)空間的需求僅占據(jù)15%。計(jì)算卷積層的處理時(shí)間是總時(shí)間的90%以上。所以現(xiàn)有的各類CNN 硬件加速主要將加速目標(biāo)定義在加速卷積層[4]??紤]到芯片中AI加速硬核及PL 部分具有強(qiáng)大的并行計(jì)算能力,因此,計(jì)算中耗時(shí)較多的可并行化的部分應(yīng)該分配到AI加速硬核及PL邏輯資源中運(yùn)行。而PS部分順序執(zhí)行,有著較高的時(shí)鐘頻率,在流程控制和復(fù)雜非線性函數(shù)求解的方面有著較為優(yōu)秀的能力,因此可以用來實(shí)現(xiàn)任務(wù)調(diào)度和非線性函數(shù)求解。
彈載YOLO_v2算法,其基礎(chǔ)模型為深度特征提取網(wǎng)絡(luò)Darknet-19,由一系列的卷積層和池化層組成。YOLO_v2算法模型結(jié)構(gòu)的描述文件為*.cfg,模型參數(shù)文件為*.weights。只需要將*.cfg和*.weights,結(jié)合測試數(shù)據(jù)文件輸入給AI指令集編譯器,編譯器將完成自動(dòng)化部署,并輸出最終計(jì)算結(jié)果。
應(yīng)用復(fù)旦微電子公司的AI指令集編譯器,可以很方便地進(jìn)行優(yōu)化后的彈載AI算法的軟硬件劃分和自動(dòng)部署。AI指令集編譯器工作流程:
a)解析網(wǎng)絡(luò)模型描述文件*.cfg,將其轉(zhuǎn)換為編譯器的中間層結(jié)構(gòu)體描述;
b)解析Darknet的網(wǎng)絡(luò)模型參數(shù)文件*.weights,制定定點(diǎn)化策略;
c)分析各層網(wǎng)絡(luò)的計(jì)算類型及結(jié)構(gòu),進(jìn)行軟硬件的劃分。針對(duì)軟件執(zhí)行部分,輸出軟件執(zhí)行函數(shù)列表文件;
d)針對(duì)硬件執(zhí)行部分,編譯器將自動(dòng)進(jìn)行硬件指令編譯,輸出硬件指令序列;
e)在執(zhí)行過程中,編譯器將指令序列、網(wǎng)絡(luò)模型參數(shù)、定點(diǎn)化后的圖片數(shù)據(jù)下載到硬件平臺(tái),并配置硬件;
f)獲取軟件或硬件計(jì)算結(jié)果,輸出網(wǎng)絡(luò)最終結(jié)果。
導(dǎo)引頭主要分為兩個(gè)艙段—探測艙(光學(xué)成像系統(tǒng))和制導(dǎo)艙(信息處理平臺(tái)),導(dǎo)引頭的系統(tǒng)架構(gòu)如圖3所示。
圖3 導(dǎo)引頭框圖
探測艙包括光學(xué)鏡頭、探測器板、驅(qū)動(dòng)板,制導(dǎo)艙包括控制板、圖像處理板和慣測板。AI芯片將嵌入制導(dǎo)艙的圖像處理板。
軟硬件劃分是整個(gè)制導(dǎo)算法在AI芯片上進(jìn)行軟硬件部署的首要問題。如何兼顧系統(tǒng)的性能和功耗,達(dá)到二者的最佳結(jié)合,是軟硬件劃分要解決的關(guān)鍵問題。如圖4 所示,按照功能將系統(tǒng)分為圖像處理模塊、處理中心、加速計(jì)算中心、數(shù)據(jù)中轉(zhuǎn)站、控制中心和跟蹤算法模塊、接口驅(qū)動(dòng)。
圖4 軟硬件劃分
成像制導(dǎo)信息處理任務(wù)要求實(shí)時(shí)捕獲并跟蹤、識(shí)別真實(shí)目標(biāo),實(shí)時(shí)向?qū)Ш娇刂葡到y(tǒng)提供目標(biāo)的精確角度信息。為了完成這一任務(wù),可將末制導(dǎo)信息處理任務(wù)劃分為圖像去噪及增強(qiáng)、基于AI算法的目標(biāo)識(shí)別檢測、角度信息準(zhǔn)確提取、大尺度變化目標(biāo)跟蹤、圖像及結(jié)果顯示等模塊協(xié)同完成。
由于圖像處理的邏輯復(fù)雜度較低但數(shù)據(jù)處理量大,圖像處理模塊部署在PL 上;處理中心由于串行處理和非線性運(yùn)算較多,部署在PS上;數(shù)據(jù)中轉(zhuǎn)站用于PS與PL 之間的通信,以及PL 內(nèi)各個(gè)部分的數(shù)據(jù)流控。
由于其數(shù)據(jù)吞吐量大,帶寬高,故部署在PL上;控制中心用于控制PL內(nèi)的各個(gè)模塊和AI硬核,具有同步、取值譯碼、模式切換等功能,部署在PL上;加速計(jì)算中心負(fù)責(zé)人工智能算法YOLO_v2的運(yùn)算,需要超高速處理,是識(shí)別算法的核心所在,部署在AI硬核上;制導(dǎo)算法用于多目標(biāo)跟蹤和單目標(biāo)精確跟蹤,部署在PL 上;接口驅(qū)動(dòng)用于與導(dǎo)引頭其他組件以及彈載計(jì)算機(jī)進(jìn)行通信,部署在PL上。軟硬件劃分好后就可以分模塊來進(jìn)行部署。
(1)圖像處理模塊
成像制導(dǎo)信息處理任務(wù)要求實(shí)時(shí)捕獲并跟蹤、識(shí)別真實(shí)目標(biāo),實(shí)時(shí)向?qū)Ш娇刂葡到y(tǒng)提供目標(biāo)的精確角度信息。為了完成這一任務(wù),可將導(dǎo)引頭信息處理任務(wù)劃分為圖像采集及處理、基于AI算法的目標(biāo)識(shí)別檢測、大尺度變化目標(biāo)跟蹤、圖像及結(jié)果顯示等模塊協(xié)同完成。
圖像處理模塊具體包括圖像去噪、圖像分割、圖像增強(qiáng)、空間尺度變化、探測系統(tǒng)參數(shù)調(diào)整等。
(2)處理中心
處理中心全部在PS上實(shí)現(xiàn)。整個(gè)末制導(dǎo)信息處理系統(tǒng)有兩個(gè)部分的功能要求,即系統(tǒng)支持功能和信息處理功能。前者主要包括了系統(tǒng)正常運(yùn)行所需要的加載、自檢、調(diào)度等任務(wù)處理,這些任務(wù)具有很強(qiáng)的順序執(zhí)行性。后者負(fù)責(zé)圖像處理模塊和加速計(jì)算中心的參數(shù)配置等。
(3)數(shù)據(jù)中轉(zhuǎn)站
系統(tǒng)運(yùn)行過程中,數(shù)據(jù)由PS 部分傳輸至PL部分進(jìn)行信號(hào)處理以后再將處理結(jié)果返回送至PS 部分進(jìn)而用于制導(dǎo)跟蹤等。整個(gè)過程中數(shù)據(jù)傳輸量巨大,對(duì)于數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性要求高。系統(tǒng)中的PS部分處理的數(shù)據(jù)類型為Memory Map(用戶內(nèi)存映射)類型數(shù)據(jù)而PL 部分?jǐn)?shù)據(jù)為Stream(媒體流)類型數(shù)據(jù),因而需要在傳輸接口上對(duì)于PS和PL部分發(fā)送的數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換。數(shù)據(jù)中轉(zhuǎn)站設(shè)計(jì)采用基于DMA 的總線傳輸方案實(shí)現(xiàn)對(duì)于PS和PL 之間數(shù)據(jù)的類型轉(zhuǎn)換和數(shù)據(jù)高速傳輸。
用AXI-HP接口和PL 內(nèi)DMAC 配合傳輸?shù)目偩€方案方為其中最為合適的系統(tǒng)傳輸方式,數(shù)據(jù)中轉(zhuǎn)站部署在PL 上,不僅具備了很高的數(shù)據(jù)傳輸速率,另外還提供了更多的接口選擇以供系統(tǒng)設(shè)計(jì)使用。
(4)加速計(jì)算中心
加速計(jì)算中心主要在AI軟核上實(shí)現(xiàn),負(fù)責(zé)人工智能算法的運(yùn)算,實(shí)現(xiàn)方案參照3.1節(jié)。
(5)跟蹤算法模塊
一旦系統(tǒng)完成對(duì)目標(biāo)的識(shí)別,則系統(tǒng)轉(zhuǎn)入單目標(biāo)跟蹤狀態(tài)。此時(shí)可對(duì)特定目標(biāo)點(diǎn)進(jìn)行精確的解耦與關(guān)聯(lián)。隨目標(biāo)進(jìn)一步接近,圖像中目標(biāo)像逐步增大進(jìn)入斑塊目標(biāo)階段,此時(shí)需要根據(jù)目標(biāo)在空間中的能量分布和運(yùn)動(dòng)模型對(duì)目標(biāo)進(jìn)行精確跟蹤濾波[5]。這部分算法在跟蹤算法模塊中實(shí)現(xiàn)。
算法部署完成后,在桌面原型驗(yàn)證系統(tǒng)中進(jìn)行了試驗(yàn)驗(yàn)證,桌面系統(tǒng)由景象投影設(shè)備、光學(xué)探測設(shè)備、信號(hào)處理板以及顯示設(shè)備組成。利用景象投影設(shè)備模擬典型場景,由光學(xué)探測設(shè)備進(jìn)行圖像采集并實(shí)時(shí)輸入到信號(hào)處理板,完成目標(biāo)識(shí)別后通過HDMI接口連接到顯示設(shè)備,得到識(shí)別結(jié)果。
利用真實(shí)拍攝數(shù)據(jù)輸入到景象投影設(shè)備,試驗(yàn)?zāi)繕?biāo)為車輛和飛機(jī),識(shí)別結(jié)果如圖5所示,彈載嵌入式信號(hào)處理板能很好的檢測出目標(biāo)。
圖5 識(shí)別結(jié)果
本文對(duì)國產(chǎn)AI芯片進(jìn)行了開發(fā),對(duì)YOLO_v2算法的硬件實(shí)現(xiàn)進(jìn)行了研究,對(duì)AI算法在彈載導(dǎo)引系統(tǒng)上的嵌入式應(yīng)用進(jìn)行了探索,為導(dǎo)引技術(shù)從特定的、封閉的、基于規(guī)則的應(yīng)用方式向開放的、更加強(qiáng)調(diào)自主識(shí)別和決策的應(yīng)用方式過渡做出一定的貢獻(xiàn)。通過本文的研究,將加速人工智能技術(shù)在國防領(lǐng)域的應(yīng)用,為武器的智能化發(fā)展奠定堅(jiān)實(shí)的基礎(chǔ)。