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

自从深度学习火起来以后,搞计算机视觉的不了解一点深度学习的知识都不还意思。以前的人脸识别还是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)

猜你喜欢

转载自blog.csdn.net/shakevincent/article/details/52115872