YOLOV1
YOLOV1模型
yolo —— You Only Live Once
- (1)YOLO v1不需要搜素候选框,直接实现端对端检测;
- (2)由于R-CNN系列的搜索候选框之间有重叠,为减少工作量,YOLO v1将全图划分成7*7的49个网格
- 输入图像为448*448*3的彩色图像,经过GoogLeNet的前20层进行卷积输出14*14*1024的特征图
- 然后经过四个卷积层和2个全连接层,最后经过重新排序成一个7*7*30的矩阵(张量)
- 如上图所示,经过层层卷积,输出的7*7*30的矩阵相当于将原图像划分成7*7=49个框,每个框由一个30维的向量构成
- 30维向量,前10个特征分别预测了两个bbox(BoundingBox回归框),一个横向框,一个列向框,每个框5个特征。框后边接着类别,共20个类。特征分别是每个目标属于某个类的概率
- 预测的两个框中,每个框的5个特征,分别是:(1)bbox中心x相对于grid cell(图中小红框)的坐标(2)bbox中心y相对于grid cell的y坐标(3)bbox的宽(4)bbox的高(5)是否存在目标,存在目标则为 1*IoU的值,否则 0*IoU的值
- 预测的x,y,w,h的取值范围全都划到(0,1)开区间内,转换方式如下图所示
- 对划分的7*7的49个单元格,都会存在一个30维的向量
- 每个单元格只对单个目标负责,如果两个或多个目标的中心同时存在于一个单元格中,那么单元格中只保存概率最高的类别
附代码
YOLO作者开源代码请见
https://pjreddie.com/darknet/yolov1/
Windows版可以参考链接,支持Visual Studio编译。
https://github.com/zhaolili/darknet
文章中的两幅图均来自于https://blog.csdn.net/liuxiaoheng1992/article/details/81983280,引用链接讲的较详细,如果没有理解本文,可以前去仔细阅读。