当前位置: 首页 > news >正文

ONNX 是什么?

ONNX 是什么?

一、ONNX 是什么?

ONNX

全称:

Open Neural Network Exchange
开放神经网络交换格式

简单说:

👉 一种统一的 AI 模型文件格式

类似:

  • .jpg 是图片格式

  • .mp4 是视频格式

  • .docx 是文档格式

  • .onnx 是神经网络模型格式


二、为什么要有 ONNX?

问题是:

不同框架训练的模型不能互通。

比如:

  • PyTorch → 生成 .pt

  • TensorFlow → 生成 .pb

这些格式互相不认。

ONNX 的作用:

👉 作为“中间标准格式”
👉 让模型可以跨框架运行


三、YOLOv5 导出 ONNX 是干什么?

你现在训练或下载的是:

 
yolov5s.pt
 

这是 PyTorch 专用格式。

但工厂现场一般不会运行 Python。

而是:

  • C++

  • Windows程序

  • 嵌入式系统

  • 工控机

所以要导出成:

 
yolov5s.onnx
 

这样就可以用 C++ 推理。


四、ONNX 可以用什么运行?

常见推理引擎:

1️⃣ ONNX Runtime

微软出的跨平台推理引擎

支持:

  • C++

  • C#

  • Python

  • CPU / GPU


2️⃣ TensorRT

NVIDIA 的高性能 GPU 推理库

适合:

  • RTX显卡

  • Jetson

  • 工业视觉高帧率


五、导出 ONNX 很简单

在 yolov5 目录执行:

 
python export.py --weights yolov5s.pt --include onnx
 

成功后会生成:

 
yolov5s.onnx
 

六、为什么工业上必须用 ONNX?

因为:

直接用 Python用 ONNX
运行慢 更快
部署麻烦 容易集成
依赖多 只需要推理库
不稳定 稳定

工业项目:

✔ 都是 C++
✔ 不会用 Python detect.py


七、举个工业场景

你未来可能做:

  • AOI 缺陷检测

  • PCB 焊点检测

  • 产品外观检测

流程会是:

1️⃣ 训练 YOLOv5
2️⃣ 导出 ONNX
3️⃣ C++ 加载 ONNX
4️⃣ 实时摄像头推理
5️⃣ 输出 OK / NG

这才是工业级架构。


八、你现在的阶段

你已经:

✔ 会运行 YOLOv5
✔ 会写 Python 调用

下一步就是:

👉 学会 ONNX
👉 学会 C++ 推理