detection基本知识介绍(一)---模型架构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了detection基本知识介绍(一)---模型架构相关的知识,希望对你有一定的参考价值。

参考技术A 如何从图像中解析出可供计算机理解的信息,是机器视觉的中心问题。深度学习模型由于其强大的表示能力,加之数据量的积累和计算力的进步,成为机器视觉的热点研究方向。

那么,如何理解一张图片?根据后续任务的需要,有三个主要的层次。

一是分类(Classification),即是将图像结构化为某一类别的信息,用事先确定好的类别(string)或实例ID来描述图片。这一任务是最简单、最基础的图像理解任务,也是深度学习模型最先取得突破和实现大规模应用的任务。其中,ImageNet是最权威的评测集,每年的ILSVRC催生了大量的优秀深度网络结构,为其他任务提供了基础。在应用领域,人脸、场景的识别等都可以归为分类任务。

二是检测(Detection)。分类任务关心整体,给出的是整张图片的内容描述,而检测则关注特定的物体目标,要求同时获得这一目标的类别信息和位置信息。相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分离出感兴趣的目标,并确定这一目标的描述(类别和位置),因而,检测模型的输出是一个列表,列表的每一项使用一个数据组给出检出目标的类别和位置(常用矩形检测框的坐标表示)。

三是分割(Segmentation)。分割包括语义分割(semantic segmentation)和实例分割(instance segmentation),前者是对前背景分离的拓展,要求分离开具有不同语义的图像部分,而后者是检测任务的拓展,要求描述出目标的轮廓(相比检测框更为精细)。分割是对图像的像素级描述,它赋予每个像素类别(实例)意义,适用于理解要求较高的场景,如无人驾驶中对道路和非道路的分割。

两阶段模型因其对图片的两阶段处理得名,也称为基于区域(Region-based)的方法,我们选取R-CNN系列工作作为这一类型的代表。

本文的两大贡献:1)CNN可用于基于区域的定位和分割物体;2)监督训练样本数紧缺时,在额外的数据上预训练的模型经过fine-tuning可以取得很好的效果。第一个贡献影响了之后几乎所有2-stage方法,而第二个贡献中用分类任务(Imagenet)中训练好的模型作为基网络,在检测问题上fine-tuning的做法也在之后的工作中一直沿用。

传统的计算机视觉方法常用精心设计的手工特征(如SIFT, HOG)描述图像,而深度学习的方法则倡导习得特征,从图像分类任务的经验来看,CNN网络自动习得的特征取得的效果已经超出了手工设计的特征。本篇在局部区域应用卷积网络,以发挥卷积网络学习高质量特征的能力。

R-CNN将检测抽象为两个过程,一是基于图片提出若干可能包含物体的区域(即图片的局部裁剪,被称为Region Proposal),文中使用的是Selective Search算法;二是在提出的这些区域上运行当时表现最好的分类网络(AlexNet),得到每个区域内物体的类别。

另外,文章中的两个做法值得注意。

一是数据的准备。输入CNN前,我们需要根据Ground Truth对提出的Region Proposal进行标记,这里使用的指标是IoU(Intersection over Union,交并比)。IoU计算了两个区域之交的面积跟它们之并的比,描述了两个区域的重合程度。

文章中特别提到,IoU阈值的选择对结果影响显著,这里要谈两个threshold,一个用来识别正样本(如跟ground truth的IoU大于0.5),另一个用来标记负样本(即背景类,如IoU小于0.1),而介于两者之间的则为难例(Hard Negatives),若标为正类,则包含了过多的背景信息,反之又包含了要检测物体的特征,因而这些Proposal便被忽略掉。

另一点是位置坐标的回归(Bounding-Box Regression),这一过程是Region Proposal向Ground Truth调整,实现时加入了log/exp变换来使损失保持在合理的量级上,可以看做一种标准化(Normalization)操作。

R-CNN的想法直接明了,即将检测任务转化为区域上的分类任务,是深度学习方法在检测任务上的试水。模型本身存在的问题也很多,如需要训练三个不同的模型(proposal, classification, regression)、重复计算过多导致的性能问题等。尽管如此,这篇论文的很多做法仍然广泛地影响着检测任务上的深度模型革命,后续的很多工作也都是针对改进这一工作而展开,此篇可以称得上"The First Paper"。

文章指出R-CNN耗时的原因是CNN是在每一个Proposal上单独进行的,没有共享计算,便提出将基础网络在图片整体上运行完毕后,再传入R-CNN子网络,共享了大部分计算,故有Fast之名。

上图是Fast R-CNN的架构。图片经过feature extractor得到feature map, 同时在原图上运行Selective Search算法并将RoI(Region of Interset,实为坐标组,可与Region Proposal混用)映射到到feature map上,再对每个RoI进行RoI Pooling操作便得到等长的feature vector,将这些得到的feature vector进行正负样本的整理(保持一定的正负样本比例),分batch传入并行的R-CNN子网络,同时进行分类和回归,并将两者的损失统一起来。

文章最后的讨论也有一定的借鉴意义:

Fast R-CNN的这一结构正是检测任务主流2-stage方法所采用的元结构的雏形。文章将Proposal, Feature Extractor, Object Classification&Localization统一在一个整体的结构中,并通过共享卷积计算提高特征利用效率,是最有贡献的地方。

Faster R-CNN是2-stage方法的奠基性工作,提出的RPN网络取代Selective Search算法使得检测任务可以由神经网络端到端地完成。粗略的讲,Faster R-CNN = RPN + Fast R-CNN,跟RCNN共享卷积计算的特性使得RPN引入的计算量很小,使得Faster R-CNN可以在单个GPU上以5fps的速度运行,而在精度方面达到SOTA(State of the Art,当前最佳)。

本文的主要贡献是提出Regional Proposal Networks,替代之前的SS算法。RPN网络将Proposal这一任务建模为二分类(是否为物体)的问题。

第一步是在一个滑动窗口上生成不同大小和长宽比例的anchor box(如上图右边部分),取定IoU的阈值,按Ground Truth标定这些anchor box的正负。于是,传入RPN网络的样本数据被整理为anchor box(坐标)和每个anchor box是否有物体(二分类标签)。RPN网络将每个样本映射为一个概率值和四个坐标值,概率值反应这个anchor box有物体的概率,四个坐标值用于回归定义物体的位置。最后将二分类和坐标回归的损失统一起来,作为RPN网络的目标训练。

由RPN得到Region Proposal在根据概率值筛选后经过类似的标记过程,被传入R-CNN子网络,进行多分类和坐标回归,同样用多任务损失将二者的损失联合。
Faster R-CNN的成功之处在于用RPN网络完成了检测任务的"深度化"。使用滑动窗口生成anchor box的思想也在后来的工作中越来越多地被采用(YOLO v2等)。这项工作奠定了"RPN+RCNN"的两阶段方法元结构,影响了大部分后续工作。

单阶段模型没有中间的区域检出过程,直接从图片获得预测结果,也被成为Region-free方法。

YOLO是单阶段方法的开山之作。它将检测任务表述成一个统一的、端到端的回归问题,并且以只处理一次图片同时得到位置和分类而得名。
YOLO的主要优点:

1.准备数据:将图片缩放,划分为等分的网格,每个网格按跟Ground Truth的IoU分配到所要预测的样本。

2.卷积网络:由GoogLeNet更改而来,每个网格对每个类别预测一个条件概率值,并在网格基础上生成B个box,每个box预测五个回归值,四个表征位置,第五个表征这个box含有物体(注意不是某一类物体)的概率和位置的准确程度(由IoU表示)。测试时,分数如下计算:

等式左边第一项由网格预测,后两项由每个box预测,以条件概率的方式得到每个box含有不同类别物体的分数。 因而,卷积网络共输出的预测值个数为S×S×(B×5+C),其中S为网格数,B为每个网格生成box个数,C为类别数。

3.后处理:使用NMS(Non-Maximum Suppression,非极大抑制)过滤得到最后的预测框

损失函数被分为三部分:坐标误差、物体误差、类别误差。为了平衡类别不均衡和大小物体等带来的影响,损失函数中添加了权重并将长宽取根号。

YOLO提出了单阶段的新思路,相比两阶段方法,其速度优势明显,实时的特性令人印象深刻。但YOLO本身也存在一些问题,如划分网格较为粗糙,每个网格生成的box个数等限制了对小尺度物体和相近物体的检测。

SSD相比YOLO有以下突出的特点:

SSD是单阶段模型早期的集大成者,达到跟接近两阶段模型精度的同时,拥有比两阶段模型快一个数量级的速度。后续的单阶段模型工作大多基于SSD改进展开。

最后,我们对检测模型的基本特征做一个简单的归纳。

检测模型整体上由基础网络(Backbone Network)和检测头部(Detection Head)构成。前者作为特征提取器,给出图像不同大小、不同抽象层次的表示;后者则依据这些表示和监督信息学习类别和位置关联。检测头部负责的类别预测和位置回归两个任务常常是并行进行的,构成多任务的损失进行联合训练。

另一方面,单阶段模型只有一次类别预测和位置回归,卷积运算的共享程度更高,拥有更快的速度和更小的内存占用。读者将会在接下来的文章中看到,两种类型的模型也在互相吸收彼此的优点,这也使得两者的界限更为模糊。

轻舞飞扬 LTE基本架构

这篇文章主要介绍LTE的最基础的架构,包括LTE网络的构成,每一个网络实体的作用以及LTE网络协议栈,最后还包括对一个LTE数据流的模型的说明。

LTE网络参考模型

技术分享图片
这是一张非常有名的LTE架构图,从图中可以看出,整个网络构架被分为了四个部分,包括由中间两个框框起来的E-UTRAN部分和EPC部分,还有位于两边的UE和PDN两部分。
在日常生活中,UE就可以看作是我们的手机终端,而PDN可以看作是网络上的服务器,E-UTRAN可以看作是遍布城市的各个基站(可以是大的铁塔基站,也可以是室内悬挂的只有路由器大小的小基站),而EPC可以看作是运营商(中国移动/中国联通/中国电信)的核心网服务器,核心网包括很多服务器,有处理信令的,有处理数据的,还有处理计费策略的等等。
下面详细地介绍每一个组件的名称与作用

UE

全称是User Equipment,用户设备,就是指用户的手机,或者是其他可以利用LTE上网的设备。

eNB

是eNodeB的简写,它为用户提供空中接口(air interface),用户设备可以通过无线连接到eNB,也就是我们常说的基站,然后基站再通过有线连接到运营商的核心网。在这里注意,我们所说的无线通信,仅仅只是手机和基站这一段是无线的,其他部分例如基站与核心网的连接,基站与基站之间互相的连接,核心网中各设备的连接全部都是有线连接的。一台基站(eNB)要接受很多台UE的接入,所以eNB要负责管理UE,包括资源分配,调度,管理接入策略等等。

MME

是Mobility Management Entity的缩写,是核心网中最重要的实体之一,提供以下的功能:

  • NAS 信令传输
  • 用户鉴权与漫游管理(S6a)
  • 移动性管理
  • EPS承载管理

在这里所述的功能中,NAS信令指的是三层信令,包含EMM, ESM 和NAS 安全。然后移动性管理的话主要有寻呼,TAI管理和切换。承载的话主要是EPS 承载(bearer)的建立,修改,销毁等。

S-GW

是Serving Gateway 的缩写,主要负责切换中数据业务的传输。

P-GW

是PDN Gateway的缩写,其中PDN是Packet Data Network 的缩写,通俗地讲,可以理解为互联网,这是整个LTE架构与互联网的接口处,所以UE如果想访问互联网就必须途径P-GW实体,从另外一方面说,如果想通过P-GW而访问互联网的话,必须要有IP地址,所以P-GW负责了UE的IP地址的分配工作,同时提供IP路由和转发的功能。此外,为了使互联网的各种业务能够分配给不同的承载,P-GW提供针对每一个SDF和每一个用户的包过滤功能。(也就是说在P-GW处,进出的每一个包属于哪个级别的SDF和哪一个用户都已经被匹配好了。这里的SDF是服务数据流Service Data Flow的缩写,意思就是P-GW能区分每一个用户的不同服务的数据包,从而映射到不同的承载上去。以后会有关于SDF的更详细的说明)。此外,P-GW还有其他的一些功能,比如根据用户和服务进行不同的计费和不同的策略,这部分对于每个运营商都会有差异,在此不做多的赘述。

HSS

是Home Subscriber Server的缩写,归属用户服务器,这是存在与核心网中的一个数据库服务器,里面存放着所有属于该核心网的用户的数据信息。当用户连接到MME的时候,用户提交的资料会和HSS数据服务器中的资料进行比对来进行鉴权。

PCRF

是Policy and Charging Rules Function的缩写,策略与计费规则,它会根据不同的服务制定不同的PCC计费策略。

SPR

是Subscriber Profile Repository的缩写,用户档案库。这个实体为PCRF提供用户的信息,然后PCRF根据其提供的信息来指定相应的规则。(这个我也不是很明白其具体内容)

OCS

是Online Charging System 的缩写,在线计费系统,顾名思义,应该是个用户使用服务的计费的系统

OFCS

是Offline Charging System 的缩写,离线计费系统,对计费的记录进行保存。

上面介绍完了图中所有的实体的名称以及作用,其实真实的核心网中远远不止这些实体,还有很多,鉴于我也不是很懂,在此就不多说了。

然后下面针对图中主要的几个接口说说

LTE-Uu

LTE-Uu接口是位于终端与基站之间的空中接口。在这中间,终端会跟基站建立信令连接与数据连接,信令连接叫做RRC Connection,相应的信令在SRB上进行传输,(这里,SRB有三类,分别是SRB0, SRB1和SRB2,SRB可以理解为是传输信令的管道),而数据的连接是逻辑信道,相关的数据在DRB上传输。这两个连接是终端与网络进行通信所必不可少的。

X2(控制面)

X2是两个基站之间的接口,利用X2接口,基站间可以实现SON功能(Self Organizing Network),比如PCI的冲突检测等。

S1(控制面)

S1是基站与MME之间的接口,相关NAS信令的传输都必须建立在S1连接建立的基础上。

X2(用户面)

X2用户面的接口是建立在GTP-U协议的基础上,连接两个基站,传输基站间的数据。(X2 handover等)

S1(用户面)

S1用户面的接口是建立在GTP-U协议的基础上,连接基站与MME,传输基站与MME之间的数据。(S1 handover,上网的数据流等)

剩下的接口在我个人的工作中没有接触,不是很了解,这里就不多说了。

LTE协议栈

说协议栈,就得分开从两方面来讲,分别是用户面与控制面。
先从用户面开始说起

技术分享图片

上图是用户面的协议栈,下面详细地介绍每一个层(主要功能)

LTE-Uu 接口

PDCP

PDCP协议针对传输地数据包执行以下的操作:

  • 数据包头压缩(ROHC)
  • AS层的安全(包括加密与完整性检验)
  • 包的重排序和重传

RLC

RLC层针对传输地数据包执行以下的操作:

  • 在发送端,提供数据包的分段与串联
  • 在接收端,提供透明,确认模式与非确认模式三种模式
  • RLC层也执行对RLC PDU的重排序与重传

MAC

MAC层对从高层传来的MAC PDU和从底层传来的包做以下的处理:

  • 在物理层和RLC层之间提供逻辑信道的连接
  • 逻辑信道的复用与解复用
  • 对逻辑信道根据QoS来进行调度和分配优先级

S1-U/S5/X2 接口

GTP-U

GTP-U协议主要是用来转发用户的IP数据包,GTP-U协议还有个特点,只要GTP-U连接建立后传输数据,那么在数据结束之后总会有END Marker来标志着数据流的结束。

下面是控制面的协议栈

技术分享图片

上面是关于控制面的总图,包含了LTE-Uu,S1-MME,S11等接口的,由于本人业务限制,对其他的不了解,就只简单地介绍下面几个

LTE-Uu接口

NAS

提供移动性管理和承载管理,比如说eNB的信息的更新,或者MME的配置信息的更新会触发Configuration Update信令的下发或者上载,然后E-RAB的建立,修改,销毁都是属于NAS管理的范围之内。

RRC

RRC协议支持传输NAS信令, 同时也提供对于无线资源的管理

  • 广播系统消息,例如MIB,SIB1,SIB2 ……
  • RRC连接的建立,重建立,重配置和释放
  • 无线承载(RB)的建立,修改与释放。

X2 接口

X2AP

X2AP协议支持无线网(E-UTRAN)中的UE移动性管理和SON功能。比如通过X2AP的数据转发(在X2 Handover的时候的数据转发),SN status的转发(Handover时),或者时eNB之间的资源状态消息交换等。

S1-MME

S1AP

S1AP协议如前所述,是S1 连接建立的时候用来传输信令的协议,该协议负责S1接口的管理,E-RAB的管理,还有NAS信令的传输,以及UE上下文的管理。

一个简单的例子

这里通过一个简单的例子来全盘地看一下LTE系统是怎么样运转地。

首先是从终端到Internet的方向传输,也就是我们通常所说的“上行传输”
技术分享图片

上面这个例子记述了包从UE是怎么一步一步地通过LTE系统传输到Internet的。
首先,UE发出一个包时,包上面会打上UE的地址作为源地址,要去的因特网上的服务器的地址作为目的地址,传送给基站eNB,然后基站给包封装到GTP 隧道里可以传输的GTP包,每个包的源地址会被换成基站的地址,而目的地址则是被换成将要到达的Serving Gateway,然后,每个包也会包含他们所在传输隧道的隧道ID:UL S1-TEID。当包到达Serving Gateway时,源目地址被分别换成了Serving Gateway和P-GW的地址,同时,传输的隧道也由S1 GTP 隧道变成了S5 GTP隧道,当然隧道ID也会随之变化。最后,当包到达P-GW后,这时P-GW讲GTP解开,查看其真正的目的地址,然后将包送到互联网上。这样子就完成了一个数据包从终端的互联网的上传。

下面看一下下行的传输

技术分享图片

下行的情况与上行的情况正好相反,经过P-GW,S-GW,eNB时会对数据包打包,在eNB处会解封装,然后直接把数据包传输给UE。

<本文中部分内容与图片来自Netmanias 文档,特此声明!>







以上是关于detection基本知识介绍(一)---模型架构的主要内容,如果未能解决你的问题,请参考以下文章

Single Shot Multibox Detection (SSD)实战(上)

098 网络基础知识

网络安全协议

RocketMQ的消息架构模型以及核心概念

斯坦福机器学习视频笔记 Week9 异常检测和高斯混合模型 Anomaly Detection

轻舞飞扬 LTE基本架构