From SSD bounding box format, the output for the box.layer buffer should follow
[x1, y1, x2, y2]
where (x1, y1) is te top left corner, and (x2, y2) is the bottom right corner. Is this correct?
But when I follow the code Inside ssd_parser.py, I am confused with the x-y coordinate settings.
Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
• DeepStream Version
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, 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)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
sorry for the late reply, yes, you are right, please refer to NvDsInferParseCustomTfSSD in deepstream SDK.
Currently, I found the logics of python code is different with C code, please refer to NvDsInferParseCustomTfSSD in deepstream SDK, opt\nvidia\deepstream\deepstream\sources\libs\nvdsinfer_customparser\nvdsinfer_custombboxparser.cpp.
will continue to check.
the code result is right, but the variable names are not right.
here is the original code:
rect_x1_f = clip_1d_elm(0)
rect_y1_f = clip_1d_elm(1)
rect_x2_f = clip_1d_elm(2)
rect_y2_f = clip_1d_elm(3)
res.left = rect_y1_f
res.top = rect_x1_f
res.width = rect_y2_f - rect_y1_f
res.height = rect_x2_f - rect_x1_f
here is the right code:
rect_y1_f = clip_1d_elm(0) #y1
rect_x1_f = clip_1d_elm(1) #x1
rect_y2_f = clip_1d_elm(2) #y2
rect_x2_f = clip_1d_elm(3) #x2
res.left = rect_x1_f
res.top = rect_y1_f
res.width = rect_x2_f - rect_x1_f
res.height = rect_y2_f - rect_y1_f
The clip_1d_elm function use pyds.get_detections(box_layer.buffer, index * 4 + index2) to get the result from the box_layer buffer. So does it mean the SSD bounding box format follows [y1, x1, y2, x2]?