一、基礎知識
(一)Vitis? AI開發環境
Vitis? AI開發環境可在賽靈思硬件平臺上加速 AI 推斷,包括邊緣器件和 Alveo? 加速器卡。此環境由經過最優化的 IP 核、工具、庫、模型和設計示例組成。其設計以高效和易用為核心,旨在通過賽靈思 SoC 和自適應計算加速平臺 (ACAP) 來充分發掘 AI 加速的全部潛能。Vitis AI 開發環境將底層可編程邏輯的繁復細節加以抽象化,從而幫助不具備 FPGA 知識的用戶輕松開發深度學習推斷應用。
(二)Vitis AI Model Zoo
Vitis AI 有個很有重要的工具:Vitis AI Model Zoo,類似于Vitis AI的模型商城。
Vitis AI Model Zoo 包含經過最優化的深度學習模型,可在賽靈思平臺上加速部署深度學習推斷。這些模型涵蓋了不同的應用,包括 ADAS/AD、視頻監控機器人學和數據中心等。用戶可從這些經過預訓練的模型開始著手,享受深度學習加速所帶來的諸多利益。
(三)ADAS
高級駕駛輔助系統(Advanced Driving Assistance System)是利用安裝在車上的各式各樣傳感器(毫米波雷達、激光雷達、單雙目攝像頭以及衛星導航),在汽車行駛過程中隨時來感應周圍的環境,收集數據,進行靜態、動態物體的辨識、偵測與追蹤,并結合導航地圖數據,進行系統的運算與分析,從而預先讓駕駛者察覺到可能發生的危險,有效增加汽車駕駛的舒適性和安全性。 近年來ADAS市場增長迅速,原來這類系統局限于高端市場,而現在正在進入中端市場,與此同時,許多低技術應用在入門級乘用車領域更加常見,經過改進的新型傳感器技術也在為系統布署創造新的機會與策略。
二、環境搭建
Vitis AI 庫有兩種安裝方法。一種是通過配置 PetaLinux 來重構系統,另一種則是在線安裝 Vitis AI 庫,安裝 Vitis-AI 庫后,再安裝 Vitis-AI 從屬庫。
(一)系統下載&安裝
PetaLinux 以前沒玩過,那就體驗一把。先從官網下載PetaLinux系統鏡像(https://china.xilinx.com/member/forms/download/design-license-xef.html?filename=xilinx-kv260-dpu-v2022.2-v3.0.0.img.gz),注意先注冊AMD賬號,然后填寫一些信息才能注冊成功,壓縮文件有3.3G,解壓后的文件8.8G。
注意文件命名,Vitis AI 版本為V3.0.0,此處有個坑,后續遇到再說。IMG文件燒錄TF卡后上電,PetaLinux 就這樣:
root@xilinx-kv260-starterkit-20222:~/Vitis-AI# uname -a
Linux xilinx-kv260-starterkit-20222 5.15.36-xilinx-v2022.2 #1 SMP Mon Oct 3 07:50:07 UTC 2022 aarch64 aarch64 aarch64 GNU/
root@xilinx-kv260-starterkit-20222:~/Vitis-AI#
映入眼簾的就是2個文件夾,包括鼎鼎大名的Vitis-AI :
接下來將在這個文件夾中玩的不亦樂乎。
(二)準備圖像包
在官方鏈接(https://china.xilinx.com/bin/public/openDownload?filename=vitis_ai_runtime_r3.0.0_image_video.tar.gz)下載`vitis_ai_runtime_r3.0.0_image_video.tar.gz,其中包括demo需要的圖像和視頻文件,下載后解壓備用。
三、ADAS目標識別
Vitis AI 提供L了許多實例,其中包括一個ADAS目標識別的demo,在Vitis-AI/examples/vai_runtime/adas_detection
中,可執行CPP程序已經編譯好,可以直接執行。
在執行demo之前,先看看readme。
Before running the program, please download the corresponding model and install it.
The model required by this sample is: yolov3_adas_pruned_0_9
You can find the detailed informantion of this model under
Vitis-AI/models/AI-Model-Zoo/model-list/dk_yolov3_cityscapes_256_512_0.9_5.46G_1.3/model.yaml
In the model.yaml, you will find the model's download links for different platforms.
Please choose the corresponding model and download it.
Take ZCU102/ZCU104 as an example, execute the following commands to download and install the model.
wget https://www.xilinx.com/bin/public/openDownload?filename=yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r2.5.0.tar.gz -O yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r2.5.0.tar.gz
mkdir -p /usr/share/vitis_ai_library/models
tar -xzvf yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r2.5.0.tar.gz
cp yolov3_adas_pruned_0_9 /usr/share/vitis_ai_library/models -r
把非KV260的內容截掉了,readme基本上就是告訴用戶,去Vitis AI Model Zoo下載相應的model并安裝。
那就照著guideline開動,將之前圖形包中的adas.webm文件拷貝至當前目錄,然后執行./adas_detection adas.webm /usr/share/vitis_ai_library/models/yolov3_adas_pruned_0_9/yolov3_adas_pruned_0_9.xmodel
,嗯,出錯了:
**注意,坑來了!**系統提示Please re-compile xmodel
是不是?要不去重編xmodel?仔細看看問題,原來是系統是Vitis AI V3.0,xmodel卻是V2.5,導致CHECK fingerprint fail,直接去Vitis AI Model Zoo下載個V3.0的xmodel就好了,說干就干!
root@xilinx-kv260-starterkit-20222:~/Vitis-AI/examples/vai_runtime/adas_detection# wget https://www.xilinx.com/bin/public/openDownload?filename=yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz -O yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz
--2023-09-27 06:52:41-- https://www.xilinx.com/bin/public/openDownload?filename=yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz
Resolving www.xilinx.com... 223.119.248.58, 223.119.248.90
Connecting to www.xilinx.com|223.119.248.58|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://xilinx-ax-dl.entitlenow.com/dl/ul/2023/01/06/R210771244/yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz?hash=PJrrJ06TWqMoH_m1gKVgXw&expires=1695855161&filename=yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz [following]
--2023-09-27 06:52:41-- https://xilinx-ax-dl.entitlenow.com/dl/ul/2023/01/06/R210771244/yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz?hash=PJrrJ06TWqMoH_m1gKVgXw&expires=1695855161&filename=yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz
Resolving xilinx-ax-dl.entitlenow.com... 223.119.244.25
Connecting to xilinx-ax-dl.entitlenow.com|223.119.244.25|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://amd-ax-dlf.entitlenow.com/dl/ul/2023/01/06/R210771244/yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz?hash=PJrrJ06TWqMoH_m1gKVgXw&expires=1695855161&filename=yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz [following]
--2023-09-27 06:52:45-- https://amd-ax-dlf.entitlenow.com/dl/ul/2023/01/06/R210771244/yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz?hash=PJrrJ06TWqMoH_m1gKVgXw&expires=1695855161&filename=yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz
Resolving amd-ax-dlf.entitlenow.com... 223.119.248.34, 223.119.248.40, 2402:4f00:4002:400::df77:f828, ...
Connecting to amd-ax-dlf.entitlenow.com|223.119.248.34|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1875420 (1.8M) [application/octet-stream]
Saving to: 'yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz'
yolov3_adas_pruned_0_9-zcu102_ 100%[==================================================>] 1.79M 1.54MB/s in 1.2s
2023-09-27 06:52:50 (1.54 MB/s) - 'yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz' saved [1875420/1875420]
root@xilinx-kv260-starterkit-20222:~/Vitis-AI/examples/vai_runtime/adas_detection#
再次執行以下命令:
root@xilinx-kv260-starterkit-20222:~/Vitis-AI/examples/vai_runtime/adas_detection# tar -xzvf yolov3_adas_pruned_0_9-zcu102_zcu104_kv260-r3.0.0.tar.gz
yolov3_adas_pruned_0_9/
yolov3_adas_pruned_0_9/meta.json
yolov3_adas_pruned_0_9/yolov3_adas_pruned_0_9.xmodel
yolov3_adas_pruned_0_9/md5sum.txt
yolov3_adas_pruned_0_9/yolov3_adas_pruned_0_9.prototxt
yolov3_adas_pruned_0_9_acc/
yolov3_adas_pruned_0_9_acc/yolov3_adas_pruned_0_9_acc.prototxt
yolov3_adas_pruned_0_9_acc/yolov3_adas_pruned_0_9_acc.xmodel
root@xilinx-kv260-starterkit-20222:~/Vitis-AI/examples/vai_runtime/adas_detection# cp yolov3_adas_pruned_0_9 /usr/share/vitis_ai_library/models -r
四、ADAS目標識別體驗
(一)目標識別
接上HDMI顯示器、鍵盤&鼠標,在KV260上執行(如果在SSH或串口上執行會提示cv::Exception):
`./adas_detection video/adas.webm /usr/share/vitis_ai_library/models/yolov3_adas_pruned_0_9/yolov3_adas_pruned_0_9.xmodel`
視頻在最后,可以看出識別的準確性和實時性都不錯,FPS保持在40左右。
(二)dashboard監測
KV260在PetaLinux上提供了一個Hardware Platform Statistics頁面,挺有意思的,用于展示系統硬件資源實時消耗情況。監控的內容包括CPU消耗、內存空閑和消耗、電壓、溫度…
下面是一張執行ADAS目標識別后CPU使用情況,可以看出CPU使用率一下子拉升了,A53的資源還是緊張了點,要是A72就好了。
最后
馬上中秋&國慶來了,終于在節前把第三篇作業完成,祝各位節日快樂!
審核編輯:湯梓紅
-
AI
+關注
關注
87文章
31513瀏覽量
270326 -
adas
+關注
關注
309文章
2193瀏覽量
208853 -
開發環境
+關注
關注
1文章
230瀏覽量
16697 -
Vitis
+關注
關注
0文章
147瀏覽量
7497
發布評論請先 登錄
相關推薦
評論