基础内容
Yolo 作用
要在一张照片里找出所有的特定物体,比如所有的猫、所有的狗和所有的人。
传统的法: 可能会非常仔细地把照片分成很多很多的小块,然后一块一块地检查:这小块像不像猫的耳朵?这小块像不像狗的鼻子?这小块像不像人的眼睛? 你需要检查很多很多次,才能把所有的猫、狗和人都找出来,这会比较慢。
YOLO 不会把照片切成无数小块慢慢检查,而是只看一眼整张照片,就能同时告诉你:
这里有一只猫!(并且会用一个框框把它圈起来)那里有一只狗!(也会用一个框框把它圈起来)那边站着一个人!(同样会用一个框框把他/她圈起来)
YOLO 非常适合需要快速识别物体的场景,比如自动驾驶汽车识别道路上的车辆和行人,或者监控摄像头快速发现异常情况等等。因为它You Only Look Once(你只看一次)就能完成任务,所以速度非常快。
我们将数据集输入交给yolo并训练出相应模型.pt并交给yolo去识别
OpenVINO 作用
OpenVINO 主要用于加速在使用模型进行推理和识别,而不是模型的训练。 它的核心作用是在部署阶段优化模型,使其在各种英特尔硬件上运行得更快。
Pytorch 作用
PyTorch 是一个用于构建和训练机器学习模型的库或框架。 它是你用来做机器学习的工具
- 面粉、糖、鸡蛋、牛奶 等各种食材(对应着机器学习中的数据、模型参数、神经网络层等)。
- 搅拌器、烤箱、模具 等工具(对应着机器学习中的各种函数、算法、优化器等)。
- 使用这些原材料和工具,按照一定的配方(你的机器学习模型代码),最终烤制出美味的蛋糕(训练好的模型)。
简单来说,PyTorch 是一个用于构建和训练机器学习模型的厨房和食材库。
主要流程
Windows
假设我们现在有一个 部署了yolo12和openvino的环境A 和 部署了labelimg的环境B。那么本文的主要流程如下:
使用labelimg制作并获取自己的数据集
使用 PyCharm 运行 YOLOv12 将获得的数据集输入到YOLOv12中 训练并获得 .pt 文件
然后运行 .pt 文件转化成 ONNX: 这是将 PyTorch 模型转换为 OpenVINO 可识别的中间格式的常用方法。
将 .onnx 转化成 .xml 或者 .bin 文件:这是使用 OpenVINO Model Optimizer 将 ONNX 模型转换为 OpenVINO IR 格式的关键步骤。
Ubuntu 22.04:
- 安装 C++ 版本的 OpenVINO 和 OpenCV:这是在 Ubuntu 上使用 OpenVINO C++ API 进行推理的必要准备。
- 使用 OpenCV 读取图片:OpenCV 是一个常用的图像处理库,可以方便地读取图像数据。
- 使用获取的 .xml 或者 .bin 文件在 OpenVINO 上使用来进行识别:将使用 OpenVINO Inference Engine 加载 .xml 和 .bin 文件,并将 OpenCV 读取的图像数据作为输入进行推理,从而实现物体识别。
