OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型(含完整源代碼)

上文介紹了《使用OpenVINO加速YOLOv8分類模型(含完整源代碼)》, 本文接著介紹OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型(含完整源代碼)。

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

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

本文代碼在AI愛(ài)克斯開(kāi)發(fā)板上完成驗(yàn)證

AI愛(ài)克斯開(kāi)發(fā)板

第一步:使用命令:yolo export model=yolov8n.pt format=onnx,完成yolov8n.onnx模型導(dǎo)出。

導(dǎo)出yolov8n.onnx

第二步:使用命令:mo -m yolov8n.onnx --compress_to_fp16,優(yōu)化并導(dǎo)出FP16精度的OpenVINO IR格式模型。

導(dǎo)出FP16精度的OpenVINO IR格式模型

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

Benchmark性能

第四步:使用OpenVINO Python API編寫YOLOv8目標(biāo)檢測(cè)模型推理程序?;贠penVINO Python API的YOLOv8目標(biāo)檢測(cè)模型的范例程序:yolov8_od_ov_sync_infer_demo.py(請(qǐng)讀者克隆本文代碼倉(cāng)),其核心源代碼如下所示:

# 實(shí)例化Core對(duì)象
core = Core() 
# 載入并編譯模型
net = core.compile_model(f'{MODEL_NAME}.xml', device_name="AUTO")
# 獲得模型輸出節(jié)點(diǎn)
output_node = net.outputs[0]  # yolov8n只有一個(gè)輸出節(jié)點(diǎn)
ir = net.create_infer_request()
cap = cv2.VideoCapture("store-aisle-detection.mp4")

while True:
    start = time.time()
    ret, frame = cap.read()
    if not ret:
        break
    # 圖像數(shù)據(jù)前處理
    [height, width, _] = frame.shape
    length = max((height, width))
    image = np.zeros((length, length, 3), np.uint8)
    image[0:height, 0:width] = frame
    scale = length / 640
    blob = cv2.dnn.blobFromImage(image, scalefactor=1 / 255, size=(640, 640), swapRB=True)
    # 執(zhí)行推理計(jì)算
    outputs = ir.infer(blob)[output_node]
    # 推理結(jié)果后處理并顯示處理結(jié)果
    outputs = np.array([cv2.transpose(outputs[0])])
    ... ...
cv2.imshow('YOLOv8 OpenVINO Infer Demo on AIxBoard', frame)

運(yùn)行結(jié)果如下所示:
運(yùn)行結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容