同时进行实时对象检测和语义分割的系统和方法与流程

文档序号:31404999发布日期:2022-09-03 06:12阅读:146来源:国知局
同时进行实时对象检测和语义分割的系统和方法与流程
同时进行实时对象检测和语义分割的系统和方法
1.交叉引用
2.在本公开的描述中引用和讨论了一些参考文献,其可能包括专利、专利申请和各种出版物。提供此类参考文献的引用和/或讨论仅用于阐明本公开的描述,并不承认任何此类参考文献对于本公开是已有的。在本说明书中引用的或讨论的所有参考文献通过引用整体并入本文,并且与每篇参考文献通过引用单独并入的程度相同。
技术领域
3.本公开总体上涉及计算机视觉,具体涉及一种同时进行实时对象检测和语义分割的系统和方法。


背景技术:

4.在此提供的背景描述是为了概括地呈现本公开的上下文。在本背景部分描述的范围内,发明人的工作以及在提交申请时可能不符合已有技术的描述方面,既不明确也不隐含地承认为相对于本公开是已有的。
5.对于自动驾驶车辆而言,及时了解其周围环境,如汽车、行人、交通指示灯、交通标志和可用空间等至关重要。为了实现这一目标,自动驾驶系统通常需要执行多个基于视觉的任务,例如对象检测、语义分割、运动估计和3d重建,其中对象检测和语义分割是两个最重要的任务。然而,鉴于汽车的计算能力有限,执行每项任务的计算成本相当高。
6.因此,本领域存在解决上述缺陷和不足的需要。


技术实现要素:

7.在一些方面,本公开涉及一种对象检测和语义分割系统。在一些实施例中,所述系统包括计算设备。所述计算设备具有处理器和存储有计算机可执行代码的非易失性存储器。所述计算机可执行代码在所述处理器处执行时被配置为:接收场景的图像;使用神经网络主干处理所述图像,以获得特征图;使用对象检测模块处理所述特征图,以获得所述图像的对象检测结果;以及使用语义分割模块处理所述特征图,以获得所述图像的语义分割结果。使用同一损失函数对所述对象检测模块和所述语义分割模块进行训练,所述损失函数包括对象检测组件和语义分割组件。
8.在一些实施例中,针对所述对象检测模块和所述语义分割模块的训练数据包括:训练图像、所述训练图像中限定的至少一个边界框、所述至少一个边界框的标签、以及所述训练图像的掩码。
9.在一些实施例中,所述神经网络主干包括resnet18主干,所述resnet18主干从其第4块截断。
10.在一些实施例中,所述对象检测模块是单次检测器(ssd)。
11.在一些实施例中,所述对象检测模块依次包括:五个卷积层;检测层;以及非极大值抑制(nms)层。在一些实施例中,针对512
×
512分辨率的图像,所述神经网络主干向所述
检测层卷积地添加64
×
64信息和32
×
32信息,所述五个卷积层分别向所述检测层添加16
×
16信息、8
×
8信息、4
×
4信息、2
×
2信息和1
×
1信息。
12.在一些实施例中,所述语义分割模块是金字塔池化模块。
13.在一些实施例中,所述语义分割模块依次包括:池化模块,所述池化模块池化所述特征图以获得不同大小的池化特征;多个卷积层,每个卷积层对所述不同大小的池化特征中的一个池化特征进行卷积,以获得不同大小的卷积特征;上采样模块,所述上采样模块接收所述不同大小的卷积特征,以获得上采样特征;拼接层,所述拼接层接收所述上采样特征和来自所述神经网络主干的特征以获得拼接特征;以及卷积层,所述卷积层对所述拼接特征进行卷积以获得作为所述语义分割结果的逐像素预测。在一些实施例中,所述池化特征的大小为1
×
1、2
×
2、3
×
3和6
×
6。
14.在一些实施例中,所述计算机可执行代码还被配置为基于所述对象检测结果和所述语义分割结果控制所述场景中的操作设备。
15.在一些方面,本公开涉及一种对象检测和语义分割方法。在一些实施例中,所述方法包括:通过计算设备接收场景的图像;通过所述计算设备使用神经网络主干处理所述图像,以获得特征图;通过所述计算设备使用对象检测模块处理所述特征图,以获得所述图像的对象检测结果;以及通过所述计算设备使用语义分割模块处理所述特征图,以获得所述图像的语义分割结果,其中,使用同一损失函数对所述对象检测模块和所述语义分割模块进行训练,所述损失函数包括对象检测组件和语义分割组件。
16.在一些实施例中,针对所述对象检测模块和所述语义分割模块的训练数据包括:训练图像、所述训练图像中限定的至少一个边界框、所述至少一个边界框的标签、以及所述训练图像的掩码。
17.在一些实施例中,所述神经网络主干包括resnet18主干,所述resnet18主干从其第4块截断。
18.在一些实施例中,所述对象检测模块是单次检测器(ssd)。
19.在一些实施例中,所述对象检测模块依次包括:五个卷积层;检测层;以及非极大值抑制(nms)层。在一些实施例中,针对512
×
512分辨率的图像,所述神经网络主干向所述检测层卷积地添加64
×
64信息和32
×
32信息,所述五个卷积层分别向所述检测层添加16
×
16信息、8
×
8信息、4
×
4信息、2
×
2信息和1
×
1信息。
20.在一些实施例中,所述语义分割模块是金字塔池化模块。
21.在一些实施例中,所述语义分割模块依次包括:池化模块,所述池化模块池化所述特征图以获得不同大小的池化特征;多个卷积层,每个卷积层对所述不同大小的池化特征中的一个池化特征进行卷积,以获得不同大小的卷积特征;上采样模块,所述上采样模块接收所述不同大小的卷积特征,以获得上采样特征;拼接层,所述拼接层接收所述上采样特征和来自所述神经网络主干的特征以获得拼接特征;以及卷积层,所述卷积层对所述拼接特征进行卷积以获得所述语义分割结果。
22.在一些实施例中,所述方法还包括:基于所述对象检测结果和所述语义分割结果来控制所述场景中的操作设备。
23.在一些方面,本公开涉及一种存储有计算机可执行代码的非暂时性计算机可读介质。所述计算机可执行代码在计算设备的处理器处执行时被配置为实现上述方法。
24.本公开的这些和其他方面将从以下结合以下附图及其说明的优选实施方案的描述中变得清楚,尽管其中的变化和修改可能会受到影响,但不会偏离本公开的新颖概念的精神和范围。
附图说明
25.本公开将从详细描述和附图中得到更充分的理解。附图示出了本公开的一个或多个实施例,并与书面描述一起用于解释本公开的原理。在可能的情况下,贯穿整个附图,使用相同的附图标记来指代实施例的相同或相似元素。
26.图1示意性地描绘了根据本公开的一些实施例的同时进行对象检测和语义分割的模型的结构。
27.图2示意性地描绘了根据本公开的一些实施例的对象检测和语义分割系统。
28.图3示意性地描绘了根据本公开的一些实施例的对象检测和语义分割模型的训练方法。
29.图4示意性地描绘了根据本公开的一些实施例的对象检测和语义分割模型的使用方法。
30.图5示意性地描绘了根据本公开的一些实施例的对象检测和语义分割模型的示例性结构。
具体实施方式
31.在以下示例中更具体地描述本公开,这些示例仅旨在作为说明,因为其中的许多修改和变化对于本领域技术人员来说将是清楚的。现在详细描述本公开的各种实施例。参考附图,贯穿整个附图,相同的数字指示相同的组件。此外,本说明书中使用的一些术语在下文有更具体的定义。
32.本说明书中使用的术语在本领域中、在本公开的上下文中以及在使用每个术语的特定上下文中通常具有它们的普通含义。用于描述本公开的一些术语在下文或说明书中的其他地方讨论,以向从业者提供关于本公开的描述的额外指导。可以理解,同样的事情可以用不止一种方式表达出来。因此,替代语言和同义词可用于本文讨论的任何一个或多个术语,并且对于本文是否详细阐述或讨论术语没有任何特殊意义。本公开提供了一些术语的同义词。一个或多个同义词的使用不排除使用其他同义词。本说明书中任何地方的示例的使用,包括本文讨论的任何术语的示例,仅是说明性的,决不限制本公开内容或任何示例性术语的范围和含义。同样,本公开不限于本说明书中给出的各种实施例。
33.除非另有定义,本公开使用的所有技术术语和科学术语具有与本公开内容所属领域的普通技术人员通常理解的相同的含义。如有冲突,以本文件(包括定义)为准。
34.除非上下文另有明确规定,否则本文的描述中和整个权利要求中使用的“一个”、“一”和“所述”的含义包括复数。此外,如在本公开的描述和权利要求书中所使用的,除非上下文另有明确规定,“在”的含义包括“在
……
中”和“在
……
上”。并且,说明书中为了方便读者可以使用标题或副标题,这不影响本公开的范围。
35.如本文所述,“多个”是指两个或更多个。如本文所述,术语“包括”、“包含”、“携带”、“具有”、“含有”、“涉及”等应理解为开放式的,即意味着包括但不限于。
36.如本文所述,短语“a、b和c中的至少一个”应解释为表示逻辑(a或b或c),使用非排他性逻辑或(or)。应当理解,在不改变本公开的原理的情况下,方法内的一个或多个步骤可以以不同的顺序(或同时)执行。
37.如本文所述,术语“模块”可以指例如在片上系统中的属于或包括专用集成电路(application specific integrated circuit,asic);电子电路;组合逻辑电路;现场可编程门阵列(field programmable gate array,fpga);执行代码的(共享的、专用的)处理器或处理器组;提供所描述功能的其他合适的硬件组件;或以上部分或全部的组合。术语“模块”可以包括存储由处理器执行的代码的(共享的、专用的)存储器或存储器组。
38.本文使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指程序、例程、函数、类和/或对象。上面使用的术语“共享”指的是可以使用单个(共享的)处理器执行来自多个模块的一些代码或所有代码。此外,来自多个模块的一些代码或所有代码可以存储在单个(共享的)存储器中。上面使用的术语“组”指的是可以使用处理器组执行来自单个模块的一些代码或所有代码。此外,可以使用存储器组来存储来自单个模块的一些代码或所有代码。
39.如本文所述,术语“接口”通常是指在组件之间的交互点处用于执行组件之间的数据通信的通信工具或装置。一般而言,接口可以在硬件层面和软件层面都适用,接口可以是单向接口或双向接口。物理硬件接口的示例可以包括电连接器、总线、端口、线缆、端子和其他i/o设备或组件。与接口通信的组件可以是例如计算机系统的多个组件或外围设备。
40.本公开涉及计算机系统。如附图所示,计算机组件可以包括物理硬件组件,其示出为实线框,以及虚拟软件组件,其示出为虚线框。本领域普通技术人员将理解,除非另有说明,否则这些计算机组件可以以软件、固件或硬件组件或其组合的形式来实现,但不限于这些形式。
41.本文描述的装置、系统和方法可以通过由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行的指令。计算机程序还可包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储和光存储。
42.现在将在下文中参考附图更全面地描述本公开,其中示出了本公开的实施例。然而,本公开可以以许多不同的形式体现并且不应被解释为限于这里阐述的实施例;相反,提供这些实施例是为了使本公开彻底和完整,并将本公开的范围充分传达给本领域技术人员。
43.在一些方面,本公开涉及一种用于以实时方式同时进行对象检测和语义分割的计算效率高的框架。该框架是一种新颖的轻量级深度神经网络。如图1所示,框架100包括神经网络主干104、对象检测模块106和语义分割模块108。对象检测模块106和语义分割模块108共享同一神经网络主干104。当场景102的图像用作输入时,神经网络主干104处理该图像以获得特征图。该特征图用作对象检测模块106和语义分割模块108的输入。对象检测模块106处理该特征图以获得图像110,其中检测到的对象使用图像110中的边界框来限定并使用对象的名称进行标记。语义分割模块108处理该特征图以获得掩码112,其中图像中的像素按照类别进行分类。
44.对象检测模块106和语义分割模块108在使用之前被预训练,在训练期间针对对象
检测模块106和语义分割模块108二者定义混合损失函数。通过定义混合损失函数,对象检测模块106和语义分割模块108的训练更加快速准确。
45.进一步地,由于共享神经网络主干104且对象检测模块106和语义分割模块108的结构简单,训练后的整个系统运算速度非常快且需要较低的计算能力。因此,实时对象检测和语义分割可以在nvidia jetson tx2这样的低计算能力机器上实现。此外,通过多任务网络,这两个任务可以在准确性方面相互促进。
46.图2示意性地示出了根据本公开的一些实施例的用于同时进行实时对象检测和语义分割的系统。如图2所示,系统200包括计算设备210、图像采集设备250和操作设备270。图像采集设备250和操作设备270通过例如相同或不同的系统接口或网络240与计算设备210进行通信。在一些实施例中,计算设备210可以是通用计算机、专用计算机、智能手机、平板电脑、控制器或位于例如自动驾驶车辆中的嵌入式设备。计算设备210基于相同的图像或相同的图像集提供同时的对象检测和语义分割服务。
47.在一些实施例中,系统接口240可以是各种总线、存储设备、其他i/o设备、或usb接口。当接口是网络时,网络240可以是各种形式的有线网络或无线网络。网络的示例可以包括但不限于局域网(local area network,lan)、包括互联网的广域网(wide area network,wan)、或任何其他类型的网络。在一些实施例中,系统接口240可以是将计算设备210与图像采集设备250和操作设备270进行通信连接的任何其他类型的接口。
48.在一些实施例中,图像采集设备250可以是摄像机、灰度相机、rgb相机、rgb深度相机、深度相机、lidar或其组合。图像采集设备250用于采集环境或场景的图像,优选以视频的形式连续地采集图像。
49.在一些实施例中,操作设备270可以是自动驾驶车辆或需要基于对象检测和语义分割信息的指令的任何其他设备。当计算设备210从图像采集设备250接收图像或视频,进行实时对象检测和语义分割时,计算设备210可以使用获得的实时信息来指示操作设备270的操作。在一些实施例中,可以通过计算设备210以外的控制器来控制操作设备270,该控制器用于从计算设备210接收对象检测和语义分割信息,并使用该信息指示操作设备270工作。
50.在一些实施例中,如图2所示,计算设备210可以包括但不限于处理器212、存储器214和存储设备216。在一些实施例中,计算设备210可以包括其他硬件组件和软件组件(未示出)以执行相应的任务。这些硬件组件和软件组件的示例包括但不限于其他所需的存储器、接口、总线、输入/输出(input/output,i/o)模块或设备、网络接口和外围设备。
51.处理器212可以是中央处理单元(central processing unit,cpu),其用于控制计算设备210的操作。处理器112可以执行计算设备210的操作系统(operating system,os)或其他应用。在一些实施例中,服务器计算设备210可以具有一个以上cpu作为处理器,例如两个cpu、四个cpu、八个cpu或任何合适数量的cpu。
52.存储器214可以是易失性存储器,例如随机存取存储器(random-access memory,ram),用于在计算设备210的操作期间存储数据和信息。在一些实施例中,存储器214可以是易失性存储器阵列。在一些实施例中,计算设备210可以在一个以上存储器214上运行。
53.存储设备216是用于存储库存分配计算设备210的操作系统(未示出)和其他应用的非易失性数据存储介质。存储设备216的示例包括诸如闪存、存储卡、usb驱动器、硬盘驱
fcn),特征金字塔网络(feature pyramid network,fpn),retinanet,或者用于对象检测的只看一眼(you only look once,yolo)。在一示例中,单次检测器(ssd)用于对象检测。
59.语义分割模块226用于在从神经网络主干222接收到特征图后,处理该特征图以对图像的多个像素进行分类。在一些实施例中,语义分割模块226可以使用金字塔场景解析网络(pyramid scene parsing network,pspnet)或fcn来进行语义分割。在一示例中,pspnet用于语义分割。
60.训练模块228用于使用训练数据232和由混合损失函数模块230提供的混合损失函数来训练神经网络主干222、对象检测模块224和语义分割模块226。
61.混合损失函数模块230用于提供混合损失函数以用于训练神经网络主干222、对象检测模块224和语义分割模块226。混合损失函数包括用于对象检测和语义分割二者的组件。通过提供混合损失函数和训练数据222,使得训练过程由于对象检测和语义分割可以相互促进而变得高效。
62.训练数据232包括用于训练对象检测和语义分割二者的数据。具体地,对于训练数据232中的数据条目,训练数据232提供图像、图像中对象的边界框、边界框中对象的标签(例如对象的名称)以及图像中像素的类别标签。
63.在一些方面,本公开涉及一种对象检测和语义分割应用218的训练方法,具体涉及神经网络主干222、对象检测模块224和语义分割模块226的训练方法。在一些实施例中,如图3所示的方法可以在如图2所示的系统上实现。需要特别说明的是,除非本公开另有说明,该方法的步骤可以以不同的顺序排列,因此不限于图3所示的顺序。
64.如图3所示,在步骤302中,训练模块228检索训练数据232,并将训练数据发送到神经网络主干222。训练数据232的每个训练条目包括图像、图像中对象的边界框、边界框中对象的标签以及图像中每个像素的类别标签。
65.在步骤304中,神经网络主干222在接收到训练数据232后,将图像转换为特征图,并将特征图分别发送到对象检测模块224和语义分割模块226。在执行步骤304中,使用图像而未使用图像的边界框、边界框/对象标签和像素标签。训练图像的边界框和标签可供之后使用。
66.在步骤306中,对象检测模块224在从神经网络主干222接收到特征图后,基于该特征图检测对象。检测结果可以包括图像中的边界框和指示不同对象的边界框的标签。标签可以包括例如汽车、自行车、人、交通指示灯等。
67.在步骤308中,语义分割模块226在从神经网络主干222接收到特征图后,对图像进行分割,并基于特征图为每个像素提供类别标签。针对每个像素的标签可以包括道路、人、人行道、建筑物、汽车等。
68.在步骤310中,对象检测模块224的对象检测和语义分割模块226的语义分割完成后,训练模块228将对象检测结果和语义分割结果与针对训练图像的原始标签进行比较以获得预测的结果与训练数据中的标签之间的差异,检索由混合损失函数模块230提供的损失函数,并使用损失函数和差异对神经网络主干222、对象检测模块224和语义分割模块226的参数或权重进行调整。
69.在步骤312中,重复执行步骤302至步骤310若干次,直到神经网络主干222、对象检测模块224和语义分割模块226的参数或权重收敛。
70.在一些方面,本公开涉及一种如图3中所描述的经过良好训练的应用218的使用方法。图4示意性地描绘了根据本公开的一些实施例的同时进行实时对象检测和语义分割的方法。在一些实施例中,如图4所示的方法可以在如图2所示的系统上实现。需要特别说明的是,除非本公开另有说明,该方法的步骤可以以不同的顺序排列,因此不限于图4所示的顺序。在一些实施例中,图4所示的方法类似于图3所示的方法,区别在于输入图像是实时采集的图像而非带标签的训练图像,并且不需要对预测的对象检测结果和语义分割结果进行比较。
71.如图4所示,在步骤402中,图像采集设备250拍摄场景的图像并将图像发送到图像采集模块220。图像采集模块220接收图像,并将图像发送到神经网络主干222。在一些实施例中,图像采集模块220在发出图像以用于进一步处理之前,可以对图像进行预处理,例如重新格式化图像或调整图像大小以满足神经网络主干222的要求。
72.在步骤404中,神经网络主干222在接收到采集的图像后,将采集的图像转换为特征图,并将特征图分别发送到对象检测模块224和语义分割模块226。
73.在步骤406中,对象检测模块224在从神经网络主干222接收到特征图后,基于该特征图检测对象。检测结果可以包括采集的图像中的边界框和指示不同对象的边界框的标签。标签可以包括例如汽车、自行车、人、交通指示灯等。
74.在步骤408中,语义分割模块226在从神经网络主干222接收到特征图时,对图像进行分割,并基于特征图为每个像素提供类别标签。每个像素的标签可以包括道路、人、人行道、建筑物、汽车等。
75.在一些实施例中,该方法还可以包括步骤410。在步骤410中,控制应用234使用来自对象检测模块224的对象检测结果和来自语义分割模块226的语义分割结果,并基于这些结果指示操作设备270的操作。
76.图5示出了根据本公开的一些实施例的对象检测和语义分割模型的示例。在一些实施例中,该模型对应衬经网络主干222、对象检测模块224和语义分割模块226,该模型还使用包含对象检测组件和语义分割组件的混合损失函数进行限定。
77.如图5所示,模型500包括共享resnet18主干、对象检测子模型和语义分割子模型。共享resnet18主干将图像转换为特征图。特征图被输入到对象检测子模型和语义分割子模型。在一些实施例中,对象检测子模型使用ssd实现,语义分割子模型使用金字塔池化实现。
78.对象检测子模型使用多个不同大小的卷积层处理来自resnet18主干的特征图。来自卷积层的结果与直接来自resnet18主干的信息相结合以执行对象检测。进一步利用非极大值抑制(non-maximum suppression,nms)对该检测进行处理,以获得最终的对象检测结果。
79.语义分割子模型对不同大小的特征图进行池化,对不同h和w大小的特征图进行卷积。卷积之后,语义分割子模型将卷积的结果上采样为相同的h和w大小,并将上采样的特征图拼接起来,以得到拼接的特征图。之后对拼接的特征图进行卷积以获得最终的语义分割结果。在结果中,利用类别来预测采集的图像中的每个像素,这些类别可以包括地面、人、建筑物、电线杆和树木。
80.在一些实施例中,模型具有如图5所示的精确分层结构和维度。在一些实施例中,模型具有如图5所示的精确分层结构,而维度h和w的大小可以成比例地变化或改变(保持维
度c相同)。在一些实施例中,模型具有如图5所示的精确分层结构,而维度h和w的大小可以成比例地变化或改变(维度c可以改变但不与h和w的改变成比例)。在一些实施例中,模型具有如图5所示的精确分层结构,但维度h、w和c的大小可以成比例地变化或改变。在一些实施例中,图5所示模型中的层的大小仅用于说明,并不旨在限制本公开的范围。根据要处理的数据类型,可以使用各种大小的维度h、w、c。
81.在一些方面,本公开涉及一种存储有计算机可执行代码的非暂时性计算机可读介质。在一些实施例中,计算机可执行代码可以是存储在如上所述的非易失性存储设备216中的软件。计算机可执行代码在被执行时可以执行上述方法之一。在一些实施例中,非暂时性计算机可读介质可以包括但不限于如上所述的计算设备210的存储设备216,或计算设备210的任何其他存储介质。
82.除此之外,本公开的一些实施例提供同时进行的实时对象检测和语义分割。根据本公开的一些实施例的优点如下:(1)共享的轻量级主干网络使得模型更快速;(2)至少通过共享的resnet18主干和混合损失函数进行ssd与特征金字塔池化之间的交互,从而使预测更加高效准确;(3)同时实现对象检测和分割有助于控制诸如自动驾驶车辆之类的操作设备。
83.本公开的示例性实施例的前述描述仅出于说明和描述的目的而呈现并且不旨在穷举或将本公开限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。
84.选择和描述实施例是为了解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够利用本公开和各种实施例以及适合于预期的特定用途的各种修改。在不脱离本公开的精神和范围的情况下,替代实施例对于本公开所属领域的技术人员将变得清楚。因此,本公开的范围由所附权利要求而不是前述描述和其中描述的示例性实施例限定。
85.参考文献
86.[1]hengshuang zhao et al,pyramid scene parsing network,ieee conference on computer vision and pattern recognition,2017,arxiv:1612.01105.
[0087]
[2]jonathan long et al,fully convolutional models for semantic segmentation,ieee conference on computer vision and pattern recognition,2015,arxiv:1411.4038.
[0088]
[3]cheng-yang fu et al,dssd:deconvolutional single shot detector,2017,arxiv:1701.06659.
[0089]
[4]zeming li et al,light-head r-cnn,in defense of two-stage object detector,2017,arxiv:1711.07264.
[0090]
[5]kaiming he,mask r-cnn,ieee conference on computer vision and pattern recognition,2018,arxiv:1703.06870.
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1