[PyTorch] MMDetection在Windows下的配置步骤

1. MMDetection简介

MMdetection is an open source object detection toolbox based on PyTorch. It is a part of the open-mmlab project developed by Multimedia Laboratory, CUHK. 目前 Github 上只有 linux 版本代码,下面内容是将代码移植到windows上的实现步骤。


2. 配置环境

Windows10 + Cuda9 + PyTorch1.1


3. 所需文件

VC14编译器, 百度网盘链接:https://pan.baidu.com/s/19ofabAeXW0XRB5XCXFwgDA 提取码:oll5


4. 配置步骤和出现的问题

(1)安装好Cuda环境,这里不再赘述。

(2)安装 VC14 编译器 visualcppbuildtools_full.exe (上边有百度云链接),MMDetection大部分代码用Python完成,需要用编译器将.cu文件编译为.pyd文件。如果你已经安装VS2015或之上的版本,可以忽略这步。

(3)在系统变量Path 中添加 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
(4)下载安装Anaconda3,创建新环境后,安装cython,我的新环境取名为open-mmlab,以下步骤均在激活新环境下的CMD中执行

conda install cython

(5) 下载mmdetection,并进入目录

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection

(6) 编译roi_align的cuda拓展

cd mmdet/ops/roi_align
python setup.py build_ext --inplace

这里可能会报错,关于Half类型数据的运算符重载问题,由于我并不经常使用Half类型数据,这里我直接将出错文件的6行代码注释,简单粗暴。注释 anaconda3/your_env_name/titan_copy/lib/site-packages/torch/include\THC\THCNumerics.cuh文件中的第191,192,193,194,195,197行。
(7) 编译roi_pooling的cuda拓展

cd ../roi_pool
python setup.py build_ext --inplace

(8) 编译nms的cuda拓展,修改mmdetection\mmdet\ops\nms下setup.py文件,将第一行修改为第二行(第一行中compiler_so属性为linux下gcc编译器的属性,windows下直接清空,这样会默认使用VC14的默认属性):

# default_compiler_so = self.compiler_so
default_compiler_so = ""

之后执行

cd ../nms
python setup.py build_ext --inplace

(9) 编译dcn的cuda拓展

cd ../dcn
python setup.py build_ext --inplace

(10) 编译sigmoid_docal的cuda拓展,修改mmdetection\mmdet\ops\sigmoid_focal_loss\src下的sigmoid_focal_loss_cuda.cu文件
1) 将文件中targets.contiguous().data<long>() 替换为 static_cast<long*>(targets.contiguous().data_ptr())
2) 在#include <cfloat>之后添加函数:
int Ceil_div(int a, int b) { return (a + b - 1); }
3) 将文件中两处dim3 grid(std::min(THCCeilDiv(losses_size, 512L), 4096L)); 替换为dim3 grid(std::min(Ceil_div((int)losses_size, 512), 4096));
之后执行

cd ../sigmoid_focal_loss
python setup.py build_ext --inplace

(11) 编译masked_conv的cuda拓展,修改mmdetection\mmdet\ops\masked_conv\src下的masked_conv2d_kernel.cu文件
将文件中

const long *mask_h_idx_ = mask_h_idx.data<long>();
const long *mask_w_idx_ = mask_w_idx.data<long>();

替换为

const long *mask_h_idx_ = static_cast<long*>(mask_h_idx.data_ptr());
const long *mask_w_idx_ = static_cast<long*>(mask_w_idx.data_ptr());

之后执行

cd ../masked_conv
python setup.py build_ext --inplace

(12) 安装pycocotools

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

(13) 安装mmdetection, cd到mmdetection根目录

python setup.py develop

至此MMDetection在Windows下的配置完成,希望给希望能在Windows下运行MMDetection的小伙伴一些帮助。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343