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问题解决方法
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



