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
- refactor torch utils by @fcakyon in https://github.com/obss/sahi/pull/468
- add automodel structure for unified model loading by @fcakyon in https://github.com/obss/sahi/pull/469
- add support to instantiate a
DetectionModel
from layer by @mecevit in https://github.com/obss/sahi/pull/462
- refactor automodel by @fcakyon in https://github.com/obss/sahi/pull/470
- update layer versions in workflows by @fcakyon in https://github.com/obss/sahi/pull/471
- update version to 0.10.0 by @fcakyon in https://github.com/obss/sahi/pull/474
- Added support for exporting predictions in COCO format by @PushpakBhoge in https://github.com/obss/sahi/pull/465
- update contributors in readme by @fcakyon in https://github.com/obss/sahi/pull/477
- update device priority for Detectron2DetectionModel by @fcakyon in https://github.com/obss/sahi/pull/479
- fix pickle export for video by @fcakyon in https://github.com/obss/sahi/pull/481
- update continuous integration by @fcakyon in https://github.com/obss/sahi/pull/483
- refactor import and torch utils by @fcakyon in https://github.com/obss/sahi/pull/484
- make detectionmodel classes more explicit in automodel by @fcakyon in https://github.com/obss/sahi/pull/485
- utilize check_requirements in several modules by @fcakyon in https://github.com/obss/sahi/pull/487
- update package versions in workflows by @fcakyon in https://github.com/obss/sahi/pull/488
- add support for huggingface transformers object detectors by @devrimcavusoglu in https://github.com/obss/sahi/pull/475
- add torchvision detector support by @fcakyon in https://github.com/obss/sahi/pull/486
- remove legacy image_size parameter by @kadirnar in https://github.com/obss/sahi/pull/494
- AutoDetectionModel can be imported from sahi by @fcakyon in https://github.com/obss/sahi/pull/498
- add python3.6 support by @fcakyon in https://github.com/obss/sahi/pull/489
- refactor exception handling by @kadirnar in https://github.com/obss/sahi/pull/499
- improve requirements and import handling by @fcakyon in https://github.com/obss/sahi/pull/502
New Contributors
- @mecevit made their first contribution in https://github.com/obss/sahi/pull/462
- @PushpakBhoge made their first contribution in https://github.com/obss/sahi/pull/465
Full Changelog: https://github.com/obss/sahi/compare/0.9.4...0.10.0
Source code(tar.gz)
Source code(zip)