Windows安装mmdet3d v0.17.1

背景

环境

windows 11家庭版, 64 位操作系统, 基于 x64 的处理器,显卡NVIDIA GeForce RTX 3060

需求

阅读一个3D目标检测源码,需要用到模块mmdetection3d == v0.17.1,关于该模块的安装说明或教程几乎都是在Liunx环境下的,本人需要在Windows环境下安装和使用该模块。

注意

没有显卡的电脑是无法在windows下安装mmdet3d的,本人折腾多次都未成功,换了一台带显卡的电脑才搞定。

软件版本总结

cuda=11.1.1
cudnn=8.9.7
microsoft visual studio=2017 Professional
python=3.8.19
torch=1.9.1
torchvision=0.10.1
torchaudio==0.9.1
mmcv-full=1.4.0
mmdet=2.14.0
mmsegmentation=0.14.1
mmdet3d=0.17.1

安装步骤

1、安装CUDA+CUDNN:

显卡RTX 3060最高支持cuda 12.3,但为配合mmdet3d v0.17.1模块的安装,本人安装了cuda 11.1.1 + cudnn 8.9.7

安装教程参考如下博文:
《windows系统CUDA的详细安装教程》
https://blog.csdn.net/zyq880625/article/details/138086225

2、安装Microsoft visual studio(简称VS):

安装mmdet3d需要C++代码编译环境,且为适配mmdet3d v0.17.1版本,必须安装VS2017~VS2019,本人开始安装的VS2022会报错,查看报错后选择安装VS2017。
VS2017下载:
链接: https://pan.baidu.com/s/1JQKtYEwUiMSzfr59_FPxwQ 提取码: 8u3t
选择压缩包中的vs_Professional.exe安装, 在选择需要安装的组件时,选择如下1个即可:
在这里插入图片描述
安装成功后,需要将cl.exe所在的路径添加到系统环境变量,注意cl.exe在VS2017的安装目录内,有4个文件夹包含cl.exe,本人只将Hostx86\x64添加到了环境变量:

.\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64\

3、安装mmdet3d

conda create -n open-mmlab python=3.8 -y
conda activate open-mmlab

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

pip install mmcv-full==1.4.0
pip install mmdet==2.14.0
pip install mmsegmentation==0.14.1

git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
git checkout v0.17.1 # Other versions may not be compatible.
pip install -e .

问题出现最多的是上面步骤的最后一步,也就是mmdetection3d的安装:pip install -e .,要注意,这个步骤得确保你是在Git Bash窗口执行,而不是在cmd、pycharm的终端、Anaconda prompt等界面,否则会有字符解码问题,而在Git Bash窗口执行虚拟环境的pip安装模块,得用虚拟环境pip的绝对路径来安装,按如下命令安装mmdetection3d:

./anaconda/envs/open-mmlab/Scripts/pip3.exe install -e .

接下来,安装mmdet3d的过程中,可能会发生如下错误:

subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

参考博客解决:
https://www.cnblogs.com/yunshangyue71/p/13230575.html
上述问题解决后,继续执行mmdetection3d的安装,可能会报如下类似的错误:

LINK : fatal error LNK1181: 无法打开输入文件“.\mmdetection3d\build\temp.win-amd64-cpython-38\Release\mmdet3d\ops\spconv\src\all.obj▒\x9d

发现mmdetection3d\build\temp.win-amd64-cpython-38\Release\mmdet3d\ops\spconv\src目录内没有生成all.obj文件,自然也就会发生如上无法打开文件的问题,本质上还是有C++源码未编译成功,本人又发现目录mmdetection3d\build\temp.win-amd64-cpython-38\Release\有生成该all.obj文件的编译文件build.ninja,于是在手动执行编译:

ninja -f .\mmdetection3d\build\temp.win-amd64-cpython-38\Release\build.ninja

编译可能失败,发生如下问题:

c1xx: fatal error C1356: 无法找到 mspdbcore.dll

参考如下博客进行解决:
https://blog.csdn.net/jacke121/article/details/90614060
解决办法如图:
在这里插入图片描述
———————————————————————————————————————————————————
到这里,解决了ninja编译的问题,编译后,前面的all.obj文件已经存在于mmdetection3d\build\temp.win-amd64-cpython-38\Release\mmdet3d\ops\spconv\src目录内,那么继续执行mmdetection3d安装,发现虽然不再报无法打开all.obj文件的错误,又会出现\mmdetection3d\build\temp.win-amd64-cpython-38\Release\mmdet3d\ops\iou3d\src\iou3d.obj文件无法打开的问题,同样的解决办法,再次手动执行编译,生成iou3d.obj文件:

ninja -f .\mmdetection3d\build\temp.win-amd64-cpython-38\Release\build.ninja

不出意外的话iou3d.obj文件生成成功,继续执行mmdetection3d安装,然而又出现另一个xxxx.obj无法打开的问题,那么还是用ninja手动编译生成,然后执行mmdetection3d安装,如此反复11次,最终mmdetection3d安装成功!!!

要在Windows安装mmdet,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python环境。建议使用Anaconda来管理Python环境,您可以在Anaconda官网下载和安装Anaconda。 2. 打开命令提示符或Anaconda Prompt,并创建一个新的Python虚拟环境。可以使用以下命令创建一个名为"mmdet"的虚拟环境: ``` conda create -n mmdet python=3.7 ``` 3. 激活虚拟环境: ``` conda activate mmdet ``` 4. 安装PyTorch。根据您的CUDA版本和显卡型号选择合适的PyTorch版本,并按照官方文档提供的指示进行安装。例如,如果您的CUDA版本为10.1,可以使用以下命令安装PyTorch: ``` conda install pytorch torchvision cudatoolkit=10.1 -c pytorch ``` 5. 安装mmcv依赖包。mmdet依赖mmcv库,可以使用以下命令进行安装: ``` pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.7.0/index.html ``` 6. 克隆或下载mmdetection的代码库。您可以通过访问mmdetection的GitHub页面,选择克隆或下载ZIP文件。 7. 进入mmdetection的根目录,并安装其他依赖: ``` cd mmdetection pip install -r requirements/build.txt pip install -v -e . ``` 8. 安装COCOAPI。mmdetection使用COCOAPI进行数据加载和评估。可以使用以下命令进行安装: ``` pip install "git+https://github.com/open-mmlab/cocoapi.git#subdirectory=pycocotools" ``` 安装完成后,您就可以在Windows上使用mmdet了。请注意,mmdet安装可能会受到您的系统配置和环境的影响,如果遇到任何问题,请参考mmdetection的官方文档或在相关的开发社区中寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值