Skip to content

rohitrango/beyond-map

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Beyond mAP: Towards better evaluation of instance segmentation

This is the repository containing the source code for the CVPR 2023 paper ✨.

Installation instructions

Go to cocoapi/PythonAPI directory and install pycocotools as follows:

python setup.py build_ext --inplace

Next, copy the files from detectron2/evaluation into your detectron2 installation at detectron2/detectron2/evaluation/. Your detectron2 directory should look like this:

detectron2
|-- README.md
|-- configs
|   `-- ...
|-- datasets
|   `-- ...
|-- demo
|   `-- ...
|-- detectron2
|   |-- evaluation
|   |   |-- __init__.py
|   |   |-- connectiveness_evaluator.py
|   |   |-- f1score_evaluator.py
|   |   |-- f_boundary.py
|   |   |-- lrp_evaluator.py
|   |   |-- namingerror_evaluator.py
|   |   |-- tpmqscore_evaluator.py
|   |   `-- <other existing evaluator files>
|   `-- ...
`-- ...

Next, replace the following line in build_evaluator function in your train_net.py script:

if evaluator_type in ["coco", "coco_panoptic_seg"]:
    evaluator_list.append(COCOEvaluator(dataset_name, cfg, True, output_folder))

to

if evaluator_type in ["coco", "coco_panoptic_seg"]:
    evaluator_list.append(F1ScoreEvaluator(dataset_name, cfg, True, output_folder))
      evaluator_list.append(NamingErrorEvaluator(dataset_name, cfg, True, output_folder))
      evaluator_list.append(ConnectivenessEvaluator(dataset_name, cfg, True, output_folder))
      evaluator_list.append(LRPEvaluator(dataset_name, cfg, True, output_folder))
      evaluator_list.append(TPMQScoreEvaluator(dataset_name, cfg, True, output_folder))
      evaluator_list.append(COCOEvaluator(dataset_name, cfg, True, output_folder))

Finally, run your code!

Bibtex

If you find our work useful for your research, please cite:

@article{jena2023beyond,
  author    = {Jena, Rohit and Zhornyak, Lukas and Doiphode, Nehal and Chaudhari, Pratik and Buch, Vivek and Gee, James and Shi, Jianbo},
  title     = {Beyond mAP: Towards better evaluation of instance segmentation},
  journal   = {CVPR},
  year      = {2023},
}

To-do

I'm listing out the to-do items that I feel are important, feel free to convey your suggestions or feedback through the Issue Tracker, or email me directly.

  • Add Cython modules for Naming Error
  • Currently, all modules use their own COCOEval, resulting in redundant evaluation. Idea is to collate all the evaluators (except ConnectivenessEvaluator and NamingErrorEvaluator) to use the same COCOEval object.
  • Add mmdet implementations of all evaluators.

About

[CVPR 2023 Highlight] Beyond mAP: Towards better evaluation of instance segmentation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 86.7%
  • Python 6.5%
  • MATLAB 3.2%
  • Lua 1.1%
  • C++ 1.1%
  • Cython 0.9%
  • Other 0.5%