YOLOv8Detection / scripts /yolo_run.py
Jaime García Villena
move scripts and create README
82604cd
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)