• Hardware Platform (Jetson / GPU)
GPU
• DeepStream Version
7.0
• TensorRT Version
8.6.1.6-1+cuda12.0
• NVIDIA GPU Driver Version (valid for GPU only)
555.85
• Issue Type( questions, new requirements, bugs)
Questions/Bugs
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
Sample files are attached below.
Hello, I’ve been trying to use PipeTuner for a while now, with the intention of tuning the parameters of config files with a custom YOLO11 model and a custom dataset. My current problem is that when launching launch.sh
and checking the output CSV, the DsApp score is always returning either 0.0 or large negative values. I’ve already tried all the suggestions posted in these related topics:
For using YOLO11 with PipeTuner, I’m running the scripts as detailed in the documentation with a new Docker image built with the following Dockerfile:
FROM nvcr.io/nvidia/deepstream:7.0-triton-multiarch
RUN apt-get update && apt-get upgrade -y && \
apt-get install -y git build-essential && \
rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/marcoslucianops/DeepStream-Yolo.git \
/opt/nvidia/deepstream/deepstream-7.0/DeepStream-Yolo
WORKDIR /opt/nvidia/deepstream/deepstream-7.0/DeepStream-Yolo
RUN CUDA_VER=12.2 make -C nvdsinfer_custom_impl_Yolo
RUN chmod -R 777 /opt/nvidia/deepstream/deepstream/DeepStream-Yolo
WORKDIR /opt/nvidia/deepstream/deepstream-7.0/
Here I’m attaching the data and config files I’m using, as well as my output directory with all the logging:
pipe-tuner-road.zip (40.7 MB)
output.zip (4.8 MB)
When I’m using the pipe-tuner-sample data instead of my attached data folder, everything works as expected while using my YOLO11 model, as it also detects people in that synthetic dataset with “person” as class number 1, so I assume that the problem is with how my dataset is formed, but I cannot grasp what error may I have. For commodity I’ve tested with just a 1 video dataset.
Considerations I had while building the dataset:
- The video is encoded in MP4, in 1920x1080 and 30FPS.
- The ground truth file starts at frame number 1, with new IDs being shared between all classes (for example, if 2 cars already appeared and the next object is the first truck to appear it will have ID 3).
- All annotations are marked with 1 for eval, 1 for full visibility, and bounding boxes are in format [x0, y0, width, height] with coord values in range [0:1920, 0:1080].
- The class of each annotation corresponds with those of the
labels.txt
loaded in the PGIE config file, starting with value 1. seqinfo.ini
of each video is the same as in the sample dataset, replacingname
with the video filename (excluding the extension) andseqLength
with the number of frames.- I made a
road_all.txt
file similar toSDG_1min_all.txt
where I have the ordered sequence of videos.
Notice that when I run the container created with sudo bash launch.sh deepstream-yolo:7.0-triton-multiarch ../configs/config_PipeTuner/road_MOT.yml
I can run the deepstream-app with YOLO11 model normally, using the video I provide and it works, hence reassuring my assumption about the problem being in my dataset.
I also noticed that in some iterations of PipeTuner, the detections log file seems empty. For example:
output/road_MOT.yml_output/checkpoints/DsAppRun_output_20241124_031638/0/54.txt
contains detections.output/road_MOT.yml_output/checkpoints/DsAppRun_output_20241124_031419/0/54.txt
does not contain detections.
Overall, I think my dataset is analogous to the sample provided, so I cannot understand why it doesn’t work. Among the considerations listed above, the only thing I’m not sure about is if IDs should be shared between classes or not (mine are not), as the sample dataset only considers one class.
I would greatly appreciate some insight about this issue. Thanks in advance.