py-faster-rcnn 环境配置

2024-08-29 02:18
文章标签 配置 环境 py faster rcnn

本文主要是介绍py-faster-rcnn 环境配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、下载py-faster-rcnn

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

2、进入py-faster-rcnn/lib,执行make

cd ~/py-faster-rcnn/lib
make

3、进入py-faster-rcnn\caffe-fast-rcnn,修改Makefile.config文件

cd ~/py-faster-rcnn/caffe-fast-rcnn
cp Makefile.config.example Makefile.config

修改配置Makefile.config文件:

USE_CUDNN := 1#去掉这个注释,因为要使用cudnn(但是假如显卡太低级,兼容性不够,就用不了cudnn)
# CPU_ONLY := 1#加上这个注释(因为要使用cuda,所以就不用改)
WITH_PYTHON_LAYER := 1 #去掉这个注释,因为以后经常会用到caffe 的 Python layer
            #使用opencv

            OPENCV_VERSION := 3

然后根据自己的cuda根据该文档提示删去或者注释掉相应的版本的,例如
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
#-gencode arch=compute_20,code=sm_21 \(要根据自己实际才cuda版本注释,文件本身有提示)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial(一般是这两条,具体路径可以自己看机器的hdf5文件夹路径)
保存退出。

4、编译执行

make -j8 
make pycaffe  

出现的错误即解决方案:


错误原因:py-faster-rcnn/caffe-fast-rcnn只支持cudnn4的代码,编译报错。

解决方案:git版本合并

cd caffe-fast-rcnn
# 将BLVC/caffe添加为远程仓库,命名为caffe
git remote add caffe https://github.com/BVLC/caffe.git
# 获取BLVC/caffe代码
git fetch caffe
# 将BLVC/caffe的master分支合并到当前分支
# -X theirs 指定在合并遇到冲突时以BLVC/caffe版本为主
git merge -X theirs caffe/master

执行git merge -X theirs caffe/master会出现要求输入注释信息: 不必输入任何内容,直接按Ctrl-X 离开 

修改python_layer.hp

版本合并后,打开caffe-fast-rcnn/include/caffe/layers/python_layer.hp,self_.attr("phase") = static_cast<int>(this->phase_);这一行(line29)删除 
这里写图片描述

然后再重新编译caffe-fast-rcnn,就可以正常编译通过了。

5、下载模型:faster_rcnn_models.tgz https://dl.dropboxusercontent.com/s/o6ii098bu51d139/faster_rcnn_models.tgz?dl=0

解压后存放在:下载后存放在:~/py-faster-rcnn/data/faster_rcnn_models/XXXX.caffemodel 

6、运行演示文件demo.py

cd ~/py-faster-rcnn/tools
./demo.py

运行时可能报错,可能需要安装的库:

pip install pyyaml

apt-get install python-tk

sudo pip install easydict

结果:


其他错误以及解决方案

1.TypeError: slice indices must be integers or None or have an __index__ method

uninstalling numpy and installing numpy 1.11.2.

pip uninstall numpy
pip install numpy==1.11.2
2.  Check failed: status == CUDNN_STATUS_SUCCESS (3 vs. 0) CUDNN_STATUS_BAD_PARAM

在卷积层convolution_param中添加engine: CAFFE


参考:

[1] https://blog.csdn.net/renhanchi/article/details/78500665




这篇关于py-faster-rcnn 环境配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116558

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方