热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PyFasterRCNN配置详解与优化指南

本文主要讲解Faster-RCNN的配置过程,以及配置过程中遇到问题的解决方案。1.下载工程gitclone--recursivehttps:github.comr

本文主要讲解Faster-RCNN的配置过程,以及配置过程中遇到问题的解决方案。

1. 下载工程

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

 代码存放的位置,以及文件中包含的东西,如下图所示:

 2. 编译caffe

cd /home/wdong/code/py-faster-rcnn/caffe-fast-rcnn
cp Makefile.config.example Makefile.config
sudo gedit Makefile.config

USE_CUDNN := 1前边的注释取消 , 如下:

WITH_PYTHON_LAYER := 1前边的注释取消 , 如下:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 后添加 /usr/include/hdf5/serial,如下:

make -j4 && make pycaffe

会发现报错,报错如下:

主要是因为我使用的是CUDNN5.1版本,该版本不支持py-faster-rcnn,这里给出一种解决方案:

之前我们安装的caffe的目录是 /home/wdong/caffe 替换目录 /home/wdong/code/py-faster-rcnn/caffe-fast-rcnn 中对应的文件:

include/caffe/layers/cudnn_relu_layer.hpp,
src/caffe/layers/cudnn_relu_layer.cpp,
src/caffe/layers/cudnn_relu_layer.cuinclude/caffe/layers/cudnn_sigmoid_layer.hpp,
src/caffe/layers/cudnn_sigmoid_layer.cpp,
src/caffe/layers/cudnn_sigmoid_layer.cuinclude/caffe/layers/cudnn_tanh_layer.hpp,
src/caffe/layers/cudnn_tanh_layer.cpp,
src/caffe/layers/cudnn_tanh_layer.cuinclude/caffe/util/cudnn.hpp

 

cd /home/wdong/code/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers
sudo gedit cudnn_conv_layer.cu#将 cudnnConvolutionBackwardData_v3 修改为 cudnnConvolutionBackwardData
#将 cudnnConvolutionBackwardFilter_v3 修改为 cudnnConvolutionBackwardFilter

重新make

make clean
make -j4

make pycaffe

3. 下载faster_rcnn_models 和 imagenet_models

链接:https://pan.baidu.com/s/1dKkYZwuEJ6cYHIr9FwMw5A 
提取码:zb6y 

 

拷贝到 /home/wdong/code/py-faster-rcnn/data/ 目录下

tar -xvf faster_rcnn_models.tgz

4. 运行demo.py

此处需要注意你的硬件情况,官方的给的要求如下:

考虑到本机配置的GPU为 1060,显存只有6G,故 这里只能调用 ZF_faster_rcnn_final.caffemodel,如果调用VGG16会报错。

在终端进行,输入:

./tools/demo.py --net zf

发现报错,报错如下:

产生bug的原因,没有切换权限,解决方案:

sudo ./tools/demo.py --net zf

 运行结果如下:


推荐阅读
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 本文介绍如何在Ubuntu环境下为OpenWrt系统构建并安装首个'Hello World'应用程序的IPK包。文章不仅涵盖了基本的环境搭建,还详细说明了代码编写、Makefile配置及最终的IPK包生成与安装过程。 ... [详细]
  • 本文介绍了在Makefile及Android.mk文件中添加打印输出信息的方法,并详细解析了Android编译过程中的关键步骤,包括环境变量的设置与编译脚本的执行。 ... [详细]
  • 本文深入探讨了在安装PostgreSQL数据库系统时,执行Configure、Make及Make Install命令的具体含义与作用。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
  • 本文详细记录了在Ubuntu 9.10操作系统上从零开始搭建LAMP(Linux, Apache, MySQL, PHP)环境的过程,包括遇到的问题及解决方案。旨在为初次尝试搭建LAMP环境的开发者提供参考。 ... [详细]
  • 本文深入探讨了面向切面编程(AOP)的概念及其在Spring框架中的应用。通过详细解释AOP的核心术语和实现机制,帮助读者理解如何利用AOP提高代码的可维护性和开发效率。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • 本文详细解析了Java中throw和throws的关键区别,同时涵盖了JDK的定义、Java虚拟机的关键约定、Java的跨平台性、自动垃圾回收机制、源文件结构、包的概念及作用等多个核心知识点,旨在帮助学生更好地准备Java期末考试。 ... [详细]
  • magent是一款开源的Memcached代理服务器软件,其项目网址为:  http:code.google.compmemagent  一、安装步骤& ... [详细]
  • QEMU环境下加载首个Linux驱动模块
    本文介绍了如何在Ubuntu 20.04系统上使用QEMU虚拟机加载一个简单的Linux驱动模块。此过程涉及Linux内核4.0版本的配置与编译。 ... [详细]
author-avatar
信步老街
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有