<p id="m2nkj"><option id="m2nkj"><big id="m2nkj"></big></option></p>
    <strong id="m2nkj"></strong>
    <ruby id="m2nkj"></ruby>

    <var id="m2nkj"></var>
  • YOLOv8 檢測(cè)、分割模型的 OpenVINO 部署

    共 6043字,需瀏覽 13分鐘

     ·

    2024-06-21 10:15

    點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂”

    重磅干貨,第一時(shí)間送達(dá)

    為什么需要OpenVINO?

    OpenVINO(Open Visual Inference and Neural network Optimization)是英特爾推出的一種深度學(xué)習(xí)推理工具包,旨在優(yōu)化和加速深度學(xué)習(xí)模型的推理過(guò)程。將模型轉(zhuǎn)換為OpenVINO格式的主要優(yōu)勢(shì)有:

    1. 性能優(yōu)化:OpenVINO能夠針對(duì)英特爾硬件進(jìn)行優(yōu)化,包括 CPU、GPU、VPU 和 FPGA 等,從而實(shí)現(xiàn)對(duì)深度學(xué)習(xí)模型的加速推理,提高推理性能和效率。

    2. 跨平臺(tái)部署:OpenVINO支持跨多種硬件平臺(tái)進(jìn)行部署,包括邊緣設(shè)備和云服務(wù)器,能夠在不同的設(shè)備上實(shí)現(xiàn)高效的推理。

    3. 模型保護(hù):OpenVINO可以將模型轉(zhuǎn)換為 IR(Intermediate Representation)格式,這樣可以保護(hù)模型的知識(shí)產(chǎn)權(quán),避免模型被輕易篡改或復(fù)制。

    4. 部署簡(jiǎn)化:OpenVINO提供了簡(jiǎn)單易用的部署工具和庫(kù),使得在實(shí)際應(yīng)用中部署深度學(xué)習(xí)模型變得更加便捷。


    使用自定義訓(xùn)練模型進(jìn)行圖像檢測(cè)

    from ultralytics import YOLOfrom pathlib import Pathfrom IPython.display import Imagefrom PIL import Image
    IMAGE_PATH = Path("data\coco_bike.jpg")
    # There are three lines of code below, all are correct.# You can use one of them
    # Use Raw String Literal:# det_model = YOLO(r"models\best.pt")
    # Use Forward Slashes# det_model = YOLO("models/best.pt")
    # Use Double Backslashes:det_model = YOLO("models\\best.pt")label_map = det_model.model.names
    res = det_model(IMAGE_PATH)Image.fromarray(res[0].plot()[:, :, ::-1])

    當(dāng)我們?cè)诮K端中運(yùn)行上述代碼時(shí),它會(huì)對(duì)圖像執(zhí)行檢測(cè),如下所示:


    上述代碼的解釋

    此代碼是一個(gè) Python 腳本,它使用“ultralytics”庫(kù)中的 YOLO(You Only Look Once)對(duì)象檢測(cè)模型來(lái)檢測(cè)圖像中的對(duì)象。讓我們分解一下代碼的每個(gè)部分的作用:

    1. 導(dǎo)入庫(kù):

    • 該ultralytics庫(kù)提供了用于處理各種計(jì)算機(jī)視覺(jué)任務(wù)的工具,包括使用 YOLO 進(jìn)行對(duì)象檢測(cè)。

    • 該pathlib庫(kù)用于處理文件和目錄路徑。

    • 該IPython.display庫(kù)用于在 Jupyter 筆記本中顯示圖像。

    • 該P(yáng)IL庫(kù)(Python Imaging Library)用于圖像處理。

    2.定義圖像路徑:

    • 該IMAGE_PATH變量設(shè)置為位于名為“data”的目錄中名為“coco_bike.jpg”的圖像文件的路徑。

    3.加載YOLO模型:

    • 使用 ultralytics 庫(kù)中的類加載 YOLO 模型YOLO。模型文件“best.pt”作為參數(shù)提供。

    4. 獲取標(biāo)簽圖:

    • 該label_map變量被分配了 YOLO 模型能夠檢測(cè)的類名列表。這些類名是從 YOLO 模型中加載的。

    5.檢測(cè)物體:

    • YOLO 模型 ( det_model) 用于檢測(cè)指定圖像中的物體 ( IMAGE_PATH)。

    • 檢測(cè)結(jié)果存儲(chǔ)在res變量中。

    6.顯示結(jié)果:

    • Image.fromarray()使用庫(kù)中的函數(shù)顯示檢測(cè)結(jié)果PIL。該plot()方法用于創(chuàng)建檢測(cè)到的對(duì)象的圖像表示,并使用切片([:, :, ::-1])反轉(zhuǎn)顏色通道以將圖像從 BGR 轉(zhuǎn)換為 RGB 格式。


    分割

    from ultralytics import YOLOfrom pathlib import Pathfrom IPython.display import Imagefrom PIL import Image
    SEG_MODEL_NAME = "yolov8n-seg"
    IMAGE_PATH = Path("data\coco_bike.jpg")seg_model = YOLO("models\yolov8n-seg.pt")res = seg_model(IMAGE_PATH)Image.fromarray(res[0].plot()[:, :, ::-1])

    輸出:


    上述代碼的解釋

    讓我們以簡(jiǎn)單的方式一步一步地解釋一下這段代碼:

    1. 導(dǎo)入庫(kù):

    • 該代碼使用該ultralytics庫(kù)來(lái)處理計(jì)算機(jī)視覺(jué)模型。

    • 該pathlib庫(kù)用于處理文件路徑。

    • 該IPython.display庫(kù)用于在筆記本中顯示圖像。

    • 該P(yáng)IL庫(kù)用于與圖像相關(guān)的任務(wù)。

    2.設(shè)置模型名稱和圖像路徑:

    • 該SEG_MODEL_NAME變量設(shè)置為“yolov8n-seg”分割模型的名稱。該模型旨在理解圖像的結(jié)構(gòu)并將其分割成不同的部分。

    • 該IMAGE_PATH變量設(shè)置為位于“data”目錄中名為“coco_bike.jpg”的圖像文件的路徑。

    3.加載分割模型:

    • YOLO使用ultralytics 庫(kù)中的類加載 YOLO 分割模型。

    • 模型文件“yolov8n-seg.pt”作為參數(shù)提供。此文件包含分割模型的預(yù)訓(xùn)練權(quán)重和配置。

    4.執(zhí)行分割:

    • seg_model使用分割模型( )對(duì)指定的圖像( IMAGE_PATH)進(jìn)行分割。

    • 分割的結(jié)果存儲(chǔ)在res變量中。

    5.顯示分割圖像:

    • 代碼將分割結(jié)果轉(zhuǎn)換為可以顯示的圖像格式。

    • 該plot()方法用于創(chuàng)建分割區(qū)域的圖像表示。

    • 圖像的顏色通道被反轉(zhuǎn)([:, :, ::-1])以使其適合以 RGB 格式顯示。

    6.顯示圖像:

    • Image.fromarray()該庫(kù)中的函數(shù)用于PIL在 IPython 筆記本中顯示分割圖像。

    導(dǎo)出物體檢測(cè)模

    # object detection modelfrom ultralytics import YOLOimport os
    # Use Forward Slashesdet_model = YOLO("models/best.pt")
    det_model_path = "models/best_openvino_model/best.xml"if not os.path.exists(det_model_path): det_model.export(format="openvino", dynamic=True, half=False)

    輸出:

    上述代碼的解釋:

    1. 導(dǎo)入庫(kù):

    • 代碼YOLO從ultralytics庫(kù)中導(dǎo)入類以與對(duì)象檢測(cè)模型協(xié)同工作。

    • 該os模塊被導(dǎo)入是為了與操作系統(tǒng)協(xié)同工作。

    2.加載對(duì)象檢測(cè)模型:

    • YOLO使用庫(kù)中的類加載對(duì)象檢測(cè)模型ultralytics。

    • 模型文件“best.pt”作為參數(shù)提供。該模型用于檢測(cè)圖像中的對(duì)象。

    3.定義 OpenVINO 的導(dǎo)出路徑:

    • 該變量det_model_path設(shè)置為對(duì)象檢測(cè)模型的 OpenVINO 模型文件“best.xml”的路徑。

    4.導(dǎo)出為 OpenVINO 格式:

    • 代碼檢查 OpenVINO 模型文件是否不存在指定路徑。

    • 如果文件不存在,則使用該export方法將對(duì)象檢測(cè)模型導(dǎo)出為 OpenVINO 格式:

      • format="openvino"指定導(dǎo)出格式應(yīng)為OpenVINO。

      • dynamic=True表示導(dǎo)出的模型應(yīng)該支持動(dòng)態(tài)輸入形狀。

      • half=False指定導(dǎo)出的模型不應(yīng)使用半精度浮點(diǎn)數(shù)。


    導(dǎo)出分割模型

    # Export segmentation modelfrom ultralytics import YOLOimport os
    # Use Forward Slashesseg_model = YOLO("models/yolov8n-seg.pt")
    seg_model_path = "models/yolov8n-seg_openvino_model/yolov8n-seg.xml"if not os.path.exists(seg_model_path): seg_model.export(format="openvino", dynamic=True, half=False)

    輸出:

    上述代碼的解釋:

    1. 導(dǎo)入庫(kù):

    • 代碼YOLO從ultralytics庫(kù)中導(dǎo)入類以與分割模型協(xié)同工作。

    • 該os模塊被導(dǎo)入用于與操作系統(tǒng)交互。

    2.加載分割模型:

    • YOLO使用庫(kù)中的類來(lái)加載分割模型ultralytics。

    • 模型文件“yolov8n-seg.pt”作為參數(shù)提供。該模型專為圖像分割而設(shè)計(jì)。

    3.定義 OpenVINO 的導(dǎo)出路徑:

    • 該變量seg_model_path設(shè)置為OpenVINO模型文件“yolov8n-seg.xml”的保存路徑。

    4.導(dǎo)出為 OpenVINO 格式:

    • 代碼檢查 OpenVINO 模型文件是否不存在指定路徑。

    • 如果該文件不存在,則使用該export方法將分割模型導(dǎo)出為 OpenVINO 格式:

      • format="openvino"指定導(dǎo)出格式應(yīng)為OpenVINO。

      • dynamic=True表示導(dǎo)出的模型應(yīng)該支持動(dòng)態(tài)輸入形狀。

      • half=False指定導(dǎo)出的模型不應(yīng)使用半精度浮點(diǎn)數(shù)。

    文中完整的項(xiàng)目地址和模型可以查看:https://github.com/mushfiq1998/export-trained-yolov8-to-openvino-with-python

    下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
    在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

    下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
    小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

    下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
    小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

    交流群


    歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


    瀏覽 70
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    <p id="m2nkj"><option id="m2nkj"><big id="m2nkj"></big></option></p>
    <strong id="m2nkj"></strong>
    <ruby id="m2nkj"></ruby>

    <var id="m2nkj"></var>
  • 欧美成人精品导航 | 荫蒂高潮大荫蒂毛萌萌 | 丝袜足交一区二区 | 极品漂亮人妻找猛男3p | 日本九九热 | 亚洲无码不卡手机免费观看 | 日韩 欧美 第一页 | 天天干天天日天天 | 韩国香蕉成人网 | 日本视频欧美 |