YOLO 官网:https://pjreddie.com/darknet/yolo/
论文:https://pjreddie.com/media/files/papers/YOLOv3.pdf
一.介绍
由于项目需求,需在树莓派下进行行人检测。树莓派内存较小,计算能力不足。opencv自带的HOG+SVM算法精度不够,而基于回归的深度学习检测算法YOLO精度高,计算要求小。
考虑使用YOLOv3-tiny算法进行行人检测,本文主要包括Ubuntu下的YOLOv3配置,训练自己的行人数据集以及调参总结。
参考了很多博客,亲测实验,如果有误请及时指正。
二.ubuntu下配置
其在Ubuntu下配置基本按照官网提供的步骤即可。
下载源码及CPU下编译:
git clone https://github.com/pjreddie/darknet
cd darknet
make
下载tiny权重文件及测试:
wget https://pjreddie.com/media/files/yolov3-tiny.weights
./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg
其权重文件和测试结果图片都在根目录下。
三.训练行人检测器
相信大家都能跑通官方权重,但其检测器是20个类别,在实际使用中并不需要全部类别,且类别多精度会下降。我们需要单独训练自己的检测器,比如人脸检测,路标检测等,我这里是做行人检测。
3.1标注数据集
我们采用PASCAL VOC格式的数据集,其标注格式较为复杂,幸好有前人写过自动生成的python程序,即labelImg工具,具体使用请转:https://github.com/tzutalin/labelImg
3.2生成训练集的标注文件
i>官网提供了原数据集:
wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
tar xf VOCtrainval_11-May-20