一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

旭日X3派AI推理(YOLOv5測試)

地瓜機(jī)器人 ? 2022-10-31 18:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

X3芯片概述

BPU是地平線自研的AI加速核,在設(shè)計(jì)過程中具體結(jié)合了AIoT/Auto的場景需求,從算法、計(jì)算架構(gòu)、編譯器三個(gè)方面進(jìn)行了軟硬協(xié)同優(yōu)化,使得在功耗不變前提下提高數(shù)倍的AI計(jì)算性能。
X3和J3芯片各內(nèi)置了兩個(gè)伯努利2.0的BPU核,它極大提升了對先進(jìn)CNN網(wǎng)絡(luò)的支持,同時(shí)大大降低了DDR帶寬占用率,可提供實(shí)時(shí)像素級視頻分割和結(jié)構(gòu)化視頻分析等能力。

詳細(xì)的內(nèi)容請參考地平線芯片開發(fā)手冊

pYYBAGNfmxqAGTO4AAM1RGQDS4c331.png

1.圖片分類任務(wù)

這里主要對樣例中提供的程序進(jìn)行測試

首先是系統(tǒng)中提供的圖片分類任務(wù)樣例

cd /app/ai_inference/01_basic_sample/
sudo python3 ./test_mobilenetv1.py

在test_mobilenetv1.py中對斑馬的圖片進(jìn)行了分類,得到的結(jié)果如下,通過查看標(biāo)簽編號340: 'zebra'實(shí)現(xiàn)了對圖片的準(zhǔn)確分類。

========== Classification result ==========
cls id: 340 Confidence: 0.991851

為了簡單測試下分類算法的結(jié)果。使用其他圖片進(jìn)行測試,發(fā)現(xiàn)在特征明顯時(shí)圖片分類準(zhǔn)確度較高,如對背景干凈,特征清晰的金魚達(dá)到了0.999884的置信度,1: 'goldfish, Carassius auratus',也存在圖片分類錯(cuò)誤的情況存在,如對于玉米進(jìn)行檢測時(shí)998: 'ear, spike, capitulum'。

poYBAGNfmyeAZD5xAAErxUlYFpA831.png
========== Classification result ==========
cls id: 1 Confidence: 0.999884
pYYBAGNfmzGAey2cAAHTthJ1O4g085.png
========== Classification result ==========
cls id: 998 Confidence: 0.753721

2.fcos目標(biāo)檢測快速驗(yàn)證

使用目標(biāo)檢測樣例

cd /app/ai_inference/02_usb_camera_sample/
python3 usb_camera_fcos.py

在初探中已經(jīng)對其進(jìn)行簡單展示,這里將代碼進(jìn)行簡單分析,主要包括以下5個(gè)部分

pYYBAGNfmzyAKKsWAAA2zUeMaVY613.png

其中加載模型 和模型正演為地平線封裝的模型方法,from hobot_dnn import pyeasy_dnn as dnn

hdmi顯示時(shí)地平線封裝的vio方法,from hobot_vio import libsrcampy as srcampy

加載的模型是通過地平線工具鏈編譯的bin模型fcos_512x512_nv12.bin,在運(yùn)行中會對輸入和輸出的tensor進(jìn)行打印,可以看出輸入的是512x512的圖像信息,輸入為15個(gè)tensor,其中輸出包括了檢測框坐標(biāo)、類別、置信度得分等。

tensor type: NV12_SEPARATE
data type: uint8
layout: NCHW
shape: (1, 3, 512, 512)
15
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 64, 64, 80)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 32, 32, 80)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 16, 16, 80)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 8, 8, 80)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 4, 4, 80)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 64, 64, 4)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 32, 32, 4)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 16, 16, 4)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 8, 8, 4)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 4, 4, 4)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 64, 64, 1)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 32, 32, 1)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 16, 16, 1)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 8, 8, 1)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 4, 4, 1)

3.改用YOLOv5進(jìn)行目標(biāo)檢測

更換YOLOv5模型進(jìn)行目標(biāo)檢測,由于工具鏈中提供了編譯后的YOLOv5模型,這里可以對其直接使用,工具鏈相關(guān)資料在AI工具鏈資料包其中

horizon_xj3_open_explorer_v1.11.4_20220413\ddk\samples\ai_toolchain\model_zoo\runtime\yolov5

直接在usb_camera_fcos.py中進(jìn)行模型的替換

models = dnn.load('../models/yolov5_672x672_nv12.bin')

對輸入輸出進(jìn)行打印,可以看到輸入是一個(gè) (1, 3, 672, 672)的tensor,而輸出為3層的tensor,輸出的不同代表著需要對模型后處理進(jìn)行重寫。

tensor type: NV12_SEPARATE
data type: uint8
layout: NCHW
shape: (1, 3, 672, 672)
3
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 84, 84, 255)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 42, 42, 255)
tensor type: float32
data type: float32
layout: NHWC
shape: (1, 21, 21, 255)

在這里我找到之前地平線對YOLOv5的后處理的相關(guān)代碼和說明,這個(gè)位于\horizon_xj3_open_explorer_v1.11.4_20220413\ddk\samples\ai_toolchain\horizon_model_convert_sample\04_detection\03_yolov5\mapper

1.4 對于 YOLOv5 模型,我們在模型結(jié)構(gòu)上的修改點(diǎn)主要在于幾個(gè)輸出節(jié)點(diǎn)處。由于目前的浮點(diǎn)轉(zhuǎn)換工具鏈暫時(shí)不支持 5 維的 Reshape,所以我們在 prototxt中進(jìn)行了刪除,并將其移至后處理中執(zhí)行。同時(shí)我們還添加了一個(gè) transpose 算子,使該節(jié)點(diǎn)將以 NHWC 進(jìn)行輸出。這是因?yàn)樵诘仄骄€芯片中, BPU 硬件本身以 NHWC 的layout 運(yùn)行,這樣修改后可以讓 BPU 直接輸出結(jié)果,而不在量化模型中引入額外的transpose。 詳情請見文檔中benchmark部分的圖文介紹

根據(jù)說明可以看到Y(jié)OLOv5應(yīng)該屬于異構(gòu)量化,部分網(wǎng)絡(luò)在后處理中執(zhí)行,這也就代表需要更多的處理時(shí)間。在對于樣例中給出的fcos的代碼,我們主要在后處理處做出相應(yīng)的調(diào)整,并將類別展示做出更換,其中主要代碼也是參考了地平線中給出的YOLOv5的公開代碼,做了部分的修改。

檢測結(jié)果:

運(yùn)行指令

python3 usb_camera_yolov5.py

將檢測結(jié)果輸出,可以看到對環(huán)境中的大部分物品做出了及時(shí)的檢測,置信度也很高。

pYYBAGNfm0yAMRZDACBfHib-aZo763.png

對時(shí)間進(jìn)行統(tǒng)計(jì),檢測的時(shí)間根據(jù)實(shí)際環(huán)境中的復(fù)雜度變化而變化,經(jīng)過實(shí)際測試發(fā)現(xiàn)在0.5s~0.8s之間,檢測結(jié)果較快。主要對cv_time(獲取圖像并縮放到模型的輸入尺寸)、forward_time(模型的正向推演)、postprocess_time(后處理)時(shí)間進(jìn)行了統(tǒng)計(jì),其中模型量化后的時(shí)間主要是Forward_time,可以看到需要的時(shí)間較短,表明模型的量化有效的減少了檢測時(shí)間。占用的時(shí)間主要集中在后處理和顯示,還有優(yōu)化的空間。

time: 0.8004379272460938
cv_time         =  0.15749073028564453
Forward_time    =  0.06625533103942871
postprocess_time=  0.38094043731689453
chair is in the picture with confidence:0.8259
pottedplant is in the picture with confidence:0.7951
tvmonitor is in the picture with confidence:0.7798
tvmonitor is in the picture with confidence:0.4708
tvmonitor is in the picture with confidence:0.4420
time: 0.8241267204284668
cv_time         =  0.1624467372894287
Forward_time    =  0.06629300117492676
postprocess_time=  0.3649098873138428
chair is in the picture with confidence:0.6791
pottedplant is in the picture with confidence:0.7784
tvmonitor is in the picture with confidence:0.7809
tvmonitor is in the picture with confidence:0.5400

4.使用工具鏈量化模型

查看工具鏈介紹主要有以下兩種方式:

pYYBAGNfm1SAbzWGAAPgV1RdD_k335.png

這里使用浮點(diǎn)轉(zhuǎn)定點(diǎn)工具鏈,這種方法適用于最多的模型,詳細(xì)介紹可以去查看數(shù)據(jù)鏈的視頻。使用wegt下在docker文件,安裝docker讀取鏡像

docker image ls
docker run -it hub.hobot.cc/aitools/ai_toolchain_centos_7_xj3:v2.1.7 /bin/bash

這里發(fā)現(xiàn)其中有YOLOv5s的相關(guān)內(nèi)容,使用該模型進(jìn)行快速部署

cd /open_explorer/horizon_xj3_open_explorer_v2.1.7_20220520/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection/03_yolov5s/mapper
bash 01_check.sh
bash 02_preprocess.sh
bash 03_build.sh   #此步驟需要耗費(fèi)一定時(shí)間

在model_output中輸出了yolov5s_672x672_nv12.bin ,由于輸出模型一致,直接在板子代碼中修改運(yùn)行,得到了與YOLO相似的效果。

pYYBAGNfm2KAC-HoACJXzRLyu-g784.png

原作者:Tobark

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

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317690
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    35165

    瀏覽量

    280086
  • 人工智能
    +關(guān)注

    關(guān)注

    1807

    文章

    49029

    瀏覽量

    249623
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    在K230上部署yolov5時(shí) 出現(xiàn)the array is too big的原因?

    重現(xiàn)步驟 1將yolov5的kmodel放入k230的data數(shù)據(jù) 2使用yolo大作戰(zhàn)里的視頻流推理代碼 3運(yùn)行 期待結(jié)果和實(shí)際結(jié)果 期待的結(jié)果 將目標(biāo)檢測的框圈起來 實(shí)際看到的結(jié)果
    發(fā)表于 05-28 07:47

    AI功能(SC171開發(fā)套件V3

    Yolov5)案例----基于SC171開發(fā)套件V3 10分30秒 https://t.elecfans.com/v/27890.html *附件:文檔:人體目標(biāo)檢測(Yolov5)案例----基于SC171
    發(fā)表于 04-16 18:48

    RV1126 yolov8訓(xùn)練部署教程

    YOLOv8 是 ultralytics 公司在 2023 年 1月 10 號開源的基于YOLOV5進(jìn)行更新的 下一個(gè)重大更新版本,目前支持圖像分類、物體檢測和實(shí)例分割任務(wù),鑒于Yolov5的良好表現(xiàn),
    的頭像 發(fā)表于 04-16 14:53 ?496次閱讀
    RV1126 <b class='flag-5'>yolov</b>8訓(xùn)練部署教程

    請問如何在imx8mplus上部署和運(yùn)行YOLOv5訓(xùn)練的模型?

    我正在從事 imx8mplus yocto 項(xiàng)目。我已經(jīng)在自定義數(shù)據(jù)集上的 YOLOv5 上訓(xùn)練了對象檢測模型。它在 ubuntu 電腦上運(yùn)行良好?,F(xiàn)在我想在我的 imx8mplus 板上運(yùn)行該模型
    發(fā)表于 03-25 07:23

    YOLOv5類中rgb888p_size這個(gè)參數(shù)要與模型推理和訓(xùn)練的尺寸一致嗎?一致會達(dá)到更好的效果?

    YOLOv5類中rgb888p_size這個(gè)參數(shù)要與模型推理和訓(xùn)練的尺寸一致嗎,一致會達(dá)到更好的效果
    發(fā)表于 03-11 08:12

    yolov5轉(zhuǎn)onnx在cubeAI進(jìn)行部署,部署失敗的原因?

    第一個(gè)我是轉(zhuǎn)onnx時(shí) 想把權(quán)重文件變小點(diǎn) 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、、。。。 到底能不能部署yolov5這種東西???? 也沒看見幾個(gè)部署在這上面......................
    發(fā)表于 03-07 11:38

    【米爾RK3576開發(fā)板評測】+項(xiàng)目名稱YOLOV5目標(biāo)檢測

    /examples/yolov5/model ./download_model.sh 下載的是一個(gè)ONNX格式的神經(jīng)網(wǎng)絡(luò)模型,但發(fā)現(xiàn)它無法在瑞芯微系統(tǒng)中直接運(yùn)行。為了解決這個(gè)問題,您計(jì)劃使用特定
    發(fā)表于 02-15 13:24

    在RK3568教學(xué)實(shí)驗(yàn)箱上實(shí)現(xiàn)基于YOLOV5的算法物體識別案例詳解

    非常流行的實(shí)時(shí)目標(biāo)檢測模型,它提供了出色的性能和精度。YOLOv5可以分為三個(gè)部分,分別是: 1、主干特征提取網(wǎng)絡(luò)(Backbone) 2、加強(qiáng)特征提取網(wǎng)絡(luò)(FPN) 3、分類器與回歸器(Yolo
    發(fā)表于 12-03 14:56

    在樹莓派上部署YOLOv5進(jìn)行動物目標(biāo)檢測的完整流程

    卓越的性能。本文將詳細(xì)介紹如何在性能更強(qiáng)的計(jì)算機(jī)上訓(xùn)練YOLOv5模型,并將訓(xùn)練好的模型部署到樹莓4B上,通過樹莓的攝像頭進(jìn)行實(shí)時(shí)動物目標(biāo)檢測。 一、在電腦上訓(xùn)練YOLOv5
    的頭像 發(fā)表于 11-11 10:38 ?3728次閱讀
    在樹莓派上部署<b class='flag-5'>YOLOv5</b>進(jìn)行動物目標(biāo)檢測的完整流程

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測

    盤資料中提供了Yolov5分類檢測的示例—rknn_yolov5_android_apk_demo(基于瑞芯微官方demo修改) ⑵ 例程測試 啟動 Android Studio,打開
    發(fā)表于 10-24 10:13

    手冊上新 |迅為RK3568開發(fā)板NPU例程測試

    yolov5目標(biāo)檢測 6.13 yolov5-seg語義分割 6.14 yolov6目標(biāo)檢測 6.15 yolov7目標(biāo)檢測 6.16 yolov
    發(fā)表于 10-23 14:06

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子
    的頭像 發(fā)表于 08-23 14:58 ?1364次閱讀
    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)<b class='flag-5'>Yolov5</b>分類檢測-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測

    盤資料中提供了Yolov5分類檢測的示例—rknn_yolov5_android_apk_demo(基于瑞芯微官方demo修改) ⑵ 例程測試 啟動 Android Studio,打開
    發(fā)表于 08-20 11:13

    基于迅為RK3588【RKNPU2項(xiàng)目實(shí)戰(zhàn)1】:YOLOV5實(shí)時(shí)目標(biāo)分類

    [/url] 【RKNPU2 人工智能開發(fā)】 【AI深度學(xué)習(xí)推理加速器】——RKNPU2 從入門到實(shí)踐(基于RK3588和RK3568) 【RKNPU2項(xiàng)目實(shí)戰(zhàn)1】:YOLOV5實(shí)時(shí)目標(biāo)分類 【RKNPU2項(xiàng)目實(shí)戰(zhàn)2】:SORT
    發(fā)表于 08-15 10:51

    手冊上新 |迅為RK3568開發(fā)板NPU例程測試

    yolov5目標(biāo)檢測 6.13 yolov5-seg語義分割 6.14 yolov6目標(biāo)檢測 6.15 yolov7目標(biāo)檢測 6.16 yolov
    發(fā)表于 08-12 11:03