【jetson】目标检测快速体验
Jetson 目标检测快速体验基于DetectNet推理框架 SSD-Mobilenet-v2模型完成官方原生模型推理、自定义水果数据集训练、自定义模型部署推理全流程适配 Jetson 平台硬件加速。一、原生模型推理检测DetectNet SSD-Mobilenet-v2使用 Jetson 官方detectNet接口实现目标检测传入图像后可输出目标检测框坐标、目标类别以及置信度。1. 模型准备下载推理模型SSD-Mobilenet-v2放置到指定目录程序可自动识别加载无需手动填写路径~/jetson-inference/data/network2. 测试图片准备直接调用jetson-inference工程自带测试图片无需额外自行准备。3. 执行推理命令切换至工程二进制执行目录cdjetson-inference/build/aarch64/bin运行推理指令./detectnet--headless--networkssd-mobilenet-v2\./images/humans_0.jpg ./output_001.jpg4. 关键注意事项首次运行模型时TensorRT 会自动完成网络优化耗时较长优化文件会缓存至本地磁盘后续启动运行加载速度大幅加快。二、训练目标检测模型1. 训练工具准备1下载训练工具下载训练工具pytorch-ssd解压后放置到指定目录/home/guest/jetson-inference/python/training/detection后续所有训练相关操作统一在此目录执行~/jetson-inference/python/training/detection/pytorch-ssd$2依赖安装批量一键安装项目所需依赖pip3install-rrequirements.txt报错记录AttributeError: module numpy has no attribute bool报错原因numpy 1.24.4版本与老旧pandas 0.25.3版本存在版本冲突解决办法升级 pandas 版本pip3install--upgradepandas--user3数据集下载借助 Open Images 公开数据集批量下载水果标注文件与实景图片自动划分训练集、验证集。水果检测8类水果训练可识别苹果、橙子、香蕉、草莓、葡萄、梨、菠萝、西瓜的水果检测模型仅下载CSV格式标注文件文件大小约1.2Gpython3 open_images_downloader.py --stats-only --class-namesApple,Orange,Banana,Strawberry,Grape,Pear,Pineapple,Watermelon--datadata/fruit同步下载标注文件与2500张实景图片单类别最多300组标注数据python3 open_images_downloader.py --max-images2500--max-annotations-per-class300--class-namesApple,Orange,Banana,Strawberry,Grape,Pear,Pineapple,Watermelon--datadata/fruit4模型训练执行模型训练指令python3 train_ssd.py--datadata/fruit --model-dirmodels/fruit --batch-size4--epochs30报错记录EOFError: Ran out of input报错原因预训练权重文件models/mobilenet-v1-ssd-mp-0_675.pth缺失或文件损坏解决办法本地重新获取完整预训练权重文件放入对应路径后重新启动训练5模型导出导出为ONNX通用格式将训练完成的PyTorch模型导出为Jetson平台适配的ONNX格式模型python3 onnx_export.py --model-dirmodels/fruit导出文件存放路径ONNX模型/home/guest/jetson-inference/python/training/detection/pytorch-ssd/models/fruit/ssd-mobilenet.onnx类别标签文件/home/guest/jetson-inference/python/training/detection/pytorch-ssd/models/fruit/labels.txt三、验证推理模型加载ONNX模型完成推理切换至detectnet运行目录cd~/jetson-inference/build/aarch64/bin执行图片推理命令./detectnet\--model/home/guest/jetson-inference/python/training/detection/pytorch-ssd/models/fruit/ssd-mobilenet.onnx\--labels/home/guest/jetson-inference/python/training/detection/pytorch-ssd/models/fruit/labels.txt\--input-blobinput_0\--output-cvgscores\--output-bboxboxes\/home/guest/jetson-inference/python/training/detection/pytorch-ssd/data/fruit/validation/02aeb6528711637a.jpg\output_fruit.jpg自行准备水果实拍测试图片即可使用当前效果与优化方向✅ 实现效果自定义水果检测模型可正常推理运行能够精准识别菠萝等目标水果❌ 现存问题出现同一目标重复检测识别现象 优化思路优化整体训练流程调整数据集质量、训练超参完善数据预处理流程四核心流程总结原生推理DetectNet搭配官方预置SSD模型快速上手目标检测功能自定义训练基于pytorch-ssd框架搭配水果数据集训练专属检测模型模型部署ONNX格式模型转TensorRT引擎实现Jetson设备高效部署推理使用 Jetson的推理 API 加载 ONNX 模型时一般会自动转为 ENGINE 格式