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

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

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

3天內不再提示

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

地瓜機器人 ? 2022-10-31 18:11 ? 次閱讀

X3芯片概述

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

詳細的內容請參考地平線芯片開發手冊

pYYBAGNfmxqAGTO4AAM1RGQDS4c331.png

1.圖片分類任務

這里主要對樣例中提供的程序進行測試

首先是系統中提供的圖片分類任務樣例

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

在test_mobilenetv1.py中對斑馬的圖片進行了分類,得到的結果如下,通過查看標簽編號340: 'zebra'實現了對圖片的準確分類。

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

為了簡單測試下分類算法的結果。使用其他圖片進行測試,發現在特征明顯時圖片分類準確度較高,如對背景干凈,特征清晰的金魚達到了0.999884的置信度,1: 'goldfish, Carassius auratus',也存在圖片分類錯誤的情況存在,如對于玉米進行檢測時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目標檢測快速驗證

使用目標檢測樣例

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

在初探中已經對其進行簡單展示,這里將代碼進行簡單分析,主要包括以下5個部分

pYYBAGNfmzyAKKsWAAA2zUeMaVY613.png

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

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

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

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進行目標檢測

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

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

直接在usb_camera_fcos.py中進行模型的替換

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

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

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的后處理的相關代碼和說明,這個位于\horizon_xj3_open_explorer_v1.11.4_20220413\ddk\samples\ai_toolchain\horizon_model_convert_sample\04_detection\03_yolov5\mapper

1.4 對于 YOLOv5 模型,我們在模型結構上的修改點主要在于幾個輸出節點處。由于目前的浮點轉換工具鏈暫時不支持 5 維的 Reshape,所以我們在 prototxt中進行了刪除,并將其移至后處理中執行。同時我們還添加了一個 transpose 算子,使該節點將以 NHWC 進行輸出。這是因為在地平線芯片中, BPU 硬件本身以 NHWC 的layout 運行,這樣修改后可以讓 BPU 直接輸出結果,而不在量化模型中引入額外的transpose。 詳情請見文檔中benchmark部分的圖文介紹

根據說明可以看到YOLOv5應該屬于異構量化,部分網絡在后處理中執行,這也就代表需要更多的處理時間。在對于樣例中給出的fcos的代碼,我們主要在后處理處做出相應的調整,并將類別展示做出更換,其中主要代碼也是參考了地平線中給出的YOLOv5的公開代碼,做了部分的修改。

檢測結果:

運行指令

python3 usb_camera_yolov5.py

將檢測結果輸出,可以看到對環境中的大部分物品做出了及時的檢測,置信度也很高。

pYYBAGNfm0yAMRZDACBfHib-aZo763.png

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

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

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

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

這里發現其中有YOLOv5s的相關內容,使用該模型進行快速部署

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   #此步驟需要耗費一定時間

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

pYYBAGNfm2KAC-HoACJXzRLyu-g784.png

原作者:Tobark

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

    關注

    5090

    文章

    19176

    瀏覽量

    306895
  • AI
    AI
    +關注

    關注

    87

    文章

    31490

    瀏覽量

    269899
  • 人工智能
    +關注

    關注

    1794

    文章

    47642

    瀏覽量

    239650
收藏 人收藏

    評論

    相關推薦

    在RK3568教學實驗箱上實現基于YOLOV5的算法物體識別案例詳解

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

    在樹莓派上部署YOLOv5進行動物目標檢測的完整流程

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

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測

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

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

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

    【飛凌嵌入式OK3576-C開發板體驗】rknn實現yolo5目標檢測

    rknn.api import RKNN 模型轉換 以官方model_zoo中的YOLOv5為例,進行模型的轉換及測試 準備模型 首先我們需要克隆項目:https://github.com
    發表于 09-19 02:20

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子
    的頭像 發表于 08-23 14:58 ?817次閱讀
    RK3588 技術分享 | 在Android系統中使用NPU實現<b class='flag-5'>Yolov5</b>分類檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測

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

    基于迅為RK3588【RKNPU2項目實戰1】:YOLOV5實時目標分類

    [/url] 【RKNPU2 人工智能開發】 【AI深度學習推理加速器】——RKNPU2 從入門到實踐(基于RK3588和RK3568) 【RKNPU2項目實戰1】:YOLOV5實時目標分類 【RKNPU2項目實戰2】:SORT
    發表于 08-15 10:51

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

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

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

    和使用 3.1 rknn-toolkit-lite2環境搭建 3.1.1 直接安裝 3.1.2 conda虛擬環境安裝 3.2 rknn-toolkit-lite2推理測試 第4章 rknpu2工具套件使用 第5
    發表于 07-12 14:44

    YOLOv5的原理、結構、特點和應用

    YOLOv5(You Only Look Once version 5)是一種基于深度學習的實時目標檢測算法,它屬于卷積神經網絡(CNN)的范疇。下面我將詳細介紹YOLOv5的原理、結構、特點
    的頭像 發表于 07-03 09:23 ?6667次閱讀

    yolov5的best.pt導出成onnx轉化成fp32 bmodel后在Airbox上跑,報維度不匹配怎么處理?

    $ python3 yolov5_opencv_3output.py --bmodel ../../best_pt_1684x_int8_sym.bmodel --input ../../21.png
    發表于 05-31 08:10

    maixcam部署yolov5s 自定義模型

    ://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt 訓練(博主使用的是學校的集群進行訓練) python3 train.py
    發表于 04-23 15:43

    yolov5轉onnx在cubeAI上部署失敗的原因?

    第一個我是轉onnx時 想把權重文件變小點 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、、。。。 到底能不能部署yolov5這種東西啊?? 也沒看見幾個部署在這上面......................
    發表于 03-14 06:23

    基于QT5+OpenCV+OpenVINO C++的應用打包過程

    我用QT C++寫了一個YOLOv5模型推理演示應用。
    的頭像 發表于 01-26 10:17 ?1448次閱讀
    基于QT<b class='flag-5'>5</b>+OpenCV+OpenVINO C++的應用打包過程
    主站蜘蛛池模板: 绝对诱惑在线试听 | 好紧好湿太硬了我太爽了小说 | 九九热在线视频观看这里只有精品 | 日日天干夜夜狠狠爱 | 91精品一区二区三区在线观看 | 玖玖热视频一区二区人妻 | 亚洲 欧美 制服 校园 动漫 | 精品性影院一区二区三区内射 | 云南14学生真实初次破初视频 | 久久精品中文字幕免费 | 又亲又揉摸下面视频免费看 | 中文字幕无线手机在线 | 年轻夫妇韩剧中文版免费观看 | 日本少妇无码精品12P | 99热这里只有精品 | 日韩人妻精品久久日 | 韩国演艺圈悲惨在线 | 亞洲人妻AV無碼在線視頻 | 9久久免费国产精品特黄 | 俄罗斯aaaa一级毛片 | 黄色片软件大全 | 99视频这里只有精品 | 真实国产熟睡乱子伦对白无套 | 最近中文字幕2018MV高清在线 | 全黄H全肉细节文NP 全黄h全肉细节全文 | 一二三区乱码不卡手机版 | 草莓视频在线看免费高清观看 | 免费观看美女的网站 | 99爱在线精品视频网站 | 日韩人妻无码专区一本二本 | 噜噜噜狠狠夜夜躁精品 | 国产午夜免费不卡精品理论片 | 噜噜噜狠狠夜夜躁精品 | 御姐被吸奶 | 中文字幕久久熟女人妻AV免费 | 超碰高清熟女一区二区 | 久久视频在线视频观看天天看视频 | 日本艳妓BBW高潮一19 | 18禁止观看免费私人影院 | 国产XXXXXX农村野外 | 香蕉eeww99国产精品 |