object detection之Win10配置

1、下载models。

https://github.com/tensorflow/models 并文件解压。

2、下载protos文件

https://github.com/protocolbuffers/protobuf/releases?after=v3.9.1

我这里下载的3.7.0版本。注意一定要下载protoc-xxx-win64.zip版本。必须是带有win64的压缩包,否则可能没有需要的bin文件

下载后解压如下:并将bin下的protoc.exe文件复制到C:\Windows\System32文件夹下。

打开cmd输入protoc。如果出现以下界面 则表示配置protoc成功

3、编译proto文件

打开windows PowerShell(注意,这里必须是PowerShell,运行cmd会报错)。cd到research文件目录下

输入:

Get-ChildItem object_detection/protos/*.proto | Resolve-Path -Relative | %{ protoc $_ --python_out=. }

运行成功后:查看research下object_detection文件夹下protos文件,如果每个proto文件都成了对应的以py为后缀的python源码,就说明编译成功了。

4、配置环境变量

在Anaconda\Lib\site-packages新建一个路径文件tensorflow_model.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称,如下图:

5、运行models/research下的setup.py

python setup.py build

python setup.py install

6、测试

在object_detection文件夹下建立object_detection_demo.py 文件

代码如下:这里模型下载链接:链接:https://pan.baidu.com/s/1dxzU4YMpF93qwkXF0x-3JA提取码:uhju

# 一定要保存为UTF8的格式哦
import numpy as np
import os
import six.moves.urllib as urllib
import sys
import tarfile
import tensorflow as tf
import zipfile
import matplotlib
import cv2# Matplotlib chooses Xwindows backend by default.
matplotlib.use('Agg')from collections import defaultdict
from io import StringIO
from matplotlib import pyplot as plt
from PIL import Image
from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_util##################### Download Model,如果本地已下载也可修改成本地路径
# What model to download.
MODEL_NAME = 'ssd_mobilenet_v1_coco_2017_11_17'
MODEL_FILE = MODEL_NAME + '.tar.gz'
DOWNLOAD_BASE = 'http://download.tensorflow.org/models/object_detection/'# Path to frozen detection graph. This is the actual model that is used for the object detection.
PATH_TO_CKPT = MODEL_NAME + '/frozen_inference_graph.pb'# List of the strings that is used to add correct label for each box.
PATH_TO_LABELS = os.path.join('data', 'mscoco_label_map.pbtxt')NUM_CLASSES = 90# Download model if not already downloaded
if not os.path.exists(PATH_TO_CKPT):print('Downloading model... (This may take over 5 minutes)')opener = urllib.request.URLopener()opener.retrieve(DOWNLOAD_BASE + MODEL_FILE, MODEL_FILE)print('Extracting...')tar_file = tarfile.open(MODEL_FILE)for file in tar_file.getmembers():file_name = os.path.basename(file.name)if 'frozen_inference_graph.pb' in file_name:tar_file.extract(file, os.getcwd())
else:print('Model already downloaded.')##################### Load a (frozen) Tensorflow model into memory.
print('Loading model...')
detection_graph = tf.Graph()with detection_graph.as_default():od_graph_def = tf.GraphDef()with tf.gfile.GFile(PATH_TO_CKPT, 'rb') as fid:serialized_graph = fid.read()od_graph_def.ParseFromString(serialized_graph)tf.import_graph_def(od_graph_def, name='')##################### Loading label map
print('Loading label map...')
label_map = label_map_util.load_labelmap(PATH_TO_LABELS)
categories = label_map_util.convert_label_map_to_categories(label_map, max_num_classes=NUM_CLASSES,use_display_name=True)
category_index = label_map_util.create_category_index(categories)##################### Helper code
def load_image_into_numpy_array(image):(im_width, im_height) = image.sizereturn np.array(image.getdata()).reshape((im_height, im_width, 3)).astype(np.uint8)##################### Detection
# 测试图片的路径,可以根据自己的实际情况修改
TEST_IMAGE_PATH = 'test_images/image1.jpg'# Size, in inches, of the output images.
IMAGE_SIZE = (12, 8)print('Detecting...')
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
with detection_graph.as_default():with tf.Session(graph=detection_graph,config=config) as sess:print(TEST_IMAGE_PATH)image = Image.open(TEST_IMAGE_PATH)image_np = load_image_into_numpy_array(image)image_np_expanded = np.expand_dims(image_np, axis=0)image_tensor = detection_graph.get_tensor_by_name('image_tensor:0')boxes = detection_graph.get_tensor_by_name('detection_boxes:0')scores = detection_graph.get_tensor_by_name('detection_scores:0')classes = detection_graph.get_tensor_by_name('detection_classes:0')num_detections = detection_graph.get_tensor_by_name('num_detections:0')# Actual detection.(boxes, scores, classes, num_detections) = sess.run([boxes, scores, classes, num_detections],feed_dict={image_tensor: image_np_expanded})# Visualization of the results of a detection.vis_util.visualize_boxes_and_labels_on_image_array(image_np,np.squeeze(boxes),np.squeeze(classes).astype(np.int32),np.squeeze(scores),category_index,use_normalized_coordinates=True,line_thickness=8)print(TEST_IMAGE_PATH.split('.')[0] + '_labeled.jpg')plt.figure(figsize=IMAGE_SIZE, dpi=300)# 不知道为什么,在我的机器上没显示出图片,有知道的朋友指点下,谢谢plt.imshow(image_np)# 保存标记图片plt.savefig(TEST_IMAGE_PATH.split('.')[0] + '_labeled.jpg')

运行后:

在object_detection文件夹下test_images文件下多了一张image1_labeled.jpg则证明配置成功。

参考自https://blog.csdn.net/zhongxianjin/article/details/103269901

https://blog.csdn.net/qq_28019591/article/details/82023949

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea卸载不干净怎么办_fxfactory卸载不干净?Fxfactory及插件卸载教程

fxfactory卸载不干净怎么办?fxfactory是一款非常受欢迎的视频特效插件合集,能应用到FCPX、AE、PR、motion等软件中。过多特效插件下载会导致这些软件运行打开速度慢,那么如何卸载fxfactory这款软件或者删除那些特效插件呢?跟随小编…

矩阵标准型的系数是特征值吗_「线性代数」根据特征值,将二次型化为标准形、规范形...

今天我们来聊一聊线性代数中的二次型化为规范形、标准形的内容,这块知识相当重要,我看了看,几乎每一年的考研数学中都会涉及到一道关于这个知识点的题目,这次的整理,不仅帮助大家整理清楚思路,也是为自己整…

计算机丢失UxTheme无法修复,Win7系统启动程序失败提示“计算机中丢失UxTheme.dll”怎么办...

win7系统启动程序失败出错提示”无法启动此程序,因为计算机中丢失UxTheme.dll。尝试重新安装该程序以解决此问题“怎么办呢?UxTheme.dll是什么?其实UxTheme.dll是支持win7主题的核心文件,丢失UxTheme.dll就无法使用第三方主题了&a…

docker 设置 jvm 内存_是否值得付费?Oracle,Open JDK等四大JVM性能全面对比

市面上可供选择的JVM发行版还是有不少的。选择合适的JVM需要考虑不同的因素。性能是其中一个重要的因素。靠谱的性能研究是很困难的。在本文中,我创建了一个测试,在不同的JVM上执行对比测试。测试程序包括Spring Boot REST应用,使用Prometheu…

计算机考研初试复试比例,考研初试400多分,16人都被刷,计算机专业报考人太多,报应来了...

在目前大家都一味地挤着报考计算机专业,其他工科专业都被抛弃,以至于很多考研分数400的依然是被刷掉,这就是近期天津大学计算机专业考研复试的情况,在以前,考400以上都被称之为神人,但现在报考计算机专业40…

怎样考计算机教师资格证书,非师专生怎么考取计算机教师资格证书?

满意答案ff8410012013.04.08采纳率:41% 等级:12已帮助:22396人先要到户口所在地的教育局报名,报名的时间各地都不一样的,不统一,可以咨询当地教育局。。。如果你没有考教育学心理学和普通话就会组织你考…

UserWarning: Matplotlib is currently using agg in Object Detection API

【解决办法】在models\research\object_detection\utils\visualization_utils.py 文件中,注释掉:import matplotlib; matplotlib.use(Agg)。如下图所示: 作者:LabVIEW_Python 链接:https://www.jianshu.com/p/5eaa66a5…

c++堆栈溢出怎么解决_栈溢出基础

一. 基础知识什么是缓冲区溢出在深入探讨技术之前, 让我们先了解一下缓冲区溢出的实际内容.想象一个非常简单的程序, 要求你输入你的用户名, 然后返回到它在做什么.从视觉上看, 如下所示注意到括号之间的空格是输入用户名的预期空间.那个空间是我们的缓冲.处理用户名后, 返回地…

object detection训练自己数据

1、用labelImg标自己数据集。 并将图片存放在JPEGImages中,xml存放在Annotations中 2、分离训练和测试数据 import os import randomtrainval_percent 0.66 train_percent 0.5 xmlfilepath Annotations txtsavepath ImageSets\Main total_xml os.listdir(xml…

苹果怎样用小米云服务器,苹果换华为/小米,怎么同步数据?教程来了!

原标题:苹果换华为/小米,怎么同步数据?教程来了!由于系统不同,iOS和Android之间数据迁移一直都是跨平台换机用户的“绊脚石”。而且iOS是封闭系统,不像Android那么开源。尽管市面上的App基本都支持两大系统…

python中变量和函数的区别_python中带下划线的变量和函数的意义

Python 的代码风格由 PEP 8 描述。这个文档描述了 Python 编程风格的方方面面。在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格。这样就易于阅读,易于在程序员之间交流。 1 变量 常量 : 大写加下划线1 USER_CONSTANT 对…

github搜索技巧_和逛知乎、刷微博一样高效使用 GitHub

自打毕业之后,可以说每天打开 Github 或Email 看有没有 watch 项目的消息或者自己项目的 issue,然后在Explore 看看社区内项目的走势,紧接着开始写代码搬砖的工作,偶尔也会关注下 Github 的 Blog, 看看有没有大新闻,亦…

方舟服务器维护驯龙,方舟生存进化新手图文攻略 最详细的驯龙教程方法

《方舟:生存进化》很多新手玩家不知道前期如何生存,不知道有什么技巧,下面小编就为大家带来方舟生存进化的图文攻略,也就是新手图文攻略教程,希望对想要接触或这刚刚接触这款游戏的玩家有所帮助。首先,进入…

服务器ios文件,ios 文件到服务器

ios 文件到服务器 内容精选换一换安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。本地磁盘映射(推荐使用)使…

python二维图颜色函数_Python绘图之二维图与三维图详解

各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt np.random.seed(1000) y np.random.stan…

Windows10配置CUDA10.0+cudnn7.5.1

1、安装CUDA10.0 (1)下载:https://developer.nvidia.com/cuda-10.0-download-archive?target_osWindows&target_archx86_64&target_version10&target_typeexelocal 双击安装包进行安装,路径全部默认不做修改 &#…

金蝶云系统服务器,金蝶系统云服务器已离线

金蝶系统云服务器已离线 内容精选换一换本节操作介绍在Windows和Linux环境中使用SSH密码方式远程登录Linux云耀云服务器的操作步骤。云耀云服务器状态为“运行中”。云耀云服务器已经绑定弹性公网IP。所在安全组入方向已开放22端口,配置方式请参见配置安全组规则。使…

python 并列条形图_python – 来自两个pandas数据框的分组条形图

我有两个包含不同值但结构相同的数据框: df1 0 1 2 3 4 D 0.003073 0.014888 0.155815 0.826224 NaN E 0.000568 0.000435 0.000967 0.002956 0.067249 df2 0 1 2 3 4 D 0.746689 0.185769 0.060107 0.007435 NaN E 0.764552 0.000000 0.070288 0.101148 0.053499…

径向基神经网络_谷歌开源Neural Tangents:5行代码打造无限宽神经网络模型,帮助“打开ML黑匣子”...

鱼羊 假装发自 凹非寺量子位 报道 | 公众号 QbitAI只要网络足够宽,深度学习动态就能大大简化,并且更易于理解。最近的许多研究结果表明,无限宽度的DNN会收敛成一类更为简单的模型,称为高斯过程(Gaussian processes&…

佳能g2800清零软件天空_可能是史上最有趣的3D建模软件

今天咱们要讲的不是一款BIM软件,而是一款有趣的3D体素建模软件。体素英文名叫Voxel,是把像素风格中的小方块引申到三维空间里,让图像呈现一小块一小块的鲜明风格。比如《我的世界》和最近非常火的《纪念碑谷2》就是这样的风格。这款软件叫做M…