YOLO(You Only Look Once)是与R-CNN系列不用的一种目标检测方法,其实在我看R-CNN系列文章时,我就思考能不能直接输入一张图像,就卷积最后得到x,y,w,h,c五个参数啊,直接让它暴力预测!嘿嘿,yolo就是这么干的!
YOLO-V1
我理解的YOLO-V1相当于采取比较暴力的检测方案,网络结构如下图所示,其只用了一个卷积网络实现,更加简单。
网络结构
首先输入一行图片,这里它把它resize得到更大的尺寸图片(两倍分辨率),其目的是为了将物体方法更利于目标的检测。
之后就是经过一个类似于GoogLeNet的卷积网络最后它得到一个7*7*30的块,这个时最关键的。
这个块反映什么含义呢?目标分类中我们直接让他输出1*10对应一个10分类问题,那10个元素就是对应的分值。7*7*30反应什么呢?作者这样定义,7*7个部分,代表着把原图分成7*7份,每个份代表着以该区域为中心区域找物体,哈哈你会想是不是太少了,这么大的图分这么几份,确实是,最后V1版本发现搞出来对于小目标分类不太好!!!尼玛每个部分30个值啥意思呢?这30个值分别是2*(4+1)+20,20代表20个类别的打分,就是说这个区域要是有目标属于每个目标的分值多少!2呢?2代表以前面说的区域中心,展开上下,左右两个区域检测,每个展开对应着4+1分别是X,Y,W,H,还有一个是置信度,它属于目标的可信程度~,着好像看着分的挺好,实际上把目标函数设计好,程序就能按照这个训练!
损失函数
损失函数定义如下图所示(该图从原文中截取),一共五行。
第一行计算坐标的欧式距离,把两个展开区域一起求和,前面有个系数代表权重;
第二行是对于宽度高度的计算同上;
第三行和第四行都是可信度的损失,分别是物体的可信度损失和非物体的可信