With more than one year in the making, this is one of the biggest releases yet:
* Support for Python 3.9
* New support for multi-class object classification (e.g. for classifying nuclei into different types, details below)
* Lots of additions to increase memory/time efficiency (details below)
* Integration functions for the new [StarDist napari plugin](https://github.com/stardist/stardist-napari)
* Many bug fixes
Object classification
In addition to detecting all *object instances* (e.g. cell nuclei), StarDist can now additionally classify each found object instance into a fixed number of different *object classes* (e.g. cell types). Please see the [example notebook](https://nbviewer.jupyter.org/github/stardist/stardist/blob/master/examples/other2D/multiclass.ipynb) for a demonstration with 2D images, but the feature also works for 3D images.
Efficiency
There are many changes (mostly internal) that increase the overall efficiency. Highlights:
- Non-maximum suppression (NMS) has been refactored and is now considerably faster (now uses kd-trees internally, inspired by PR 40 from GFleishman. Thanks!)
- Better integration of [`edt`](https://github.com/seung-lab/euclidean-distance-transform-3d) to speed up training (we thank william-silversmith for the discussion in #146)
- CNN prediction is now vastly more memory-efficient for large images ([`sparse` flag](https://github.com/stardist/stardist/blob/3451a4f9e7b6dcef91b09635cc8fa78939fb0d29/stardist/models/base.py#L621-L623), enabled by default)
If that's not memory-efficient enough, there's still the option of block-wise processing for very large images ([`predict_instances_big`](https://github.com/stardist/stardist/blob/3451a4f9e7b6dcef91b09635cc8fa78939fb0d29/stardist/models/base.py#L749-L800)).