在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

在AI愛(ài)克斯開(kāi)發(fā)板上用OpenVINO?加速YOLOv8分類模型

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

文章作者:

英特爾物聯(lián)網(wǎng)行業(yè)創(chuàng)新大使 楊雪鋒

本系列文章將在AI 愛(ài)克斯開(kāi)發(fā)板上使用 OpenVINO開(kāi)發(fā)套件依次部署并測(cè)評(píng) YOLOv8 的分類模型、目標(biāo)檢測(cè)模型、實(shí)例分割模型和人體姿態(tài)估計(jì)模型。

接下來(lái),本文將介紹在AI 愛(ài)克斯開(kāi)發(fā)板上搭建 OpenVINO 推理程序的開(kāi)發(fā)環(huán)境、導(dǎo)出并優(yōu)化 YOLOv8 分類模型、完成 YOLOv8 分類模型的推理程序,最后給出實(shí)測(cè)性能。

請(qǐng)先下載本文的代碼倉(cāng):

git clone https://gitee.com/ppov-nuc/yolov8_openvino.git

1YOLOv8 簡(jiǎn)介

YOLOv8 是 Ultralytics 公司基于 YOLO 框架,發(fā)布的一款面向物體檢測(cè)與跟蹤、實(shí)例分割、圖像分類和姿態(tài)估計(jì)任務(wù)的 SOTA 模型工具套件。

只需要幾行 Python 代碼,或者一行命令,即可完成在自己的數(shù)據(jù)集上從頭訓(xùn)練 (Training a model from scratch) 或者微調(diào)(Fine-tune) YOLOv8 模型。

d1c41c2e-e6b2-11ed-ab56-dac502259ad0.png

用 Python 代碼訓(xùn)練 YOLOv8 模型

d1d3e0dc-e6b2-11ed-ab56-dac502259ad0.png

用命令行訓(xùn)練 YOLOv8 模型

導(dǎo)出訓(xùn)練好的 YOLOv8 模型,并用 OpenVINO 部署在英特爾硬件平臺(tái)上,也非常方便,下面依次介紹。

2準(zhǔn)備 YOLOv8 的

OpenVINO 推理程序開(kāi)發(fā)環(huán)境

請(qǐng)基于本文范例代碼倉(cāng)提供的 requirements.txt 文件,通過(guò)一行命令完成開(kāi)發(fā)環(huán)境安裝。

# Usage: pip install -r requirements.txt
ultralytics
# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.21.6
opencv-python>=4.6.0
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch==1.13.1
torchvision==0.14.1
tqdm>=4.64.0
# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0
# Export --------------------------------------
onnx>=1.12.0 # ONNX export
onnxruntime
openvino-dev==2023.0.0.dev20230407 # modify the openvino-dev version to the latest one
# Extras --------------------------------------
psutil # system utilization
thop>=0.1.1 # FLOPs computation

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

一行命令完成開(kāi)發(fā)環(huán)境安裝。

pip install -r requirements.txt

3導(dǎo)出 YOLOv8 OpenVINOIR 模型

YOLOv8 的分類模型有5種,在 ImageNet 數(shù)據(jù)集上的精度如下表所示。

d1e398b0-e6b2-11ed-ab56-dac502259ad0.png

首先使用命令:

yolo classify export model=yolov8n-cls.pt format=onnx imgsz=224

完成 yolov8n-cls.onnx 模型導(dǎo)出,如下圖所示。

d1ff0bcc-e6b2-11ed-ab56-dac502259ad0.png

然后使用命令:

mo -m yolov8n-cls.onnx --compress_to_fp16

優(yōu)化并導(dǎo)出 FP16 精度的 OpenVINO IR 格式模型,如下圖所示。

d21687b6-e6b2-11ed-ab56-dac502259ad0.png

4用 benchmark_app 測(cè)試 YOLOv8 分類模型的推理計(jì)算性能

benchmark_app 是 OpenVINO 工具套件自帶的 AI 模型推理計(jì)算性能測(cè)試工具,可以指定在不同的計(jì)算設(shè)備上,在同步或異步模式下,測(cè)試出不帶前后處理的純AI 模型推理計(jì)算性能。

使用命令:benchmark_app -m yolov8n-cls.xml -d GPU ,獲得 yolov8n-cls.xml 模型在 AI 愛(ài)克斯開(kāi)發(fā)板的集成顯卡上的異步推理計(jì)算性能,如下圖所示。

d231fd2a-e6b2-11ed-ab56-dac502259ad0.png

5使用 OpenVINO Python API 編寫 YOLOv8 分類模型推理程序

基于 OpenVINO Python API 的 YOLOv8 分類模型范例程序 yolov8_cls_ov_sync_infer.py 的核心源代碼,如下所示:

# 實(shí)例化Core對(duì)象
core = Core() 
# 載入并編譯模型
net = core.compile_model(f'{MODEL_NAME}-cls.xml', device_name="GPU")
# 獲得模型輸入輸出節(jié)點(diǎn)
input_node = net.inputs[0]  # yolov8n-cls只有一個(gè)輸入節(jié)點(diǎn)
N, C, H, W = input_node.shape # 獲得輸入張量的形狀
output_node = net.outputs[0] # yolov8n-cls只有一個(gè)輸出節(jié)點(diǎn)
ir = net.create_infer_request()
##########################################
#  ---根據(jù)模型定義預(yù)處理和后處理函數(shù)-------
##########################################
# 定義預(yù)處理函數(shù)
def preprocess(image, new_shape=(W,H)):
  # Preprocess image data from OpenCV
  image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # BGR->RGB
  resized = cv2.resize(image, new_shape)      # Resize Image
  norm = (resized - IMAGENET_MEAN) / IMAGENET_STD # Normalization
  blob = np.transpose(norm, (2, 0, 1))       # HWC->CHW
  blob = np.expand_dims(blob, 0)          # CHW->NCHW
  return blob
# 定義后處理函數(shù)
def postprocess(outs):
  score = np.max(outs)
  id = np.argmax(outs)
  return score, id, imagenet_labels[id]
##########################################
#  ----- AI同步推理計(jì)算 ------------
##########################################
# 采集圖像
image = cv2.imread("bus.jpg")
# 數(shù)據(jù)預(yù)處理
blob = preprocess(image)
# 執(zhí)行推理計(jì)算并獲得結(jié)果
outs = ir.infer(blob)[output_node]
# 對(duì)推理結(jié)果進(jìn)行后處理
score, id, label = postprocess(outs)
# 顯示處理結(jié)果
msg = f"YOLOv5s-cls Result:{label}, Score:{score:4.2f}, FPS:{FPS:4.2f}"
cv2.putText(image, msg, (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (100, 100, 200), 2)
cv2.imshow("YOLOv5s-cls OpenVINO Sync Infer Demo",image)
cv2.waitKey()
cv2.destroyAllWindows()

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

運(yùn)行結(jié)果如下圖所示:

d2436eb6-e6b2-11ed-ab56-dac502259ad0.png

6

使用 OpenVINO 預(yù)處理 API 提升推理計(jì)算性能

參考《將數(shù)據(jù)預(yù)處理嵌入 AI 模型的常見(jiàn)技巧》,使用 OpenVINO 預(yù)處理 API ,將數(shù)據(jù)預(yù)處理嵌入 YOLOv8 分類模型,可以進(jìn)一步提高推理設(shè)備(例如,英特爾集成顯卡/獨(dú)立顯卡)的利用率,進(jìn)而提高包含前后處理的端到端的AI 推理計(jì)算性能。

使用 OpenVINO預(yù)處理 API 將預(yù)處理嵌入模型的范例程序 export_yolov8_cls_ppp.py 的核心代碼,如下所示:

# ======== Step 0: read original model =========
core = Core()
model = core.read_model(f"{MODEL_NAME}-cls.xml")


# Step 1: Add Preprocessing steps to a model ==
ppp = PrePostProcessor(model) 
# Declare User’s Data Format
ppp.input().tensor() 
  .set_element_type(Type.u8) 
  .set_spatial_dynamic_shape() 
  .set_layout(Layout('NHWC')) 
  .set_color_format(ColorFormat.BGR)
# Declaring Model Layout
ppp.input().model().set_layout(Layout('NCHW'))
# Explicit preprocessing steps. Layout conversion will be done automatically as last step
ppp.input().preprocess() 
  .convert_element_type()   
  .convert_color(ColorFormat.RGB) 
  .resize(ResizeAlgorithm.RESIZE_LINEAR) 
  .mean([123.675, 116.28, 103.53]) 
  .scale([58.624, 57.12, 57.375])
# Integrate preprocessing Steps into a Model
print(f'Dump preprocessor: {ppp}')
model_with_ppp = ppp.build()
# ======== Step 2: Save the model with preprocessor================
serialize(model_with_ppp, f'{MODEL_NAME}-cls_ppp.xml', f'{MODEL_NAME}-cls_ppp.bin')

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

運(yùn)行結(jié)果,如下圖所示:

d2621370-e6b2-11ed-ab56-dac502259ad0.png

基于內(nèi)嵌預(yù)處理模型的推理程序

yolov8_cls_ppp_sync_infer.py 的核心代碼,如下所示

##########################################
#  ----- AI同步推理計(jì)算 ------------
##########################################
# 采集圖像
image = cv2.imread("bus.jpg")
blob = np.expand_dims(image,0)
# 執(zhí)行推理計(jì)算并獲得結(jié)果
outs = ir.infer(blob)[output_node]
# 對(duì)推理結(jié)果進(jìn)行后處理
score, id, label = postprocess(outs)
##########################################
#  ----- 統(tǒng)計(jì)帶前后預(yù)處理的AI推理性能------
##########################################
start = time.time()
N = 1000
for i in range(N):
  blob = np.expand_dims(image,0)
  outs = ir.infer(blob)[output_node]
  score, id, label = postprocess(outs)
FPS = N / (time.time() - start)

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

運(yùn)行結(jié)果,如下所示:

d2823254-e6b2-11ed-ab56-dac502259ad0.png

結(jié)論

AI 愛(ài)克斯開(kāi)發(fā)板借助N5105處理器的集成顯卡(24個(gè)執(zhí)行單元)和 OpenVINO ,可以在 YOLOv8 的分類模型上獲得相當(dāng)不錯(cuò)的性能。

通過(guò)異步處理和AsyncInferQueue ,還能進(jìn)一步提升計(jì)算設(shè)備的利用率,提高 AI 推理程序的吞吐量。下一篇將繼續(xù)介紹在《在 AI 愛(ài)克斯開(kāi)發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    10169

    瀏覽量

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

    關(guān)注

    87

    文章

    34294

    瀏覽量

    275485
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5538

    瀏覽量

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

    關(guān)注

    1

    文章

    3488

    瀏覽量

    50021
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86226

原文標(biāo)題:在AI愛(ài)克斯開(kāi)發(fā)板上用OpenVINO?加速YOLOv8分類模型 | 開(kāi)發(fā)者實(shí)戰(zhàn)

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

收藏 人收藏

    評(píng)論

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

    【愛(ài)芯派 Pro 開(kāi)發(fā)板試用體驗(yàn)】yolov8模型轉(zhuǎn)換

    通過(guò)開(kāi)發(fā)板預(yù)制的ax_run_model 工具,測(cè)試模型速度和精度。 示例都是yolov5的,沒(méi)有yolov8
    發(fā)表于 11-20 12:19

    YOLOv8自定義數(shù)據(jù)集訓(xùn)練到模型部署推理簡(jiǎn)析

    如果你只是想使用而不是開(kāi)發(fā),強(qiáng)烈推薦通過(guò)pip安裝方式獲取YOLOv8包!YOLOv8安裝命令行
    的頭像 發(fā)表于 03-24 09:27 ?5031次閱讀

    AI愛(ài)克斯開(kāi)發(fā)板OpenVINO?加速YOLOv8目標(biāo)檢測(cè)模型

    AI 愛(ài)克斯開(kāi)發(fā)板 OpenVINO
    的頭像 發(fā)表于 05-12 09:08 ?1667次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>愛(ài)克斯</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b><b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>?<b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

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

    benchmark_app是OpenVINOTM工具套件自帶的AI模型推理計(jì)算性能測(cè)試工具,可以指定在不同的計(jì)算設(shè)備同步或異步模式下,測(cè)試出不帶前后處理的純
    的頭像 發(fā)表于 05-24 11:19 ?903次閱讀
    ?<b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>愛(ài)克斯</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b><b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b><b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>-seg實(shí)例分割<b class='flag-5'>模型</b>

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

    AI愛(ài)克斯開(kāi)發(fā)板OpenVINO
    的頭像 發(fā)表于 05-26 11:03 ?1671次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>愛(ài)克斯</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b>使用<b class='flag-5'>OpenVINO</b><b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

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

    AI 愛(ài)克斯開(kāi)發(fā)板 OpenVINO
    的頭像 發(fā)表于 06-05 11:52 ?1383次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>愛(ài)克斯</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b><b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>?<b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>-seg實(shí)例分割<b class='flag-5'>模型</b>

    教你如何用兩行代碼搞定YOLOv8各種模型推理

    大家好,YOLOv8 框架本身提供的API函數(shù)是可以兩行代碼實(shí)現(xiàn) YOLOv8 模型推理,這次我把這段代碼封裝成了一個(gè),只有40行代碼左右,可以同時(shí)支持
    的頭像 發(fā)表于 06-18 11:50 ?3647次閱讀
    教你如何用兩行代碼搞定<b class='flag-5'>YOLOv8</b>各種<b class='flag-5'>模型</b>推理

    OpenVINO? C++ API編寫YOLOv8-Seg實(shí)例分割模型推理程序

    本文章將介紹使用 OpenVINO 2023.0 C++ API 開(kāi)發(fā)YOLOv8-Seg 實(shí)例分割(Instance Segmentation)模型
    的頭像 發(fā)表于 06-25 16:09 ?2113次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>? C++ API編寫<b class='flag-5'>YOLOv8</b>-Seg實(shí)例分割<b class='flag-5'>模型</b>推理程序

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

    AI 愛(ài)克斯開(kāi)發(fā)板 OpenVINO
    的頭像 發(fā)表于 06-30 10:43 ?1644次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>愛(ài)克斯</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b><b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>?<b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>-seg實(shí)例分割<b class='flag-5'>模型</b>

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

    部署。這里以YOLOv8為例,演示了YOLOv8對(duì)象檢測(cè)模型OpenVINO、ONNXRUNTIME、TensorRT三個(gè)主流框架上C++
    的頭像 發(fā)表于 08-06 11:39 ?3090次閱讀

    自己的數(shù)據(jù)集訓(xùn)練YOLOv8實(shí)例分割模型

    YOLOv8 于 2023 年 1 月 10 日推出。截至目前,這是計(jì)算機(jī)視覺(jué)領(lǐng)域分類、檢測(cè)和分割任務(wù)的最先進(jìn)模型。該模型準(zhǔn)確性和執(zhí)行時(shí)間
    的頭像 發(fā)表于 11-10 16:44 ?5634次閱讀
    <b class='flag-5'>用</b>自己的數(shù)據(jù)集訓(xùn)練<b class='flag-5'>YOLOv8</b>實(shí)例分割<b class='flag-5'>模型</b>

    基于YOLOv8的自定義醫(yī)學(xué)圖像分割

    YOLOv8是一種令人驚嘆的分割模型;它易于訓(xùn)練、測(cè)試和部署。本教程中,我們將學(xué)習(xí)如何在自定義數(shù)據(jù)集使用YOLOv8。但在此之前,我想告
    的頭像 發(fā)表于 12-20 10:51 ?1179次閱讀
    基于<b class='flag-5'>YOLOv8</b>的自定義醫(yī)學(xué)圖像分割

    基于哪吒開(kāi)發(fā)板部署YOLOv8模型

    開(kāi)發(fā)板的推理性能,同時(shí)測(cè)試所推出的 OpenVINO C# API (https://github.com/guojin-yan/OpenVINO-CSharp-API) 項(xiàng)目能否應(yīng)用到該開(kāi)
    的頭像 發(fā)表于 11-15 14:13 ?980次閱讀
    基于哪吒<b class='flag-5'>開(kāi)發(fā)板</b>部署<b class='flag-5'>YOLOv8</b><b class='flag-5'>模型</b>

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

    本章展示yolov8模型EASY EAI Orin nano的部署過(guò)程。
    的頭像 發(fā)表于 04-02 16:04 ?345次閱讀
    RK3576 <b class='flag-5'>yolov8</b>訓(xùn)練部署教程

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

    YOLOv8 是 ultralytics 公司 2023 年 1月 10 號(hào)開(kāi)源的基于YOLOV5進(jìn)行更新的 下一個(gè)重大更新版本,目前支持圖像分類、物體檢測(cè)和實(shí)例分割任務(wù),鑒于
    的頭像 發(fā)表于 04-16 14:53 ?336次閱讀
    RV1126 <b class='flag-5'>yolov8</b>訓(xùn)練部署教程
    主站蜘蛛池模板: 日本黄色大片在线观看 | 日处女穴 | 亚洲天堂成人在线 | 亚洲伊人成综合成人网 | 色 在线播放| 午夜福利国产一级毛片 | tube69xxxxhd日本 | 四虎必出精品亚洲高清 | 亚洲乱码卡一卡二卡三永久 | 欧美日韩在线一本卡 | 大黄一级片 | 米奇777色狠狠8888影视 | 久久艹影院 | 在线免费视频观看 | 欧美成人观看免费全部完小说 | 国产精品久久久久久久午夜片 | 天天做天天摸 | 人人爽天天碰天天躁夜夜躁 | 生活片一级性 | 午夜视频免费看 | 国产三级日产三级日本三级 | 日本精高清区一 | 色www | 美女黄色一级片 | 日本大片免费一级 | 国产高清免费在线观看 | 国产在线观看午夜不卡 | 色天天综合| 在线视频图片小说 | 最好免费高清视频观看韩国 | 四虎永久免费最新在线 | 丁香色婷婷 | 高清不卡毛片免费观看 | 久久午夜影院 | 日韩一级在线播放免费观看 | 欧美成人 一区二区三区 | 免费二级c片观看 | 国内精品久久久久影院男同志 | 岛国三级在线看 | 2021久久天天躁狠狠躁夜夜 | 伊人蕉久 |