使用 python 批量移动文件夹下的文件
前言与需求分析
之前用 yolov5 做了一个飞行器的检测,本来 yolo 应该是一个分类器,但是我把它当作一个单个种类的检测器,本来以外我做错了,但是后来我用我的数据跑起来还是效果不错的(单纯指的是识别,精度效果还有待商榷),CSDN 了一番发现国内关于使用 yolo 检测单一种类众说纷纭,所以去 stackflow 去查了一下,就是单纯检测一类做训练是可以的,甚至有专门的攻略,真就 CSDN 是 2 咯?
一开始做毕设的设想是 Yolov4,Yolov3做个对比,水一下就划过去了.但是在 B 乎上发现某大神说他用 yolov4 做 DOTA 数据的检测用不了,后来发现他的数据裁剪的大小是 640 x 640 的,而 yolov4 要求 608 x 608 的,而且 Yolov4,Yolov3 不大好配置,而且标签的格式不大一样,恰好昨天和一位群友交流的时候,他用 Retinanet 做了DOTA 的识别,再一查,好家伙,这标注的格式和知乎大神给的数据格式差不多,所以就突发奇想,能不能把我原来 yolov5 的同名 txt 从另一个 Labeltxt 中给拿出来并且处理一下然后批量复制到另一个文件夹中去.
这张图是 yolov5 的标注格式,如果要训练单一种类的话要从 0 开始,并且标签的格式是 class 四个归一化坐标
而 yolov4,Retinanet 分别用的是 image_path,坐标,种类名,种类标签
,image_path,坐标,种类名
这是 Retinanet 的数据格式的介绍,而下面数具体的数据的格式的例子.
由于 DOTA 数据集有原始的标注格式,所以我就想直接把那个复制过来,然后放进来,但是在 yolov5 中,我的仅有飞机的种类是训练数据集有 1823 个 txt 数据,而验证集合有 498 txt 数据,而原始的 DOTA 数据集合中有 10000+ 个 txt 数据,所以我不可能从 DOTA 数据集那里面一个一个对应找到仅包含飞机的 txt 文件.
所以我的需求就是这样的,
/home/neverland/桌面/yolov5/coco/data/train/labels
这个文件夹中有 1823 个 txt 文