CV面试题:目标检测、目标分割

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


从R-CNN到Faster R-CNN谈谈物体检测

问题解析

物体检测模型从R-CNN到Faster R-CNN代表着深度学习模型在物体检测领域取得了关键性的突破,与传统的物体检测方法产生了分离,把物体检测带进了深度学习时代。

模型进化流程:

  1. R-CNN
    1. (1) 候选区域选择
    2. (2) CNN特征提取
    3. (3) 分类与边界框回归
  2. Fast R-CNN
    1. 引入ROI Pooling层,输入图片无需缩放
  3. Faster R-CNN
    1. 引入RPN模块生成候选框,CNN取代Selective Search传统提取方法

答案

  1. 先用CNN网络提取特征完成分类和框回归
  1. 再用CNN网络生成目标候选框

目标检测two-stage模型有哪些

问题解析

Two-stage模型先由算法生成一系列样本的候选框(anchor),再通过卷积神经网络进行样本分类,r-cnn 采用传统的ss方法生成anchor,后续的模型采用cnn方法生成anchor。

答案

RCNN-->SPPNet-->Fast RCNN-->Faster RCNN-->RFCN-->DCN-->DCNv2


说一下NMS

问题解析

NMS是一种Post-Procession(后处理)方式,跟算法无关的方式,应用在大多数物体检测的方法里。

NMS把所有候选框的检测结果按照分值从高到底排序,保留最高分数的box, 删除其余值。

答案:NMS用于筛选候选区域


Soft nms为什么可以提升模型效果

问题解析

如图所示,检测算法本来应该输出两个框,但是传统的NMS算法可能会把score较低的绿框过滤掉(如果绿框和红框的IOU大于设定的阈值就会被过滤掉),导致只检测出一个object(一个马)

​​​​​​​答案

弥补NMS方法的不足,提高密集候选区域筛选质量

​​​​​​​问题拓展

说一下nms和soft nms的区别?


口述一下IOU

​​​​​​​问题解析

IOU主要用在模型训练阶段时计算正负样本,以及模型测试阶段帮助NMS筛选候选框

IOU计算:

1.两个区域的重叠程度overlap:侯选区域和标定区域的IoU值

2.通常Correct: 类别正确 且 IoU > 0.5

​​​​​​​答案

  1. IoU 用于计算“预测的边框” 和 “真实的边框” 的交集和并集的比值

问题拓展

  1. 说一下IOU的作用?

roi pooling 实现怎样的映射

​​​​​​​问题解析

在RCNN中,在进行卷积操作之前一般都是先将图片分割与形变到固定尺寸,这会让图像产生形变,或者图像变得过小,使一些特征产生了损失,继而对之后的特征选择产生影响。

Fast RCNN在数据的输入上并不对其有什么限制,而实现这一没有限制的关键所在正是ROI Pooling层。

RoI Pooling层将每个候选区域分为m * n个块。 针对每个块执行最大池操作,使得特征映射上不同大小的候选区域被变换为均匀大小的特征向量

​​​​​​​答案:ROI Pooling层可以把不同大小的候选区域特征映射为固定的维度特征

​​​​​​​问题拓展

  1. 说一下roi pooling的作用?

SPP具体是指什么

​​​​​​​ 问题解析

在SPPNet中引入了一种空间金字塔池化( spatial pyramid pooling,SPP)层,用于移除模型对图片固定尺寸的限制

spp layer会将每一个候选区域分成1x1,2x2,4x4三张子图,对每个子图的每个区域作max pooling。

SPP层放在最后一个卷积层之后。SPP层对特征进行池化,并产生固定长度的输出,这个输出送给全连接层

​​​​​​​答案:SPP具体是指空间金字塔池化层,为全连接层生成固定长度的特征向量

​​​​​​​问题拓展

  1. 说一下SPP的作用?

说一下RPN的作用

​​​​​​​问题解析

RPN网络出现在Faster r-cnn 模型中,用来代替Fast R-CNN中的选择性搜索方法

在每一个滑动窗口的位置,同时预测k个候选框,即4k个坐标值,2k个二分类得分

​​​​​​​答案

RPN本身是一个全卷积网络,通过训练生成高质量的目标候选框

​​​​​​​问题拓展

  1. 说一下RPN?

说一下faster rcnn的损失函数

​​​​​​​问题解析

Faster R-CNN可以简单地看成是rpn+Fast R-CNN的模型,rpn基于二分类的分类Loss和回归loss,fast r-cnn的多类分类和回归Loss,共产生4个损失函数。

分类采用softmax loss,回归采用smooth loss。

​​​​​​​答案:Faster rcnn 共有4个损失函数,rpn的分类和回归Loss,后续物体识别产生的分类和回归loss。

​​​​​​​问题拓展

  1. Faster rcnn的损失函数由哪几部分组成?

Faster rcnn怎么筛选正负anchor

​​​​​​​问题解析

Faster rcnn 在生成目标候选框的过程中,会产生大量的非目标区域候选框,通过计算候选框与标注框的iou,来标定正负候选框,即为筛选正负anchor。

Rpn 正负样本标记:

  1. 正样本:与ground truth(GT)的iou大于0.7的anchor,注意一个GT可能分配正标签给多个anchor
  2. 负样本:与ground truth(GT)的iou小于0.3的anchor,非正非负的anchor对训练目标没有作用
  3. 训练时:正样本 128个,负样本128个,比例 1:1

后续分类的正负样本标记:

  1. 正样本:与ground truth(GT)的iou大于0.5的anchor
  2. 负样本:与ground truth(GT)的iou小于0.5的anchor
  3. 训练时:正样本 32个,负样本96个,比例 1:3

答案:Faster rcnn通过生成的anchor与gt的iou大小,标定正负样本

​​​​​​​问题拓展

Faster rcnn如何解决样本不平衡问题?


为什么使用focal loss

​​​​​​​问题解析

在目标检测过程中,常出现类别不平衡问题,focal loss从损失函数的角度出发,根据置信度动态调整交叉熵loss,当预测正确的置信度增加时,loss的权重系数会逐渐衰减至0,大量容易的例子对loss贡献很低,这样模型训练的loss更关注难例。

以二分类介绍focal loss,二分类的cross entropy (CE)loss,定义如下:

其中y∈{−1,1} 为真实标签,1表示为正例,-1表示为负例,p∈[0,1]为模型预测为正例的概率值,进一步可以定义:

  1. 这样CE就可以简写为:CE(p,y)=CE(pt)=−logpt
  2. 如下图所示,蓝色的曲线表示CE,如果定义pt>0.5 的易分类样本,从曲线可以看到,这部分样本的loss值依然不低,而且这部分例子要占很大比例,加起来后将影响难分类样本的loss,这就是CE loss用于目标检测模型训练所存在的问题

为了解决CE的问题,FL在CE基础上增加一个调节因子(1−pt)^γ,FL定义如下

当pt很小时,调节因子值接近1,loss不受影响,而当pt趋近于1时,调节因子接近0,这样已经能正确分类的样例loss大大降低。此时若一个样本的pt为0.9,其对应的CE loss是FL的100倍,可见FL相比CE可以大大降低简单例子的loss,使模型训练更关注于难例

​​​​​​​答案:Focal loss通过减少易分类样本的权重,使模型在训练时更专注于难分类的样本,提高模型性能。

​​​​​​​问题拓展

Focal loss如何解决样本不平衡问题?

Focal loss为什么可以提升模型效果?


目标检测one-stage模型有哪些

​​​​​​​问题解析

One-stage模型不用单独设计算法产生目标的候选框,直接将目标边框检测转化为回归问题处理,把目标的定位和分类合并为一个问题

​​​​​​​答案

One-stage 模型有yolo系列、ssd系列等

​​​​​​​问题拓展

  1. one-stage模型有什么特点?

SSD如何生成目标框

​​​​​​​问题解析

SSD在多尺度的feature map上预设anchor。

在base network之后加了几层卷积,这些卷积层会逐渐减小feature map的size,然后在不同size的feature map上进行预设anchor

最终anchor的数量为:

​​​​​​​答案:SSD在基础网络之后的多尺度的feature map上每个位置预设anchor

​​​​​​​问题拓展

ssd生成目标框有哪些特点?


Yolo v1如何生成目标框

​​​​​​​问题解析

YOLO检测网络包括24个卷积层和2个全连接层,最后一层用来预测目标的位置和类别概率。

生成目标框:

YOLO将输入图像分成SxS个格子,每个格子负责检测‘落入’该格子的物体。若某个物体的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。如下图所示,图中物体狗的中心点(红色原点)落入第5行、第2列的格子内,所以这个格子负责预测图像中的物体狗

anchor数量:7*7*2=98

​​​​​​​答案:yolo将输入图片分成S*S个格子,每个格子生成B个bounding box,并且S*S和网络最后一层的size一致。

​​​​​​​问题拓展

yolo生成目标框有哪些特点?


说几个语义分割模型

​​​​​​​问题解析

使用全卷积神经网络对自然图像进行端到端分割,语义分割才有了重大突破,一般语义分割模型是指加入CNN结构的模型。

​​​​​​​答案

语义分割模型有FCN,PSPNet,SegNet,U-Net, DeepLab系列,Mask-RCNN等模型

​​​​​​​问题拓展

  1. 说一下语义分割模型的发展状况?

说一下DeepLab v1 v2 v3的区别

​​​​​​​问题解析

DeepLab v1是结合了深度卷积神经网络(DCNNs)和概率图模型(DenseCRFs)的方法,采用空洞卷积扩展感受野,获取更多的上下文信息。

Deeplab v2 采用ASPP ( atrous spatial pyramid pooling) 多尺度获得更好的分割效果,合并深度卷积网络和概率图模型方法,增强对物体边界的定位,基础层由VGG16转为ResNet。

Deeplab v3 改进了ASPP,由不同采样率的空洞卷积和BN层组成,以级联或并行的方式布局模块,去除了条件随机场CRF。

​​​​​​​答案

  1. Deeplab v1:空洞卷积+crf
  2. Deeplab v2:aspp多尺度融合
  3. Deeplab v3:完善空间金字塔池化模块

问题拓展

  1. 说一下deeplab系列模型改进方法?

介绍一下Unet

​​​​​​​问题解析

u-net由收缩路径(contracting path)和扩张路径(expanding path)组成。

收缩路径用于获取上下文信息(context),扩张路径用于精确的定位(localization),且两条路径相互对称。

​​​​​​​答案

  1. U-net通过下采样+上采样完成特征编码与解码
  2. U-net 在channel维度进行多尺度特征融合

问题拓展

  1. U-net如何实现语义分割?

  • 11
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

あずにゃん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值