色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

10行代碼輕松在ZYNQ MP上實現圖像識別的步驟

FPGA技術江湖 ? 來源:XILINX開發者社區 ? 2023-07-04 09:20 ? 次閱讀

簡介

Xilinx Vitis-AI 是用于 Xilinx 硬件平臺上的 AI 推理的開發堆棧。它由優化的 IP、工具、庫、模型和示例設計組成。

簡單來說,它主要包含:

AI推理加速器IP,即DPU;

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

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

d4593826-19f1-11ee-962d-dac502259ad0.png

本案例中,我們將使用 Xilinx Kria KV260開發板(包含ZynqMP器件)為目標運行設備。

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

準備工作

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

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

“Step1: Setup cross-compiler”

“Step2: Setup the Target”

注意因為KV260 的Vitis-AI 1.4 platform基于Vitis/Vivado 2020.2, 配置交叉編譯環境使用的腳本為host_cross_compiler_setup_2020.2.sh

因為我們使用官方啟動鏡像,Step2中標注為“Optional”的步驟我們都可以省略。

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

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

程序編譯

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

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

安裝準備工作章節中配置好交叉編譯環境后,切換到源碼目錄中直接運行make。make完成后文件夾中會生成執行文件“classification”。

運行演示

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

切換到執行文件和測試圖片目錄下,運行 ./classification.JPEG

分類結果如下:

d4981e4c-19f1-11ee-962d-dac502259ad0.png

圖片原圖:

d528de00-19f1-11ee-962d-dac502259ad0.png

代碼分析

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

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

base libraries提供底層接口;

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

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

d57df43a-19f1-11ee-962d-dac502259ad0.png

再來看本例子,如何用簡單到10行代碼實現圖片分類:

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行代碼,代碼中最重要的有兩句,第一句調用create方法創建了Classification類的一個實例,第二句調用run方法來運行神經網絡獲得推理結果。

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

auto result = network->run(image);

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

d59717f8-19f1-11ee-962d-dac502259ad0.png

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

d5cecb80-19f1-11ee-962d-dac502259ad0.png

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

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

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

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

std::string image_name = argv[1];

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

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

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

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

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

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

}

}

除了Classification基礎類, Vitis-AI Library包含了非常多的常用機器學習任務(classification, detection, segmentation…)的基礎類。這些類的使用方法基本一致,

首先通過create方法創建基礎類的實例,

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

resize圖片,

運行run方法來運行網絡獲得輸出。

總結

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






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4772

    瀏覽量

    100836
  • SD卡
    +關注

    關注

    2

    文章

    565

    瀏覽量

    63926
  • DPU
    DPU
    +關注

    關注

    0

    文章

    364

    瀏覽量

    24201
  • Zynq
    +關注

    關注

    10

    文章

    610

    瀏覽量

    47193

原文標題:10行代碼輕松在ZYNQ MP上實現圖像識別

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何用10代碼輕松ZYNQ MP實現圖像識別

    Vitis-AI工具,如何僅僅使用10代碼,就能在ZYNQ MP器件上部署深度學習模型實現
    的頭像 發表于 10-09 10:47 ?4676次閱讀
    如何用<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'>實現</b><b class='flag-5'>圖像識別</b>

    使用Python卷積神經網絡(CNN)進行圖像識別的基本步驟

    Python 卷積神經網絡(CNN)圖像識別領域具有廣泛的應用。通過使用卷積神經網絡,我們可以讓計算機從圖像中學習特征,從而實現圖像的分
    的頭像 發表于 11-20 11:20 ?6270次閱讀

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

    棒完成計算后把數據送回PC4,擁有PC開發界面經驗,有使用python開發PyQt5界面經驗,能工完成PC端數據處理,圖像傳送和接收預計成果:1,PyQT界面,實現圖像傳送和接收功能2,計算棒端數據處理
    發表于 09-18 19:21

    如何構建基于圖像識別的印制線路板精密測試系統?

    如何構建基于圖像識別的印制線路板精密測試系統?圖像識別技術印刷線路板精密測試中的應用
    發表于 04-27 06:25

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

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

    FPGA平臺實現基于遺傳算法的圖像識別的研究

    FPGA平臺實現基于遺傳算法的圖像識別的研究
    發表于 08-29 15:02 ?11次下載

    實驗python進行圖像識別的示例代碼資料免費下載

    本文檔的主要內容詳細介紹的是實驗python進行圖像識別的示例代碼資料免費下載。
    發表于 06-14 08:00 ?3次下載

    使用FPGA平臺實現遺傳算法的圖像識別的研究設計說明

    利用模板匹配方法,采用基于遺傳算法的圖像識別技術,完成了對圖像目標識別的算法驗證。在此基礎上進行了基于該算法的圖像識別系統的FPGA實現,并
    發表于 01-26 15:02 ?13次下載
    使用FPGA平臺<b class='flag-5'>實現</b>遺傳算法的<b class='flag-5'>圖像識別的</b>研究設計說明

    如何在APT-Pi實現圖像識別功能

    不用自己訓練模型,也能進行 AI 圖像識別;借助百度云平臺,我們可以 APT-Pi 實現圖像識別功能。 創建
    的頭像 發表于 10-09 15:46 ?1.1w次閱讀
    如何在APT-Pi<b class='flag-5'>上</b><b class='flag-5'>實現</b><b class='flag-5'>圖像識別</b>功能

    10代碼輕松ZYNQ MP實現圖像識別

    如今各種機器學習框架的普及使得個人搭建和訓練一個機器學習模型越來越容易。然而現實中大量的機器學習模型訓練完后需要在邊緣端部署,那么我們看看借助Xilinx Vitis-AI工具,如何僅僅使用10代碼,就能在
    的頭像 發表于 08-02 08:03 ?2222次閱讀
    <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'>實現</b><b class='flag-5'>圖像識別</b>

    卷積神經網絡用于圖像識別的原理

    機器視覺領域,圖像識別是指軟件識別人物、場景、物體、動作和圖像寫入的能力。為了實現圖像識別,計
    發表于 08-20 09:56 ?1273次閱讀
    卷積神經網絡用于<b class='flag-5'>圖像識別的</b>原理

    模擬矩陣圖像識別中的應用

    訊維模擬矩陣圖像識別中的應用主要是通過構建一個包含多種圖像數據的模擬矩陣,來訓練和測試深度學習模型,從而提高圖像識別的準確性和效率。
    的頭像 發表于 09-04 14:17 ?587次閱讀
    模擬矩陣<b class='flag-5'>在</b><b class='flag-5'>圖像識別</b>中的應用

    如何使用Python進行圖像識別的自動學習自動訓練?

    如何使用Python進行圖像識別的自動學習自動訓練? 使用Python進行圖像識別的自動學習和自動訓練需要掌握一些重要的概念和技術。本文中,我們將介紹如何使用Python中的一些常用庫和算法來
    的頭像 發表于 01-12 16:06 ?602次閱讀

    圖像檢測和圖像識別的區別是什么

    圖像檢測和圖像識別是計算機視覺領域的兩個重要研究方向,它們許多應用場景中都有著廣泛的應用。盡管它們某些方面有相似之處,但它們之間還是存在一些明顯的區別。本文將從多個角度對
    的頭像 發表于 07-03 14:41 ?1037次閱讀

    圖像識別屬于人工智能嗎

    過程。它涉及到圖像的獲取、預處理、特征提取、分類和識別等多個環節。 1.2 重要性 圖像識別技術人工智能領域具有重要的地位,它使計算機能夠“看”和“理解”
    的頭像 發表于 07-16 10:44 ?1168次閱讀
    主站蜘蛛池模板: 国产日韩久久久精品影院首页| 虫族bl文全肉高h| 97无码欧美熟妇人妻蜜桃天美| 俄罗斯老妇女BBXX| 欧美日韩另类在线观看视频| 一本大道香蕉中文在线视频观看| 国产成人免费a在线资源| 青草国产在线视频免费| 91久久线看在观草草青青| 久久re这里精品在线视频7| 亚洲国产精品久久人人爱| 国产精品久久久久久久久齐齐| 三级黄色片免费观看| 大乳牛奶女magnet| 日本伦理片 中文字幕| 扒开美女的内衣亲吻漫画| 欧美高清video mr.sexo| 99人精品福利在线观看| 男插女高潮一区二区| 中文字幕伊人香蕉在线| 美女白虎穴| a一级一片免费观看视频| 欧美成人精品高清在线观看| 爱爱好爽好大好紧视频| 三级成人电彭| 国产人妻麻豆蜜桃色69| 亚洲精品成人AV在线观看爽翻| 果冻传媒在线完整免费播放| 亚洲日韩成人| 久久久久亚洲精品影视| 2020国产成人精品免费视频| 蜜桃成熟时2电影免费观看d| WWW国产精品内射老师| 色橹| 国产人妻XXXX精品HD电影| 亚洲日韩在线天堂一| 老师的脚奴| 德国黄色录像| 亚洲AV久久无码精品九号| 久久 这里只精品 免费| 97人妻中文字幕免费视频 |