1:FPGA與生產(chǎn)力
FPGA被稱為萬能芯片,通過邏輯編程,可以實(shí)現(xiàn)基本上所有功能,其具體原理可見《大話FPGA-“萬能的芯片?”》。
那么問題來了,所以如果用FPGA加速人工智能,實(shí)現(xiàn)深度學(xué)習(xí)算法,難度大不大?
難度很大!
如果從AI算法開始,然后從verilog開始編寫,調(diào)試,優(yōu)化,再下載到FPGA中運(yùn)行,中間需要眾多的人力,物力,沒有個(gè)一年半載,很難有收獲。
但是,如果有一個(gè)FPGA的APP庫,里面有各種人工智能APP,可以下載相應(yīng)的程序到FPGA中,例如下圖所示:
有人臉識(shí)別的智能相機(jī),缺陷檢測,ReID(行人檢測/行人跟蹤技術(shù)),語音識(shí)別,多目標(biāo)人臉識(shí)別,智能駕駛輔助等等。
這些應(yīng)用直接編譯下載相應(yīng)應(yīng)用到FPGA中,用基于現(xiàn)成的應(yīng)用進(jìn)行開發(fā),相對流程就簡化很多,達(dá)到“即下即用”的效果。
可以很快形成的生產(chǎn)力。
即使有定制的需求,也可以迅速評估路線的可行性,在此基礎(chǔ)上二次開發(fā)。
這個(gè)就比直接從verilog編碼開始要更快一些,也效率更高。
那這個(gè)怎么操作?
2:怎么做
用FPGA搭建了一個(gè)人臉識(shí)別系統(tǒng)需要幾步?如果用搭載zynq ultrascale+ FPGA的 KV260??偣灿昧巳剑?/p>
第一步:組裝配件:
KV260是一個(gè)基于zynq ultrascale+的FPGA系統(tǒng),內(nèi)部包括CPU,F(xiàn)PGA,GPU等等資源。
紅色的散熱片下面就是Zynq UltraScale+的芯片。上面有一個(gè)四核A53處理器,還有256K LC的邏輯資源的FPGA,屬于“雙劍合璧”的架構(gòu)。
配件包括,
1:電源: 系統(tǒng)供電。
2:SD卡:燒寫操作系統(tǒng)。
3:攝像頭:視頻輸入。
4:USB轉(zhuǎn)串口線:系統(tǒng)串口輸出。
5:網(wǎng)線:用于連接互聯(lián)網(wǎng),下載智能應(yīng)用。
6:HDMI線:用于視頻輸出。
然后將這些部件組裝起來。
第二步:下載應(yīng)用
1:下載linux系統(tǒng)下載到TF卡里,插入TF卡,上電后linux啟動(dòng)。
2:連接網(wǎng)線,檢查鏈接性,可以直接ping一下網(wǎng)關(guān),看看是不是連接成功
3:可以上網(wǎng)后,直接選擇安裝相應(yīng)的應(yīng)用,就是智能攝像頭,可以人臉識(shí)別。
下圖是下載安裝應(yīng)用,點(diǎn)擊下載命令后 ,注意,一定要在root模式下下載,sudo dnf install packagegroup-kv260-smartcam。
安裝時(shí)間有點(diǎn)長,裝上后,讓子彈飛一會(huì)。
第三步:啟動(dòng)測試
啟動(dòng)應(yīng)用開始測試,在linux系統(tǒng)中掛載應(yīng)用,然后啟動(dòng)啟動(dòng)人工智能的應(yīng)用。
sudo smartcam -mipi -W 1920 -H 1080 -r 30 --target dp
這個(gè)和大象關(guān)在冰箱里分為幾步有異曲同工之妙!
然后,效果怎么樣。
3:效果怎么樣?
這玩意是這個(gè)樣子的。
我利用這個(gè)FPGA系統(tǒng)裝在了一個(gè)直播桿,然后配上了一個(gè)顯示器,看起了有點(diǎn)像一個(gè)基于工業(yè)用相機(jī)的直播室。
有了這個(gè)“直播室”,看了一下,沒有美顏效果。直播就算了。
看看這玩意AI效果如何?
于是給KV260看了一個(gè)歐洲杯足球比賽頒獎(jiǎng)視頻。
為什是歐洲杯頒獎(jiǎng),主要是這個(gè)視頻里同時(shí)出現(xiàn)的人多,并且畫面一直在動(dòng),主要想測試一下,這個(gè)系統(tǒng)的處理能力,
1:人臉識(shí)別的數(shù)量。
2:處理時(shí)延。
那種兩三個(gè)人的視頻,測試不出這個(gè)人工智能芯片的能力。
并且畫面一直不動(dòng),對于時(shí)延也沒有太高的要求。像是小區(qū)門禁的那個(gè)人臉識(shí)別就會(huì)感覺明顯延遲。
那可以看看KV260能不能識(shí)別視頻中多少人臉?
這個(gè)比賽是歐洲杯頒獎(jiǎng)的比賽,可以看到,kv260立即就識(shí)別到了所有奪冠隊(duì)員的面部。
這個(gè)效率很高,我數(shù)了一下,最多時(shí),有22張人臉可以可以同時(shí)被識(shí)別捕捉到。主力和替補(bǔ)全部都捕捉到了。
能夠同時(shí)捕捉到22張人臉,這個(gè)也體現(xiàn)了這個(gè)芯片的人臉的識(shí)別能力。
并且畫面一直在動(dòng)態(tài)切換,具體時(shí)延控制不錯(cuò),只不過就沒有辦法定量來分析一下。
4:系統(tǒng)及原理
看完FPGA實(shí)現(xiàn)這個(gè)系統(tǒng)的效果了,下面我們來點(diǎn)干貨。
人工智能芯片系統(tǒng),需要有哪些部分組成?
CPU系統(tǒng):負(fù)責(zé)OS運(yùn)行,系統(tǒng)初始化,數(shù)據(jù)流控制,信號(hào)傳輸,外設(shè)管理等等。
DPU系統(tǒng):(Deep Learning Processor Unit,深度學(xué)習(xí)處理器)負(fù)責(zé)深度學(xué)習(xí)算法的加速,是一個(gè)智能加速引擎引擎。
簡單來說:兩個(gè)部分,控制和計(jì)算。
這個(gè)就是經(jīng)典的CPU+FPGA的方案,很多嵌入式工業(yè)領(lǐng)域都用此方案,一般是ARM+FPGA;
ARM負(fù)責(zé)控制管理,各種外設(shè)的管理,F(xiàn)PGA負(fù)責(zé)AI加速
而Zynq UltraScale+就是把這兩個(gè)做到了一個(gè)芯片上,下圖就是這個(gè)芯片的架構(gòu)。
其主要資源包括:四核CPU A53,一個(gè)Mali GPU,還有支持實(shí)時(shí)CPU,雙核R5F。
DPU這個(gè)詞,讓人聯(lián)想到xilinx收購深鑒科技,這場收購當(dāng)時(shí)在業(yè)界引起了很大影響力。
當(dāng)時(shí)深鑒科技的核心技術(shù),就是基于FPGA的DPU(Deep Learning Processing Unit)技術(shù),當(dāng)時(shí),深鑒科技號(hào)稱神經(jīng)網(wǎng)絡(luò)壓縮編譯技術(shù),它不僅可以將神經(jīng)網(wǎng)絡(luò)壓縮數(shù)十倍而不影響準(zhǔn)確度,還可以使用“片上存儲(chǔ)”來存儲(chǔ)深度學(xué)習(xí)算法模型,減少內(nèi)存讀取,大幅度減少功耗。
現(xiàn)在來看,不知道在Zynq UltraScale+這款芯片上,是不是一脈相承的技術(shù)實(shí)現(xiàn),從性能上還是很強(qiáng)的。
其主要的工作流程和性能指標(biāo)如下圖所示:
支持11路mipi的攝像頭,11個(gè)攝像頭,應(yīng)該足夠一個(gè)車需要用到的攝像頭。
反正能夠支持到這么多攝像頭的芯片,我印象中還是最多的。
除此之外,最重要的是,這顆芯片F(xiàn)PGA可編程資源非常豐富:256K logic Cell; (logic cell 內(nèi)部就是LUT和REG )。 其在333Mhz 其配置在可編程邏輯的 深度學(xué)習(xí)處理器DPU能力達(dá)到1.3Tops。
除了智攝像頭,還有一些其他的應(yīng)用可以供不同應(yīng)用選擇
例如智能駕駛,語音識(shí)別,安防檢測等等。
這里重點(diǎn)提一下ADAS(高級駕駛輔助系統(tǒng))利用安裝于車上的各式各樣的傳感器, 在第一時(shí)間收集車內(nèi)外的環(huán)境數(shù)據(jù), 進(jìn)行靜、動(dòng)態(tài)物體的辨識(shí)、偵測與追蹤等技術(shù)上的處理, 從而能夠讓駕駛者在最快的時(shí)間察覺可能發(fā)生的危險(xiǎn), 以引起注意和提高安全性的主動(dòng)安全技術(shù)。包括駕駛員疲勞預(yù)警和身份識(shí)別,人臉識(shí)別在乘用車的個(gè)性化駕駛艙,以及未來的商業(yè)模式都是非常必要的。也有一些原型在做。
總結(jié)一下:
1:處理能力:KV260用了zynq ultrascale+ mpsoc 這顆芯片,內(nèi)部有四核應(yīng)用處理器,GPU,實(shí)時(shí)處理器,以及256K LC的FPGA,硬件資源足夠來處理人工智能方面的應(yīng)用。
2:外設(shè)接口:KV260支持11路攝像頭,能夠支持類似汽車輔助設(shè)備ADAS ,先進(jìn)駕駛輔助系統(tǒng)這類應(yīng)用。
3:軟件配套:除了硬件之外,還有很多的軟件套件,例如人臉識(shí)別,入侵檢測,自動(dòng)駕駛等等一些應(yīng)用,方便二次開發(fā)。
FPGA通過深度學(xué)習(xí)可以達(dá)到毫秒級別的應(yīng)用,吞吐量大,時(shí)延低,這個(gè)可能一個(gè)優(yōu)勢。前面的人臉測試中,同時(shí)識(shí)別22張人臉,也側(cè)面說明了人臉識(shí)別的數(shù)量很多,延時(shí)較低。
為什么是22張,是因?yàn)檎业囊曨l中也就是22張人臉。
當(dāng)然,這個(gè)測試只是提供一個(gè)肉眼可以感受的角度。實(shí)際的應(yīng)用可以根據(jù)需求進(jìn)行測試,從測試結(jié)果進(jìn)行評估,從而加速design in的過程。