在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盘一个(我的系统盘制作完成后大约占 ...
随机推荐
- Haystack-全文搜索框架
Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...
- liunx 修改ssh 端口22
vim /etc/ssh/sshd_config 找到Port 22 添加 Port 5002 重启sshd /bin/systemctl restart sshd.service 防火墙释放5 ...
- JAVA 实现 简单的 HTTP服务器
关于JAVA的HTTP服务器的简单实现,还望大家给出宝贵建议,谢谢. 1.首先来说下HTTP所有的状态碼,相信对于网页开发的博友们,肯定不陌生. 状态码 状态码英文名称 中文描述 100 Contin ...
- 关于数据库中日期格式(yy-MM-dd HH-mm-ss)通过json传到后台变成毫秒数的问题
在日期封装对象前面加一个json标签即可防止自动转换 如 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date mod ...
- Emacs Org-mode 1 下载、安装、基本使用
1.1 总述 Org 是一种帮助我们做笔记.日常事件或者项目计划的快速高效的文本格式系统. Org 有以下特点: Org mode 基于组织结构(outline-mode)对文本进行组织.具有良好的快 ...
- 小程序 -- ui布局
Flex布局 相对定位和绝对定位 弹性盒模型 display flex-direction flex-wrap :nowrap(不换行)/ wrap(换行,第一行在上方)/ wrap-reverse ...
- Angular路由——在路由时候传递数据
有3种方式 1.在查询参数中传递数据 2.在路由路径中传递数据 定义路由路径时就要指定参数名字,在实际路径中携带参数. 3.在路由配置中传递数据 一.在查询参数中传递数据 第一步:修改模版中商品详情链 ...
- centos7安装elasticsearch
[root@aaron tools]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zi ...
- django——web框架简介
1.web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式C/S.B/S.C/S是客户 ...
- XIV Open Cup named after E.V. Pankratiev. GP of America
A. Ancient Diplomacy 建图,同色点间边权为$0$,异色点间边权为$1$,则等价于找一个点使得到它最短路最长的点的最短路最小,Floyd即可. 时间复杂度$O(n^3)$. #inc ...