数据集与目标检测
1、数据集与常用指标
1.1 数据集
1.1.1 MNIST
MNIST数据集是由0〜9手写数字图片和数字标签所组成的,由60000个训练样本和10000个测试样本组成,每个样本都是一张28*28像素的灰度手写数字图片。原始的 MNIST 数据库一共包含下面 4 个文件:
①train-images-idx3-ubyte.gz,训练图像数据
②train-labels-idx1-ubyte.gz,训练图像的标注
③t10k-images-idx3-ubyte.gz,测试图像数据
④t10k-labels-idx1-ubtye.gz,测试图像的标注
1.1.2 Fashion-MNIST数据集
FashionMNIST是一个替代MNIST手写数字集的图像数据集。 它是由Zalando旗下的研究部门提供,涵盖了来自10种类别的共7万个不同商品的正面图片。
FashionMNIST的大小、格式和训练集/测试集划分与原始的MNIST完全一致。60000/10000的训练测试数据划分,28x28的灰度图片。你可以直接用它来测试你的机器学习和深度学习算法性能,且不需要改动任何的代码。
1.1.3 CIFAR-10数据集
CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。
数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。
1.1.4 PASCAL VOC数据集
PASCAL的全称是Pattern Analysis, Statistical Modelling and Computational Learning;VOC的全称是Visual Object Classes。PASCAL VOC数据集是目标分类(识别)、检测、分割最常用的数据集之一 ,常用的是 PASCAL 2012。
PASCAL VOC数据集一共分成20类:person, bird, cat, cow, dog, horse, sheep, aeroplane, bicycle, boat, bus, car, motorbike, train, bottle, chair, dining table, potted plant, sofa, tv/monitor
1.1.5 MS COCO数据集
PASCAL的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集。数据集以scene understanding为目标,主要从复杂的日常场景中截取。包含目标分类(识别)、检测、分割、语义标注等数据集。
提供的标注类别有80 类,有超过33 万张图片,其中20 万张有 标注,整个数据集中个体的数目超过150 万个。
- 人:1类;
- 交通工具:8类,自行车,汽车等;
- 公路常见:5类,信号灯,停车标志等;
- 动物:10类,猫狗等;
- 携带物品:5类,背包,雨伞等;
- 运动器材:10类,飞盘,滑雪板,网球拍等;
- 厨房餐具:7类,瓶子,勺子等;
- 水果及食品:10类;
- 家庭用品:7类,椅子、床,电视等;
- 家庭常见物品:17类,笔记本,鼠标,遥控器等。
1.1.6 ImageNet数据集
ImageNet数据集始于2009年,李飞飞与Google的合作: “ImageNet: A Large-Scale Hierarchical Image Database”。总图像数据为14197122,总类别数为21841,带有标记框的图像数1,034,908。
1.1.7 ISLVRC 2012子数据集
ISLVRC 2012子数据集的训练集为1,281,167张图片+标签,类别数为1,000,验证集为50,000张图片+标签,测试集为100,000张图片。
1.2、评价指标
1.2.1 概念
- True Positives(TP):被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数;
- False Positives(FP):被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
- False Negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
- True Negatives(TN):被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。
1.2.2 混淆矩阵
P(精确率): 𝑇𝑃/(𝑇𝑃 + 𝐹𝑃),标识“挑剔”的程度。
R(召回率): 𝑇𝑃/(𝑇𝑃 + 𝐹𝑁)。标识“通过”的程度。召回率越高,准确度越低。
精度(Accuracy): (𝑇𝑃 + 𝑇𝑁)/(𝑇𝑃 + 𝐹𝑃 + 𝑇𝑁 + 𝐹𝑁)
1.2.3 P-R曲线
P-R的关系曲线图,表示了召回率和准确率之间的关系。精度(准确率)越高,召回率越低。
1.2.4 AP计算
均值平均准确率(mAP):
其中代表测试集中所有图片的个数,表示在能识别出k个图片的时候Precision的值,而则表示识别图片个数从k-1变化到k时(通过调整阈值)Recall值的变化情况。
每一个类别均可确定对应的AP。多类的检测中,取每个类AP的平均值,即为mAP。
2、目标检测与YOLO
2.1 目标检测问题
目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,并且物体还可以是多个类别。
目标检测问题的发展为:R-CNN、SPP NET、Fast R-CNN、Faster R-CNN、YOLO。
2.2 YOLO基本思想
2.2.1 滑动窗口
滑动窗口简单而言就是维护一个窗口,不断滑动,然后更新答案。
滑动窗口存在滑动次数太多计算满、目标大小不同使得每一个滑动需要很多框等缺点。针对滑动窗口改进的思路为:
- 两步法(Region Proposal):一般图片中,大多数位置都不存在目标。可以确定那些更有可能出现目标的位置,再有针对性的用CNN进行检测;
- 一步法(YOLO):由于两步法仍然很费时,因此进一步减少出现目标的位置,而且将目标分类检测和定位问题合在一个网络里。
2.2.2 一步法基本思想
- 只检测一类,变为简单的二分类问题。
- 若要知道目标的大小和未知,将分类问题扩展为回归+分类问题。
- 若多个框里有一个目标,取目标中心点所在框;若一个框里有多个,暂不能解决。
- 多类目标使用独热编码扩展类别数。
2.3 YOLO网络
2.3.1 YOLO网络结构
YOLO的网络结构包含24个卷积层和2个全连接层;其中前20个卷积层用来做预训练,后面4个是随机初始化的卷积层,和2个全连接层。
2.3.2 YOLO模型处理
YOLO v1在PASCAL VOC数据集上进行的训练,因此输入图片为448×448×3。实际中如为其它尺寸,需要resize或切割成要求尺寸。
YOLO的模型处理是进行7×7的网格划分。将图片分割为个grid(S= 7),每个grid cell的大小都是相等的,每个格子都可以检测是否包含目标。YOLO v1中,每个格子只能检测一种物体(但可以不同大小)。
YOLO网络的输出是一个7×7×30的张量,对应7×7个cell。每个cell对应2个包围框(bounding box, bb),预测不同大小和宽高比,对应检测不同目标。每个bb有5个分量,分别是物体的中心位置(x,y)和它的高(h)和宽(w),以及这次预测的置信度。在下图中,每个框代表1个预测的bb,粗细代表不同的置信度,越粗得越高。