日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

object detection之Win10配置

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的object detection之Win10配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。