# 从dstest2_tracker_config.txt读入,为追踪器逐项设置变量for key in config['tracker']:
时间:2022-03-17 10:57:01 | 来源:行业动态
时间:2022-03-17 10:57:01 来源:行业动态
if key == 'tracker-width' :
tracker_width = config.getint('tracker', key)
tracker.set_property('tracker-width', tracker_width)
if key == 'tracker-height' :
tracker_height = config.getint('tracker', key)
tracker.set_property('tracker-height', tracker_height)
if key == 'gpu-id' :
tracker_gpu_id = config.getint('tracker', key)
tracker.set_property('gpu_id', tracker_gpu_id)
if key == 'll-lib-file' :
tracker_ll_lib_file = config.get('tracker', key)
tracker.set_property('ll-lib-file', tracker_ll_lib_file)
if key == 'll-config-file' :
tracker_ll_config_file = config.get('tracker', key)
tracker.set_property('ll-config-file', tracker_ll_config_file)
if key == 'enable-batch-process' :
tracker_enable_batch_process = config.getint('tracker', key)
tracker.set_property('enable_batch_process', tracker_enable_batch_process)
if key == 'enable-past-frame' :
tracker_enable_past_frame = config.getint('tracker', key)
tracker.set_property('enable_past_frame', tracker_enable_past_frame)
以上就是test2与test1在创建元件与设置参数部分的一些代码修改的部分,至于管道创建与连接的部分,自己就能看懂,这里就不浪费篇幅去说明。
最后还有一部分,就是在函数osd_sink_pad_buffer_probe里面,第126~164行有一代码,不过下面注释内容表明l_user.data与user_meta.user_meta_data在这里并不做处理,我们也试过将if(past_tracking_meta[0]==1):下面整段代码全部删除,并不影响test2范例的执行与输出结果。
最后在执行之前,看一下5个配置文件的内容,发现原本的设定以INT8精度模式进行推理,可以看到文件里的network-mode都设置为1,如果在Jetson Nano(含2GB)上执行时,建议将这些模式都改成FP16模式,除了将所有network-mode都改成2之外,再把每个加速引擎的xxx_int8.engine改成xxx_fp16.engine。
虽然不改变这个设定值也能正常工作,差别就在于如果要重复测试的时候,就得花费更多时间去重新生成xxx_fp16.engine加速引擎,如果改成fp16模式的话,就只需要生成一次就行,第二次再执行的时候就会非常快速启动。
好了,一切就绪之后,就可以体验一下这个多模型合成功能的效果,请执行以下指令:
python3 deepstream_test_2.py ../../../../samples/streams/sample_720p.h264
|
在屏幕上方会出现该帧的检测结果,不过这里只显示Vehicle与Person两个类别。图片中也能清楚看到每个物件都有个追踪编号,在Car物件上也有颜色、厂牌、车型等信息。
当我们回头再仔细看看这个范例的代码,会发现其实大部分要做的事情,就是把插件元件做合理的安排,然后就是定义、创建、连接,就几乎完成大部分的工作了。《完》