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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

手把手带你玩转Tensorflow 物体检测 API (1)——运行实例

發(fā)布時間:2025/3/11 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手带你玩转Tensorflow 物体检测 API (1)——运行实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文在學習《Tensorflow object detection API 搭建屬于自己的物體識別模型(1)——環(huán)境搭建與測試》的基礎上優(yōu)化并總結,此博客鏈接:https://blog.csdn.net/dy_guox/article/details/79081499,感謝此博客作者。

0.前言

在進行本文操作之前,需要先安裝好tensorflow的gpu版本
本文作者的環(huán)境:python3.6、Windows10、tensorflow_gpu1.10
已經安裝好的可以跳過,學習如何安裝tensorflow的gpu版本的讀者請閱讀本文作者的另外一篇文章《深度學習環(huán)境搭建-CUDA9.0、cudnn7.3、tensorflow_gpu1.10的安裝》,鏈接:https://www.jianshu.com/p/4ebaa78e0233
本文是寫給目標檢測入門新手的指導文章,會用示意圖將每一步的詳細實現(xiàn)過程展示出來。
本文作者接觸深度學習2個月后,開始進行目標檢測實踐。
本文作者的專題《目標檢測》,鏈接:https://www.jianshu.com/c/fd1d6f784c1f
此專題的宗旨是讓基礎較為薄弱的新手能夠順利實現(xiàn)目標檢測,專題內容偏向于掌握技能,學會工具的使用。
本文作者尚未具備清楚講述目標檢測原理的能力,學習原理請自行另找文章。

文章編號文章名鏈接
1目標檢測實踐_tensorflow版SSD運行示例https://www.jianshu.com/p/c1d8f1c76de7
2目標檢測實踐_tensorflow版SSD數據準備https://www.jianshu.com/p/3d9436b4cb66
3目標檢測實踐_tensorflow版SSD訓練自己的數據https://www.jianshu.com/p/0e5f9df4686a
4目標檢測實踐_tensorflow版SSD模型測試https://www.jianshu.com/p/7464c5e00716

1.訪問tensorflow在github的主頁

tensorflow在github的主頁鏈接:https://github.com/tensorflow
主頁界面如下圖所示。
Repository中文叫做知識庫,對于程序員來說即代碼庫。
tensorflow這個用戶中有很多Repository,我們需要的目標檢測代碼在models這個Repository中。
如下圖2個紅色箭頭標注處所示,都是我們想要找的models這個代碼庫。
這2個紅色箭頭標注處,隨意選擇一個點擊,進入下一步。
注意:因為本文寫作的時間與讀者瀏覽網址的時間不同,所以本文寫作時的界面與讀者瀏覽網址時的界面也可能不同,讀者需要在主頁中往下翻即可找到models這個代碼庫。

image.png


models這個代碼庫也可以使用鏈接直接訪問:https://github.com/tensorflow/models
代碼庫界面如下圖所示。
從下圖中上方紅色箭頭標注處可以看出,這個代碼庫被44617人點贊,說明代碼庫的流行程度高,受眾程度廣。
下圖中下方紅色箭頭標注處的research文件夾,我們需要的目標檢測在這個文件夾中。
點擊下圖中下方紅色箭頭標注處,進入下一步。

image.png


models這個代碼庫中的research文件夾也可以使用鏈接直接訪問:https://github.com/tensorflow/models/tree/master/research
models這個代碼庫中的research文件夾頁面如下圖所示:

image.png


從上圖中可以看出沒有object_detection這個文件夾,讀者需要在頁面中往下翻可以找到。
在頁面中往下翻找到object_detection文件夾如下圖紅色箭頭標注處所示。
點擊下圖中紅色箭頭標注處,進入下一步。

image.png


models這個代碼庫中的research/object_detection文件夾頁面如下圖所示。
也可以使用鏈接直接訪問:https://github.com/tensorflow/models/tree/master/research/object_detection

image.png


在上圖頁面中往下翻,可以看到research/object_detection文件夾的指導文件README.md,如下圖所示。
閱讀README.md中的內容,可以獲得英文版Tensorflow Object Detection API的使用指導。

image.png

?

2.下載代碼庫

在models代碼庫的界面中,有下載整個代碼庫的按鈕,如下圖紅色箭頭標注處所示:

image.png


通過vpn訪問github,速度會加快。
從下圖中可以看出,本文作者下載此代碼庫的速度為5.4MB/s

image.png


本文作者將此代碼庫上傳到百度云盤,下載鏈接: https://pan.baidu.com/s/1TnHvqNLT0JEZlugrdyABhQ 提取碼: fnp3
對于本文的讀者來說其實只需要代碼庫models中的research/object_detection文件夾就可以。
代碼庫models文件大小有439M,但是object_detection文件夾只有17M左右。
壓縮文件object_detection.zip的百度云盤下載鏈接:https://pan.baidu.com/s/1Q9SxtKlOqEty08tpFeUUHA 提取碼: p2sm
下載完成后,在桌面新建文件夾目標檢測,將壓縮文件object_detection.zip放入其中,如下圖所示。

image.png


選擇解壓到object_detection,如下圖所示。

image.png


解壓完成后,文件夾目標檢測中的文件情況如下圖所示。

image.png

?

3.proto文件轉py文件

3.1 下載和安裝protoc

Protobuf(Google Protocol Buffers)是google開發(fā)的的一套用于數據存儲,網絡通信時用于協(xié)議編解碼的工具庫。它和XML和Json數據差不多,把數據已某種形式保存起來。Protobuf相對與XML和Json的不同之處,它是一種二進制的數據格式,具有更高的傳輸,打包和解包效率。
下載Protobuf網址:https://github.com/google/protobuf/releases
下載Protobuf網址頁面如下圖所示,下圖中紅色箭頭標注處是Protobuf在操作系統(tǒng)Windows中可以直接運行的protoc程序,下載該壓縮文件protoc-3.6.1-win32.zip。

image.png


將壓縮文件protoc-3.6.1-win32.zip解壓后的文件夾bin中的文件protoc.exe復制到路徑:C:\Windows
本文作者復制文件后,確認路徑C:\Windows有文件protoc.exe,如下圖所示。

image.png

?

3.2 使用protoc

在工程object_detection文件夾中,找到文件夾protos,如下圖所示:

image.png


進入文件夾protos,從下圖中可以看出文件夾中有很多以proto為后綴的文件。
接下來的操作,就是把這些proto文件轉換為py文件。

image.png


與工程object_detection文件夾同級目錄中,打開cmd。
具體操作示意圖如下圖所示,在資源管理器的路徑中輸入cmd,按Enter鍵進入。

image.png


在cmd中輸入并運行命令:jupyter notebook
如下圖紅色箭頭標注處所示:

image.png


在隨后彈出的瀏覽器界面中選擇新建一個ipynb文件,即點擊選擇New->Python3。
具體操作示意圖如下圖所示。

image.png


將下面一段代碼復制到第1個單元格中,并且運行此段代碼。
運行此段代碼的按鈕選擇Cell->Run Cells即可。

?

?

import os file_list = os.listdir('object_detection/protos/') proto_list = [file for file in file_list if '.proto' in file] print('object_detection/proto文件夾中共有%d個proto文件' %len(proto_list)) for proto in proto_list:execute_command = 'protoc object_detection/protos/%s --python_out=.' %protoos.popen(execute_command) file_list = os.listdir('object_detection/protos/') py_list = [file for file in file_list if '.py' in file] print('通過protoc命令產生的py文件共有%d個' %(len(py_list) - 1))

上面一段代碼的運行結果如下圖所示。
如果顯示通過protoc命令產生的py文件共有27個,重新運行此段代碼即可。

image.png


重新進入文件夾object_detection/protos,文件按照文件名排序。
從下圖中可以看出文件夾中每個proto文件后都有一個py文件,即將proto文件轉py文件成功

image.png

?

4.下載模型

4.1 下載壓縮文件

下載模型指的是下載已經訓練好的模型。
在文件object_detection_tutorial.ipynb中有下載模型的代碼語句。
代碼可以運行,但是無法得到結果,因為代碼中的下載鏈接是國外的網址。
壓縮文件ssd_mobilenet_v1_coco_2017_11_17.zip上傳到百度網盤,
鏈接: https://pan.baidu.com/s/1ywlp46lK-WYZ_11sUXqftw 提取碼: yv5i

4.2 解壓壓縮文件

將下載好的壓縮文件放到工程object_detection文件夾中,如下圖所示。

image.png


選擇解壓到ssd_mobilenet_v1_coco_20...,如下圖紅色箭頭標注處所示。
注意,不要選擇解壓到當前文件夾,否則代碼運行時會無法找到模型文件。

image.png

?

4.3 正確解壓示意

如下圖紅色箭頭標注處所示,在壓縮文件解壓后,工程object_detection文件夾中有文件夾ssd_mobilenet_v1_coco_2017_11_17

image.png


文件夾ssd_mobilenet_v1_coco_2017_11_17中有文件夾saved_model和6個文件。

image.png

?

5.運行ipynb文件

5.1 打開ipynb文件

在工程object_detection文件夾中運行cmd。
即在資源管理器的路徑中輸入cmd,按Enter鍵進入。
具體操作示意圖如下圖所示。

image.png


在cmd中輸入并運行命令:jupyter notebook
如下圖紅色箭頭標注處所示:

image.png


在新打開的瀏覽器界面中打開代碼文件object_detection_tutorial.ipynb
點擊下圖紅色箭頭標注處即可打開代碼文件

image.png


代碼文件的頁面如下圖所示。

image.png

?

5.2 刪除代碼塊

將代碼文件的界面下拉到出現(xiàn)Download Model代碼塊。
刪除下圖中下方紅色箭頭標注處的代碼塊。
操作方法是在選中此代碼塊的情況下,點擊下圖中上方紅色箭頭標注處的剪切按鈕。
此代碼塊的作用是從網絡中下載模型,這一步我們已經在本文第4章中實現(xiàn)。

image.png


刪除代碼塊成功后,代碼文件的界面如下圖所示。

image.png

?

5.3 運行代碼

在代碼文件的界面中選擇運行所有代碼塊。
具體操作示意圖如下圖所示,點擊下圖中紅色箭頭標注處即可。

?

image.png

?

如果代碼成功運行的話,運行結果如下圖所示。

?

image.png

6.總結

  • 本篇文章只是tensorflow版SSD的第1步。
  • 希望讀者閱讀此文章,能夠順利完成目標檢測的入門。


  • 作者:瀟灑坤
    鏈接:https://www.jianshu.com/p/c1d8f1c76de7
    來源:簡書
    著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

    總結

    以上是生活随笔為你收集整理的手把手带你玩转Tensorflow 物体检测 API (1)——运行实例的全部內容,希望文章能夠幫你解決所遇到的問題。

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