1. 程式人生 > >谷歌Object Detection API(實物檢測模型庫)安裝過程踩過的坑

谷歌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❤❤