yolov1网络理解

yolo的全称是you only look once, 意思是一次性把候选框和目标识别搞定,因此,与RCNN这类用Region Proposals方法提出候选框的算法相比,要快很多。我在看v1的文章的时候,我觉得最让我懵逼是v1的bbox是怎么计算的,loss怎么设计的.因此,本文章只对这两个点详细描述.

yolov1如何产生和确定bbox

与selective search的方法不同,yolov1的候选框选择要粗暴很多.为了更好的解释,我借用知乎文章上面的yolov1网络输入输出映射图.

输入-输出.png

在v1的版本中,图像输入分辨率固定成448*448,并且被均匀分成7*7个的格子,每个格子长的就是左边左上角的那个正方体了.每个正方体进过神经网络训练后,在最后一层输出一个30维的向量,候选框的信息就包含在30维的向量中.由于有49个格子,那么网络的输出就是7*7*30的张量.

30维向量输出.png

再具体分析一下每个30维向量都包含什么信息,实际上包括2个bounding box的位置(一个bounding box用 center_x, center_y, w,h,4个数值表示,两个bounding box占了个位置),个bbox 置信度(稍后解释),预测20个类别的概率(V0C 20类数据).8+2+20刚好就是30.

一开始神经网络训练的时候,没有预先设定bbox的大小和形状,神经网络的工作仅仅对每个格子预测出2个bbox(见上图右下角正方体的两个虚线框),也就是上面提到的30维向量里面的8个,然后选择预测得相对比较准(分别计算前向计算2个bbox 与boxground truth的 IOU,取IOU较大的那个bbox)的那个。
所以一开始,神经网络输出的bbox是乱七八糟,只是在训练的过程中,通过计算IOU,loss值,慢慢让这个杂乱的候选框慢慢变得靠谱起来,每个bbox逐渐擅长对某些情况的预测(可能是对象大小、宽高比、不同类型的对象等).

yolov1 loss的设计

解释清楚了loss的计算过程,那么就已经了解v1的贡献了.v1的loss大体来说包括回归损失, 分类损失, 置信度损失三个部分.为了下面解释公式方便,以下公式中,同一个字母代表同个意思.

v1把输入图像切成7*7个cell,S= 7,v1使用voc数据集,预测20个类别,c表示类别,取值(0,20).

分类损失

如果检测到物体,那么每个cell 的分类损失是每个分类的条件概率平方误差和.
Loss =\sum_{i=0}^{S^2}\sum_{j=0}^ BI_{ij}^{obj}\sum{c \in classes}(p_{i}(c)- \hat{p}(c))^2

如果 cell i 检测到物体,那么I_{ij}^{obj}=1 ,否则I_{ij}^{obj}=0, \hat p_{i}(c)cell i 分类为c的条件概率.

每个grid cell为会所有的分类都有一个概率,此处20个分类,会有20个概率。这个值也就是上文提到30维向量中的20.虽然每个cell 都是预测两个bbox ,不过它们是共享20个类别概率.

回归损失

回归损失计算的是预测的bbox位置与实际尺寸的误差。

\lambda_{coord} \sum_{i=0}^{S^2}\sum_{j=0}^ BI_{ij}^{obj}((x_i- \hat {x_i})^2+(y_i- \hat {y_i)}^2)+ \lambda_{coord}\sum_{i=0}^{S^2}\sum_{j=0}^ BI_{ij}^{obj}[(\sqrt w_i - \sqrt{ \hat {w_i}})^2+(\sqrt {h_i}- \sqrt {\hat h_i})^2])
如果cell i 包含预测对象,那么I_{ij} ^{obj}=1,否则为0。注意,其中的\hat {x},\hat {y}是相对于当前cell的偏移量。v1不是直接预测bbox的高宽,而是宽的二次方根和高的二次方根。这样做的目的是减少大的bbox和小的bbox带来的不公平。举个例子来说,对于一个100*10010*10的目标都预测大了10个像素,如果不用根号,那么大的目标和小的目标的损失都为200.显然,我们能接受大的目标大于10个像素,不能接受小的目标预测大了一倍。加了根号之后,小的目标损失是(\sqrt 20 - \sqrt 10)^2=3.43,大的目标损失为(\sqrt (110) -\sqrt(100))^2= 0.48.这个是我们期望的。

置信损失

\sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{obj}(C_{i}- \hat{C_{i}})^2 + \lambda _{noobj} \sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{noobj}(C_{i}- \hat{C_{i}})^2

公式中的C为confidence,​是上文提到30维向量中的2维. 表示目标的中心是否出现在网格单元​中,​表示网格单元​中的第​i个边界框预测器“负责”该预测,第i个边框的confidence 计算公式P(obj)*IOU_{pred}^{truth}
如果某个物体在box中被检测到,其置信度损失(衡量的是box中的物体)\sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{obj}(C_{i}- \hat{C_{i}})^2\hat C_i是预测与groundtruth 的IOU.
如果某个物体不在box中,其置信度损失为\lambda _{noobj} \sum_{i=0}^{S^2}\sum_{j=0}^BI_{ij}^{noobj}(C_{i}- \hat{C_{i}})^2,\hat C_{i}=0.同样的,I_{ij}^{noobj} 是对I_{ij}^{obj}的一种补充。\lambda _{noobj}降低背景检测损失的权重(noobj即背景) 。因为大部分cell不包含任何物体,这会导致分类(正负样本)的不均衡。(Retinanet网络提出解决正负样本不均衡问题)因此,我们降低了背景检测损失的权重,即\lambda _{noobj}默认值为0.5。

图片参考:https://zhuanlan.zhihu.com/p/46691043

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容