此篇是看CS231n的课后笔记,方便以后查阅,因为刚开始接触,如果有错误,欢迎指正~
一、 Classification+Localization定位
定位一般是指一张图有一个类别,有单个物体需要去定位
常用数据库:ImageNet localization数据库
对于分类任务:
- 目标:分出类别
- 输入:图像
- 输出:图像类别
- 评价指标:准确度
对于定位任务:
- 目标:标出该图中类别物体的位置(矩形框)
- 输入:图像
- 输出:bounding box (x,y,w,h) 4个数
- 评价指标:与所给框的交叉重叠部分
【步骤】:
- 训练一个分类网络(AlexNet,VGG...)
- 在一个特定位置(conv后或者FC后)重新连接一个Regression head,用于训练框的位置
- 训练回归网络,用SGD+L2 Loss,分两种回归:不定类回归(1个box)/ 特定类回归(C个box)
- 测试时,把两种heads都加上得到分类标签+定位框
[Sliding Window]——Overfeat网络(ILSVRC 2013定位挑战冠军)
论文:Sermanet et al, “Integrated Recognition, Localization and Detection using Convolutional Networks”, ICLR 2014
主要思想:
- 用一个滑动窗口在高分辨率的图片上不同位置滑动
- 将全连接层转换为1*1卷积层,节省计算资源
- 在不同尺度上将分类器和回归器的预测结果融合,从而得到最终预测结果
滑动窗口
假设输入图像比规定的尺寸大,可设置一个滑动窗口分别滑动图像的左上,下,右上,下四个位置,得到四个分类得分
同样得到四个框
实际中,会取各种大小的sliding windows,所以会得到很多类别得分和很多框,通过一种特殊的融合方式,得到最佳结果(此处课上没说,需再看论文)
FC-->1*1 Conv
定位任务结果: