nvidia
nano2g-jp:/opt/nvidia/deepstream/deepstream/samples/models$ls-l总用量24
drwxrwxrwx2rootroot月:49Primary_Detector
drwxrwxrwx2rootroot月:45Primary_Detector_Nano
drwxrwxrwx2rootroot月:50Secondary_CarColor
drwxrwxrwx2rootroot月:50Secondary_CarMake
drwxrwxrwx2rootroot月:50Secondary_VehicleTypes
drwxrwxrwx4rootroot月:49Segmentation
简单说明一下每个目录所代表的的意义:Primary_Detector:作为项目的主检测器,这是用Caffe框架以ResNet10网络所训练的4类检测器,能检测“Car”、“Bicycle”、“Person”、“Roadsign”四种物件,这个数据可以在目录下的labels.txt中找到。
Primary_Detector_Nano:将Primary_Detector里的模型,针对JetsonNano(含2GB)的计算资源进行优化的版本。
Secondary_CarColor:车子颜色的次级检测器
Secondary_CarMake:生产厂商的次级检测器
Secondary_VehicleTypes:车子种类的次级检测器
组成结构也十分简单,其中主(Primary)检测器只有一个,而且必须有一个,否则DeepStream无法进行推理识别。次(Secondary)检测器可以有好几个,这里的范例就是针对“Car”这个类别,再添加“Color”、“Maker”、“Type”这三类元素,就能获取视频图像中物件的更完整信息。在JetsonNano的/opt/nvidia/deepstream/deepstream/samples/config/deepstream-app下面的source4_p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt,就已经把这个组合检测器的配置调试好,现在直接执行以下指令:cd/opt/nvidia/deepstream/deepstream/samples/config/deepstream-app
deepstream-app-csource4_p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
现在看到启动四个视频窗,但是每个视窗的执行性能只有8FPS,总性能大约32FPS,并不是太理想。接下来看看怎么优化这个配置文件首先要执行模型组合功能功能,必须把“tracker”功能打开,不过可以关闭追踪号的显示,因此保留“enable=1”,将下面的“display-tracking-id=”设为“0”
由于我们在JetsonNano2GB版本上进行实验,需要进行以下的调整。如果您要在AGXXavier或XavierNX上上执行的活,请忽略这个步骤。
修改主检测器[primary-gie]的模型:配置文件中预设的是“Primary_Detector”检测器,这里得修改成专为Nano所训练的版本,这里修改以下几个地方:
(1)model-engine-file路径的“Primary_Detector”部分改成“Primary_Detector_Nano”
(2)config-file的文件改成config_infer_primary_nano.txt
因为JetsonNano(含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,用“#”变更注释的位置就可以。
修改完后重新执行,可以看到每个窗口的检测性能提升到10~12FPS,总性能提升到40~48FPS,比原本提升12~50%,不过距离理想中的25FPS还有很大的差距。执行过程中如果遇到“Theremaybeatimestampingproblem,orthis