ultralytics / yolov3

YOLOv3 in PyTorch > ONNX > CoreML > TFLite
https://docs.ultralytics.com
GNU Affero General Public License v3.0
10.16k stars 3.44k forks source link

Which Yolo Variants Are Supported ? #631

Closed ghost closed 4 years ago

ghost commented 4 years ago

I was wondering if this repo is able to run customized models from https://github.com/AlexeyAB/darknet/issues/3114. Or which ones I can use ?

glenn-jocher commented 4 years ago

@orcund many custom cfg's are supported, I would just try whichever you want, and if there is no error message then you are good to go.

Some of the LSTM's are not supported yet.

AlexeyAB commented 4 years ago

Models with LSTM and Gaussian) require new layers:


Models with PAN3, Trident, AntiAliasing require parameters


Also models with: Assisted Excitation, scale_x_y, Mixup, Blur - will work without their supporting, just will not use these features.

More about all these features: https://github.com/AlexeyAB/darknet/projects/1

glenn-jocher commented 4 years ago

Ah yes, thanks for the clarification @AlexeyAB

LukeAI commented 4 years ago

@glenn-jocher Of all these features, the one I've found to be most useful is [Gaussian_yolo] - https://github.com/AlexeyAB/darknet/issues/4147 - gives me about +3 mAP in experiments so far for a small computational cost.

glenn-jocher commented 4 years ago

@LukeAI hmm thanks for the comment. What gaussian yolo cfg would you recommend to use in place of yolov3-spp.cfg on COCO? I can try to implement gaussian layers in ultralytics/yolov3.

glenn-jocher commented 4 years ago

@LukeAI do you know if NMS needs to be modified when using Gaussian YOLO? It seems to require reshaping the output vector to accommodate the box uncertainties... which would mean outputs of 255 + 12 = 267 for 80 class COCO? So this would really require a substantial modification to the repo it seems.

isgursoy commented 4 years ago

following

github-actions[bot] commented 4 years ago

This issue is stale because it has been open 30 days with no activity. Remove Stale label or comment or this will be closed in 5 days.

glenn-jocher commented 7 months ago

@isgursoy, indeed, integrating [Gaussian_yolo] layers would require significant changes to the post-processing steps, such as NMS, to properly handle the additional uncertainty parameters. For COCO with 80 classes, the output vector adjustment you mentioned seems correct. This would be a non-trivial extension to the current YOLOv3 implementation. It's an interesting idea, and I'll consider it for future updates. Your insights and contributions to the community are much appreciated! 🙌 Keep experimenting and sharing your findings!