設(shè)計(jì)目的與應(yīng)用
隨著人工智能的發(fā)展,神經(jīng)網(wǎng)絡(luò)正被逐步應(yīng)用于智能安防、自動(dòng)駕駛、醫(yī)療等各行各業(yè)。目標(biāo)識(shí)別作為人工智能的一項(xiàng)重要應(yīng)用也擁有著巨大的前景,隨著深度學(xué)習(xí)的普及和框架的成熟,卷積神經(jīng)網(wǎng)絡(luò)模型的識(shí)別精度越來(lái)越高。有名的LeNet-5手寫數(shù)字識(shí)別網(wǎng)絡(luò),精度達(dá)到99%,AlexNet模型和VGG-16模型的提出突破了傳統(tǒng)圖像識(shí)別算法,GooLeNet和ResNet推動(dòng)了卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用。
但是神經(jīng)網(wǎng)絡(luò)的發(fā)展也給我們帶來(lái)了更多挑戰(zhàn),權(quán)重參數(shù)越來(lái)越多,計(jì)算量越來(lái)越大導(dǎo)致了復(fù)雜的模型很難移植到移動(dòng)端或嵌入式設(shè)備中,且嵌入式環(huán)境對(duì)功耗、實(shí)時(shí)性、存儲(chǔ)都有著嚴(yán)格的約束。因此如何將卷積神經(jīng)網(wǎng)絡(luò)部署到嵌入式設(shè)備中是一件非常有意義的事情。目前神經(jīng)網(wǎng)絡(luò)在傳統(tǒng)嵌入式設(shè)備上絕大部分是基于ARM平臺(tái),神經(jīng)網(wǎng)絡(luò)在ARM上部署時(shí)存在的巨大問題是算力的不足。GPU主要應(yīng)用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練階段,對(duì)環(huán)境和庫(kù)的依賴性較大,國(guó)內(nèi)技術(shù)積累較弱,難以實(shí)現(xiàn)技術(shù)自主可控。ASIC 是為特定需求而專門定制優(yōu)化開發(fā)的架構(gòu),靈活性較差,缺乏統(tǒng)一的軟硬件開發(fā)環(huán)境,開發(fā)周期長(zhǎng)且造價(jià)極高。所以,基于FPGA的硬件加速平臺(tái)是時(shí)候發(fā)揮它的優(yōu)勢(shì)了。FPGA由于獨(dú)特的架構(gòu),被廣泛的應(yīng)用與實(shí)時(shí)信號(hào)處理、圖像處理領(lǐng)域,其并行性也為卷積神經(jīng)網(wǎng)絡(luò)提供了巨大算力。
傳統(tǒng)的RTL開發(fā)FPGA流程相比緩慢,不如軟件的開發(fā)效率高,所以HLS運(yùn)營(yíng)而生,使用高層次語(yǔ)言來(lái)進(jìn)行轉(zhuǎn)換為底層的硬件代碼,極大的加快開發(fā)進(jìn)程。因此項(xiàng)目選用HLS工具來(lái)實(shí)現(xiàn)算法中的加速IP核,將SSD目標(biāo)檢測(cè)網(wǎng)絡(luò)移植到FPGA硬件平臺(tái)上, 對(duì)于硬件加速過程中的算法并行性,在本設(shè)計(jì)中主要采用兩個(gè)方式:對(duì)層內(nèi)的運(yùn)算并行化,將多個(gè)通道的數(shù)據(jù)進(jìn)行分塊,每一塊內(nèi)的通道同時(shí)進(jìn)行運(yùn)算,最后將結(jié)果累加在一起。對(duì)于模塊的運(yùn)算采用HLS并行優(yōu)化,對(duì)數(shù)組核循環(huán)添加優(yōu)化指令進(jìn)行優(yōu)化。整個(gè)系統(tǒng)采用PYNQ的軟件框架來(lái)實(shí)現(xiàn),為SSD目標(biāo)檢測(cè)算法提供了硬件加速方案,充分發(fā)揮了FPGA的并行性。
SSD目標(biāo)檢測(cè)算法原理
SSD于2016年提出,是經(jīng)典的單階段目標(biāo)檢測(cè)模型之一。它的精度可以媲美FasterRcnn雙階段目標(biāo)檢測(cè)方法,速度卻達(dá)到了59FPS(512x512,TitanV),單階段目標(biāo)檢測(cè)方法的目標(biāo)檢測(cè)和分類是同時(shí)完成的,其主要思路是利用CNN提取特征后,均勻地在圖片的不同位置進(jìn)行密集抽樣,抽樣時(shí)可以采用不同尺度和長(zhǎng)寬比,物體分類與預(yù)測(cè)框的回歸同時(shí)進(jìn)行,整個(gè)過程只需要一步,所以其優(yōu)勢(shì)是速度快。
SSD采用的主干網(wǎng)絡(luò)是VGG網(wǎng)絡(luò),VGG是由Simonyan 和Zisserman在文獻(xiàn)《Very Deep Convolutional Networks for Large Scale Image Recognition》中提出卷積神經(jīng)網(wǎng)絡(luò)模型,其名稱來(lái)源于作者所在的牛津大學(xué)視覺幾何組(Visual Geometry Group)的縮寫。該模型參加2014年的 ImageNet圖像分類與定位挑戰(zhàn)賽,取得了優(yōu)異成績(jī):在分類任務(wù)上排名第二,在定位任務(wù)上排名第一。
圖1.VGG16網(wǎng)絡(luò)結(jié)構(gòu)
這里的VGG網(wǎng)絡(luò)相比普通的VGG網(wǎng)絡(luò)有一定的修改,主要修改的地方就是:
1、將VGG16的FC6和FC7層轉(zhuǎn)化為卷積層。
2、去掉所有的Dropout層和FC8層;
3、新增了Conv6、Conv7、Conv8、Conv9。
圖2.SSD主干網(wǎng)絡(luò)結(jié)構(gòu)
上圖展示了SSD的主干網(wǎng)絡(luò)結(jié)構(gòu),整個(gè)網(wǎng)絡(luò)為全卷積網(wǎng)絡(luò)結(jié)構(gòu),SSD將VGG16的兩個(gè)全連接層轉(zhuǎn)換成了普通的卷積層,池化層POOL5由原來(lái)的stride=2,kernel大小2x2變成stride=1,kernel大小3x3,為了不改變特征圖大小同時(shí)獲得更大的感受野,Conv6改為空洞卷積,diliation=6,輸入的圖片經(jīng)過了改進(jìn)的VGG網(wǎng)絡(luò)(Conv1->fc7)和幾個(gè)另加的卷積層(Conv6->Conv9)進(jìn)行特征提取。
從圖2我們可以看出,SSD將conv4_3、conv7、conv6_2、conv7_2、conv8_2、conv9_2都連接到了最后的檢測(cè)分類層做回歸,6個(gè)特征圖分別預(yù)測(cè)不同大小和長(zhǎng)寬比的邊界框,具體細(xì)節(jié)如圖3。
圖3.SSD特征提取網(wǎng)絡(luò)
SSD為每個(gè)檢測(cè)層都預(yù)定義了不同大小的先驗(yàn)框(prior boxes),Conv4_3、Conv8_2和Conv9_2分別有4個(gè)先驗(yàn)框,而Conv7、conv7_2和Conv8_2分別有6種先驗(yàn)框,即對(duì)應(yīng)于特征圖上的每個(gè)像素,都會(huì)生成4或6個(gè)prior box.
在淺層的神經(jīng)網(wǎng)絡(luò)里,只能看到圖片的細(xì)節(jié)和紋理信息,就如管中窺豹。隨著網(wǎng)絡(luò)層數(shù)的加深,相當(dāng)于把圖片往后移動(dòng)一段距離。這樣才能夠感知到圖片的整體信息。低層卷積可以捕捉到更多的細(xì)節(jié)信息,高層卷積可以捕捉到更多的抽象信息。低層特性更關(guān)心“在哪里”,但分類準(zhǔn)確度不高,而高層特性更關(guān)心“是什么”,但丟失了物體的位置信息。SSD正是利用不同尺度檢測(cè)圖片中不同大小和類別的目標(biāo)物體,獲得了很好的效果。
作品展示
-
FPGA
+關(guān)注
關(guān)注
1643文章
21983瀏覽量
614648 -
SSD
+關(guān)注
關(guān)注
21文章
2953瀏覽量
119185 -
人工智能
+關(guān)注
關(guān)注
1804文章
48788瀏覽量
246975 -
卷積神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
4文章
369瀏覽量
12214
發(fā)布評(píng)論請(qǐng)先 登錄
基于RK3576開發(fā)板的安全帽檢測(cè)算法

基于RV1126開發(fā)板的安全帽檢測(cè)算法開發(fā)

軒轅智駕紅外目標(biāo)檢測(cè)算法在汽車領(lǐng)域的應(yīng)用
工業(yè)4.0革命利器!明遠(yuǎn)智睿SSD2351核心板:低成本+高算力,破解產(chǎn)線智能化難題
睿創(chuàng)微納推出新一代目標(biāo)檢測(cè)算法
基于 DSP5509 進(jìn)行數(shù)字圖像處理中 Sobel 算子邊緣檢測(cè)的硬件連接電路圖
TDA4VM上的硬件加速運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法

適用于數(shù)據(jù)中心應(yīng)用中的硬件加速器的直流/直流轉(zhuǎn)換器解決方案

使用PYNQ訓(xùn)練和實(shí)現(xiàn)BNN

旗晟機(jī)器人環(huán)境檢測(cè)算法有哪些?

慧視小目標(biāo)識(shí)別算法 解決目標(biāo)檢測(cè)中的老大難問題

口罩佩戴檢測(cè)算法

人員跌倒識(shí)別檢測(cè)算法

安全帽佩戴檢測(cè)算法

評(píng)論