本文是Deep Learning Specialization系列课程的第4课《Convolutional Neural Networks》中Object Localization部分的学习笔记。
主要是在图像分类的基础上,今一定定位出对象的位置并输出,已完成图像识别。具体包含:
- 对象定位的输出
- 特征点检测
- 滑动窗口检测及其卷积运算
- YOLO算法
- IoU
- Non-max Suppress
- Anchor box
- R-CNN算法
1 对象定位
前面我们学习的数字识别、猫识别等都属于计算机视觉中的图像分类,即只需识别出图像中有什么。
在图像分类的基础上,我们更进一步,把图像中对象的位置也标记出来,这就是对象定位(Object Localization),即识别出图像中有什么并且在什么位置。
下面先以简单的例子开始,在下面的图像识别中,包含两类输出:
- 分类,比如是车、行人、摩托车还是背景
- 位置,对象矩形的中心点坐标X、Y,矩形的高度、宽度
这里的位置需要做一些说明,其实以图像左上角为(0, 0),右下角为(1, 1)。在确定位置时,则是以对象所在图像中的比例标示出来。下图中车的中心坐标为(0.5, 0.7),高度为0.3,宽度为0.4。
在上面的例子中,其最后的输出是包含8个参数,其中第一个参数 p c p_c pc是判断图像中是否包含所需物体,这与前面学习到的分类一样。
后面的输出则分别是位置 ( b x , b y , b h , b w ) (b_x, b_y, b_h, b_w) (bx,by,bh,bw)和具体的分类 ( c 1 , c 2 , c 3 ) (c_1, c_2, c_3) (c1,c2,c3)。
这里 p c p_c