0.30.7
mickael-kerjean/filestash0.30.7Oct 4, 2026by Borda
Upgrading?
AI Summary
This patch release resolves eight bugs that caused video processing to hang and corrects Mean Average Precision (mAP) calculations to match `pycocotools`.
Key Highlights
- `process_video` raises errors instead of hanging on write failures
- `MeanAveragePrecision` matches `pycocotools` recall thresholds
- Dataset export allows writing back into the original folder
- `from_transformers` now accepts semantic segmentation scores
New Features
- Support for semantic segmentation scores in Transformers
- In-place dataset export functionality
Full Release Notes
# v0.30.7 β Fewer hangs, truer mAP
Eight bug fixes: video processing, dataset export, mAP and Transformers loading no longer fail or hang silently.
- **`process_video`** raises on a failed write instead of hanging.
- **`MeanAveragePrecision`** matches `pycocotools` where recall lands on a threshold.
- **Dataset export** can write back into the folder the images came from.
- **`from_transformers`** reads semantic output that includes per-pixel scores.
Drop-in upgrade, no code changes. Stored mAP baselines may shift slightly.
## β¨ Spotlights / highlights
**`sv.process_video` stops hanging** ([#2636](https://github.com/roboflow/supervision/pull/2636))
A frame the writer rejects, or a callback that returns `None`, now raises instead of blocking forever.
```python
import supervision as sv
def callback(frame, index):
sv.BoxAnnotator().annotate(frame.copy(), detections) # forgot `return`
sv.process_video("in.mp4", "out.mp4", callback)
# before: hangs after `writer_buffer` frames
# now: TypeError naming the frame
```
**`sv.metrics.MeanAveragePrecision` matches `pycocotools`** ([#2638](https://github.com/roboflow/supervision/pull/2638))
Recall thresholds and recall are float64, as in `COCOeval`. A class whose recall lands exactly on a threshold used to score slightly high: mAP@50 0.7470 instead of 0.7415 in one case.
**Datasets re-export in place** ([#2637](https://github.com/roboflow/supervision/pull/2637))
```python
ds = sv.DetectionDataset.from_coco(
images_directory_path="data",
annotations_path="data/_annotations.coco.json",
)
ds.as_coco(
images_directory_path="data",
annotations_path="data/_annotations.coco.json",
)
# before: shutil.SameFileError
# now: annotations rewritten, images left in place
```
**Transformers semantic output with scores** ([#2643](https://github.com/roboflow/supervision/pull/2643))
`sv.Detections.from_transformers` accepts results from `return_segmentation_scores=True` instead of raising `KeyError: 'segments_info'`.
## π Migration guide
No migration required for this release.
## π Notable changes
### π§ Fixed
- `sv.process_video` raises `RuntimeError("Writer thread raised: ...")` or `TypeError` instead of hanging when a frame cannot be written or a callback returns `None`. ([#2636](https://github.com/roboflow/supervision/pull/2636))
- `sv.metrics.MeanAveragePrecision` computes IoU and recall thresholds, IoUs and recall in float64, matching `pycocotools`. mAP changes only for classes whose recall lands exactly on one of the 101 thresholds, by up to about 0.007 mAP@50. ([#2638](https://github.com/roboflow/supervision/pull/2638))
- `sv.DetectionDataset.as_yolo`, `as_pascal_voc`, `as_coco`, `as_createml` and `as_labelme` export into the folder the images were loaded from instead of failing with `shutil.SameFileError`. ([#2637](https://github.com/roboflow/supervision/pull/2637))
- `sv.Detections.from_transformers` accepts semantic segmentation output with `segmentation_scores`; per-pixel scores stay out of per-detection `confidence`. ([#2643](https://github.com/roboflow/supervision/pull/2643))
- `sv.crop_image` clips finite crop coordinates outside the 32-bit integer range to the image bounds, instead of wrapping to an empty crop. ([#2642](https://github.com/roboflow/supervision/pull/2642))
- `sv.DetectionDataset.as_labelme` gives disconnected components of one mask a shared group ID, so `from_labelme` rebuilds one detection. ([#2640](https://github.com/roboflow/supervision/pull/2640))
- `sv.DetectionDataset.as_labelme`, `as_yolo` and `as_pascal_voc` export in-memory grayscale `(height, width)` images. ([#2641](https://github.com/roboflow/supervision/pull/2641))
- `sv.KeyPoints.with_nms` keeps skeletons with zero joints instead of raising a zero-size reduction error. ([#2639](https://github.com/roboflow/supervision/pull/2639))
## π Contributors
- **kevin** (@kevin9327) β stopped `process_video` hangs, made mAP match `pycocotools`, and fixed in-place dataset export.
- **Marvel Harisson** (@INo-xious, [LinkedIn](https://www.linkedin.com/in/marvel-harisson-4102b7345/)) β fixed LabelMe grouping, grayscale dataset export and keypoint NMS.
- **NIKHIL** (@Nikhi00718) β fixed `crop_image` clipping and Transformers semantic output loading.
______________________________________________________________________
**Full changelog**: <https://github.com/roboflow/supervision/compare/0.30.6...0.30.7>
Related Repositories
ollama/ollamaβ
184,218
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frpβ
110,057
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflowβ
92,619
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugoβ
90,199
The worldβs fastest framework for building websites.
junegunn/fzfβ
83,715
:cherry_blossom: A command-line fuzzy finder