用了两天时间完成了如标题的任务,中间也遇到了不少的问题,在此记录一下整个过程。
- 我的环境
- win10 x64
- Intel® Core™ i5-8400 CPU @ 2.80GHz
- VS 2015 x64 (注:caffe2 支持VS 2015 和 2017)
- C++
- CMake 3.14 rc(至少3.4以上吧)
1. caffe2的下载
链接:https://github.com/BVLC/caffe/tree/windows
在下载页面有readme,这里我简单介绍一下我在搭建环境时所做的步骤。
2. 添加本地环境变量
(1)添加cmake.exe文件的路径到PATH下
(2) 添加环境变量
CMAKE_C_COMPILER=your/path/to/cl.exe
CMAKE_CXX_COMPILER=your/path/to/cl.exe
3. 修改执行文件
在caffe-windows\scripts文件夹下有一个执行文件build_win.cmd。进行对应修改后,可正确运行。我主要修改了70-99行。具体包括VS的版本、只使用CPU、CMake配置为Release、不使用python。
4. 进行编译
双击执行build_win.cmd文件或者在cmd窗口运行,区别是后者在执行错误时可以看到错误信息。编译完成后build目录如下所示。(注:执行该步骤前最好删除build文件夹内部的所有文件)
5. 生成caffe工具
双击打开caffe.sln文件,选择Release x64编译环境,在解决方案窗口,右击整个解决方案,选择生成。 生成完成后在build\tools\Release文件夹内会有我们需要的文件和程序生成。
————————————————————————————————————————————————————
至此,caffe 作为工具来说,已经配置完成了,接下来就可以进行实际的应用了。比如你可以在网上下载一些models,进行物体的识别。下面我会以人脸为例子,利用这个工具,生成我想要的识别人脸的model。
6. 准备人脸数据集
我使用的是IMM人脸数据集,下载地址:http://www.imm.dtu.dk/~aam/
7. 数据处理(这一步是最麻烦的,我做的时候出问题最多)
IMM数据库里的图片是jpg格式的图片,是不能直接使用的,需要将这很多张图片转化为两个Imdb数据文件。转换工具caffe也已经为我们提供了,即convert_imageset工具。为此,我们需要先写一个索引文件