Instructions to use iarbel/yolov8s_test with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use iarbel/yolov8s_test with ultralytics:
from ultralytics import YOLOvv8 model = YOLOvv8.from_pretrained("iarbel/yolov8s_test") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
| from ultralyticsplus import YOLO | |
| from typing import Dict, Any, List | |
| DEFAULT_CONFIG = {'conf': 0.25, 'iou': 0.45, 'agnostic_nms': False, 'max_det': 1000} | |
| BOX_KEYS = ['xmin', 'ymin', 'xmax', 'ymax'] | |
| class EndpointHandler(): | |
| def __init__(self, path=""): | |
| self.model = YOLO('ultralyticsplus/yolov8s') | |
| def __call__(self, data: Dict[str, Any]) -> List[Dict[str, Any]]: | |
| """ | |
| data args: | |
| image: image path to segment | |
| config: (conf - NMS confidence threshold, | |
| iou - NMS IoU threshold, | |
| agnostic_nms - NMS class-agnostic: True / False, | |
| max_det - maximum number of detections per image) | |
| Return: | |
| A :obj: `dict` | `dict`: {scores, labels, boxes} | |
| """ | |
| inputs = data.pop("inputs", data) | |
| input_config = inputs.pop("config", DEFAULT_CONFIG) | |
| config = {**DEFAULT_CONFIG, **input_config} | |
| if config is None: | |
| config = DEFAULT_CONFIG | |
| # Set model parameters | |
| self.model.overrides['conf'] = config.get('conf') | |
| self.model.overrides['iou'] = config.get('iou') | |
| self.model.overrides['agnostic_nms'] = config.get('agnostic_nms') | |
| self.model.overrides['max_det'] = config.get('max_det') | |
| # Get label idx-to-name | |
| names = self.model.model.names | |
| # perform inference | |
| result = self.model.predict(inputs['image'])[0] | |
| prediction = [] | |
| for score, label, box in zip(result.boxes.conf, result.boxes.cls, result.boxes.xyxy): | |
| item_score = score.item() | |
| item_label = names[int(label)] | |
| item_box = box.to(dtype=int).tolist() | |
| item_prediction = { | |
| 'score': item_score, | |
| 'label': item_label, | |
| 'box': dict(zip(BOX_KEYS, item_box)) | |
| } | |
| prediction.append(item_prediction) | |
| return prediction |