当前位置: 首页 > news >正文

如何在 Windows10 下运行 Tensorflow 的目标检测?

前言

        看过很多博主通过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等诸多特定项的目标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本冲突,就是缺少什么包,还有是运行官方 object_detection_tutorial 不展示图片等等问题。

        在看过一个国外博主例子,我也通过 Tensorflow-GPU1.10.0 运行了官方例子,既然要使用 GPU 则需要把 CUDA 先配置好,上一篇文章有特别详细介绍到。而这里就捋一下在运行过程遇到的种种问题。

环境

1. windows10 的 64 位电脑

2. 显卡 GeForce GTX 750 Ti

3. Python 3.6.13

4. Tensorflow-GPU 1.10.0

5. Cuda 9.0.176

6. Cudnn7.0.5

环境搭建

1.  安装 Python 3.6.13 环境

由于之前我有其他项目用了高版本的 Py,这里我就用了 Anconda3 的 conda 创建一个虚拟环境,这里的 conda 的 bin 目录需要加到环境变量中。

1.1. 查看环境列表

输入 conda env list,就可以列出以往所有的环境名了,也是为了避免后面太多相似

1.2. 创建新环境并进入

conda create -n object_dection python=3.6 && conda activate object_dection

1.3. 安装 Tensorflow-gpu

因为以上通过 conda 创建了新环境也安装了 pip,所以只需要输入 pip install tensorflow-gpu==1.10.0,在下载过程中可能会中断,要多试几次。

1.4. 安装其他依赖

conda install -c anaconda protobuf
pip install pillow
pip install lxml
pip install Cython
pip install jupyter (时间较长,可能会中断)
pip install matplotlib
pip install pandas
pip install opencv-python (安装是可能会被杀毒软件误报)

资源下载

1. 下载与 TF 1.10.0 对应的模型库

以下是对应关系,我这里就选择 ”tensorflow/models/tree/b07b494e3514553633b132178b4c448f994d59df“,下载完毕后放入一个盘符下即可。

TensorFlow版本   GitHub 模型存储库提交
TF v1.7			https://github.com/tensorflow/models/tree/adfd5a3aca41638aa9fb297c5095f33d64446d8f
TF v1.8			https://github.com/tensorflow/models/tree/abd504235f3c2eed891571d62f0a424e54a2dabc
TF v1.9			https://github.com/tensorflow/models/tree/d530ac540b0103caa194b4824af353f1b073553b
TF v1.10		https://github.com/tensorflow/models/tree/b07b494e3514553633b132178b4c448f994d59df
TF v1.11		https://github.com/tensorflow/models/tree/23b5b4227dfa1b23d7c21f0dfaf0951b16671f43
TF v1.12		https://github.com/tensorflow/models/tree/r1.12.0
TF v1.13		https://github.com/tensorflow/models/tree/r1.13.0
最新版本	 	  https://github.com/tensorflow/models

2. 下载 TF 的目标检测模型

下载地址在模型库的 research/object_detection/g3doc/tf1_detection_zoo.md 里,模型选择就很有讲究了,若要在计算能力较差的设备上 (智能手机、树莓派、FPGA 等嵌入式系统中),使用 SSD-MobileNet 系列,若在工作站上训练检测可使用 RCNN 系列。这里选择的是 ”Faster-RCNN-Inception-V2“,下载完毕后放入上面模型库里的 object-detection-model\research\object_detection 下面。

3. 下载国外博主提供的 demo

地址:https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10#3-gather-and-label-pictures,下载后解压放入 object-detection-model\research\object_detection。

环境配置

1. 配置模型的环境变量

需要将 \models, \models\research, and \models\research\slim 三个路径加入到 path 的环境变量中。

2. 编译 Protobuf 文件

命令的目录切换到 "object-detection-model\research” 下,通过前面 conda 安装的 protobuf 将.proto 编译成 name_pb2.py 文件,输入以下命令。

protoc --python_out=. .\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

3. 安装 Object-Detection

继续在 “object-detection-model\research” 目录下,分别运行下面两个命令,并且会多出几个文件夹。

python setup.py build
python setup.py install

验证与运行

为了验证 Object Detection 是否安装成功,也为了运行目标检测官方案例。通过前面安装的 jupyter,执行以下命令,前提是命令目录需要切换到 “object-detection-model\research\object_detection”。

jupyter notebook object_detection_tutorial.ipynb

运行后默认会打开浏览器,然后打开脚本,并能一次一步地浏览代码部分。可以通过单击上面工具栏中的 “运行” 按钮逐步浏览每个部分。当小节旁边的 “In [*] 文本中的数字出现时,该节将完成运行 (例如 “In [1]”)。(注意:其中有一步是从 GitHub 上下载 ssd_mobilenet_v1 模型,大约 74M,需要多等一会,程序是在执行的,并不是死机或出错。静等 In [*] 中的 * 变成数字)。但是当我在点击每段代码时,就有以下几个报错。

1. Could not find 'cudart64_90.dll'. TensorFlow requires that this DLL be installed in a directory that
原因:本地电脑没有 CUDA 的 cudart64_90.dll 文件,当安装 CUDA 后还报错,原来是启动窗口没有关闭,命令找的是旧环境地址
方法:重启打开该 conda 环境,再重新启动 jupyter 命令。

2. Please upgrade your tensorflow installation to v1.4.* or later
原因:反复确认过在该环境下安装的是 TF1.10.0,目前不知道什么原因,以下方法虽然解决了,但是第一段代码运行还有有一些异常信息。
方法:打开 object_detection_tutorial.ipynb 文件,找到 "source", 删除或注释掉以下代码。

3. 目标检测的图片不出来。
原因:目前不知道原因,没有错误提示,我也更换过浏览器。
方法:代码运行选择了 run all,在火狐浏览器里就出来了。

4. 最后如果需要上面的下载代码,可以留言,到时候我再贴出来。

相关文章:

如何在 Windows10 下运行 Tensorflow 的目标检测?

前言 看过很多博主通过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等诸多特定项的目标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本冲突,就是缺少什么包,还有是运行官方 object_detection_tutorial 不展示…...

【jvm系列-04】精通运行时数据区共享区域---堆

JVM系列整体栏目 内容链接地址【一】初识虚拟机与java虚拟机https://blog.csdn.net/zhenghuishengq/article/details/129544460【二】jvm的类加载子系统以及jclasslib的基本使用https://blog.csdn.net/zhenghuishengq/article/details/129610963【三】运行时私有区域之虚拟机栈…...

ctfshow愚人杯 re easy_pyc wp

一、反编译题目pyc文件 题目下载解压后是一个.pyc文件,那就去反编译看看呗,因为之前用过uncompyle6,直接去命令行执行 uncompyle6 -o ez_re.py ez_re.pyc 得到ez_re.py源码一份~ 但是这里我用uncompyle6反编译的结果不知道为啥就出来很多奇…...

Ubuntu18.04 系统中本地代码上传至Gitlab库

主要步骤如下: 设置SSH Key 上传项目 1.创建SSH Key 每次上传可重新设置一个SSH Key或者使用已有SSH Key (1)创建SSH Key 创建一个新的SSH Key,终端输入以下指令,其中 “xxxxxx163.com” 是邮箱账号: s…...

Leetcode.1665 完成所有任务的最少初始能量

题目链接 Leetcode.1665 完成所有任务的最少初始能量 Rating : 1901 题目描述 给你一个任务数组 tasks,其中 tasks[i] [actuali, minimumi]: actuali是完成第 i 个任务 需要耗费 的实际能量。minimumi是开始第 i 个任务前需要达到的最低能…...

【C++笔试强训】第一天

选择题 解析&#xff1a;在for循环的循环条件(y 123) && (x < 4)中 &#xff0c;&& 表示逻辑与&#xff0c;从左向右判断两边条件是否成立&#xff0c;只有当两边的条件都为真时&#xff0c;这条语句才为真。左边y 123是赋值语句&#xff0c;一直为真&…...

【网络安全软件】上海道宁与Cybereason为您提供未雨绸缪的攻击保护,终结对端点、整个企业以及网络上任何角落的网络攻击

Cybereason可收集 计算机网络内任何活动方面的数据 如运行当中的程序 被用户访问的文件以及 员工及任何获授权使用网络中的计算机人的 键盘输入和鼠标移动情况 Cybereason提供 即时结束网络攻击的精确度 在计算机、移动设备、服务器和云中 到战斗移动的任何地方 一、开…...

基于RK3568的Android11 适配 MIPI 屏幕

文章目录 前言一、mipi接口是什么?二、原理图三、屏幕点亮流程四、屏幕关键参数1.General Specification2. Power on/off sequence3.Timing五、屏幕初始化序列改写如何把原厂给的数据转换为设备需要的时序dcs小知识:初始化时序:退出时序:总结前言 在本小节会学习到如何适配…...

Ubuntu安装python

CentOS 安装 Python3 没什么坑&#xff0c;按照步骤一步步来就可以了。 但 Ubuntu 安装 Python3 的坑却不少&#xff0c;这里总结一下&#xff0c;避免以后继续踩坑。 我用的是 ubuntu16.04&#xff0c;安装最新版本的 Python3.8.3 第1步&#xff1a;安装编译环境 安装之前…...

django 运用pycharm的各种故障汇总(1)

一.用django入门第一个问题:pycharm的[community]社区版-免费开源与[professional]专业版注册收费两个版本:用django只能有[professional]版本便捷、专业; 解决方案的各种学习总结: 1.破解版:网上找了很多资料,基本已经没效果,不要报太大希望; 2.找中间途径然后有:Python 、…...

【设计模式】单例模式Singleton(Java)

文章目录定义类图Java经典实现懒汉Lazy Mode&#xff1a;饿汉Eager Mode&#xff1a;在饿汉下的多线程案例在懒汉下的多线程案例总结定义 单例模式&#xff08;单件模式&#xff09;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。——HeadFirst 单例模式通过过防…...

机器学习中的公平性

文章目录机器学习公平性评估指标群体公平性指标个人公平性指标引起机器学习模型不公平的潜在因素提升机器学习模型公平性的措施机器学习公平性 定义&#xff1a; 机器学习公平性主要研究如何通过解决或缓解“不公平”来增加模型的公平性&#xff0c;以及如何确保模型的输出结果…...

Docker镜像之Docker Compose讲解

文章目录1 docker-compose1.1 compose编排工具简介1.2 安装docker-compose1.3 编排启动镜像1.4 haproxy代理后端docker容器1.5 安装socat 直接操作socket控制haproxy1.6 compose中yml 配置指令参考1.6.1 简单命令1.6.2 build1.6.3 depends_on1.6.4 deploy1.6.5 logging1.6.6 ne…...

蓝桥杯30天真题冲刺|题解报告|第三十天

大家好&#xff0c;我是snippet&#xff0c;今天是我们这次蓝桥省赛前一起刷题的最后一天了&#xff0c;今天打了一场力扣周赛&#xff0c;前面3个题都是有思路的&#xff0c;第三个题只过了一半的案例&#xff0c;后面看完大佬们的题解彻悟&#xff0c;下面是我今天的题解 目录…...

配置 Git Husky 代码提交约束

介绍 Git Husky 是一个可以管理 Git Hooks 的工具&#xff0c;它可以帮助我们在代码提交的时候运行脚本&#xff0c;以确保代码提交符合特定的规范和约定。 在 Git 中&#xff0c;允许在操作特定的事件时执行特定的脚本&#xff0c;这些事件我们称之为 Hooks。 Git Husky 利…...

IntelliJ IDEA 2023.1 最新变化

文章目录IntelliJ IDEA 2023.1 最新变化一. 主要更新1. 新 UI 增强 测试版启用新 UI2. 在项目打开时更早提供 IDE 功能3. 更快地导入 Maven 项目4.后台提交检查5. Spring Security 匹配器和请求映射的导航 Ultimate二. 用户体验1. 全 IDE 缩放2. 保存多个工具窗口布局的选项3. …...

stm32学习笔记-9 USART串口

9 USART串口 文章目录9 USART串口9.1 串口通信协议9.2 stm32的片上外设-USART9.3 USART收发相关实验9.3.1 实验1&#xff1a;串口发送9.3.2 实验2&#xff1a;移植printf函数9.3.3 实验3&#xff1a;串口发送接收9.4 USART串口数据包9.5 USART数据包相关实验9.5.1 实验1&#x…...

【蓝桥杯】每日四道编程题(两道真题+两道模拟)| 第四天

专栏&#xff1a; 蓝桥杯——每日四道编程题&#xff08;两道真题两道模拟&#xff09; “蓝桥杯就要开始了&#xff0c;这些题刷到就是赚到” ₍ᐢ..ᐢ₎♡ 另一个专栏&#xff1a; 蓝桥杯——每日四道填空题&#xff08;两道真题两道模拟题&#xff09; 目录 专栏&#xff1…...

大家有没有时候觉得,递归,分治,回溯,傻傻分不清楚?

递归&#xff0c;分治&#xff0c;回溯的定义 递归&#xff08;Recursion&#xff09; 递归是一种解决问题的方法&#xff0c;它将一个问题分解成一个或多个较小的相同类型的子问题&#xff0c;然后通过递归调用自身来解决这些子问题。递归通常包括一个基本情况&#xff08;b…...

Java 8 - Lambda 表达式

1. 函数式接口 当一个接口中只有一个非 default 修饰的方法&#xff0c;这个接口就是一个函数式接口用 FunctionalInterface 标注 1&#xff09;只有一个抽象方法 FunctionalInterface public interface MyInterface {void print(int x); } 2&#xff09;只有一个抽象方法和…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...