win11配置Mask DINO踩坑记录
- 1 准备工作
- 2 创建python环境和安装detectron2
- 2.1 安装前提
- 2.2 安装流程
- 2.2.1 cl.exe的错误
- 2.2.2 SetuptoolsDeprecationWarning的错误
- 3 MaskDINO运行
- 3.1 运行demo
前情提要:需要复现Mask DINO,但是实验室没有Linux的电脑,在Windows上复现的时候遇到了 No moduld name MultiScaleDeformableAttention,然后看博客说在Windows上配置很麻烦,建议去Linux,但是虚拟机没办法用GPU,想到了三个方法:1、用WSL2来运行;2、在Windows上解决这个困难;3、装双系统。
我首先试了方法1,碰到了一开始的问题,而且也比较麻烦,所以干脆进行了2,网上一些方法写的比较简略,但是我实际运行过程中碰到了很多问题,所以记录一下。
PS:如果是已经conda create一个环境了,建议查看版本是否正确,如果是直接在项目下运行了
pip install -r requirement.txt
,就重头开始
参考:Mask DINO环境配置
参考:win10系统配置Mask DINO经验总结
参考:Detectron2在Windows上的三部曲——安装
1 准备工作
名称 | 版本号 |
---|---|
cuda | 11.3 |
cudnn | cuda11对应最新版即可 |
pytorch | 1.10.1 |
torchvision | 0.11.2 |
torchaudio | 0.10.1 |
2 创建python环境和安装detectron2
conda create -n env_name python=3.9
conda activate env_name
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge#安装detectron2
git clone https://github.com/facebookresearch/detectron2.git
python -m pip install -e detectron2
如果conda安装慢,记得换源
安装detectron2开始出问题了
2.1 安装前提
需要安装Visual Studio,VS的版本一定要version<=2019,之前安装的VS2022死活安不上。
并且一定要把原来的VS2022删掉,否则会报错,安装了VS2019需要配置cl.exe的环境变量,请看2.2.1
2.2 安装流程
git clone https://github.com/facebookresearch/detectron2.git
Detectron2前将fvcore安装上
pip install fvcore
python setup.py install
成功安装结果:
2.2.1 cl.exe的错误
至此安装完成detectron2,我一开始没有安装,所以报错'cl.exe' is not recognized as an internal or external command
这是因为VS的cl.exe这个编译器未被加入到环境变量中,可以“编辑环境变量-环境变量-系统变量-PATH“, 添加路径**“path\to\vs2019\community\vc\tools\msvc\14.13.26128\bin\hostx64\x64"** 大概是这个路径,自行去找自己的路径。(VS2022是没有这个路径的)
安装完detectron2,再继续安装mask dino一开始遇到的问题都解决了
2.2.2 SetuptoolsDeprecationWarning的错误
错误内容:
SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ********************************************************************************
Please avoid running setup.py directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
**解决:我的原因是setuptools版本太高
首先使用以下命令查看setuptools版本信息
conda list
发现setuptools版本大于60,可能因为版本过高,算法使用的安装方式已经被弃用,选择重新安装小于60的版本,解决了此问题。
pip install setuptools==58
**
3 MaskDINO运行
#克隆maskdino库
git clone https://github.com/IDEA-Research/MaskDINO.git
cd ./MaskDINO
pip install -r requirements.txt
注意是requirements.txt,有无s
成功结果:
再接下来
cd maskdino/modeling/pixel_decoder/ops
python setup.py build install
(这里碰到了没有删除vs2022遇到的错,卸载了就没有报错了)
运行的时候出现了一大串类似于报错的信息,但是等待就好了
成功结果:
3.1 运行demo
退回到根目录 \MaskDINO-main,在根目录创建img和weight文件夹,并在img中放入测试图片,weight中放入权重:自行下载
python .\demo\demo.py --config-file .\configs\coco\instance-segmentation\maskdino_R50_bs16_50ep_3s.yaml --input .\img\1.jpg --output .\img\2.jpg --opts MODEL.WEIGHTS .\weight\maskdino_r50_50ep_300q_hid1024_3sd1_instance_maskenhanced_mask46.1ap_box51.5ap.pth
至此,结束!