DETR复现: 复现了 Facebook AI 团队在2020年发表的论文《 End to End Object Detection with Transformers》,简称DETR模型,官方源码只提供训练评估源码,在此基础上我加入了预测代码,现完整代码已跑通,开源使用,仅供学习。
上面是所有的代码,大家可自取。
1.首先下载好官方的源码,加上我上面链接 Gitte 里的几个.py 文件, 在pycharm里打开。
2.配置自己的环境,包括 cuda,包等等,具体见文件 requirement,需要注意有两个 加载 Coco 数据集的包一般不好装,我将包放在了 Gitte 上面的链接里面,终端里面运行 setup.py 就可以
3.下载coco数据集,下载完成之后可以下载 subset.py 生成自己下采样 coco数据集用于训练(原数据集太大,推荐 1% 采样),或者用labelme制作自己的数据集。
4.修改权重,先在官方 github 下载 resnet50 模型,然后下载我 Gitte 里 weight.py,只需修改两个参数 一个 resnet50 的.pth 文件,一个自己数据集类别数,若是下采样则就写 92。然后生成自己的权重文件.pth
5.开始训练,Facebook AI 团队训练了 300 个 epoch,这里推荐修改 为 100,修改自己数据集位置 train2017 和 val2017 以及标注文件的路径,修改自己权重文件路径,开始训练, 训练完成之后会在output生成自己的训练模型 check 什么文件,记住他的路径。
5.将predict.py文件放入主文件里,调整自己下采样的coco数据集路径,训练模型路径,预测图像路径,保存图像路径,我写的预测文件可批处理图像。
这个是我手机上编辑的,所以没放图片,代码里面需要修改的地方我都加了注释,参考文章里面也都有,大差不差,下面有我训练完成的录屏,大家有问题可以评论区讨论以及私信,看见就会回复。
参考文章:
DETR训练自己的数据集-CSDN博客
【DETR】训练自己的数据集-实践笔记_detr训练量_暮已深的博客-CSDN博客
windows10复现DEtection TRansformers(DETR)并实现自己的数据集_detr复现-CSDN博客
DERT 模型复现视频