
RF-DETR网络概述

模型主要创新点包含:
1. RF-DETR采用预训练的ViT骨干网络来提取输入图像的多尺度特征。
2. 通过交错使用窗口注意力块与非窗口注意力块,以平衡准确性与计算延迟。
3. 可变形交叉注意力层和分割头均对投影器输出进行双线性插值,从而保持特征空间结构的一致性。
4. 在所有解码层同时施加检测损失与分割损失,以支持推理阶段对解码层的动态舍弃。

安装与配置
训练与配置参考代码与文档地址:
https://rfdetr.roboflow.com/learn/train/#fine-tuning
https://github.com/roboflow/rf-detrGithub地址
https://github.com/roboflow/rf-detr一键安装
pip install rfdetr -i https://mirrors.aliyun.com/pypi/simple训练自定义数据集
我基于OID的数据集中的大象类别,实现模型自定义数据迁移学习训练,支持的脚本如下:
from rfdetr import RFDETRNano
import pycocotools.coco as coco
import copy
original_loadRes = coco.COCO.loadRes
def patched_loadRes(self, resFile):
try:
return original_loadRes(self, resFile)
except Exception as e:
# Create a minimal COCO result object
res = coco.COCO()
res.dataset = copy.deepcopy(self.dataset)
# Add minimal required structure
if 'annotations' not in res.dataset:
res.dataset['annotations'] = []
return res
# Apply patch
coco.COCO.loadRes = patched_loadRes
model = RFDETRNano()
model.train(
dataset_dir="barray_det_ds",
epochs=100,
batch_size=4,
grad_accum_steps=4,
lr=1e-4,
output_dir="output"
)



导出与推理
支持导出ONNX格式模型,以RFDETR NANO模型为例,导出的模型输入与输出数据格式如下:

模型导出代码如下:
from rfdetr import RFDETRNano
model = RFDETRNano(pretrain_weights="rf-detr-nano.pth")
model.export()

深度学习系统化学习