在win7上跑基于任少卿作者代码修改的RPN+BF实验
1.前言
之前在win10上成功的跑起来faster-rcnn的实验,并且跑了一下CaltechPedestrian的数据集,但是效果一直不理想,折腾了好久也没弄清楚到底原因出在哪里,直到读了Is Faster R-CNN Doing Well for Pedestrian Detection? 这片文章之后才明白了具体的问题出在哪里,于是就想跑一下文章中的实验。原本实验的源代码作者只在Ubuntu上面跑过,并没有在win上跑过,但是他的代码都是基于任少卿的matlab代码修改的,于是我就想在win上应该也能跑通。于是我就试了一下,没想到竟然卡在了编译external上面。
caffe_library用的依然是任少卿作者给的(https://pan.baidu.com/s/1hqGojnI),RPN+BF的源码是在GitHub上面下载的,按照我之前的博客写的方法去编译,竟然没通过,当时报了个错误,是关于caffe.pb.h文件版本的问题,也没闹明白是怎么回事,上网百度了一下,初步诊断是因为caffe_library的第三方库中protobuf的版本过低,网上说使用protobuf2.6.1版本可以,但是后来我一顿折腾,包括重装系统,重搭环境,也是行不通,转移到Ubuntu下也因为其他原因行不通,没有办法就又回到了win7上,又经过一顿瞎折腾,终于闹明白了是什么问题了。。。
2.编译RPN+BF所需要的external文件
2.1分析源码文件
首先,caffe_library是这样的
可以看到它其中有一个文件夹叫做 protobuf_compiler-2.6 ,那么这个文件夹是干什么用的呢?为此我特地研究了一下protobuf的相关知识。可以这样说,caffe.pb.h和caffe.pb.cc是由图中画框的两个文件生成的,我们可以看一下 protoc.cmd 中的代码就明白了,如下图:
2.2生成自己需要的caffe.pb.h和caffe.pb.cc
既然编译的时候报的错是关于这两个文件的,那么肯定要在这两个文件上面着手去解决问题了,当时一直以为是protobuf的版本问题,搞了好久,最后使用了protobuf2.6.1虽然编译通过了,但是编译出来的文件却不能用,别提多心酸了。。。那么原因到底是出在了哪里呢?当我打开下图目录中的caffe.vcxproj这个文件的时候,明白了自己问题的结症所在了。
首先说一下 .vcxproj 文件的作用,.vcxproj 文件管理着VS solution的相关配置,仔细看一下这个文件的内容,你就会发现它里面的信息都是solution的相关配置信息,包括编译平台,库目录,包含目录等等信息都保存在这个里面,所以我通过它确定了,protobuf的版本是没有错误的,用的就是protobuf2.6.0版本的。那么,问题就只可能出现在一个地方了,那就caffe.proto 这个文件。关于这个文件的更多信息可以去网上百度,这里并不做细说。在caffe-RPN_BF这个文件夹里搜索一下 caffe.proto ,找到了它是存放在.\caffe-RPN_BF\src\caffe\proto 中的,于是我们把它取出来,放在 protobuf_compiler-2.6 文件夹中,替换掉原来的 caffe.proto 文件,运行protoc.cmd,来重新生成caffe.pb.h和caffe.pb.cc这两个文件。
那为什么不用protobuf_compiler-2.6 文件夹中原本存在的 caffe.proto 呢?你可以比较一下,因为它竟然和.\caffe-RPN_BF\src\caffe\proto 中的 caffe.proto 是不一样的。。。真是无话可说,并不太懂是为什么。。。
3.重新编译
然后把新生成的两个文件分拷贝到 caffRPN_BF\include\caffe\proto 和 caffe-RPN_BF\src\caffe\proto 中,替换掉原来的文件。再重新进行编译,具体的编译过程可以参考我之前的博客,经 过测试,可以顺利通过编译。
在win7上跑基于任少卿作者代码修改的RPN+BF实验的更多相关文章
- 解决Win7上的连接access数据库的问题
最近做了一个win桌面程序,没有用sql 数据库,而是用access数据库,因为access比sql用起来方便多了,最主要是不要安装sql server,直接放在程序里面,然后创建连接字符就可以了,s ...
- linux学习之---在linux服务器上跑一段Java代码
经常在windows上进行开发,有时候,需要在Linux环境上跑一些程序测下代码,要怎么办才好嘞? 假设你对Java常用命令和linux常用命令已经基本熟悉,就可以直接按照以下步骤来啦,默认linux ...
- Win7上Git安装及配置过程
Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...
- [异常解决] 奇巧淫技——VirtualBox中的linux无显示启动,并在win7上远程控制
楼主是资深技术宅(癖),由于感觉手上的老笔记本太卡,遂狠心买了个性能至强的主机同时配了个投影仪(满足躺着打代码的意淫场景).但是体验了大概一个月发现还是坐着打代码舒服,但是如下图坐着打代码总是要抬头看 ...
- win7上python+theano+keras安装
https://blog.csdn.net/yongjiankuang/article/details/50485610 其实过程很简单,首先说一下安装条件: 1.win7 (32和64都可以,下载安 ...
- 利用Tengine在树莓派上跑深度学习网络
树莓派是国内比较流行的一款卡片式计算机,但是受限于其硬件配置,用树莓派玩深度学习似乎有些艰难.最近OPENAI为嵌入式设备推出了一款AI框架Tengine,其对于配置的要求相比传统框架降低了很多,我尝 ...
- 轻装上阵Flink--在IDEA上开发基于Flink的实时数据流程序
前言 本文介绍如何在IDEA上快速开发基于Flink框架的DataStream程序.先直接上手! 环境清单 案例是在win7运行.安装VirtualBox,在VirtualBox上安装Centos操作 ...
- 让“是男人就下到100层”在Android平台上跑起来
原工程:https://github.com/jeekun/DownFloors 移植后的代码:HelloCpp.zip 移植后的APK:HelloCpp.apk 说明:(cocos2d-x版本是“ ...
- Win7上安装Linux双系统
今天帮同学在Win7上安装Linux,感觉一篇教程很不错,mark一下 原地址:Win7下U盘安装Ubuntu14.04双系统步骤详解 一.前期准备 1.大于2G的U盘一个(我的系统盘制作完成后大约占 ...
随机推荐
- redis-list操作
List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name,values) # 在name对应的list中添加元素,每个新的元素都添加到列表的最 ...
- 使用mysqlslap进行MySQL压力测试
使用mysqlslap进行MySQL压力测试发表于236 天前 ? MySQL ? 暂无评论 MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来 ...
- 页面报错时隐藏Tomcat信息
一.问题描述Tomcat报错页面泄漏Apache Tomcat/8.0.53相关版本号信息,是攻击者攻击的途径之一.因此实际当中建议去掉版本号信息. 二.解决办法1.进入到tomcat/lib目录下, ...
- LLDB 中从地址设置为变量
// set language and import framework settings set target.language swift expr -l Swift -- import UIKi ...
- (五)Knockout template模版渲染
基础 template绑定通过模板将数据render到页面.模板绑定对于构建嵌套结构的页面非常方便.默认情况, Knockout用的是流行的jquery.tmpl模板引擎.使用它的话,需要在安装页面下 ...
- docker 中打包部署Springboot项目
1.安装jdk yum -y install java-1.8.0-openjdk* 2.安装并启动mysql mysql高版本驱动变了,最后还是安装5.6 docker pull mysql:5.6 ...
- 利用MySQL游标进行计算排名
SELECT a.id, a.nick_name, a.member_account, a.integral, () AS tRank #计算行号 FROM tzqc_raw_data AS a, ( ...
- zTree 3-- jQuery 树插件笔记
地址:http://www.treejs.cn/v3/demo.php#_507 数据结构json,里可以自定义属性. var zNodes =[ { name:"父节点1 - 展开&quo ...
- request.getParameter和request.setAttribute/request.getAttribute
https://blog.csdn.net/ryelqy/article/details/79230513 request.getQueryString https://blog.csdn.net/w ...
- Java eclipse导入外部项目时出错怎么解决
从外部环境import一个项目进入Java工作环境中,若出现以下错误,解决方法如下: 鼠标移上去,会出现以下错误提示: 解决方法: 选中该项目->右键->Build path->Co ...