点击上方
“
小白学视觉
”,选择加"
星标
"或“
置顶
”
重磅干货,第一时间送达

为什么需要OpenVINO?
OpenVINO(Open Visual Inference and Neural network Optimization)是英特尔推出的一种深度学习推理工具包,旨在优化和加速深度学习模型的推理过程。将模型转换为OpenVINO格式的主要优势有:
-
性能优化:OpenVINO能够针对英特尔硬件进行优化,包括 CPU、GPU、VPU 和 FPGA 等,从而实现对深度学习模型的加速推理,提高推理性能和效率。
-
跨平台部署:OpenVINO支持跨多种硬件平台进行部署,包括边缘设备和云服务器,能够在不同的设备上实现高效的推理。
-
模型保护:OpenVINO可以将模型转换为 IR(Intermediate Representation)格式,这样可以保护模型的知识产权,避免模型被轻易篡改或复制。
-
部署简化:OpenVINO提供了简单易用的部署工具和库,使得在实际应用中部署深度学习模型变得更加便捷。
使用自定义训练模型进行图像检测
from ultralytics import YOLO
from pathlib import Path
from IPython.display import Image
from PIL import Image
IMAGE_PATH = Path("data\coco_bike.jpg")
det_model = YOLO("models\\best.pt")
label_map = det_model.model.names
res = det_model(IMAGE_PATH)
Image.fromarray(res[0].plot()[:, :, ::-1])
当我们在终端中运行上述代码时,它会对图像执行检测,如下所示:
上述代码的解释
此代码是一个
Python 脚本,它使用“ultralytics”库中的 YOLO(You Only Look Once)对象检测模型来检测图像中的对象。让我们分解一下代码的每个部分的作用:
-
导入库:
-
该ultralytics库提供了用于处理各种计算机视觉任务的工具,包括使用 YOLO 进行对象检测。
-
该pathlib库用于处理文件和目录路径。
-
该IPython.display库用于在 Jupyter 笔记本中显示图像。
-
该PIL库(Python Imaging Library)用于图像处理。
2.定义图像路径:
3.加载YOLO模型:
4. 获取标签图:
5.检测物体:
6.显示结果:
分割
from ultralytics import YOLO
from pathlib import Path
from IPython.display import Image
from 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])
输出:
上述代码的解释
让我们以简单的方式一步一步地解释一下这段代码:
-
导入库:
2.设置模型名称和图像路径:
3.加载分割模型:
4.执行分割:
5.显示分割图像:
6.显示图像:
导出物体检测模
型
from ultralytics import YOLO
import os
det_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)
输出:
上述代码的解释:
-
导入库:
2.加载对象检测模型:
3.定义 OpenVINO 的导出路径:
4.导出为 OpenVINO 格式:
导出分割模型
from ultralytics import YOLO
import os
seg_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)
输出:
上述代码的解释:
-
导入库:
2.加载分割模型:
3.定义 OpenVINO 的导出路径: