這是本人第一次寫博客,就當是自己實作演算法的一個記錄吧,有什么不好的地方也請多多指教,我會詳細的從環境的配置到演算法實作都說明一下,希望對大家能有幫助,
本火焰識別演算法采用的是pytorch版本的yolov3檢測,yolov3基于Darknet-53網路結構,在影像識別領域應用特別廣,
本演算法識別的效果如下:

下面開始實際操作啦
一、配置環境
演算法所需環境如下:
Python: 3.7.4
Tensorflow-GPU 1.14.0
Keras: 2.2.4
numpy:1.17.4
我的作業系統是Ubuntu16.04,windows系統同樣可以實作此演算法這里建議使用anaconda來快速搭建一個虛擬環境,
如果是ubuntu系統可以參考這篇博客安裝anaconda,Anaconda 是 Python 的一個出色的集成開發工具集,對于搞深度學習的人來說應該是必備的,
ubuntu安裝anaconda鏈接
有了anaconda后就可以用它創建虛擬環境啦,具體可以參考這篇博客,
anaconda創建虛擬環境
之后安裝Tensorflow,由于我的顯卡是AMD的,所以安裝的CPU版的,大家可以根據自己的顯卡安裝相應版本,運行下面的命令安裝Tensorflow,
pip install tensorflow==1.14.0
下一步安裝相應版本的Keras,運行下面的命令,
pip install Keras==2.2.4
接下來使用pip繼續安裝numpy,運行如下命令:
pip --default-timeout=1000 install numpy==1.17.4
如果發現已經安裝了其他版本的numpy,那么運行如下命令將其卸載,再運行以上命令安裝對應版本的numpy,
pip uninstall numpy
到這里演算法所需的環境就配置好啦,再強調一遍環境一定要一致,否則運行演算法會報錯,
二、資料集準備
這里采用網上現成的資料集,直接可以去我上傳的資源里進行下載,只需要關注我即可,無需花積分,鏈接如下:
火焰資料集
三、演算法實作
這個演算法是在github 找到的一個演算法,效果還是相當不錯的,大家可以直接從鏈接中把它下載下來,
Pytorch_Yolov3演算法
1.安裝python模塊
在演算法檔案夾下的requirements.txt中含有本次所需的python模塊.
numpy
torch==1.2.0
torchvision==0.4.0
matplotlib
tensorflow==1.13.2
tensorboardX==2.0
terminaltables
pillow
tqdm
直接在檔案夾YOLOV3_Fire_Detection-master檔案夾終端下運行命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt來安裝相應的模塊,
2.下載權重檔案
Linux平臺下,先cd到weights檔案夾下cd weights/,之后運行bash download_weights.sh就可以下載權重資訊了,這個程可能會花費很長時間,建議用一個好的網路,
3.修改組態檔
Linux平臺下,運行cd config/命令,之后運行 bash create_custom_model.sh '1' 命令將類別引數修改為1.修改后custom.data檔案如下圖,

4.配置本次yolov3的資料格式
首先將資料集中的Annotations和JPEGImages兩個檔案夾復制到演算法檔案夾的data/custom檔案夾里,并在此檔案夾內創建images和labels兩個檔案夾,
然后運行voc2yolov3.py檔案,生成train.txt和valid.txt檔案資訊,將資料集劃分,即將圖片路徑保存在兩個txt檔案中,
之后運行voc_annotation.py對xml標記資訊進行處理,處理成下列的txt檔案形式,
之后將JPEGImages內的圖片全部復制到images檔案夾內,


5.訓練資料集
在演算法檔案夾的終端下運行以下命令:
# 訓練命令
python train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data --pretrained_weights weights/darknet53.conv.74
# 添加其他引數請見 train.py 檔案
# 從中斷的地方開始訓練
python train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data --pretrained_weights checkpoints/yolov3_ckpt_99.pth --epoch
運行程序如下圖所示:
如果運行報錯:IndexError: index 0 is out of range那么就將演算法檔案夾下面的config檔案內的yolov3-custom.cfg洗掉,自己重新生成一個,在該檔案終端下運行命令:
bash create_custom_model.sh '1'
這里強烈建議使用帶GPU的電腦進行訓練,用CPU訓練實在太慢了…
6.測驗結果
訓練完成后運行如下命令進行測驗演算法,
python detect.py --image_folder data/imgs/ --weights_path checkpoints/yolov3_ckpt_99.pth --model_def config/yolov3-custom.cfg --class_path data/custom/classes.names
運行上述,其會對data/imgs 檔案下的圖片進行預測,并將預測結果保存到output/imgs檔案下,

好啦,如果不出意外就可以成功運行啦,如果覺得寫的還不錯的話就請給我點個贊吧!祝各位2021一切順利啦,
參考:https://codingchaozhang.blog.csdn.net/article/details/107167792#commentBox
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/244214.html
標籤:AI
上一篇:2020學習總結 | 成為一位菜鳥前端需要掌握多少“基礎”?
下一篇:spacy訓練模型和更新
