#2018年7月14日 目前,若需训练Faster R-CNN模型请使用其他GitHub项目,可以获得更好的效果。

如tensorflow版的https://github.com/endernewton/tf-faster-rcnn

或者使用facebook ai出品的Detectron https://github.com/facebookresearch/Detectron

最近在调试faster R-CNN时,遇到了各种各样的问题。使用的算法库为https://github.com/smallcorgi/Faster-RCNN_TF

  注:本文使用的是通过virtualenv 创建python虚拟环境进行调试,python 版本2.7,tensorflow 版本为tensorflow1.4-gpu版。

  1.首先要对它的库进行编译,

cd $FRCN_ROOT/lib

make

  2.下载其提供的测试模型,由于墙的缘故,下载需要费一番功夫。以下是下载地址:

  #20171115 添加百度云下载地址: 链接:https://pan.baidu.com/s/1zNWzMxBwQ6qVoXXvN89Peg 密码:0rtb

     https://drive.google.com/open?id=0ByuDEGFYmWsbZ0EzeUlHcGFIVWM

  或者
   https://www.dropbox.com/s/cfz3blmtmwj6bdh/VGGnet_fast_rcnn_iter_70000.ckpt?dl=0
  3.下载好之后就可以运行了。
cd $FRCN_ROOT
python ./tools/demo.py --model model_path

附:运行结果

遇到的难题

1.
编译过程中
nsync_cv.h:
No such file or directory,使用python虚拟环境会存在该问题。

/home/xxx/tensorflow/local/lib/python2.7/site-packages/tensorflow/include/tensorflow/core/platform/default/mutex.h:25:22:
fatal error: nsync_cv.h: No such file or directory

解决:编译的时候老是找不到该文件,最后直接把全路径填上了,编译通过,算一个笨方法吧。我的nsync_cv.h
文件的路径为:

/home/xxx/tensorflow/lib/python2.7/site-packages/external/nsync/public/nsync_cv.h

2.
运行demo过程中遇到的错误

g++:
error: roi_pooling_op.cu.o: No such file or directory

解决:按如下步骤设置
(1)
export PATH=$PATH:/usr/local/cuda-8.0/bin/ (你的CUDA路径)
for your terminal
(2) 在$FRCN_ROOT/lib/
make.sh 文件中,将
CXXFLAGS+='-undefined
dynamic_lookup'

改为
CXXFLAGS='-D_MWAITXINTRIN_H_INCLUDED'

3.
undefined symbol: _ZTIN10tensorflow8OpKernelE

这个问题卡得最久,因为make.sh
文件中缺少了TF_LIB
编译参数,还需要添加 -D_GLIBCXX_USE_CXX11_ABI=0

解决:

(1)修改make.sh
添加TF_LIB,并修改相应的编译参数

TF_LIB=$(python
-c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')

  ......

g++
-std=c++11 -shared -o roi_pooling.so roi_pooling_op.cc
-D_GLIBCXX_USE_CXX11_ABI=0 \

roi_pooling_op.cu.o
-I $TF_INC -L $TF_LIB -ltensorflow_framework -D GOOGLE_CUDA=1 \

-fPIC
$CXXFLAGS -lcudart -L $CUDA_PATH/lib64

  ......

(2)重新make,然后运行

4.
缺少yaml库

查了网上的方法,都是这样的

sudo
apt-get install python-yaml

我试了,但是在虚拟环境中还是无法import,最后直接下载库,手动安装。注意,是在虚拟环境中,通过python
setup.py install 进行安装。

yaml 下载地址 http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz

调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题的更多相关文章

  1. ubuntu14.04上实现faster rcnn_TF的demo程序及训练过程

    安装环境:Ubuntu14.04.显卡Tesla K40C+GeForce GT 705.tensorflow1.0.0.pycharm5.0 说明:原文见博客园,有问题原文下留言,不定期回复.本文作 ...

  2. faster rcnn test demo ---repaired for video input and save the image, label, score et al. into .mat format

    faster rcnn test demo ---repaired for video input and save the image, label, score et al. into .mat ...

  3. Faster RCNN算法demo代码解析

    一. Faster-RCNN代码解释 先看看代码结构: Data: This directory holds (after you download them): Caffe models pre-t ...

  4. iOS 真机调试不能连接网络的排错过程

    开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 gSOAP 2.8 iPhone 6S+iOS 10.1.1   问题: 使用 Qt Quick 写了一个跨平台的应用,在Wi ...

  5. 通过gdb调试分析Linux内核的启动过程

    作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验流程 1.打开环境 执 ...

  6. 在at91sam9260处理器上调试linux2.6.33.7的过程

    本文脉络: 1.SAM9260处理器介绍,单板机配置. 2.SAM-BA的运行机制与applets的修改. 3.修改bootstrap. 4.内核源码获取与打补丁. 5.基于ubuntu的开发环境搭建 ...

  7. 写一个小demo过程中遇到的各种问题 学生管理考勤系统(网页模拟)

    添加与新增一些小玩意的1.0.3版本:传送门 各位带哥,这不是你们要的c++.java.c#作业哈 课上要求做个小作业,学生管理考勤系统,原本想着是个练手的好机会,结果只证实了我还是个弟中弟. 设想的 ...

  8. 开源项目asmjit——调用自定义方法demo以及windbg调试

    asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...

  9. faster rcnn 源码学习-------数据读入及RoIDataLayer相关模块解读

    参考博客:::https://www.cnblogs.com/Dzhen/p/6845852.html 非常全面的解读参考:::https://blog.csdn.net/DaVinciL/artic ...

随机推荐

  1. JavaScript八张思维导图—基本语句

    JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vu ...

  2. 使用notepad++作为keil的外部编辑器

    之前一直不喜欢keil的编辑界面,但是又不想太浮夸.看到很多群里有人用vscode写stm32的序,但是直接用vscode编写的花,各种设置很麻烦.而且还不能调试.于是想到有没有一个轻便简约的外部编辑 ...

  3. java访问修饰符 public protect default private

    适用范围<访问权限范围越小,安全性越高>   访问权限   类   包  子类  其他包   public     ok   ok    ok     ok         (对所有可用的 ...

  4. NV12格式转RGB的CUDA实现

    NV12格式是yuv420格式的一种,NV12格式的u,v排布顺序为交错排布,假如一幅图像尺寸为W*H,则先Y分量有W*H个,然后U分量和V分量交错排布,U分量和V分量各有W*H/4个,U,V加起来总 ...

  5. Mysql执行计划说明

    Mysql执行计划翻译: 官网原文请见http://dev.mysql.com/doc/refman/5.6/en/explain-output.html:5.6 EXPLAIN语句提供有关SELEC ...

  6. 黑窗口输入确定数字弹MessageBox(VirtualProtect())

    今天有人说到这个就想的弹一下,刚开始弄了一下,发现内存访问有问题想到可能与读写保护有关,所以用了VirtualProtect函数,得到了正确结果 网上这个小东西我自己没发现,就贴一下.. void m ...

  7. 未找到约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryServiceRequiredTypeIdentity匹配的导出的解决办法

    未找到约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryServiceRequiredTypeIdentity Micros ...

  8. 转:Python之路,Day6 - 面向对象学习

    这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html   本节内容:   面向对象编程介绍 为什么要用面向对象进 ...

  9. Spring+JTA+Atomikos+mybatis分布式事务管理

    我们平时的工作中用到的Spring事务管理是管理一个数据源的.但是如果对多个数据源进行事务管理该怎么办呢?我们可以用JTA和Atomikos结合Spring来实现一个分布式事务管理的功能.了解JTA可 ...

  10. Python用户输入和代码注释

    一.用户输入 若你安装的是Python3.x版本,当你在Python IDLE(编辑器) 中输入以下代码: name = input('用户名:') print('Hello',name) 保存并执行 ...