Как обрезать обнаруженный объект после тренировки на YOLO? - PullRequest
2 голосов
/ 06 мая 2020

Я использую YOLO для обучения модели. Я хочу обрезать обнаруженный объект. Для репозитория Dar knet я использую: https://github.com/AlexeyAB/darknet/

Для обнаружения и сохранения выходных координат в текстовом файле я использую это:! ./ dar knet данные теста детектора_for_colab / obj.data data_for_colab / yolov3-tiny-obj.cfg yolov3-tiny-obj_10000.weights -dont_show -ext_output result.txt Result.jpg

1 Ответ

2 голосов
/ 06 мая 2020

Учитывая, что в файле TEST.txt у вас есть детали как образец изображения. Вы можете использовать модуль re из python для обнаружения текстового шаблона, ie ваше «имя_класса».

Разбор файла .txt

import re
path='/content/darknet/result.txt'
myfile=open(path,'r')
lines=myfile.readlines()
pattern= "class_name"

for line in lines:
  if re.search(pattern,line):
    Cord_Raw=line
Cord=Cord_Raw.split("(")[1].split(")")[0].split("  ")

Теперь мы получит координаты в виде списка.

Расчет координат

x_min=int(Cord[1])
x_max=x_min + int(Cord[5])
y_min=int(Cord[3])
y_max=y_min+ int(Cord[7])

Обрезка из фактического изображения

import cv2
img = cv2.imread("Image.jpg")
crop_img = img[y_min:y_max, x_min:x_max]
cv2.imwrite("Object.jpg",crop_img)
...