YOLOv1 随笔

YOLO 系列

<img src="./image/../images/ironman_evolution.jpg">

YOLOv1

<img src="images/yolov1_cover.jpeg">

  • 作者 AlexAB

计算机视觉

随着深度学习中卷积神经网络的发展,掀起了一次目标检测的浪潮,逐渐趋近于成熟

目标检测

<img src="images/object_detector_01.jpeg">

  • 语义分割
  • 单目标检测
  • 多目标检测
    • 实例分割
    • 目标检测
单目标

我们要做目标检测,先看一下计算机视觉可以做那些图像那些识别问题。目标检测从 2012 年目标检测人提升了一倍,图像目标是什么,还需要对其进行定位,单目标任务,同时输出 1000

  • softmax 损失
  • L2 损失||\hat{x} - x^{8}||^2 +

可以选择一个,然后分出两个 head 分别做分类任务和回归任务,可以定位
<img src="images/object_detector_02.png">

多目标(区域)

adaboost 就足够快可以通过滑动窗口来做人脸检测

目标检测任务
  • 输入图像
  • 输出一个目标所属类别的概率以及表示出该目标在图像位置
    • xywh
    • cwh
    • xyxy
目标检测思路
  • 生成局部区域图像
  • 对区域图像进行分类任务
滑动窗口(slide window)

这种方式进行目标检测的缺点很明显,运算量大,所以耗时在当前算力下无法投入到生产,对于每张图片都等同生成一个小型的数据集.

<img src="images/yolov2_001.jpeg">

目标检测中的问题和难点
  • 如何生成区域图像
  • 如何表示一个预测结果
  • 如何表示多个预测结果

我们如何将这生成局部区域图像和对区域图像进行分类两个任务结合在一起,如何更精准地生成区域图像。其实图像检测一路走来大家对生成区域图像花费很多心思。
<img src="./images/yolov1_cover_02.jpeg">

YOLOv1

如何准备数据集

  • 类别信息
  • 位置信息

网络结构

  • 输入图像
  • 输出向量表示预测结果 [c,x,y,w,h]
    <img src="images/yolov1_001.jpeg">

训练

训练网络,多组输出与位置强相关, 按空间位置来映射 N = W^{\prime} \times H^{\prime}

用每一个对应框进行预测,只需要

  • 一个目标出现在多个框(中心点)
  • 多个目标出现在同一个框(不同尺度的框)
    \begin{bmatrix} [c,x,y,w,h] & [c,x,y,w,h] & \cdots &[c,x,y,w,h] \\ [c,x,y,w,h] & [c,x,y,w,h] & \cdots &[c,x,y,w,h] \\ \vdots & \vdots & \vdots & \vdots\\ [c,x,y,w,h] & [c,x,y,w,h] & \cdots &[c,x,y,w,h] \\ \end{bmatrix}
loss_total = 0
for img in images:
    for i in range(0,7):
        for j in range(0,7):
            loss_ij = (c_hat - c_true)**2 + 
            c_true (x_hat - x_true)**2 +  
            c_true (y_hat - y_true)**2 +  
            c_true (w_hat - w_true)**2 +  c_true(h_hat - h_true)**2
            loss_total + loss_ij

<img src="images/yolov1_007.png"/>
<img src="images/yolov1_008.png"/>
<img src="images/yolov1_009.png"/>
<img src="images/yolov1_011.png"/>

loss = (\hat{c} - c^{*})^2 + c^{*}(\hat{x} - x^{*}) + c^{*}(\hat{y} - y^{*}) + c^{*}(\hat{w} - w^{*}) + c^{*}(\hat{h} - h^{*})

  • c \in [0,1]
  • x,y,h,w \in [1,416]
    这样问题就是因为置信度loss 值与边界框位置信息的loss 存在不平衡问题,因此需要引入一个权重来进行调整。

loss = \lambda(\hat{c} - c^{*})^2 + c^{*}(\hat{x} - x^{*}) + c^{*}(\hat{y} - y^{*}) + c^{*}(\hat{w} - w^{*}) + c^{*}(\hat{h} - h^{*})
而且这里 w 和 h 与 x 和 y 也表示不同属性还需要进一步进行处理

loss = \lambda(\hat{c} - c^{*})^2 + c^{*}(\hat{x} - x^{*}) + c^{*}(\hat{y} - y^{*}) + c^{*}( \sqrt{\hat{w}} - \sqrt{w^{*}} ) + c^{*}( \sqrt{\hat{h}} - \sqrt{h^{*}})

因为只需要计算有物体的放框

IOU和NMS

<img src="images/iou_001.jpg">
可能输出预测框数量要大于实际目标数量,可以通过 IOU 可以去掉一些冗余的候选框,通过将两个重合度比较高的候选框计算为一个候选框。我们实际上可以用 IOU 来判断两个框。

找到置信度最高框,然后利用 IOU 去掉与置信度最高框(抑制掉),还剩下没有被抑制掉,然后在没有被抑制掉的框找到置信度最高的框,然后计算 IOU 来去掉和这个框,NMS(非极大值抑制)

多分类

loss = \lambda(\hat{c} - c^{*})^2 + c^{*}(\hat{x} - x^{*}) + c^{*}(\hat{y} - y^{*}) + c^{*}( \sqrt{\hat{w}} - \sqrt{w^{*}} ) + c^{*}( \sqrt{\hat{h}} - \sqrt{h^{*}}) + c^{*}\sum_i^cls (\hat{y_i} - y_i^{*})^2

<img src="images/yolov1_003.jpeg"/>

<img src="images/yolov1_002.jpeg"/>

损失函数

<img src="images/yolov1_006.png">

  • S 是 7,grid 数量
  • B 两个框
  • \mathbb{1}_{i,j}^{obj}

YOLOv1 中的问题

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