Instructions to use SpotLab/YOLOv8Detection with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SpotLab/YOLOv8Detection with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("object-detection", model="SpotLab/YOLOv8Detection")# Load model directly from transformers import Yolov8ForObjectDetection model = Yolov8ForObjectDetection.from_pretrained("SpotLab/YOLOv8Detection", dtype="auto") - Notebooks
- Google Colab
- Kaggle
| from ultralytics import YOLO | |
| """ | |
| Created on Wed Oct 4 16:44:12 2023 | |
| @author: lin | |
| """ | |
| import glob | |
| import sys | |
| sys.path.append('../../..') | |
| import os | |
| import cv2 | |
| import json | |
| import tensorflow as tf | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| # from utils.bbox_op import non_max_supression | |
| def plot_prediction(image_np, bboxes, classes, scores, label_map): | |
| color=(255,0,0) | |
| thickness=5 | |
| font_scale=3 | |
| for i, box in enumerate(bboxes): | |
| box = bboxes[i, :] | |
| x0, y0, x1, y1 = box | |
| xmin = int(x0) | |
| ymin = int(y0) | |
| xmax = int(x1) | |
| ymax = int(y1) | |
| print(xmin, ymin, xmax, ymax) | |
| image_np = cv2.rectangle(image_np, (xmin, ymin), (xmax, ymax), color=color, thickness=thickness) | |
| text_x = xmin - 10 if xmin > 20 else xmin + 10 | |
| text_y = ymin - 10 if ymin > 20 else ymin + 10 | |
| display_str = label_map[str(int(classes))] | |
| cv2.putText( | |
| image_np, | |
| display_str, | |
| (text_x, text_y), | |
| cv2.FONT_HERSHEY_SIMPLEX, | |
| font_scale, | |
| color, | |
| thickness, | |
| ) | |
| plt.imshow(image_np) | |
| plt.show() | |
| if __name__ == "__main__": | |
| min_th = 0.1 | |
| labels_json = "coco_labels.json" | |
| with open(labels_json) as f: | |
| label_map = json.load(f) | |
| img_path = "test_images" | |
| saved_tflite = "tflite_model.tflite" | |
| # load model | |
| model = YOLO("yolov8n.pt") | |
| images = glob.glob(os.path.join(img_path, "*")) | |
| for img in images: | |
| image_np = cv2.imread(img) # gpreprocess(img) | |
| image_np = cv2.cvtColor(image_np, cv2.COLOR_BGR2RGB) | |
| # print(image_np.shape) | |
| # image_np = np.array(Image.open(image_path)) | |
| results = model(img) | |
| boxes = results[0].boxes | |
| print(boxes.xyxy) | |
| print(boxes.cls) | |
| print(boxes.conf) | |
| plot_prediction(image_np, boxes.xyxy.numpy(), boxes.cls.numpy(), boxes.conf.numpy(), label_map) | |