Mask Detection System using Yolov3 on custom made dataset : https://.com/archie9211/Mask-Detection-Dataset
This project uses Yolov3 for the mask detection on live stream video from either webcam or cctv.
Dataset Used : Repo Link
Yolo weights given below were trained on a imbalanced dataset (5000 + mask samples and < 1000 non mask samples.). So, Its performance can be poor. This model was only trained for 20K batches of batch size 64.
Other Yolov3 models are typically trained for more than 500K batches.
I am training the model on new dataset handicked and annotated using https://.com/tzutalin/labelImg.
which has 4k images of each category. So, Improvement is expected. : link
clone the repo
https://.com/archie9211/Mask-detection-system
cd Mask-detection-system
pip3 install -r requirements.txt
then download the yolo weights
wget https://my.gdrivemirror.workers.dev/yolov3_final.weights -O data/yolov3.weights
python convert.py
Running simple yolo on a video on webcam (--video 0)
there are three modes of execution :
python run.py --video /path/to/video
you can use another flag for saving the output to a video
--video /path/to/video.mp4
run following command for full help of arguments and their uses :
python run.py --help
this will need voc format dataset for training.
Example command line arguments for training
python train.py --batch_size 8 --dataset ~/Data/voc2012.tfrecord --val_dataset ~/Data/voc2012_val.tfrecord --epochs 100 --mode eager_tf --transfer fine_tune
python train.py --batch_size 8 --dataset ~/Data/voc2012.tfrecord --val_dataset ~/Data/voc2012_val.tfrecord --epochs 100 --mode fit --transfer none
python train.py --batch_size 8 --dataset ~/Data/voc2012.tfrecord --val_dataset ~/Data/voc2012_val.tfrecord --epochs 100 --mode fit --transfer no_output
python train.py --batch_size 8 --dataset ~/Data/voc2012.tfrecord --val_dataset ~/Data/voc2012_val.tfrecord --ep
for yolo format dataset training : go to darknet folder
cd darknet
and make sure dataset is in imgs folder
folder structure of darknet folder should be same as https://.com/archie9211/Mask-Detection-Dataset
there is additional compiled binary of darknet
download pretrained weights for training
wget https://my.gdrivemirror.workers.dev/darknet53.conv.74
for training
./darknet detector train "obj.data" "yolov3.cfg" "darknet53.conv.74" -dont_show
you can also train over my weights
./darknet detector train "obj.data" "yolov3.cfg" "../data/yolov3.weights" -dont_show
files to mentions :
train.py
yolov3-tf3/models.py
run.py
detect.py
https://.com/zzh8829/yolov3-tf2 (yolo implementation)