亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

30秒輕松實(shí)現(xiàn)TensorFlow物體檢測(cè)

 更新時(shí)間:2018年03月14日 15:09:25   作者:wangli0519  
這篇文章主要為大家詳細(xì)介紹了30秒輕松實(shí)現(xiàn)TensorFlow物體檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Google發(fā)布了新的TensorFlow物體檢測(cè)API,包含了預(yù)訓(xùn)練模型,一個(gè)發(fā)布模型的jupyter notebook,一些可用于使用自己數(shù)據(jù)集對(duì)模型進(jìn)行重新訓(xùn)練的有用腳本。

使用該API可以快速的構(gòu)建一些圖片中物體檢測(cè)的應(yīng)用。這里我們一步一步來看如何使用預(yù)訓(xùn)練模型來檢測(cè)圖像中的物體。

首先我們載入一些會(huì)使用的庫

import numpy as np 
import os 
import six.moves.urllib as urllib 
import sys 
import tarfile 
import tensorflow as tf 
import zipfile 
 
from collections import defaultdict 
from io import StringIO 
from matplotlib import pyplot as plt 
from PIL import Image 

接下來進(jìn)行環(huán)境設(shè)置

%matplotlib inline 
sys.path.append("..") 

物體檢測(cè)載入

from utils import label_map_util 
 
from utils import visualization_utils as vis_util 

準(zhǔn)備模型

變量  任何使用export_inference_graph.py工具輸出的模型可以在這里載入,只需簡(jiǎn)單改變PATH_TO_CKPT指向一個(gè)新的.pb文件。這里我們使用“移動(dòng)網(wǎng)SSD”模型。

MODEL_NAME = 'ssd_mobilenet_v1_coco_11_06_2017' 
MODEL_FILE = MODEL_NAME + '.tar.gz' 
DOWNLOAD_BASE = 'http://download.tensorflow.org/models/object_detection/' 
 
PATH_TO_CKPT = MODEL_NAME + '/frozen_inference_graph.pb' 
 
PATH_TO_LABELS = os.path.join('data', 'mscoco_label_map.pbtxt') 
 
NUM_CLASSES = 90 

下載模型

opener = urllib.request.URLopener() 
opener.retrieve(DOWNLOAD_BASE + MODEL_FILE, MODEL_FILE) 
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()) 

將(frozen)TensorFlow模型載入內(nèi)存

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='') 

載入標(biāo)簽圖

標(biāo)簽圖將索引映射到類名稱,當(dāng)我們的卷積預(yù)測(cè)5時(shí),我們知道它對(duì)應(yīng)飛機(jī)。這里我們使用內(nèi)置函數(shù),但是任何返回將整數(shù)映射到恰當(dāng)字符標(biāo)簽的字典都適用。

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) 

輔助代碼

def load_image_into_numpy_array(image): 
 (im_width, im_height) = image.size 
 return np.array(image.getdata()).reshape( 
   (im_height, im_width, 3)).astype(np.uint8) 

檢測(cè)

PATH_TO_TEST_IMAGES_DIR = 'test_images' 
TEST_IMAGE_PATHS = [ os.path.join(PATH_TO_TEST_IMAGES_DIR, 'image{}.jpg'.format(i)) for i in range(1, 3) ] 
IMAGE_SIZE = (12, 8) 
[python] view plain copy
with detection_graph.as_default(): 
 
 with tf.Session(graph=detection_graph) as sess: 
  for image_path in TEST_IMAGE_PATHS: 
   image = Image.open(image_path) 
   # 這個(gè)array在之后會(huì)被用來準(zhǔn)備為圖片加上框和標(biāo)簽 
   image_np = load_image_into_numpy_array(image) 
   # 擴(kuò)展維度,應(yīng)為模型期待: [1, None, None, 3] 
   image_np_expanded = np.expand_dims(image_np, axis=0) 
   image_tensor = detection_graph.get_tensor_by_name('image_tensor:0') 
   # 每個(gè)框代表一個(gè)物體被偵測(cè)到. 
   boxes = detection_graph.get_tensor_by_name('detection_boxes:0') 
   # 每個(gè)分值代表偵測(cè)到物體的可信度. 
   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') 
   # 執(zhí)行偵測(cè)任務(wù). 
   (boxes, scores, classes, num_detections) = sess.run( 
     [boxes, scores, classes, num_detections], 
     feed_dict={image_tensor: image_np_expanded}) 
   # 圖形化. 
   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) 
   plt.figure(figsize=IMAGE_SIZE) 
   plt.imshow(image_np) 

在載入模型部分可以嘗試不同的偵測(cè)模型以比較速度和準(zhǔn)確度,將你想偵測(cè)的圖片放入TEST_IMAGE_PATHS中運(yùn)行即可。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 跟老齊學(xué)Python之集成開發(fā)環(huán)境(IDE)

    跟老齊學(xué)Python之集成開發(fā)環(huán)境(IDE)

    IDE的全稱是:Integrated Development Environment,簡(jiǎn)稱IDE,也稱為Integration Design Environment、Integration Debugging Environment,翻譯成中文叫做“集成開發(fā)環(huán)境”,在臺(tái)灣那邊叫做“整合開發(fā)環(huán)境”。
    2014-09-09
  • Python中使用dom模塊生成XML文件示例

    Python中使用dom模塊生成XML文件示例

    這篇文章主要介紹了Python中使用dom模塊生成XML文件示例,本文講解了dom模塊的主要方法、詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2015-04-04
  • python線性插值解析

    python線性插值解析

    這篇文章主要介紹了python線性插值解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python機(jī)器人運(yùn)動(dòng)范圍問題的解答

    python機(jī)器人運(yùn)動(dòng)范圍問題的解答

    這篇文章主要為大家詳細(xì)解答了python機(jī)器人的運(yùn)動(dòng)范圍問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 使用Python將Mysql的查詢數(shù)據(jù)導(dǎo)出到文件的方法

    使用Python將Mysql的查詢數(shù)據(jù)導(dǎo)出到文件的方法

    今天小編就為大家分享一篇關(guān)于使用Python將Mysql的查詢數(shù)據(jù)導(dǎo)出到文件的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python實(shí)現(xiàn)的讀取網(wǎng)頁并分詞功能示例

    python實(shí)現(xiàn)的讀取網(wǎng)頁并分詞功能示例

    這篇文章主要介紹了python實(shí)現(xiàn)的讀取網(wǎng)頁并分詞功能,結(jié)合實(shí)例形式分析了Python使用requests模塊讀取網(wǎng)頁,以及jieba庫分詞的相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Python中字符串切片詳解

    Python中字符串切片詳解

    這篇文章主要介紹了Python中字符串切片,在python中定義個(gè)字符串然后把它賦值給一個(gè)變量。我們可以通過下標(biāo)訪問單個(gè)的字符,跟所有的語言一樣,下標(biāo)從0開始。這時(shí)我們可以通過切片方式來截取出我們定義的字符串的一部分,下面小編將為大家詳細(xì)介紹,需要的朋友可以參考下
    2021-10-10
  • python中Pexpect的工作流程實(shí)例講解

    python中Pexpect的工作流程實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python中Pexpect的工作流程實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • python asyncio 協(xié)程庫的使用

    python asyncio 協(xié)程庫的使用

    這篇文章主要介紹了python asyncio 協(xié)程庫的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python?數(shù)據(jù)類型中的字符串和數(shù)字

    Python?數(shù)據(jù)類型中的字符串和數(shù)字

    這篇文章主要介紹了Python?數(shù)據(jù)類型中的字符串和數(shù)字,Python3中有六個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類型,Number、String、List、Tuple、Set、Dictionary,加先來我們就來看看這幾種數(shù)據(jù)類型的具體相關(guān)介紹,需要的小伙伴可以參考一下
    2022-02-02

最新評(píng)論