caffe框架下添加自己的MFC程序(下)(2016-08-04 )

转自:http://blog.csdn.net/shakevincent/article/details/52116388


5:添加人脸分类程序 
无法识别using namespace cafffe: 
解决方案: 
发现c/c++—命令行中有很多OpenCV和一些其他项目的命令,在caffe-mfc也添加 
/fp:precise /D “NDEBUG” /D “_SCL_SECURE_NO_WARNINGS” /D “USE_OPENCV” /D “USE_LEVELDB” /D “USE_LMDB” /D “MATLAB_MEX_FILE” /D “CPU_ONLY” /D “_MBCS” /D “_AFXDLL” /errorReport:prompt /WX- /Zc:forScope /Gd /MD /Fa 
这里写图片描述
编译通过,发现可以识别caffe 
添加classifier.h头文件和classifier.cpp后 
1>F:\桌面文件\人脸识别MFC\7.1-caffe-face\NugetPackages\boost.1.59.0.0\lib\native\include\boost/lexical_cast/detail/lcast_unsigned_converters.hpp(255): error C3859: 超过了 PCH 的虚拟内存范围;请使用“-Zm123”或更大的命令行选项重新编译 
1>F:\桌面文件\人脸识别MFC\7.1-caffe-face\NugetPackages\boost.1.59.0.0\lib\native\include\boost/lexical_cast/detail/lcast_unsigned_converters.hpp(255): fatal error C1076: 编译器限制 : 达到内部堆限制;使用 /Zm 指定更高的限制 
解决方案:修改了/Zm200,后来发现可能是参考问题1导致的错误! 
参考问题1 
注意的问题:由于在调试程序的时候,加入了classifier.cpp导致了很多函数重定义

1:重新梳理MFC界面 
1:添加新的图片控件用于显示归一化后的图像和相似性的图像 
2:添加文本控件用于显示ID等信息。 
问题1:无法在文本编辑框中显示信息 
可以在其他函数中通过函数显示出文本信息,但是在识别的程序中就无法显示? 
解决方案:1:修改程序:使用不同的ontimer 目前可以实时的显示相似性度量值,姓名不能及时刷新。 
2:添加控制台程序方便观察程序运行状态 
3:删除命令行/wd”4661” /wd”4005” /wd”4812” /wd”4715” /Gy /Zc:wchar_t /I /EHsc /nologo /D “_MBCS” 
4:重新整理ontimer函数,目前可以解决上周的程序的(无法响应其他的按键) 
5:修改加载模型的程序

1:编译caffe—GPU 
1:下载cuda和cudnn for Windows 7.0版本 
2:安装cuda 并解压cudnn得到bin include lib 分别拷贝到cuda的安装目录中 
3:修改配置文件(使用GPU,版本号,不支持Python和matlab等) 
4:编译 出现警告:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 
解决方案:在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819 
5:删除不需要的工程文件,编译完成。 
2:添加人脸识别控制台程序 
1:复制人脸识别的程序添加到工程中。 
2:编译 
3:出现“把警告默认为错误” 
解决方案:在属性中修改为“否” 
3:添加MFC工程 
1: 
错误 8545 error C1083: 无法打开包括文件: “cublas_v2.h”: No such file or directory f:\桌面文件\人脸识别mfc\caffe-gpu-face\caffe-master\windows\caffe_mfc\caffe\util\device_alternate.hpp 34 
解决方案1:添加cuda的include和lib 
cublas.lib 
cublas_device.lib 
cuda.lib 
cudadevrt.lib 
cudart.lib 
cudart_static.lib 
cudnn.lib 
cufft.lib 
cuffw.lib 
curand.lib 
cusolver.lib 
cusparse.lib 
nppc.lib 
nppi.lib 
npps.lib 
nvblas.lib 
nvcuvid.lib 
nvrtc.lib 
OpenCL.lib 
出现很多无法解析的函数!!!!! 
改进方案:LINK错误大部分都是因为库文件和头文案包含的路径不对造成的, 
仔细检查每个文件下是不是有多余的文件,(导致上面解析错误的问题是因为我在DLIB文件中包含CPU版本的libcaffe.lib,所以导致了很多错误)仔细检查就可以。

内存不足的问题: 
解决方案:查看资源管理器,发现程序运行时只需要1.2G内存,单步调试,出现问题的地方是在读取姓名后,由于重新整理数据库导致里面有个名字丢失,造成空指针,导致内存不足。 
由于MFC还是有很多问题,很多程序写起来不是很方便,如果有时间和机会还是用QT。 
这里写图片描述

先共享出已经编译好的文件: 
移植到您的电脑可能会有一些其他依赖库的link error 仔细修改一下即可 
链接:http://pan.baidu.com/s/1o8cvNyq 密码:fhmj

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值