您的位置:首页 > Web前端

caffe框架在添加自己的MFC程序(上)

2016-08-04 09:01 246 查看
自从深度学习火起来以后,搞计算机视觉的不了解一点深度学习的知识都不还意思。以前的人脸识别还是LBP+svm的时代,突然出现了一个深度学习,大家都努力的奋斗。为了响应号召,我们利用cnn训练自己的网络然后用于人脸识别,参考classification.cpp修改得到控制台程序,没有一个界面怎么能行,没有QT经验,只能继续使用苦逼的MFC,下面是我在caffe框架下编写MFC界面时一些记录,希望与大家共勉:

1:编译微软的caffe,参考http://blog.csdn.net/shakevincent/article/details/51694686

前期开发的时候可以编译一个cpu版本的,程序完成后直接移植到GPU版本就可以

2:删除不需要的其他工程,我只保留了一个classification,把之前的控制台程序移植过去,完成一个测试程序。

3:在caffe.sln下添加一个一个MFC工程。命名为caffe-mfc。

(1) 尝试新建一个工程文件

(2) 添加依赖项

(3) 属性—通用属性—项目依赖项中添加libcaffe

(4) 添加Nuget依赖项工具包

(5) 添加生成的libcaffe.lib

出现以下为错误:



解决方案:因为建立的MFC是win32版本的和caffe的版本冲突,所以修改mfc的配置管理器为x64



解决方案:添加Nuget依赖项工具包



无法解析的错误:



解决方案:

手动添加HDF5的头文件和lib文件

hdf5.lib

hdf5_cpp.lib

hdf5_f90cstub.lib

hdf5_fortran.lib

hdf5_hl.lib

hdf5_hl_cpp.lib

hdf5_hl_f90cstub.lib

hdf5_hl_fortran.lib

hdf5_tools.lib

szip.lib

zlib.lib

include和lib文件的路径添加到VC++目录中。

目前完成了caffe_mfc的编译。

4:框架编译通过后可以自己先尝试添加一些简单的控件和程序。我先添加的是dlib人脸检测的程序,然后在添加识别的程序。

步骤:

1:添加按键控件包括(打开摄像头,关闭摄像头,截图,退出,训练,测试)

2:添加三个图片控件修改属性(一个用于显示当前摄像头采集的图像。一个显示归一化后的图像,用于显示对比的图像)(或者添加四个图片控件,用于显示识别时可能的人脸信息)

3:添加一个文本编辑框用于输入姓名和ID(保存在txt中)

4:编译打开摄像头的程序关闭摄像头程序等

5:添加ontimer函数,用于处理摄像头的事件

6:添加dlib项目属性表,头文件和库文件,并在dlg.cpp中添加需要的头文件名

7:添加程序(缺点:速度!!!!!)可能是我CPU不行。

下面是我再程序调试时可能遇到的错误,以及解决方案:

遇到的问题:

1:重新配置程序:

1>—— 已启动生成: 项目: caffe_mfc, 配置: Release x64 ——

1> LINK : fatal error LNK1104: 无法打开文件“msvcprt.lib”

解决方案:

属性——链接器——输入——忽略特定默认库——添加msvcprt.lib

可能会遇见的错误:

2:Link:无法打开libcaffe.lib

解决方案:添加生成的libcaffe.lib的库路径

目前开发的程序中: F:\桌面文件\人脸识别MFC\7.1-caffe-face可以正常运行(7.9)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc cnn