我正在使用 YOLO 进行模型训练。我想裁剪检测到的对象。对于 Darknet 存储库,我使用的是:https ://github.com/AlexeyAB/darknet/
对于检测并将输出坐标存储在文本文件中,我使用以下命令:!./darknet detector test data_for_colab/obj.data data_for_colab/yolov3-tiny-obj.cfg yolov3-tiny-obj_10000.weights -dont_show -ext_output < TEST.txt >结果.txt 结果.jpg
考虑到 TEST.txt 文件中包含示例图像的详细信息。您可以使用python 的re模块进行文本模式检测,即您的“class_name”。
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(" ")
Run Code Online (Sandbox Code Playgroud)
现在我们将获得列表中的坐标。
x_min=int(Cord[1])
x_max=x_min + int(Cord[5])
y_min=int(Cord[3])
y_max=y_min+ int(Cord[7])
Run Code Online (Sandbox Code Playgroud)
import cv2
img = cv2.imread("Image.jpg")
crop_img = img[y_min:y_max, x_min:x_max]
cv2.imwrite("Object.jpg",crop_img)
Run Code Online (Sandbox Code Playgroud)