Windows 下 TensorFlow 和 Faster rcnn 详细安装步骤(二)

2024-04-26 23:48

本文主要是介绍Windows 下 TensorFlow 和 Faster rcnn 详细安装步骤(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


2020更新:这两篇安装步骤是我最开始接触深度学习时一路踩坑记录下来方便查看的,没想到得到这么多关注,如果你是做深度学习研究刚刚入门,建议去学习新的tensorflow2.0,或者Pytorch(Pytorch真的很友好,我目前是转Pytorch了)。因为这个教程用到的tensorflow版本低,而且用的Faster RCNN代码功能也欠缺,比如计算PR之类的。个人之前是纯小白,大家评论的很多问题我也没给出有用的建议,tensorflow这块我基本是放弃了。但如果单纯是练手,还是可以无脑安装的。


Windows 下 TensorFlow Faster rcnn 详细安装步骤(一)

上一篇博客详细介绍了Windows系统下TensorFlow框架的搭建,这篇将继续介绍Faster rcnn算法的安装。

本文选择的Windows Faster rcnn python版本代码为 https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5

另外,你完全可以按照这篇的流程来,需要的安装包和数据我都放了链接,但有些很大,下载起来非常慢,因此我都下载下来放到了云盘里,如果需要的话,可以关注微信公众号:TechGIS,后台回复“tensorflow”,即可获取。

1. 确保TensorFlow和相关的依赖安装成功

2.下载faster rcnn程序包:下载链接,解压,然后可以看一下里面的readme

3.安装python依赖库(cython, python-opencv, easydict)

注意还是要在TensorFlow虚拟环境下安装

activate tensorflowpip install cythonpip install python-opencvpip install easydict

如果在安装python-opencv时失败,提示找不到相关的库,可以换一种安装方式:

在这个网站上http://www.lfd.uci.edu/~gohlke/pythonlibs/ 查找OpenCV,如下图,选择python3.5版本的,且与自己电脑系统匹配的安装包下载。

然后使用命令安装:

pip install C:\Users\master\Downloads\opencv_python-3.4.2-cp35-cp35m-win_amd64.whl

4. 在cmd中使用cd命令到解压后的文件夹下../data/coco/PythonAPI目录下,执行以下代码:

cd C:\Users\master\Downloads\Faster-RCNN-TensorFlow-Python3.5-master\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPIpython setup.py build_ext --inplacepython setup.py build_ext install

执行时如果报错 Unable to find vcvarsall.bat,建议安装visual studio 2015,安装时默认的语言是C#和VB,需要把C++也勾上。

附python版本与C++编译器版本对应关系图:

如果已经安装了VS 2015,检查VS安装目录下是否有vcvarsall.bat文件,例如我的路径为:D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC,如果没有此文件,表明安装时是默认安装的,还缺少C++编译文件,这个时候可以打开VS,新建项目,语言选择C++,此时VS会让你安装一个工具,安装后就好了。

5.下载VOC2007格式的数据集

下载地址:

http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

将下载后的三个压缩包解压到同一个文件夹下,以WinRAR为例,同时选中三个压缩包,右键,然后选择解压到当前文件夹

可以得到VOCDevkit文件夹,将VOCDevkit重命名为VOCDevkit2007,然后将这个文件夹拷贝到你自己的Faster-RCNN中data目录下。

6.下载预训练的VGG16网络模型:

下载地址:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

下载之后解压,文件重命名为vgg16.ckpt,新建文件夹imagenet_weights,把vgg16.ckpt放到imagenet_weights下,再将imagenet_weights文件夹拷贝到data文件夹下,

这样,VGG16网络模型的地址应该类似于这样:../data/imagenet_weights/vgg16.ckpt

7.现在就可以训练模型了:

在faster rcnn目录下运行命令:

python train.py

OK,搞定,这时候,就是在用VOCDevkit2007下的示例图片训练分类模型了。第一次运行时可能会报错说找不到matplotlib,scipy,PIL(对应的是pillow库)等,安装这些库就好了。另外,不管是CPU版本还是GPU版本的TensorFlow,建议是使用较低版本的,比如1.3。使用anaconda的好处就是,你随时可以新建一个虚拟环境,重新安装配置TensorFlow,不用去管python环境了。

8.模型训练结束后,在 ..\default\voc_2007_trainval\default目录下可以看到训练的模型

默认每5000次保存,一共迭代40000次(max_iters),这些在config.py中可以自己设置。

9.运行demo,在运行demo.py前在编辑器中对demo.py作些更改

tfmodel = os.path.join('output', demonet, DATASETS[dataset][0], 'default', NETS[demonet][0])

这句代码指向训练模型结果,但实际是不存在的,需要我们新建文件夹,并且拷贝上一步生成的模型到该文件夹下,为简化,直接把这句代码替换成自己的路径即可,例如:

tfmodel=r'D:\FasterRCNN\output\vgg16\voc_2007_trainval\default\vgg16_faster_rcnn_iter_40000.ckpt'

注意后缀是ckpt,关于tensorflow生成的ckpt模型,大家可以自行查阅相关的参考资料,这里简单介绍一下,ckpt模型实际包含三个部分,ckpt.meta保存graph结构,ckpt.index是一个string-string table,ckpt.data保存模型的所有变量值

另外,下面的代码中,--net输入参数默认改成vgg16,--dataset输入参数默认改成pascal_voc

def parse_args():"""Parse input arguments."""parser = argparse.ArgumentParser(description='Tensorflow Faster R-CNN demo')parser.add_argument('--net', dest='demo_net', help='Network to use [vgg16 res101]',choices=NETS.keys(), default='res101')parser.add_argument('--dataset', dest='dataset', help='Trained dataset [pascal_voc pascal_voc_0712]',choices=DATASETS.keys(), default='pascal_voc_0712')args = parser.parse_args()return args

改成下面这样:

def parse_args():"""Parse input arguments."""parser = argparse.ArgumentParser(description='Tensorflow Faster R-CNN demo')parser.add_argument('--net', dest='demo_net', help='Network to use [vgg16 res101]',choices=NETS.keys(), default='vgg16')parser.add_argument('--dataset', dest='dataset', help='Trained dataset [pascal_voc pascal_voc_0712]',choices=DATASETS.keys(), default='pascal_voc')args = parser.parse_args()return args

然后,就可以运行了,执行代码:

python demo.py

得到结果如下图:

另外,如何使用faster rcnn训练自己的模型,然后识别图片,可以参考下一篇博客:

Windows下使用Faster RCNN训练自己的模型

这篇关于Windows 下 TensorFlow 和 Faster rcnn 详细安装步骤(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的