如何在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的过程。注意版本问题和环境问题即可。

相关文章
|
6月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
655 55
|
8月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【大作业-04】手把手教你构建垃圾分类系统-基于tensorflow2.3
本文介绍了基于TensorFlow 2.3的垃圾分类系统,通过B站视频和博客详细讲解了系统的构建过程。系统使用了包含8万张图片、245个类别的数据集,训练了LeNet和MobileNet两个卷积神经网络模型,并通过PyQt5构建了图形化界面,用户上传图片后,系统能识别垃圾的具体种类。此外,还提供了模型和数据集的下载链接,方便读者复现实验。垃圾分类对于提高资源利用率、减少环境污染具有重要意义。
414 0
【大作业-04】手把手教你构建垃圾分类系统-基于tensorflow2.3
|
3月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
230 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
4月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
275 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
3月前
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
6月前
|
编解码 人工智能 缓存
自学记录鸿蒙API 13:实现多目标识别Object Detection
多目标识别技术广泛应用于动物识别、智能相册分类和工业检测等领域。本文通过学习HarmonyOS的Object Detection API(API 13),详细介绍了如何实现一个多目标识别应用,涵盖从项目初始化、核心功能实现到用户界面设计的全过程。重点探讨了目标类别识别、边界框生成、高精度置信度等关键功能,并分享了性能优化与功能扩展的经验。最后,作者总结了学习心得,并展望了未来结合语音助手等创新应用的可能性。如果你对多目标识别感兴趣,不妨从基础功能开始,逐步实现自己的创意。
263 60
|
6月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
369 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
7月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
359 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
7月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
399 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
8月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【大作业-02】水果蔬菜识别系统-基于tensorflow2.3开发
2021年6月18日,TensorFlow 2.3物体分类代码已修复并更新。本项目支持自定义数据集训练,包括基于CNN和Mobilenet的模型,后者准确率高达97%。提供了详细的CSDN教程、B站教学视频及数据集下载链接,帮助用户快速上手。项目还包括PyQt5构建的图形界面,方便用户上传图片进行果蔬识别。更多详情与代码可在Gitee获取。
225 0
【大作业-02】水果蔬菜识别系统-基于tensorflow2.3开发

热门文章

最新文章