目標(biāo)檢測(cè)實(shí)踐_tensorflow版SSD運(yùn)行示例

致謝聲明

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

0.前言

在進(jìn)行本文操作之前屁柏,需要先安裝好tensorflow的gpu版本闷串。
本文作者的環(huán)境:python3.6鸳址、Windows10、tensorflow_gpu1.10
已經(jīng)安裝好的可以跳過(guò)躲株,學(xué)習(xí)如何安裝tensorflow的gpu版本的讀者請(qǐng)閱讀本文作者的另外一篇文章《深度學(xué)習(xí)環(huán)境搭建-CUDA9.0、cudnn7.3镣衡、tensorflow_gpu1.10的安裝》霜定,鏈接:http://www.reibang.com/p/4ebaa78e0233
本文是寫(xiě)給目標(biāo)檢測(cè)入門新手的指導(dǎo)文章档悠,會(huì)用示意圖將每一步的詳細(xì)實(shí)現(xiàn)過(guò)程展示出來(lái)。
本文作者接觸深度學(xué)習(xí)2個(gè)月后望浩,開(kāi)始進(jìn)行目標(biāo)檢測(cè)實(shí)踐辖所。
本文作者的專題《目標(biāo)檢測(cè)》,鏈接:http://www.reibang.com/c/fd1d6f784c1f
此專題的宗旨是讓基礎(chǔ)較為薄弱的新手能夠順利實(shí)現(xiàn)目標(biāo)檢測(cè)磨德,專題內(nèi)容偏向于掌握技能缘回,學(xué)會(huì)工具的使用。
本文作者尚未具備清楚講述目標(biāo)檢測(cè)原理的能力典挑,學(xué)習(xí)原理請(qǐng)自行另找文章酥宴。

文章編號(hào) 文章名 鏈接
1 目標(biāo)檢測(cè)實(shí)踐_tensorflow版SSD運(yùn)行示例 http://www.reibang.com/p/c1d8f1c76de7
2 目標(biāo)檢測(cè)實(shí)踐_tensorflow版SSD數(shù)據(jù)準(zhǔn)備 http://www.reibang.com/p/3d9436b4cb66
3 目標(biāo)檢測(cè)實(shí)踐_tensorflow版SSD訓(xùn)練自己的數(shù)據(jù) http://www.reibang.com/p/0e5f9df4686a
4 目標(biāo)檢測(cè)實(shí)踐_tensorflow版SSD模型測(cè)試 http://www.reibang.com/p/7464c5e00716

1.訪問(wèn)tensorflow在github的主頁(yè)

tensorflow在github的主頁(yè)鏈接:https://github.com/tensorflow
主頁(yè)界面如下圖所示。
Repository中文叫做知識(shí)庫(kù)搔弄,對(duì)于程序員來(lái)說(shuō)即代碼庫(kù)幅虑。
tensorflow這個(gè)用戶中有很多Repository,我們需要的目標(biāo)檢測(cè)代碼在models這個(gè)Repository中顾犹。
如下圖2個(gè)紅色箭頭標(biāo)注處所示倒庵,都是我們想要找的models這個(gè)代碼庫(kù)。
這2個(gè)紅色箭頭標(biāo)注處炫刷,隨意選擇一個(gè)點(diǎn)擊擎宝,進(jìn)入下一步。
注意:因?yàn)楸疚膶?xiě)作的時(shí)間與讀者瀏覽網(wǎng)址的時(shí)間不同浑玛,所以本文寫(xiě)作時(shí)的界面與讀者瀏覽網(wǎng)址時(shí)的界面也可能不同绍申,讀者需要在主頁(yè)中往下翻即可找到models這個(gè)代碼庫(kù)。

image.png

models這個(gè)代碼庫(kù)也可以使用鏈接直接訪問(wèn)https://github.com/tensorflow/models
代碼庫(kù)界面如下圖所示顾彰。
從下圖中上方紅色箭頭標(biāo)注處可以看出极阅,這個(gè)代碼庫(kù)被44617人點(diǎn)贊,說(shuō)明代碼庫(kù)的流行程度高涨享,受眾程度廣筋搏。
下圖中下方紅色箭頭標(biāo)注處的research文件夾,我們需要的目標(biāo)檢測(cè)在這個(gè)文件夾中厕隧。
點(diǎn)擊下圖中下方紅色箭頭標(biāo)注處奔脐,進(jìn)入下一步。
image.png

models這個(gè)代碼庫(kù)中的research文件夾也可以使用鏈接直接訪問(wèn)https://github.com/tensorflow/models/tree/master/research
models這個(gè)代碼庫(kù)中的research文件夾頁(yè)面如下圖所示:
image.png

從上圖中可以看出沒(méi)有object_detection這個(gè)文件夾吁讨,讀者需要在頁(yè)面中往下翻可以找到髓迎。
在頁(yè)面中往下翻找到object_detection文件夾如下圖紅色箭頭標(biāo)注處所示。
點(diǎn)擊下圖中紅色箭頭標(biāo)注處,進(jìn)入下一步。
image.png

models這個(gè)代碼庫(kù)中的research/object_detection文件夾頁(yè)面如下圖所示厅克。
也可以使用鏈接直接訪問(wèn)https://github.com/tensorflow/models/tree/master/research/object_detection
image.png

在上圖頁(yè)面中往下翻释液,可以看到research/object_detection文件夾的指導(dǎo)文件README.md涣雕,如下圖所示艰亮。
閱讀README.md中的內(nèi)容,可以獲得英文版Tensorflow Object Detection API的使用指導(dǎo)挣郭。
image.png

2.下載代碼庫(kù)

在models代碼庫(kù)的界面中迄埃,有下載整個(gè)代碼庫(kù)的按鈕,如下圖紅色箭頭標(biāo)注處所示:

image.png

通過(guò)vpn訪問(wèn)github兑障,速度會(huì)加快侄非。
從下圖中可以看出,本文作者下載此代碼庫(kù)的速度為5.4MB/s
image.png

本文作者將此代碼庫(kù)上傳到百度云盤流译,下載鏈接: https://pan.baidu.com/s/1TnHvqNLT0JEZlugrdyABhQ 提取碼: fnp3
對(duì)于本文的讀者來(lái)說(shuō)逞怨,其實(shí)只需要代碼庫(kù)models中的research/object_detection文件夾就可以。
代碼庫(kù)models文件大小有439M福澡,但是object_detection文件夾只有17M左右叠赦。
壓縮文件object_detection.zip的百度云盤下載鏈接:https://pan.baidu.com/s/1Q9SxtKlOqEty08tpFeUUHA 提取碼: p2sm
下載完成后,在桌面新建文件夾目標(biāo)檢測(cè)革砸,將壓縮文件object_detection.zip放入其中除秀,如下圖所示。
image.png

選擇解壓到object_detection算利,如下圖所示册踩。
image.png

解壓完成后,文件夾目標(biāo)檢測(cè)中的文件情況如下圖所示效拭。
image.png

3.proto文件轉(zhuǎn)py文件

3.1 下載和安裝protoc

Protobuf(Google Protocol Buffers)是google開(kāi)發(fā)的的一套用于數(shù)據(jù)存儲(chǔ)暂吉,網(wǎng)絡(luò)通信時(shí)用于協(xié)議編解碼的工具庫(kù)。它和XML和Json數(shù)據(jù)差不多缎患,把數(shù)據(jù)已某種形式保存起來(lái)慕的。Protobuf相對(duì)與XML和Json的不同之處,它是一種二進(jìn)制的數(shù)據(jù)格式挤渔,具有更高的傳輸业稼,打包和解包效率。
下載Protobuf網(wǎng)址:https://github.com/google/protobuf/releases
下載Protobuf網(wǎng)址頁(yè)面如下圖所示蚂蕴,下圖中紅色箭頭標(biāo)注處是Protobuf在操作系統(tǒng)Windows中可以直接運(yùn)行的protoc程序,下載該壓縮文件protoc-3.6.1-win32.zip俯邓。

image.png

將壓縮文件protoc-3.6.1-win32.zip解壓后的文件夾bin中的文件protoc.exe復(fù)制到路徑:C:\Windows
本文作者復(fù)制文件后骡楼,確認(rèn)路徑C:\Windows有文件protoc.exe,如下圖所示稽鞭。
image.png

3.2 使用protoc

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

image.png

進(jìn)入文件夾protos朦蕴,從下圖中可以看出文件夾中有很多以proto為后綴的文件篮条。
接下來(lái)的操作弟头,就是把這些proto文件轉(zhuǎn)換為py文件。
image.png

與工程object_detection文件夾同級(jí)目錄中涉茧,打開(kāi)cmd赴恨。
具體操作示意圖如下圖所示,在資源管理器的路徑中輸入cmd伴栓,按Enter鍵進(jìn)入伦连。
image.png

在cmd中輸入并運(yùn)行命令:jupyter notebook
如下圖紅色箭頭標(biāo)注處所示:
image.png

在隨后彈出的瀏覽器界面中選擇新建一個(gè)ipynb文件,即點(diǎn)擊選擇New->Python3钳垮。
具體操作示意圖如下圖所示惑淳。
image.png

將下面一段代碼復(fù)制到第1個(gè)單元格中,并且運(yùn)行此段代碼饺窿。
運(yùn)行此段代碼的按鈕選擇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個(gè)proto文件' %len(proto_list))
for proto in proto_list:
    execute_command = 'protoc object_detection/protos/%s --python_out=.' %proto
    os.popen(execute_command)
file_list = os.listdir('object_detection/protos/')
py_list = [file for file in file_list if '.py' in file]
print('通過(guò)protoc命令產(chǎn)生的py文件共有%d個(gè)' %(len(py_list) - 1))

上面一段代碼的運(yùn)行結(jié)果如下圖所示。
如果顯示通過(guò)protoc命令產(chǎn)生的py文件共有27個(gè)肚医,重新運(yùn)行此段代碼即可绢馍。

image.png

重新進(jìn)入文件夾object_detection/protos,文件按照文件名排序忍宋。
從下圖中可以看出文件夾中每個(gè)proto文件后都有一個(gè)py文件痕貌,即將proto文件轉(zhuǎn)py文件成功
image.png

4.下載模型

4.1 下載壓縮文件

下載模型指的是下載已經(jīng)訓(xùn)練好的模型糠排。
在文件object_detection_tutorial.ipynb中有下載模型的代碼語(yǔ)句舵稠。
代碼可以運(yùn)行,但是無(wú)法得到結(jié)果入宦,因?yàn)榇a中的下載鏈接是國(guó)外的網(wǎng)址哺徊。
壓縮文件ssd_mobilenet_v1_coco_2017_11_17.zip上傳到百度網(wǎng)盤,
鏈接: https://pan.baidu.com/s/1ywlp46lK-WYZ_11sUXqftw 提取碼: yv5i

4.2 解壓壓縮文件

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

image.png

選擇解壓到ssd_mobilenet_v1_coco_20...,如下圖紅色箭頭標(biāo)注處所示涯肩。
注意轿钠,不要選擇解壓到當(dāng)前文件夾,否則代碼運(yùn)行時(shí)會(huì)無(wú)法找到模型文件病苗。
image.png

4.3 正確解壓示意

如下圖紅色箭頭標(biāo)注處所示疗垛,在壓縮文件解壓后,工程object_detection文件夾中有文件夾ssd_mobilenet_v1_coco_2017_11_17硫朦。

image.png

文件夾ssd_mobilenet_v1_coco_2017_11_17中有文件夾saved_model和6個(gè)文件贷腕。
image.png

5.運(yùn)行ipynb文件

5.1 打開(kāi)ipynb文件

在工程object_detection文件夾中運(yùn)行cmd。
即在資源管理器的路徑中輸入cmd,按Enter鍵進(jìn)入泽裳。
具體操作示意圖如下圖所示瞒斩。

image.png

在cmd中輸入并運(yùn)行命令:jupyter notebook
如下圖紅色箭頭標(biāo)注處所示:
image.png

在新打開(kāi)的瀏覽器界面中打開(kāi)代碼文件object_detection_tutorial.ipynb
點(diǎn)擊下圖紅色箭頭標(biāo)注處即可打開(kāi)代碼文件涮总。
image.png

代碼文件的頁(yè)面如下圖所示胸囱。
image.png

5.2 刪除代碼塊

將代碼文件的界面下拉到出現(xiàn)Download Model代碼塊。
刪除下圖中下方紅色箭頭標(biāo)注處的代碼塊妹卿。
操作方法是在選中此代碼塊的情況下旺矾,點(diǎn)擊下圖中上方紅色箭頭標(biāo)注處的剪切按鈕。
此代碼塊的作用是從網(wǎng)絡(luò)中下載模型夺克,這一步我們已經(jīng)在本文第4章中實(shí)現(xiàn)箕宙。

image.png

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

5.3 運(yùn)行代碼

在代碼文件的界面中選擇運(yùn)行所有代碼塊柬帕。
具體操作示意圖如下圖所示,點(diǎn)擊下圖中紅色箭頭標(biāo)注處即可狡门。


image.png

如果代碼成功運(yùn)行的話陷寝,運(yùn)行結(jié)果如下圖所示。


image.png

6.總結(jié)

  1. 本篇文章只是tensorflow版SSD的第1步其馏。
  2. 希望讀者閱讀此文章凤跑,能夠順利完成目標(biāo)檢測(cè)的入門。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叛复,一起剝皮案震驚了整個(gè)濱河市仔引,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌褐奥,老刑警劉巖咖耘,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異撬码,居然都是意外死亡儿倒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門呜笑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)夫否,“玉大人,你說(shuō)我怎么就攤上這事叫胁】兜酰” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵曹抬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)谤民,這世上最難降的妖魔是什么堰酿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮张足,結(jié)果婚禮上触创,老公的妹妹穿的比我還像新娘。我一直安慰自己为牍,他們只是感情好哼绑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著碉咆,像睡著了一般抖韩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疫铜,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天茂浮,我揣著相機(jī)與錄音,去河邊找鬼壳咕。 笑死席揽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谓厘。 我是一名探鬼主播幌羞,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼竟稳!你這毒婦竟也來(lái)了属桦?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤住练,失蹤者是張志新(化名)和其女友劉穎地啰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體讲逛,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡亏吝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盏混。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔚鸥。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖许赃,靈堂內(nèi)的尸體忽然破棺而出止喷,到底是詐尸還是另有隱情,我是刑警寧澤混聊,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布弹谁,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏预愤。R本人自食惡果不足惜沟于,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望植康。 院中可真熱鬧旷太,春花似錦、人聲如沸销睁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)冻记。三九已至睡毒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間檩赢,已是汗流浹背吕嘀。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贞瞒,地道東北人偶房。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像军浆,于是被迫代替她去往敵國(guó)和親棕洋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容