import os
from ultralytics import YOLO
from PIL import Image, ImageDraw
model_path = '/home/yolo/best.pt'
model = YOLO(model_path)
input_folder = '/home/yolo/test'
output_folder = '/home/yolo/output'
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(('.jpg', '.jpeg', '.png', '.bmp')):
image_path = os.path.join(input_folder, filename)
results = model(image_path)
for i, result in enumerate(results):
image = Image.open(image_path)
draw = ImageDraw.Draw(image)
for box in result.boxes.xyxy:
draw.rectangle(box.tolist(), outline="red", width=3)
del draw
output_path = os.path.join(output_folder, f"{filename.split('.')[0]}_{i}_detected.jpg")
image.save(output_path)
print(f"Saved detection result to {output_path}")
일단 이런 코드로 폴더 안의 이미지를 불러와서 객체 탐지를 하고, 객체 탐지한 결과물을 저장하는 데 까지는 되었습니다. YOLO가 잡은 바운딩박스도 정상적으로 볼 수 있구요. 그런데 해당 저장물에 클래스와 확률이 표시되지 않아서 해당 부분을 추가하고 싶은데, 제가 지식이 짧은 탓에 탐지하지 못한 경우에 none값은 저장할 수 없다는 오류가 계속 출력됩니다. 해당 부분에 대해 혹시 해답을 아시는 분이 계시다면 답변 부탁드립니다 ㅠㅠ