TensorFlow Object Detection API(Windows下測試)


"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)。
一、安裝(鏈接為GitHub上給出的安裝說明):
    1、依賴:
Protobuf 2.6
Pillow 1.0
lxml
tf Slim (which is included in the "tensorflow/models" checkout)
Jupyter notebook
Matplotlib
Tensorflow
    2、關於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文件。
    3、添加環境變量PYTHONPATH
      PYTHONPATH  G:\TensorFlow\models\slim;G:\TensorFlow\models\slim
    4、測試是否成功
    (塗抹兩個路徑,防止給大家添加環境變量造成歧義,這里我用的是anaconda的虛擬環境)
 
二、運行官方的檢測demo
    打開object_detection目錄下的object_detection_tutorial.ipynb,直接運行到最后,兩個demo圖片,分別是兩只狗和海邊的風箏,也可以自己修改需要檢測的圖片,修改PATH_TO_TEST_IMAGES_DIR圖片路徑,或者直接把你要檢測圖片拷貝到這個test_images路徑下,需要修改圖片名。
 
三、和SSD對比
    SSD
 
Object Detection API
 

(圖片來自百度圖片,如有侵權請告知刪除)

四、訓練數據集
挖個坑,慢慢填……
填坑:http://www.cnblogs.com/mar-q/p/7579263.html


免責聲明!

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



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