本教程是在windows环境下进行,默认caffe(微软版)你已经在电脑上成功配置。
sphereface人脸识别开放源码:
https://github.com/wy1iu/sphereface
caffe微软版本开放源码:
https://github.com/Microsoft/caffe
使用软件:vs2013
出这篇文章的目的是写一个适合2020且细节更加详细的配置文章。

一、配置caffe与sphereface

1、文件下载、解压
首先先在GitHub上下载下来sphereface,GitHub地址在上面已经说过了,下载过后将压缩包解压。

图一

图一 解压结果

2、文件拷贝:
将 sphereface-master/tools/caffe-shpereface/src/caffe/include/caffe/layers目录下的margin_inner_product_layer.cpp、margin_inner_product_layer.cu拷贝到caffe-master\src\caffe\layers目录下,其中“.cu”的是用于GPU的cuda源码,没GPU的电脑可以不拷贝。
另外在 sphereface-master\tools\caffe-sphereface\src\caffe\util 目录下将另外依赖的源码math_functions.cpp、math_functions.cu也要拷贝到微软版caffe的相应目录caffe-master\src\caffe\util。
将 sphereface-master/tools/caffe-sphereface/include/caffe/layers 文件下的margin_inner_product_layer.hpp 拷贝到 caffe-master\include\caffe\layers 目录下。
3、caffe.proto改写:
找到 sphereface-master/tools/caffe-sphereface\src\caffe\proto 目录下的这个"caffe.proto"文件,用 Sublime Text 3 或者记事本打开,这个文件十分重要,其定义了caffe所有支持层的参数,类型,名字,ID等。同样在微软版的caffe类似目录下(我的目录caffe-master\src\caffe\proto)找到"caffe.proto"文件打开,这2个文件大致上一样,其实上有很多不一样的地方,如果“图方便”直接把caffe.proto替换掉微软的会有错误,踩坑不少,后面编译会有莫名其妙的错误。打开后找到如图二所示的位置,看箭头指的下一个适合的指定层ID是多少,然后在下面适合位置根据第一个打开的sphereface模型中的caffe.proto新层参数往第二个里面添加参数,如图三红色那一行添加的所示。
图二 层的信息

图二 层的信息

图三 要添加的部分

图三 要添加的部分

最后,然后在文件最后添上一些新层的参数ID说明,也是根据第一个打开的(sphereface自带的)文件添加,如图四红色部分所示。

图四 添加的新层ID说明

图四 添加的新层ID说明

二、编译源码

1、首先打开caffe-master\windows文件夹下的Caffe.sln。
分别在如图红色部分三个文件夹的layer目录下添加刚才拷贝的文件(margin_inner_product_layer.cpp、margin_inner_product_layer.cu、margin_inner_product_layer.hpp),注意,看layer目录下是什么类型的文件就添加哪个后缀的刚才拷贝的文件!
图五 打开界面

图五 打开界面

图六 需要添加的三个文件夹

图六 需要添加的三个文件夹名称

图七 具体添加方式

图七 具体添加方式

添加-现有项,去找到你刚才拷贝过来的文件。
当你将三个文件添加完后,你就可以编译caffe项目,鼠标右键解决方案,选择重新生成解决方案,等待编译完成,这时候如果报错,看错误原因,是在哪个cpp文件或者头文件的问题,然后再对照微软版的caffe找问题。
图八 进行重新编译

图八 进行重新编译

注意!
一定将Debug换成Release,如图所示:
图九 注意事项

图九 注意事项

图十 编译成功后的结果

图十 编译成功后的结果

windows caffe 容易出错,预祝大家成功上岸。

Reference:
https://blog.csdn.net/cuixing001/article/details/79207109

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐