邊緣視覺(jué) AI 的理想平臺(tái)
易于使用
本文引用地址:http://butianyuan.cn/article/202106/426416.htm賽靈思通過(guò)開(kāi)發(fā)下文提及的各種工具、庫(kù)、框架和參考示例,為方便應(yīng)用做了大量工作。
它們大幅簡(jiǎn)化了軟件開(kāi)發(fā)者在賽靈思平臺(tái)上的應(yīng)用開(kāi)發(fā)工作。
Vitis AI 開(kāi)發(fā)套件
Vitis? AI 開(kāi)發(fā)環(huán)境由在賽靈思硬件平臺(tái)上實(shí)現(xiàn) AI 推斷的 Vitis AI 開(kāi)發(fā)套件構(gòu)成,支持賽靈思 SoC、Alveo? 加速器卡以及現(xiàn)在的 Kria SOM。它的組成包括經(jīng)優(yōu)化的工具、庫(kù)和預(yù)訓(xùn)練模型,為開(kāi)發(fā)者部署定制模型鋪平了道路。它在設(shè)計(jì)時(shí)就充分考慮到高效率和易用性,在賽靈思器件上釋放 AI 加速的全部潛力。Vitis AI 開(kāi)發(fā)環(huán)境方便不具備 FPGA 知識(shí)的用戶(hù)在 Kria SOM 上部署深度學(xué)習(xí)模型,抽象底層芯片器件的復(fù)雜構(gòu)成。詳見(jiàn) Vitis AI 用戶(hù)指南[參考資料 14]。
此外,Vitis AI與 Apache 開(kāi)源 TVM 項(xiàng)目集成[參考資料 15],進(jìn)一步增加了在賽靈思平臺(tái)上部署模型的機(jī)會(huì)。TVM 依托開(kāi)源社區(qū)和各類(lèi)大型商業(yè)用戶(hù)提供的輸入,提供多樣化、緊跟時(shí)代潮流的、可擴(kuò)展的機(jī)器學(xué)習(xí)框架支持。TVM 自動(dòng)運(yùn)行圖形分割和圖形編譯,基本上確保能夠部署來(lái)自任何框架的網(wǎng)絡(luò)運(yùn)算符,即使該運(yùn)算符并非原生地受到 Vitis AI 開(kāi)發(fā)環(huán)境的支持。事實(shí)上,在 TVM 環(huán)境中任何運(yùn)算符都能編譯到 x86 和 Arm?目標(biāo)器件上。這意味著開(kāi)發(fā)者可以迅速地部署自己的模型,在賽靈思 DPU 上為 Vitis AI 開(kāi)發(fā)環(huán)境支持的子圖加速,同時(shí)在 CPU 上部署圖形的其余部分[參考資料 16]。
PetaLinux SDK
PetaLinux是一種針對(duì)賽靈思 SoC 的嵌入式 Linux 軟件開(kāi)發(fā)套件 (SDK)。PetaLinux 基于 Yocto,是一種為構(gòu)建、開(kāi)發(fā)、測(cè)試和部署嵌入式 Linux 系統(tǒng)提供一切必要內(nèi)容的賽靈思開(kāi)發(fā)工具。
PetaLinux 工具包含:
● Yocto 可擴(kuò)展 SDK (eSDK)
● 賽靈思軟件命令行工具 (XSCT) 和工具鏈
● PetaLinux CLI 工具
Vitis 視覺(jué)庫(kù)
Vitis 視覺(jué)庫(kù)使用戶(hù)能在賽靈思平臺(tái)上開(kāi)發(fā)和部署加速計(jì)算機(jī)視覺(jué)和圖像處理應(yīng)用,同時(shí)在應(yīng)用層面操作。這些開(kāi)源的庫(kù)功能提供了基于 OpenCV 的熟悉界面,但專(zhuān)為賽靈思平臺(tái)的高性能和低資源耗用進(jìn)行了優(yōu)化。此外,它們也提供了靈活性,可以滿(mǎn)足用戶(hù)視覺(jué)系統(tǒng)的自適應(yīng)吞吐量需求。表 5 列出的是在賽靈思平臺(tái)已經(jīng)預(yù)加速的一些主要功能。完整列表請(qǐng)?jiān)L問(wèn) Xilinx.com 上的 Vitis 庫(kù)登錄頁(yè)面[參考資料 17]。
表5 賽靈思平臺(tái)上的加速功能
基礎(chǔ)功能 | ISP | 形態(tài) | ML |
絕對(duì)差 | 2dnr-nlm | 膨脹(最大) | 歸一化 |
累加 | 3dlut | 距離轉(zhuǎn)換 | 標(biāo)準(zhǔn)化 |
算術(shù)加法 | 3a | 侵蝕(最?。?/p> | 邊緣檢測(cè)器 |
算術(shù)減法 | ccm | 霍夫線(xiàn) | canny |
逐位:AND、OR、XOR、NOT | 修剪 | 標(biāo)準(zhǔn)偏差 | 高斯差分 (DOG) |
邊界框 | cvt | 閾值轉(zhuǎn)換 | 拉普拉斯算子 |
顏色轉(zhuǎn)換 | 去馬賽克-CFA-單色 | 二進(jìn)制閾值 | scharr |
修剪 | 去馬賽克-hlqi | 二進(jìn)制逆閾值 | 連接組件分析 |
定制卷積 | dpc-單 | 顏色閾值 | sobel |
重復(fù)圖像 | 伽馬校正 | 至零閾值 | 追蹤 |
直方圖 | 增益控制 | 至零逆閾值 | Lucas-Kanade密集光流 |
幅度 | gtm | 截?cái)嚅撝?/p> | 擴(kuò)展Kalman濾波器 |
繪圖遮罩 | hdr-去壓擴(kuò) | 地理坐標(biāo)轉(zhuǎn)換 | Kalman濾波器 |
像素級(jí)乘法 | Hdr-多-曝光-融合 | 仿射 | 均值漂移 |
查找表 | hist_均衡 | 翻轉(zhuǎn) | 其它 |
零 | lsc | 視角 | stereobm |
平滑 | ltm-clahe | pyrdown | stereorectify |
雙邊 | ob | pyrup | stereosgbm |
箱體(均值) | 量化-抖動(dòng) | 重映射 | 特性匹配器 |
高斯 | 調(diào)整大小-面積 | 調(diào)整大小 | 特性檢測(cè)器 |
中值 | 調(diào)整大小-雙線(xiàn)性 | 旋轉(zhuǎn) | 特性描述符 |
模式 | 調(diào)整大小-nn | 平移 | – |
視頻分析 SDK
視頻分析 SDK 是一種構(gòu)建在開(kāi)源且被廣泛采用的 GStreamer 框架上的應(yīng)用框架。這種SDK 設(shè)計(jì)上支持跨所有賽靈思平臺(tái)的無(wú)縫開(kāi)發(fā),包括賽靈思 FPGA、SoC、Alveo 卡,當(dāng)然還有 Kria SOM。使用這個(gè) SDK,開(kāi)發(fā)者無(wú)需深入掌握 FPGA 復(fù)雜的底層技術(shù),就能裝配視覺(jué)分析和視頻分析流水線(xiàn)。此外,該 SDK 提供的 API 讓用戶(hù)能夠快速開(kāi)發(fā)以 GStreamer 插件形式存在,能集成到 SDK 框架的高效的定制加速內(nèi)核。無(wú)論是否使用定制加速內(nèi)核,一般的嵌入式開(kāi)發(fā)者都能簡(jiǎn)便輕松地裝配定制加速流水線(xiàn)。
加速應(yīng)用
加速應(yīng)用是 Kria SOM 解決方案的基本構(gòu)建塊。這些應(yīng)用是完整、可量產(chǎn)的端到端解決方案,專(zhuān)門(mén)支持常見(jiàn)的視覺(jué)用例。賽靈思加速應(yīng)用在可編程邏輯區(qū)域包含一個(gè)預(yù)優(yōu)化的視覺(jué)流水線(xiàn)加速器。開(kāi)發(fā)者可按原狀使用,也可以進(jìn)一步優(yōu)化,滿(mǎn)足應(yīng)用的特定需求。借助具有高可靠性的軟件協(xié)議棧,只修改固件或者倒換 AI 模型,用戶(hù)就能輕松地定制和增強(qiáng)解決方案功能。此外,通過(guò)新推出的 Kria 賽靈思應(yīng)用商店,開(kāi)發(fā)者能通過(guò) Uncanny Vision 等領(lǐng)域?qū)I(yè)廠(chǎng)商,了解、評(píng)估或購(gòu)買(mǎi)業(yè)界領(lǐng)先的應(yīng)用。
結(jié)論
本白皮書(shū)首先對(duì)賽靈思最新推出的 Kria K26 SOM 與英偉達(dá) Jetson Nano 和英偉達(dá) Jetson TX2 進(jìn)行了詳細(xì)的特性比較。然后在 K26 SOM 的兩種 DPU 配置 B3136 和 B4096 上,比較了一些行業(yè)領(lǐng)先的模型的性能,如 Tiny Yolo V3、SSD_Mobilenet_V1、ResNet50 等。
隨后又將比較結(jié)果與英偉達(dá)網(wǎng)站上公布的基準(zhǔn)測(cè)試數(shù)值進(jìn)行比較。得到的結(jié)論是 K26 SOM 在性能上同時(shí)優(yōu)于 Jetson Nano 器件和 Jetson TX2 器件。Kria SOM 不僅吞吐量大幅增加(比 Jetson Nano 高 4 倍),而且在單位功耗性能上也有顯著優(yōu)勢(shì)(比 Jetson TX2 高 2 倍)。
分析進(jìn)一步展開(kāi),開(kāi)始比較自動(dòng)檢測(cè)和識(shí)別汽車(chē)車(chē)牌的實(shí)際應(yīng)用的性能。K26 SOM 在實(shí)際應(yīng)用下的性能極其優(yōu)異,提供了顯著的性能優(yōu)勢(shì)。K26 SOM 的底層硬件功能強(qiáng)大,有助于在降低時(shí)延和減少功耗的情況下為完整的應(yīng)用提速。對(duì)于 ANPR 應(yīng)用,K26 SOM 性能優(yōu)于 Jetson Nano 四倍,而且憑借更高的吞吐量,用戶(hù)能夠在每個(gè)器件上處理更多流,從而降低了總體擁有成本。擁有更高吞吐量、更低時(shí)延、更小功耗等優(yōu)勢(shì),同時(shí)能夠?yàn)闈M(mǎn)足未來(lái)需求提供靈活性和可擴(kuò)展能力,Kria K26 SOM 是在邊緣設(shè)備上實(shí)現(xiàn)基于視覺(jué) AI 的應(yīng)用的理想選擇。
參考資料
1.Krizhevsky, Alex, 2012, "ImageNet Classification with Deep Convolutional Neural Networks," https://papers.nips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
2.Ke, Haiming, 2015, "Deep Residual Learning for Image Recognition," https://arxiv.org/pdf/1512.03385.pdf
3.Dialani, Priya, 2019, “Computer Vision:The future of artificial intelligence,”
https://www.analyticsinsight.net/computer-vision-the-future-of-artificial-intelligence/
4.Howard, Andrew, 2017, "MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications," https://arxiv.org/pdf/1704.04861.pdf
5.Yao, Song et al., Hotchips Symposium 2018, Session 8, "The Evolution of Accelerators upon Deep Learning Algorithms," https://www.youtube.com/watch?v=zbtZ-rALqF4
6.Xilinx White Paper, WP528, “Achieving Embedded Design Simplicity with Kria SOMs,”
https://www.xilinx.com/products/som/achieving-embedded-design-simplicity-with-kria- soms.html
7.Xilinx User Guide, UG1089, Kria KV260 Vision AI Starter Kit User Guide:
https://www.xilinx.com/cgi-bin/rdoc?t=som-doc;v=latest;d=ug1089-kv260-starter-kit.pdf
8.Nvidia Website:https://developer.nvidia.com/EMBEDDED/Jetson-modules
9.Horowitz, Mark, ISSCC Presentation, 2014:“Computing’s Energy Problem and What We Can Do About It,” https://vimeo.com/99757212
10.Nvidia Website:https://developer.nvidia.com/embedded/jetson-benchmarks
11.Nvidia Website:https://forums.developer.nvidia.com/t/how-to-use-int8-inference-with- jetsontx2-tensorrt-2-1-2/54890
12.Clark, Alvin, “Xilinx Machine Learning Strategies For Edge”, 2018.https://www.xilinx.com/publications/events/machine-learning-
live/sandiego/xilinx_machine_learning_strategies_for_edge.pdf
13.Nvidia Website:"License Plate Recognition" by Nvidia's Deepstream-SDK:https://developer.nvidia.com/deepstream-sdk
14.Xilinx User Guide, UG1414 Vitis AI User Guide:https://www.xilinx.com/cgi- bin/docs/rdoc?t=vitis_ai;v=1.3;d=ug1414-vitis-ai.pdf
15.Apache TVM website, https://tvm.apache.org/
16.Xilinx TVM webinar,
https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&partnerref=E DM1&eventid=2746831&sessionid=1&key=597DBD491AEF87E1AB3FBAA582A3EAEE®Tag
=&sourcepage=register
17.Xilinx Website:https://www.xilinx.com/products/design-tools/vitis/vitis-libraries/vitis- vision.html
補(bǔ)充閱讀
1.Xilinx White Paper, Cathal Murphy and Yao Fu, WP492, “Xilinx All Programmable Devices:A Superior Platform for Compute-Intensive Systems”.June 13, 2017.
https://www.xilinx.com/support/documentation/white_papers/wp492-compute-intensive- sys.pdf
2.Jason Cong, Zhenman Fang, Michael Lo, Hanrui Wang, Jingxian Xu, Shaochong Zhang, Center for Domain-Specific Computing, UCLA, “Understanding Performance Differences of FPGAs and GPUs.” https://vast.cs.ucla.edu/sites/default/files/publications/FCCM2018-paper120-final.pdf
3.Gordon Cooper, “New Vision Technologies For Real-World Applications”, 3 Oct 2019.https://semiengineering.com/new-vision-technologies-for-real-world-applications/
4.Xilinx White Paper, “FPGAs in the Emerging DNN Inference Landscape”, 28 Oct, 2019.
https://www.xilinx.com/support/documentation/white_papers/wp514-emerging-dnn.pdf
5.Linus Pettersson, “Convolutional Neural Networks on FPGA and GPU on the Edge:A Comparison”, Jun 2020.
https://www.diva-portal.org/smash/get/diva2:1447576/FULLTEXT01.pdf
6.Alvin Clark, “Xilinx Machine Learning Strategies For Edge”, 2018.
https://www.xilinx.com/publications/events/machine-learning-live/san- diego/xilinx_machine_learning_strategies_for_edge.pdf
7.Ihwoo, “Nvidia Jetson Nano / Xavier power monitoring”, Jul, 2020.
https://inaj012.medium.com/nvidia-jetson-nano-xavier-power-monitoring-62d374e9dc81
8.Intel, “FPGA chips are coming on fast in the race to accelerate AI”, 10 Dec, 2020.
https://venturebeat.com/2020/12/10/fpga-chips-are-coming-on-fast-in-the-race-to- accelerate-ai/
9.Mehul Ved, “Artificial Intelligence (AI) Solutions on Edge Devices”, 8 May 2019.https://stratahive.com/artificial-intelligence-ai-solutions-on-edge-devices/
10.Hewelett Packard Enterprise, “7 Reasons Why We Need to Compute at the Edge”.
https://www.hpe.com/us/en/newsroom/blog-post/2017/03/7-reasons-why-we-need-to- compute-at-the-edge.html
11.https://github.com/jkjung-avt/tensorrt_demos
12.https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/restructure/yolo#trt- yolo-app
13.https://elinux.org/Jetson_Zoo
鳴謝
下列賽靈思員工參加了本白皮書(shū)的寫(xiě)作或?yàn)楸景灼?shū)的成文做出了貢獻(xiàn):Jasvinder Khurana,員工系統(tǒng)設(shè)計(jì)工程師
Quenton Hall,AI 系統(tǒng)架構(gòu)師
Girish Malipeddi,營(yíng)銷(xiāo)、多媒體和電路板解決方案總監(jiān)
修訂歷史
下表列出了本文檔的修訂歷史。
日期 | 版本 | 修訂描述 |
04/20/2021 | 1.0 | 賽靈思初始版本。 |
評(píng)論