# 從dstest2_tracker_config.txt讀入,為追蹤器逐項設(shè)置變量for key in config['tracker']:
時間:2022-03-17 10:57:01 | 來源:行業(yè)動態(tài)
時間:2022-03-17 10:57:01 來源:行業(yè)動態(tài)
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在創(chuàng)建元件與設(shè)置參數(shù)部分的一些代碼修改的部分,至于管道創(chuàng)建與連接的部分,自己就能看懂,這里就不浪費篇幅去說明。
最后還有一部分,就是在函數(shù)osd_sink_pad_buffer_probe里面,第126~164行有一代碼,不過下面注釋內(nèi)容表明l_user.data與user_meta.user_meta_data在這里并不做處理,我們也試過將if(past_tracking_meta[0]==1):下面整段代碼全部刪除,并不影響test2范例的執(zhí)行與輸出結(jié)果。
最后在執(zhí)行之前,看一下5個配置文件的內(nèi)容,發(fā)現(xiàn)原本的設(shè)定以INT8精度模式進(jìn)行推理,可以看到文件里的network-mode都設(shè)置為1,如果在Jetson Nano(含2GB)上執(zhí)行時,建議將這些模式都改成FP16模式,除了將所有network-mode都改成2之外,再把每個加速引擎的xxx_int8.engine改成xxx_fp16.engine。
雖然不改變這個設(shè)定值也能正常工作,差別就在于如果要重復(fù)測試的時候,就得花費更多時間去重新生成xxx_fp16.engine加速引擎,如果改成fp16模式的話,就只需要生成一次就行,第二次再執(zhí)行的時候就會非??焖賳?。
好了,一切就緒之后,就可以體驗一下這個多模型合成功能的效果,請執(zhí)行以下指令:
python3 deepstream_test_2.py ../../../../samples/streams/sample_720p.h264
|
在屏幕上方會出現(xiàn)該幀的檢測結(jié)果,不過這里只顯示Vehicle與Person兩個類別。圖片中也能清楚看到每個物件都有個追蹤編號,在Car物件上也有顏色、廠牌、車型等信息。
當(dāng)我們回頭再仔細(xì)看看這個范例的代碼,會發(fā)現(xiàn)其實大部分要做的事情,就是把插件元件做合理的安排,然后就是定義、創(chuàng)建、連接,就幾乎完成大部分的工作了?!锻辍?br>