物體檢測(cè)TensorFlow Object Detection API (一)安裝
在計(jì)算機(jī)視覺任務(wù)中箩祥,區(qū)分一下圖像分類和物體檢測(cè)银酬,一部分任務(wù)的數(shù)據(jù)標(biāo)注形式是
圖片-標(biāo)簽1呛谜,標(biāo)簽2冰木,標(biāo)簽3
這種類型的數(shù)據(jù)柬甥,我們最終的目的灶轰,也是測(cè)試的圖片噪奄,打標(biāo)簽死姚,姑且將其認(rèn)為屬于圖片分類任務(wù)。
而另外一種數(shù)據(jù)
圖片中的某一塊-標(biāo)簽1
圖片中的另一塊-標(biāo)簽2
這種任務(wù)勤篮,我們的目的是在某張圖片中檢測(cè)(查找)某物體都毒。
TensorFlow Object Detection API 是 TensorFlow models 里的一個(gè) research project 其中預(yù)設(shè)了很多網(wǎng)絡(luò)模型可供我們直接調(diào)用和調(diào)參,也可以根據(jù)其自定義模型碰缔。大大簡(jiǎn)化了我們進(jìn)行實(shí)驗(yàn)的流程账劲。然而,即便如此,TensorFlow 依然不是一個(gè)新 friendly 的一個(gè)項(xiàng)目瀑焦。在開發(fā)過(guò)程中可能遇到各種各樣的問題腌且。在此做此記錄。
——2018.8.10
安裝
此處參考了 Installation TensorFlow models 官方 GitHub doc.
依賴
- Protobuf >= 3.0.0
- Python-tk
- Pillow
- lxml
- tf Slim
- Jupyter notebook
- matplotlib
- TensorFlow
- Cython
- contextlib2
- cocoapi
TensorFlow 如何安裝不再說(shuō)明榛瓮,Protobuf 可通過(guò) brew 安裝铺董。
coco api 選裝
其余通過(guò) pip 安裝
其中 probuf 被用來(lái)設(shè)置模型和訓(xùn)練參數(shù),在正式使用前禀晓,需要將 protobuf 庫(kù)進(jìn)行編譯
# From tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.
注意看好路徑精续。
jupyter notebook 是交互式的筆記本應(yīng)用,可以邊寫代碼邊記筆記匆绣。非常實(shí)用的工具驻右,使用它可以看作者預(yù)設(shè)的一個(gè)最簡(jiǎn)單的模型。
將 slim directories 加入 PYTHONPATH
# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
任何位置使用此 api 都要首先運(yùn)行此命令崎淳。
如果沒有運(yùn)行此命令可能會(huì)出現(xiàn)
ModuleNotFoundError: No module named 'object_detection'
這樣的錯(cuò)誤
測(cè)試安裝效果
python object_detection/builders/model_builder_test.py
因?yàn)樵诒救藱C(jī)器上 python 命令默認(rèn)調(diào)用 python2, python3 命令才會(huì)調(diào)用 python3 所以在測(cè)試命令改為:
python3 object_detection/builders/model_builder_test.py
如果出現(xiàn)以下場(chǎng)景愕把,表明運(yùn)行成功拣凹。
代表安裝成功了。
一件趣事:
在測(cè)試這個(gè)8月6號(hào)恨豁,7號(hào)測(cè)試時(shí)候嚣镜,總是出現(xiàn)錯(cuò)誤,后來(lái)發(fā)現(xiàn)是一處 xrange(python2)用法沒有改成 range橘蜜。 然后我把它改了就能運(yùn)行了菊匿,發(fā)了 pull request 被 Google 的哥哥回復(fù)了,說(shuō)他們正在更新一個(gè)大版本计福,里面已經(jīng)改了這個(gè)錯(cuò)誤跌捆,然后 8月8號(hào)就確實(shí)更新了一個(gè)新版本,改了很多地方象颖。
本文首發(fā)于個(gè)人網(wǎng)頁(yè) Yao Blog佩厚,知乎專欄 談技術(shù) 不能潦草,CSDN博客:手握靈珠常奮筆说订。