在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用10行代碼輕松在ZYNQ MP上實(shí)現(xiàn)圖像識別

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 作者:張超 ? 2021-10-09 10:47 ? 次閱讀

本文來自賽靈思高級產(chǎn)品應(yīng)用工程師,張超。如今各種機(jī)器學(xué)習(xí)框架的普及使得個人搭建和訓(xùn)練一個機(jī)器學(xué)習(xí)模型越來越容易。然而現(xiàn)實(shí)中大量的機(jī)器學(xué)習(xí)模型訓(xùn)練完后需要在邊緣端部署,那么我們看看借助Xilinx Vitis-AI工具,如何僅僅使用10行代碼,就能在ZYNQ MP器件上部署深度學(xué)習(xí)模型實(shí)現(xiàn)圖像分類。

簡介

Xilinx Vitis-AI 是用于 Xilinx 硬件平臺上的 AI 推理的開發(fā)堆棧。它由優(yōu)化的 IP、工具、庫、模型和示例設(shè)計(jì)組成。

簡單來說,它主要包含:

AI推理加速器IP,即DPU;

支持將AI模型優(yōu)化 (Optimizer)、量化 (Quantizer)、最后編譯 (Compiler) 成DPU運(yùn)行指令集的整套工具;

支撐模型運(yùn)行的運(yùn)行時庫(Vitis-AI runtime, Vitis-AI library);

更多具體介紹請 訪問如下鏈接至官方文檔:

https://github.com/Xilinx/Vitis-AI

https://www.xilinx.com/support/documentation/sw_manuals/vitis_ai/1_4/ug1414-vitis-ai.pdf

本案例中,我們將使用 Xilinx Kria KV260開發(fā)板(包含ZynqMP器件)為目標(biāo)運(yùn)行設(shè)備。

本文使用的Vitis-AI 版本為1.4, 使用的platform基于Vitis/Vivado 2020.2。為了方便快速部署,我們直接使用官方發(fā)布的Linux系統(tǒng)啟動鏡像, 并且使用Vitis-AI library為編程接口。

準(zhǔn)備工作

開始工作前我們需要先搭建好運(yùn)行環(huán)境,包括設(shè)置host端(X86機(jī)器)的交叉編譯環(huán)境,以及 target端(KV260)的啟動鏡像燒寫。

本文的主要目的是闡述 Vitis-AI Library 的使用,故運(yùn)行環(huán)境的搭建不做過多介紹,可以完全參考以下鏈接中的步驟

“Step1: Setup cross-compiler”

“Step2: Setup the Target”

https://github.com/Xilinx/Vitis-AI/tree/master/setup/mpsoc/VART

注意因?yàn)镵V260 的Vitis-AI 1.4 platform基于Vitis/Vivado 2020.2, 配置交叉編譯環(huán)境使用的腳本為host_cross_compiler_setup_2020.2.sh

因?yàn)槲覀兪褂霉俜絾隅R像,Step2中標(biāo)注為“Optional”的步驟我們都可以省略。

當(dāng)KV260成功啟動,我們會在console中看到如下提示符:

root@xilinx-k26-starterkit-2020_2:~#

程序編譯

可通過如下方式獲得本案例中的代碼,

git clone https://github.com/lobster1989/Image-classification-on-edge-with-10-lines-of-code.git

主要用到的文件為classification.cpp和Makefile。另外幾個Jpeg文件可用于后續(xù)測試輸入。

安裝準(zhǔn)備工作章節(jié)中配置好交叉編譯環(huán)境后,切換到源碼目錄中直接運(yùn)行make。make完成后文件夾中會生成執(zhí)行文件“classification”。

運(yùn)行演示

KV260 連接好串口,從SD卡啟動運(yùn)行(記得提前把執(zhí)行文件和測試圖片拷貝到SD下),

切換到執(zhí)行文件和測試圖片目錄下,運(yùn)行 ./classification.JPEG

分類結(jié)果如下:

a62d0dca-225d-11ec-82a8-dac502259ad0.png

代碼分析

Vitis-AI包含了兩組編程接口:VART (Vitis-AI Runtime) 比較底層,提供更大的自由度;Vitis-AI library屬于高層次API,構(gòu)建于 VART 之上,通過封裝許多高效、高質(zhì)量的神經(jīng)網(wǎng)絡(luò),提供更易于使用的統(tǒng)一接口。

Vitis-AI Library的組成如下圖,包含 base libraries, model libraries, library test samples, application demos幾個部分:

base libraries提供底層接口;

model libraries是重要的部分,提供了主流模型(classification, detection, segmentation…) 的調(diào)用方法;

library test samples和application demos主要提供library的使用示例;

更多Vitis-AI library的細(xì)節(jié)可參考官方文檔,

https://www.xilinx.com/support/documentation/sw_manuals/vitis_ai/1_4/ug1354-xilinx-ai-sdk.pdf

再來看本例子,如何用簡單到10行代碼實(shí)現(xiàn)圖片分類:

int main(int argc, char* argv[]) {

std::string image_name = argv[1];

auto image = cv::imread(image_name);

auto network = vitis::create("resnet50");

auto result = network->run(image);

cout << "Classification result:" << endl;

for (const auto &r : result.scores){

cout << result.lookup(r.index) << ": " << r.score << endl;

}

}

源文件中除去include部分,只有10行代碼,代碼中最重要的有兩句,第一句調(diào)用create方法創(chuàng)建了Classification類的一個實(shí)例,第二句調(diào)用run方法來運(yùn)行神經(jīng)網(wǎng)絡(luò)獲得推理結(jié)果。

auto network = vitis::create("resnet50");

auto result = network->run(image);

vitis::Classification 是 model libraries 中的一個基礎(chǔ)類,其作用是進(jìn)行圖片分類,這個類中包含如下方法:

a6c1f034-225d-11ec-82a8-dac502259ad0.png

其中create方法接受一個模型名稱作為參數(shù),返回一個Classification類的實(shí)例。在安裝了Vitis-AI Library的開發(fā)板上,已經(jīng)訓(xùn)練編譯好的模型文件放在開發(fā)板的/usr/share/vitis_ai_library/models/目錄下,Vitis-AI Library會通過傳遞給create方法的模型名稱來調(diào)用這些模型文件,比如我們用到的resnet50模型文件位置如下,

a6f371cc-225d-11ec-82a8-dac502259ad0.png

如果用戶訓(xùn)練并編譯好了自己的模型,也可以把自己的模型文件放到對應(yīng)位置來使用。

run方法接受一個/一組圖片作為輸入,輸出這個/這些圖片的分類結(jié)果。其工作簡單來說就是把模型文件和圖片數(shù)據(jù)傳送給DPU, DPU運(yùn)行并輸出推理結(jié)果,CPU再讀回結(jié)果。

再看下添加了注釋的代碼片段,整個過程實(shí)際上非常簡單明了。

int main(int argc, char* argv[]) {

std::string image_name = argv[1];

auto image = cv::imread(image_name); // 讀入圖片

auto network = vitis::create("resnet50"); // 用resnet50模型創(chuàng)建Classification類實(shí)例

auto result = network->run(image); //運(yùn)行模型

cout << "Classification result:" << endl;

for (const auto &r : result.scores){

cout << result.lookup(r.index) << ": " << r.score << endl; //輸出模型運(yùn)行結(jié)果

}

}

除了Classification基礎(chǔ)類, Vitis-AI Library包含了非常多的常用機(jī)器學(xué)習(xí)任務(wù)(classification, detection, segmentation…)的基礎(chǔ)類。這些類的使用方法基本一致,

首先通過create方法創(chuàng)建基礎(chǔ)類的實(shí)例,

通過getInputWidth()/getInputHeight()來獲取模型需要的圖片尺寸,

resize圖片,

運(yùn)行run方法來運(yùn)行網(wǎng)絡(luò)獲得輸出。

總結(jié)

通過這個例子,我們看到通過Vitis-AI工具,可以大大縮減模型到部署之間的距離。Vitis-AI包含了常用模型的Model-Zoo, 提供簡單易用的編程接口,甚至可以讓不熟悉機(jī)器學(xué)習(xí)或者FPGA的軟件開發(fā)者都可以在極短的時間內(nèi)在FPGA/SoC器件上部署神經(jīng)網(wǎng)絡(luò)應(yīng)用。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • MP
    MP
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    36282
  • 圖像識別
    +關(guān)注

    關(guān)注

    9

    文章

    526

    瀏覽量

    38918
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4890

    瀏覽量

    70291
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    614

    瀏覽量

    48037

原文標(biāo)題:開發(fā)者分享 | 10行代碼輕松在ZYNQ MP上實(shí)現(xiàn)圖像識別

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于DSP的快速紙幣圖像識別技術(shù)研究

    本課題通過對現(xiàn)有圖像識別技術(shù)進(jìn)行研究和分析,針對當(dāng)前DSP(數(shù)字信號處理)技術(shù)的新發(fā)展,提出了基于DSP的快速圖像識別概念??焖?b class='flag-5'>圖像識別技術(shù)以嵌入式系統(tǒng)為算法的實(shí)現(xiàn)平臺,它結(jié)合了當(dāng)前最
    發(fā)表于 11-05 14:43

    【瑞芯微RK1808計(jì)算棒試用申請】圖像識別以及芯片評測

    棒完成計(jì)算后把數(shù)據(jù)送回PC4,擁有PC開發(fā)界面經(jīng)驗(yàn),有使用python開發(fā)PyQt5界面經(jīng)驗(yàn),能工完成PC端數(shù)據(jù)處理,圖像傳送和接收預(yù)計(jì)成果:1,PyQT界面,實(shí)現(xiàn)圖像傳送和接收功能2,計(jì)算棒端數(shù)據(jù)處理
    發(fā)表于 09-18 19:21

    何用單片機(jī)實(shí)現(xiàn)圖像識別?

    何用單片機(jī)實(shí)現(xiàn)圖像識別
    發(fā)表于 10-25 06:43

    圖像識別模組(包括PCB圖、圖像識別模組源代碼)

    圖像識別模組電路原理圖、圖像識別模組PCB圖、圖像識別模組源代碼、圖像識別模組用戶使用手冊
    發(fā)表于 01-02 19:14 ?123次下載

    簡單介紹圖像識別技術(shù)各類行業(yè)的應(yīng)用

    其實(shí)對于圖像識別技術(shù),大家已經(jīng)不陌生,人臉識別、虹膜識別、指紋識別等都屬于這個范疇,但是圖像識別遠(yuǎn)不只如此,它涵蓋了生物
    的頭像 發(fā)表于 01-23 11:26 ?3.5w次閱讀

    圖像識別技術(shù)農(nóng)業(yè)領(lǐng)域的應(yīng)用

    隨著計(jì)算機(jī)技術(shù)的進(jìn)步,以圖像識別為代表的人工智能技術(shù)得以迅速發(fā)展并被廣泛用于航空、醫(yī)學(xué)等多個領(lǐng)域。今天,圖像識別技術(shù)也已成為發(fā)展現(xiàn)代農(nóng)業(yè)不可缺少的組成部分,成為實(shí)現(xiàn)農(nóng)業(yè)信息化與自動化的重要技術(shù)力量。
    發(fā)表于 03-19 15:02 ?5621次閱讀

    如何在APT-Pi實(shí)現(xiàn)圖像識別功能

    不用自己訓(xùn)練模型,也能進(jìn)行 AI 圖像識別;借助百度云平臺,我們可以 APT-Pi 實(shí)現(xiàn)圖像識別功能。 創(chuàng)建
    的頭像 發(fā)表于 10-09 15:46 ?1.9w次閱讀
    如何在APT-Pi<b class='flag-5'>上</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像識別</b>功能

    10代碼輕松ZYNQ MP實(shí)現(xiàn)圖像識別

    如今各種機(jī)器學(xué)習(xí)框架的普及使得個人搭建和訓(xùn)練一個機(jī)器學(xué)習(xí)模型越來越容易。然而現(xiàn)實(shí)中大量的機(jī)器學(xué)習(xí)模型訓(xùn)練完后需要在邊緣端部署,那么我們看看借助Xilinx Vitis-AI工具,如何僅僅使用10代碼,就能在
    的頭像 發(fā)表于 08-02 08:03 ?2438次閱讀
    <b class='flag-5'>10</b><b class='flag-5'>行</b><b class='flag-5'>代碼</b><b class='flag-5'>輕松</b><b class='flag-5'>在</b><b class='flag-5'>ZYNQ</b> <b class='flag-5'>MP</b><b class='flag-5'>上</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像識別</b>

    10代碼輕松ZYNQ MP實(shí)現(xiàn)圖像識別的步驟

    Xilinx Vitis-AI 是用于 Xilinx 硬件平臺上的 AI 推理的開發(fā)堆棧。它由優(yōu)化的 IP、工具、庫、模型和示例設(shè)計(jì)組成。
    的頭像 發(fā)表于 07-04 09:20 ?2043次閱讀
    <b class='flag-5'>10</b><b class='flag-5'>行</b><b class='flag-5'>代碼</b><b class='flag-5'>輕松</b><b class='flag-5'>在</b><b class='flag-5'>ZYNQ</b> <b class='flag-5'>MP</b><b class='flag-5'>上</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像識別</b>的步驟

    Imagga利用DGX Station實(shí)現(xiàn)快速圖像識別

    Imagga利用DGX Station實(shí)現(xiàn)快速圖像識別
    的頭像 發(fā)表于 08-01 15:10 ?870次閱讀

    模擬矩陣圖像識別中的應(yīng)用

    訊維模擬矩陣圖像識別中的應(yīng)用主要是通過構(gòu)建一個包含多種圖像數(shù)據(jù)的模擬矩陣,來訓(xùn)練和測試深度學(xué)習(xí)模型,從而提高圖像識別的準(zhǔn)確性和效率。
    的頭像 發(fā)表于 09-04 14:17 ?781次閱讀
    模擬矩陣<b class='flag-5'>在</b><b class='flag-5'>圖像識別</b>中的應(yīng)用

    圖像識別技術(shù)原理 圖像識別技術(shù)的應(yīng)用領(lǐng)域

    圖像識別技術(shù)已經(jīng)各個領(lǐng)域廣泛應(yīng)用,其應(yīng)用領(lǐng)域包括但不限于以下幾個方面。 一、智能安防領(lǐng)域 圖像識別技術(shù)智能安防領(lǐng)域得到了廣泛的應(yīng)用。通過對監(jiān)控?cái)z像頭中的
    的頭像 發(fā)表于 02-02 11:01 ?3641次閱讀

    如何利用CNN實(shí)現(xiàn)圖像識別

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)是深度學(xué)習(xí)領(lǐng)域中一種特別適用于圖像識別任務(wù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它通過模擬人類視覺系統(tǒng)的處理方式,利用卷積、池化等操作,自動提取圖像中的特征,進(jìn)而實(shí)現(xiàn)高效的圖像識別。本
    的頭像 發(fā)表于 07-03 16:16 ?2520次閱讀

    圖像識別技術(shù)醫(yī)療領(lǐng)域的應(yīng)用

    一、引言 圖像識別技術(shù)是一種利用計(jì)算機(jī)視覺技術(shù)對圖像進(jìn)行分析和處理的技術(shù)。隨著計(jì)算機(jī)技術(shù)、人工智能技術(shù)、大數(shù)據(jù)技術(shù)等的發(fā)展,圖像識別技術(shù)各個領(lǐng)域的應(yīng)用越來越廣泛。
    的頭像 發(fā)表于 07-16 10:48 ?1913次閱讀

    AI圖像識別攝像機(jī)

    ?AI圖像識別攝像機(jī)是一種集成了先進(jìn)算法和深度學(xué)習(xí)模型的智能監(jiān)控設(shè)備。這些攝像機(jī)不僅能夠捕捉視頻畫面,還能實(shí)時分析和處理所拍攝的內(nèi)容,從而實(shí)現(xiàn)對特定對象、場景或
    的頭像 發(fā)表于 11-08 10:38 ?765次閱讀
    AI<b class='flag-5'>圖像識別</b>攝像機(jī)
    主站蜘蛛池模板: 26uuu欧美性色 | 中文字幕一区二区三区在线播放 | 久久噜噜噜久久亚洲va久 | 婷婷成人丁香五月综合激情 | 欧美一区二区三区成人看不卡 | аⅴ资源天堂8在线 | 手机国产看片 | 在线黄色大片 | 免费午夜视频在线观看 | 亚洲国产一区二区三区在线观看 | 国产精品国产三级在线高清观看 | 国产色婷婷精品免费视频 | 午夜剧院免费 | 男女交性视频播放 视频 视频 | 狠狠色噜噜狠狠狠狠黑人 | 国产精品资源网 | 在线观看黄色网 | 男女啪视频大全1000 | 国产性老妇女做爰在线 | 亚洲免费观看视频 | 另类专区欧美 | 亚洲一二三四区 | 国产真实乱偷人视频 | 色成人综合 | 亚洲日本视频在线观看 | 国产精品免费看久久久久 | 站长工具天天爽视频 | 亚洲影视自拍揄拍愉拍 | jizz性欧美12 | 国模吧一区二区三区精品视频 | www日本免费| 国产在线一区二区三区四区 | 干夜夜 | 久久精品亚洲精品国产欧美 | 亚洲美女啪啪 | 殴美一级 | hd性欧美| 色老头网址 | 99久久99久久久99精品齐 | 日本最好的免费影院 | 成人a在线观看 |