目标检测之YOLO原理与实现
YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时目标检测系统。 现在YOLO已经发展到v3版本,不过新版本也是在原有版本基础上不断改进演化的,所以本文先详细分析YOLO v1版本。 YOLO提供了另一种更为直接的思路: 直接在输出层回归bounding box的位置和bounding box所属的类别(整张图作为网络的输入,把 Object Detection 的问题转化成一个 Regression 问题)。 YOLOv1网络结构设计: 训练: 预训练分类网络: 在 ImageNet 1000-class competition dataset上预训练一个分类网络,这个网络是上图中的前20个卷机网络+average-pooling layer+ fully connected layer 作为Pretrain的网络(此时网络输入是224*224)。 训练检测网络:转换模型去执行检测任务,将Pretrain的结果的前20层卷积层应用到Detection中,并添加4个卷积层和2个全连接层,随机初始化权重。检测要求细粒度的视觉信息,获取更加精细化的结果,所以把网络输入由224×224提升到448×448。 最后一层输出为 (7×7)×30的维度。每个 1×1×30的维度对应原图7×7个cell中的一个,1