1. 课程导论与硬件平台认知
大家好,欢迎来到《工业缺陷检测模型移植实战》。我是这门课的主讲,做了快十年算法落地,踩过的坑比写过的代码还多。
工业缺陷检测,说白了就是让机器学会「挑毛病」。但真正难的不是算法,而是怎么把算法塞进一个巴掌大的盒子里,还能跑得又快又稳。我见过太多团队,模型在服务器上跑出99%的准确率,一上嵌入式设备直接崩掉——嗯,这就是我们要解决的问题。
1.1 工业缺陷检测:为什么非做不可?
先看几个数字。一条产线每分钟检测300个零件,人工目检漏检率大概在5%-15%。换成机器视觉,漏检率能压到0.5%以下。但问题来了——产线上没有服务器,只有摄像头和一个小盒子。
我2018年帮一家3C代工厂做屏幕划痕检测。客户要求:检测速度<50ms/片,误检率<1%。我们在服务器上跑ResNet-50,精度达标,速度差了两个数量级。后来换成MobileNetV3,精度掉了3个点,但速度勉强能看。最后怎么解决的?模型剪枝+量化+特定硬件优化,才把项目交付了。
所以,工业缺陷检测的核心矛盾是:算法精度 vs 硬件算力。你想想看,一个模型从PyTorch训练完,到能在Jetson上跑起来,中间要过多少关?
1.2 模型移植的三大拦路虎
我习惯把模型移植的难点归纳为三个层面。每个层面我都吃过亏,咱们一个一个说。
- 算子兼容性:服务器上的PyTorch有几百个算子,但嵌入式推理引擎(比如TensorRT、RKNN)只支持其中一部分。我遇到过最离谱的一次,一个F.upsample_bilinear2d在RK3588上直接报错,查了两天才发现要用Resize算子替代。
- 精度退化:FP32转INT8,激活值分布一变,模型输出就飘了。我曾经有个分割模型,量化后mIoU从0.82掉到0.61,几乎不可用。后来加了校准集和逐通道量化才救回来。
- 内存与带宽:嵌入式设备的内存通常只有4-8GB,带宽更是瓶颈。一个YOLOv8s模型,FP16推理需要约1.2GB显存,如果同时跑预处理和后处理,很容易OOM。
1.3 主流边缘计算硬件对比
目前工业界用得最多的三款硬件:NVIDIA Jetson系列、瑞芯微RK3588、以及各种TPU(比如算能BM1684、寒武纪MLU220)。我列个表,大家一目了然。
| 维度 | Jetson Orin NX | RK3588 | TPU(以BM1684为例) |
|---|---|---|---|
| AI算力 | 70 TOPS (INT8) | 6 TOPS (INT8) | 17.6 TOPS (INT8) |
| 推理框架 | TensorRT | RKNN | BMNNSDK / OpenCV |
| 算子支持 | 非常丰富 | 中等,需手动适配 | 有限,常见CNN够用 |
| 功耗 | 15-25W | 8-15W | 8-12W |
| 价格 | 高(约4000元) | 中(约1500元) | 中低(约800元) |
| 生态成熟度 | ★★★★★ | ★★★☆☆ | ★★☆☆☆ |
| 典型场景 | 高精度、多模型 | 性价比优先 | 极致功耗、批量部署 |
我个人习惯这样选型:如果客户预算充足、对精度要求苛刻,直接上Jetson Orin系列。如果做成本敏感型项目,RK3588是性价比之王。至于TPU,适合那种「一个模型跑一万台设备」的场景,比如光伏EL检测。
1.4 知识体系总览
下面这张图,是我对整门课知识结构的梳理。你可以把它当作地图,后面每章都会对应到其中一个节点。
1.5 本章小结
这一章我们聊了三件事:工业缺陷检测为什么需要模型移植、移植过程中常见的坑、以及主流硬件怎么选。我个人觉得,选硬件就像选工具——没有最好的,只有最合适的。Jetson适合做研发原型,RK3588适合做量产,TPU适合做极致性价比。