文章目录
一、Windows环境下搭建基于mmdetection的目标检测环境
mmdetection2.06成功安装过程
- 环境配置windows10, CUDA 10.1, python3.7 pytorch1.4, 本来准备安装DOTA数据相关的项目,但是很多都是基于mmdetection,便开始安装mmdetection。
-
- https://download.openmmlab.com/mmcv/dist/index.html 下载mmcv的win-wheel, 安装。(windows版本的貌似目前只有1.15/1.13有wheel,并且都是CPU版本)
-
- 修改torch cpp_extension里面的编码问题:decode()==> decode(“utf8”,“ignore”)
-
- 下载mmdetection2.06源码,修改setup中的:
- 下载mmdetection2.06源码,修改setup中的:
-
- 在mmdetection文件夹下运行python setup.py build_ext进行编译,cmd显示running build_ext
-
- 接着运行python setup.pydevelop,完成安装
- 运行demo时,提示RuntimeError: nms is not compiled with GPU support,这是因为MMCV安装的是CPU版本,将设置改为CPU即可。
踩的坑
- 错误尝试1:一开始按照mmcv官方命令安装mmcv-full最新版,编译错误,改为pip install mmcv,提示没错误, 接着安装mmdetection-2.15(最新版),按照上面的编译方法,没错误,没有编译警告,但是运行demo时报错:ModuleNotFoundError: No module named ‘mmcv._ext‘,上网查说是mmcv安装方式不对。随降低版本,安装mmcv 和mmdetection2.2,结果mmdet编译一堆错误,随放弃。
- 错误尝试2:安装mmcv1.15和mmdet2.06: 均是手动编译,编译mmcv提示编译器警告:
但是编译通过,mmdet也编译通过,运行demo,结果仍然出错:ModuleNotFoundError: No module named ‘mmcv._ext‘,还是MMCV的问题,但是有人编译成功,不知道是怎么编译的。
总结
- 网上说mmdetection不能在windows上安装,但是ttps://blog.csdn.net/weixin_40042498/article/details/112863323早就给出了mmdet-1.1的安装教程,应该是可以安装的。
- mmcv后期版本进行了升级,变为mmcv-full,网上的很多安装mmdet的教程都是直接pip 安装mmcv,应该指的是早期的mmdet的安装方式,新版本的mmdet都依赖mmcv-full。
- 关于编译器的警告,应该不是编译出错的关键,问题还是版本,暂时还不清楚到底pytorch与mmdet,mmcv等之间的对应关系。
二、 windows10安装OBBDetection
- 环境: CUDA10.1, PYTHON3.7, pytorch 1.4.0
- 按照项目github上的安装步骤,直到编译OBBDetection项目,出现错误:envs\obbdetection\lib\site-packages\torch\include\c10/util/variant.h(1187): error C2872: “std”: 不明确的符号
上网查了下,因为VS编译器版本的原因https://blog.csdn.net/xu_fengyu/article/details/105362585。
总结
OBBDetection对应的mmdet-2.2,之前安装mmdet-2.2失败,没有选择安装VS2019,暂时放弃
三、windows10安装DOTA系
- 环境: CUDA10.1, PYTHON3.7, pytorch 1.4.0
- AerialDetection, s2anet, 均是编译错误,与OBBDetection错误相同