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

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

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

使用OpenVINO優(yōu)化并部署訓(xùn)練好的YOLOv7模型

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 2023-08-25 11:08 ? 次閱讀

作者:武卓博士 英特爾 AI 布道師

在《英特爾銳炫 顯卡+ oneAPI 和 OpenVINO 實(shí)現(xiàn)英特爾 視頻 AI 計(jì)算盒訓(xùn)推一體-上篇》一文中,我們詳細(xì)介紹基于英特爾 獨(dú)立顯卡搭建 YOLOv7 模型的訓(xùn)練環(huán)境,并完成了 YOLOv7 模型訓(xùn)練,獲得了最佳精度的模型權(quán)重:

38d3b184-425e-11ee-a2ef-92fbcf53809c.png

本文將繼續(xù)介紹使用 OpenVINO 優(yōu)化并部署已訓(xùn)練好的 YOLOv7 模型。

使用 OpenVINO 優(yōu)化并部署

訓(xùn)練好的YOLOv7 模型

我們可以進(jìn)一步使用 OpenVINO 來優(yōu)化經(jīng)過訓(xùn)練的 YOLOv7 模型,并將其部署到多個(gè)英特爾 硬件平臺,包括英特爾CPU、集成顯卡和獨(dú)立顯卡等。整個(gè)部署過程可以通過以下步驟來實(shí)現(xiàn):

檢查來自訓(xùn)練模型的推理結(jié)果

訓(xùn)練好的模型,推理效果究竟如何?可使用如下命令查看推理效果:

python -W ignore detect.py --weights ./ runs/train/yolov7_tiny_pothole_fixed_res/weights/best.pt --conf 0.25 --img-size 640 --source ../pothole_dataset/images/test/G0026953.jpg

向右滑動(dòng)查看完整代碼

同時(shí),可以利用如下命令打印出推理結(jié)果圖:

from PIL import Image
# visualize prediction result
Image.open('runs/detect/exp5/G0026953.jpg')

向右滑動(dòng)查看完整代碼

推理結(jié)果如下圖所示:

將模型導(dǎo)出為 ONNX 格式

使用如下命令將訓(xùn)練好的模型導(dǎo)出為 ONNX 格式:

python -W ignore export.py --weights ./ runs/train/yolov7_tiny_pothole_fixed_res/weights/best.pt --grid

向右滑動(dòng)查看完整代碼

將模型轉(zhuǎn)換為 OpenVINO IR 格式

使用 model conversion API 將模型轉(zhuǎn)為 OpenVINOIR 格式:

from openvino.tools import mo
from openvino.runtime import serialize


model = mo.convert_model('model_trained/best.onnx')
# serialize model for saving IR
serialize(model, 'model_trained/best.xml')

向右滑動(dòng)查看完整代碼

利用 OpenVINO runtime

在獨(dú)立顯卡上運(yùn)行推理

使用以下命令在英特爾GPU上使用 OpenVINO Runtime 運(yùn)行推理,因?yàn)槲业臋C(jī)器上有一個(gè)集成 GPU,所以 OpenVINO 的運(yùn)行時(shí)設(shè)備名稱需要設(shè)置為“GPU.1”。

from openvino.runtime import Core
core = Core()
# read converted model
model = core.read_model('model_trained/best.xml')
# load model on CPU device
compiled_model = core.compile_model(model, 'GPU.1')

向右滑動(dòng)查看完整代碼

利用 226-yolov7-optimization 中定義的前處理及后處理函數(shù),我們可以將 OpenVINO 推理結(jié)果可視化,如下圖所示:

完整的YOLOv7推理代碼已開源到(請復(fù)制鏈接到瀏覽器):

https://github.com/openvinotoolkit/openvino_notebooks/notebooks/226-yolov7-optimization.ipynb

歡迎開發(fā)者自行下載使用。

總結(jié)

到此,基于英特爾?視頻 AI 計(jì)算盒打造一個(gè)從模型訓(xùn)練到優(yōu)化部署的AI 訓(xùn)推一體流水線(Train & Inference pipeline)的完整過程已介紹完畢,所有代碼已開源到(請復(fù)制鏈接到瀏覽器):

https://github.com/zhuo-yoyowz/training-deployment-dGPU

歡迎大家將上述代碼克隆到本機(jī)并使用,遇到問題也歡迎到我的 GitHub Repo 上留言。

關(guān)于英特爾 OpenVINO 開源工具套件的詳細(xì)資料,包括其中我們提供的三百多個(gè)經(jīng)驗(yàn)證并優(yōu)化的預(yù)訓(xùn)練模型的詳細(xì)資料。

除此之外,為了方便大家了解并快速掌握 OpenVINO 的使用,我們還提供了一系列開源的 Jupyter notebook demo。運(yùn)行這些 notebook,就能快速了解在不同場景下如何利用 OpenVINO 實(shí)現(xiàn)一系列、包括計(jì)算機(jī)視覺、語音及自然語言處理任務(wù)。OpenVINO notebooks的資源可以在 Github 這里下載安裝(請復(fù)制鏈接到瀏覽器):

https://github.com/openvinotoolkit/openvino_notebooks

審核編輯:湯梓紅

聲明:本文內(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)注

    60

    文章

    9861

    瀏覽量

    171291
  • 顯卡
    +關(guān)注

    關(guān)注

    16

    文章

    2418

    瀏覽量

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

    關(guān)注

    87

    文章

    29806

    瀏覽量

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

    關(guān)注

    1

    文章

    3112

    瀏覽量

    48660
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    83

    瀏覽量

    168

原文標(biāo)題:英特爾銳炫? 顯卡 + oneAPI 和 OpenVINO? 實(shí)現(xiàn)視頻 AI 計(jì)算盒訓(xùn)推一體:下篇 | 開發(fā)者實(shí)戰(zhàn)

文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    YOLOV7網(wǎng)絡(luò)架構(gòu)解讀

    繼美團(tuán)發(fā)布YOLOV6之后,YOLO系列原作者也發(fā)布了YOLOV7。
    的頭像 發(fā)表于 11-29 10:00 ?1740次閱讀
    <b class='flag-5'>YOLOV7</b>網(wǎng)絡(luò)架構(gòu)解讀

    怎樣使用PyTorch Hub去加載YOLOv5模型

    PyTorch Hub 加載預(yù)訓(xùn)練YOLOv5s 模型,model傳遞圖像進(jìn)行推理。'yolov5s'是最輕最快的
    發(fā)表于 07-22 16:02

    yolov7 onnx模型在NPU上太慢了怎么解決?

    我將 yolov7tiny.pt(yolov7-tiny 模型)轉(zhuǎn)換為具有 uint8 權(quán)重的 yolov7tiny.onnx,然后在 i.MX 8M Plus NPU 上運(yùn)行
    發(fā)表于 04-04 06:13

    無法使用MYRIAD在OpenVINO trade中運(yùn)行YOLOv7自定義模型怎么解決?

    無法確定如何將 YOLOv7 模型的重量(.pt 文件)轉(zhuǎn)換為OpenVINO?中間表示 (IR) 推斷有 MYRIAD 的 IR。 分辨率 轉(zhuǎn)換使用此 GitHub* 存儲庫
    發(fā)表于 08-15 08:29

    深度解析YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu)

    最近,Scaled-YOLOv4的作者(也是后來的YOLOR的作者)和YOLOv4的作者AB大佬再次聯(lián)手推出了YOLOv7,目前來看,這一版的YOLOv7是一個(gè)比較正統(tǒng)的YOLO續(xù)作,
    的頭像 發(fā)表于 09-14 11:16 ?7461次閱讀

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下載并轉(zhuǎn)換YOLOv5預(yù)訓(xùn)練模型的詳細(xì)步驟,請參考:《基于OpenVINO?2022.2和蝰蛇峽谷優(yōu)化
    的頭像 發(fā)表于 02-15 16:53 ?4454次閱讀

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標(biāo)檢測模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件部署
    的頭像 發(fā)表于 05-12 09:08 ?1240次閱讀
    在AI愛克斯開發(fā)板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv</b>8目標(biāo)檢測<b class='flag-5'>模型</b>

    訓(xùn)練Pytorch模型使用OpenVINO?優(yōu)化部署在AI愛克斯開發(fā)板

    本文章將依次介紹如何將 Pytorch 自訓(xùn)練模型經(jīng)過一系列變換變成 OpenVINO IR 模型形式,而后使用 OpenVINO Pyth
    的頭像 發(fā)表于 05-26 10:23 ?870次閱讀
    自<b class='flag-5'>訓(xùn)練</b>Pytorch<b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>?<b class='flag-5'>優(yōu)化</b><b class='flag-5'>并</b><b class='flag-5'>部署</b>在AI愛克斯開發(fā)板

    AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測模型

    《在AI愛克斯開發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板上使用OpenVINO 開發(fā)套件部署
    的頭像 發(fā)表于 05-26 11:03 ?1161次閱讀
    AI愛克斯開發(fā)板上使用<b class='flag-5'>OpenVINO</b>加速<b class='flag-5'>YOLOv</b>8目標(biāo)檢測<b class='flag-5'>模型</b>

    YOLOv7訓(xùn)練自己的數(shù)據(jù)集包括哪些

    ? YOLOv7訓(xùn)練自己的數(shù)據(jù)集整個(gè)過程主要包括:環(huán)境安裝—制作數(shù)據(jù)集—模型訓(xùn)練模型測試—模型
    的頭像 發(fā)表于 05-29 15:18 ?1011次閱讀
    <b class='flag-5'>YOLOv7</b><b class='flag-5'>訓(xùn)練</b>自己的數(shù)據(jù)集包括哪些

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件部署
    的頭像 發(fā)表于 06-05 11:52 ?942次閱讀
    在AI愛克斯開發(fā)板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv</b>8-seg實(shí)例分割<b class='flag-5'>模型</b>

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件部署
    的頭像 發(fā)表于 06-30 10:43 ?849次閱讀
    在AI愛克斯開發(fā)板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv</b>8-seg實(shí)例分割<b class='flag-5'>模型</b>

    三種主流模型部署框架YOLOv8推理演示

    深度學(xué)習(xí)模型部署OpenVINO、ONNXRUNTIME、TensorRT三個(gè)主流框架,均支持Python與C++的SDK使用。對YOLOv5~Y
    的頭像 發(fā)表于 08-06 11:39 ?2581次閱讀

    詳細(xì)解讀YOLOV7網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

    YOLOV7提出了輔助頭的一個(gè)訓(xùn)練方法,主要目的是通過增加訓(xùn)練成本,提升精度,同時(shí)不影響推理的時(shí)間,因?yàn)檩o助頭只會(huì)出現(xiàn)在訓(xùn)練過程中。
    發(fā)表于 11-27 10:45 ?724次閱讀
    詳細(xì)解讀<b class='flag-5'>YOLOV7</b>網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

    OpenVINO C# API在intel平臺部署YOLOv10目標(biāo)檢測模型

    模型設(shè)計(jì)策略,從效率和精度兩個(gè)角度對YOLOs的各個(gè)組成部分進(jìn)行了全面優(yōu)化,大大降低了計(jì)算開銷,增強(qiáng)了性能。在本文中,我們將結(jié)合OpenVINO C# API使用最新發(fā)布的OpenVINO
    的頭像 發(fā)表于 06-21 09:23 ?910次閱讀
    用<b class='flag-5'>OpenVINO</b> C# API在intel平臺<b class='flag-5'>部署</b><b class='flag-5'>YOLOv</b>10目標(biāo)檢測<b class='flag-5'>模型</b>