女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

如何使用Vitis-AI加速YOLOX模型實(shí)現(xiàn)視頻中的目標(biāo)檢測(cè)

電子發(fā)燒友論壇 ? 來(lái)源: 電子發(fā)燒友論壇 ? 2023-10-16 15:43 ? 次閱讀

本文將介紹如何使用Vitis-AI加速YOLOX模型實(shí)現(xiàn)視頻中的目標(biāo)檢測(cè),并對(duì)相關(guān)源碼進(jìn)行解讀。由于演示的示例程序源碼是Vitis-AI開(kāi)源項(xiàng)目提供的,本文演示之前會(huì)介紹所需要的準(zhǔn)備工作。演示之后會(huì)對(duì)關(guān)鍵源碼進(jìn)行解析。

一、Vitis AI Library簡(jiǎn)介

上一篇帖子中,我們了解了Vitis統(tǒng)一軟件平臺(tái)和Vitis AI,并體驗(yàn)了Vitis AI Runtime的Resnet50圖像分類(lèi)示例程序。本篇文章我們將會(huì)介紹Vitis AI Library,并體驗(yàn)基于Vitis AI Library的YOLOX視頻目標(biāo)檢測(cè)示例程序。

Vitis AI User Guide中的一張圖可以很好的理解Vitis AI Library和Vitis AI Runtime的關(guān)系:

d721f4ce-6700-11ee-939d-92fbcf53809c.png

簡(jiǎn)單來(lái)說(shuō),Vitis AI Library是在Vitis AI Runtime之上構(gòu)建出來(lái)的。

二、YOLOX視頻目標(biāo)檢測(cè)示例體驗(yàn)

參考此前的帖子:【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】部署DPU鏡像并運(yùn)行Vitis AI圖像分類(lèi)示例程序

首先需要部署DPU鏡像,DPU鏡像系統(tǒng)啟動(dòng)過(guò)程中會(huì)加載DPU IP到FPGA側(cè),并且系統(tǒng)本身已經(jīng)集成了Vitis AI所需的各種庫(kù)文件。

2.1 準(zhǔn)備測(cè)試所需視頻文件

賽靈思官方文檔里面提供了測(cè)試視頻資源

在開(kāi)發(fā)板上下載、解壓的命令為:

# 跳轉(zhuǎn)到HOME目錄
cd ~


# 下載 tar.gz 文件
TGZ=[vitis_ai_library_r3.0.0_video.tar.gz](https://china.xilinx.com/bin/public/openDownload?filename=vitis_ai_library_r3.0.0_video.tar.gz)
wget -O $TGZ "[https://china.xilinx.com/bin/public/openDownload?filename=](https://china.xilinx.com/bin/public/openDownload?filename=vitis_ai_library_r3.0.0_video.tar.gz)$TGZ"


# 解壓 tar.gz 文件
DIR=[vitis_ai_library_r3.0.0_video](https://china.xilinx.com/bin/public/openDownload?filename=vitis_ai_library_r3.0.0_video.tar.gz)
mkdir $DIR
tar -C $DIR -xvf $TGZ

(左右移動(dòng)查看全部?jī)?nèi)容)

2.2 準(zhǔn)備KV260套件和DPU鏡像SD

和上一篇帖子一樣,使用Vitis-AI之前需要先準(zhǔn)備好KV260套件和寫(xiě)入DPU鏡像的SD卡,具體可以參考上一篇帖子中的第二章“部署DPU鏡像到KV260”:【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】部署DPU鏡像并運(yùn)行Vitis AI圖像分類(lèi)示例程序

2.3 編譯YOLOX視頻目標(biāo)檢測(cè)示例程序

KV260使用DPU鏡像的SD卡啟動(dòng)后,跳轉(zhuǎn)到Vitis-AI/目錄下,可以看到如下文件及目錄:

d735daca-6700-11ee-939d-92fbcf53809c.png

其中,藍(lán)色的為目錄,綠色的為可執(zhí)行文件,白色的為沒(méi)有執(zhí)行權(quán)限的文件。

執(zhí)行build.sh腳本,可以重新編譯文件(可以嘗試將可執(zhí)行文件刪除掉再重新執(zhí)行build.sh腳本)。

該腳本文件內(nèi)的代碼為:

d7503bd6-6700-11ee-939d-92fbcf53809c.png

重新編譯后,可以看到時(shí)間戳全部更新了:

d7612df6-6700-11ee-939d-92fbcf53809c.png

2.4 運(yùn)行YOLOX視頻目標(biāo)檢測(cè)示例程序

接下來(lái),運(yùn)行YOLOX視頻目標(biāo)檢測(cè)程序——test_video_yolox,命令為:

VIDEO_PATH=~/vitis_ai_library_r3.0.0_video/apps/seg_and_pose_detect/seg_960_540.avi
MODEL_NAME=yolox_nano_pt
./test_video_yolovx $MODEL_NAME $VIDEO_PATH

(左右移動(dòng)查看全部?jī)?nèi)容)

可以看到,畫(huà)面中的目標(biāo)被框起來(lái)了。

三、YOLOX視頻目標(biāo)檢測(cè)原理解析

YOLOX視頻目標(biāo)檢測(cè)示例程序源碼非常簡(jiǎn)短(test_video_yolovx.cpp文件):

d789637a-6700-11ee-939d-92fbcf53809c.png

這段代碼中:

model是模型名稱(chēng);

vitis::create(model) 用于創(chuàng)建模型;

3.1 main_for_video_demo 源碼分析

main_for_video_demo 核心代碼如下:

d78d6ec0-6700-11ee-939d-92fbcf53809c.png

其中,關(guān)鍵代碼行如下:

parse_opt 用于解析命令行參數(shù),包括線程數(shù)(例如-t 4指定4個(gè)線程)和視頻文件名

decode_queue 是解碼隊(duì)列,用于傳遞已經(jīng)解碼的圖像;

decode_thread 是解碼任務(wù)線程,讀取視頻文件,并解碼每一幀畫(huà)面,放入解碼隊(duì)列;

dpu_thread 是DPU任務(wù)線程,從解碼隊(duì)列取出圖像,如果-t 參數(shù)指定的大于1,會(huì)創(chuàng)建多個(gè)DPU線程(不指定-t參數(shù),默認(rèn)為1個(gè)DPU線程);

gui_thread 是圖形用戶界面(GUI)線程,調(diào)用cv::imshow顯示每一幀結(jié)果畫(huà)面;

gui_queue 是結(jié)果圖像隊(duì)列,GUI線程會(huì)從這個(gè)隊(duì)列取出圖像再顯示出來(lái);

sorting_thread 是排序線程,用于確保傳遞給gui_queue的圖像和視頻中出現(xiàn)的順序一致,從而保證視頻顯示的畫(huà)面正常。

這段代碼搭建了一個(gè)多線程的視頻處理流水線,流水線結(jié)構(gòu)如下圖所示:

d7b8974e-6700-11ee-939d-92fbcf53809c.png

3.2 DecodeThread 源碼分析

DecodeThread的構(gòu)造函數(shù):

d7bca62c-6700-11ee-939d-92fbcf53809c.png

構(gòu)造函數(shù)中調(diào)用open_stream,open_stream創(chuàng)建了OpenCV的VideoCapture對(duì)象指針,用于后續(xù)視頻文件讀取操作。

d7c52ab8-6700-11ee-939d-92fbcf53809c.png

DecodeThread::run函數(shù):

d7e11d9a-6700-11ee-939d-92fbcf53809c.png

DecodeThread::run函數(shù)的關(guān)鍵代碼為:

cap >> image 實(shí)現(xiàn)了從視頻讀取畫(huà)面,

queue_->push(…) 實(shí)現(xiàn)了給幀畫(huà)面編號(hào),并將其放入隊(duì)列。

3.3 SortingThread 源碼分析

SortingThread::run函數(shù)關(guān)鍵代碼如下:

d7ffa0e4-6700-11ee-939d-92fbcf53809c.png

SortingThread::run中的關(guān)鍵代碼為:

queue_in_->pop(…) 等待特定frame_id的圖像到來(lái);

queue_out_->push(…) 再將其放入輸出隊(duì)列(gui_queue)。

3.4 GuiThread 源碼分析

GuiThread::run函數(shù)源碼:

d827ddac-6700-11ee-939d-92fbcf53809c.png

其中關(guān)鍵的代碼為:

調(diào)用queue_->pop()從隊(duì)列取出一幀畫(huà)面;

調(diào)用cv::imshow顯示圖像畫(huà)面。

3.5 DpuThread 源碼解析

DpuThread::run函數(shù)源碼:

d850cf82-6700-11ee-939d-92fbcf53809c.png

其中關(guān)鍵代碼為:

調(diào)用queue_in_->pop(frame)取出畫(huà)面;

調(diào)用filter_->run(frame.mat)處理畫(huà)面;

調(diào)用queue_out_->push(frame)傳出畫(huà)面;

要解讀filter到底是什么,還需要看DpuThread構(gòu)造函數(shù)的聲明:

d871dae2-6700-11ee-939d-92fbcf53809c.png

以及DpuThread類(lèi)型實(shí)例化的代碼:

d88de4e4-6700-11ee-939d-92fbcf53809c.png

以及main函數(shù):

d89d4308-6700-11ee-939d-92fbcf53809c.png

這里可以看到:

factory_method是一個(gè)C++11的lamba表達(dá)式,

其中調(diào)用了vitis::create(model);

vitis::create的具體實(shí)現(xiàn)代碼較多,感興趣的可以自行查閱Vitis-AI源碼,它主要實(shí)現(xiàn)了模型加載,以及調(diào)用Vitis-AI-Runtime接口執(zhí)行推理,這里不再解讀。

process_result函數(shù)定義:

d8a652e0-6700-11ee-939d-92fbcf53809c.png

可以看到,process_result的作用主要是畫(huà)出方框,以及打印日志。

審核編輯:湯梓紅

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

    關(guān)注

    87

    文章

    34090

    瀏覽量

    275196
  • DPU
    DPU
    +關(guān)注

    關(guān)注

    0

    文章

    390

    瀏覽量

    24674
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3480

    瀏覽量

    49947
  • 目標(biāo)檢測(cè)
    +關(guān)注

    關(guān)注

    0

    文章

    222

    瀏覽量

    15890
  • Vitis
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    7817

原文標(biāo)題:【試用報(bào)告】Vitis-AI加速的YOLOX視頻目標(biāo)檢測(cè)示例體驗(yàn)和原理解析

文章出處:【微信號(hào):gh_9b9470648b3c,微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

    在ultrascale+上利用VCU和DPU實(shí)現(xiàn)的智能零售系統(tǒng)

    整個(gè)系統(tǒng)是以DPU為核心,在 DPU 上部署對(duì)象檢測(cè)模型實(shí)現(xiàn)實(shí)時(shí)智能檢測(cè),該系統(tǒng)視頻輸入可以來(lái)自 VCU 解碼的
    發(fā)表于 02-20 17:35

    基于YOLOX目標(biāo)檢測(cè)算法的改進(jìn)

    并應(yīng)用于邊界框回歸損失,提高了 YOLOX 在 KITTI 數(shù)據(jù)集上的檢測(cè)精度,檢測(cè)出更多的遮擋目標(biāo);采用動(dòng)態(tài)錨框來(lái)優(yōu)化置信度標(biāo)簽分配,
    發(fā)表于 03-06 13:55

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】部署vitis-ai環(huán)境以及測(cè)試demo

    /usr/share/vitia_ai_library能找到樣例所需要的全部models 此時(shí)目標(biāo)環(huán)境已經(jīng)搭建完成。但是想要正式使用,還要有交叉編譯環(huán)境 開(kāi)始程序需要如下文檔指導(dǎo): Viti
    發(fā)表于 08-27 23:35

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】部署DPU鏡像并運(yùn)行Vitis AI圖像分類(lèi)示例程序

    Model Composer 是一款基于模型的設(shè)計(jì)工具,不僅可在 MathWorks MATLAB? 和 Simulink? 環(huán)境實(shí)現(xiàn)快速設(shè)計(jì)探索與驗(yàn)證 ,而且還可加速 AMD 器
    發(fā)表于 09-10 23:01

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】五、VITis AI (人臉檢測(cè)和人體檢測(cè))

    都已編譯到預(yù)構(gòu)建的 Vitis AI 開(kāi)發(fā)板鏡像。您可直接運(yùn)行示例。如有新程序,請(qǐng)?jiān)谥鳈C(jī)側(cè)對(duì)其進(jìn)行編譯并將可執(zhí)行程序復(fù)制到目標(biāo)。 1. 使用 scp 命令將
    發(fā)表于 09-26 16:22

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】六、VITis AI車(chē)牌檢測(cè)&車(chē)牌識(shí)別

    。下圖顯示了車(chē)牌檢測(cè)的結(jié)果。 將圖片中的車(chē)牌進(jìn)行了框選,同事標(biāo)準(zhǔn)位置。 4.2、車(chē)牌識(shí)別 cd ~/Vitis-AI/examples/vai_library/samples/platenum
    發(fā)表于 09-26 16:28

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】七、VITis AI字符和文本檢測(cè)(OCR&Textmountain)

    4.1、字符檢測(cè) 使用命令運(yùn)行代碼程序。 cd ~/Vitis-AI/examples/vai_library/samples/ocr ./test_jpeg_ocr ocr_pt
    發(fā)表于 09-26 16:31

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】八、VITis AI自動(dòng)駕駛多任務(wù)執(zhí)行MultiTask V3

    是一種模型,旨在同時(shí)執(zhí)行自動(dòng)駕駛場(chǎng)景的不同任務(wù),同時(shí)實(shí)現(xiàn)優(yōu)異的性能和效率。這些任務(wù)包括對(duì)象檢測(cè)、分割、車(chē)道檢測(cè)、可行駛區(qū)域分割和深度估算,
    發(fā)表于 09-26 16:43

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】基于Vitis AI的ADAS目標(biāo)識(shí)別

    AI模型商城。 Vitis AI Model Zoo 包含經(jīng)過(guò)最優(yōu)化的深度學(xué)習(xí)模型,可在賽靈思平臺(tái)上
    發(fā)表于 09-27 23:21

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Vitis-AI加速YOLOX視頻目標(biāo)檢測(cè)示例體驗(yàn)和原理解析

    本文將介紹如何使用Vitis-AI加速YOLOX模型實(shí)現(xiàn)視頻
    發(fā)表于 10-06 23:32

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Vitis AI 構(gòu)建開(kāi)發(fā)環(huán)境,并使用inspector檢查模型

    FFT運(yùn)算(Vivado) 四、硬件加速之—使用PL加速矩陣乘法運(yùn)算(Vitis HLS) 五、Vitis AI 構(gòu)建開(kāi)發(fā)環(huán)境,并使用ins
    發(fā)表于 10-14 15:34

    基于紫光同創(chuàng)FPGA的多路視頻采集與AI輕量化加速的實(shí)時(shí)目標(biāo)檢測(cè)系統(tǒng)

    基于紫光同創(chuàng)FPGA的多路視頻采集與AI輕量化加速的實(shí)時(shí)目標(biāo)檢測(cè)系統(tǒng)#2023集創(chuàng)賽#紫光同創(chuàng)#小眼睛科技助力紫光同創(chuàng)高校生態(tài)建設(shè)@小眼睛科
    發(fā)表于 11-02 17:51

    YOLOX目標(biāo)檢測(cè)模型的推理部署

    曠視科技開(kāi)源了內(nèi)部目標(biāo)檢測(cè)模型-YOLOX,性能與速度全面超越Y(jié)OLOv5早期版本!
    的頭像 發(fā)表于 04-16 23:00 ?3278次閱讀

    Xilinx KV260 Vitis-AI 1.4人臉檢測(cè)

    電子發(fā)燒友網(wǎng)站提供《Xilinx KV260 Vitis-AI 1.4人臉檢測(cè).zip》資料免費(fèi)下載
    發(fā)表于 06-14 10:34 ?2次下載
    Xilinx KV260 <b class='flag-5'>Vitis-AI</b> 1.4人臉<b class='flag-5'>檢測(cè)</b>

    使用Vitis-AI進(jìn)行車(chē)牌識(shí)別

    電子發(fā)燒友網(wǎng)站提供《使用Vitis-AI進(jìn)行車(chē)牌識(shí)別.zip》資料免費(fèi)下載
    發(fā)表于 06-27 09:49 ?2次下載
    使用<b class='flag-5'>Vitis-AI</b>進(jìn)行車(chē)牌識(shí)別