Ubuntu16.04 server 安裝tensorflow object detection模塊

安裝提醒:本博文是在ubuntu16.04服務器(只有黑框框,沒有圖形界面,推薦使用MobaXterm之類的遠程控制軟件,方便訪問服務器)上離線安裝的tensorflow object detection模塊。因爲服務器不能連外網,所以只能通過提前在外網下載好所需要的各種包工具傳入服務器中進行安裝。官網中也有安裝教程,但你第一次安裝可能會遇到坑(由你的開發環境決定)。

對於學習深度學習(圖像這塊的)的同學,我覺得對於tensorflow object detection這個模塊應該不會陌生。記得自己當初剛開始學習目標檢測識別時,就是從object detection模塊開始的。下面貼張object detection官網上的檢測效果圖,是不是感覺很棒。貼出官網的鏈接:https://github.com/tensorflow/models/tree/master/research/object_detection 在這個模塊中谷歌提供了很多使用tensorflow搭建的目標檢測網絡並在coco數據集上提前預訓練好了,用戶可以直接使用這些網絡通過遷移學習的方式去訓練自己需要檢測的目標。總的來說使用起來非常方便,而且效果也很棒,也比較建議新手先從這裏開始學習瞭解(很多小型科技公司就是直接使用這個模塊去做深度學習的項目),因爲該模塊能夠快速的實現你想要的目標,而且一開始直接讓一個新手去搭建一個模型從數據的預處理、讀取、模型搭建、計算誤差等等真的不現實,所以從這裏開始你能先體會到其中的樂趣後面再慢慢的去深入學習。話不多說,開始安裝。

今天是2019.9.24日,tensorflow已經發展到2.0版本了,但是現在object detection master分支中很多模塊是用1.12.0版本寫的(官網要求tensorflow的版本要高於等於1.12.0,建議安裝tensorflow時,比1.12.0高一點就行,版本過高很可能遇到Bug),本人也嘗試過使用1.14.0版本感覺有些問題,由於python3.7能夠安裝的最低版本是1.13那麼本博文就以1.13.1版本爲例進行安裝。先列出需要預先下載的文件。

1. Anaconda3(自行官網下載即可,如果想安裝python3.6的Anaconda請到清華鏡像源中下載,鏈接

2. tensorflow1.13.1(根據自己的電腦硬件配置選擇CPU或者GPU版本,本文以CPU爲例,GPU可以參考我原來的文章

3. 下載object detection模塊(克隆官網中的源碼,可以用git也可以直接下載zip,離線最好下載zip)

4. cocoapi(object detection模塊需要用到,同樣在官網上進行下載源碼)

5. protobuf3.0.0 Linux 64位(官網推薦版本,下載鏈接

 

安裝Anaconda3

強烈推薦Anaconda3,爲什麼?首先Anaconda內集成了幾乎所有你可能用到的包(離線環境太方便了)不需要你一個個去pip install 幫你節約大把時間(object detection要求的一系列包工具anaconda都包括了),其次ubuntu16.04系統了自帶安裝了python2.7和python3.5,儘可能不要去碰這兩個系統版本,千萬別去卸載,否則你會後悔。

將文件放到ubuntu服務器中,cd到文件當前目錄,通過以下指令進行安裝 :

$ bash Anaconda3-x.x.x-Linux-x86_64.sh

安裝過程先一路回車看看anaconda的安裝說明,接着系統問你(Do you accept the license terms?)輸入yes(如果接着問你是否將anaconda寫入環境變量,請選擇是,如果沒有需要手動添加環境變量,本人安裝時沒有提示故需要手動添加)安裝完成後還會問你安不安裝VScode我是服務器端就不用裝了。

接着添加兩條軟連接,下面的xxx是你自己安裝anaconda的根目錄,自己改一下。添加軟鏈接的目的是在終端輸入python3.7系統會自動調用anaconda包裏的python3.7,在終端使用pip安裝時會調用anaconda包裏的pip進行安裝這樣你安裝的包就會都在anaconda管理的目錄裏了,方便管理:

sudo ln -s /xxx/anaconda3/bin/python3.7 /usr/bin/python3.7
sudo ln -s /xxx/anaconda3/bin/pip /usr/bin/pip

接着修改下環境變量,在vim編輯器中點擊“Insert”鍵啓動編輯模式,編輯完後按下“Esc”按鈕退出編輯模式,輸入“:wq”指令進行保存並退出:

# 使用vim打開文件
sudo vim ~/.bashrc 
# 在文件最底部加入如下字段,xxx爲用戶自己安裝的anaconda根目錄
export PATH="/xxx/anaconda3/bin$PATH"
# 更新環境變量
source ~/.bashrc

 

安裝tensorflow

若有網絡或者有pip鏡像源直接通過以下指令下載:

pip install tensorflow==1.13.1

若有tensorflow的whl二進制文件,將whi文件放入ubuntu系統中在通過cd進入當前文件夾,通過下列指令進行安裝:

pip install tensorflow-1.13.1-xxx-xxx-linux_x86_64.whl

由於我的anaconda(2018年的)包裏的wrap包版本太老,安裝過程中提示無法uninstall wrap包導致安裝失敗,解決辦法就是卸載wrapt包,重新下載一個新版本進行安裝。

# 如果有網或者有ubuntu包鏡像時,可以直接通過以下指令進行升級即可
pip install wrapt --ignore-installed

更新wrapt包後再次安裝tensorflow成功。

 

安裝cocoAPI

這裏直接按照object detection官網上的描述進行安裝。將下載的cocoapi包放入ubuntu系統中,通過下列指令進行解壓:

unzip cocoapi-master.zip

解壓後cd進入cocoapi/PythonAPI路徑下,輸入以下指令進行安裝:

make

我在make過程中提示沒有找到python執行文件,接着打開路徑下的Make.file文件,將裏面的python改爲python3.7(我們在安裝anaconda中添加了python3.7的軟連接),這樣就沒問題了。

#########

題外話,如果提示沒有unzip指令說明沒有安裝unzip,在有網絡或者有ubuntu source代理的情況下輸入以下指令進行安裝:

sudo apt-get install unzip

如果make過程中提示沒有make工具,說明沒有gcc等編譯工具, 在有網絡或者有ubuntu source代理的情況下輸入以下指令安裝:

sudo apt-get install build-essential

##########

編譯完cocoapi後我們將下載的object detection包(文件名爲models-master.zip)放入ubuntu系統中進行解壓,解壓後將編譯好的pycocotools文件夾複製到/xxx/models-master/research/文件夾下xxx是相應文件的根目錄,請自行修改。

cp -r /XXX/cocoapi/PythonAPI/pycocotools /XXX/models-master/research/

 

安裝protobuf3.0.0

將我們下載好的protobuf包放到ubuntu服務器中,進行解壓,解壓後有三個文件(bin文件夾、include文件夾、readme文件),建議將這三個文件放在一個新建的文件夾中便於後期管理。接着添加一條軟連接,鏈接bin文件夾下的protoc文件到/usr/bin/protoc文件中:

sudo ln -s /xxx/protobuf3/bin/protoc /usr/bin/protoc

創建軟連接完成後,我們能夠通過以下指令進行查看protobuf的版本:

protoc --version

 

Protobuf Compilation

進入/xxx/models-master/research/文件夾下,輸入以下指令。這一步是使用我們安裝好的protobuf去配置、編譯object detection模塊中所需要的一些參數等。

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

 

Add Libraries to PYTHONPATH

這一步是爲了方便python去調用object detection中的一些功能模塊。建議寫入環境變量,通過sudo vim ~/.bashrc打開環境變量文件,加入如下語句:

# export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
# 其中`pwd`是models-master/research的絕對路徑,例如
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/models-master/research:/home/ubuntu/models-master/research/slim

添加完成後更新環境變量source  ~/.bashrc

 

Testing the Installation

最後是激動人心的測試時刻,測試通過就基本說明object detection模塊安裝完成,測試很簡單:

python /xxx/models-master/research/object_detection/builders/model_builder_test.py

看到終端打印提示 OK  表示測試通過!

到此object detection模塊安裝完成,具體如何去使用,官網也有實例,而且文檔寫的很詳細,在我的下一篇博客中講述了訓練一個Pascal VOC2012數據集的實例,有興趣的同學可以看看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章