您的位置:首页 > Web前端

Windows Caffe常见问题解决 以及如何更换为自己的Opencv

2018-01-11 11:29 1536 查看
参考

一 Caffe编译gpumxGPUArrayh Not Found

二 This project references NuGet packages that are missing on this computer

三 error MSB4062 未能从程序集 DWindowsCaffeNugetPackagesOpenCV2410buildnativeprivatecoappNuGetNativeMSBuildTasksdll 加载任务

四 error MSB4062 未能从程序集 DWindowsCaffeNugetPackagesOpenCV2410buildnativeprivatecoappNuGetNativeMSBuildTasksdll 加载任务

五 Windows Caffe更换为自己的Opencv

参考

[1] Caffe常见问题解决:NuGet Error,无法打开输入文件“opencv_calib3d240d.lib”

[2] Win7x64+cuda8.0+ Microsoft caffe VS2013配置记录

[3] win10+vs2013+cuda7.5环境搭建

最近学习Windows平台下的Caffe,自然而然地选择了微软提供的版本。该版本由于通过NuGet进行三方组件的安装与管理,设置上按理说会更加简便一些。不过在配置过程中还是遇到了相当的问题,这里介绍一下可能比较常见的几个问题是如何被最终解决的。

编译环境:VS2013 win10 cuda8.0 cudnn5.1



一 Caffe编译”gpu/mxGPUArray.h” Not Found

这个错误发生在编译MatCaffe的时候,错误原因是mxGPUArray.h这个文件的路径改变了

解决方法参照Caffe编译”gpu/mxGPUArray.h” Not Found错误解决

二 This project references NuGet package(s) that are missing on this computer.

右键解决方案Caffe,启用NuGet程序包还原(Enable NuGet):



三 error MSB4062: 未能从程序集 D:\Windows+Caffe\NugetPackages\OpenCV.2.4.10\build\native\private\coapp.NuGetNativeMSBuildTasks.dll 加载任务

解决办法:可以看到native\private这里有两个反斜杠\,找到OpenCV.props,删除文件中private前的斜杠



四 error MSB4062: 未能从程序集 D:\Windows+Caffe\NugetPackages\OpenCV.2.4.10\build\native\private\coapp.NuGetNativeMSBuildTasks.dll 加载任务

该错误出现于编译libcaffe。

解决方案1:以管理员身份打开VS2013,再编译libcaffe。

注:VS2013的路径如下:

D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe

右键——以管理员身份运行

来源:https://github.com/BVLC/caffe/issues/4788

解决方案2:关掉工程,删除build文件夹,和opencv2.4.10文件夹,然后重新以管理员身份运行,对libcaffe项目右击选择清理,再生成,让VS再次自动下载。如果还是编译错误,就回到问题三,删除多余的反斜杠。然后再点击重新生成。

经过我的多次经验,就是要在删除build文件夹之后,点击清理,然后再生成,不要直接点重新生成。可以先对libcaffe试一试,成功了在编译其他项目。

还有一个办法就是不要让他自动下载OpenCV,选择自己的OpenCV。

五 Windows Caffe更换为自己的Opencv:

参考了一下:Win7x64+cuda8.0+ Microsoft caffe VS2013配置记录

我先将NugetPackages下的opencv2.4.10文件夹删除了,因为不用这个,用自己的。

在任意项目下选择管理NuGet程序包,然后找到Opencv,取消掉关联



然后可以看到,每个项目下的packages.config里面就都没有了opencv。



对每个工程,都配置单独配置opencv,感觉这样其实配置还是有点折腾,如果可以的话,还是用Nuget搞搞,就行了。选定项目→生成依赖项→生成自定义,去掉Opencv前面的勾。



配置自己的opencv环境,这一步其实就是普通的环境配置,用过opencv的应该都知道

新建两个属性页,分别对应debug和release,放在windows目录下。因为我发现windows caffe自动下载的opencv只有64位的,所以我也是配置了64位的



在caffe工程的属性管理器中,每一个项目都右击添加已有的属性页,release和debug要对应,不要搞混了。(注意是每一个项目都要添加)



下面两张图是debug的配置,release也相似,具体不懂的可以百度opencv环境配置,或者留言





编译发现还是有错误,

D:\Windows+Caffe\caffe-windows\windows\caffe\caffe.vcxproj(105,5): error : This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ……\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.props.



可以看到是vcxproj文件中还有残留的OpenCV.2.4.10没有删除,进入vcxproj,将相关的项删除就好了









自此修改完成,能够编译成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐