竞赛任务

在C区放置若干仿真人物,通过模型识别戴眼镜和长头发(过肩)人物的数量,并达到终点进行语音播报:戴眼镜的人数为多少,长头发人物为多少;赛道平面图

仿真人物模型全身照

思路

使用目标检测算法,通过收集全身人物照片数据集,并训练模型,进行测试;

数据集采集

每张照片都包括两种特征,有以下四种情况:戴眼镜_长头发;戴眼镜_短头发;不戴眼镜_长头发;不戴眼镜_短头发;
收集满足以上条件的数据各1500张;

数据集标注

标签分为四类:g,ng,l,s;分别表示:戴眼镜,不戴眼镜,长头发,短头发;并对每张图片标注两种类型;标注格式:yolo

模型训练

使用darknet深度学习框架训练模型,使用yolov3-tiny算法训练模型
下载预训练权重:
wget https://pjreddie.com/media/files/yolov3_tiny.weights
./darknet partial ./cfg/yolov3-tiny.cfg ./yolov3-tiny.weights ./yolov3-tiny.conv.15 15

训练模型:
sudo ./darknet detector train cfg/voc.data cfg/yolov3-tiny.cfg yolov3-tiny.conv.15
在yolov3-tiny_10000.weights基础上继续训练:
sudo ./darknet detector train cfg/voc.data cfg/yolov3-tiny.cfg backup/yolov3-tiny_10000.weights -map
模型会自动保存;

模型测试

./darknet detector test cfg/voc.data cfg/yolov3-tiny.cfg backup/yolov3-tiny_10000.weights data/11.png

测试结果

在这里插入图片描述
在这里插入图片描述

数量统计

分别统计识别戴眼镜和长头发标签的数量,并发送到topic;

语音播报

通过订阅topic,获得戴眼镜和长头发人物数量,通过语音合成进行播报;