RT-DETR实战入门:从环境搭建到YOLO数据集转换COCO格式
1. RT-DETR环境搭建避坑指南刚接触RT-DETR时环境配置是最容易翻车的第一关。我最初尝试时因为没注意torch版本兼容性问题浪费了整整两天时间。这里分享几个关键细节首先是PyTorch版本选择。官方推荐使用torch 2.0.1cu118组合但实际测试发现torch 2.1.0也能完美兼容。建议直接到PyTorch官网下载对应版本的whl文件离线安装。比如我的RTX 3090显卡就用这个命令pip install torch-2.0.1cu118-cp310-cp310-linux_x86_64.whl安装依赖时有个大坑直接运行pip install -r requirements.txt可能会装成CPU版本正确做法是先装好GPU版PyTorch再安装其他依赖。我建议按这个顺序操作创建conda虚拟环境python3.8最佳离线安装匹配的torch和torchvision安装requirements.txt列出的包单独安装transformers库验证环境是否正常有个小技巧import torch print(torch.cuda.is_available()) # 应该返回True print(torch.__version__) # 确认版本号2. YOLO转COCO格式全解析很多朋友的数据集都是YOLO格式的txt标注文件但RT-DETR需要COCO格式的json文件。这个转换过程看似简单实则暗藏玄机。我改造了一个更健壮的转换脚本增加了自动校验功能def validate_yolo_annotation(line, img_width, img_height): parts line.strip().split() if len(parts) ! 5: return False try: class_id, x, y, w, h map(float, parts) if not (0 x 1 and 0 y 1 and 0 w 1 and 0 h 1): return False except: return False return True转换时要注意三个关键点坐标转换YOLO用的是归一化的中心坐标COCO需要绝对坐标的左上角点ID映射YOLO的类别ID从0开始而COCO通常从1开始文件结构COCO标准格式要求images和annotations分开存放建议在转换后立即用这个代码检查结果with open(train_coco_format.json) as f: data json.load(f) print(f共转换 {len(data[images])} 张图片) print(f包含 {len(data[annotations])} 个标注框)3. 配置文件修改实战配置文件是RT-DETR最容易出错的地方我整理了最常见的三个配置项数据集路径配置train_dataloader: img_folder: /path/to/train # 训练集图片路径 ann_file: /path/to/train.json # 训练集标注文件 val_dataloader: img_folder: /path/to/val # 验证集图片路径 ann_file: /path/to/val.json # 验证集标注文件模型参数调整修改rtdetr_r18vd_6x_coco.yml中的num_classes调整batch_size根据显存大小16G显存建议设为8训练策略配置scheduler: name: MultiStepLR milestones: [30, 50] # 学习率衰减节点 gamma: 0.1 optimizer: lr: 0.001 # 初始学习率 weight_decay: 0.0001有个实用技巧可以用相对路径替代绝对路径。比如把数据集放在项目下的data文件夹就可以这样配置img_folder: data/train ann_file: data/annotations/train.json4. 训练过程监控与调优启动训练后别急着离开这几个指标需要重点关注GPU利用率用nvidia-smi -l 1监控正常应该在80%以上损失曲线分类损失和回归损失应该同步下降验证集mAP每epoch结束后查看是否稳定提升如果遇到loss震荡可以尝试减小学习率比如从0.001调到0.0005增加warmup步数建议500-1000迭代检查数据标注质量常见于自定义数据集训练中断后恢复训练的方法python tools/train.py \ --config configs/rtdetr/rtdetr_r18vd_6x_coco.yml \ --resume checkpoints/latest.pth最后提醒一个容易忽视的点COCO格式的标注文件路径一定要用正斜杠/即使在Windows下也是如此。这个细节坑过我两次特此强调
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2456005.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!