1.DINO
为避免将“DINO”混为一谈防止歧义,首先简述"DINO"的发展现状。
IDEA-Research DINO系列:DETR, DINO, Grounding DINO, DINO-X
meta/facebook DINO系列:DINO, DINOv2
由IDEA研究院提出的DINO(全称:DETR with Improved Non-maximum Suppression Optimization)是一种基于Transformer架构的目标检测模型,它是DETR的一种改进版本,旨在通过改进的去噪锚框机制解决原始DETR模型的一些局限性,特别是其较慢的收敛速度和对小目标检测能力的不足。体验demo:Playground: Grounding DINO
由meta提出的DINO(全称:Self-Distillation with No Labels),是一个自监督学习(SSL)框架,使用ViT作为核心架构,通过自蒸馏技术来训练模型,无需标签即可进行图像表示学习,可应用于图像分类、目标检测、语义分割等任务。体验demo: DINOv2 by Meta AI
2.环境配置与部署测试
官方文档:https://github.com/IDEA-Research/DINO
官方版本:python=3.7.3,pytorch=1.9.0,cuda=11.1
2.1 准备工作
在开始进行环境配置与部署前,首先建议Windows上具有正确版本的C++编译工具(VC>=14.0),简单的办法是安装Microsoft Visual C++ Build Tools 14.0(即VC 14.0)或Visual Studio 2015-2022版本,通常建议Visual Studio 2019(即VS2019),vs与vc的对应关系参考:VS各个版本对应的C++版本一览表(持续更新,最新为VS2022)_microsoft visual c++有好多个版本-CSDN博客
检查相应的cuda,cudatoolkit,pytorch版本,参考 Get Started. 一般来说,cuda的兼容性(向前兼容)较好,可按官方文档无需修改。
2.2 环境配置
① 创建虚拟环境-python=3.7(略)
② 安装pytorch和torchvision
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
③ 在项目目录下,安装其他依赖库
pip install -r requirements.txt
注意,官方文档中,requirements依赖库展示如下:
cython
# git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI&egg=pycocotools
submitit
torch>=1.5.0
torchvision>=0.6.0
# git+https://github.com/cocodataset/panopticapi.git#egg=panopticapi
scipy
termcolor
addict
yapf
# timm
截至25.7.21,由于timm,pycocotools包和panopticapi包更新及windows或py3.7兼容性问题,故通过不同方式来安装,首先通过pip安装除三个包以外的其他包。
然后安装兼容python3.7版本的safetensors==0.3.3(或其他兼容版本)
pip install safetensors==0.3.3
pip install timm
直接安装window预编译的pycocotools包,
pip install pycocotools-windows
最后从git仓库安装panopticapi
git clone https://github.com/cocodataset/panopticapi
cd panopticapi
pip install -e .
2.3 部署与测试
① 编译cuda算子
# 进入目录
cd models/dino/ops
# 编译
python setup.py build install
② 测试
# unit test (should see all checking is True)
python test.py
windows下显存不够的话,大参数量测试可能会出现out of memory,也为成功部署。
以上,DINO在windows上的部署完成。
1431

被折叠的 条评论
为什么被折叠?



