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.17k stars 2.16k forks source link

Overlapping Object Detection #1229

Open ajwl27 opened 2 years ago

ajwl27 commented 2 years ago

Hi,

I've trained YOLOX on custom data and get good performance with various YOLOX architectures. However my output is always constrained such that objects with overlapping bounding boxes always only have one detection.

Is it possible to modify the network head to be able to generate multiple overlapping bounding box predictions? (particularly for objects of the same class very close together or partially occluding each other)

Thanks!

FateScript commented 2 years ago

How about trying class agnostic nms? ( in demo_utils)

ajwl27 commented 2 years ago

@FateScript Thanks for your reply. Sorry to ask but exactly how do I use that function? Is it different to just setting class_agnostic=True when calling post_process() e.g. in demo.py? (as below)

image

FateScript commented 2 years ago

You may import demo_postprocessing from yolox.utils.demo_utils and just simply replace it with postprocess.

ajwl27 commented 2 years ago

@FateScript But arguments are different to each? And they seem to work completely differently..?

def postprocess(prediction, num_classes, conf_thre=0.7, nms_thre=0.45, class_agnostic=False):

def multiclass_nms_class_agnostic(boxes, scores, nms_thr, score_thr):

FateScript commented 2 years ago

@ajwl27 sorry for not noticing your reply and in postprocess(prediction, num_classes, conf_thre=0.7, nms_thre=0.45, class_agnostic=False), setting class_agnostic=True could help. I mis-remember sth.

rOtking commented 1 year ago

@ajwl27 hi, what's the result about the overlapped objects? i have met the same question with you. And @FateScript I want to know have you verify whether the simota sovle the overlapped objects label assignment? Currently, i am sovling the overlapped objects detection, and i think simota is a good idea, but it seems does not work when i try yolox.

FateScript commented 1 year ago

@rOtking We haven't tried YOLOX on overlapped object detection task. However, someone try yolox on crowd-human dataset and get a better result.

rOtking commented 1 year ago

@FateScript Thank you for your replying!!! And Do i need 300 epoch for a good performance? In order to get a quick verification i just trained 80 epoch. In theory, do you think simota is a good way to sovle overlapped objects label assignmnet?