吴恩达Deeplearning.ai 知识点梳理(course 4,week 3)

Object Localization

问题的描述

  1. Object Classification是指一张图片,里边有一个车,判断是不是车的图片
  2. Object Classification with Localization,是指判断出来这个是车的图片,同时框出车的位置
  3. Object Detection是指图片里有多个目标,然后把他们都检测出来并给出它们的位置。
    一般来说,Classification和Localization都是一个物体,目标比较大。而Detection是多个物体。

Localization 细节

  1. 红框的描述:红框用四个变量表述 bx by bw bh bx by 表述的是红框的中心坐标,归一化到1的。
  2. 网络的输出上,除了类别判断(softmax),还要加上红框四个变量。

Target Lable Y

  1. Target Label一般是有一个PC,表示有无目标物体,然后框参数,然后是c1, c2, c3, …的指示。例如如果是有一个车,那么就是y = [1, 0.7, 0.6, 0.5, 0.4, 1, 0, 0]。如果啥都没有,那就是y = [0, ?, ?, ?, ?, ?, ?, ?],?表示don’t care。对于损失函数,如果我们用Squred Error,那么对于有目标的物体,就是 y^y2 ,对于没有目标的,就是 |PC^PC|2
  2. 一般来说,PC可以用logistic regression的loss,bound的参数用Squred Error,而c1, c2, c3用negative log-likelihood(multiclass cross-entropy)

Landmark Detection

这个是神经网络输出x,y这样的输出的一个推广,有两个例子:
1. 表情识别,标注出来眼的轮廓,标记出来嘴的轮廓,然后拿去训练,最后就可以理解出表情了。
2. human pose estimation。标记出头、肩膀等位置,然后拿去训练,最后就可以理解出最终的姿势了。

Object Detection

Sliding Window Detection

就是滑动窗口方法,一块一块的检测,然后对大小还要缩放。计算量特别大。但其实这里边有很多重复计算。

Sliding Window with Convolution

Step 1. 将FC变成一个volume,如第一行所示,此时输入为14x14
Step 2. 将一个大于14x14的图像,例如16x16丢进去,这时可以输出2x2,那么每个输出,其实就是一个滑动窗口的结果。

这个就利用了滑动窗口计算冗余的问题做了优化。
但是这个问题就在于,最后得出的框不是很精确(毕竟不是所有框都是14x14),(这里好像没讲缩放的问题,难道是到时候直接对大图做缩放?)

YOLO Algorithm

内容

  1. YOLO算法是将图像分为nxn个格子,然后输出是一个n x n x m的volume,对于volume上的每一个channel是一个y,这个y就是[1, 0.7, 0.6, 0.5, 0.4, 1, 0, 0]这种label,bx,by是框的中心点,bw,bh是框大小。然后用这个volume去训练。
  2. bx, by是相对于格子的大小而言的,也就是bx, by坐标是0~1相对于格子的大小。bw和bh也是相对于格子大小,所以bw,bh是可以大于1的,只要是一个正数就可以了。

Intersection over Union

IoU是一个评估框画的对不对的一个指标,假设标注的框区域时M,预测出来的框是N,那么正确率就是 MNMN ,一般来说要大于0.5才行。
IoU的计算:因为是矩形,所以对于交集,直接转化为2个一维交集之后之后,两个一维交集做乘法即可。并集是两个面积相加,减去交集即可。

Non-max suppression

这个是用来解决从nxn个结果里边得到最终的框的,因为nxn个结果,总得挑出来一个最终结果。
Step 1. 把所有PC < 0.6的点都过滤掉。
Step 2. 挑出一个PC最大的框,然后把其他与之IoU > 0.5的框都丢弃掉。
循环直到框都没有了

Anchor Boxes

Anchor Boxes用来解决一个grid有多个物体的问题。
1. 首先做出几个形状不一样的框作为Anchor Boxes,例如瘦的和胖的。
2. 然后对一个Grid的Label,如果Center在这个Grid里边,然后在放到IoU最大的Anchor Box所对应的位置里。相当于Anchor Boxes 对这个object做了一个从形状上的一个encode。
如下图所示:

Summary

YOLO就是:
Step1. 划分格子
Step2. 设定好Anchor Boxes
Step3. 然后训练、预测
Step4. 使用Non-max suppression得到最终结果。

YOLO有个问题,就是加两个相同的Anchor Box都在一个格子上,那就没法分辨了。

习题精选

  1. In the YOLO algorithm, at training time, only one cell —the one containing the center/midpoint of an object— is responsible for detecting this object.
    √True
    False

  2. Suppose you run non-max suppression on the predicted boxes above. The parameters you use for non-max suppression are that boxes with probability ≤ 0.4 are discarded, and the IoU threshold for deciding if two boxes overlap is 0.5. How many boxes will remain after non-max suppression?

answer:5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值