☰
深度学习实战开篇:从「只会 pip install」到「训练出第一个工业级检测模型」
2026/10/31 6:50:51 网站建设 项目流程

一个 AOI 芯片检测的真实项目,带你彻底认识深度学习落地的核心武器


开头:你以为深度学习很难?

你有没有过这种经历?

刷短视频看到别人用 AI 识别猫猫狗狗,觉得很酷。打开 GitHub 找了个 YOLO 教程,照着跑了一遍——识别效果还不错。

然后你想:「我也想在产线上用这个。」

打开项目代码,发现里面有train.py、export.py、compare_onnx.py、assemble_v4_cbroken_safe.py……每个文件都看不懂。

你以为深度学习很难,其实不是难——是没人告诉你从哪开始。

我第一次接触深度学习的时候,也是这样。Python 会写,PyTorch 没碰过,YOLO 只听说过名字。后来接手了一个 AOI(自动光学检测)项目,需要训练芯片焊盘缺陷检测模型。

三个月后,我训出了 99.93% 准确率的极性分类模型,部署到了产线上。

不是因为我有多聪明——而是因为深度学习的「入门门槛」比你想象的低。


一、深度学习到底是什么?

传统图像处理 vs 深度学习

传统图像处理: 输入图像 → 人工设计规则(阈值/边缘/形态学)→ 输出结果 例如:用 OpenCV 写 500 行代码检测芯片缺陷 深度学习: 输入图像 + 标注数据 → 模型自动学习特征 → 输出结果 例如:用 5 行代码训练一个检测模型

核心区别:传统方法靠人写规则,深度学习靠数据学规则。

工业视觉的三大任务

任务输入输出AOI 应用
目标检测(Detection)图像目标位置 + 类别灯组检测、芯片检测
图像分类(Classification)图像类别概率极性分类、缺陷分类
实例分割(Segmentation)图像像素级掩码焊盘分割

二、3 分钟跑通第一个 YOLO 训练

环境要求

# 1. 创建 Conda 环境conda create-n yolo_env python=3.12 conda activate yolo_env# 2. 安装 PyTorch(CUDA 12.8)pip install torch torchvision--index-url https://download.pytorch.org/whl/cu128# 3. 安装 Ultralyticspip install ultralytics

最简训练脚本

# train.py — 5 行代码训练一个分类模型fromultralyticsimportYOLO# 1. 加载预训练模型model=YOLO("yolov12n-cls.pt")# 2. 开始训练results=model.train(data="dataset/",# 分类任务:文件夹结构epochs=30,# 训练 30 轮batch=256,# 批大小imgsz=224,# 输入尺寸)# 3. 产出:runs/classify/train/weights/best.pt

5 行代码,训练完成。产出一个.pt权重文件。


三、AOI 项目:一个工业级深度学习项目的全貌

项目目录树

AOI_train_python/ ├── group_detect/ # 灯组检测(HBB 目标检测) │ ├── train.py # 训练脚本 │ ├── compare_hbb_onnx.py # ONNX 验证 │ └── data.yaml # 数据集配置 ├── chip_detect/ # 芯片检测(OBB 旋转检测) │ ├── train.py │ ├── yolo_obb_export.py │ └── data.yaml ├── polar_classify/ # 极性分类(图像分类) │ ├── yolo_train.py # 统一训练入口 │ ├── yolo_export.py # ONNX 导出 │ └── data/datasets/ # 数据集 ├── chip_defect/ # 缺陷分类(图像分类) │ ├── yolo_train.py │ ├── yolo_export.py │ └── assemble_v*.py # 数据组装脚本 └── deliveries/ # 模型交付归档 ├── defect_cls/ # 缺陷分类交付 ├── polar_cls/ # 极性分类交付 └── joint_e2e/ # 双模型联验

四大模块一览

模块任务类型模型输入尺寸精度速度
group_detectHBB 检测YOLO11s640x640100%23ms
chip_detectOBB 检测YOLO11s-obb320x320100%11ms
polar_classify分类YOLO12n-cls224x22499.93%5ms
chip_defect分类YOLO11n-cls224x22498.77%5ms

业务流水线

整板图像(4000x3000) ↓ group_detect(找灯组,HBB) ↓ rotate_crop(切块,旋转校正) ↓ chip_detect(找芯片,OBB) ↓ polar_classify(极性分类,8 类) ↓ 导出 ONNX ↓ 产线 C++ 系统

四、技术栈全景图

┌─────────────────────────────────────────────────┐ │ 技术栈全景 │ ├─────────────────────────────────────────────────┤ │ 框架:Ultralytics YOLO(v8 / v11 / v12) │ │ 训练:PyTorch 2.7 + CUDA 12.8 │ │ GPU:NVIDIA GeForce RTX 5090 │ │ 导出:ONNX(opset=12, IR=8, FP16) │ │ 部署:C++ ONNX Runtime │ │ 标注:X-AnyLabeling │ │ 环境:Conda(Python 3.12) │ └─────────────────────────────────────────────────┘

为什么选 YOLO?

  • 快:推理速度极快,满足产线实时要求
  • 准:工业场景精度足够
  • 简单:API 设计优雅,5 行代码就能训练
  • 生态:Ultralytics 社区活跃,文档完善

为什么导出 ONNX?

  • .pt是 PyTorch 专属格式,C++ 不认识
  • ONNX 是通用格式,ONNX Runtime / TensorRT / OpenVINO 都支持
  • 产线标准路径:.pt→.onnx→ C++ 推理

五、避坑指南(新手高频错误)

坑1:GPU 版本不匹配

# ❌ 错误:先装 PyTorch 再装 CUDApip install torch# 装的是 CPU 版本!python-c"import torch; print(torch.cuda.is_available())"# False# ✅ 正确:先确认 CUDA 版本,再装对应 PyTorchnvidia-smi# 查看 CUDA 版本pip install torch--index-url https://download.pytorch.org/whl/cu128 python-c"import torch; print(torch.cuda.is_available())"# True

坑2:显存不够

# ❌ 错误:直接上 large 模型model=YOLO("yolov12l-cls.pt")# 显存爆炸# ✅ 从 nano 开始model=YOLO("yolov12n-cls.pt")# 参数最少,显存友好

坑3:数据集格式不对

# ❌ 错误:分类任务用检测格式dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/# 分类任务不需要 labels# ✅ 正确:分类任务用目录结构dataset/ ├── train/ │ ├── class1/ │ ├── class2/ │ └── class3/ └── val/ ├── class1/ ├── class2/ └── class3/

坑4:训练集和验证集有重叠

现象:训练集上 99%,产线上 80%。
原因:同一张图既在训练集又在验证集,模型「背答案」了。
解法:严格划分训练集和验证集,不能有重叠。

坑5:不看训练日志

现象:训练完了不知道效果怎么样。
解法:训练完成后查看results.csv,关注val/box_loss和val/mAP50。


AOI 项目优秀实践

  • 模块化架构:四大模块职责清晰,可独立训练和部署
  • 统一训练入口:yolo_train.py参数化设计,一行命令训练
  • 版本化管理:数据集、权重、ONNX 都有版本号,可追溯

AOI 项目可改进之处

  • 缺少环境搭建文档:没有environment.yml,新人搭建环境靠猜
  • 缺少 CONTRIBUTING 指南:不知道怎么参与贡献
  • 缺少自动化测试:训练脚本没有单元测试

结尾

说回那个「深度学习很难」的故事。

后来我发现,深度学习的入门门槛其实很低。5 行代码训练一个模型,10 行代码导出 ONNX,20 行代码部署到 C++。

不是因为深度学习有多难——而是因为没人告诉你从哪开始。

现在你知道了。从pip install ultralytics开始,训练你的第一个模型。


翻翻你的项目:

  1. 你的项目有深度学习需求吗?还是传统图像处理就够了?
  2. 你有 GPU 吗?没有的话可以用 Google Colab 免费 GPU。
  3. 你有标注数据吗?没有的话可以从 COCO 数据集开始练手。

评论区说说你对深度学习的第一印象,以及你想用它解决什么问题。


觉得有用?
收藏这篇,下次想入门深度学习时翻出来照着做。转发给你团队里那个天天说「深度学习太难了」的同事。


下期预告:

模型训练 80% 的时间在搞数据,你准备好了吗?
从标注到裁图到增强,AOI 项目的数据流水线全拆解。
下一篇,我们聊数据准备——深度学习的「粮食」。


本文是《深度学习基础知识与实战技术栈》系列第一篇。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询