Skip to content

v0.10.0

Compare
Choose a tag to compare
@fcakyon fcakyon released this 21 Jun 14:15
· 181 commits to main since this release
4934db9

New Features

- Layer.ai integration

from sahi import AutoDetectionModel

detection_model = AutoDetectionModel.from_layer("layer/yolov5/models/yolov5s")

result = get_sliced_prediction(
    "image.jpeg",
    detection_model,
    slice_height = 512,
    slice_width = 512,
    overlap_height_ratio = 0.2,
    overlap_width_ratio = 0.2
)

- HuggingfFace Transformers object detectors

from sahi.model import HuggingfaceDetectionModel

detection_model = HuggingfaceDetectionModel(
    model_path="facebook/detr-resnet-50",
    image_size=640,
    confidence_threshold=0.5
)

result = get_sliced_prediction(
    "image.jpeg",
    detection_model,
    slice_height = 512,
    slice_width = 512,
    overlap_height_ratio = 0.2,
    overlap_width_ratio = 0.2
)

- TorchVision object detectors

import torchvision
from sahi.model import TorchVisionDetectionModel

model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)

detection_model = TorchVisionDetectionModel(
    model=model,
    image_size=640,
    confidence_threshold=0.5
)

result = get_sliced_prediction(
    "image.jpeg",
    detection_model,
    slice_height = 512,
    slice_width = 512,
    overlap_height_ratio = 0.2,
    overlap_width_ratio = 0.2
)

- Support for exporting predictions in COCO format

from sahi.utils.coco import Coco, CocoImage, CocoAnnotation, CocoPrediction
from sahi.utils.file import save_json
from pycocotools.cocoeval import COCOeval
from pycocotools.coco import COCO

coco_obj = Coco()

# add n images to coco_obj
for _ in range(n):
    image = CocoImage(**kwargs)
    
    # add n annotations to the image
    for _ in ange(n):
        image.add_annotation(CocoAnnotation(**kwargs))
    
    # add n predictions to the image
    for _ in range(n)
        image.add_prediction(CocoPrediction(**kwargs))
    
    # add image to coco object
    coco_obj.add_image(image)

# export ground truth annotations
coco_gt = coco_obj.json
save_json(coco_gt , "ground_truth.json")

# export predictions 
coco_predictions = coco_obj.prediction_array
save_json(coco_predictions, "predictions.json")

coco_ground_truth = COCO(annotation_file="coco_dataset.json")
coco_predictions = coco_ground_truth.loadRes("coco_predictions.json")
coco_evaluator = COCOeval(coco_ground_truth, coco_predictions, "bbox")
coco_evaluator.evaluate()
coco_evaluator.accumulate()
coco_evaluator.summarize()

What's Changed

New Contributors

Full Changelog: 0.9.4...0.10.0