Megvii-BaseDetection / YOLOX

YOLOX is a high-performance anchor-free YOLO, exceeding yolov3~v5 with MegEngine, ONNX, TensorRT, ncnn, and OpenVINO supported. Documentation: https://yolox.readthedocs.io/
Apache License 2.0
9.44k stars 2.21k forks source link

Is GIOU or DIOU or CIOU better than IOU? #1115

Open ZhengMengbin opened 2 years ago

ZhengMengbin commented 2 years ago

As mentioned in title, have you used giou/diou/ciou to train yolox, and who is better?

debapriyamaji commented 2 years ago

@ZhengMengbin , I think, this repo has support for iou and giou loss. By default, iou loss is used. https://github.com/Megvii-BaseDetection/YOLOX/blob/main/yolox/models/losses.py

BTW, where is it mentioned that giou/diou/ciou loss is used?

MengtianLee commented 2 years ago

I have used giou, ciou and eiou to train yolox-tiny. Unfortunately, no one is better than default iou loss and i found that the learning rate of them is significantly small. BTW, I will try increase the initial learning rate of them.

GF1447571253 commented 2 years ago

How it work

doctorchoco commented 2 years ago

what was the result of the experiment?

MengtianLee commented 2 years ago

It doesn't work by increasing the learning rate.

CarlHuangNuc commented 2 years ago

It doesn't work by increasing the learning rate.

so the conclusion is CIOU /DIOU is not better than IOU loss in YOLOX ?

wgq18 commented 2 years ago

After I use giou or siou, I get nan in iou loss and give me error 'Assertion input_val >= zero && input_val <= one failed.' How did you fix this error? @MengtianLee

twmht commented 1 year ago

Any update?