33 lines
1.0 KiB
Python
Executable File
33 lines
1.0 KiB
Python
Executable File
import cv2
|
|
from ultralytics import YOLO
|
|
|
|
# Load model đã huấn luyện
|
|
model = YOLO("src/server/train5/weights/best.pt")
|
|
|
|
# Đọc ảnh
|
|
image_path = "dataset/images/s-l1600.png"
|
|
img = cv2.imread(image_path)
|
|
|
|
# Chạy mô hình để dự đoán
|
|
results = model(image_path, conf=0.5) # Hạ conf xuống để giữ nhiều phát hiện hơn
|
|
|
|
# Xử lý kết quả dự đoán
|
|
for r in results:
|
|
for box in r.boxes:
|
|
x1, y1, x2, y2 = map(int, box.xyxy[0]) # Lấy tọa độ bbox
|
|
# print(x1, y1, x2, y2)
|
|
conf = float(box.conf[0]) # Độ tin cậy
|
|
cls = int(box.cls[0]) # Nhãn class ID
|
|
label = f"{model.names[cls]} {conf:.2f}" # Tạo nhãn hiển thị
|
|
|
|
# Vẽ bounding box (màu xanh lá cây)
|
|
cv2.rectangle(img, (x1, y1), (x2, y2), (199, 80, 105), 2)
|
|
|
|
# Vẽ nhãn (tên object)
|
|
cv2.putText(img, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)
|
|
|
|
# Hiển thị ảnh với bounding boxes
|
|
cv2.imshow("Detected Logos", img)
|
|
cv2.waitKey(0)
|
|
cv2.destroyAllWindows()
|