New Features
- Layer.ai integration
python
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
python
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
python
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
python
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