谷歌Object Detection API(實物檢測模型庫)安裝過程踩過的坑
在一個狀態極佳的夜晚,終於將惦記了好幾個月的object detection API裝好了,主要安裝步驟參考了這個部落格 ,手動比心❤ 但是在安裝過程中還是遇到了不少該部落格中沒有提到的問題,希望記錄下來,給自己日後參考,也希望能為有需要的人提供綿薄之力。
1. 開發環境
作業系統:windows 10 64位
記憶體:8G
GPU:Nvidia GTX 1070
Tensorflow: 1.4
2. 簡要介紹安裝步驟,具體可以參考上文提到的部落格
protoc object_detection/protos/*.proto --python_out=.
如果此時不顯示任何資訊,則表明執行成功。在models\research\object_detection\protos下,每一個proto檔案都應該會有一個對應的.py檔案。
關於protobuf的兩個錯誤:
錯誤一:我在此處命令列會報錯
解決辦法:
把上面命令列語句中 /*.proto 這部分改成資料夾下具體的檔名,一個一個試,每執行一個,資料夾下應該出現對應的.py結尾的檔案。例如:models\research\object_detection\protos 下有一個檔名為:anchor_generator.proto,則在命令列視窗輸入
protoc object_detection/protos/anchor_generator.proto
該資料夾下一共有幾十個檔案,每一個都對應執行一次這個命令列即可。(方法有點笨,但有效)
錯誤二:
object_detection/protos/ssd.proto:87:3: Expected "required", "optional", or "repeated". object_detection/protos/ssd.proto:87:12: Expected field name.
解決辦法:
升級protobuf,我最早下載的是v2.6.1,報錯之後下載了一個最新版本就好了。參考來源:點選開啟連結
3. 其他錯誤
錯誤三:
在檢測API是否正常時,進入目錄models\research, 執行命令列:
python object_detection/builders/model_builder_test.py
此處錯誤為:ImportError: No module named 'object_detection'
解決方法:
在目錄models\research下執行:
python setup.py build python setup.py install
在目錄model\research\slim下執行:
pip install -e .
錯誤四:
在啟動jupyter notebook時,終端出現以下字眼,這個錯誤可能不容易被察覺,因為啟動之後很快頁面就會被切換到notebook瀏覽器了,我也是有一次無意瞄到了這行很奇怪的語句,如果這個問題不被解決,後期在執行程式時會出現no module named tensorflow之類很奇奇怪怪的錯誤。。
ValueError: Please install nodejs 5+ and npm before continuing installation. nodejs may be installed using conda or directly from the nodejs website.
解決方法:
升級jupyterlab。 在命令列輸入以下語句:
conda upgrade -c conda-forge jupyterlab
或:conda update jupyterlab
我兩行都執行了,最後成功解決了。
錯誤五:
還是在啟動jupyter notebook時,終端出現的奇怪字眼:
could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
看上去應該是在安裝GPU時,cudnn有問題,(CUDA和cudnn的版本真是要把我逼死。。)再三確認後,我覺得cudnn應該沒問題,這個連結裡有提到幾種解決辦法,但是對我來說沒有用,錯誤依舊。
解決方法:
走投無路時常用的一種解決方法:關掉所有視窗,重啟() ,竟然就可以正常運行了。所以我猜是因為之前打開了兩個jupyter notebook,電腦視訊記憶體不足??這個問題之後遇到了合理的解釋再來補充吧。
以上五個問題就是我在安裝object detection API遇到的所有難題,現在電腦上可以順利執行models\research\object_detection目錄下的 object_detection_tutorial.ipynb檔案了。 成功出現兩張demo檢測圖片,開心。
下一步的工作計劃是用這個API訓練自己的資料集。good luck to me❤❤