使用YOLO训练后如何裁剪检测到的物体?

时间:2020-05-06 19:17:23

标签: yolo darknet

我正在使用YOLO进行模型训练。我想裁剪检测到的对象。 对于Darknet资源库,我使用的是:https://github.com/AlexeyAB/darknet/

为了检测并在文本文件中存储输出坐标,正在使用以下命令: !./暗网检测器测试data_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 个答案:

答案 0 :(得分:2)

在TEST.txt文件中,您具有作为示例图像的详细信息。 您可以使用python的 re 模块进行文本模式检测,即您的“ class_name”。

解析.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)