Skip to content

Distributed Polygon Non-Maximum Suppression Python Library

License

Notifications You must be signed in to change notification settings

WolodjaZ/PolyGoneNMS

Repository files navigation

PolyGoneNMS

PolyGoneNMS is a library for efficient and distributed polygon Non-Maximum Suppression (NMS) in Python. It supports various NMS methods, intersection calculations, and can handle large numbers of polygons in 1D, 2D, and 3D spaces. PolyGoneNMS uses R-tree data structures and shapely polygon objects for optimal performance.

Benchmark Plots

Benchmark results

Features

  • Efficient polygon NMS for large numbers of polygons.
  • Support for various NMS methods: Default, Soft, and Class Agnostic.
  • Support for different intersection methods: IOU, IOS, and Dice.
  • R-tree data structure for efficient spatial indexing and querying.
  • Distributed processing support using Ray and Dask.
  • Comprehensive documentation and examples.

Installation

You can install PolyGoneNMS using pip:

pip install polygone-nms

Quickstart

import numpy as np
from polygone_nms import polygone_nms

# Example input data
data = np.array([
    [0, 0, 1, 1, 0, 1, 0, 0, 1, 0.9],
    [0.5, 0.5, 1.5, 1.5, 0.5, 1.5, 0, 0, 1, 0.8],
])

# Apply NMS
results = nms(data, distributed=None, nms_method="Default", intersection_method="IOU")

print("Filtered indices:", results)

# Filtered data
print("Filtered data:")
print(data[results])

For a more detailed guide on using PolyGoneNMS, please see the Quickstart in the documentation.

Documentation

Detailed documentation is available at: Docs

Contributing

We welcome contributions to the project! Please follow the usual GitHub process for submitting issues or pull requests.

License

This project is licensed under the MIT License.

About

Distributed Polygon Non-Maximum Suppression Python Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages