"Speed/accuracy trade-offs for modern convolutional object detectors."
Huang J, Rathod V, Sun C, Zhu M, Korattikara A, Fathi A, Fischer I, Wojna Z,
Song Y, Guadarrama S, Murphy K, CVPR 2017
————————————————————————————————————
本文爲做者原創,轉載請註明出處(http://www.cnblogs.com/mar-q/)by 負贔屓
這個API的目的是建立一個可以在單個圖像中定位和識別多個對象的精確機器學習模型,這在仍然是計算機視覺領域仍然是一個核心挑戰。該API是在tensorflow上構造的開源框架,易於構建、訓練和部署目標檢測模型,谷歌已經應用在公司的視覺項目中,來源是開頭的那篇論文,若是有興趣能夠研究一下,主要對比了幾種不一樣的Object Detection神經網絡(FasterRCNN RFCN SSD)。
一、依賴:
Protobuf 2.6
Pillow 1.0
lxml
tf Slim (which is included in the "tensorflow/models" checkout)
Jupyter notebook
Matplotlib
Tensorflow
二、關於Protobuf:
Protocol-buffer,Google開發的一套數據存儲、網絡通訊時用於協議編碼的工具庫,和XML或json相似,就是把數據以某種結構保存下來,不一樣之處在於protobuf是二進制的,並且編碼的時間和空間開銷都下降不少。原理能夠參考博客:majianfei1023。
使用方法:在Google的git倉庫下載須要的版本:根據前文依賴須要的是Protobuf 2.6,咱們只須要它的編解碼功能,因此只須要下載win32版本便可。下載解壓發現是一個可執行文件,OK,把它加入環境變量:在path中添加exe文件路徑,並新建一個proto_path,路徑爲exe文件路徑。調用cmd,輸入protoc發現提示missing input file,證實已經可使用了。
參照GitHub上給出的installation提示,在tensorflow/models/目錄下輸入命令:
protoc object_detection/protos/*.proto --python_out=.
能夠看到object_detection/protos/目錄下的全部*.proto都生成了對應的py文件。
三、添加環境變量PYTHONPATH
PYTHONPATH G:\TensorFlow\models\slim;G:\TensorFlow\models\slim
四、測試是否成功
(塗抹兩個路徑,防止給你們添加環境變量形成歧義,這裏我用的是anaconda的虛擬環境)
2、運行官方的檢測demo
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
打開object_detection目錄下的object_detection_tutorial.ipynb,直接運行到最後,兩個demo圖片,分別是兩隻狗和海邊的風箏,也能夠本身修改須要檢測的圖片,修改PATH_TO_TEST_IMAGES_DIR圖片路徑,或者直接把你要檢測圖片拷貝到這個test_images路徑下,須要修改圖片名。
3、和SSD對比
SSD
Object Detection API
(圖片來自百度圖片,若有侵權請告知刪除)html
4、訓練數據集
挖個坑,慢慢填……
填坑:http://www.cnblogs.com/mar-q/p/7579263.html