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

10 篇文章 0 订阅
7 篇文章 0 订阅

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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值