以下實作基於 GitHub 作者 fizyr 的 keras-retinanet 實現過程,詳細說明可以參考 原文,以下紀錄實作過程中碰到的問題和解決方式,以及使用的環境。
環境
- OS: Win10 pro
- GPU: 1060 6G
- TF-GPU: 1.10.0
- keras: 2.0.5
install
安裝好自己硬體配置的 tensorflow 環境後依照下面步驟
安裝相關套件
numpy 安裝請用以下指令
pip install numpy --user
接著在 setup.py
的目錄執行下面命令
pip install . --user
python setup.py build_ext --inplace
以上兩行指令執行過程中,如果跳出 error: Microsoft Visual C++ 14.0 is required
的訊息請到
Visual C++ 2015 Build Tools 安裝 C++相關套件,因為 windows 大多沒有預設安裝,安裝完成後再次執行 pip install . --user
執行 ResNet50RetinaNet.py
到 example 目錄下執行命令
python ResNet50RetinaNet.py
執行成功顯示如下圖
接著,我們開啟 ResNet50RetinaNet.ipynb 這支 jupyter notebook 的檔案,這邊我直接用 vscode 開啟,如下圖
我們先 Run 第一個 cell 看看,點擊左上角綠色開始按鈕,如圖
如果碰到下圖錯誤,表示 pip install . --user
沒有執行完全,請到此 步驟看看
如果成功執行但是有一些如下 WARNING
可以忽略不要緊
接著,在執行下一段之前,先到 這裡 安裝 models,如下圖
存放位置請放在 keras-retinanet\snapshots
底下
下載好後,可以 Run 看看這個 cell,成功後還是會有很多警告,這些大部分是版本和建議替代方案的警告,我們先確定整個代碼可以 run,在修改版本即可
最後,他預設了一張 test data
給我們做測試,如下圖
按照該網路架構我們能判別圖片中的人物、領帶等等物件,我們就來 Run 看看,第一張圖可以看到我們的過程花費約 7.8 秒
第二張圖可以看出各物件以及其準確度
結論
可以看出來與作者的結果有些微差異,這部有可能因為在過程中出現的版本或是硬體差異,而對結果有一些不同,可以試著改善這些警告或許會有更佳的表現