1. 课程导论与硬件选型
各位同学好,我是你们这门课的老张。做工业缺陷检测模型移植这事,我前前后后折腾了快五年。今天咱们先不急着敲代码,把整个场景和硬件选型聊透。说白了,选错硬件,后面全白干。
1.1 工业缺陷检测场景分析
工业缺陷检测,说白了就是让机器代替人眼去看产品。我最早接触这个项目是在一家手机代工厂,他们要检测手机外壳上的划痕。当时人工检测,一个人盯屏幕盯半小时就眼花,漏检率能到5%。
典型的工业检测场景有这几类:
- 表面缺陷:划痕、凹陷、脏污、气泡
- 尺寸测量:边缘毛刺、装配间隙、形变
- 颜色/纹理:色差、印刷偏移、纹理不均
- 内部缺陷:X光下的焊点虚焊、铸件气孔
这些场景有几个共同痛点:
- 速度要求高——产线节拍通常1-2秒一个工件
- 环境恶劣——粉尘、震动、温度变化大
- 模型要小——边缘设备算力有限,跑不动大模型
- 部署要稳——不能三天两头死机重启
核心矛盾:检测精度和推理速度永远在打架。我在一个项目中试过用YOLOv8s,精度够了但帧率只有12fps,产线要求30fps。最后不得不换成轻量化的YOLOv8n,再配合TensorRT优化,才勉强达标。
1.2 模型移植全流程概览
模型移植不是简单地把模型文件拷过去就完事。我见过太多人栽在这个坑里。完整的流程是这样的:
嗯,这里要注意。很多人觉得训练完模型就完事了,其实移植阶段的工作量往往比训练还大。我经历过一个项目,训练只花了两周,移植调试花了两个月——因为目标芯片不支持某些算子,得重新设计网络结构。
1.3 边缘计算设备选型
目前市面上主流的边缘计算设备,我按平台分成三大阵营。咱们直接看对比:
| 对比维度 | NVIDIA Jetson | 瑞芯微 RK3588 | 算能 SG2300X |
|---|---|---|---|
| 算力 | 21-100 TOPS (INT8) | 6 TOPS (NPU) | 32 TOPS (INT8) |
| 生态成熟度 | ★★★★★ | ★★★☆☆ | ★★☆☆☆ |
| 功耗 | 15-30W | 5-10W | 8-15W |
| 价格 | ¥2000-8000 | ¥500-1500 | ¥1500-3000 |
| 推理框架 | TensorRT | RKNN | TPU-MLIR |
| 典型场景 | 高精度、复杂模型 | 轻量、低成本 | 国产化、中等算力 |
我的选型建议:
- 如果你刚入门,预算充足,无脑选Jetson Orin NX。生态最全,遇到问题网上随便搜都有答案。
- 如果做量产、成本敏感,瑞芯微RK3588性价比很高。但要做好心理准备,RKNN的算子支持不如TensorRT全面。
- 如果客户要求国产化,算能是不错的选择。我去年帮一个军工项目移植过,他们的TPU-MLIR工具链迭代很快。
1.4 开发板开箱与系统烧录
好,假设你已经拿到了开发板。咱们以Jetson Orin NX为例,走一遍开箱流程。
1.4.1 开箱检查清单
- 开发板本体(检查金手指有无氧化)
- 散热模组(必须装,否则开机就过热保护)
- 电源适配器(Jetson Orin NX需要15V/4A以上)
- USB Type-C数据线(用于烧录)
- MicroSD卡或NVMe SSD(建议至少128GB)
⚠ 我曾经犯过的错:第一次拿到Jetson Nano,没装散热片就上电,结果跑了10分钟模型训练直接过热关机。后来检查发现核心温度飙到了95°C。所以记住——散热不是可选项,是必选项。
1.4.2 系统烧录步骤
Jetson系列官方推荐用SDK Manager烧录。我个人习惯用命令行方式,更可控:
# 1. 下载JetPack SDK(以JetPack 5.1.2为例)
wget https://developer.nvidia.com/embedded/jetpack-sdk-512
# 2. 进入烧录目录
cd ~/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra
# 3. 进入恢复模式(按住RECOVERY键,再按RESET,保持RECOVERY 2秒后松开)
# 4. 检查设备是否识别
lsusb | grep NVIDIA
# 5. 开始烧录(会格式化整个eMMC)
sudo ./flash.sh jetson-orin-nx-devkit mmcblk0p1
烧录过程大概15-20分钟。完成后第一次开机,系统会自动扩展分区并重启。
1.4.3 烧录后验证
系统起来后,我习惯先跑几个命令确认环境:
# 查看系统信息
uname -a
# 查看CPU温度
cat /sys/class/thermal/thermal_zone*/temp
# 查看GPU是否可用
nvidia-smi
# 查看JetPack版本
cat /etc/nv_tegra_release
验证要点:
- CPU温度在40-60°C之间算正常
- nvidia-smi能显示GPU信息
- JetPack版本与你烧录的一致
- 检查nvpmodel模式(默认是MAXN,功耗最高)
嗯,到这里,你的开发环境就算搭好了。下一件事就是装好Python、PyTorch、TensorRT这些依赖。不过别急,这些内容咱们后面章节会一步步来。今天先把硬件摸透,后面移植模型时才不会手忙脚乱。