联合目标检测和语义分割

目标检测

目标检测是一种与计算机视觉和图像处理相关的计算机技术,用于检测数字图像和视频中特定类别的语义对象(例如人,建筑物或汽车)的实例。然而现实中物体的尺寸、姿态、位置都有很大的差异,甚至还可能出现重叠现象,这使得目标检测的难度变得很大。

图1:目标检测示意图https://en.wikipedia.org/wiki/Object_detection

什么是目标检测

目标检测的任务是找出感兴趣的目标,确定他们的类别和位置,这也是计算机视觉的核心问题之一。计算机视觉中关于图像识别有四大类任务:分类(Classification)、定位(Location)、检测(Detection)、分割(Segmentation)。

目标检测算法分类及演变

目标检测领域的深度学习方法主要分为两类:Two Stage算法和One Stage算法。

Two Stage

Two Stage算法先进行区域生成,我们将该区域称为Region Proposal(RP),再通过卷积神经网络进行样本分类。基本任务流程为:特征提取-生成RP-分类/定位回归。常见的two stage目标检测算法有:R-CNN、SPPNet、Fast R-CNN、Faster R-CNN、R-FCN。CNN网络已经可以完成图像识别分类的任务,因此我们主要讨论如何解决定位问题。
思路一:在原图片上添加位置参数(x, y, w, h),根据建立的模型同样预测一个(x, y, w, h)标签,将其看成一个回归问题进行优化。这里我们考虑两个loss函数:一个是Classification的loss函数,一般使用交叉熵;另一个是regression的loss函数,这里采用欧几里得距离。Regression的部分有两种处理方法,加在最后一个卷积层后面(如VGG),或加在最后一个全连接层后面(如R-CNN)。
思路二:我们选取不同大小的框,并让框出现在不同的位置,计算该框框住这个物体的真实标签的概率,我们认为概率最高的框得分最高,也是最可能框柱目标的框。这里引入滑窗法(Sliding Window),对输入图像进行不同窗口大小的从左往右、从上到下的滑动。每次滑动都将前窗口截取的图片输入CNN网络进行分类,若该窗口得分较高,那么我们认为该窗口检测到了物体。完成检测后,我们能够得到不同窗口检测到的物体标记。由于这些窗口的大小、位置存在较高的重复率,因此采用非极大值抑制(Non-Maximum Suppression,NMS)的方法进行筛选,最终获得检测到的物体。
然而滑窗法时间复杂度较高,常用的找出Region Proposal的改进算法有:Edge Boxes和Selective Search。Selective Search 算法应用了层次聚类的思想,通过将集合中相似度最高的两个簇合为一个,从而不断的合并归类,最终达到预设的簇的数量。由于R-CNN和Fast R-CNN算法都使用Selective Search产生候选框,下面我们介绍R-CNN算法 。
R-CNN遵循传统目标检测的思路,同样采用提取框,对每个框进行特征提取、图像分类、非极大值抑制四个进行目标检测。只不过在特征提取这一步,将传统的特征(如SIFT、HOG等)换成了深度卷积网络提取的特征。R-CNN框架如图所示

R-CNN框架图https://baike.baidu.com/item/R-CNN/23197553?fr=aladdin
对于输入的图片,R-CNN基于selective search方法生成大约2000个候选区域,然后每个候选区域被调整成固定大小,并送入一个CNN模型中,最终得到一个特征向量。然后这个特征向量被送入一个多类别SVM分类器中,预测出候选区域中所含物体属于每个类的概率。为了提高定位的准确性,R-CNN最后又训练了一个边界框回归模型,通过该模型对框的准确位置进行修正。在R-CNN的进化过程中,SPP-Net 的思想对其贡献很大,Fast R-CNN就采纳了该方法,进而大大节约了计算时间。Spatial Pyramid Pooling的特点有两个:
1、结合空间金字塔方法实现CNNs的对尺度的输入,从而避免了原本的数据预处理导致的数据丢失或几何失真。

SPP-Net调整网络结构原理图https://blog.csdn.net/v1_vivian/article/details/73275259
如图所示,SPP-Net在最后一个卷积层后面,加入了金字塔池化层,使用这种方法,可以让网络输入任意的图片,并生成固定大小的输出。

空间金字塔池化示意图https://blog.csdn.net/v1_vivian/article/details/73275259
其中黑色图片代表卷积后的特征图,我们通过44, 22, 1*1三个网格提取特征,从而得到21中不同的块,在每个块里提取出一个特征,便得到了我们需要提取的21维特征向量。
2、只需要对原图提取一次卷积特征。R-CNN需要将每个候选框调整到统一大小,再分别作为CNN的输入,时间复杂度较高。SPP-Net对这一缺点进行优化,只对原图进行一次卷积得到特征图,然后利用每个候选框的映射作为卷积特征,输入到SPP-layer和之后的层,从而节约了大量的时间。
然而Fast R-CNN在选择候选框时,同样也非常耗时。为了进一步优化,我们可以加入一个提取边缘的神经网络,也就是说找到候选框的工作也交给Region Proposal Network(RPN)完成。使用RPN生成Anchor box,对其进行裁剪过滤后通过softmax判断是否属于物体。同时,使用另一个分支bounding box regression修正anchor box。简单地说,Faster RCNN可以大致看作“区域生成网络+Fast RCNN“的系统,用区域生成网络代替Fast RCNN中的Selective Search方法。

Faster R-CNN示意图https://www.cnblogs.com/zongfa/p/9638289.html

One Stage

One Stage算法不需要生成候选区域,可以直接产生物体的类别概率和位置,也就是说只需要经过单次检测就可以得到最终的结果,因此速度更快。常见的One Stage经典算法有:YOLO、SSD、YOLOv2、YOLOv3、Retina-Net。下面以YOLO 和SSD 为例,简要说明One Stage的特点。

YOLO


YOLO结构示意图You Only Look Once: Unified, Real-Time Object Detection Joseph Redmon∗ , Santosh Divvala∗†, Ross Girshick¶ , Ali Farhadi
YOLO算法的全拼是You Only Look Once,其核心思想就是利用整张图作为网络的输入,直接在输出层回归bounding box的位置和类别。Faster RCNN中也直接用整张图作为输入,但是Faster-RCNN整体还是采用了RCNN中proposal+classifier的思想,只不过是将提取proposal的步骤放在CNN中实现了,而YOLO则采用直接回归的思路。
YOLO的网络结构主要分为三个部分:卷积层、目标检测层、NMS筛选层。其中,卷积层采用了Google inceptionV1网络,进行特征提取,从而提高模型的泛化能力;在目标检测层,将提取出的特征图经过4个卷积层和2个全连接层。YOLO将448448的原图分割成77个网络,每个网络要预测两个四维bounding box坐标、是否包含物体的置信度以及物体属于20类物体中每一类的概率,最终生成7730的输出。置信度计算法方法如下式所示:

置信度=Pr(Object)×IOUpredtruth\text{置信度}=\mathrm{Pr(} \mathrm{Object} )\times \mathrm{IOU}_{\mathrm{pred}}^{\mathrm{truth}} 置信度=Pr(Object)×IOUpredtruth

在测试阶段,每个网络预测的类别信息和bounding box预测的置信度信息相乘,就可以得到具体类别的置信分数:
Pr(Classi∣Object)×Pr(Object)×IOUpredtruth=Pr(Classi)×IOUpredtruth\mathrm{Pr}\left( \,\,\mathrm{Class} _i\mid \,\,\mathrm{Object} \right) \times \mathrm{Pr(} \mathrm{Object} )\times \,\,\mathrm{IOU} _{\mathrm{pred}}^{\mathrm{truth}}=\mathrm{Pr}\left( \,\,\mathrm{Class} _i \right) \times \mathrm{IOU} _{\mathrm{pred}}^{\mathrm{truth}} Pr(ClassiObject)×Pr(Object)×IOUpredtruth=Pr(Classi)×IOUpredtruth

Pr(Classi∣Object)\mathrm{Pr}\left( \,\,\mathrm{Class} _i\mid \,\,\mathrm{Object} \right) Pr(ClassiObject)表示每个网络预测的类别信息。乘积编码了预测结果属于某一类的概率。根据这一分数,我们可以通过设置阈值,过滤掉得分低的boxes,对剩余的进行NMS处理,进而得到最终的检测结果。
YOLO的优缺点非常显著。它通过将目标检测转化为回归问题,大大加快了检测的速度,同时由于网络预测目标窗口时使用的是全局信息,使得假目标的比例大幅降低。但是YOLO算法的准确性不高,对于图像上较小的目标检测效果不好。为进一步物体定位的精准性和召回率,YOLO作者又提出了YOLO9000,提高了训练图像的分辨率,并引入了Faster R-CNN中的achor box思想,输出层使用卷积层替代YOLO的全连接层。YOLO9000在识别种类、精度、速度和定位准确度等方面都得到了极大的提升。

YOLO与其他算法对比图You Only Look Once: Unified, Real-Time Object Detection Joseph Redmon∗ , Santosh Divvala∗†, Ross Girshick¶ , Ali Farhadi

SSD(The Single Shot Detector)

SSD网络结构图Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
SSD至今仍然是目标检测中应用最广泛的算法,其优势主要可分为三点:多尺度、多种宽高比的default box(anchor box)、数据增强。
1、多尺度性:通过SSD网络结构图可以发现,SSD使用了六个不同特征图检测不同尺度的目标。低层预测小目标,高层预测大目标。
2、多种宽高比:在特征图的每个像素点处,生成不同宽高比的default box(anchor box),论文中设置的宽高比为{1,2,3,1/2,1/3}。假设每个像素点有k个default box,需要对每个default box进行分类和回归,其中用于分类的卷积核个数为c×k(c表示类别数),回归的卷积核个数为4×k。这里我们先介绍两个概念:理论感受野和有效感受野。影响某个神经元输出的输入区域就是理论感受野,也就是我们平时说的感受野,但该输入区域的每个像素点对输出的重要性不同,越靠近中心的像素点影响越大,呈高斯分布,也就是说只有中间的一小部分区域对最后的输出有重要的影响,这个中间的一小部分区域就是有效感受野。如下图所示:

理论感受野和有效感受野示意图https://blog.csdn.net/weixin_40300585/article/details/90270715
这样我们就可以得到default box的作用。每一层的default box设置了每一层特征图的有效感受野,然后使用这些default box与ground truth进行匹配来确定特征图上每个像素点实际的有效感受野的label(包含分类label和回归label),分别用于分类和bounding-box回归。

Default box示意图Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
由于default box是SSD的实际训练样本,如果只设置单一宽高比的default box,最多只有一个default box能够被匹配到。这里设置了多种default box,也就是增加了样本数量,这样模型的训练效果会更好,检测精度也会更精确。

语义分割

语意分割是对图像中的每一个像素进行分类,目前广泛应用于医学图像与无人驾驶等。从这几年的论文来看,这一领域主要分为有监督语义分割、无监督语义分割、视频语义分割等。

什么是语义分割

图像分类的任务是把一张图片划分为某个类别,语义分割则是在像素级别上的分类,属于同一类的像素都要被划分为同一类。如下图所示,所有的汽车被划分为一类,行人被划分为一类,背景又根据斑马线、道路、楼房、障碍物划分为多个类别。这也就是我们在无人驾驶领域的关键问题。

语义分割示意图https://blog.csdn.net/weixin_40446557/article/details/85624579

语义分割的方法

一个通用的语义分割体系结构可以被广泛认为是一组编码器网络和解码器网络。编码器通常是一个预先训练的分类网络,比如VGG/Resnet;解码器网络的主要任务是将编码器学习到的识别特征语义映射到像素空间,进而得到密集的分类。下面我们主要讨论三种方法:基于区域的语义分割、全卷积网络语义分割、弱监督语义分割。

基于区域的语义分割

基于区域的语义分割是以直接寻找区域为基础的分割技术。它主要有两种形式:一种是区域生长,从单个像素出发,合并周围的目标像素,进而得到所需要的像素;另一种是从全局出发,逐步切割直到获得所需要的分割区域。
区域生长的初始值是一组代表不同生长区域的种子像素,之后将这些像素周围里符合条件的像素合并到该像素所代表的生长区域中,并且将新添加的像素作为新的种子像素重复上述合并操作,直到找不到符合条件的新像素为止。这一算法需要解决三个主要问题:初始种子像素的选择、加入新像素点的标准、定制生长的规则。
区域分裂合并是区域生长的逆过程。它需要从整个图片出发,不断地分裂得到各个子区域,然后将背景区域合并,得到语音分割的前景目标,进而实现目标的提取。四叉树分解是一种典型的区域分裂合并法。区域分裂合并算法的特点包括:对复杂图像语义分割效果好、算法复杂计算量大、分裂有可能破坏区域边界。
R-CNN是基于区域的语义分割中的代表性工作之一。上文已经对R-CNN进行了简单介绍,我们可以根据其目标检测的结果进行语义分割。R-CNN可以建立在任何CNN基准结构之上,如Alexnet、VGG、Googlenet、Resnet等。对于图像分割任务,R-CNN提取了每个区域的两种特征:全区域特征和前景特征。但是使用R-CNN进行语义分割同样存在一定的缺点:与分段任务不能兼容;包含空间信息不足,无法生成精准边界等。为了解决这些问题,也产生了SDS、Hypercolumns、Mask R-CNN等。

全卷积网络(FCN)语义分割

FCN对图像进行像素级的分类,从而解决了语义级别的图像分割问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类不同,FCN可以接受任意尺度的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样,使其恢复到与原输入图像相同的尺寸,从而可以对每个像素都产生一个预测,同时保留了原始输入图像中的空间信息,最后在上采样的特征图上进行逐像素分类。

FCN网络结构示意图https://blog.csdn.net/qq_36269513/article/details/80420363
其中,虚线上半部分为全卷积网络,蓝色为卷积层、绿色为最大池化层。对于不同尺寸的输入图像,各层数据的尺寸相应变化,深度不变。这部分由深度学习分类问题中经典网络AlexNet 修改而来。只不过,把最后两个全连接层(fc)改成了卷积层,这也和我们的目的是紧密相关的(语义分割输出至少为二维向量)了。下面我们重点看一下FCN采用的三种技术:卷积化(convolutionalization)、上采样(Upsampling)、跳跃结构(Skip Architecture)。

卷积化

通常情况下,分类所使用的网络会在最后连接全连接层。它会将原来的二维矩阵压缩成一维的,最终输出一个标量(分类标签),这也导致其丢失了空间信息。但是在图像语义分割领域,输出是一个分割图,其维度至少是二维的。所以,我们将全连接层换成卷积层,而这就是所谓的卷积化。下面这幅图显示了卷积化的过程,图中显示的是AlexNet的结构。

AlexNet结构示意图https://zhuanlan.zhihu.com/p/22976342

上采样

上采样对应于上图中生成heatmap的过程。在一般的CNN结构中,如AlexNet、VGGNet均是使用池化层来缩小输出图片的尺寸,例如VGG16,五次池化后图片被缩小了32倍。而在ResNet中,某些卷积层也参与到缩小图片尺寸的过程。我们需要得到的是一个与原图像尺寸相同的分割图,因此我们需要对最后一层进行上采样,在Caffe(Convolutional Architecture for Fast Feature Embedding)中也被称为反卷积(Deconvolution)。为了进一步理解反卷积,下面介绍Caffe的卷积操作。
在Caffe中计算卷积分为两个步骤:使用im2col操作将图片转换为矩阵、调用GEMM计算实际的结果。先调用im2col将filters和input转换为对应filter matrix(A)和feature matrix(B),然后再用filter matrix乘以feature matrix的转置,就得到了C矩阵,亦即输出矩阵,再将C矩阵通过col2im转换为对应的feature map,这就是Caffe中完整的卷积的前向传播过程。反卷积就是相对于卷积在神经网络结构的正向和反向传播中做相反的运算。所以所谓的转置卷积其实就是正向时左乘ATA^TAT

跳跃结构

根据前面两种结构其实已经可以得到结果了。但是直接将全卷积后的结果上采样得到的结果是非常粗糙的。因此引入跳跃结构这一个概念主要可以优化输出。主要思路就是将不同的池化层的结果进行上采样,然后结合这些结果综合分析来优化输出。具体结构图如下图所示:

跳跃结构示意图https://zhuanlan.zhihu.com/p/22976342
不同结构得到的结果如下图所示:

不同结构结果对比图https://zhuanlan.zhihu.com/p/22976342

弱监督语义分割

弱监督问题是指为了实现某个计算机视觉任务,采用了比该任务更弱的一种人工标注作为监督信息。通常情况下,这种弱监督的标记更容易获取,可以省去大量时间。例如:对于目标检测来说,image-level的标签相比物体的bounding box是一种弱监督的标注;对于语义分割来说,image-level的标签和物体的bounding box相比pixel-level的标签则是一种弱监督的标注。这种弱监督学习的关键问题是如何构建image-level的标签语义和像素点的关联,推断出图像所对应的segmentation mask,再利用FCN学习分割模型。

联合目标检测和语义分割

联合目标检测和语义分割 的目标是同时进行目标检测和语义分割。这表明同时进行两个任务可能比单独进行一个任务效果更好。这里我们引入UberNet 进行详细说明。

UberNet

对于不同任务下网络的结合,主要需要解决的问题有两个:不同数据集的训练以及内存大小的限制。为了解决第一个问题UberNet诞生了。

UberNet网络示意图R. B. Girshick, J. Donahue, T. Darrell, and J. Malik, “ Rich featurehierarchies for accurate object detection and semantic segmentation,” 2014 IEEE Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2013.
如图所示,左侧是一个连续的降采样操作得到的影响金字塔,金字塔中的每一个图像都连接着一个CNN网络。其中,C表示VGG,结合B批处理的正则化操作,进而得到特征,最终将所有的回应E结合,完成task-special的操作。
为了解决内存问题,Vanilla backpropagation方法出现了。如下图所示,黑色箭头代表memory查找操作,黄色箭头代表储存操作,蓝色箭头代表前后向传播。

单个任务Vanilla backpropagation方法示意图R. B. Girshick, J. Donahue, T. Darrell, and J. Malik, “ Rich featurehierarchies for accurate object detection and semantic segmentation,” 2014 IEEE Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2013.
下图为单个任务下的low-memory backpropagation方法示意图。首先储存memory中的激活值的子集,然后再小网络上提供的anchor points的运行的反向传播算法,进而减少在内存中的激活与梯度信息。

单个任务low-memory backpropagation方法示意图R. B. Girshick, J. Donahue, T. Darrell, and J. Malik, “ Rich featurehierarchies for accurate object detection and semantic segmentation,” 2014 IEEE Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2013.
应该上述思想,对多任务下的Vanilla backpropagation进行改进。



多任务Vanilla backpropagation方法示意图R. B. Girshick, J. Donahue, T. Darrell, and J. Malik, “ Rich featurehierarchies for accurate object detection and semantic segmentation,” 2014 IEEE Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2013.

Encoder-decoder Neural Network Model

概述

模型架构示意图Peng J, Nan Z, Xu L, et al. A Deep Model for Joint Object Detection and Semantic Segmentation in Traffic Scenes[C]//2020 International Joint Conference on Neural Networks (IJCNN). IEEE, 2020: 1-8.
图中显示了该模型的总体架构。该模型主要有三个模块组成:编码器-解码器模块、目标检测模块、语义分割模块。其中,编码解码模块由七个编码层和七个解码层组成,每个解码层通过“Skip Connection”网络与相应的编码层相连。编码器解码器模块对输入的图像进行处理,在编码器层和解码器层生成七种不同大小的特征图像,用于目标检测和语义分割。在目标检测模块中,通过对七个特征图上生成的候选目标进行分类来进行目标检测。在语义分割模块中,首先对特征映射进行上采样,使其大小相同,然后拼接在一起实现分割。接下来,我们将详细介绍编码器-解码器模块、检测模块、分割模块和损失函数。

编码器-解码器模块

原文使用ResNet50作为编码器网络的主干。ResNet50由五个块组成,每个块输出一个特征图。为了节省GPU内存使用,使用ResNet50的最后四个特性映射,并将它们表示为E1、E2、E3、E4。在ResNet50后添加了三个新的残差层,生成了三个特征图,分别表示为E5、E6、E7。特征图的大小逐渐减半。如果输入图像的分辨率为H×W,那么E7的分辨率为H/256×W/256。
编码器的特征映射包含了相对低级的语义信息。为了提高特征图的语义信息,采用了跳连接机制。Squeeze-and-Excitation(SE)模块可以量化每个特征通道的重要性,从而增加有效特征的权重。在Skip Connection模块中加入SE模块,有利于提高解码器特征映射的表示能力。为了更好地理解跳跃连接机制,我们使用E7和E6生成D6。首先对E7进行上采样并通过SE模块将其与E6连接起来,然后对连接后的特征映射进行一系列卷积处理,生成D6。
通过跳转连接可以生成具有丰富语义信息的不同大小的解码器特征图,这些特征图分别表示为D6、D5、D4、D3、D2和D1,利用D6的全局平均池,我们可以得到D7。解码器特征映射的大小逐渐翻倍。然后就可以利用七个解码器特征映射同时进行目标检测和语义分割。

目标检测

为了完成目标检测,首先我们设置了初始化机制PriorBox生成候选目标(采用了分类和回归的方法)。由于交通场景具有高度的复杂性和动态性,物体也具有多样性,这里PriorBox的目标是生成具有不同纵横比的候选目标。PriorBox针对不同特征的规模可以按照下式计算:
Sk=Smin⁡+Smax⁡−Smin⁡m−2(k−2),k∈[2,m](k>=2)Sk=Ssmallest(k=1)S_k=S_{\min}+\frac{S_{\max}-S_{\min}}{m-2}(k-2),k\in [2,m]\text{(}k>=2\text{)} \\ S_k=S_{\mathrm{smallest}}\text{(}k=1\text{)} Sk=Smin+m2SmaxSmin(k2),k[2,m]k>=2Sk=Ssmallestk=1

其中m是特征映射的数量,k是特征映射的索引。这里我们定义m=7,Ssmallest=0.04,Smin=0.7,Smax=0.95m=7,S_{smallest}=0.04,S_{min}=0.7,S_{max}=0.95m=7Ssmallest=0.04Smin=0.7Smax=0.95
本模型收到了SSD 的启发,在前五个解码器层(D3,D4,D5…D7)为每个特征映射图位置设置了七个不同比例的PriorBox,纵横比分别为α={1,2,3,4,1/2,1/3,1/4}。在解码器的最后两层(D1,D2)设置了五个不同比例的PriorBox,纵横比分别为α={1,2,3,1/2,1/3}。在所有层中对于α为1的情况,额外引入一种PriorBox,规模为√(S_k S_(k+1) )。对于每一个PriorBox,宽度为w=S_k √α,高度为h=S_k/ √α。如果输入图像的分辨率为300×300,七个解码层的特征映射规模为S1=0.04,S2=0.1,S3=0.27,S4=0.44,S5=0.61,S6=0.78,S7=0.95{S_1=0.04,S_2=0.1,S_3=0.27,S_4=0.44,S_5=0.61,S_6=0.78,S_7=0.95}S1=0.04,S2=0.1,S3=0.27,S4=0.44,S5=0.61,S6=0.78,S7=0.95
如上文所示,这一PriorBox初始化机制可以生成密集的具有特定长宽比的候选对象,有利于复杂动态交通场景中的目标检测。

语义分割

研究证明,多尺度特征融合在语义分割中是非常有用的。其主要原因是浅层特征图往往隐含局部语义信息,深层特征图往往隐含全局语义信息。因此,为了得到全局和局部的语义信息,我们将每个解码层的特征映射上采样到相同的分辨率,然后将它们连接在一起形成最终的特征映射。为了在同一特征图中提取出丰富的语义信息,我们在最后一个特征图中采用了MSAC机制。Multi-Scale Atrous Convolution(MSAC)模块能够获得具有不同感受野的信息,能够有效地捕捉信息特征。如上文模型架构示意图所示,MSAC网络主要由5个分支组成,包括1×1卷积分支、3个并行3×3萎缩卷积分支和一个全局平均池分支。

损失函数

对于目标检测,这里使用了与SSD、Fast R-CNN相似的损失函数。对于语义分割,损失函数是像素的预测类分布和目标类分布之间的交叉熵。我们使用解码器的每个特征映射分别解析语义像素的标签。我们对每一个分割上采样到与真实数据相同的分辨率,用它们来计算每一个语义分割的损失,并将这些损失累加起来。因此这里定义多任务损失函数为:
L=Ldet+LsegLdet=Lcls+LregLseg=Linfer−fm+Ldecoder−fms\begin{array}{c} L=L_{det}+L_{seg}\\ L_{det}=L_{cls}+L_{reg}\\ L_{seg}=L_{infer_-fm}+L_{decoder_-fms}\\ \end{array} L=Ldet+LsegLdet=Lcls+LregLseg=Linferfm+Ldecoderfms

其中,LclsL_{cls}Lcls用于对候选对象进行分类,LregL_{reg}Lreg用于细化相应的PriorBox,Linfer_fmL_{infer\_fm}Linfer_fm表示融合后的特征映射与真实数据之间的交叉熵,Ldecoder_fmsL_{decoder\_fms}Ldecoder_fms表示每个解码器特征映射与真实数据之间的交叉熵。

参考文献

Selective Search for Object Recognition[J]. International Journal of Computer Vision, 2013
Rich feature hierarchies for accurate object detection and semantic segmentation
Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition, 2015
You Only Look Once: Unified, Real-Time Object Detection Joseph Redmon∗ , Santosh Divvala∗†, Ross Girshick¶ , Ali Farhadi
Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012
S. Fidler, R. Mottaghi, A. L. Yuille, and R. Urtasun, “Bottom-up segmentation for top-down detection,” 2013 IEEE Conference on Computer Vision and Pattern Recognition, pp. 3294–3301, 2013.
R. B. Girshick, J. Donahue, T. Darrell, and J. Malik, “ Rich featurehierarchies for accurate object detection and semantic segmentation,” 2014 IEEE Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2013.
W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. E. Reed, C.-Y. Fu, and A. C. Berg, “Ssd: Single shot multibox detector,” in ECCV, 2016.

联合目标检测和语义分割——学习笔记相关推荐

  1. 【NIPS2018】实时联合目标检测与语义分割网络

    本文发表于第32届神经信息处理系统会议(NIPS 2018),是法国汽车零部件供应商法雷奥集团(Valeo)研究提出的一种用于自动驾驶领域的多任务神经网络,可同时执行目标检测与语义分割任务. 代码开源 ...

  2. 2021-01-24过去十年十大AI研究热点,分别为深度神经网络、特征抽取、图像分类、目标检测、语义分割、表示学习、生成对抗网络、语义网络、协同过滤和机器翻译。

    专利申请量全球第一!清华人工智能发展报告:国内215所高校成立相关本科专业 发布时间:01-2415:20万象大会年度获奖创作者,东方财富网官方帐号 1月20日,清华大学人工智能研究院.清华-中国工程 ...

  3. FlyAI小课堂:深度学习论文翻译解析(3):丰富的特征层次结构,可实现准确的目标检测和语义分割

    论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...

  4. 自动驾驶深度多模态目标检测和语义分割:数据集、方法和挑战

    自动驾驶深度多模态目标检测和语义分割:数据集.方法和挑战 原文地址:https://arxiv.org/pdf/1902.07830.pdf Deep Multi-Modal Object Detec ...

  5. 图像分类、目标检测、语义分割、实例分割和全景分割的区别

    1.Image Classification(图像分类) 图像分类(下图左)就是对图像判断出所属的分类,比如在学习分类中数据集有人(person).羊(sheep).狗(dog)和猫(cat)四种,图 ...

  6. 使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记

    使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记 https://www.bilibili.com/video/BV1rq4y1w7xM?spm_id_from=33 ...

  7. CVPR2019 | 15篇论文速递(涵盖目标检测、语义分割和姿态估计等方向)

    [导读]CVPR 2019 接收论文列表已经出来了,但只是一些索引号,所以并没有完整的论文合集.CVer 最近也在整理收集,今天一文涵盖15篇 CVPR 2019 论文速递,内容涵盖目标检测.语义分割 ...

  8. 从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类

    更多资讯,请关注:Ai尚研修科研技术动态 公众号 我国高分辨率对地观测系统重大专项已全面启动,高空间.高光谱.高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全 ...

  9. Keras之Mask R-CNN:《极限挑战》第四季第2期助力高考—使用Mask R-CNN代替Photoshop抠图、颜色填充框出目标检测/图像分割/语义分割

    Keras之Mask R-CNN:<极限挑战>第四季第2期助力高考-使用Mask R-CNN代替Photoshop抠图.颜色填充框出目标检测/图像分割/语义分割 导读 没有伞的孩子只能努力 ...

最新文章

  1. nfs文件服务器读取文件夹,NFS文件服务器.ppt
  2. 源代码文档生成 Doxygen介绍(转载)
  3. JPA的entityManager的find、getReference、persisit、remove方法的使用
  4. Hive集成HBase详解
  5. 43行代码AC——例题6-8 树(Tree,UVa 548)——解题报告
  6. linux结束所有任务命令行,Linux基础命令(15)定时任务
  7. php判断网址包含字符,php中判断一个字符串包含另一个字符串的方法
  8. calibration trl 设计_校准:怎样设计和验证TRL校准件以及TRL校准的具体过程
  9. php entity,PHP html_entity_decode() 函数_程序员人生
  10. java毕业设计小区停车场管理系统mybatis+源码+调试部署+系统+数据库+lw
  11. Timesten Classic 18.1 建立缓存组
  12. HCL软件,堆叠工程尝试,S5820V2-54QS-GE
  13. 修复常见ACPI问题(DSDT等)
  14. html设置label的字体大小,swift - label 的font 设置 文字字体和大小
  15. 数据结构—双向链表的基本操作
  16. 利用mininet模拟SDN架构并进行DDoS攻击与防御模拟(Ryu+mininet+sflow+postman)
  17. JVM - 双亲委派
  18. Plasma: Scalable Autonomous Smart Contracts 翻译
  19. 均衡发展国检时计算机会问哪些问题,XX小学均衡发展迎国检工作方案.doc
  20. 【人工智能实验室】第三次培训之手写数字识别代码理解

热门文章

  1. 在html中双虚线怎么写,CSS虚线实现方法及多种应用实例
  2. 怀旧服服务器维护断牙会刷新么,《魔兽世界怀旧服》断牙在哪刷新 断牙刷新位置分享...
  3. 通向架构师的道路(第二十四天)之Oracle性能调优-朝拜先知之旅
  4. UiPath培训教程
  5. Linux核心的汉字
  6. Bigint和int的区别
  7. 有哪些是你踏入社会才明白的道理
  8. 电脑端微信设置浏览器+设置截屏快捷键
  9. word 中的边框底纹和PPT中的文本框制作专业文档
  10. C++语法知识复习3(黑马程序员教程P167-p200)