如何在windows系统上安装Tensorflow Object Detection API?

简介: 都说Linux是最适合程序员使用的操作系统,这话还真不假。之前一直在云服务器上跑代码,近期接手了师兄的台式机(GTX 1050),虽然配置很渣,但想在本地玩玩看,于是乎先安装一波Tensorflow Object Detection API。之前云服上配置的时候十分顺利,可是到了windows下很容易进坑,这里简单整理下踩坑后的总结。

前言

都说Linux是最适合程序员使用的操作系统,这话还真不假。

之前一直在云服务器上跑代码,近期接手了师兄的台式机(GTX 1050),虽然配置很渣,但想在本地玩玩看,于是乎先安装一波Tensorflow Object Detection API。

之前云服上配置的时候十分顺利,可是到了windows下很容易进坑,这里简单整理下踩坑后的总结。

目录

大致的安装步骤其实差不多,只是在些细节上会遇到坑,在这些坑上注意避免即可。

  • 从GitHub下载官方的存储库
  • 依赖库的安装
  • 用protobuf解析API中的一些文件
  • 测试API是否安装成功
  • 运行官方教程中的代码查看效果

具体操作

不谈基本依赖库和框架版本的教程就是耍流氓!

相信在各种博客上查找教程的小伙伴们一定有这种感觉吧。所以先说下自己的版本情况:

  • Tensorflow-gpu-1.10.0
  • cuda9
  • cuDNN7
  • Python3.6.8
  • Protobuf3.7.1

从GitHub下载官方存储库

官方github网站链接为:

https://github.com/tensorflow/models

在本地建立文件夹用于存储(这个自定义即可),然后将官方存储库下载到本地,至于是下载压缩包还是直接git取决于个人喜好就好。下图即为小詹的本地截图。

76.jpg


依赖库的安装

想运行官方教程,需要的第三方库有:pillow、lxml、Cython、jupyter、matplotlib、pandas等,如果使用anoconda安装的Python,大多数第三方库已经有啦。缺少第三方库的直接pip install就好了。

另外就是安装TensorFlow,CUDA,cuDNN了,这里主要是注意版本对应关系,其他的问题应该不大。

77.jpg


用protobuf解析API中的一些文件

官方API需要使用一些proto文件,这里需要用protobuf将其转换为Python的可运行代码格式。这些文件放置在官方库的research\object_detection\protos路径下。

78.jpg


这里需要使用protobuf将其转换格式,官方给的转换执行语句是:


#小詹提醒:在model/research路径下打开cmd执行下语句
protoc object_detection/protos/*.proto --python_out=.

这里就涉及到protoc到版本了,如前面所述,小詹下载TensorFlow-gpu1.10.0点时候自带了protobuf3.7.1。直接执行这语句会提示:No such file.

79.jpg


是一个小坑了,查阅到官方的issue,有前辈们说说版本小bug,不支持正则查找。有两种方法,小詹亲测有效。

方法一:去官网查找下载使用protoc3.4.0版本,官方地址:https://github.com/protocolbuffers/protobuf/releases

方法二:不支持正则,可以考虑一个个proto文件进行处理转换,这个在量不大的时候可以这么做。小詹这里把逐个进行转换命令语句放置在下面,如果你需要可以复制粘贴即可。

protoc .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\multiscale_anchor_generator.proto .\object_detection\protos\graph_rewriter.proto --python_out=.

经过小坑,选择解决方法后应该就处理完所有的proto文件,转换成啦对应的py文件。

80.jpg


测试API是否安装成功

测试API是否安装成功可以在research路径下执行下列语句:

python object_detection/builders/model_builder_test.py

这里肯定是不行的,因为还没有将必要的路径加入PYTHON环境中。会出现各种报错,诸如不能导入****pb之类的或者导入错误之类的。

网上教程有的说要先在Anaconda\Lib\site-packages  文件夹下新建一个txt文件,输入对应路径后改名tensorflow_model.pth的,也有其他说法的。

小詹最后亲测有效的是直接添加设置即可。将\models;\models\research;\models\research\slim;三个路径加入pythonpath中,代码执行如下:(注意前方路径要换成你自己的)

set PYTHONPATH=E:\Jan_Project\tf_models;E:\Jan_Project\tf_models\research;E:\Jan_Project\tf_models\research\slim

设置后再次执行测试语句没有报错,表示设置完成。

81.jpg


运行官方教程中的代码查看效果

官方的目标检测教程路径在第一步git到本地的文件中,路径为:

models/research/object_detection/object_detection_tutorial.ipynb

可以中jupyter中打开运行,成功执行结果如下图。

82.jpg


以上就是中windows系统安装Tensorflow Object Detection API的过程。注意版本问题和环境问题即可。

相关文章
|
1月前
|
JSON API 数据处理
Winform管理系统新飞跃:无缝集成SqlSugar与Web API,实现数据云端同步的革新之路!
【8月更文挑战第3天】在企业应用开发中,常需将Winform桌面应用扩展至支持Web API调用,实现数据云端同步。本文通过实例展示如何在已有SqlSugar为基础的Winform系统中集成HTTP客户端调用Web API。采用.NET的`HttpClient`处理请求,支持异步操作。示例包括创建HTTP辅助类封装请求逻辑及在Winform界面调用API更新UI。此外,还讨论了跨域与安全性的处理策略。这种方法提高了系统的灵活性与扩展性,便于未来的技术演进。
145 2
|
1月前
|
开发框架 缓存 前端开发
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
|
3月前
|
JavaScript 前端开发 测试技术
【vue实战项目】通用管理系统:api封装、404页
【vue实战项目】通用管理系统:api封装、404页
35 3
|
28天前
|
监控 Cloud Native 容灾
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
|
1月前
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API三种搭建神经网络的方式及以mnist举例实现
使用Keras API构建神经网络的三种方法:使用Sequential模型、使用函数式API以及通过继承Model类来自定义模型,并提供了基于MNIST数据集的示例代码。
40 12
|
21天前
|
UED 开发工具 iOS开发
Uno Platform大揭秘:如何在你的跨平台应用中,巧妙融入第三方库与服务,一键解锁无限可能,让应用功能飙升,用户体验爆棚!
【8月更文挑战第31天】Uno Platform 让开发者能用同一代码库打造 Windows、iOS、Android、macOS 甚至 Web 的多彩应用。本文介绍如何在 Uno Platform 中集成第三方库和服务,如 Mapbox 或 Google Maps 的 .NET SDK,以增强应用功能并提升用户体验。通过 NuGet 安装所需库,并在 XAML 页面中添加相应控件,即可实现地图等功能。尽管 Uno 平台减少了平台差异,但仍需关注版本兼容性和性能问题,确保应用在多平台上表现一致。掌握正确方法,让跨平台应用更出色。
28 0
|
1月前
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API两种训练GAN网络的方式
使用Keras API以两种不同方式训练条件生成对抗网络(CGAN)的示例代码:一种是使用train_on_batch方法,另一种是使用tf.GradientTape进行自定义训练循环。
26 5
|
1月前
|
应用服务中间件 Shell 网络安全
nginx安装提示 libssl.so.3: cannot open shared object file: No
【8月更文挑战第1天】### 原因 未将安装的ssl中的`libssl.so.3`链接到`/usr/lib`导致缺失。 ### 解决方案 1. 检查openssl是否已安装,若为低版本则需重装。 ```sh whereis openssl
439 6
|
1月前
|
TensorFlow API 算法框架/工具
【Tensorflow 2】Keras API+Estimator的使用
本文介绍了在TensorFlow 2中结合Keras API和Estimator API来构建和训练模型的方法,并提供了一个示例流程,包括构建模型、生成数据集、使用Estimator进行训练以及评估模型性能。
22 3
|
2月前
|
API 数据库 数据安全/隐私保护
Django配置api、管理系统和视图
Django配置api、管理系统和视图
58 1