Linux Yolo5 5.0实现以及雷区
需要注意的点
-
linux系统实现(可能影响不大)
-
严格按照炮哥数据集的顺序(文档顺序非常非常重要) 标签和文档顺序
https://blog.csdn.net/didiaopao/article/details/119808973?spm=1001.2014.3001.5501
(这里有一部分修改,参照之前博文,适用于linux的Labelimg安装)
-
训练完有两个txt文件,train和al在VOCdevkit下面。这里面推测是训练和验证数据集的名字list。
训练和检测按照步骤一步一步的走,这里备注问题
AttributeError: Can't get attribute 'SPPF' on <module 'models.common' from 'D:\\ModelTest\\yolov5-5.
问题解决方法
https://blog.csdn.net/weixin_65976457/article/details/123648154
文件转换xml转txt
in_file = open('/home/tmac/Workingdisc/kalkit/VOCdevkit/VOC2007/Annotations/%s.xml' %image_id)#输入标签位置
out_file = open('/home/tmac/Workingdisc/kalkit/VOCdevkit/VOC2007/YOLOLabels/%s.txt' %image_id, 'w')#输出yolo标签位置
#后面的文件夹位置最好也修改上绝对路径,否则跑乱了
wd = os.getcwd()
wd = os.getcwd()
data_base_dir = os.path.join(wd, "/home/tmac/Workingdisc/kalkit/VOCdevkit/")
if not os.path.isdir(data_base_dir):
os.mkdir(data_base_dir)
work_sapce_dir = os.path.join(data_base_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/VOC2007/")
if not os.path.isdir(work_sapce_dir):
os.mkdir(work_sapce_dir)
annotation_dir = os.path.join(work_sapce_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/VOC2007/Annotations/")
if not os.path.isdir(annotation_dir):
os.mkdir(annotation_dir)
clear_hidden_files(annotation_dir)
image_dir = os.path.join(work_sapce_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/VOC2007/JPEGImages/")
if not os.path.isdir(image_dir):
os.mkdir(image_dir)
clear_hidden_files(image_dir)
yolo_labels_dir = os.path.join(work_sapce_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/VOC2007/YOLOLabels/")
if not os.path.isdir(yolo_labels_dir):
os.mkdir(yolo_labels_dir)
clear_hidden_files(yolo_labels_dir)
yolov5_images_dir = os.path.join(data_base_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/images/")
if not os.path.isdir(yolov5_images_dir):
os.mkdir(yolov5_images_dir)
clear_hidden_files(yolov5_images_dir)
yolov5_labels_dir = os.path.join(data_base_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/labels/")
if not os.path.isdir(yolov5_labels_dir):
os.mkdir(yolov5_labels_dir)
clear_hidden_files(yolov5_labels_dir)
yolov5_images_train_dir = os.path.join(yolov5_images_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/images/train/")
if not os.path.isdir(yolov5_images_train_dir):
os.mkdir(yolov5_images_train_dir)
clear_hidden_files(yolov5_images_train_dir)
yolov5_images_test_dir = os.path.join(yolov5_images_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/images/val/")
if not os.path.isdir(yolov5_images_test_dir):
os.mkdir(yolov5_images_test_dir)
clear_hidden_files(yolov5_images_test_dir)
yolov5_labels_train_dir = os.path.join(yolov5_labels_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/labels/train/")
if not os.path.isdir(yolov5_labels_train_dir):
os.mkdir(yolov5_labels_train_dir)
clear_hidden_files(yolov5_labels_train_dir)
yolov5_labels_test_dir = os.path.join(yolov5_labels_dir, "/home/tmac/Workingdisc/kalkit/VOCdevkit/labels/val/")
if not os.path.isdir(yolov5_labels_test_dir):
os.mkdir(yolov5_labels_test_dir)
clear_hidden_files(yolov5_labels_test_dir)
#还有着几行,记录训练和测试数据集 打开和关闭
train_file = open(os.path.join(wd, "/home/tmac/Workingdisc/kalkit/VOCdevkit/images/yolov5_train.txt"), 'w')
test_file = open(os.path.join(wd, "/home/tmac/Workingdisc/kalkit/VOCdevkit/images/yolov5_val.txt"), 'w')
train_file.close()
test_file.close()
train_file = open(os.path.join(wd, "/home/tmac/Workingdisc/kalkit/VOCdevkit/labels/yolov5_train.txt"), 'a')
test_file = open(os.path.join(wd, "/home/tmac/Workingdisc/kalkit/VOCdevkit/labels/yolov5_val.txt"), 'a')
list_imgs = os.listdir(image_dir) # list image files