Детекция в yolo
У меня есть функция с детекцией на yolov8 и мне в консоли выходит это:
image 1/1 /content/download.jpg: 352x640 1 cat, 1 dog, 348.5ms Speed: 21.9ms preprocess, 348.5ms inference, 37.1ms postprocess per image at shape (1, 3, 352, 640) Results saved to runs/detect/predict runs/detect/predict/download.jpg
def detect_all_in_foto_and_vidio(file):
!rm -rf /content/runs/detect/predict
results = model(file, save=True, save_frames=True, stream = True)
n_result = next(results)
output_path = os.path.join(
n_result.save_dir, os.listdir(n_result.save_dir)[0]
)
for i in results:
pass
return output_path
Как отсюда достать информацию о найденных объектах(первую строку 1 cat, 1 dog)?
Ответы (2 шт):
Основные сведения приводятся в документации на yolov8 по ссылке.
Как я понял, можно сделать так:
def detect_all_in_foto_and_vidio(file):
!rm -rf /content/runs/detect/predict
results = model(file, save=True, save_frames=True, stream = True)
n_result = next(results)
output_path = os.path.join(
n_result.save_dir, os.listdir(n_result.save_dir)[0]
)
for i in results:
print(i.names) # должно быть "A dictionary of class names."
return output_path
По итогу можно просто прописать новую функцию для вывода найденных объектов.
def print_rez(file):
a = ""
model = YOLO('yolov8n.pt')
# Run inference on an image
results = model(file) # results list
# View results
for r in results:
a = a,r.verbose()
return a
По итогу у меня выходит массив их двух строк. Так можно сделать вывод дэтэкций для картинки.
PS: Буду очень рад, если кто-то подскажет, как сделать постоянный вывод найденных обьектов в консоль в режиме реального времени.