Releases: roboflow/supervision
Releases Β· roboflow/supervision
supervision-0.9.0
π Added
- Ability to select
sv.Detections
by index, list of indexes or slice. Here is an example illustrating the new selection methods. (#118)
>>> import supervision as sv
>>> detections = sv.Detections(...)
>>> len(detections[0])
1
>>> len(detections[[0, 1]])
2
>>> len(detections[0:2])
2
- Ability to extract masks from YOLOv8 results using
sv.Detections.from_yolov8
. Here is an example illustrating how to extract boolean masks from the result of the YOLOv8 model inference. (#101)
>>> import cv2
>>> from ultralytics import YOLO
>>> import supervision as sv
>>> image = cv2.imread(...)
>>> image.shape
(640, 640, 3)
>>> model = YOLO('yolov8s-seg.pt')
>>> result = model(image)[0]
>>> detections = sv.Detections.from_yolov8(result)
>>> detections.mask.shape
(2, 640, 640)
- Ability to crop the image using
sv.crop
. Here is an example showing how to get a separate crop for each detection insv.Detections
. (#122)
>>> import cv2
>>> import supervision as sv
>>> image = cv2.imread(...)
>>> detections = sv.Detections(...)
>>> len(detections)
2
>>> crops = [
... sv.crop(image=image, xyxy=xyxy)
... for xyxy
... in detections.xyxy
... ]
>>> len(crops)
2
- Ability to conveniently save multiple images into directory using
sv.ImageSink
. An example shows how to save every tenth video frame as a separate image. (#120)
>>> import supervision as sv
>>> with sv.ImageSink(target_dir_path='target/directory/path') as sink:
... for image in sv.get_video_frames_generator(source_path='source_video.mp4', stride=10):
... sink.save_image(image=image)
π οΈ Fixed
- Inconvenient handling of
sv.PolygonZone
coordinates. Nowsv.PolygonZone
accepts coordinates in the form of[[x1, y1], [x2, y2], ...]
that can be both integers and floats. (#106)
π Contributors
supervision-0.8.0
π Added
- Support for dataset inheritance. The current
Dataset
got renamed toDetectionDataset
. NowDetectionDataset
inherits fromBaseDataset
. This change was made to enforce the future consistency of APIs of different types of computer vision datasets. (#100) - Ability to save datasets in YOLO format using
DetectionDataset.as_yolo
. (#100)
>>> import supervision as sv
>>> ds = sv.DetectionDataset(...)
>>> ds.as_yolo(
... images_directory_path='...',
... annotations_directory_path='...',
... data_yaml_path='...'
... )
- Support for
DetectionDataset.split
allowing to divideDetectionDataset
into two parts. (#102)
>>> import supervision as sv
>>> ds = sv.DetectionDataset(...)
>>> train_ds, test_ds = ds.split(split_ratio=0.7, random_state=42, shuffle=True)
>>> len(train_ds), len(test_ds)
(700, 300)
π± Changed
- Default value of
approximation_percentage
parameter from0.75
to0.0
inDetectionDataset.as_yolo
andDetectionDataset.as_pascal_voc
. (#100)
π Contributors
supervision-0.7.0
π Added
Detections.from_yolo_nas
to enable seamless integration with YOLO-NAS model. (#91)- Ability to load datasets in YOLO format using
Dataset.from_yolo
. (#86) Detections.merge
to merge multipleDetections
objects together. (#84)
π± Changed
LineZoneAnnotator.annotate
to allow for the custom text for the in and out tags. (#44)
π οΈ Fixed
LineZoneAnnotator.annotate
does not return annotated frame. (#81)
π Contributors
supervision-0.6.0
π Added
- Initial
Dataset
support and ability to saveDetections
in Pascal VOC XML format. (#71) - New
mask_to_polygons
,filter_polygons_by_area
,polygon_to_xyxy
andapproximate_polygon
utilities. (#71) - Ability to load Pascal VOC XML object detections dataset as
Dataset
. (#72)
π± Changed
- order of
Detections
attributes to make it consistent with order of objects in__iter__
tuple. (#70) generate_2d_mask
topolygon_to_mask
. (#71)
π Contributors
supervision-0.5.2
supervision-0.5.1
π οΈ Fixed
- Fixed
Detections.__getitem__
method did not return mask for selected item. - Fixed
Detections.area
crashed for mask detections.
π Contributors
supervision-0.5.0
π Added
Detections.mask
to enable segmentation support. (#58)MaskAnnotator
to allow easyDetections.mask
annotation. (#58)Detections.from_sam
to enable native Segment Anything Model (SAM) support. (#58)
π± Changed
Detections.area
behaviour to work not only with boxes but also with masks. (#58)
π Contributors
supervision-0.4.0
π Added
Detections.empty
to allow easy creation of emptyDetections
objects. (#48)Detections.from_roboflow
to allow easy creation ofDetections
objects from Roboflow API inference results. (#56)plot_images_grid
to allow easy plotting of multiple images on single plot. (#56)- Initial support for Pascal VOC XML format with
detections_to_voc_xml
method. (#56)
π± Changed
show_frame_in_notebook
refactored and renamed toplot_image
. (#56)