CIoU  by Zzh-tju

Object detection research paper enhancing bounding box regression

created 5 years ago
336 stars

Top 83.0% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides implementations of Distance-IoU (DIoU) and Complete-IoU (CIoU) losses, along with Cluster-NMS (Non-Maximum Suppression) for improved object detection and instance segmentation. It targets researchers and practitioners in computer vision seeking to enhance bounding box regression and object detection performance. The primary benefit is faster convergence and better accuracy in object detection tasks.

How It Works

The project introduces DIoU and CIoU losses, which incorporate geometric factors like center point distance and aspect ratio into the bounding box regression loss function. This approach leads to more direct convergence compared to traditional IoU-based losses. Cluster-NMS is a novel NMS algorithm that groups detections by class and applies NMS within clusters, or by adding class offsets to coordinates to ensure zero IoU between different classes, improving efficiency and accuracy.

Quick Start & Requirements

  • Install: Clone the repository and set up the environment using environment.yml (Conda) or manually with pip.
  • Prerequisites: PyTorch 1.0.1+, TorchVision, CUDA toolkit, Cython, opencv-python, pillow, pycocotools, matplotlib.
  • YOLACT++: Requires compiling DCNv2 (cd external/DCNv2 && python setup.py build develop).
  • Dataset: COCO dataset and annotations are required for training/evaluation. Download via sh data/scripts/COCO.sh.
  • Links: YOLACT++, DIoU-SSD-pytorch, yolov5.

Highlighted Details

  • CIoU loss shows improved bounding box regression compared to SL1 loss.
  • Cluster-NMS variants (SPM, Distance, Weighted) offer performance gains over standard NMS.
  • Benchmarks on COCO demonstrate significant FPS improvements with Cluster-NMS variants compared to original NMS, while maintaining or improving AP metrics.
  • Supports integration with YOLACT, YOLOv3, YOLOv5, SSD, and Faster R-CNN.

Maintenance & Community

The project is associated with author Zhaohui Zheng. Further details on community or roadmap are not explicitly provided in the README.

Licensing & Compatibility

The README does not explicitly state a license. Compatibility for commercial use or closed-source linking is not specified.

Limitations & Caveats

The project is based on YOLACT++, which requires compiling DCNv2, adding a build step. Some NMS implementations might be slower than highly optimized versions like Torchvision's NMS without further engineering. The README mentions that some experimental NMS variants (SPM + Distance + Weighted Cluster-NMS) were not included in the paper.

Health Check
Last commit

1 year ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
3 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.