(超详细很完整)记录:巨坑的windows上caffe-ssd配置历程(CPU)

近几天心烦意乱,坑一个接着一个,不过最终还是成功跑完VOC数据集。事实证明caffe的配置让人烦躁。

 

P.S. 如果觉得有用欢迎赞我表扬我~

 

配置环境:

Windows 7
vs2013
Anaconda2
Caffe-SSD-microsoft

 

[References]: 

https://blog.csdn.net/gxb0505/article/details/73702451

https://blog.csdn.net/muwu5635/article/details/60874721

https://blog.csdn.net/a8039974/article/details/79836440

https://blog.csdn.net/weixin_37621229/article/details/80547934

Thx ;)

 

准备

因为是windows平台,所以我使用的caffe源是https://github.com/conner99/caffe

如果使用以上源,请一定使用vs2013来进行之后的编译。

如果使用以上源,请一定使用vs2013来进行之后的编译。

如果使用以上源,请一定使用vs2013来进行之后的编译。

我在一开始使用的是vs2015,编译出现很多问题,所以重要的事情说了三遍。

 

下载安装git,然后在git输入下面指令获取caffe:

git clone https://github.com/conner99/caffe.git
cd caffe
git checkout ssd

打开caffe\windows文件夹,看到里面的CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props,修改它成为下面这样(因为只用CPU跑):

之后,在caffe\src\caffe下新建3rdparty文件夹,里面添加hungarian.cpp;在caffe\include\caffe下新建3rdparty文件夹,里面添加hungarian.hpp。这两个文件的下载地址:链接: https://pan.baidu.com/s/1jfi_t0fjDh630OMl8Q7AWQ 提取码: 5piq (如果失效请评论我,会很快看到~)

然后,为防止编译的时候出现regex相关的报错,而在项目中我们不需要正则表达式,所以将相关语句注释掉:

进入项libcaffe中,进入detection_output_layer.hpp中,将与regex相关头文件注释掉:

进入detection_output_layer.cpp文件,将所有出现regex和rv的语句注释掉:

进入detection_output_layer.cu文件,将所有出现regex和rv的语句注释掉:

 

 

编译

编译libcaffe模块

设置libcaffe为启动项,设置libcaffe的属性页如下:

由于这个caffe源是windows的,在一开始编译的时候会通过NuGet下载很多caffe的依赖包,需要一段时间。下载下来之后这些包都位于NugetPackages文件夹下,这个文件夹在caffe的平行目录下。

libcaffe编译成功之后,在我们的caffe路径下就会自动出现一个名叫Build的文件夹,进入Build\x64\Release,以后编译成功和运行需要的文件都会存放在这个Build\x64\Release下里面。

编译caffe模块

和编译libcaffe模块同样的方式编译caffe模块。

编译pycaffe模块

由于pycaffe基于python2.7,所以安装anaconda2。

请一定注意anaconda2的安装路径不能有空格。

请一定注意anaconda2的安装路径不能有空格。

请一定注意anaconda2的安装路径不能有空格。

要不然之后import caffe的时候会报错。

然后再次修改配置文件CommonSettings.props:

 <PythonSupport>true</PythonSupport>

<PythonDir>D:\ProgramData\Anaconda2</PythonDir>(中间修改成你自己的python路径)

和上面libcaffe同样的设置编译pycaffe,编译成功后将Build/x64/Release/pycaffe下的caffe文件夹拷贝到Anancoda下面的Lib\site-packages下。

之后就要配置protobuf,要不然import caffe会报错。

先下载protobuf.3.0.0:https://github.com/google/protobuf/releases/tag/v3.0.0

下载链接里面的protobuf-python-3.0.0.zip和protoc-3.0.0-win32.zip:

protobuf-python-3.0.0为protobuf的安装包;

protoc-3.0.0-win32包含protobuf的编译器protoc的win32版本,用以编译*.proto文件。

下载后将protoc-3.0.0-win32\bin\protoc.exe复制到protobuf-python-3.0.0\protobuf-3.0.0\src。

打开cmd,切换到protobuf-python-3.0.0\protobuf-3.0.0\python目录,运行如下指令,生成大量*.py:

python setup.py build

然后运行指令:

python setup.py test
python setup.py install

之后进入python:

python
import caffe

不报错的话就编译成功啦。

编译get_image_size和convert_annoset模块

跟前面一样,目的是为了之后VOC数据的训练准备工具。

 

SSD模型的训练和检测

先准备VOC0712数据集。

下载地址:链接: https://pan.baidu.com/s/14jzcv9fHe0RzlP3-hz0NPg 提取码: 1weg (如果失效请评论我,会很快看到~)

在data\VOC0712下按照上述的顺序依次解压VOC文件,得到当前目录下的VOC2007和VOC2012两个文件夹。

从data\VOC0712下复制get_image_size.bat到caffe根目录下,打开get_image_size.bat看一下路径是否是对的,由于我下载caffe的时候直接放在D:\路径下,所以不需要改动.bat里面的路径。

修改之后运行get_image_size.bat,出现如下结果:

这会生成test_name_size.txt文件。

之后复制data/VOC0712下的create_data.bat文件到caffe的根目录,打开看是否需要修改路径,运行得到:

之后就可以训练了。

这里需要准备训练的prototxt和一个预训练的VGGNet的网络。

下载deploy.prototxt、solver.prototxt、train.prototxt和test.prototxt,下载地址和前面的hungarian.cpp下载地址一样。将下载下来的四个文件放入一个新建文件夹SSD_300x300内。

下载预训练的VGGNet的网络:链接: https://pan.baidu.com/s/1Gq-2E0gzVjp6YuElVl1itA 提取码: gvw3(如果失效请评论我,会很快看到~)

在models\VGGNet下新建文件夹VOC0712,将SSD_300x300文件夹和预训练的VGGNet的网络放进去:

 

然后在caffe目录下新建一个ssd_pascal.bat文件,内容如下:

Build\x64\Release\caffe.exe train --solver=models\VGGNet\VOC0712\SSD_300x300\solver.prototxt -weights=model\VGGNet\VOC0712\VGG_ILSVRC_16_layers_fc_reduced.caffemodel
pause

注意里面的地址。

还有记得看一看train和test两个prototxt里面的source路径是否需要修改。

运行ssd_pascal.bat文件,即开始训练~

 

 

 

 

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值