# 我的DETR源码实验 **Repository Path**: penguink3/My_DETR ## Basic Information - **Project Name**: 我的DETR源码实验 - **Description**: 进行了DETR源码实验,用于打比赛和学习目标检测准备 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-15 - **Last Updated**: 2022-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > DETR文献阅读笔记:https://gitee.com/penguink3/papers/blob/master/Transformer/Object%20Detection%20with%20Transformers/DETR%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0.md # 1. 文件结构(只罗列我看懂的和需要的) ## 1.1. 说在前面 1. 注明源码出处:https://www.bilibili.com/video/BV1GC4y1h77h?spm_id_from=333.880.my_history.page.click 2. 更多DETR相关可以查看[DETR](DETR.md) 3. 请根据[requirments.txt](requirements.txt)配置好环境 4. 下载官方预训练参数,放置到detr-r50文件夹 ``` 链接:https://pan.baidu.com/s/1brQWpw6hZIj-jwijIO5czA?pwd=8xii 提取码:8xii --来自百度网盘超级会员V5的分享 ``` ## 1.2. 文件结构 ``` d2/detr/detr:DETR模型的源码,可以参考参考(一个示例,不是主要代码) data: |- coco: annotation: 指示性标识文件(label)的存放文件夹,固定包含instances_train.json和instances_val.json两个文件 samples: 存放几张图片,用于训练好的模型的test train: 训练集数据图片 val: 校验集数据图片 |- 其他数据集可以仿照coco中的格式放置 |- labelme2coco.py: 把labelme格式的label转化成coco格式 dataset: 处理数据集的文件夹 coco.py: 代码最下方PATHS可以定义train数据集和val数据集存放的文件夹的名称和instances_xxx.json文件的名称 models: 代码中真正定义DETR模型的地方 detr-r50: 存放模型初始化参数文件 change.py: 根据输出类型的数量修改初始化参数文件 detr-r50-e632da11.pth: 初始化参数文件(没上传,自己下载) main.py: 训练DETR模型的主要启动文件 Predict.py: 根据训练好的模型预测 ``` # 2. 如何利用源码训练并预测自己的数据集? ## 2.1. 训练自己的数据集 1. 使用labelme打标签,具体做法请看这篇文章:https://gitee.com/penguink3/My_YOLO 2. 运行[change.py](../detr-r50/change.py)产生对应的模型初始化参数文件 - 需要修改代码中num_class为你的分类类别数+1 3. 修改detr.py中的num_class为你的分类类别数+1 ```py # 修改前 num_classes = x if args.dataset_file != 'coco' else x # 修改后 num_classes = 3 if args.dataset_file != 'coco' else 3 ``` 4. 使用[labelme2coco.py](data/labelme2coco.py)生成对应的标签文件 - 你应该把它放在打标签时存储json标签文件的文件夹中 - 然后运行这个python脚本文件,他会生成一个文件 - val数据集和train数据集都要生成
5. 整理数据集和生成的标签文件,成如下结构(可以参考data/coco文件夹),放入data文件夹
6. 运行训练代码main.py,当然需要加运行参数 ```py --dataset_file "coco" --coco_path data/apple # 数据集存放位置 --epochs 100 # 训练回合数 --lr=1e-4 # 学习率 --batch_size=2 # batch大小 --num_workers=4 --output_dir="checkpoint" # 模型参数输出路径,默认不改 --resume="detr-r50/detr-r50_2.pth" # 预训练模型参数名字 ``` ## 2.2. 如何检测自己的图片 1. 修改[Predict.py](Predict.py)文件中的 - filename 和 filedir,一个是文件夹所在地,一个是要检测的图片名称 - CLASSES: 你数据集的预测类别,你可以在你数据集文件夹中的instances_train.json中查看 - COLORS: 有多少类,至少给多少个COLOR用于框框 2. 运行Predict文件,你可以在predict文件夹中找到输出结果