最近在做对大棚不同生育期草莓的目标检测,由于做yolo的太多了,遂转移赛道。这一转移不得了,发现这个RT-DETR居然远远超过了2020年的超级慢的DETR并且超越了yolov5,甚至v8。现准备先复现一下。
原论文:[2304.08069] DETRs Beat YOLOs on Real-time Object Detection (arxiv.org)
复现路上的参考文章1:使用官方版RT-DETR训练自己的数据集(Pytorch)_rtdetr训练自己数据-CSDN博客
参考文章2:
训练官方源码RT-DETR(血泪的教训!严格按照官方流程!)_rt-detr python-CSDN博客
简单按照参考文章1下载代码并尝试运行流程:前面与其保持一致,在第二步选择了自制数据集,因此在第三步有所不同,具体为我复制生成了一个新的yml文件,将其中的类别数改为自制数据集中的类别数(暂时未+1,detr中是需要+1的,后续有改动会补充)
此外,对于系统为windows的用户,num_workers需要改为0。(参考文章二给出)
至参考文章1的步骤三时,由于我使用的是自制的数据集,所以需要修改rtdetr_r18vd_6x_coco.yml路径
将图片中的第一行中的路径修改正确即可。
在运行后,遇到报错如下
报错原因为torchvision版本过低,直接输入pip install --upgrade torchvision(参考文章2)导致了新的报错,但依旧是版本问题
按照小绿发言,修改之后没问题后就正常运行了。
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
或者是在rtdetr_pytorch文件夹下启动环境,然后输入pip install -r requirements
Tips:
1.版本问题的话还是要去参考官方文档和自己的设备,单纯按照小绿可能存在显卡与环境不支持的状况或者pip install --upgrade torchvision也是易导致环境冲突
2.配置文件中的路径最好是绝对路径,因为这个官方代码的层级还是蛮多的,容易把人绕晕
3.配置文件中的类别数就是自己数据集的类别数,无需加1,这与detr不同
4.版本要求真的很严格!