Using deepstream_python_app test3 in deepstream to load etlt model prompts configuration file parsing failure

**• Hardware Platform (Jetson / GPU)jetson nano
**• DeepStream Version5.1
**• JetPack Version (valid for Jetson only)32.5.1
**• TensorRT Version7.1

I use tlt-encoded-model to load the etlt model in the [property] of the configuration file in deepstream_python_app test3, and running the code prompts an error in parsing the configuration file

nvinfer gstnvinfer.cpp:769:gst_nvinfer_start: error: Config file path: dstest3_pgie_config.txt

There is no clue of the error. Can you upload the whole log?

I want to deploy resnet18.etlt model on deepstream and use yolov3 to detect. The error is as follows:

./tlt-converter -k tlt_encode -d 3,384,1248 -o BatchedNMS -e models/yolo3/yolo_resnet18_fp16.engine -t fp16 -i nchw -m 8 models/yolo3/yolov3_resnet18.etlt
[INFO] Model has no dynamic shape.
[ERROR] Network must have at least one output
[ERROR] Network validation failed.
[ERROR] Unable to create engine
Segmentation fault (core dumped)

yolo3_ Resnet18 is actually downloaded from the official website

@Morganh Can you help to check this tlt-converter issue?

Moving this topic from DS forum into TLT forum.

Please run with below.
$ ./tlt-converter -k nvidia_tlt -d 3,544,960 -p Input,1x3x544x960,1x3x544x960,2x3x544x960 yolov3_resnet18.etlt

This problem has been solved. Thank you, but I can still load the engine file directly in the Yolo directory

ERROR: yoloV3 output layer.size: 4 does not match mask.size: 3
0:00:08.490277898 23430 0x2f11d540 ERROR nvinfer gstnvinfer.cpp:613:gst_nvinfer_logger:<primary_gie> NvDsInferContext[UID 1]: Error in NvDsInferContextImpl::fillDetectionOutput() <nvdsinfer_context_impl_output_parsing.cpp:724> [UID = 1]: Failed to parse bboxes using custom parse function
Segmentation fault (core dumped)

Config for my configuration reference_ infer_ primary_ yoloV3.txt
[property]
gpu-id=0
net-scale-factor=0.0039215697906911373
#0=RGB, 1=BGR
model-color-format=0
model-engine-file=…/…/sources/deepstream_tlt_apps/saved.engine
labelfile-path=labels.txt
#labelfile-path=…/…/samples/models/tlt_pretrained_models/trafficcamnet/labels.txt
int8-calib-file=yolov3-calibration.table.trt7.0
batch-size=8

0=FP32, 1=INT8, 2=FP16 mode

network-mode=2
#num-detected-classes=80
num-detected-classes=4
gie-unique-id=1
network-type=0
is-classifier=0

0=Group Rectangles, 1=DBSCAN, 2=NMS, 3= DBSCAN+NMS Hybrid, 4 = None(No clustering)

cluster-mode=2
maintain-aspect-ratio=1
parse-bbox-func-name=NvDsInferParseCustomYoloV3
custom-lib-path=nvdsinfer_custom_impl_Yolo/libnvdsinfer_custom_impl_Yolo.so
engine-create-func-name=NvDsInferYoloCudaEngineGet
#scaling-filter=0
#scaling-compute-hw=0

[class-attrs-all]
nms-iou-threshold=0.3
threshold=0.7

Please refer to deepstream_tlt_apps/pgie_yolov3_tlt_config.txt at master · NVIDIA-AI-IOT/deepstream_tlt_apps · GitHub according to YOLOv3 — Transfer Learning Toolkit 3.0 documentation

I read this document and adjusted it, but I still can’t change it. I will send a specific error report tomorrow.

Now I use resnet18 directly_ The engine file generated by trafficcamnet. There are many false detections. Is there any way to adjust them? As shown in the figure

@Morganh
Yolo detection can be used, but I don’t know if it’s a label problem. I can only detect people, not vehicles. Can you provide the next solution?

Can you elaborate more for your issues?

  1. What do you mean by “I read this document and adjusted it, but I still can’t change it.” ?

Do you mean you download trafficcamnet etlt model and run inference in deepstream?

Can you provide the detailed steps?

I didn’t use resnet18_trafficane The engine file generated by. If you use Yolo detection directly on this file, an error is reported.

I now downloaded the etlt file of yolov3 from NVIDIA’s official website. yolov3_ The engine file generated by uresnet18.etlt runs as follows:

According to your last comment, you download yolo_v3 etlt model and deploy it to run inference with deepstream. I did not see any error.

There are no errors, but the vehicle cannot be detected. The engine file generated by resnet18_traffic cannot use Yolo. In fact, what I want to implement is to use yolo3 to detect the engine files generated by resnet18 traffic. Resnet18_traffic can still use NVIDIA’s detector, but as shown in the picture I sent above, there is error detection, for example, a vehicle is detected where there is no vehicle

Sure, they are two different networks. One is Yolo network, another is detectnet_v2 network. You cannot mix them up.

I see, but detectnet_V2 There is still error detection in detection. I want to use Yolo to realize detection, but there is no way. The model trained by the default weight file is not accurate

For trafficamnet, please follow Integrating TLT Models into DeepStream — Transfer Learning Toolkit 3.0 documentation to download model and run inference.

For yolo_v3, please download the models and run inference according to GitHub - NVIDIA-AI-IOT/deepstream_tlt_apps: Sample apps to demonstrate how to deploy models trained with TLT on DeepStream
wget https://nvidia.box.com/shared/static/i1cer4s3ox4v8svbfkuj5js8yqm3yazo.zip -O models.zip

I have read all the relevant materials. At present, it is not what I expected. I can only use TLT to retrain the network for yolo3 detection or detectnet. Thank you again Morganh

Yes, if your test dataset has a quite different data distribution, it is needed to retrain with your own training dataset.

@Morganh Deepstream is connected to RTMP video stream for real-time processing. There is frame loss or jamming, so it can’t complete real-time processing. Can you optimize it? The network may shake occasionally. After shaking, the video stream will be suspended and cannot be played