Does nms_postprocess work with DAMO-YOLO? despite it being in the NMSMetaArchitectures (‘damoyolo’) there doesn’t seem to be an nms json config file in the model zoo.
If not i’m assuming i’ll have to make my own custom script for reshaping the output layers and doing nms?
the precompiled DAMO-YOLO models in the Hailo Model Zoo do not contain NMS. So currently it is not supported as built in NMS postprocess. Maybe my R&D colleagues want to add this in the future.
You can use the following command to test this:
hailortcli parse-hef model.hef
The output for the damoyolo currently looks like this:
Architecture HEF was compiled for: HAILO8
Network group name: damoyolo_tinynasL35_M, Multi Context - Number of contexts: 4
Network name: damoyolo_tinynasL35_M/damoyolo_tinynasL35_M
VStream infos:
Input damoyolo_tinynasL35_M/input_layer1 UINT8, NHWC(640x640x3)
Output damoyolo_tinynasL35_M/conv83 UINT8, FCR(80x80x68)
Output damoyolo_tinynasL35_M/conv84 UINT8, FCR(80x80x81)
Output damoyolo_tinynasL35_M/conv97 UINT8, FCR(40x40x68)
Output damoyolo_tinynasL35_M/conv98 UINT8, FCR(40x40x81)
Output damoyolo_tinynasL35_M/conv110 UINT8, FCR(20x20x68)
Output damoyolo_tinynasL35_M/conv111 UINT8, FCR(20x20x81)
compared to this for the yolov8 model with NMS:
Architecture HEF was compiled for: HAILO8
Network group name: yolov8m, Multi Context - Number of contexts: 3
Network name: yolov8m/yolov8m
VStream infos:
Input yolov8m/input_layer1 UINT8, NHWC(640x640x3)
Output yolov8m/yolov8_nms_postprocess FLOAT32, HAILO NMS BY CLASS(number of classes: 80, maximum bounding boxes per class: 100, maximum frame size: 160320)
Operation:
Op YOLOV8
Name: YOLOV8-Post-Process
Score threshold: 0.200
IoU threshold: 0.70
Classes: 80
Cross classes: false
NMS results order: BY_CLASS
Max bboxes per class: 100
Image height: 640
Image width: 640
I appreciate the attention given to DAMO-YOLO and the discussion about integrating NMS post-processing. As mentioned earlier in this thread, the precompiled DAMO-YOLO models currently do not include NMS post-processing, and it has been suggested that Hailo’s R&D team may consider adding this in the future.
I would like to express my interest in improved post-processing support for the DAMO-YOLO object detection model, specifically through the built in NMS postprocess and the addition of a C++ post-processing implementation similar to what is available for YOLO models. This would enable DAMO-YOLO to be used with the hailofilter-GStreamer plugin, improving execution efficiency for embedded applications. Additionally, DAMO-YOLO’s commercially friendly license makes it an attractive option for developers and companies looking for a cost-effective alternative to models with restrictive licensing. Providing efficient post-processing would further enhance its usability.
I would very much welcome it if Hailo could consider this. Looking forward to any insights you can share on this!