Files
mingxi_platform/docs/pcb缺陷检测初步方案.md
ilaandClaude Sonnet 4.6 37a4c13799 chore: 初始化四个子项目骨架目录结构
- 新增 mingxi-capture(PyQt5桌面程序)目录骨架
- 新增 mingxi-vision(FastAPI推理服务)目录骨架
- 新增 mingxi-backend(Django业务后端)目录骨架
- 新增 mingxi-frontend(Vue3管理后台)目录骨架
- 迁入 docs/(技术设计文档和PCB调研资料)
- 补充 .gitignore(模型文件、Node.js依赖、运行时数据库)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 17:21:17 +08:00

9.1 KiB
Raw Permalink Blame History

PCB缺陷检测初步方案(单机开发版)

硬件约束修正:仅有一台联想 Y7000P 笔记本(Intel i7-14650HX 16核 @2.20GHz,16GB RAM,预计 RTX 4060 Laptop 8GB 独显)。 本方案在 v1.1 和"pcb缺陷识别开源项目.md"基础上,针对"无 Jetson、无独立服务器、仅一台笔记本"做完整重构。 对齐 CLAUDE.md:Python3.8 + YOLOv8 + Vue3.0 + Django4.0。 起始日期:2026-05-07


1. 硬件盘点与能力边界

组件 规格 训练能力 推理能力
CPU i7-14650HX 16C/24T @2.20GHz,睿频5.2GHz 数据预处理 / 标注 / 辅助 OpenVINO CPU推理可行
GPU RTX 4060 Laptop 8GB GDDR6(Y7000P 2024标配,需核实) YOLOv8n/s 可训练,batch≤16 FP16 实时推理 60+ FPS
RAM 16GB DDR5 瓶颈,大数据集需分批加载 推理无压力
存储 1TB NVMe(标配) 够用,注意清理缓存 —
散热 笔记本主动散热 持续满载训练时需外接散热器 推理负载低

结论:这台笔记本可以完成训练 + Demo推理 + Web开发全流程,但 Jetson / TensorRT / DeepStream 路线需要降级替代。

首要动作:确认 GPU 型号

开机执行 nvidia-smi(或设备管理器)确认:

  • 若为 RTX 4060 8GB:方案按本文执行
  • 若为 RTX 4050 6GB:把 imgsz 从 640 降到 416,batch 从 16 降到 8
  • 若为核显/无独显:只能用 CPU 训练,YOLOv8n 一轮要数小时,建议立即借/租算力

2. 方案修正总览(对比原方案)

环节 原方案 修正后(单笔记本) 修正理由
训练硬件 Jetson Orin Nano Y7000P RTX 4060 无 Jetson
训练模型 YOLOv8n/s 随意 固定 YOLOv8n(s 作备选) 8GB 显存 + 16GB 内存限制
边缘部署演示 Jetson + DeepStream + TensorRT 笔记本 + USB工业相机 + ONNX Runtime GPU 节省硬件预算,聚焦算法
Demo 形态 边缘盒子现场演示 笔记本直接演示 + 预录视频兜底 现场网络/电源风险可控
实时推理 TensorRT FP16 ONNX Runtime DirectML 或 CUDA EP Windows 原生支持,无需交叉编译
数据标注 标注团队 本机 Label Studio / labelme 5人团队自标注即可
产品部署 云服务器 本机 Docker + ngrok 内网穿透 临时演示 省服务器钱
生产边缘盒 Jetson 自购 MVP 阶段客户采购 / 租用 获奖后再投硬件

3. GitHub 项目选型(按硬件修正)

主选:aaravomega/pcb-defect-detection

https://github.com/aaravomega/pcb-defect-detection

  • YOLOv8 + Ultralytics 标准流程,与 Python3.8 技术栈一致
  • Windows 原生支持,不需 Linux / Docker
  • fork 后直接改 data.yaml 和 train.py

数据:HRIPCB(主)+ DeepPCB(备)

演示方案:放弃 Deepstream,改用 ONNX Runtime + OpenCV

  • 原因:NVIDIA DeepStream 主要面向 Jetson 和 Tesla 服务器卡,笔记本 4060 用起来收益小、坑多
  • 替代:训练后的 best.pt → 导出 ONNX → ONNX Runtime GPU (CUDA Execution Provider) → OpenCV 读 USB 相机 → Vue 看板展示
  • 备选:OpenVINO(Intel CPU 推理,i7-14650HX 上 YOLOv8n 可跑 20-30 FPS,作为 GPU 挂掉时的兜底)

挠性板扩展:Flexible-PCB-Defect-Detection

https://github.com/Pranshuk29/Flexible-PCB-Defect-Detection

  • 仅在 MVP 阶段、成功对接梅州智科后启用
  • 不在 Demo 阶段占用训练资源

4. 训练配置(针对 8GB 显存 + 16GB 内存)

4.1 环境清单(Windows 11 + WSL2 可选)

Python 3.8.x
PyTorch 2.0.1 + CUDA 11.8(Y7000P 驱动原生支持)
Ultralytics 8.x
onnxruntime-gpu 1.16+
opencv-python 4.8+
label-studio 或 labelme

不建议用 WSL2 训练:Windows 下 PyTorch CUDA 性能已够,WSL 多一层开销且调试麻烦。

4.2 训练超参数(起步版)

# train.yaml(Y7000P 实测可行)
model: yolov8n.pt
data: hripcb.yaml
imgsz: 640
batch: 16          # 8GB 显存极限,若 OOM 降到 8
epochs: 100
device: 0          # 单 GPU
workers: 4         # 16GB 内存下别超 4,否则卡死
amp: True          # 混合精度必开,省显存
cache: ram         # 数据集 <2GB 时开 RAM 缓存加速
patience: 20       # 早停,省电省时间

4.3 训练时间预估(HRIPCB 1386 张)

模型 单轮时间 100轮总时 显存占用
YOLOv8n ~45s 约 1.5 小时 ~4GB
YOLOv8s ~80s 约 2.5 小时 ~6GB
YOLOv8m OOM 风险 不推荐 >8GB

建议:先 n 后 s,n 版本达到 mAP@0.5 > 0.9 即可上路演,s 作为备选。

4.4 散热与稳定性

  • 训练时外接散热底座,温度控制在 85℃ 以内
  • 关闭 Windows 自动更新,避免训练中断
  • 每晚跑训练、白天做产品开发,错峰使用笔记本资源

5. Demo 现场展示方案(替代 Jetson)

5.1 硬件清单(总预算 ≤ 2000 元)

设备 型号建议 价格 用途
USB 工业相机 海康威视 MV-CU013-A0UC 或 海康 USB 摄像头 ~800-1500 实拍 PCB 样品
LED 环形光源 工业白光环形灯 ~200 保证光照一致
简易光箱 / 黑色背景板 自制 ~100 降低杂光干扰
PCB 样品 向本地厂讨要废板 0 演示素材
外接散热底座 联想/酷冷至尊 ~200 训练稳定性

5.2 演示流程

笔记本(Y7000P)
    ├─ USB 相机 → OpenCV 取流
    ├─ ONNX Runtime GPU 推理
    ├─ Django 后端写入事件
    ├─ Vue 看板实时展示(localhost)
    └─ 投屏到决赛现场大屏

5.3 三重兜底

  • A 计划:现场实时相机 + PCB 样品演示(最理想)
  • B 计划:预录 90 秒场景视频 + Vue 看板重放(现场网络/相机故障时启用)
  • C 计划:纯截图 PPT(极端情况,笔记本挂掉时)

每个计划必须提前演练 3 次以上。


6. 开发环境(单机全栈)

Y7000P 上同时跑:
├─ 终端1:Django runserver (8000)
├─ 终端2:Vue dev server (5173)
├─ 终端3:YOLOv8 推理服务(FastAPI 独立进程,8001)
├─ 终端4:Label Studio(8080,标注用)
└─ 后台:PostgreSQL 或 SQLite(MVP 阶段 SQLite 足够)

资源分配:

  • 训练时段:关掉 Django/Vue/Label Studio,独占 GPU 和内存
  • 开发时段:关掉训练,16GB 内存跑全栈无压力
  • 不要同时训练和开发,16GB 必 OOM

7. 三个月执行计划(对齐 Y7000P 节奏)

周 工作内容 是否占用 GPU
W1 确认 GPU 型号;装环境;fork aaravomega;下载 HRIPCB 轻度(跑通推理)
W2 YOLOv8n 在 HRIPCB 上训练完成;拿到 mAP 基准 整夜占用
W3 Django 后端框架 + Vue 看板骨架;接 SQLite 否
W4 YOLOv8 导出 ONNX;FastAPI 推理服务;OpenCV 取相机流 轻度
W5 买 USB 工业相机 + 环形光;搭建演示光箱;拍测试素材 否
W6 Demo 版 v1:相机 → 推理 → 看板 全链路打通 轻度
W7 联系丰顺威达 / 梅州超捷 / 智科,签 NDA 收样本 否
W8 真实样本标注(Label Studio)+ 迁移学习微调 整夜占用
W9 规则引擎(批次缺陷率/追溯)+ 事件管理 + 告警 否
W10 挠性板扩展(若智科签约)+ 录 90s 场景视频 轻度
W11 软著申请;客户 MOU 签署;BP 定稿 否
W12 决赛 Demo 联调;三重兜底演练;路演彩排 否

8. 风险清单(硬件层)

风险 概率 影响 对策
笔记本训练过热降频 高 训练慢 外接散热底座 + 限制房间温度
8GB 显存 OOM 中 训练中断 batch 降到 8;imgsz 降到 416
16GB 内存爆满 中 系统卡死 workers 降到 2;关闭浏览器等
决赛现场笔记本故障 低 灾难 二号机备份(团队另一人的笔记本同步工程)+ B/C 计划
GPU 驱动更新导致 CUDA 挂掉 低 训练中断 关闭 NVIDIA 自动更新;锁定驱动版本
真实 PCB 样本获取失败 中 只能用公开数据集 提前 2 周对接 2 家以上厂商分散风险

9. 后续升级路径(晋级后)

  • 初赛通过后:考虑租云 GPU(AutoDL / 腾讯云 GN7 一周 ~300 元)加速 YOLOv8s / m 训练
  • 获奖后:用奖金采购 1 台 Jetson Orin Nano 8GB(约 3500 元)做客户演示边缘盒子,切回原方案的 DeepStream 部署路线
  • MVP 阶段:客户侧硬件由客户采购或租用,我方只交付软件 + 配置服务

10. 一句话结论

用好 Y7000P 这一台机器,完全够支撑 Demo 版晋级——关键是把训练和开发错峰安排,显存内存资源专用。Jetson / 云服务器留到 MVP 阶段和获奖后再投入,Demo 阶段聚焦"算法精度 + 产品闭环 + 本地客户意向"三板斧即可。