在GitHub上复现项目--以Deformable-DETR项目为例(研0适用)

给完全不懂的本科生或者研0的同学讲解一下怎么做GitHub上的项目,怎么复现。

注意:你至少要安装好anaconda、有个linux服务器下面才能顺利进行。

项目地址

fundamentalvision/Deformable-DETR: Deformable DETR: Deformable Transformers for End-to-End Object Detection.

下载代码

点击code

点击下载

当然也可以直接用git clone命令,如果你什么都不知道,就算了。

在IDE中打开,如图

下载数据集

我们需要下载coco2017的数据集,这个数据集说实话,随便找个地方都能下。去google,kaggle都随便下。不过我推荐在这个网站下,因为下载的快,国内能直接进。

COCO2017-完整数据集_数据集-飞桨AI Studio星河社区

验证集 注释文件等 训练集都下载

配置环境

在anaconda中配置环境

输入如下命令,然后回车

conda create -n deformable_detr python=3.7

我的命令

conda create -n deformable_detr python=3.10

注意!我这里的python是3.10,因为我的GPU是4090,等下我的pytroch版本也会变。我建议40系显卡都用3.10, 3060什么的显卡用3.10的版本也可以。

激活环境

conda activate deformable_detr

下载pytroch

conda install pytorch=1.5.1 torchvision=0.6.1 cudatoolkit=9.2 -c pytorch

我的命令

conda install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=12.1 -c pytorch -c nvidia
解释一下,我的GPU用不了太旧的pytroch版本,所以我重新选了一个。等下要改一点代码做一个适配。如果你的GPU能运行原来的代码,就用原来的。
进行如下更改

下载其他包

注意!运行这个命令的时候,进入你的项目环境中!

pip install -r requirements.txt
到我们下载的代码环境中

编译CUDA算子
 

依次执行下面的命令!

cd ./models/ops

sh ./make.sh

python test.py


出现这些文件(我这里编译了不同版本的,所以会多出来)

数据集的位置

按如下结构放置数据集

如图

下载预训练模型

点击GitHub中的这个位置(你也可以下载其他的),进去之后下载

将下载后的文件放到项目文件夹(如图)

进行评估

<path to config file> --resume <path to pre-trained model> --eval

填写后应该是这样

configs/r50_deformable_detr.sh--resume r50_deformable_detr-checkpoint.pth --eval

进行运行

得到结果

评估结果

IoU metric: bbox

 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.445

 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.635

 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.487

 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.268

 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.477

 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.595

 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.353

 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.587

 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.629

 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.416

 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.673

 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.819

IoU metric: bbox​​

表示评估的是边界框(bounding box)检测任务,使用IoU(Intersection over Union)作为评估标准。

​​Average Precision (AP) 指标​​:

​​AP @[IoU=0.50:0.95]​​ (主指标,通常称为"AP"或"mAP"):

0.445 表示模型在IoU阈值从0.5到0.95(步长0.05)的平均精度。这是COCO比赛的主要排名指标。

​​AP @[IoU=0.50]​​:

0.635 表示宽松阈值(IoU=0.5)下的精度,接近PASCAL VOC的评估标准。

​​AP @[IoU=0.75]​​:

0.487 表示严格阈值(IoU=0.75)下的精度。

​​不同物体尺寸的AP​​:

​​small​​ (小物体):0.268

​​medium​​ (中等物体):0.477

​​large​​ (大物体):0.595

说明模型对大物体检测效果最好,小物体检测最具挑战性。

​​Average Recall (AR) 指标​​:

​​AR @ maxDets=1​​:0.353(每张图像只检测1个框时的召回率)

​​AR @ maxDets=10​​:0.587(每张图像检测10个框时的召回率)

​​AR @ maxDets=100​​:0.629(每张图像检测100个框时的召回率)

​​不同物体尺寸的AR:

small: 0.416

medium: 0.673

large: 0.819

进行训练

运行下面代码

GPUS_PER_NODE=8 ./tools/run_dist_launch.sh 8 ./configs/r50_deformable_detr.sh

注意!这会同时跑8张卡,你没有8张卡,就把GPUS_PER_NODE=8 改成其他的数字,

比如 GPUS_PER_NODE=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值