亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA 的油棕檢測和硬件加速設計及實現(xiàn)

        2021-02-05 18:10:56柴志雷
        計算機與生活 2021年2期
        關鍵詞:特征檢測模型

        袁 鳴,柴志雷,甘 霖

        1.江南大學物聯(lián)網(wǎng)工程學院物聯(lián)網(wǎng)技術應用教育部工程研究中心,江蘇無錫 214122

        2.國家超級計算無錫中心,江蘇無錫 214122

        3.清華大學計算機科學與技術系,北京 100084

        棕櫚樹是世界上非常重要的經(jīng)濟作物,精準的棕櫚樹檢測和分析對于改善種植、產(chǎn)量估算和精準農(nóng)業(yè)具有非常重要的意義。隨著衛(wèi)星遙感技術的快速發(fā)展,高分辨率的遙感圖像得到廣泛應用,基于高分辨率的遙感圖像變得更易獲得,包含的信息更多,數(shù)據(jù)量更大,促進了遙感圖像檢測的發(fā)展[1]。近些年,深度學習的突破推動了圖像分析的快速發(fā)展,基于卷積神經(jīng)網(wǎng)絡的深度學習在目標檢測方面表現(xiàn)出了卓越的性能。

        現(xiàn)有的基于卷積神經(jīng)網(wǎng)絡的目標檢測技術主要可以分為兩大時期,早期的基于深度學習的遙感影像目標檢測研究主要使用滑動窗口方法進行候選框的生成,再使用卷積神經(jīng)網(wǎng)絡模型對候選框進行分類,具有典型代表性的算法分別為RCNN(region convolutional neural network)[2]、Fast RCNN[3]、Faster RCNN[4]、Mask RCNN[5]等。后期的研究是基于端到端目標檢測算法,具有代表性的算法有YOLO(you only look once)系列[6-8]、SSD(single shot multi-box detector)[9]。此外,對于多尺度的目標檢測,雖然目前已經(jīng)有一些研究,但在有嚴重的背景雜斑和光照變化高分辨率遙感圖像中,待檢測的目標的尺寸只有幾像素,現(xiàn)有的算法模型還無法對小目標做出高質量的檢測。此外為了滿足深度學習不斷提高的高強度計算能力的需求,大量的數(shù)據(jù)中心和服務器端都會部署大量的ASIC(application specific integrated circuit)芯片以及高性能GPU(graphics processing unit)加速卡來進行數(shù)據(jù)處理。但隨之而來的能耗等問題,對數(shù)據(jù)處理平臺提出了更高的要求。而兼?zhèn)涞凸暮透咝阅芴攸c的FPGA(field-programmable gate array)則可以很好地滿足該需求,并且其可重構的特點完美契合當前深度學習日新月異的演變速度。

        本文以馬來西亞種植園油棕櫚樹檢測為例,以鯤云科技的人工智能加速平臺為硬件基礎,在提高算法準確度的同時設計一套基于其硬件架構的卷積計算引擎。以目前被業(yè)界廣泛應用的YOLOv3[7]目標檢測模型為算法平臺,充分挖掘帶檢測目標的關鍵特征,進一步加大多尺度特征融合力度。在設計硬件加速器時,充分利用了硬件平臺數(shù)據(jù)并行、通道并行、加速器引擎并行的特點,將卷積計算全方展開。此外,為了減少計算資源的消耗,提出了一種對模型參數(shù)進行高效量化的方案。在精度誤差只有0.83%的情況下,基于FPGA的模型運行速度可以達到30幀/s,遠遠高于傳統(tǒng)的CPU 平臺,能效比是Nvidia 推理段專用加速器P40 的1.2 倍。

        本文的貢獻如下:

        (1)提供了一套基于棕櫚樹的樹木類別、位置和大小的有效的檢測分析方法,構造了一個基于遙感影像的不同分辨率下的可供深度學習訓練和測試的棕櫚樹檢測的數(shù)據(jù)集。

        (2)在模型改進過程中,取消了特征提取網(wǎng)絡早期下采樣操作,以增強特征提取網(wǎng)絡對圖片的關鍵部位的局部紋理信息敏感度。其次,由于網(wǎng)絡低層特征具備高分辨率以及高層特征具備高語義的相關特性,采用了加大上采樣的力度進而融合不同層的特征。

        (3)設計了一個基于FPGA 的高效卷積計算核心,以向量化并行運算的方式完成網(wǎng)絡模型所有層的推理計算。充分考慮神經(jīng)網(wǎng)絡模型中權重在數(shù)值精度上的魯棒性,采用了整形8 位的量化方法,降低了網(wǎng)絡模型對存儲資源的消耗。此外,改進了加速器架構中的輸入和輸出模塊,有效提高了總線帶寬的實際利用率。

        1 相關工作

        基于復雜環(huán)境下的遙感影像的物體檢測,Chen等人[10]提出了一種基于高分辨率遙感影像的車輛檢測方法,該方法采用滑動窗口和混合卷積神經(jīng)網(wǎng)絡,通過將最終卷積層和合并層劃分為多個閾值塊的變量來提取可變尺度的特征;Han 等人[11]提出了一種基于Faster R-CNN[4]的高分辨率遙感圖像目標檢測框架,該方法通過使用預訓練、遷移學習策略和區(qū)域提議來共享特征提取層,極大地提高了效率;Long 等人[12]提出了一個新的目標定位框架,它由三個過程組成:區(qū)域建議、分類和目標精確定位。同時,他們提出了一種無監(jiān)督的基于評分的邊界回歸算法,以提高定位精度;Deng 等人[13]提出了一種增強的深度卷積神經(jīng)網(wǎng)絡,用于遙感圖像中的密集物體檢測,由于Faster R-CNN[4]對密集對象的檢測效果較差,Tang 等人[14]首次將YOLOv2[8]模型應用于無人機圖像車輛識別,他們提出了新的數(shù)據(jù)標記方法,如CSK 跟蹤等并通過數(shù)據(jù)增強提高了模型的泛化能力。

        而基于FPGA 的卷積神經(jīng)網(wǎng)絡加速已有很多研究。Zhang 等人[15]通過SIMD(single instruction multiple data)將輸入和輸出特征圖數(shù)目進行二維展開,并且對加速器設計空間進行有針對性的探索實驗,提出了一種采用Roofline 的策略。Vinieris 等人提出fpgaConvNet:對給定CNN 模型網(wǎng)絡結構進行分析,將其映射到FPGA 上。亮點在于,第一次提出將FPGA 的動態(tài)可重構和CNN 加速器相結合的可能性。雖然每次都對整片F(xiàn)PGA 重構,極大地增加了重構時延,但對于結合FPGA 動態(tài)可重構特性與神經(jīng)網(wǎng)絡加速器的研究仍具有重大意義[16-17]。Han 等人提出一種對神經(jīng)網(wǎng)絡進行壓縮編碼的方式,對全連接層進行加速設計,和Titan X 相比,在性能和能效上分別是其13倍和3 400倍[18]?,F(xiàn)有的工作均從單一的角度考慮,而從硬件角度去探索算法改進的工作相對很少。

        2 基于改進YOLOv3 網(wǎng)絡的油棕目標檢測

        2.1 研究區(qū)域及數(shù)據(jù)集簡介

        本實驗中選取馬來西亞南部作為研究區(qū)域,如圖1 所示,使用Quick Bird 高分辨率衛(wèi)星影像作為研究數(shù)據(jù),構建了一套完整的深度學習訓練和測試棕櫚樹數(shù)據(jù)集。

        Fig.1 Presentation of research samples圖1 研究樣本展示

        對于面向大尺度衛(wèi)星影像的油棕識別,首先構造了一個基于遙感影像的不同分辨率下的可供深度學習訓練和測試的棕櫚樹檢測的數(shù)據(jù)集。其次,使用圖像上采樣和有重疊劃分方法,避免了部分油棕樹冠被劃分到不同的子圖像中,無法被正確識別出來的現(xiàn)象。為了保證圖像數(shù)據(jù)集和訓練數(shù)據(jù)集中的樣本圖像分辨率一致,實驗中使用和訓練區(qū)域相同的雙線性插值方法,將完整的衛(wèi)星影像放大4×4 倍。接著,采用有重疊劃分的方法,將放大后的衛(wèi)星影像劃分為500×500 像素的子圖像。最終在實驗中,選擇100 像素作為圖像數(shù)據(jù)集的相鄰子圖像重疊區(qū)域的寬度,保證放大4×4倍后的每棵油棕都能被完整包括在至少一個子圖像上。相應地,為了避免有重疊劃分造成的油棕重復檢測問題,在得到每個子圖像的預測油棕坐標后,采用了基于最小距離濾波的后處理策略。

        2.2 YOLOv3 網(wǎng)絡

        YOLOv3 是一種高效的單階段目標檢測模型,通過在YOLOv1 和YOLOv2 的基礎上進行一系列的改進以及借鑒特征金字塔網(wǎng)絡模型的特點,獲得更高的目標檢測準確率和更快的檢測速度。YOLOv3模型的基礎網(wǎng)絡為DarkNet-53,采用全卷積網(wǎng)絡結構并引入殘差結構。與特征金字塔網(wǎng)絡類似,YOLOv3 模型對不同層得到的不同尺度的特征圖進行上采樣和特征圖融合,在得到的不同尺度的特征圖上進行目標檢測,從而可以極大提升對小目標的檢測效果。

        YOLOv3 繼續(xù)沿用上一版本YOLOv2 中的Kmeans 聚類的方式來做Anchor Box 的初始化,而這種典型的先驗知識對于目標邊界框的預選有著很大的幫助。因此,YOLOv3 在COCO 數(shù)據(jù)集上,首先設定輸入圖像的尺寸為416×416,之后可以得到9 種不同的聚類尺寸,分別為(10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116×90),(156×198),(373×326)。而卷積神經(jīng)網(wǎng)絡在每一個單元格上會為每一個邊界框預測4 個值,即坐標x,y與目標的寬w和高h,分別記為tx、ty、tw、th。若目標中心在單元格中相對于圖像左上角有偏移為cx、cy,并且錨點框具有高度和寬度為pw、ph,則修正后的邊界框為bx、by、bw、bh。

        在訓練過程中,使用二元交叉熵損失(binary cross-entropy loss)作為損失函數(shù)(loss function)來訓練類別預測,而YOLOv1 和YOLOv2 均采用了基于平方和的損失函數(shù)。YOLOv3 網(wǎng)絡中使用邏輯回歸來精準預測錨點框中是否包含待測物體的概率,使用端到端目標檢測中常用的交并比為評價方式,如果錨點框與真實目標邊界框的重疊率大于任何其他錨點框,則這個錨點框的概率為1;而如果錨點框與真實目標的邊界框的重疊率大于0.5,卻并非最大值,則模型會忽視該預測。

        2.3 基礎特征網(wǎng)絡改進

        與計算機視覺領域的目標檢測問題相比,本研究中的油棕目標面積相對較小,在0.6 m 分辨率的影像上僅有17×17 像素,于此同時,COCO 數(shù)據(jù)集上小目標尺寸大致在100×100 像素。因此,在本研究中,需要一個更為精細的特征提取網(wǎng)絡,以充分挖掘油棕目標信息。而正如5.4 億年前,寒武紀生物大爆發(fā)的一個主要原因是眼睛的出現(xiàn)。構建一個準確捕捉圖像特征的機器之眼,是所有計算機視覺研究人員的共同目標。

        對于目標檢測任務而言,雖然通過基于圖像分類的基礎特征網(wǎng)絡深度提取目標信息,再經(jīng)過模型微調,網(wǎng)絡性能取得了很大的提升,但仍然存在很多問題。一方面,圖像分類和圖像目標檢測屬于深度學習不同領域,兩種模型對圖片局部信息有著不同的敏感度。圖像分類算法傾向于圖像特征的平移不變性,因此需要頻繁的下采樣操作挖掘關鍵特征。然而,目標檢測任務對圖片的局部紋理信息敏感度更高,早期大尺度下采樣操作極易導致圖像關鍵特征消失,進而影響整個模型的性能。

        在研究YOLOv3 中原始特征網(wǎng)絡時,實驗發(fā)現(xiàn)由于傳統(tǒng)的基礎特征網(wǎng)絡多用于圖像分類,但在目標檢測任務中會折中空間分辨率,導致無法精確定位大物體和識別小物體。以基于Resnet50 的DarkNet-53 為例,在第一個卷積塊中,第一層卷積操作使用了7×7 的卷積核以獲取圖像特征,而緊接著卷積操作后是一個3×3 的下采樣,極易忽略油棕目標的關鍵特征,造成模型性能上不必要的損失。因此需要對原特征網(wǎng)絡進行相應的改進,以實現(xiàn)對油棕目標的空間信息和深度信息的去耦,可以大大減少由于上采樣過程中造成的關鍵信息丟失。

        對此,在Voc2012 數(shù)據(jù)集中,充分考察在基礎網(wǎng)絡中下采樣和第一層下采樣對圖像特征提取的影響。以YOLOv3 算法為模型平臺,以原始基于Resnet50的DarkNet-53 為基礎網(wǎng)絡,分別測試了在基礎網(wǎng)絡中的第一個卷積塊中,不同數(shù)目、不同尺寸的卷積核以及不同的下采樣策略和對準確率的影響。

        由表1 可知,在第一個卷積塊中,在取消第一層的下采樣的基礎上,以3個3×3的卷積代替第一個7×7的卷積操作獲得了最高的模型準確率。此外,如圖2所示,用兩個殘差塊替換了兩個卷積塊,直到網(wǎng)絡末尾。每個殘余塊由兩個分支形成。一個分支是步幅為2 的1×1 卷積層,另一分支是步幅為2 的3×3 卷積層和步幅為1 的3×3 卷積層。每個卷積層的輸出通道數(shù)設置為128,有效地提取棕櫚樹目標的關鍵特征信息。

        Table 1 Analysis of network performance with different backbones表1 不同基礎特征網(wǎng)絡性能分析

        2.4 多尺度檢測改進

        Fig.2 Improvement strategy of backbone圖2 基礎網(wǎng)絡改進策略圖

        在YOLOv3 網(wǎng)絡模型中,引入了FPN(feature pyramid networks)[19]網(wǎng)絡算法思想,借鑒特征金字塔網(wǎng)絡模型的特點,從而可以獲得更高的目標檢測準確率和更快的檢測速度。首先針對網(wǎng)絡低層特征具備高分辨率以及高層特征具備高語義的特性,通過進一步加大上采樣的力度進而融合不同層的特征,可以在目標檢測時候,在3 個不同尺度的特征層上檢測。針對高分辨率遙感圖像中的棕櫚樹目標為密集小目標的情況,對YOLOv3 中的原有的尺度檢測模塊進行進一步的改進,將原有的3 個尺度檢測擴展為4 個尺度檢測,因此可以在較大特征圖給小目標分配更為準確的錨點框,從而提高準確率。

        本文權衡平均交并比與錨點框的數(shù)量,取12 個不同的錨點框,分別為(11×15),(15×23),(20×33),(23×42),(22×52),(34×53),(26×64),(38×66),(36×76),(45×88),(55×107),(66×139)。此外,在每個尺度上的每一個單元格借助3 個錨點框預測3 個邊界框。隨后,對4 個不同尺度的特征提取層使用不同倍數(shù)的上采樣操作。因此,對于檢測層而言,進一步融合了不同層次的特征,也增強了各個尺度特征層的語義信息,對油棕目標的“注意力”更加集中。

        如圖3 中所示,顯示了本文提出的多尺度檢測模塊。一共有3 種不同的多尺度融合路徑,分別由顏色深淺表示。紅色連線表示步長為2 的上采樣操作,黃色的連線表示步長為4 的上采樣操作,而紫色的連線表示步長為8 的上采樣操作。

        3 基于FPGA 的網(wǎng)絡模型加速器設計與實現(xiàn)

        3.1 頂層設計

        Fig.3 Multi-scale detection strategy圖3 多尺度檢測改進

        在解決了模型準確率的問題后,本文提取出了更加細致的目標特征,而這直接導致計算量的飛速上升,因此本文將注意力放到了算法加速階段。

        圖4 展示了基于FPGA 的整體應用流程圖。頂層架構上圖所示,由宿主機(Host)和FPGA 硬件設備構成了加速器平臺,衛(wèi)星采集到的數(shù)據(jù)經(jīng)過處理通過PCIe 接口傳輸?shù)紽PGA 中進行高效處理,而處理后的結果再反傳輸?shù)剿拗鳈C上。對于宿主機端而言,首先開辟所需的存儲空間,并且讀取外部圖像數(shù)據(jù)文件image 數(shù)據(jù),經(jīng)過維度變化和向量化,以寫隊列的方式傳送給輸入模塊。其次讀取網(wǎng)絡模型結構和已量化后模型權重參數(shù),按向量存儲,以寫隊列的方式傳送給卷積模塊。最后讀取DDR 里由特征模塊中輸出的推理結果,并驗證結果。而FPGA 端的功能為實現(xiàn)多個計算模塊,以向量化并行運算的方式完成網(wǎng)絡模型所有層的推理計算。接下來,將重點介紹權重整形8 位量化和高速計算模塊并行化設計。

        Fig.4 FPGA-based application flow圖4 基于FPGA 的應用流程圖

        3.2 整數(shù)8 位量化模塊設計

        現(xiàn)有的CNN 模型網(wǎng)絡主要的評價標準是基于分類和檢測精度,在構建網(wǎng)絡模型的時候并沒有考慮到模型的復雜度對計算效率的影響,因此即使是目前最先進的卷積神經(jīng)網(wǎng)絡并不適合在移動設備上使用。因此,在有限的設備內(nèi)存基礎上,需要一個較小的網(wǎng)絡模型。

        而深度神經(jīng)網(wǎng)絡模型在數(shù)值精度上有很強的魯棒性,因此在進行前向計算的過程中,即使使用低精度的數(shù)值來取代原本的全精度浮點數(shù),網(wǎng)絡模型最終準確率的下降仍然在可接受的范圍內(nèi)。其次,在進行硬件設計的時候,低精度的數(shù)值計算單元的資源開銷要小于浮點數(shù)計算單元,這也就意味著,在相同的面積、功耗的要求下,使用低精度的數(shù)值計算單元來進行計算可以開發(fā)更高的并行度,進一步提升整個芯片的性能,降低了深度神經(jīng)網(wǎng)絡計算對于存儲資源的需求,同時也降低了芯片能耗。綜合考慮以上兩方面原因,將CNN 模型的權重和偏置矩陣從浮點32 位轉移到較低的位數(shù)是一個很好的方案。而這方面研究包括三元神經(jīng)網(wǎng)絡[20]、二元神經(jīng)網(wǎng)絡[21]等。

        而本文量化的一個基本要求就是能夠使用經(jīng)過量化后的整數(shù)計算來代替浮點計算,以實現(xiàn)高效的算術操作,而量化方案將浮點數(shù)q映射為整數(shù)r。式(2)所示是本文的方案,常數(shù)S和Z是量子化參數(shù),常數(shù)值S代表的是Scale,是一個任意的正實數(shù)。本文的量化方案是為每一個權重數(shù)組的所有值使用一組量化參數(shù)。

        對于神經(jīng)網(wǎng)絡中的每一個激活數(shù)組和權重數(shù)組都存在一個緩沖區(qū)實例,因為有明確的類型傳遞,所以使用C++語法來描述類型。

        而量化過程涉及到模型對于校驗數(shù)據(jù)的推理操作,在推理的過程中,首先需要保證輸入數(shù)據(jù)的有效性,不同的模型有不同的預處理措施,因此需要充分考慮數(shù)據(jù)集的預處理環(huán)節(jié),需要確定提供的預處理方式與原始框架的測試場景一致。當輸入圖片經(jīng)過預處理后,圖像的值域范圍發(fā)生了改變,因此需要在推理過程中,也需要對數(shù)據(jù)集進行量化操作,以用來保證模型的準確度。現(xiàn)在討論的是如何使用整數(shù)算法進行推理,即如何將式(2)由浮點計算轉化為整型8 位的量化計算??紤]到在神經(jīng)網(wǎng)絡推理段,圖像需要經(jīng)過預處理和后處理,且這兩部分計算量相對不大。考慮到后處理涉及指數(shù)計算,而FPGA 實現(xiàn)指數(shù)擬合的資源耗費較大,因此對于圖像的預處理和后處理兩部分,可以放在CPU 端處理。

        將規(guī)整的矩陣計算放到FPGA 上運行,例如:兩個N×N的矩陣分別為r1、r2,即矩陣乘積r3=r1×r2,把每一個矩陣分量rα(α=1,2,3,4) 當作其中1≤i,j≤N。量化參數(shù)表示為(Sα,Zα),并且用q(i,j)α來表示浮點量化過程中的項數(shù)。因此,式(2)就變成了:

        根據(jù)矩陣乘法的定義,則:

        也可以被寫成:

        而對于式(5)中唯一的非整數(shù)量化因子M而言,其僅僅依賴于量化尺度,故而可以另行計算。而根據(jù)經(jīng)驗發(fā)現(xiàn),乘數(shù)M大致分布在區(qū)間(0,1),因此可以使用標準化的形式來表示它:

        其中,M0在區(qū)間[0.5,1.0]是非負整數(shù),因此在歸一化的過程中,乘法器可以很好地表示為定點乘法器。同時為了有效地對式(5)進行求解,而不需要進行2N次減法以及將乘法的操作數(shù)展開為16 位整數(shù)。

        可以將乘法分配到式(5)中,將問題簡化為核心整數(shù)矩陣乘法累加,可以將其重寫為:

        如圖5 算法權值量化更新過程圖所示,數(shù)據(jù)量化的本質其實可以理解為用更少的比特數(shù)來為原始數(shù)據(jù)進行粗粒度的編碼,一般都是通過一個量化系數(shù)和一定的Rounding 規(guī)則來完成,根據(jù)0 值的位置可以分為對稱量化和非對稱量化。對于已訓練好的模型參數(shù),首先對權值進行分組,將絕對值較大和絕對值較小的權重進行區(qū)分,通過式(9),經(jīng)過5 個過程;其次,依次轉化權值到整形8 位,直至轉化結束。

        3.3 高速計算引擎模塊設計

        3.3.1 高速并發(fā)輸入核心設計

        由于硬件平臺上PCIe 接口讀操作和寫操作通道之間相互獨立,因此無論是讀操作還是寫操作都可以執(zhí)行高并發(fā)執(zhí)行。在輸入模塊設計過程中,首先通過讀通道從DDR 讀取輸入的數(shù)據(jù),然后由數(shù)據(jù)分發(fā)(data scatter)模塊控制多個獨立通道的DMA,從而完成對整個輸入特征圖像素塊的有效讀取,并將已經(jīng)讀取到的數(shù)據(jù)塊分發(fā)到對應緩存單元[18]。

        Fig.5 Algorithm weight quantization update process圖5 算法權值量化更新過程

        而通過數(shù)據(jù)收集(data gather)模塊將輸出到緩存單元中的像素塊再寫回DDR,并且控制多個寫操作通道中的DMA,完成對輸出特征圖像素塊的高效寫入。當input_reader模塊從DDR 中取出宿主機(Host)端存儲的feature 數(shù)據(jù),使用循環(huán)展開的方法,每個循環(huán)過程中分別從Width 和Channel 方向取出一個特征圖向量,傳送給大小為WVector×CVector的向量,在每個流水線的時鐘周期會從緩存中,針對每一個輸入特征圖讀入相同位置的像素。而特征圖向量化方法及循環(huán)方向如圖6 所示,在列方向和輸入通道方向進行向量化。因此,大小C×H×W特征圖包含的向量數(shù)量如式(10)所示:

        Fig.6 Input reader module vectorization圖6 輸入模塊向量化

        與input reader 模塊類似,filter 模塊向量大小則為卷積核權重向量和通道方向的乘積,即FWVector×CVector,而在每個循環(huán)過程中讀取一個向量大小的權重并通過輸入通道傳送給計算單元。除此之外,還把filter 權重的寫偏移地址以及通道號通過輸入通道一起傳送給計算單元。如圖7 所示,由于卷積是特征圖與數(shù)目為NVector個卷積核并行運算,因此卷積核向量可以理解為NVector×FWVector×CVector,總的向量M為:

        Fig.7 Parallel convolution kernel圖7 卷積核并行簡圖

        而為了保證計算核心單元Pipeline 的一致性,從而提高運算效率,因此當卷積核尺寸為1×1 時,每次讀取3個輸入通道權重,以保證卷積運算的一致性。

        3.3.2 高速卷積核心設計

        正如第2 章所講,為了提高算法模型對復雜環(huán)境下小目標檢測的準確性,需要對圖像更加細致地提取特征,而這一策略在硬件上帶來的直接后果便是計算量的直線上升,對此設計了具有高并行度的卷積計算引擎。如圖8 所示,計算引擎中的計算核包含更多并行運行的卷積計算,它由多個乘法器和一個加法器樹組成。計算引擎內(nèi)核中的輸出緩沖區(qū)存儲部分卷積結果。在每個循環(huán)中,來自加法器樹的結果將用于更新部分結果。該功能主要是執(zhí)行不同形狀的輸入特征向量和系數(shù)矩陣的點積操作。

        假設系數(shù)核的寬度為k,則乘法器的數(shù)量為k2,加法器樹的深度為lbk2,乘法器從一個行緩沖區(qū)中獲取輸入,即從一個時鐘周期內(nèi)從輸入特征映射中讀取k個數(shù)據(jù),而行緩沖區(qū)的另一端連接到一個較大的輸入緩沖區(qū),該輸入緩沖區(qū)部分或全部包含所有的輸入特征映射。而乘法器還連接到另一個緩存系數(shù)的輸入緩沖區(qū)。計算引擎內(nèi)核中的輸出緩沖區(qū)存儲部分卷積特征向量和系數(shù)矩陣。計算核包含多個并行乘法器,用于計算共矩陣的每一行與特征向量之間的點積。最后,將處理后的數(shù)據(jù)寫回輸出緩沖,待得到最終結果后寫回片外。

        計算核心模塊完成目標檢測網(wǎng)絡模型中所有層的卷積計算,如圖9 所示,根據(jù)卷積運算的原理,一個特征圖向量與多個卷積核向量做卷積操作,并經(jīng)過池化層,得到輸出特征圖向量。而多個并行的計算核心模塊的數(shù)據(jù)輸入采用了菊花鏈的方式,特征圖向量與卷積核向量依次流經(jīng)多個計算核心模塊,因此計算核心模塊為此開辟了雙緩沖,當卷積核向量的序號與當前的計算核心模塊的序號相符合時,計算核心模塊將此向量進行相依的緩存,最終第n計算核心模塊里存儲了第n卷積核的全部權重,用于當前批次的計算,并且預讀取了下一批次的第n卷積核的權重,從而實現(xiàn)不間斷的計算,提高計算效率。

        Fig.8 Design of convolution computing unit圖8 卷積計算單元設計

        Fig.9 Convolution computing parallel design圖9 卷積計算并行設計

        計算核心模塊完成目標檢測網(wǎng)絡模型中所有層的卷積計算,如圖9 所示,根據(jù)卷積運算的原理,一個特征圖向量與多個卷積核向量做卷積操作,并經(jīng)過池化層,得到輸出特征圖向量。而多個并行的計算核心模塊的數(shù)據(jù)輸入采用了菊花鏈的方式,特征圖向量與卷積核向量依次流經(jīng)多個計算核心模塊,因此,計算核心模塊為此開辟了雙緩沖,當卷積核向量的序號與當前的計算核心模塊的序號相符合時,計算核心模塊將此向量進行相依的緩存,最終第n計算核心模塊里存儲了第n卷積核的全部權重,用于當前批次的計算,并且預讀取了下一批次的第n卷積核的權重,從而實現(xiàn)不間斷的計算。

        4 實驗結果與分析

        4.1 實驗計算平臺介紹

        針對深度學習數(shù)據(jù)量大,算法復雜度高的特點,選用高性能計算平臺來進行本文的研究。在訓練端采用了Nvidia V100 平臺進行算法高速訓練,顯卡內(nèi)存為32 GB,在Tensorflow1.17 環(huán)境下,圖片輸入大小為500×500,批處理大小為64。

        為了檢測算法性能,在算法推理階段,本文選取了不同的硬件平臺(CPU、GPU)與FPGA 進行對比。CPU 平臺選取的Core i9-9990XE 14 核處理器,基本頻率為4.0 GHz,GPU 平臺選取的Nvidia 最新Pascal架構P40 推理端專用加速器,整數(shù)(Int 8)運算力高達47 TOPS。此外,本文選取的星空加速器,采用的是Arria 10 FPGA 板卡芯片,整數(shù)(Int 8)運算力相比P40只有1.64 TOPS,主頻只有200 MHz。

        4.2 目標檢測的衡量方式標準及結果分析

        目標檢測主要從類別、位置和形狀大小進行分析和檢測,常用的衡量指標主要有真正(TP)、真負(TN)、假正(FP)、假負(FN)、精確率(Precision)、召回率(Recall)。在本節(jié),本文對不同優(yōu)化策略所得到的油棕識別結果進行比較和分析。

        為了嚴格評估本研究提出的油棕識別網(wǎng)絡模型方法的整體表現(xiàn),由專業(yè)的油棕數(shù)據(jù)標注團隊,以人工解譯的方式標注了面積為12 188×12 576 像素的整景衛(wèi)星影像中的所有油棕櫚樹的準確坐標,經(jīng)過人工標記得到的油棕坐標總數(shù)為281 827。使用端到端目標檢測中常用的交并比作為本實驗的評價方式,閾值設為0.5。當預測得到的油棕識別框和人工標記的油棕方框的交集面積與并集面積之比大于閾值(0.5)時,認為該油棕被正確識別。

        Fig.10 Results of large scale images圖10 大尺度檢測結果

        為了從細節(jié)上展示本研究提出的方法在不同區(qū)域中的油棕識別結果,從整個研究區(qū)域內(nèi)選擇了2 個有代表性的測試區(qū)域,將不同方法得到的油棕識別結果和人工標記的結果進行比較。在圖10 中用紅色正方形框表示,按位置從上到下的順序編號。紅色點表示正確識別出的油棕櫚樹,綠色框表示沒有被正確識別出的油棕櫚樹,藍色框表示被錯誤識別為棕櫚樹的其他類型的目標。

        實驗結果如表2 所示,原算法、只改變基礎網(wǎng)絡、只改變主干網(wǎng)絡和本文方法得到的F1 分數(shù)依次為92.89%、93.08%、93.97%和94.53%,經(jīng)過改進后的方法取得最高的F1 分數(shù),原網(wǎng)絡方法取得最低的F1 分數(shù)。對于四種油棕識別方法,識別精度均高于召回率。從四種方法得到的識別結果圖中也可以看出,油棕和其他植被或建筑混淆的情況相對較少,油棕漏檢情況需要得到進一步改善。

        Table 2 Comparison results of 4 methods表2 4 種方法結果對比

        可以總結出,對于本研究面向的基于高分辨率衛(wèi)星影像的大尺度油棕識別問題而言,經(jīng)過改進后的YOLO-v3 網(wǎng)絡模型在準確率和效率兩方面均取得最優(yōu)的表現(xiàn),不同改進方法在整個研究區(qū)域上取得F1 分數(shù)之間相差1%~6%。

        于此同時,嚴格評估算法在各個硬件平臺上的性能,其平臺性能以及相應的加速對比結果如表3 所示。從運行時間、時間加速比和功耗比三方面分析不同平臺的計算性能。在基于FPGA 異構平臺上,無論是算法速度還是能效比都遠遠高于當前最新的i9 CPU 處理器。與14 核的i9-9980XE CPU 相比,加速比達到了7.51。而在數(shù)據(jù)精度Int 8 的情況下,與Nvidia 最新的推理端GPU P40 加速器相比,算力只有P40 的1/16,在精度只損失不到1%的情況下,運行速度可以達到30 幀/s,能耗比也要優(yōu)于最新的GPU 板卡,能效比是Nvidia 推理段專用加速器P40 的1.2 倍,在業(yè)界處于領先地位。

        Table 3 Result of different hardware platforms表3 不同硬件平臺上的結果

        5 結束語

        本文針對大尺度密集小目標的精準檢測這一問題,從數(shù)據(jù)集的構造到算法改進再到硬件平臺的移植,一站式全面探討了如何準確高效地應用深度學習方法;實現(xiàn)了一套高效自動的棕櫚樹樹木識別和檢測的算法框架,能夠對不同位置、不同類別和不同大小的棕櫚樹進行識別和檢測;并且通過不同位置和不同數(shù)據(jù)上的測試,論證了檢測算法的可靠性和魯棒性。

        未來會在不同區(qū)域的棕櫚樹檢測上進行模型遷移方面的探索。在基于深度學習的棕櫚樹識別和檢測方面,訓練模型所需的數(shù)據(jù)量一般比較大,因此需要人工標注大量的數(shù)據(jù),然而人工標注數(shù)據(jù)需要耗費大量的時間和精力,大大拖緩了整個訓練檢測的時間。針對此問題,將探索在不同地域之間的模型遷移性。

        猜你喜歡
        特征檢測模型
        一半模型
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        如何表達“特征”
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        抓住特征巧觀察
        3D打印中的模型分割與打包
        久久精品国产视频在热| 亚洲男人的天堂网站| 亚洲视频在线看| 国产三级黄色片子看曰逼大片| av在线播放免费观看| 久爱www人成免费网站| 999久久久免费精品国产| 99色网站| 国产一区二区视频免费| 亚洲欧洲国产成人综合在线| 后入内射欧美99二区视频| 国产成人精品aaaa视频一区 | 国产偷2018在线观看午夜| 日本在线一区二区在线| 熟妇高潮一区二区三区在线观看| 中文字幕v亚洲日本| 亚洲AⅤ无码国精品中文字慕| 91精品啪在线观看国产色| 亚洲精品国产精品乱码视色| 熟女人妻在线视频| 日韩久久久黄色一级av| 国产二区中文字幕在线观看 | 日日碰狠狠丁香久燥| 日韩精品欧美激情国产一区| 国产高清精品自在线看| 在线观看国产av一区二区| 浓毛老太交欧美老妇热爱乱| 国产在线精品欧美日韩电影 | 白色橄榄树在线阅读免费| 国产丝袜美腿精品91在线看| 亚洲国产精品日韩av专区| 亚洲女同成av人片在线观看 | 亚洲av中文aⅴ无码av不卡| 人妻少妇av中文字幕乱码| 99国产精品自在自在久久| 国产精品开放小视频| 久久婷婷色香五月综合激激情| 麻豆精品导航| 亚洲日韩精品欧美一区二区一| 免费无码AⅤ片在线观看| 91久久国产露脸国语对白|