NVIDIA Jetson Nano 2GB 文章(31):DeepStream 多模型组合检测-1
2021-08-06 14:10
nvidia@nano2g-jp450:/opt/nvidia/deepstream/deepstream/samples/models$ ls -l
总用量 24
drwxrwxrwx 2 root root 4096 7月 13 23:49 Primary_Detector
drwxrwxrwx 2 root root 4096 7月 13 22:45 Primary_Detector_Nano
drwxrwxrwx 2 root root 4096 2月 8 21:50 Secondary_CarColor
drwxrwxrwx 2 root root 4096 2月 8 21:50 Secondary_CarMake
drwxrwxrwx 2 root root 4096 2月 8 21:50 Secondary_VehicleTypes
drwxrwxrwx 4 root root 4096 2月 8 21:49 Segmentation
Primary_Detector:作为项目的主检测器,这是用 Caffe 框架以 ResNet10 网络所训练的 4 类检测器,能检测“Car”、“Bicycle”、“Person”、“Roadsign”四种物件,这个数据可以在目录下的 labels.txt 中找到。
Primary_Detector_Nano:将Primary_Detector里的模型,针对 Jetson Nano(含 2GB)的计算资源进行优化的版本。
Secondary_CarColor:车子颜色的次级检测器
Secondary_CarMake:生产厂商的次级检测器
Secondary_VehicleTypes:车子种类的次级检测器
cd/opt/nvidia/deepstream/deepstream/samples/config/deepstream-app
deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
首先要执行模型组合功能功能,必须把“tracker”功能打开,不过可以关闭追踪号的显示,因此保留“enable=1”,将下面的“display-tracking-id=”设为“0”
由于我们在 Jetson Nano 2GB 版本上进行实验,需要进行以下的调整。如果您要在 AGX Xavier 或 Xavier NX 上上执行的活,请忽略这个步骤。
修改主检测器[primary-gie]的模型:配置文件中预设的是“Primary_Detector”检测器,这里得修改成专为 Nano 所训练的版本,这里修改以下几个地方:
(1) model-engine-file路径的“Primary_Detector”部分改成“Primary_Detector_Nano”
(2) config-file 的文件改成 config_infer_primary_nano.txt
因为 Jetson Nano(含2GB)并不支持 int8 计算精度,因此还需要做以下修改:
(3) 将“_b4_gpu0_int8.engine”改成“_b8_gpu0_fp16.engine”
(4) 将所有“xx_gpu0_int8.engine”改成“xx_gpu0_fp16.engine”
3. 将追踪器从原本的 ibnvds_mot_klt.so 改成 libnvds_mot_iou.so,用“#”变更注释的位置就可以。
1. 所有的显示名称,都在 models 目录下个别模型目录里的labels.txt,可以将里面的内容全部改成中文。
例如
deepstream/samples/models/Secondary_CarMake的“labels.txt”内容改为“广汽;奥迪;宝马;雪佛兰;克莱斯勒;道奇;福特;通用;本田;现代;英菲尼迪;吉普;起亚;雷克萨斯;马自达;奔驰;日产;速霸路;丰田;大众”,其他的就比照办理。
2. 边框宽度:修改[osd]下面的“board-width”值,推荐 2~4 比较合适;
3. 字体大小:修改[osd]下面的“texe-size”值,推荐 15~18 比较合适;
4. 其他:请自行设定
现在重新执行这个 deepstream-app 的应用,就能得到本文一开始所显示的效果: