1、前言
最近因為需要研究視頻的物體識別和行為識別,上網了解了一下,YOLO是目前實時視頻物體識別的應用最廣泛的演算法,
因此,作為小白的我,也準備體驗一下YOLO演算法的效果,
先上網了解了一下YOLO演算法的背景資料,有V1,V2,V3,V4四個版本,其中V4版本雖然創新不多,但對工業應用很有價值,參考網上的總結:速度差不多的精度碾壓,精度差不多的速度碾壓!(剛剛看到,V5版本也出來的,這是什么節奏!!!)
我的想法,V2和V3相對成熟,先體驗一下,
當初想得很簡單,按照網上的先行者的網文,依葫蘆畫瓢,照做一遍,然而,真實程序遠非如此簡單,中間碰到各種問題,可以說,是一把辛酸淚!
先將一些容易踩坑之處和經驗教訓寫出來,分享一下,
2、YOLO V2的痛苦體驗
YOLO V2的安裝,我參考的是:https://blog.csdn.net/xubuhui/article/details/88877571,
-
準備作業,安裝下列環境:
python 3.5 or 3.6 or 3.7 ;
Anaconda ;
Tensorflow(cpu or gpu 均可);
openCV
-
下載darkflow代碼,并執行安裝;
-
測驗體驗,
詳細程序,我就不展開了,幾點經驗教訓:
1)關于Python版本,要求3.5 or 3.6 or 3.7,
這是因為tensorflow演算法包的要求,
踩坑1:一開始,我沒有重視,看到Python3的最新版本3.8.3,心想版本高些總會不錯吧,安裝了,結果后來出現問題,還得重新安裝Python 3.7.7,
2)關于Anaconda,
Anaconda是Python環境的包管理工具,
安裝了Anaconda后,創建了適合tensorflow環境,則所有操作都應該在Anaconda環境下執行,用AnaConda Prompt命令列工具,或AnaConda Navigator可視化圖形界面工具都可以,但是一定不要用作業系統自帶的CMD工具,
踩坑2:我使用win+R,輸入cmd,顯示命令列工具,執行下列陳述句:
python --version
顯示的python版本號,是之前安裝的2.7,
由于一開始沒有理解Anaconda的用法,折騰了好久,包括設定path,調整先后次序,當時版本是可以了,但是后來安裝darkflow時又有其它問題,最后還將python 2.7給卸載了,
Anaconda正確的使用姿勢:
(1)先創建一個匹配python版本的環境,如tensorflow,使用python 3.7.7,
conda create -n tensorflow python=3.7.7
(2)使用前,先激活環境,
conda activate tensorflow
(3)可以使用pip,或install,或執行python腳本,
#執行pip
pip install cython
?
#install
conda install tensorflow
?
#執行python,使用py或python指令,執行python腳本setup.py
py setup.py build_ext --inplace
更進一步,可以上網查詢AnaConda指令大全,
3)關于網速,
這點特別重要!!!如有可能,最好使用大學VPN來下載,
踩坑3:
A:安裝tensorflow演算法包,隨機斷開,重復多次,一直沒成功,隔天正常,才安裝成功,
B:從https://github.com/thtrieu/darkflow下載darkflow的Download zip檔案,失敗;使用git clone也隨機斷開,隔天正常,才下載成功,
4)關于安裝darkflow
(1)首先,必須在AnaConda環境下,激活之前創建的tensorflow環境,來執行下列陳述句:
python setup.py build_ext --inplace
踩坑4:
我先前安裝參考的網文的做法,在win10的cmd環境下,執行,總是報錯:
ModuleNotFoundError: No module named 'Cython'
這個折騰了好久,
(2)其次,需要VS2015 C++環境,
否則提示:
訪問失敗:...\\Microsoft Visual Studio 14.0\\VC\\PlatformSDK\\lib
由于我好久沒用VC了,之前只裝了C#,補充安裝,看著處于卡死狀態,不放心,索性卸載重裝了一次,結果,也許是網速問題,奇慢無比,重裝VS2015,花了10幾個小時,徹底無語!
5)關于安裝tensorflow演算法包的版本
好不容易通過darkflow的安裝,生成了cy_yolo2_findboxes.cp37-win_amd64.pyd等幾個檔案,在測驗體驗時,又出問題,
由于我之前安裝的tensorflow演算法包的版本是2.1.0,而darkflow要求的tensorflow 版本是1.4,于是還是不成,
想想,yolo v2版本反正不如v3,不如直接搞v3吧,最終,yolo v2沒有體驗成功,放棄了,
3、YOLO V3的體驗
關于YOLO V3的官網:https://pjreddie.com/darknet/yolo/,
V3版本最終成功體驗了,中間也出現了一些問題,需要注意的地方:
1)代碼下載
不能使用:git clone https://github.com/pjreddie/darknet,這會在后面導致下列問題:
couldn’t open file: data/coco.names
正確做法,直接輸入https://github.com/pjreddie/darknet網址,download zip檔案,網上說這是因為Windows系統和Linux系統編碼的不同可能會導致一些錯誤,
2)make需要安裝gcc環境
安裝cygwin時,必須勾選:make和g++,(如果沒有,則需要補充安裝,默認是skip,即不安裝),
否則,make時,提示make指令錯誤,或gcc錯誤,
make成功后,生成了darknet.exe檔案,
3)圖片的檢測命令:
下面例子中,yolov3.weights到yolo官網下載,我用的是416*416,test.jpg是網上搞得圖片,
darknet.exe detect cfg/yolov3.cfg yolov3.weights test.jpg
成功,執行后,生成一個predictions.jpg檔案,
這樣初步體驗OK了,也可以用視頻檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/18188.html
標籤:其他
