学习目标
Understand the challenges of Object Localization, Object Detection and Landmark Finding
Understand and implement non-max suppression
Understand and implement intersection over union
Understand how we label a dataset for an object detection application
Remember the vocabulary of object detection (landmark, anchor, bounding box, grid, ...)
object localization:
这两天网速太挫,视频老是加载不出来,只能曲线救国,去网易云课堂了。所以以下的截图全都带有云课堂的标识。
localization是classification的进阶版,不仅要label中一张图片属于什么,还要找到他的位置(只有一个 object(,where is the car。classification with locallization means not only do you have to label this as say a car but the algorithm also is responsible for putting a bounding box, or drawing a red rectangle around the position of the car in the image. detection的话,图片当中不止一个object ,要把object 圈出来,并且告知这个object是什么。即 there might be multiple objects in the picture and you have to detect them all and and localized them all.
classification with localization:
在分类的基础上加了bounding box 的回归,多了四个参数。
有一个类似于flag的值Pc,代表是否有object,有object 为1,没有为0 用的损失是均方差损失。
landmark detection
landmark :地标 感觉类似于关键点 X and Y coordinates of important points and image,体现在人脸上的话,就是眼睛鼻子嘴巴的定位点 ,假设要找的关键点有64个,那么该神经网络的输出就是129个 64×2+1(判断是否是脸) attention:label要一致,以人脸为例,所有的landmark的顺序要一致,比如第一个landmark是左眼左,第二个是左眼右,那么所有的标定都要是这个顺序。
object detection:
一个图像中不只一个物体,
第一种方式:sliding windows:计算代价大,如果你用较细的粒度,但是你要是粗一些,又会影响准确率,这两者之前的平衡点。之前sliding windows work,是因为分类器都很简单,不像convnet这样复杂,所以可以handle这个问题。用convnet的话,以滑窗的方式就比较不现实。
convolutional implementation of sliding windows:
first,先将FC层转化为卷积层,用上一层feature map 的大小 作为滤波器的size
就是共享卷积特征,不是说在原图上做滑窗,而是把整张图像丢进去,最后得到的feature map 的大小就会是原来需要滑窗次数乘以原feature map 的大小 缺点是the position of the bounding boxes is not going to be too accurate 这个是overfeat 的实现
bounding box predictions:
上面的方法本质上还是基于滑窗,那么bounding box 的位置会受限,看你滑窗怎么样,有时候并不能准确的框到目标 ,比如蓝色的框
yolo 算法
在图像上分grid cell 比如3×3的, 每一个cell 都有一个标签,每个标签都是个向量
会把这个cell归一化一下 左上(0,0)右下(1,1)、yolo不是很好读懂
intersection over union:
intersection over union既iou,就是和bounding box 重合的面积
non-max suppression
非最大值抑制:对同一个物体而言,算法可能会画很多个框。也就是说一个物体不只被检测到一次。以下图grid cell 的为例,会有很多的cell被认为是。非最大值抑制就是把这些框框去掉
抑制前,一辆车有好几个
抑制后,一辆车就只剩一个了
实现:
在PPT中,先把问题简化成了单单car识别的问题,就不存在三类了。pc表示的是物体的概率,不是是否有物体。所以输出的是六个。
首先,排除pc<=0.6的,然后选取pc值最大的,然后再排除iou <0.5的
如果有三类物体的话,就分别做三次
anchor boxs
前面的方法,每一个grid cell 只能predict 一个object ,那么how about multiple objects in a grid cell ? 这里就可以用anchor box
yolo algorithm
根据anchor box 的数量,那么每个cell输出的大小也变了 要乘以anchor box 的数量
yolo algorithm:
把之前讲的都串起来,训练 预测以及怎么最大值抑制的
pedestrain
region proposals
在two-stage 的检测用到,sliding Windows 的方法会有很多空的滑窗。所以就先选框。比如用分割的方法先得到候选框
rcnn quit slow ,每个候选框都要提特征
fast 用了roi-pooling,不用每个图都要提特征,但是还是用的ss,
faster 用了rpn来替代了ss