Tensorflow object detection API(1)---環境搭建與測試


 

 

參考:

https://blog.csdn.net/dy_guox/article/details/79081499

https://blog.csdn.net/u010103202/article/details/79899293

https://www.jianshu.com/p/4ebaa78e0233

一、開發環境搭建

操作系統:Windows10 64位

TensorFlow:1.8

python:3.5

1.安裝tensorflow_gpu版本的環境:

 

1)安裝.Net Framework4.6

下載頁面的鏈接為:https://www.microsoft.com/en-us/download/details.aspx?id=53344
下載頁面如下圖所示,點擊下圖紅色箭頭標注處即可開始下載:

點擊Download按鈕,其實是向資源鏈接發起請求,所以直接訪問資源鏈接同樣可以開始下載任務。
下載鏈接:https://www.microsoft.com/en-us/download/confirmation.aspx?id=53344

下載好直接雙擊,一路next

2)安裝CUDA9.0

下載見:https://www.jianshu.com/p/c73668544925

安裝默認路徑就好,一路下一步,如果提示兼容性不兼容請無視,安裝模式選擇精簡,下一步勾選下圖中的上方紅色方框標注處,然后NEXT按鈕會亮起。
點擊下圖中的下方紅色箭頭標注處中的NEXT按鈕,進入下一步。

注意: 對應的顯卡驅動,如果驅動較新,在安裝CUDA的時候會有提示可能不兼容,可以無視。

接下來就等待安裝就好,結束界面中兩個可選項不用勾選
點擊下圖中的下方紅色箭頭標注處中的關閉,安裝CUDA9.0結束。。

3)安裝cudnn7.3

下載見:https://www.jianshu.com/p/4ebaa78e0233

下載后解壓,將文件夾cuda中有3個文件夾:bin、include、lib,和1個文件NVIDIA_SLA_cuDNN_Support.txt復制粘貼到CUDA安裝路徑下

本文作者的CUDA安裝路徑:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

4)安裝tensorflow_gpu

第一種方法

下載見:https://www.jianshu.com/p/4ebaa78e0233

運行pip install命令安裝本地WHL文件

在放tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl的文件夾打開cmd,在cmd中輸入命令:pip install tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl,然后按Enter鍵運行命令。

 最后出現Successfully開頭即為成功。

第二種方法:

Tensorflow有CPU版本與GPU版本,首先安裝CPU版本。采用pip原生安裝。“開始-Anaconda3-Anaconda Prompt”調出命令行。

pip install --upgrade tensorflow然后安裝GPU版本。此過程中有報錯,

先運行conda install pip更新pip程序即可。

pip install --upgrade tensorflow-gpu

運行pip install命令安裝msgpack庫

考慮到部分讀者可能沒有安裝運行tensorflow必需的msgpack庫
在cmd中輸入命令:pip install msgpack,然后按Enter鍵運行命令。

二.測試自帶案例

1.安裝object detection API環境

1、下載TensorFlow object detection API

https://github.com/tensorflow/models

我們需要的目標檢測在model文件夾下的research文件夾里

也可以直接訪問:

https://github.com/tensorflow/models/tree/master/research/object_detection

下載代碼庫

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

 

 下載到本地目錄(避免中文),解壓。

 2.下載Protobuf

目的是將proto文件轉成py文件

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

將壓縮文件 protoc-3.4.1-win32.zip解壓后的bin文件夾protoc.exe復制到路徑:C:\\Windows

 

將object_detection\protos文件夾下的.proto文件轉成.py

可以看到有很多proto文件

第一種方法

 用這段代碼將object_detection\protos文件夾下的.proto文件轉成.py,只需將E:\目標檢測\models-master\research\object_detection\protos/改成你的文件路徑

 1 import os
 2 file_list = os.listdir(r'E:\目標檢測\models-master\research\object_detection\protos/')
 3 proto_list = [file for file in file_list if '.proto' in file]
 4 print('object_detection/proto文件夾中共有%d個proto文件' %len(proto_list))
 5 for proto in proto_list:
 6     execute_command = 'protoc object_detection/protos/%s --python_out=.' %proto
 7     os.popen(execute_command)
 8 file_list = os.listdir(r'E:\目標檢測\models-master\research\object_detection\protos/')
 9 py_list = [file for file in file_list if '.py' in file]
10 print('通過protoc命令產生的py文件共有%d個' %(len(py_list) - 1))

結果是:

object_detection/proto文件夾中共有29個proto文件
通過protoc命令產生的py文件共有29個

就是修改成功,你可以進入protos文件夾查看每個proto文件下都有一個對應的py文件。

第二種方法:

protoc object_detection/protos/*.proto --python_out=.

在這一步有時候會出錯,可以嘗試把/*.proto 這部分改成文件夾下具體的文件名,一個一個試,每運行一個,文件夾下應該

出現對應的.py結尾的文件。不報錯即可

3、PYTHONPATH 環境變量設置

在 ‘此電腦’-‘屬性’- ‘高級系統設置’ -‘環境變量’-‘系統變量’ 中新建名為‘PYTHONPATH’的變量,將

models/research/ 及 models/research/slim 兩個文件夾的完整目錄添加,分號隔開。

接下來可以測試API,在 models/research/ 文件夾下運行命令行:

 

python object_detection/builders/model_builder_test.p

 不報錯說明運行成功。

 

4.測試自帶案例

 

“開始-Anaconda3-Anaconda Prompt”調出命令行,改變工作目錄至 models\research\object_detection


然后輸入jupyter notebook,就會調用瀏覽器打開當前文件夾,點開 object_detection_tutorial.ipynb,

 



在新標簽頁中打開 Object Detection Demo,點擊上方的 “Cell”-"Run All",

就可以直接看到結果,最后輸出的是兩張圖片的識別結果,分別是狗,以及沙灘。第一次運行由於需要下載訓練好的模型,耗時較長。第二次之后可以將 .ipynb文件中 Download Model 即 in[5]部分的代碼注釋掉,以加快運行速度。



如果在notebook中運行有問題,可以將.ipynb中in[]的代碼復制到.py中,然后在 開始-Anaconda3-spyder 中運行。

至此Tensorflow object detection API 的環境搭建與測試工作完成。





 




 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM