如何在使用YOLO进行训练后裁剪检测到的对象

  • 本文关键字:裁剪 对象 YOLO yolo darknet
  • 更新时间 :
  • 英文 :


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

为了检测并将输出坐标存储在文本文件中,请使用以下方法:/暗网探测器测试数据_for_colab/obj.data数据_for_collab/yolov3-tiny-obj.cfg yolov3-tiny-obj_10000.weights-dont_show-ext_output<TEST.txt>结果.txt结果.jpg

考虑到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)

在Yolov5中,您可以轻松裁剪检测到的对象:

python detect.py --save-crop --source folderpath --weight yolov5s.pt

要裁剪特定的类,请添加--classes x(x是类索引号(

python detect.py --save-crop --classes 0 --source folderpath --weight yolov5s.pt

它只裁剪检测到图像的人(这个人在椰子数据集中的类索引为0(

相关内容

  • 没有找到相关文章

最新更新