简介
论文: https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2203.03605
代码: https://link.zhihu.com/?target=https%3A//github.com/IDEACVR/DINO
DINO: 让目标检测拥抱Transformer
主要特性:
- SOTA性能:在大模型上以相对较小的数据和模型(~1/10相比之前SwinV2)取得了最好的检测结果。在ResNet-50的标准setting下取得了51.3 AP。
- End2end(端到端可学习):DINO属于DETR类型的检测器,是端到端可学习的,避免了传统检测器许多需要手工设计的模块(如NMS)。
- Fast converging(收敛快): 在标准的ResNet-50 setting下,使用 5 个尺度特征(5-scale)的 DINO 在 12 个 epoch 中达到 49.4 AP,在 24 个 epoch 中达到 51.3 AP。使用4个尺度特征(4-scale)的DINO达到了了类似的性能并可以以 23 FPS 运行。
配置环境
下载代码
git clone https://github.com/IDEA-Research/DINO.git
cd DINO
安装Pytorch环境
# an example:
conda install -c pytorch pytorch torchvision
安装代码环境
pip install -r requirements.txt
编译CUDA operators
cd models/dino/ops
python setup.py build install
# unit test (should see all checking is True)
python test.py
cd ../../..
注意:
- 若出现cocoapi/panopticapi/MultiScaleDeformableAttention编译安装失败的情况, 请检查电脑中是否存在完整的C++编译环境, 缺少请安装相应编译环境, Win请参考如何解决 Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
- 编译CUDA operators 要求Pytorch与CUDA版本必须一致, 不能高也不能低. 若不一致请调成直至版本相同
- 执行
python test.py
后若出现缺少包MultiScaleDeformableAttention, 则说明CUDA operators编译安装失败, 若出现显存/内存溢出报错则属于正常现象.
PS: 其实CUDA高