windows上caffe-ssd配置历程(CPU+GPU)

配置环境:

Windows 7
vs2013
Anaconda2
Caffe-SSD-microsoft
 

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

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

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

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

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

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

在https://github.com/conner99/caffe.git下载caffe-ssd-microsoft压缩包
打开caffe-ssd-microsoft\windows文件夹,看到里面的CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props,修改它成为下面这样(因为只用CPU跑)(GPU修改参数相反):

之后,在caffe-ssd-microsoft\src\caffe下新建3rdparty文件夹,里面添加hungarian.cpp;在caffe-ssd-microsoft\include\caffe下新建3rdparty文件夹,里面添加hungarian.hpp。这两个文件的下载地址:链接:

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

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

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

进入detection_output_layer.cu文件(GPU所需),将所有出现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。

然后再次修改配置文件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/15OR_CeA_o0TVjOzukRjMPA 密码:yye0(如果失效请评论我,会很快看到~)

在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/16h-cK7nBouSDY_8_4G90Og 密码:x25l

在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文件,即开始训练~


参考:
原文:https://blog.csdn.net/malvas/article/details/84068173 
https://blog.csdn.net/sinat_30627475/article/details/81326234(GPU 博客参考)

猜你喜欢

转载自blog.csdn.net/rj1457365980/article/details/84964172