WXinlong / SOLO

SOLO and SOLOv2 for instance segmentation, ECCV 2020 & NeurIPS 2020.
Other
1.71k stars 307 forks source link

Unable to evaluate bbox #246

Open yebuxiu123 opened 1 year ago

yebuxiu123 commented 1 year ago

Solo doesn't support bbox metrics for evaluating models? Why am I running python tools/test_ins.py configs/solo/solo_r50_fpn_8gpu_1x.py SOLO_R50_1x.pth --show --out results_solo.pkl --eval bbox The following error occurs: Traceback (most recent call last): File "tools/test_ins.py", line 257, in main() File "tools/test_ins.py", line 235, in main coco_eval(result_files, eval_types, dataset.coco) File "/media/gc/My Passport/SOLO/mmdet/core/evaluation/coco_utils.py", line 36, in coco_eval result_file = result_files[res_type] KeyError: 'bbox'

zai1318 commented 12 months ago

The error you're encountering is related to the mismatch between the type of evaluation metric you're trying to use (bbox for bounding box evaluation) and the capabilities of the SOLO (Segmenting Objects by Locations) model.

SOLO is a framework designed for instance segmentation, not for object detection. The key difference here is:

Instance Segmentation: This task involves identifying each object instance in an image and delineating its shape at the pixel level. Instance segmentation models output masks for each object instance. Object Detection: This involves locating objects in an image and identifying their classes. Object detection models typically output bounding boxes and class labels.

The error message KeyError: 'bbox' indicates that the evaluation script is expecting results related to bounding boxes (bbox), but the SOLO model generates segmentation masks, not bounding boxes. This mismatch leads to the script not finding the required bbox results in the output of the SOLO model.

To resolve this, you should evaluate your model using metrics appropriate for instance segmentation. Common metrics include Intersection over Union (IoU) or metrics specific to the COCO dataset like Average Precision (AP) for segmentation masks. The evaluation command should be adjusted to reflect these metrics, likely replacing --eval bbox with a parameter suitable for segmentation evaluation, such as --eval segm.

If you specifically need to evaluate object detection performance (bounding box metrics), you would need to use an object detection framework like Faster R-CNN, YOLO, or SSD, which are designed to output bounding boxes for object detection tasks.