AI人工智能培训课件-目标检测概述-7.2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目标检测
01
目标检测简介
输入图片
输入图片问题:图片中的车在哪里?
输入图片问题:图片中的车在哪里?
目标检测(Object Detection)的任务是找出图像中所有感兴趣的
目标(物体),确定它们的类别和位臵,是计算机视觉领域的核心
问题之一。
由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有一定挑战性的问题。
目标检测的核心问题:
图像识别+定位
定位方面的问题:
目标可能出现在图像的任何位臵。
目标有各种不同的大小。
目标可能有各种不同的形状。
图像识别:
定位:
定位思路一:将定位转换为分类问题,遍历所有可能的区域deer
cat
定位思路一:将定位转换为分类问题,遍历所有可能的区域
CNN deer?
cat? background?
定位思路一:将定位转换为分类问题,遍历所有可能的区域
CNN deer?
cat? background?
定位思路一:将定位转换为分类问题,遍历所有可能的区域
CNN deer?
cat? background?
定位思路一:将定位转换为分类问题,遍历所有可能的区域
定位思路一:滑动窗算法(使用固定尺寸和固定步长)
定位思路一:滑动窗算法(使用多种尺寸+步长)
3 x 257 x 257
0.5
分类概率(猫)
定位思路一:滑动窗算法(使用多种尺寸+步长)
3 x 257 x 257
0.5 0.75 分类概率(猫)
定位思路一:滑动窗算法(使用多种尺寸+步长)
3 x 257 x 257
0.5 0.75 0.6
分类概率(猫)
定位思路一:滑动窗算法(使用多种尺寸+步长)
3 x 257 x 257
0.5 0.75 0.6 0.8 分类概率(猫)
定位思路一:滑动窗算法(使用多种尺寸+步长)
3 x 257 x 257
0.5 0.75
0.6 0.8
分类概率(猫) 3 x 257 x 257
定位思路二:回归
狗 (x, y, w, h)
猫 (x, y, w, h)
猫 (x, y, w, h)
鸭 (x, y, w, h)
16个数
定位思路二:回归
狗(x, y, w, h)
猫(x, y, w, h)
8个数
定位思路二:回归
猫 (x, y, w, h)
猫 (x, y, w, h)
猫(x, y, w, h)
….
网络需要对变动的目标输出个数进行刻画
定位思路二:回归
和图像分类网络一样,我们需要一个提取图像特征的网络
在上述卷积神经网络的尾部作出改进,加上分类模块和回归模块 回归模块用欧氏距离度量损失,网络使用梯度下降进行训练
在预测阶段合并分类模块和回归模块的结果
定位思路二:回归
目标检测分类:
1.Two stage目标检测算法
先进行候选区域生成(一个有可能包含待检物体的预选框),
再通过卷积神经网络进行样本分类。
任务:特征提取—>生成候选区域—>分类/定位回归。
常见的two stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
目标检测分类:
2.One stage目标检测算法
不生成候选区域,直接在网络中提取特征来预测物体分类和位臵。
任务:特征提取—>分类/定位回归。
常见的one stage目标检测算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。
目标检测的应用:
目标检测具有巨大的实用价值和应用前景。
应用领域包括人脸检测、行人检测、车辆检测、飞机航拍或卫星图像中道路的检测、车载摄像机图像中的障碍物检测、医学影像在的病灶检测等。
还有在安防领域中,可以实现比如安全帽、安全带等动态检测,移动侦测、区域入侵检测、物品看护等功能。
02
Two Stage目标检测算法
RCNN (论文:Rich feature hierarchies for accurate object detection and semantic segmentation) 是将CNN方法引入目标检测领域,提高了目标检测效果,改变了目标检测领域的主要研究思路,是当之无愧的开山之作。
R-CNN的创新点
使用CNN(ConvNet)对 region proposals 计算 feature vectors。
从经验驱动特征(SIFT、HOG)到数据驱动特征(CNN feature map),提高特征对样本的表示能力。
采用大样本下(ILSVRC)有监督预训练和小样本(PASCAL)微调(fine-tuning)的方法解决小样本难以训练甚至过拟合等问题。
注:ILSVRC其实就是众所周知的ImageNet的挑战赛,数据量极大;
PASCAL数据集(包含目标检测和图像分割等),相对较小。
R-CNN介绍
R-CNN作为R-CNN系列的第一代算法,其实没有过多的使用深度学习的思想,而是将深度学习和传统的计算机视觉的知识相结合。
比如R-CNN 流程中第二步和第四步其实就属于传统的计算机视觉技术。
使用selective search提取region proposals,再使用SVM实现分类。
R-CNN介绍
R-CNN算法进行目标检测的简要步骤:
将图像输入到网络中
利用选择性搜索Selective Search算法在图像中从下到上提取2000个左右的可能包含物体的候选区域Region Proposal
取出的区域大小各自不同,所以需要将每个Region Proposal缩放(warp)成统一的
227x227的大小并输入到CNN,将CNN的fc7层的输出作为特征
R-CNN算法训练步骤1) 使用预训练模型
R-CNN算法训练步骤1) 使用预训练模型
R-CNN算法训练步骤
2)对该模型进行微调
在VOC数据集上,将分类数从1000改为20,比如20个物体类别 + 1个背景 去掉最后一个全连接层
R-CNN算法训练步骤
3) 特征提取
提取图像的所有候选框(使用选择性搜索Selective Search方法)
对于每一个区域:调整区域大小以适合CNN的输入,做一次前向运算,将第五个池化层的输出(就是对候选框提取到的特征)存到硬盘
R-CNN算法训练步骤
4)训练一个SVM分类器(二分类)
判断这个候选框里物体的类别
每个类别对应一个SVM,判断是不是属于这个类别,是就是positive,反之nagative
R-CNN算法训练步骤
5)使用回归器精修候选框位臵
对于每一个类,训练一个线性回归模型去判定这个框是否预测准确
SPP-Net是出自论文《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》,SPP即空间金字塔池化(Spatial Pyramid Pooling)。
加速RCNN
在RCNN中,2000个region proposal都是图像的一部分,完全可以对图像提一次卷积层特征,然后只需要将region proposal在原图的位臵映射到卷积层特征图上,这样对于一张图像我们只需要提一次卷积层
特征,然后将每个region proposal的卷积层特征输入到全连接层做后续操作。
不过每个region proposal
的尺度不一样,而全连接层输入必须是固定的长度,SPP Net论文恰好解决了这个问题。
解决全连接层固定尺寸输入
当全连接层面对各种尺寸的输入数据时,就需要对输入数据进行crop(crop就是从一个大图扣出网络输入大小的patch),或warp(把一个边界框bounding box的内容resize成227×227)等一系列操作以统一图片的尺寸大小,比如224*224(ImageNet)、32*32(LenNet)等。
解决全连接层固定尺寸输入
解决全连接层固定尺寸输入
warp和crop这种预处理,导致图片要么被拉伸变形、要么物体不全,限制了识别精确度。
比如一张16:9 比例的图片Resize成1:1的图片,图片将会失真。
既然由于全连接FC层的存在,普通的CNN需要通过固定输入图片的大小来使得全连接层的输入固定。
那借鉴卷积层可以适应任何尺寸,在卷积层的最后加入spatial pyramid pooling layer,使得后面全连接层得到的输入变得固定。
下图是R-CNN和SPP Net检测流程对比图:
SSP层的特点
结合空间金字塔方法实现CNN的多尺度输入
在普通的CNN结构中加入了ROI池化层(ROI Pooling),使得网络的输入图像可以是任意尺寸的,输出尺寸则不变 ROI池化层一般跟在卷积层后面,在SPP layer中每一个pooling的filter会根据输入调整大小,而SPP的输出则是固定尺寸的向量,然后给到全连接FC层。
Fast R-CNN的创新点
借用SPPNet的思路,用RoI pooling替换最后一层的max pooling,用RoI pooling layer将feature maps下采样到一个7x7的特征图。
流程上只对整幅图像进行一次特征提取,避免R-CNN中的冗余特征提取。
Fast R-CNN直接使用softmax替代SVM分类,同时利用多任务损失函数将边框回归也加入到了网络中,
这样整个的训练过程是端到端的(除去Region Proposal提取阶段)。
采用SVD对Fast R-CNN网络末尾并行的全连接层进行分解,减少计算复杂度,加快检测速度。
Fast R-CNN的流程图。