基於yolov3的人體口罩佩戴檢測
由於2020年新型冠狀病毒,針對公共場合檢測人員是否佩戴口罩,故用YOLOV3完成一個人體口罩佩戴檢測。
效果展示
環境
工慾善其事必先利其器
- Python: 3.7.4
- Tensorflow-GPU 1.14.0
- Keras: 2.2.4
數據集
口罩檢測數據集,從互聯網上搜集的數據集,大概1k多張圖片。
訓練
準備數據集
按照VOC數據集的格式來準備數據集,及圖片以及xml標籤
VOCdevkit
-VOC2007
├─ImageSets # 存放數據集列表文件,由voc2yolo3.py文件生成
├─Annotations # 存放數據集中圖片文件
├─JPEGImages # 存放圖片標籤,xml 格式
└─voc2yolo3.py # 用來生成數據集列表文件
將你準備的數據集文件放入JPEGImages以及ImageSets文件中,然後運行python voc2yolo3.py
來生成ImageSets中的數據列表文件
生成YOLOV3所需數據
在根目錄下,運行 python voc_annotation.py
,程序將在根目錄下生成用於訓練所需的數據列表。
YOLOv3訓練
訓練步驟
-
1.下載yolov3的權重文件yolov3_weights
-
2.執行如下命令將darknet下的yolov3配置文件轉換成keras適用的h5文件。
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
-
3.在根目錄下,運行
train.py
進行訓練。可以根據情況修改train.py
中的參數。
測試
-
1.單張圖片測試,需修改yolo.py文件中模型的位置,替換成你訓練好的模型。然後在根目錄下,運行
python predict_img.py
進行測試。 -
2.自己電腦攝像頭實時檢測,在根目錄下運行
python predict_video.py
Github鏈接
有問題,請留言,儘量解答。