視覺AI應(yīng)用發(fā)展至今,已經(jīng)遍地開花,你能想到的或想不到的地方,它都存在。至于它的邊界在哪里,說是潛力無限也好不夸張,就像今天要評(píng)測(cè)的賽靈思Kria KV260視覺AI套件,他刷新了我對(duì)視覺AI及FPGA上手難易度的認(rèn)知。
賽靈思Kria KV260視覺AI入門套件是一個(gè)開箱即用平臺(tái),開發(fā)人員可以通過首選設(shè)計(jì)環(huán)境,在任何抽象層添加定制和差異化功能,包括應(yīng)用軟件、AI模型乃至FPGA設(shè)計(jì)。該套件是超快速簡(jiǎn)易平臺(tái),用于開發(fā)應(yīng)用以使用Kria K26系統(tǒng)模塊 (SOM) 進(jìn)行批量部署。
這個(gè)套件包括最多支持八個(gè)接口的多攝像頭、三個(gè)MIPI傳感器接口、一個(gè)USB攝像頭、一個(gè)內(nèi)置ISP組件、HDMI DisplayPort輸出以及千兆以太網(wǎng)和USB 3.0/2.0連接功能。該套件還允許開發(fā)人員針對(duì)任何傳感器或接口進(jìn)行擴(kuò)展,并訪問Pmod生態(tài)系統(tǒng)。KV260針對(duì)視覺應(yīng)用進(jìn)行了優(yōu)化,通過安森美半導(dǎo)體的影像接入系統(tǒng) (IAS) 和Raspberry Pi連接器提供多攝像頭支持。
Part 1:開箱
在拿到了板卡之后,首先看到的是這個(gè)方方正正的箱子:
打開外包裝,內(nèi)部主要有兩個(gè)盒子,一個(gè)是板卡包裝盒,可以從外包裝上看到,這個(gè)就是Kria板卡的外包裝,此板卡為視覺AI套件,和視覺AI套件對(duì)應(yīng)的還有機(jī)器人套件:
另一個(gè)是配件包盒子,配件包盒子就是一個(gè)簡(jiǎn)簡(jiǎn)單單的牛皮紙盒,但內(nèi)部提供的配件是非常多的:
打開板卡包裝盒,板卡正面特寫,可以看到板卡由核心板和一個(gè)載板構(gòu)成,該板卡提供了非常多的外部接口,如千兆以太網(wǎng)、4個(gè)USB3.0,1個(gè)HDMI,1個(gè)DP接口以及一個(gè)12V電源輸入接口,兩個(gè)MIPI接口,一個(gè)PMOD接口,串口等等,外設(shè)接口提供的非常全面,美中不足的是沒有提供開關(guān):
板卡背面特寫:
源適配器需單獨(dú)購(gòu)買:
電源適配器貼心的提供了不同標(biāo)準(zhǔn)接口:
HDMI連接線:
千兆網(wǎng)線:
MicroUSB線:
Cmos Sensor:
Sensor正面
Sensor背面
提供的SD卡架和TF卡,這個(gè)出廠里面是空的,并沒有燒錄鏡像。
此外,XILINX還提供了一個(gè)安裝架,用來固定板卡,安裝完成后十分的漂亮:
Part 2 – 板卡外觀與接口
板卡基本外觀如下所示:
可以看到,板卡其實(shí)是由兩部分構(gòu)成的,在紅色風(fēng)扇下面壓著的,就是我們的核心板,底部的就是載板,通常被稱為Carrier Board。
這種通過核心板+擴(kuò)展版的設(shè)計(jì)方法能夠有效的減少設(shè)計(jì)時(shí)間與設(shè)計(jì)風(fēng)險(xiǎn),核心板與底板可以替換、升級(jí),非常方便。
XILINX將他們的核心板成為SOM(SYSTEM ON MODULE),這塊板卡所使用的核心板型號(hào)為K26 SOM,官網(wǎng)頁(yè)面如下所示:
這個(gè)SOM核心器件使用了XILINX的ZYNQ Ultrascale+系列SOC/FPGA,該SOM資源種類、資源量、接口種類都非常豐富,如下表所示:
通過以上資源,給了我們非常大的空間與舞臺(tái),讓我們?cè)谶@個(gè)SOM上實(shí)現(xiàn)我們的想法。
對(duì)于這個(gè)視覺開發(fā)套件的載板,也就是Carrier Board, 也提供了非常多的外部接口,如下表所示,它針對(duì)AI應(yīng)用,引出了K26 SOM內(nèi)偏向于視覺的接口,供我們針對(duì)性選用。
KV260載板的硬件框圖如下所示:
KV260對(duì)應(yīng)此硬件框圖,提供的外部接口資源如下所示:
Part 3 – 上手體驗(yàn)&運(yùn)行Demo
XILINX為我們提供了頁(yè)面,告訴我們?nèi)绾伍_始,頁(yè)面如下:
https://china.xilinx.com/products/som/kria/kv260-vision-starter-kit/kv260-getting-started/getting-started.html
首先,根據(jù)頁(yè)面我們需要準(zhǔn)備好一些配件:
(1)KV260 電源和適配器 (12V, 3A)
(2)MicroSD 卡 (16GB)
(3)USB-A 至 micro-B 電纜
(4)13MP 自動(dòng)聚焦 RGB 攝像頭 (AR1335) 模塊
(5)以太網(wǎng)電纜
(6)HDMI 電纜(連接至監(jiān)視器)
此外,我還準(zhǔn)備了讀卡器和DP線纜。
根據(jù)頁(yè)面所述,我們可以選擇直接使用編譯好的ubuntu或者petalinux,我選擇使用petalinux。
點(diǎn)擊下方按鈕繼續(xù):
接下來就是下載鏡像和一些燒錄,格式化TF卡等等工具,鏡像下載界面如下所示:
https://china.xilinx.com/member/forms/download/xef.html?filename=petalinux-sdimage-2021.1-update1.wic.xz
燒錄器下載鏈接:
https://www.balena.io/etcher/
除了頁(yè)面要求外,我另外準(zhǔn)備了串口通信工具M(jìn)obaXterm,這個(gè)軟件的Home版本是免費(fèi)的,足夠我們使用。
另外,TF卡格式化工具我選擇了老牌的SDFormatter,簡(jiǎn)單可靠好用。
鏡像與工具準(zhǔn)備完成如下圖所示:
然后,進(jìn)入“開始設(shè)計(jì)”的步驟2,按照動(dòng)圖提示,先鏈接其他連線、TF卡、Sensor,最后再給板卡鏈接適配器進(jìn)行供電。
通過終端連接板卡,如下圖所示, 可以看到已經(jīng)有啟動(dòng)的log信息輸出:
提示進(jìn)行登錄:
由于是第一次進(jìn)入板卡系統(tǒng),要求設(shè)置個(gè)新密碼并確認(rèn),按照要求輸入即可。
成功進(jìn)入系統(tǒng):
然后我們可以嘗試進(jìn)行運(yùn)行XILINX提供的只能攝像頭加速應(yīng)用。
Xilinx 憑借 Kria? KV260 視覺 AI 入門套件向用戶推出 “加速應(yīng)用” 的概念。這些是為 AI 及軟件開發(fā)者預(yù)先構(gòu)建的應(yīng)用,可幫助他們領(lǐng)先一步開發(fā)目標(biāo)終端應(yīng)用
您可以快速運(yùn)行一款我們的加速應(yīng)用,甚至可以使用不同的人工智能模型或傳感器對(duì)其進(jìn)行定制。聽起來讓人很振奮!我們來試用一下智能相機(jī)加速應(yīng)用。
KV260 Vision AI 入門套件的獨(dú)特之處在于:它能夠加載和運(yùn)行能通過配置硬件來實(shí)現(xiàn)多種功能的應(yīng)用?!皒mutil” 實(shí)用程序可用于加載各種應(yīng)用。一個(gè)加速應(yīng)用可在既定的時(shí)間加載。我們將首先加載一個(gè)應(yīng)用,將SOM編程為智能相機(jī),該應(yīng)用能夠處理來自 MIPI 或 USB 相機(jī)的 1080p 視頻流,并通過 HDMI 或 DisplayPort 進(jìn)行顯示,或通過有線以太網(wǎng)進(jìn)行流處理。*
智能攝像頭加速應(yīng)用簡(jiǎn)介:
內(nèi)置機(jī)器學(xué)習(xí)并能執(zhí)行面部/行人檢測(cè)的超高清攝像頭,支持從各種視頻源(Mipi 攝像頭、視頻文件 & USB 攝像頭)捕獲信息,能夠通過基于 ROI 編碼的視頻的 HDMI、DisplayPort 或 RTSP 傳輸功能輸出處理過的視頻。
最普及的使用案例:智慧城市應(yīng)用(面部、行人檢測(cè)和交通管理)和視頻分析功能。
啟動(dòng)智能攝像頭加速應(yīng)用:
在運(yùn)行目標(biāo)上動(dòng)態(tài)安裝智能相機(jī)應(yīng)用軟件包
Xilinx 能夠采用運(yùn)行時(shí)軟件包管理 (rpm) 格式為用戶提供軟件包饋送,使他們能夠在使用 dnf 軟件包管理器實(shí)用程序命令“dnf install”運(yùn)行 Linux 啟動(dòng)器映像的基礎(chǔ)上,動(dòng)態(tài)加載 Xilinx 加速應(yīng)用。此外,Xilinx 還可提供 xmutil 實(shí)用程序 (xmutil getpkgs),用于搜索軟件包饋送并查詢針對(duì) Vision AI 入門套件提供的加速應(yīng)用軟件包組。命令如下:
1)?? ?運(yùn)行sudo xmutil getpkgs命令,獲取所提供的應(yīng)用軟件包組列表。
2)?? ?運(yùn)行sudo dnf install packagegroup-kv260-smartcam.noarch命令,從上表安裝智能相機(jī)加速應(yīng)用軟件包組。 出現(xiàn)提示時(shí),按“是”,等待大約 2 分鐘,安裝 204 個(gè)軟件包。
出現(xiàn)提示,輸入Y確認(rèn)安裝。
正在下載…
自動(dòng)進(jìn)行安裝:
安裝完成
加載智能相機(jī)加速應(yīng)用固件
在執(zhí)行 /opt/xilinx/bin 上提供的新安裝應(yīng)用之前,需要使用 xmutil 實(shí)用程序命令加載 FPGA 固件(PL 位流 + 設(shè)備樹覆蓋 + PL 驅(qū)動(dòng)程序)。按照以下步驟在 Vision AI 入門套件上加載智能相機(jī)加速應(yīng)用固件。
(1)運(yùn)行sudo xmutil listapps命令,列出 Vision AI 入門套件上可用的現(xiàn)有應(yīng)用固件。
(2) 運(yùn)行sudo xmutil unloadapp命令,卸載默認(rèn)的“kv260-dp”應(yīng)用固件。
(3) 運(yùn)行sudo xmutil loadapp kv260-smartcam命令,加載智能相機(jī)加速應(yīng)用固件。
運(yùn)行智能相機(jī)加速應(yīng)用。
將 AR1335 攝像頭模塊對(duì)準(zhǔn)用戶面部并運(yùn)行智能相機(jī)加速應(yīng)用。要使用 IAS 攝像頭模塊運(yùn)行加速應(yīng)用,請(qǐng)使用以下命令:
注: “--usb”的參數(shù) 0 取決于 USB 網(wǎng)絡(luò)攝像頭在 Vision AI 入門套件上運(yùn)行 Linux 時(shí)檢測(cè)到的媒體節(jié)點(diǎn)。在本案例中,它是 /dev/media0,所以我們使用“--usb 0。
您也可從 Jupyter Notebook 控制智能相機(jī)應(yīng)用。Linux 啟動(dòng)完成后,請(qǐng)通過在瀏覽器中輸入 SOM 的 IP 地址來啟動(dòng) Jupyter 筆記本。通過該筆記本的單元來練習(xí) Kria SOM 的智能相機(jī)功能。
運(yùn)行人臉識(shí)別加速器效果:
直接拍攝快速識(shí)別到人臉
遮擋時(shí)識(shí)別不到
移開后又識(shí)別到人臉
小結(jié):
賽靈思Kria KV260視覺AI入門套件板載接口充足,最令人欣喜的是加速應(yīng)用生態(tài)系統(tǒng),可以通過首選設(shè)計(jì)環(huán)境在任何抽象等級(jí)添加定制和差異化功能,從應(yīng)用軟件到AI模型再到FPGA設(shè)計(jì)。我相信各類開發(fā)人員,不管有沒有FPGA經(jīng)驗(yàn)都可以在短時(shí)間內(nèi)運(yùn)行應(yīng)用程序,是我目前見過最快最簡(jiǎn)單的開發(fā)平臺(tái)。