CV笔记——(第十一讲)CV领域任务与其经典模型总结

一、知识梳理

二、重点讲解

1、RCNN

1)知识补充:

(1)IoU通过面积表示图像区域的的重合程度,训练网络的时候,我们常依据侯选区域和标定区域的IoU值来确定正负样本。

(2)非极大值抑制(Non-Maximum Suppression又称NMS)      实例参考

本质就是抑制不是极大值的元素,可以理解为局部最大搜索。这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。其目的是要去除冗余的检测框,保留最好的一个。步骤为:(score为区域的置信度,即分类得分)

2)思想

选出图片的候选框,放入CNN中,使用SVM分类。因此,R-CNN实际上是对候选框进行分类识别。

2)步骤与框架

(1)获取输入图像
       (2)提取约2000个候选区域
       (3)将候选区域分别输入CNN网络(这里需要将候选图片进行缩放
       (4)将CNN的输出输入SVM中进行类别的判定(SVM也会矫正候选区)

3)计算细节(损失函数)

(1)损失函数(分类的损失函数还是交叉熵,边框的损失函数)


       (2)在判定图块中需要加入背景,作为一个类别。

   4)缺点

每个候选框中都有CNN需要训练,需要耗费大量算力。R-CNN中的CNN在训练时只训练一图片吗?在训练其他图片时候选框出现变化,是不是就需要加入2000个新的CNN并训练。

多个候选区域对应的图像需要预先提取,占用较大的磁盘空间(产生候选区,操作耗时比较长);针对传统CNN需要固定尺寸的输入图像,crop/warp(归一化)产生物体截断或拉伸,会导致输入CNN的信息丢失,即特征产生损失;每一个ProposalRegion都需要进入CNN网络计算,上千个Region存在大量的范围重叠,重复的特征提取带来巨大的计算浪费。(每一个proposal均需要单独进行特征提取,重复计算量大)

三、问题讲解

问题1:为什么反卷积称为转置卷积?

 

问题2:针对目标检测和定位问题,为什么使用网络同时对两个任务进行训练而不是分别训练两个任务,再固定参数训练下个任务(类似迁移学习)?

在一般情况下,对整个系统进行联合调试会有较好的效果,因为有可能会出现特征的误匹配,从而更好的进行梯度的更新。在实际应用中更常见的做法是先对每个任务进行训练直至收敛,再进行联合调试。

 

问题3:姿态估计架构?

 

问题4:神经网络在完成回归任务时,与分类任务有何不同?

1)损失函数变为均方误差,softmax计算得到的是每个类别的出现概率与任务要求明显不符

2)最后一层往往不采用激活函数,直接用线性函数得到最后结果,因为激活函数会将线性加权的结果映到固定范围(不满足回归要求)

 

问题5:图像分割、目标定位、目标检测的标签?

图像分割标签:

目标定位标签:(标签为图像框或重要节点的坐标)

目标检测 标签:(含有两个部分一个是定位标签,类别标签。注:在判定类别时是对图像框进行判断,类别标签是对整个候选框的。与图像分割不同,其标签不是每个像素点的标签。)

 

 

四、作业

1.语义分割的概念,训练数据及label是什么

语义分割是指输入图像,并对图像中的每个像素进行分类.语义分割并不区分同类目标。训练数据集是图片,对于的标签是每个像素点所对应的类别。

2.转置卷积如何实现的

输入乘以卷积核在累加,是卷积操作的反操作。具体见下面例子:只是shape被还原,value是不同的。

公式化:证明其为什么叫转置卷积?

 

3.分类和定位的概念和目标检测有什么区别,它的损失函数是什么

分类:图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来。

定位:对图片中与目标检测不同的是,对于定位,你会提前知道在图像中要寻找的物体的数量。

假设输入图像和分类类标,以及图像分类的真值对应:

  1. softmax损失,计算分类损失;
  2. L2损失,来衡量预测坐标和实际值的不同。

1.faster rcnn思想(大致流程及损失函数)rcnn系列如何一步步进行改进  参考链接1  参考链接2  参考链接3

流程:

 损失函数:要分为RPN的损失和Fast RCNN的损失,计算公式如下,并且两部分损失都包括分类损失(cls loss)和回归损失(bbox regression loss)

 RPN分类损失:RPN网络的产生的anchor只分为前景和背景,前景的标签为1,背景的标签为0。在训练RPN的过程中,会选择256个anchor,256就是公式中的Ncls。由下式知此损失为交叉熵损失。

Fast RCNN分类损失:Fast RCNN是多分类的交叉熵损失(当你训练的类别数>2时,这里假定类别数为5)。在Fast RCNN的训练过程中会选出128个rois,即Ncls = 128,标签的值就是0到4。

回归损失:也可以看成是交叉熵,只不过并没有直接将概率差作为概率,而是引用了R(.)其公式如下:

由下式可知,对于每一个anchor 计算完L部分后还要乘以P*。因此,P*有物体时(positive)为1,没有物体(negative)时为0,意味着只有前景才计算损失,背景不计算损失。

改进过程: 

R-CNN至Fast R-CNN:1.使用ROI Pooling可接受任意尺寸的输入,不需要归一化操作,解决了RCNN的输入大小必须统一的问题。2.不需要对每个候选框都提取特征,采用的映射方式从整张图片的feature map 上获取ROI feature区域,降低计算成本。

Fast R-CNN至Faster R-CNN:利用RPN生成候选区,减少耗时。

三者比较:

2.Yolo/ssd的主要思想    参考链接1   参考链接2  参考链接3(ssd)

它们将物体检测任务当做一个regression问题来处理,使用一个神经网络,直接从一整张图像来预测出bounding box的坐标、box中包含物体的置信度和类别probabilities,由于YOLO的物体检测流程是在一个神经网络里完成的,所以可以end to end来优化物体检测性能。流程如下:1.将图像resize到448 * 448作为神经网络的输入 。2.运行神经网络,得到一些bounding box坐标、box中包含物体的置信度和class probabilities 。3.进行非极大值抑制,筛选Boxes。

注:ssd采用多尺度的特征图。

3.Selective search(参考链接)方法主要作用 及rpn作用   参考链接

Selective search方法主要作用:根据图像的纹理信息,筛选出含有目标的候选框。

rpn作用:RPN,专门用来提取候选框,减少耗时,另一方面RPN可以很容易结合到Fast RCNN中,构成为一个整体。

 

五、面试总结

1.r-cnn、fast-rcnn、faster-rcnn原理及系列改进过程?  参考链接

 

2.yolov1、yolov2、yolov3原理及系列改进过程?

 

3.r-cnn、ssd、yolo对比?(思想,网络结构,损失函数三个方面)

 

 

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值