CN112990211B - 一种神经网络的训练方法、图像处理方法以及装置 - Google Patents

一种神经网络的训练方法、图像处理方法以及装置 Download PDF

Info

Publication number
CN112990211B
CN112990211B CN202110130645.7A CN202110130645A CN112990211B CN 112990211 B CN112990211 B CN 112990211B CN 202110130645 A CN202110130645 A CN 202110130645A CN 112990211 B CN112990211 B CN 112990211B
Authority
CN
China
Prior art keywords
network
module
instance
sample
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110130645.7A
Other languages
English (en)
Other versions
CN112990211A (zh
Inventor
江宸瀚
徐航
李震国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110130645.7A priority Critical patent/CN112990211B/zh
Publication of CN112990211A publication Critical patent/CN112990211A/zh
Application granted granted Critical
Publication of CN112990211B publication Critical patent/CN112990211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • G06V10/267Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了人工智能领域的一种神经网络的训练方法、图像处理方法以及装置,用于基于实际需求添加网络模块,辅助神经网络进行更新,高效得到输出更准确的神经网络。该方法包括:选择执行目标任务的第一网络;根据目标任务在第一网络中增加辅助更新第一网络的至少一个模块,得到第二网络,包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,第一损失模块基于第一网络输出的实例边框计算损失值,像素级标签模块以像素为单位生成标签,第二损失模块基于第一网络输出的掩膜计算损失值,传递模块结合第一网络输出的实例特征和背景信息计算梯度值;使用第一样本集训练第二网络,得到用于执行目标任务的第三网络。

Description

一种神经网络的训练方法、图像处理方法以及装置
技术领域
本申请涉及人工智能领域,尤其涉及一种神经网络的训练方法、图像处理方法以及装置。
背景技术
如何从场景中解析出可供计算机理解的信息,是计算机视觉的核心问题。在自动驾驶,手机终端及安防监控等场景有着广泛的应用,具备很高的商业价值。
神经网络需要经训练后才可使用,而通常训练成本有限,因此如何高效得到训练后的输出更准确的神经网络,成为亟待解决的问题。
发明内容
本申请提供一种神经网络的训练方法、图像处理方法以及装置,用于基于实际需求添加网络模块,辅助神经网络进行更新,高效得到训练后的输出更准确的神经网络,且可以适应不同的场景,泛化能力强。
第一方面,本申请提供一种神经网络的训练方法,包括:获取目标任务;根据目标任务选择第一网络,该第一网络用于执行目标任务;随后,根据目标任务在第一网络中增加至少一个模块,得到第二网络,该至少一个模块的输出用于在训练第二网络的过程中更新第一网络的参数,该至少一个模块包括以下模块中的一种或者多种:第一损失模块、像素级标签模块、第二损失模块和传递模块,第一损失模块用于基于第一网络输出的实例边框计算第一损失值,实例边框用于标识输入至第一网络的输入图像中实例的区域,像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,像素级标签用于表示至少一个像素的类别,第二损失模块用于基于第一网络输出的掩膜计算第二损失值,传递模块用于结合第一网络输出的背景信息和实例特征计算梯度值,实例特征为实例边框标识出的输入图像的区域的特征,背景信息包括输入图像中除实例外的背景的信息;随后,获取第一样本集,第一样本集中包括至少一个携带标签的样本;然后使用第一样本集训练第二网络,得到第三网络,第三网络用于执行目标任务,其中,前述的至少一个模块用于在训练第二网络的过程中,更新第二网络中第一网络的参数。
因此,通过对网络进行模块化的方式,为需要训练的神经网络添加模块,从而辅助神经网络的训练,使在有限样本集的场景下,高效地得到输出效果更好的神经网络。
在一种可能的实施方式中,前述的背景信息与目标任务的种类相关,背景信息包括:背景边框、从输入图像中分割出的背景的部分或输入图像中的背景的类别中的至少一种,背景边框用于标识输入图像中除实例外的背景的区域。
因此,在本申请实施方式中,对于不同的目标任务,第一网络输出的背景信息也可能不相同,传递模块可以适应不同的任务场景,基于实例和背景的信息来计算梯度值,从而传递实例和背景之间的信息,从而使更新第二网络时,可以结合实例和背景来更新,从而使训练得到的第三网络在前景和背景部分的表现更均衡。
在一种可能的实施方式中,第一样本集中包括至少一个全监督样本和/或至少一个弱监督样本,全监督样本携带前景标签和/或背景标签,弱监督样本携带的标签的种类少于全监督样本。
因此,本申请实施方式中,训练第一网络所使用的样本集中,不仅可以包括全监督样本,还可以包括弱监督样本,从而在尽可能降低标注成本的情况下,得到输出效果更优的神经网络。
在一种可能的实施方式中,在获取第一样本集之前,上述方法还可以包括:获取第二样本集,第二样本集中包括多个全监督样本;根据第二样本集构建多个第三样本集,多个第三样本集与多个样本比例一一对应,且每个第三样本集中全监督样本所占的比例不相同,该多个样本比例包括多个第三样本集中各种标签所占的比例;根据多个第三样本集分别对第二网络进行训练,得到多个训练结果;根据多个训练结果以及多个样本比例确定目标比例;获取第一样本集的具体方式可以包括:对未标注样本中的目标比例的样本添加标签,得到第一样本集。
因此,本申请实施方式中,在得到第一样本集之前,还选择最优的比例,即全监督样本和弱监督样本之间的比例,从而得到性价比最优的样本集。
在一种可能的实施方式中,根据多个训练结果以及多个样本比例确定目标比例,包括:根据多个训练结果和多个样本比例,生成训练第二网络的样本集中每种标签的数量和训练结果之间的关联关系;根据关联关系确定目标比例。
因此,本申请实施方式中,可以基于训练结果和多个样本比例,生成训练第二网络的样本集中每种标签的数量和训练结果之间的关联关系,从而确定出最优比例。
在一种可能的实施方式中,根据关联关系确定目标比例的具体方式可以包括:根据关联关系计算训练第二网络使用的样本集中所有标签的数量的增量和训练结果的增量之间的函数关系;根据函数关系确定目标比例。
本申请实施方式中,可以根据每种标签的数量和训练结果之间的关联关系,得到所有标签的数量的增量和训练结果的增量之间的函数关系,从而确定出更优的比例。
在一种可能的实施方式中,根据函数关系确定目标比例的方式进一步可以包括:根据函数关系和标注代价,计算帕累托前沿,标注代价为样本添加标签的成本;根据帕累托前沿计算目标比例。
因此,本申请实施方式中,可以通过计算帕累托前沿的方式,选择出最优的比例,从而均衡了标注成本和神经网络的训练结果,得到网络性能和成本均衡的比例。
在一种可能的实施方式中,多个训练结果包括以下一项或者多项:训练后的第二神经网络的输出准确度、召回率或重叠度IOU。因此,本申请实施方式中,可以通过输出准确度、召回率或IOU来量化训练后的网络的性能,从而选择出更优的比例。
在一种可能的实施方式中,目标任务包括全景分割,至少一个模块包括第一损失模块、像素级标签模块、第二损失模块和传递模块。
因此,本申请提供的神经网络的训练方法可以应用于全景分割场景,通过额外增加的模块,对全监督样本或者弱监督样本对神经网络进行训练,从而在尽可能降低标注成本的情况下,得到输出效果更好的神经网络。
在一种可能的实施方式中,目标任务包括实例分割,实例分割为分割输入的图像中的前景;至少一个模块包括第一损失模块和第二损失模块。
因此,本申请供的神经网络的训练方法可以应用于实例分割场景,通过额外增加的模块,对全监督样本或者弱监督样本对神经网络进行训练,从而在尽可能降低标注成本的情况下,得到输出效果更好的神经网络。
在一种可能的实施方式中,目标任务包括目标检测,至少一个模块包括第一损失模块。
因此,本申请供的神经网络的训练方法可以应用于目标检测场景,通过额外增加的模块,对全监督样本或者弱监督样本对神经网络进行训练,从而在尽可能降低标注成本的情况下,得到输出效果更好的神经网络。
在一种可能的实施方式中,目标任务包括语义分割,至少一个模块包括像素级标签模块。
因此,本申请供的神经网络的训练方法可以应用于语义分割场景,通过额外增加的模块,对全监督样本或者弱监督样本对神经网络进行训练,从而在尽可能降低标注成本的情况下,得到输出效果更好的神经网络。
在一种可能的实施方式中,全监督样本携带的标签包括:前景标签、类别标签、实例边框和背景标签,前景标签包括以图像中的前景的至少一个像素为单位的类别标签,类别标签用于表示全监督样本中包括的实例的类别,实例边框用于表示实例在图像的区域,背景标签包括以图像中的背景的至少一个像素为单位的类别标签;弱监督样本携带的标签包括前景标签、类别标签、实例边框或背景标签中的最多三种。
第二方面,本申请实施例提供一种神经网络训练装置,该神经网络训练装置具有实现上述第一方面神经网络的训练方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请提供一种图像处理方法,包括:获取输入图像;将输入图像作为第三网络的输入,输出实例边框、掩膜或背景信息中的至少一种,实例边框用于标识输入图像中实例的区域,背景信息包括输入图像中处实例外的背景的信息,第三网络是使用第一样本集对第二网络进行训练得到,第二网络中包括第一网络和至少一个模块,第一网络是根据目标任务选择的网络,至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,第一损失模块用于基于第一网络输出的实例边框计算第一损失值,实例边框用于标识输入至第一网络的输入图像中实例的区域,像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,像素级标签用于表示至少一个像素的类别,第二损失模块用于基于第一网络输出的掩膜计算第二损失值,传递模块用于结合第一网络输出的背景信息和实例特征计算梯度值,实例特征为实例边框标识出的输入图像的区域的特征,背景信息包括输入图像中除实例外的背景的信息,其中,该至少一个模块的输出用于在训练第二网络的过程中更新第二网络的参数。
在一种可能的实施方式中,在得到训练后的第二网络之后,可以从该训练后的第二网络中选择训练后的第一网络作为第三网络,也可以直接将训练后的第二网络作为第三网络。
因此,在本申请实施方式中,可以保留训练过程中在第一网络中增加的至少一个模块,减少第三网络的存储占用量,提高输出效率,也可以不保留训练过程中在第一网络中增加的至少一个模块,从而在后续的学习过程中,学习到输出更准确的参数。
此外,本申请实施例中训练第二网络的过程可以参阅前述第一方面或者第一方面任一可选实施方式中的相关描述,此处不再赘述。
第四方面,本申请实施例提供一种神经网络训练装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的神经网络的训练方法中与处理相关的功能。可选地,该神经网络训练装置可以是芯片。
第五方面,本申请实施例提供一种图像处理练装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第三方面任一项所示的图像处理方法中与处理相关的功能。可选地,该图像处理装置可以是芯片。
第六方面,本申请实施例提供了一种神经网络训练装置,该神经网络训练装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第一方面或第一方面任一可选实施方式中与处理相关的功能,或者,该处理单元用于执行如上述第三方面或第三方面任一可选实施方式中与处理相关的功能。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面或第三方面中任一可选实施方式中的方法。
第七方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第三方面中任一可选实施方式中的方法。
附图说明
图1是本申请应用的一种人工智能主体框架示意图;
图2是本申请提供的一种系统架构示意图;
图3是本申请提供的另一种系统架构示意图;
图4是本申请提供的一种各种场景的示意图;
图5是本申请提供的一种神经网络的训练方法的流程示意图;
图6是本申请提供的另一种神经网络的训练方法的流程示意图;
图7A是本申请提供的一种神经网络的结构示意图;
图7B是本申请提供的另一种神经网络的结构示意图;
图7C是本申请提供的另一种神经网络的结构示意图;
图7D是本申请提供的另一种神经网络的结构示意图;
图8是本申请提供的一种标签分类示意图;
图9是本申请提供的一种神经网络的处理流程示意图;
图10是本申请提供的一种神经网络的输出效果示意图;
图11是本申请提供的另一种神经网络的输出效果示意图;
图12是本申请提供的另一种神经网络的输出效果示意图;
图13是本申请提供的另一种神经网络的结构示意图;
图14是本申请提供的另一种神经网络的结构示意图;
图15是本申请提供的一种图像处理方法的流程示意图;
图16是本申请提供的一种神经网络训练装置的结构示意图;
图17是本申请提供的一种图像处理装置的结构示意图;
图18是本申请提供的另一种神经网络训练装置的结构示意图;
图19是本申请提供的一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片,如中央处理器(centralprocessing unit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(英语:graphics processing unit,GPU)、专用集成电路(application specificintegrated circuit,ASIC)或现场可编程逻辑门阵列(field programmable gate array,FPGA)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、平安城市等。
本申请实施例涉及了神经网络和图像领域的相关应用,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的神经网络和图像领域的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以如公式(1-1)所示:
Figure BDA0002925072720000051
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层中间层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,中间层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是中间层,或者称为隐层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,其每一层可以表示为线性关系表达式:
Figure BDA0002925072720000061
其中,/>
Figure BDA0002925072720000062
是输入向量,/>
Figure BDA0002925072720000063
是输出向量,/>
Figure BDA0002925072720000064
是偏移向量或者称为偏置参数,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>
Figure BDA0002925072720000065
经过如此简单的操作得到输出向量/>
Figure BDA0002925072720000066
由于DNN层数多,系数W和偏移向量/>
Figure BDA0002925072720000067
的数量也比较多。这些参数在DNN中的定义如下所述:以系数w为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>
Figure BDA0002925072720000068
上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为。
需要注意的是,输入层是没有参数的。在深度神经网络中,更多的中间层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络(recurrent neural networks,RNN),也称为递归神经网络,是用来处理序列数据的。在传统的神经网络模型中,是从输入层到中间层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即中间层本层之间的节点不再无连接而是有连接的,并且中间层的输入不仅包括输入层的输出还包括上一时刻中间层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。
(5)残差神经网络(ResNet)
残差神经网络是为例解决神经度神经网络的隐藏层过多时产生的退化(degradation)问题而提出。退化问题是指:当网络隐藏层变多时,网络的准确度达到饱和然后急剧退化,而且这个退化不是由于过拟合引起的,而是在进行反向传播时,传播到底层时各个梯度相关性不大,梯度更新不充分,从而使最终得到的模型的预测标签的准确度降低。当神经网络退化时,浅层网络能够达到比深层网络更好的训练效果,这时如果把低层的特征传到高层,那么效果应该至少不比浅层的网络效果差,因此可以通过一条恒等映射(Identity Mapping)来达到此效果。这条恒等映射称为残差连接(shortcut),优化这种残差映射要比优化原始的映射容易。
(6)R-CNN(Region-CNN)
R-CNN是基于卷积神经网络(CNN),线性回归,和支持向量机(SVM)等算法实现的进行目标检测的神经网络,R-CNN的检测过程可以包括采用提取框,对每个框提取特征、图像分类、非极大值抑制等步骤进行目标检测。R-CNN与传统机神经网络的区别在于在提取特征这一步骤中,将传统的特征(如SIFT、HOG特征等)替换为通过深度卷积网络提取的特征。
应理解,本申请以下实施例中所提及的第一网络、第二网络或者第三网络等,可以包括前述所提及的一种神经网络或者多种神经网络的组合等。
(7)损失函数(loss function):也可以称为代价函数(cost function),一种比较机器学习模型对样本的预测输出和样本的真实值(也可以称为监督值)区别的度量,即用于衡量机器学习模型对样本的预测输出和样本的真实值之间的区别。该损失函数通常可以包括误差平方均方、交叉熵、对数、指数等损失函数。例如,可以使用误差均方作为损失函数,定义为
Figure BDA0002925072720000071
具体可以根据实际应用场景选择具体的损失函数。
(8)梯度:损失函数关于参数的导数向量。
(9)随机梯度:机器学习中样本数量很大,所以每次计算的损失函数都由随机采样得到的数据计算,相应的梯度称作随机梯度。
(10)反向传播(back propagation,BP):一种计算根据损失函数计算模型参数梯度、更新模型参数的算法。
(11)全监督样本、弱监督样本、未标注样本
全监督样本:即携带了多种标签(lable)的样本。弱监督样本中携带的标签种类少于全监督样本。例如,全监督样本中携带了4种标签,则若监督样本携带的标签最多3种。未标注样本即未携带标签的样本。
(12)掩膜(mask)
掩膜可以理解为与图像类似的数据。通常,掩膜可以用于提取感兴趣区,例如用预先制作的感兴趣区掩模与待处理图像融合,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。还可以起屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计等。例如,生成某一个输入图像对应的掩膜时,可以设置一张与输入图像对应的画布,画布中的每个像素点和输入图像中的一个或多个像素点对应,当输入图像中的一个或多个像素点预测为实例时,画布中对应的像素值可以设置为1,否则设置为0,从而得到掩膜,相当于掩膜可以用突出输入图像中的实例。
(13)前景、背景
通常,前景可以理解为图像中所包括的主体,或者需要关注的对象等,本申请以下实施方式中,将图像中的前景中的对象,称为实例。背景则是图像中除前景外的其他区域。例如,若拍摄到一张包括了交通信号灯的图像,则该图像中的前景(或者称为实例)则为交通信号灯所在的区域,背景即为该图像中除实例之外的区域。又例如,若车辆在行驶过程中拍摄到的道路中的图像,则图像中的其他车辆、车道线、交通灯、路障、行人等即为实例,除实例外的部分即为背景。
(13)类激活热力图(CAM):是一个检测网络结果显著性的可视化工具,能显示出每个像素点属于某类物体的概率,即通过热力图的形式来表示图像中各个区域的实例为某一类对象的概率。具体而言,类激活热力图网络把特征金字塔网络输出的特征图(#Channel×w×h)作为输入,经过一个包含数个卷积层的浅层网络,输出一个类激活热力图(#Class×w×h)。
(14)多实例检测(multiple instance detection,MID):源自多实例学习(multiple instance learning,MIL)的一个针对图像级标注图片的损失函数。具体而言,是通过边缘分布把图像的一系列候选区域属于某一类别的概率转化成图像包含该类别标签的概率,并计算其与实际概率(即图像包含该类物体的概率是否为1,否则为0)的差别。
(15)多实例学习(MIL):在多示例学习中,训练样本是由多个示例组成的包,包是有概念标记的,但示例本身却没有概念标记。如果一个包中至少包含一个正例,则该包是一个正包,否则即为反包。学习的目的是预测新包的类别。
(16)帕累托前沿(pareto front):在有多个目标时,由于存在目标之间的冲突和无法比较的现象,一个解在某个目标上是最好的,在其他的目标上可能是最差的。这些在改进任何目标函数的同时,必然会削弱至少一个其他目标函数的解称为帕累托解。一组目标函数最优解的集合称为帕累托最优集。最优集在空间上形成的曲面称为帕累托前沿面。
(17)全监督样本、弱监督样本和未标记样本
全监督样本即指标注了对前景和背景进行了分割,并标记出前景和背景的类别的样本;弱监督样本即标注了部分标签的样本,如仅标记了前景的类别、仅标记了背景的类别、仅标记了图像中对象的类别的样本等;未标记样本则为未标注标签的样本。
本申请实施例提供的神经网络的训练方法可以在服务器上被执行,还可以在终端设备上被执行。其中该终端设备可以是具有图像处理功能的移动电话、平板个人电脑(tablet personal computer,TPC)、媒体播放器、智能电视、笔记本电脑(laptopcomputer,LC)、个人数字助理(personal digital assistant,PDA)、个人计算机(personalcomputer,PC)、照相机、摄像机、智能手表、可穿戴式设备(wearable device,WD)或者自动驾驶的车辆等,本申请实施例对此不作限定。
参见附图2,本申请实施例提供了一种系统架构200。该系统架构中包括数据库230、客户设备240。数据采集设备260用于采集数据并存入数据库230,训练模块202基于数据库230中维护的数据生成目标模型/规则201。下面将更详细地描述训练模块202如何基于数据得到目标模型/规则201,目标模型/规则201即本申请以下实施方式中所提及的神经网络,具体参阅以下图4-图15中的相关描述。
计算模块可以包括训练模块202,训练模块202得到的目标模型/规则可以应用不同的系统或设备中。在附图2中,执行设备210配置收发器212,该收发器212可以是无线收发器、光收发器或有线接口(如I/O接口)等,与外部设备进行数据交互,“用户”可以通过客户设备240向收发器212输入数据,例如,客户设备240可以向执行设备210发送目标任务,请求执行设备训练神经网络,并向执行设备210发送用于训练的数据库。
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
计算模块211使用目标模型/规则201对输入的数据进行处理。具体地,计算模块211用于:获取目标任务;根据目标任务选择第一网络,第一网络用于执行目标任务;根据目标任务在第一网络中增加至少一个模块,得到第二网络,至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,第一损失模块用于基于第一网络输出的实例边框计算第一损失值,实例边框用于标识输入至第一网络的输入图像中实例的区域,像素级标签模块用于以输入图像中的至少一个像素为单位生成像素级标签,像素级标签用于表示至少一个像素的类别,第二损失模块用于基于第一网络输出的掩膜计算第二损失值,传递模块用于结合第一网络输出的背景信息和实例特征计算梯度值,实例特征为实例边框标识出的输入图像的区域的特征,背景信息包括输入图像中除实例外的背景的信息;获取第一样本集,第一样本集中包括携带标签的至少一个样本;使用第一样本集训练第二网络,得到第三网络,第三网络用于执行目标任务,其中,在训练第二网络的过程中,至少一个模块的输出用于更新第二网络中第一网络的参数。
最后,收发器212将训练得到的神经网络返回给客户设备240,以在客户设备240或者其他设备中部署该神经网络。
更深层地,训练模块202可以针对不同的任务,基于不同的数据得到相应的目标模型/规则201,以给用户提供更佳的结果。
在附图2中所示情况下,可以根据用户的输入数据确定输入执行设备210中的数据,例如,用户可以在收发器212提供的界面中操作。另一种情况下,客户设备240可以自动地向收发器212输入数据并获得结果,若客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到与目标任务关联的数据存入数据库230。
在本申请所提及的训练或者更新过程可以由训练模块202来执行。可以理解的是,神经网络的训练过程即学习控制空间变换的方式,更具体即学习权重矩阵。训练神经网络的目的是使神经网络的输出尽可能接近期望值,因此可以通过比较当前网络的预测值和期望值,再根据两者之间的差异情况来更新神经网络中的每一层神经网络的权重向量(当然,在第一次更新之前通常可以先对权重向量进行初始化,即为深度神经网络中的各层预先配置参数)。例如,如果网络的预测值过高,则调整权重矩阵中的权重的值从而降低预测值,经过不断的调整,直到神经网络输出的值接近期望值或者等于期望值。具体地,可以通过损失函数(loss function)或目标函数(objective function)来衡量神经网络的预测值和期望值之间的差异。以损失函数举例,损失函数的输出值(loss)越高表示差异越大,神经网络的训练可以理解为尽可能缩小loss的过程。本申请以下实施方式中更新起点网络的权重以及对串行网络进行训练的过程可以参阅此过程,以下不再赘述。
如图2所示,根据训练模块202训练得到目标模型/规则201,该目标模型/规则201在本申请实施例中可以是本申请中的自注意力模型,该自注意力模型可以包括深度卷积神经网络(deep convolutional neural networks,DCNN),循环神经网络(recurrent neuralnetwork,RNNS)等等网络。本申请提及的神经网络可以包括多种类型,如深度神经网络(deep neural network,DNN)、卷积神经网络(convolutional neural network,CNN)、循环神经网络(recurrent neural networks,RNN)或残差网络其他神经网络等。
其中,在训练阶段,数据库230可以用于存储有用于训练的样本集。执行设备210生成用于处理样本的目标模型/规则201,并利用数据库中的样本集合对目标模型/规则201进行迭代训练,得到成熟的目标模型/规则201,该目标模型/规则201具体表现为神经网络。执行设备210得到的神经网络可以应用不同的系统或设备中。
在推理阶段,执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。数据存储系统250可以置于执行设备210中,也可以为数据存储系统250相对执行设备210是外部存储器。计算模块211可以通过神经网络对执行设备210获取到的样本进行处理,得到预测结果,预测结果的具体表现形式与神经网络的功能相关。
需要说明的是,附图2仅是本申请实施例提供的一种系统架构的示例性的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。例如,在附图2中,数据存储系统250相对执行设备210是外部存储器,在其它场景中,也可以将数据存储系统250置于执行设备210中。
根据训练模块202训练得到的目标模型/规则201可以应用于不同的系统或设备中,如应用于手机,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端设备等。
该目标模型/规则201在本申请实施例中可以是本申请中的自注意力模型,具体的,本申请实施例提供的自注意力模型可以包括CNN,深度卷积神经网络(deepconvolutional neural networks,DCNN),循环神经网络(recurrent neural network,RNN)等等网络。
参见附图3,本申请实施例还提供了一种系统架构300。执行设备210由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备;执行设备210可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备210可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码实现本申请以下图4-15对应的用于计算设备的神经网络的训练方法或图像处理方法的步骤。
用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备210进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备210进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。具体地,该通信网络可以包括无线网络、有线网络或者无线网络与有线网络的组合等。该无线网络包括但不限于:第五代移动通信技术(5th-Generation,5G)系统,长期演进(long termevolution,LTE)系统、全球移动通信系统(global system for mobile communication,GSM)或码分多址(code division multiple access,CDMA)网络、宽带码分多址(widebandcode division multiple access,WCDMA)网络、无线保真(wireless fidelity,WiFi)、蓝牙(bluetooth)、紫蜂协议(Zigbee)、射频识别技术(radio frequency identification,RFID)、远程(Long Range,Lora)无线通信、近距离无线通信(near field communication,NFC)中的任意一种或多种的组合。该有线网络可以包括光纤通信网络或同轴电缆组成的网络等。
在另一种实现中,执行设备210的一个方面或多个方面可以由每个本地设备实现,例如,本地设备301可以为执行设备210提供本地数据或反馈计算结果。该本地设备也可以称为计算设备。
需要注意的,执行设备210的所有功能也可以由本地设备实现。例如,本地设备301实现执行设备210的功能并为自己的用户提供服务,或者为本地设备302的用户提供服务。
如何从场景(获取采集到的图像)中解析出可供计算机理解的信息,是计算机视觉的核心问题。在自动驾驶、手机终端或安防监控等场景有着广泛的应用。通常,可以根据需要解析图像的场景的复杂程度,分为多种,例如:
图像分类:对整张场景分配类别标签,给出整张图片的内容描述。例如,图像中若包括人、猫、狗等实例,
物体检测:检测场景中的实例,从背景中分离出感兴趣的实例,并确定这一实例的类别和位置(通过实例边框表示)。
语义分割:为场景中的每个像素分配类别标签,只判断类别不区分个体。
实例分割:在物体检测的基础上,给出实例的紧致轮廓。
全景分割:语义分割和实例分割的结合,为每个像素分配类别和实例标签。针对前景进行实例分割,针对背景进行语义分割。前景表示可数的、边界分明的物体,如图像中的人、狗、猫、树等,背景表示不可数,边界模糊的东西,主要由纹理区分,例如“海、沙滩、天空”为背景。
完整且连贯的全景分割是迈向现实世界的重要一步。通常,在实际应用中,可以根据应用场景与实际任务需求的不同而创建针对不同场景的数据集,用于训练高性能的网络模型。随着场景的复杂程度增加,所需要的样本的标签的强度也就越高,也可以理解为标签也就越复杂。例如,各种场景下样本的标签形式如图4所示,在图像分类场景中,需要区分图像中所包括的对象的类别如图4中的“天空、海、毛巾、人、沙滩和凳子”等类别;在物体检测场景中,则需要标记出样本中所包括的前景的框;在实例分割场景中,则需要对图像中所包括的前景对象(即实例)进行分割,并标记每个实例的类别;在背景语义分割场景中,则需要分割出背景中所包括的对象和类别,如图4中所示出的“海、沙滩、天空”;而在全景分割场景中,则需要对图像中的前景和背景都进行分割,并标记处每个前景或者背景的类别。由图4可知,标签越复杂的场景,对样本进行标注的难度也就越大,所花费的时长也越长,导致成本也就越高。
在一些场景中,如实例分割、全景分割的高性能网络模型通常依赖大量全监督的训练数据。例如实例分割(或者称为前景分割)中,基于候选区域的Mask-RCNN是最常用的神经网络。而此场景中若仅使用全监督样本来进行训练,训练数据采集的成本将非常高。
在另一些场景中,可以通过反复用图像级的类别标注训练分类模型将CAM作为像素级伪标注,接着用无监督分割算法生成实例级伪标注,并用这些伪标注更新网络模型以得到符合所有伪标注的弱监督全景分割模型。然而只使用前景边界框标注和背景图像级标注,基于多步骤迭代的算法,不能执行端到端训练。其性能依赖于估算标注步骤的超参设定,会导致误差累计,对实际应用造成困难。
在另一些场景中,同时需要实例级标注数据以及图像级标注数据作为输入,用CAM注意力模块能使得图像级标注能直接用于端到端训练,并用混合监督级联模块利用大量图像级标注,提高模型精细度。然而,此种方式仅适用于物体检测任务,具有很大的局限性。
此外,在存在大量未标注样本的场景下,单独使用少量全监督标注数据或大量弱监督标注(如图像级标注)数据训练的模型都难以达到较高的输出精度,若对大量未标注样本进行全监督标注,则需要花费较多成本,导致神经网络的训练成本增加。
因此,本申请提供一种神经网络的训练方法,用于根据实际的任务需求选择合适的网络模块来辅助神经网络进行更新,在尽可能降低成本的情况下,提高神经网络的性能,且通过增加模块来适应更多的场景,泛化能力非常强。下面对本申请提供的神经网络的训练方法进行详细介绍。
首先,为便于理解,对本申请提供的神经网络的训练方法的一些应用场景进行示例性说明。
应用场景一、无人车感知系统中的全景分割
无人车感知系统中的除了需要检测当前行驶场景中的障碍物,如行人、车辆、交通标志、车道线检测等,还需要了解行驶的道路状况。自动驾驶场景的输入分辨率通常很大,导致现有全监督方法的标注成本过高。此时本申请提供的方法可以根据少量全景分割标注样本,辅助网络训练得到最优标注分配比例,根据该比例增加训练样本,最大化提高网络性能。
应用场景二、云计算平台上复杂场景解析训练方案
部署在云计算平台上,对用户提供的数据集针对性的训练网络模型。现有云平台均有场景解析模型训练方案(如目标检测),但都被动式的依赖于大量用户上传的全监督标注样本。通常,采集大量如实例级标注、全景分割级标注的图片代价高昂。而本申请提出的训练框架可根据用户的任务需求,无缝接入指定的模型中,可以利用云上积累的大量数据,实现依靠少量用户上传数据且无需人工参与调试就能训练高性能模型。
下面参阅图5,本申请提供的一种神经网络的训练方法的流程示意图,如下所述。
501、获取目标任务。
其中,该目标任务可以是接收到用户输入的任务也可以是根据设备的需求所建立的任务。
具体地,该目标任务可以包括分类、目标检测、语义分割、实例分割或者全景分割等任务。
例如,如前述图2所示的系统,该目标任务可以是用户通过客户设备向执行设备201发送的输入数据中携带的数据,以请求执行设备训练用于执行目标任务的神经网络。
502、根据目标任务选择第一网络。
可以理解为,在得到目标任务之后,即可基于该目标任务选择一个初始网络作为第一网络。例如,可以从多个初始网络中选择其中一个作为第一网络。该初始网络可以用于执行目标任务,例如,若目标任务是分类任务,则可以选择分类网络作为初始网络;若目标任务为实例分割任务,则可以选择实例分割网络作为初始网络;若目标任务是全景分割任务,在可以选择全景分割网作为初始网络等。
通常,不同的目标任务选择的第一网络的结构可能相同,也可能不相同。例如,针对某一任务,可以都选择RNN作为初始网络,在训练的过程中,可通过不同的样本来进行训练,实现不同的输出效果。
503、根据目标任务在第一网络中增加至少一个模块,得到第二网络。
其中,本申请实施方式提供了多种网络模块,每种网络模块用于在训练第一网络的过程中,辅助对第一网络的更新,如使用第一网络生成的数据生成更新第一网络所使用的损失值或梯度值,或者为样本生成用于更新第一网络的标签等。该至少一个模块与第一网络共同构成第二网络,该至少一个模块的输出用于在训练第二网络的过程中更新第一网络的参数。
为便于理解,先对第一网络的可能的输出结果进行示例性介绍。如实例边框、实例特征、掩膜、实例类别或背景信息等信息。该实例边框即标识出了输入图像中实例所在区域的边框,如输入图像中包括实例为狗,则第一网络输出的实例边框即标记出了狗在输入图像中的区域。实例特征即基于实例边框提取到的特征,如从输入图像中所述实例边框标识的区域中提取特征,即可得到实例特征。掩膜即用于突出输入图像中的实例,如掩膜的尺寸可以与输入图像相同,掩膜中的像素点和输入图像中的像素点一一对应,掩膜中与输入图像对应的且包括了实例的区域的像素值可以设置为1,其余未包括实例的区域的像素值可以设置为0。实例类别即表示图像中的实例的类别,如输入图像中的实例包括猫、狗,则第一网络输出的实例类别中也可能包括猫或狗等类别。背景信息即输入图像中除实例之外的背景的信息,如标记出了背景的背景边框、对背景进行分割的背景分割信息等。具体地,前述的背景信息通常与目标任务的种类相关,具体背景信息包括:背景边框、从输入图像中分割出的背景的部分或输入图像中的背景的类别中的至少一种,背景边框用于标识输入图像中除实例外的背景的区域。例如,当目标任务为分类任务时,背景信息中可以包括输入图像中的背景的类别,当目标任务是全景分割时,背景信息可以包括背景边框或者从输入图像中分割出的背景的像素等。
具体地,该至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,第一损失模块用于基于第一网络输出的实例边框计算第一损失值,像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,该像素级标签即表示对应的一个或多个像素的类别,第二损失模块用于基于第一网络输出的掩膜计算第二损失值,传递模块用于结合第一网络输出的实例特征和背景信息计算梯度值。该至少一个模块的输出用于在训练第二网络的过程中更新第二网络的参数。例如,若该第二网络中包括第一损失模块和第二损失模块,则可以对第一损失模块和第二损失模块计算出的损失值进行加权融合,还可以融合第一网络的输出和样本携带的标签之间的损失值,从而根据融合得到的最终的损失值结合反向更新算法来更新第二网络的参数,得到更新后的第二网络。又例如,在得到传递模块输出的梯度值之后,即可直接根据该梯度值反向更新第二网络的参数,得到更新后的第二网络。
更具体地,可以选择与目标任务适配的模块,如可以选择涉及到执行目标任务时的中间数据对应的模块。
下面对如何选择与目标任务适配的模块进行详细介绍。
前述的至少一个模块中的部分模块可以用于基于第一网络的输出结果来计算损失值,如第一损失模块或第二损失模块可以用于基于第一网络的输出结果计算出损失值,从而使在训练第二网络的过程中可以对其中的第一网络进行反向更新。像素级标签模块则可以用于为未标注的样本添加像素级标签(或者称为伪标签),即使部分样本不具有像素级标签,也可以由像素级标签模块来生成伪标签来计算损失值,从而达到更新第一网络的目的。传递模块则可以用于在对图像的前景和背景分别进行处理时,传递前景和背景对应的梯度值,相当于融合了前景和背景的信息来计算梯度值,从而可以基于背景和前景对应的梯度值来更新第一网络,使更新后的网络在前景和背景部分的表现更好。可以理解为,第一损失模块和第二损失模块可以用于对输入图像的实例部分进行处理,像素级标签模块可以用于生成与输入图像的背景相关的像素级标签,传递模块可以用于结合第一网络输出的实例部分和背景部分的信息来进行处理。
通常,若执行目标任务需要对输入图像的实例部分进行处理,则可以从上述的多个模块中选择与实例相关的模块。若执行目标任务需要对输入图像的背景部分进行处理,则可以从上述的多个模块中选择与背景相关的模块,
例如,若目标任务包括目标检测,即检测输入的图像中的实例,并通过实例边框的方式标记出图像中的实例,则前述的至少一个模块可以包括第一损失模块,该第一损失模块可以用于基于第一网络输出的多个实例边框中的部分实例边框来计算损失值,从而完成对第一网络的更新。因此即使未标注实例边框的样本,也可以计算出针对实例边框的损失值,进而更新第一网络。可选地,也可以选择在第一网络中增加传递模块,从而使用传递模块得到的前景信息来对第一网络进行更新。
又例如,若目标任务包括实例分割任务,即分割输入的图像中的前景,则可以选择第一损失模块和第二损失模块,与第一网络组成第二网络。在进行实例分割的过程中,可以通过第一网络输出预测的包括了实例的实例边框,而对于一些不存在实例边框的样本中,若仅通过第一网络输出的预测边框则无法计算出损失值,本申请提供的第一损失模块,可以通过第一网络输出的多个候选实例中的部分候选实例来计算损失值,因此即使未标注实例边框的样本,也可以计算出针对实例边框的损失值,进而更新第一网络。而第二损失模块可以用于计算第一网络输出的实例边框和掩膜,利用边界框来计算出损失值,相当于构造了包括实例又尽可能小的掩膜的损失值,从而对第一网络进行更新。因此,在实例分割任务中可以结合第一损失模块和第二损失模块来更新第一网络,从而辅助第一网络的更新,从而高效地完成模型更新,且在相同的样本的基础上,通过本申请提供的方法训练得到的模型的输出精度更高。可选地,也可以选择在第一网络中增加像素级标签模块或传递模块,如可以像素级标签模块可以用于辅助第一网络生成的掩膜的网络模块的更新,或者也可以使用传递模块得到的前景信息来对第一网络进行更新。
又例如,若目标任务包括语义分割,则可以选择像素级标签模块。其中,像素级标签模块可以用于对未标注像素级标签的图像生成伪标签,进而使后续可以计算出基于像素级标签的损失值,从而完成对第一网络的更新。可选地,还可以选择其他模块,如第一损失模块、第二损失模块或传递模块等来进一步辅助更新第一网络,例如,若在进行语义分割时,可以结合前景的信息来更新第一网络,则可以选择传递模块和第一损失模块,若需提高预测出的背景的准确度,也可以增加第二损失模块,从而提高第一网络的输出精度。
还例如,若目标任务包括全景分割,则可以选择第一损失模块、像素级标签模块、第二损失模块和传递模块。通常,全景分割可以包括对实例和背景的分割,而第一损失模块、像素级标签模块、第二损失模块和传递模块,结合起来涉及到了对实例、背景以及实例与背景结合来对第一网络进行更新,从而全面覆盖了第一网络的更新过程,使最终得到的更新后的模型的输出精度更高。
此外,在本申请提供的多种模块中,即使在一些弱监督样本的场景下,即样本仅具有部分标签,也可以使用本申请提供的模块来计算出损失值,因此无需对样本进行全监督标注,即标注出样本的所有标签,也可以对第一网络进行更新,得到更新后的用于执行目标任务的模型。
此外,在对第一网络进行更新的同时,也可以对本申请提供的模块进行同步更新,从而使更新后的第二网络的输出更准确。
504、获取第一样本集。
其中,该第一样本集中包括了携带至少一种标签的至少一个样本。
具体地,该第一样本集中可以包括至少一个全监督样本和/或至少一个弱监督样本,全监督样本为携带了前景标签和背景标签的样本,前景标签即与图像中前景部分相关的标签,如实例边框、实例类别、实例分割图或突出实例的掩膜等,背景标签即与图像中的背景部分相关的标签,如背景类别、背景分割图、像素级标签或背景边框等,弱监督样本携带的标签的种类少于全监督样本。
更具体地,在一些可能的场景中,全监督样本携带的标签包括:前景标签、类别标签、实例边框和背景标签,前景标签包括以图像中的前景的至少一个像素为单位的类别标签,类别标签用于表示全监督样本中包括的实例的类别,实例边框用于表示实例在图像的区域,背景标签包括以图像中的背景的至少一个像素为单位的类别标签;弱监督样本携带的标签包括前景标签、类别标签、实例边框或背景标签中的最多三种。
可选地,获取第一样本集的过程具体可以包括:获取第二样本集,该第二样本集中包括多个全监督样本;设定不同的样本比例,即全监督样本的数量和弱监督样本的数量比例或者各种标签所占的比例等,然后根据不同的比例基于第二样本集构建多个第三样本集,多个第三样本集中全监督样本所占的比例不相同,或者某一种标签所占的比例不同;然后使用多个第三样本集分别对第二网络进行训练,得到多个训练结果,该训练结果具体可以包括训练后的第二网络的输出准确度、召回率或者重叠度(IOU);根据多个训练结果以及多个样本比例确定目标比例;对未标注样本中的目标比例的样本添加标签,即可得到第一样本集。
例如,在得到多个全监督样本之后,可以设定多种样本比例,如25%、50%、75%等,然后基于这些比例,对已有的全监督样本进行退化,或者对部分未标注样本和弱监督样本进行标注,使得到的样本集中全监督样本所占的比例为25%、50%或75%等,其余为某一种弱监督标签。或者,若得到多个全监督样本和多个弱监督样本,可以根据25%、50%、75%等比例对全监督样本和弱监督样本进行混合,使全监督样本所占的比例分别为25%、50%或75%等,得到多种样本集。然后使用多种样本集对第二网络进行训练,得到训练后的第二网络的输出准确度、召回率或者IOU等,然后根据训练后的第二网络的输出准确度、召回率或者IOU等训练结果拟合训练结合和样本比例之间的关联关系,然后根据该关联关系计算出最优比例,并基于该最优比例对未标注样本进行标注,从而得到最优的样本集,即第一样本集。
具体地,计算目标比例的具体方式可以包括:根据多个训练结果和多个样本比例,生成训练第二网络使用的样本集中每种标签的数量和训练结果之间的关联关系,然后基于该关联关系计算出最优的比例,得到目标比例。
更具体地,可以根据关联关系计算出训练第二网络使用的样本集中所有标签的数量的增量和训练结果的增量之间的函数关系。然后根据该函数关系计算出目标比例。
更进一步地,可以预先确定标注代价,该标注代价即为样本添加标签的成本,该标注代价可以是由用户输入的标注代价,也可以是根据实际需求计算出的标注代价。然后根据函数关系计算出在标注代价的约束下的最优比例,将该比例作为标注样本的目标比例。例如,可以基于函数关系和给定的标注代价,计算出帕累托前沿,相当于在某种标注代价的约束下标注比例和训练结果之间的关系,然后选择最优比例作为目标比例,即在给定的标注代价约束下,得到最优训练结果的比例。
因此,本申请实施方式中,可以根据多种样本比例来训练第二网络,从而生成样本比例和训练后的第二网络的训练结果之间的关系,并根据该关系,在给定的标注代价的约束下,生成最优比例,并根据最优比例构建样本集,从而使最终训练神经网络的过程,可以达到成本和训练结果的均衡,在符合成本要求的前提下,得到训练结果更好的神经网络。
505、使用第一样本集训练第二网络,得到第三网络。
在得到第一样本集之后,即可使用第一样本集对第二网络进行训练,得到训练后的第二网络,即第三网络。其中,在训练第二神经网络的过程中,前述步骤503中提及的至少一个模块的输出用于更新第二神经网络的参数。
例如,可以基于第一网络自身的输出与样本携带的标签计算出第三损失值,然后对该第三损失值,与前述第一损失模块或第二损失模块输出的损失值进行加权融合,得到最终的损失值,并基于最终的损失值对第二网络进行反向传播,计算出梯度值,并根据该梯度值进行求导更新第二网络的参数。又例如,还可以基于前述损失值对计算得到的梯度值,和传递模块计算出的梯度值来进行融合,从而根据融合后的梯度值来进行求导,并根据第二网络的参数,得到更新后的第二网络。
其中,在对第二网络进行训练的过程中,可以对其中的第一网络进行训练,也可以对第一网络和增加的模块同时进行训练,即同时更新增加的模块的参数,从而得到训练后的网络。第三网络中可以包括训练后的第一网络,可选地,也可以包括与第一网络同时进行训练的模块。例如,在对第二网络进行训练之后,可以从训练后的第二网络中截取训练后的第一网络的部分,即删除前述步骤503中增加的模块,从而减小训练后的神经网络的大小。
因此,本申请实施方式中,通过对网络进行模块化的方式,为需要训练的神经网络添加模块,从而辅助神经网络的训练,使在有限样本集的场景下,得到训练效果更好的神经网络。并且,在训练神经网络之前,还可以通过使用全监督样本占用不同比例的样本集对神经网络进行训练,得到全监督样本所占比例与神经网络的训练结果之间的关系,然后基于该关系选择出给定成本约束下,训练结果最优的比例,并基于该比例来构建样本集并对神经网络进行训练,从而在给定成本约束下,得到更优的神经网络。
前述对本申请提供的方法的流程进行了说明,下面结合更具体的场景,对本申请提供的神经网络的训练方法的流程和神经网络的具体结构进行更详细的说明。
为便于理解,下面对前述步骤503中提及的至少一个模块进行示例性介绍。
首先,对该至少一个模块的输入数据进行介绍。该输入数据可以是第一网络的输出数据,也可以是训练所使用的样本集中的样本的数据。
假设前景类别数为Cth,背景类别数为Cst个。输入至第一网络的图像可以预设多个候选实例区域,也可以由第一网络按照预先设定的像素来划定候选实例区域。第一网络可以对输入的图像中的候选实例区域进行特征提取,得到候选实例区域的特征
Figure BDA0002925072720000161
其中,N为实例个数,d为特征通道数。第一网络输出的相关的实例预测结果包括,实例边框/>
Figure BDA0002925072720000162
实例类别概率φcls、掩模/>
Figure BDA0002925072720000163
和背景分割图为/>
Figure BDA0002925072720000164
1、第一损失模块(简称为Cls2Box):通常可以包括一个全连接层,用于进行MID,使用实例边框来计算损失函数的损失值(或者称为第一损失值),从而在更新第二网络中的过程中,可以基于损失值来进行反向传播计算第二网络的梯度值。具体地,可以是根据第一网络输出的
Figure BDA0002925072720000165
中的一部分来预测R个候选实例区域包括某个类别的实例的置信度φdet,然后φdet按候选区域进行softmax,和第一网络输出的预测结果φcls相乘后作为最终分类损失,结合第一网络输出的前景类别标签/>
Figure BDA0002925072720000169
计算MID损失。
在确定实例边框时,可通过φdet进一步计算有监督候选框的置信度损失,进一步提高训练后得到的网络的性能,置信度损失公式表示:
Figure BDA0002925072720000166
其中,若候选实例区域i经边界框标注判定为背景
Figure BDA0002925072720000167
候选实例区域i被判定为j类,则/>
Figure BDA0002925072720000168
Nj表示被判定为j类的候选实例区域个数,R表示候选实例。
2、像素级标签模块(以下简称为Cls2Pixel):可以包括一个全局平均池化层和一个分类全连接层。可以用于对输入的图像进行标注,得到像素级伪标签,即以一个或多个像素点为单位进行标注得到的标签。
其中,可以基于第一网络输出的分类结果以及背景类别标签
Figure BDA0002925072720000171
以交叉熵损失函数作为约束,利用分类全连接层的权重和输入的从图像中提取到的网络特征图,生成类激活热力图CAM作为图像的伪标签。通常,为了约束生成的伪标注保持颜色与空间位置的一致性,可以对伪标签增加能量正则项,从而实现用背景类别标签/>
Figure BDA0002925072720000172
替代素级标签预测。
3、第二损失模块(以下简称为Box2Mask):可以用于计算包括了实例且尽可能小的掩膜的第二损失值。
具体地,可以基于第一网络输出的实例边框
Figure BDA0002925072720000173
和掩模/>
Figure BDA0002925072720000174
使用实例边框紧致先验构造MIL损失LMIL。其中,可以在边界框中随机采样横线和竖线作为正包B+,在边界框外的采样结果作为负包B-,p表示像素位置,该损失函数意义为,让第一网络输出的掩模在边界框中(正包)的最大值尽可能等于1(属于实例),边界框外的(负包)掩模值尽可能等于0(属于背景),对应以下损失函数中第二项最小化负包中最大的值;除此之外,还可以增加分割平滑正则项(掩模预测的每个像素位置和领域像素位置的结果尽可能一致),可以避免训练后得到的网络只分割可判别的部位,由此将边框标签/>
Figure BDA0002925072720000175
的监督信息传递给实例分割网络。本模块社涉及的损失函数可以表示为:
Figure BDA0002925072720000176
4、传递模块,以下简称为GR(graph reasoning)模块:输入为第一网络输出的背景信息(如背景像素、背景类别等)和实例边框(或者实例边框标识出的实例的特征,即实例特征),利用前景和背景的一致性,在背景像素级标签
Figure BDA0002925072720000177
和实例边框标签/>
Figure BDA0002925072720000178
(本申请以实例边框为例进行示例性说明,也可以替换为实例特征)之间相互传递监督信息,如梯度值。通常,如果输入的样本只有前景标注,没有背景标注,也可以传递监督信息。因此即使只有背景类别监督时,本申请仍可以向预设模型的前景分支传递约束信号。可以理解为,传递模块融合了前景和背景的信息来即算梯度值,从而在使用梯度值更新第一网络的过程中,参考了前景和背景信息来更新第一网络,使最终得到的第一网络在前景和背景部分的表现都更好。
前述对本申请提供的多个模块进行了示例性介绍,下面基于前述的多个模块,对该多个模块的应用场景进行示例性介绍。
具体地,本申请提供的神经网络的训练方法可以划分为多个步骤,示例性地,如图6所示,可以划分为:
601、构建待训练网络。
其中,在构建训练网络之前,还可以接收目标任务,该目标任务可以是由用户输入的任务,如用户可以通过输入数据指定训练一个用于进行全景分割的网络、或者用于进行实例分割的网络、或者用于进行背景语义分割的网络等。那确定目标任务之后,即可根据目标任务选择一个执行目标任务的网络,如选择ResNet、RNN或CNN等中的一个或多个作为初始网络(或者称为第一网络),然后从前述的四种模块中选择其中一个或者多个与初始网络连接,得到待训练的网络N(或者称为第二网络)。
例如,如图7A所示,若目标任务包括全景分割,则从前述的四种模块中选择Cls2Box、Cls2Pixel、Box2Mask和GR与初始网络建立连接,得到待训练的网络N。
又例如,如图7B所示,若目标任务包括实例分割,则从前述的四种模块中选择Cls2Box和Box2Mask与初始网络建立连接,得到待训练的网络N。
又例如,如图7C所示,若目标任务包括语义分割,则从前述的四种模块中选择Cls2Pixel与初始网络建立连接,得到待训练的网络N。可选地,在一些语义分割的场景中,除了选择Cls2Pixel,还可以选择Cls2Box、Box2Mask或GR中的一个或多个与初始网络建立连接,得到待训练的网络N。
还例如,如图7D所示,若目标任务包括目标检测,则可以从前述的四种模块中选择Cls2Box与初始网络建立连接,得到待训练的网络N。
602、预测模型质量和标注比例的关系。
在得到待训练的网络N之后,即可预测待训练的网络N的模型质量和标注比例的关系,标注比例即对待训练的网络N进行训练使用的样本集中全监督样本所占的比例,或者表示对待训练的网络N进行训练使用的样本集中各种标签所占的比例。
具体地,预测模型质量和标注比例的关系的详细步骤可以参阅图6所示出的步骤602,具体可以包括:
首先,基于全监督标注数据集V构造不同比例(即每种标签所占的比例)的训练集,可以理解为每个训练集中全监督样本所占的比例不相同。并划分训练集Vtrain和验证集Vval。例如,构造不同比例ρi的单一弱监督标注i和全监督标注混合的训练集
Figure BDA0002925072720000181
Figure BDA0002925072720000182
其中/>
Figure BDA0002925072720000183
表示只用弱监督i标注。
然后,使用不同全监督样本比例ρi的训练集训练网络N,并在训练网络N的过程中记录训练结果,如训练后的网络N的输出准确度、召回率或者IOU等。
然后回归单位标注与网络N的性能增量速率关系
Figure BDA0002925072720000184
即计算样本集中每种标签的数量和训练结果之间的关联关系。对训练结果进行线性差值运算,用三次方回归得到各种单位监督标注i与网络性能增量关系/>
Figure BDA0002925072720000185
积分增量关系
Figure BDA0002925072720000186
得到网络性能增量与不同标注比例ρi的函数/>
Figure BDA0002925072720000187
随后,计算分配比例ρ与网络性能总增量函数
Figure BDA0002925072720000188
即样本集中所有标签的数量的增量和所述训练结果的增量之间的函数关系。
603、混合监督训练模型。
在得到样本集中所有标签的数量的增量和所述训练结果的增量之间的函数关系之后
Figure BDA0002925072720000189
即可基于给定的标注成本,对未标注数据U进行标注,得到混合监督标注数据,即第一样本集。
具体地,可以根据多目标优化的方式,求得帕累托前沿,如图6中所示出的步骤603,根据实际需求采样最优标注分配比例ρ*,即表示全监督样本的比例或者各种标签所占的比例。然后基于该比例ρ*对大量未标注数据U进行标注,得到混合监督标注数据。并使用该混合监督标注数据对网络N进行训练,得到训练后的网络。
因此,在本申请实施方式中,可以通过提前使用不同全监督样本占比的样本集对网络N进行训练,从而根据训练结果生成每种标签的占比和训练结果之间的关系,从而在后续给定标注成本的前提下,选择出最优的比例来构造混合监督标注数据,完成对网络N的训练,从而在给定成本的约束下,得到性能最优的网络。
为便于理解,下面结合具体的任务,对本申请提供的神经网络的训练方法进行更详细的介绍。
任务一、全景分割任务
需要说明的是,以下将样本的标签的种类分别表示为:全监督的全景标签
Figure BDA00029250727200001810
和弱监督标注,弱监督标注可以分为:类别标签/>
Figure BDA00029250727200001811
实例边框/>
Figure BDA00029250727200001812
和背景像素标签/>
Figure BDA00029250727200001813
全景标签/>
Figure BDA00029250727200001814
包括了类别标签/>
Figure BDA00029250727200001815
实例边框/>
Figure BDA00029250727200001816
和背景像素标签/>
Figure BDA00029250727200001817
还可以包括前景像素标签/>
Figure BDA00029250727200001818
便于理解,各种类别的标签之间的关系可以参阅图8所示,其中,全景标签包括了类别标签/>
Figure BDA0002925072720000191
实例边框/>
Figure BDA0002925072720000192
和背景像素标签/>
Figure BDA0002925072720000193
性能指标可以表示为
Figure BDA0002925072720000194
PQ表示全景分割的质量。
每种标注需要的代价根据统计到的每个标注员需要的标注秒数的倒数计算得到:
Figure BDA0002925072720000195
首先,选择的初始网络的结构可以包括也可以替换为全景特征金字塔网络(panoptic FPN)。
将本申请提供的神经网络可以称为成本性能均衡的训练网络(Cost QualityBalanced Network,CQB-Net),CQB-Net=UPSnet+Box2Mask+Cls2Box+GR+Cls2Pixel,即网络N。
示例性地,网络N的具体结果和处理流程可以参阅图9。
Cls2Box和Box2Mask连接在初始网络的前景预测分支(Thing Branch)中。其中,Cls2Box模块由一个全连接层组成,接受Thing Branch输出的每个候选区域的分类预测结果,即前景类别概率φcls作为输入,生成边框预测的替代约束任务;Box2Mask模块,不包含网络结构,根据Thing Branch输出的实例边框B和掩模M的预测结果,利用边界框紧致先验构造MIL损失,并产生正则约束项生成对Thing Branch输出掩模M的部分网络的损失约束。
Cls2Pixel模块连接初始网络的背景预测分支(Stuff Branch),输入Stuffbranch产生的特征图(如图10中的特征图
Figure BDA0002925072720000196
),经过全局平均池化层后输入分类器(图10中未示出)预测类别,将分类器权重W和输入特征图/>
Figure BDA0002925072720000197
生成类激活热力图CAM作为分割的伪标注,并且对伪标注加上一个能量正则项,生成CAM的公式可以表示为:
Figure BDA0002925072720000198
/>
Figure BDA0002925072720000199
CAM=argmax(concatenate(CAMt,CAMs))
p表示像素位置,γ是超参数,c表示背景类别。
GR(Graph Reasoning)模块用来建立Thing Branch和Stuff Branch的联系,互相传递监督信息。将Thing Branch输出的候选实例区域的特征
Figure BDA00029250727200001910
作为前景图的节点特征Xth;通过Stuff Branch输出的特征图/>
Figure BDA00029250727200001911
和预测结果S,计算背景图的节点特征/>
Figure BDA00029250727200001912
根据前景和背景节点特征相互组合拼接后经过全连接层和softmax操作,计算邻接矩阵A(例如Ath表示前景节点特征两两拼接后变换):/>
Figure BDA00029250727200001913
根据图卷积神经网络计算得到增强后的候选实例区域特征(即增强后的实例特征)/>
Figure BDA00029250727200001914
和背景分割特征图/>
Figure BDA00029250727200001915
分别与之前的特征/>
Figure BDA00029250727200001916
和/>
Figure BDA00029250727200001917
拼接后输出新的预测结果。
在得到网络N之后,即可进行后续的选择目标比例和训练网络N的操作。
例如,分别构造ρi=10%,30%,50%,70%,90%,
Figure BDA00029250727200001918
的训练集/>
Figure BDA00029250727200001919
然后,将构建得到的训练集中的样本输入网络N,并收集训练结果,如训练后的网络的输出准确度。根据插值和三次方程回归计算每种标注的相对分割质量增量
Figure BDA00029250727200001920
为:
Figure BDA0002925072720000201
Figure BDA0002925072720000202
Figure BDA0002925072720000203
Figure BDA0002925072720000204
Figure BDA0002925072720000205
Figure BDA0002925072720000206
Figure BDA0002925072720000207
随后,根据多个监督信号相对增量的连乘计算总增量
Figure BDA0002925072720000208
根据多目标优化
Figure BDA0002925072720000209
构建帕累托前沿,从而挑选出满足需求的最优分配比例/>
Figure BDA00029250727200002010
随后根据选择出的最优分配比例
Figure BDA00029250727200002011
对大量未标注的样本进行标注,得到样本集(即第一样本集)。
然后使用样本集训练网络N,输出训练后的网络。
因此,本申请实施方式中,在给定标注成本的约束下,选择出了最优分配比例,从而使得在满足给定标注成本的情况下,得到性能更优的训练后的网络。
为便于理解,下面对本申请提供的网络的效果进行更形象的说明。
首先,测试数据可以选择MS-COCO,包括80个前景类别和53背景类类别,对应约11.8万张训练图片与5千张测试图片。
评价标准可以设定为全景质量PQ,其计算公式可以表示为:
Figure BDA00029250727200002012
RQ是物体检测中应用广泛的F1 score,用来计算全景分割中每个实例物体识别的准确性,SQ表示匹配后的预测的分割区域与真实标注的分割区域的mIOU(平均重叠度,即计算每一类样本的IoU然后求平均),
Figure BDA00029250727200002013
FP表示假正例,FN表示假负例,TP表示真正例。例如,只有当预测分割区域与真实标注的分割区域的IOU>0.5时,认为两个分割结果是匹配的。
图10展示了本申请通过CQB-Net仿真的不同标注最优分配比例和实际性能提升保持一致。且根据排雷托前沿上挑选的分配比例(图10中所示的连线上点)性能优于随机分配标注(图10中所示的离散点)的网络性能。并且和现有的使用全监督样本进行训练的方法比较,本申请的结果在节省30%的标注成本时网络预测精度优于最先进的基于全监督样本的全景分割方法。
此外,以一个具体的图像为例,如图11所示,示出了输入的原图、基于全监督样本训练得到的神经网络的输出结果、本申请提供的CQB-Net的输出结果和UPS-Net的输出结果的对比示意图。显然,通过本申请提供的CQB-Net输出的全景分割结果,所分割出的前景和背景更精细,所包括含的实例也越多,尤其针对不规则形状的实例,实现的全景分割效果更好。
此外,分别将本申请提供的四个模块在三个子任务上与现有半监督、弱监督、混合监督的方法比较,可以发现本申请的各个模块在各种场景解析任务上都优于现有方案。具体来说,本申请的Cls2Box和GR模块在物体检测上优于现有方案;Cls2Pixel和GR模块在语义分割上的结果优于现有方案;BoxMask模块在实例分割上的结果优于现有方案,如图12所示。
任务二、实例分割任务
其中,实例分割任务与全景分割的区别在于,全景分割任务对输入的图像中的前景和背景都进行分割,而实例分割任务仅对输入的图像中的前景进行分割。因此,如图13所示,在选择CQB-Net的结构时,初始网络可以选择Mask-RCNN,CQB-Net=Mask-RCNN+Box2Mask+Cls2Box。
其中,各个模块的处理过程与前述图9中类似,对于相似部分此处不再赘述。
分别构造ρi=10%,30%,50%,70%,90%,
Figure BDA0002925072720000211
的训练集/>
Figure BDA0002925072720000212
然后,使用训练集
Figure BDA0002925072720000213
对CQB-Net进行训练,并在训练完成后收集每个训练集的训练结果,计算的相对mIoU的增量/>
Figure BDA0002925072720000214
随后,根据帕累托前沿挑选满足需求的最优分配比例
Figure BDA0002925072720000215
根据最优分配比例训练CQB-Net,得到训练后的神经网络。
任务三、目标检测
其中,目标检测即检测场景中的实例,从背景中分离出感兴趣的实例,并确定这一实例的类别和位置(通过实例边框表示)。
输入标注类型分别为:全监督样本的实例检测标签
Figure BDA0002925072720000216
和弱监督标注:类别标签/>
Figure BDA0002925072720000217
量化网络性能指标可以表示为E=mAP。
如图14所示,初始网络可以选择一阶段检测器RetinaNet或二阶段检测器特征金字塔网络(feature pyramid networks,FPN)等。
CQB-Net=Cls2Box+RetinaNet/FPN。
分别构造ρi=10%,30%,50%,70%,90%,
Figure BDA0002925072720000218
的训练集/>
Figure BDA0002925072720000219
然后,使用训练集
Figure BDA00029250727200002110
对CQB-Net进行训练,并在训练完成后收集每个训练集的训练结果,计算的相对mAP的增量/>
Figure BDA00029250727200002111
随后,根据帕累托前沿挑选满足需求的最优分配比例
Figure BDA00029250727200002112
根据最优分配比例训练CQB-Net,得到训练后的神经网络。
因此,本申请实施方式提供的CQB-Net,是面向多种复杂场景解析任务的统一混合监督训练框架,适应各种类型的标注数据,且在各种场景下都能够得到输出更优的神经网络。本申请提供的多种模块可以无缝的嵌入任意模型中,不会对模型推理阶段带来额外计算附担,易部署到实际业务中。并且,本申请提出的最优标注成本分配方案考虑同时优化标注成本和模型性能,能够大大节省实际业务更替的成本开销,减少训练成本,更贴近频繁迭代的业务场景。
此外,结合前述的神经网络的训练方法,参阅图15,本申请还提供一种图像处理方法。具体可以包括:
1501、获取输入图像。
其中,该输入图像可以是待处理图像,该输入图像可以是由用户输入的图像。如该输入图像可以是由用户输入的需要进行分类、实例分割、语义识别或者全局分割的图像等。
1502、将输入图像作为第三网络的输入,输出实例边框、掩膜或背景信息中的至少一种。
其中,实例边框用于标识输入图像中实例的区域,背景信息包括输入图像中处实例外的背景的信息。
该第三网络是使用第一样本集对第二网络进行训练得到,第二网络中包括第一网络和至少一个模块,第一网络是根据目标任务选择的网络,至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,第一损失模块用于基于第一网络输出的实例边框计算第一损失值,实例边框用于标识输入至第一网络的输入图像中实例的区域,像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,像素级标签用于表示至少一个像素的类别,第二损失模块用于基于第一网络输出的掩膜计算第二损失值,传递模块用于结合第一网络输出的背景信息和实例特征计算梯度值,实例特征为实例边框标识出的输入图像的区域的特征,背景信息包括输入图像中除实例外的背景的信息,其中,该至少一个模块的输出用于在训练第二网络的过程中更新第二网络的参数。
在一种可能的实施方式中,在得到训练后的第二网络之后,可以从该训练后的第二网络中选择训练后的第一网络作为第三网络,也可以直接将训练后的第二网络作为第三网络。
更具体地,第三网络的结构,以及训练第二网络得到第三网络的过程可以参阅前述图4-图14的相关描述,此处不再赘述。
因此,本申请实施方式中,通过前述图4-图14训练得到的网络,可以用于对图像进行处理,从而得到处理结果。在前述的有限的成本中得到性能更优的网络的基础上,使对输入图像进行处理得到的处理结果更准确。
前述对本申请提供的神经网络的训练方法的流程进行了详细说明,下面结合前述的方法流程,对本申请提供的神经网络训练装置的结构进行说明,该神经网络训练装置用于执行前述图5-图14的方法步骤。
参与图16,本申请提供的一种神经网络训练装置的结构示意图,包括:
获取模块1601,用于获取目标任务;
选择模块1602,用于根据目标任务选择第一网络,该第一网络用于执行目标任务;
增加模块1603,用于根据目标任务在第一网络中增加至少一个模块,得到第二网络,至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,所述第一损失模块用于基于所述第一网络输出的实例边框计算第一损失值,所述实例边框用于标识输入至所述第一网络的输入图像中实例的区域,所述像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,所述像素级标签用于表示所述至少一个像素的类别,所述第二损失模块用于基于所述第一网络输出的掩膜计算第二损失值,所述传递模块用于结合所述第一网络输出的背景信息和实例特征计算梯度值,所述实例特征为所述实例边框标识出的所述输入图像的区域的特征,所述背景信息包括所述输入图像中除实例外的背景的信息;
获取模块1601,还用于获取第一样本集,第一样本集中包括携带标签的样本;
训练模块1604,用于使用第一样本集训练第二网络,得到第三网络,该第三网络用于执行前述的目标任务,其中,在训练第二网络的过程中,至少一个模块的输出用于更新第二网络中所述第一网络的参数。
在一种可能的实施方式中,前述的背景信息与目标任务的种类相关,背景信息包括:背景边框、从输入图像中分割出的背景的部分或输入图像中的背景的类别中的至少一种,背景边框用于标识输入图像中除实例外的背景的区域。
在一种可能的实施方式中,第一样本集中包括至少一个全监督样本和/或至少一个弱监督样本,全监督样本为携带前景标签和背景标签的样本,弱监督样本携带的标签的种类少于全监督样本。
在一种可能的实施方式中,获取模块1601,还用于:在获取第一样本集之前,获取第二样本集,第二样本集中包括多个全监督样本;根据第二样本集构建多个第三样本集,且多个第三样本集中全监督样本所占的比例不相同;根据多个第三样本集分别对第二网络进行训练,得到多个训练结果;根据多个训练结果以及多个样本比例确定目标比例,所述多个样本比例包括所述多个第三样本集中各种标签所占的比例;按照目标比例对未标注样本中的样本添加标签,得到第一样本集。
在一种可能的实施方式中,获取模块1601,还用于:根据多个训练结果和多个样本比例,生成训练第二网络的样本集中每种标签的数量和训练结果之间的关联关系;根据关联关系确定目标比例。
在一种可能的实施方式中,获取模块1601,还用于:根据关联关系计算训练第二网络使用的样本集中所有标签的数量的增量和训练结果的增量之间的函数关系;根据函数关系确定目标比例。
在一种可能的实施方式中,获取模块1601,还用于:根据函数关系和标注代价,计算帕累托前沿,标注代价为样本添加标签的成本;根据帕累托前沿计算目标比例。
在一种可能的实施方式中,多个训练结果包括以下一项或者多项:训练后的第二神经网络的输出准确度、召回率或重叠度IOU。
在一种可能的实施方式中,目标任务包括全景分割,至少一个模块包括第一损失模块、像素级标签模块、第二损失模块和传递模块。
在一种可能的实施方式中,目标任务包括实例分割,实例分割为分割输入的图像中的前景;至少一个模块包括第一损失模块和第二损失模块。
在一种可能的实施方式中,目标任务包括目标检测,至少一个模块包括第一损失模块。
在一种可能的实施方式中,目标任务包括语义分割,至少一个模块包括像素级标签模块。
在一种可能的实施方式中,全监督样本携带的标签包括:前景标签、类别标签、实例边框和背景标签,前景标签包括以图像中的前景的至少一个像素为单位的类别标签,类别标签用于表示全监督样本中包括的实例的类别,实例边框用于表示实例在图像的区域,背景标签包括以图像中的背景的至少一个像素为单位的类别标签;
弱监督样本携带的标签包括前景标签、类别标签、实例边框或背景标签中的最多三种。
参阅图17,本申请提供的一种图像处理装置的结构示意图,用于执行前述图15对应的图像处理方法的步骤。该图像处理装置可以包括:
获取模块1701,用于获取输入图像;
处理模块1702,用于将输入图像作为第三网络的输入,输出实例边框、掩膜或背景信息中的至少一种。其中,实例边框用于标识输入图像中实例的区域,背景信息包括输入图像中处实例外的背景的信息。该第三网络是使用第一样本集对第二网络进行训练得到,第二网络中包括第一网络和至少一个模块,第一网络是根据目标任务选择的网络,至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,第一损失模块用于基于第一网络输出的实例边框计算第一损失值,实例边框用于标识输入至第一网络的输入图像中实例的区域,像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,像素级标签用于表示至少一个像素的类别,第二损失模块用于基于第一网络输出的掩膜计算第二损失值,传递模块用于结合第一网络输出的背景信息和实例特征计算梯度值,实例特征为实例边框标识出的输入图像的区域的特征,背景信息包括输入图像中除实例外的背景的信息,其中,该至少一个模块的输出用于在训练第二网络的过程中更新第二网络的参数。
在一种可能的实施方式中,该处理模块1702,具体可以用于在得到训练后的第二网络之后,可以从该训练后的第二网络中选择训练后的第一网络作为第三网络,也可以直接将训练后的第二网络作为第三网络。
请参阅图18,本申请提供的另一种神经网络训练装置的结构示意图,如下所述。
该神经网络训练装置可以包括处理器1801和存储器1802。该处理器1801和存储器1802通过线路互联。其中,存储器1802中存储有程序指令和数据。
存储器1802中存储了前述图4-图15中的步骤对应的程序指令以及数据。
处理器1801用于执行前述图4-图15中任一实施例所示的神经网络训练装置执行的方法步骤。
可选地,该神经网络训练装置还可以包括收发器1803,用于接收或者发送数据。
本申请提供的另一种图像处理装置的结构示意图也可以基于图18所述的结构,如下所述。
该图像处理装置可以包括处理器1801和存储器1802。该处理器1801和存储器1802通过线路互联。其中,存储器1802中存储有程序指令和数据。
存储器1802中存储了前述图4-图15中的步骤对应的程序指令以及数据。
处理器1801用于执行前述图4-图15中任一实施例所示的图像处理装置执行的方法步骤。
可选地,该图像处理装置还可以包括收发器1803,用于接收或者发送数据。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于生成车辆行驶速度的程序,当其在计算机上行驶时,使得计算机执行如前述图4-图14所示实施例描述的方法中的步骤。
可选地,前述的图18中所示的神经网络训练装置或图像处理装置为芯片。
本申请实施例还提供了一种神经网络训练装置,该神经网络训练装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图4-图14中任一实施例所示的神经网络训练装置执行的方法步骤。
本申请实施例还提供了一种图像处理装置,该图像处理装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图15中任一实施例所示的图像处理装置执行的方法步骤。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器1801,或者处理器1801的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中神经网络训练装置或图像处理装置执行的动作。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上行驶时,使得计算机执行如前述图4-图15所示实施例描述的方法中神经网络训练装置或图像处理装置所执行的步骤。
本申请实施例提供的神经网络训练装置或图像处理装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图4-图15所示实施例描述的神经网络的训练方法或图像处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccess memory,RAM)等。
具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(graphicsprocessing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
示例性地,请参阅图19,图19为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 190,NPU 190作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1903,通过控制器1904控制运算电路1903提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1903内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1903是二维脉动阵列。运算电路1903还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1903是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1902中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1901中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1908中。
统一存储器1906用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1905,DMAC被搬运到权重存储器1902中。输入数据也通过DMAC被搬运到统一存储器1906中。
总线接口单元(bus interface unit,BIU)1910,用于AXI总线与DMAC和取指存储器(instruction fetch buffer,IFB)1909的交互。
总线接口单元1910(bus interface unit,BIU),用于取指存储器1909从外部存储器获取指令,还用于存储单元访问控制器1905从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1906或将权重数据搬运到权重存储器1902中或将输入数据数据搬运到输入存储器1901中。
向量计算单元1907包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1907能将经处理的输出的向量存储到统一存储器1906。例如,向量计算单元1907可以将线性函数和/或非线性函数应用到运算电路1903的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1907生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1903的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1904连接的取指存储器(instruction fetch buffer)1909,用于存储控制器1904使用的指令;
统一存储器1906,输入存储器1901,权重存储器1902以及取指存储器1909均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,循环神经网络中各层的运算可以由运算电路1903或向量计算单元1907执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述图4-图15的方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (30)

1.一种神经网络的训练方法,其特征在于,包括:
获取目标任务;
根据所述目标任务选择第一网络,所述第一网络用于执行所述目标任务;
根据所述目标任务在所述第一网络中增加至少一个模块,得到第二网络,所述至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,所述第一损失模块用于基于所述第一网络输出的实例边框计算第一损失值,所述实例边框用于标识输入至所述第一网络的输入图像中实例的区域,所述像素级标签模块用于以所述输入图像中的至少一个像素为单位生成像素级标签,所述像素级标签用于表示所述至少一个像素的类别,所述第二损失模块用于基于所述第一网络输出的掩膜计算第二损失值,所述传递模块用于结合所述第一网络输出的背景信息和实例特征计算梯度值,所述实例特征为所述实例边框标识出的所述输入图像的区域的特征,所述背景信息包括所述输入图像中除实例外的背景的信息,其中,若执行所述目标任务需对输入图像的实例部分进行处理,则从所述至少一个模块中选择与实例相关的模块,若执行所述目标任务需对输入图像的背景部分进行处理,则从所述至少一个模块中选择与背景相关的模块;
获取第一样本集,所述第一样本集中包括携带标签的至少一个样本;
使用所述第一样本集训练所述第二网络,得到第三网络,所述第三网络用于执行所述目标任务,其中,在训练所述第二网络的过程中,所述至少一个模块的输出用于更新所述第二网络中所述第一网络的参数。
2.根据权利要求1所述的方法,其特征在于,所述第一样本集中包括至少一个全监督样本和/或至少一个弱监督样本,所述全监督样本为携带前景标签和背景标签的样本,所述弱监督样本携带的标签的种类少于所述全监督样本。
3.根据权利要求2所述的方法,其特征在于,在所述获取第一样本集之前,所述方法还包括:
获取第二样本集,所述第二样本集中包括多个全监督样本;
根据所述第二样本集构建多个第三样本集,且所述多个第三样本集中全监督样本所占的比例不相同;
根据所述多个第三样本集分别对所述第二网络进行训练,得到多个训练结果;
根据所述多个训练结果以及多个样本比例确定目标比例,所述多个样本比例包括所述多个第三样本集中各种标签所占的比例;
所述获取第一样本集,包括:
对未标注样本中所述目标比例的样本添加标签,得到所述第一样本集。
4.根据权利要求3所述的方法,其特征在于,所述根据所述多个训练结果以及所述多个样本比例确定目标比例,包括:
根据所述多个训练结果和所述多个样本比例,生成训练所述第二网络的样本集中每种标签的数量和训练结果之间的关联关系;
根据所述关联关系确定所述目标比例。
5.根据权利要求4所述的方法,其特征在于,所述根据所述关联关系确定所述目标比例,包括:
根据所述关联关系计算训练所述第二网络使用的样本集中所有标签的数量的增量和所述训练结果的增量之间的函数关系;
根据所述函数关系确定所述目标比例。
6.根据权利要求5所述的方法,其特征在于,所述根据所述函数关系确定所述目标比例,包括:
根据所述函数关系和标注代价,计算帕累托前沿,所述标注代价为样本添加标签的成本;
根据所述帕累托前沿计算所述目标比例。
7.根据权利要求3-6中任一项所述的方法,其特征在于,所述多个训练结果包括以下一项或者多项:训练后的所述第二网络的输出准确度、召回率或重叠度IOU。
8.根据权利要求1-6中任一项所述的方法,其特征在于,所述目标任务包括全景分割,
所述至少一个模块包括所述第一损失模块、所述像素级标签模块、所述第二损失模块和所述传递模块。
9.根据权利要求1-6中任一项所述的方法,其特征在于,所述目标任务包括实例分割,所述实例分割为分割输入的图像中的前景;
所述至少一个模块包括所述第一损失模块和所述第二损失模块。
10.根据权利要求1-6中任一项所述的方法,其特征在于,所述目标任务包括目标检测,
所述至少一个模块包括所述第一损失模块。
11.根据权利要求1-6中任一项所述的方法,其特征在于,所述目标任务包括语义分割,所述至少一个模块包括所述像素级标签模块。
12.根据权利要求2-6中任一项所述的方法,其特征在于,
所述全监督样本携带的标签包括:前景标签、类别标签、实例边框和背景标签,所述前景标签包括以图像中的前景的至少一个像素为单位的类别标签,所述类别标签用于表示所述全监督样本中包括的实例的类别,所述实例边框用于表示所述实例在图像的区域,所述背景标签包括以图像中的背景的至少一个像素为单位的类别标签;
所述弱监督样本携带的标签包括所述前景标签、所述类别标签、所述实例边框或所述背景标签中的最多三种。
13.根据权利要求1-6中任一项所述的方法,其特征在于,所述背景信息与所述目标任务的种类相关,所述背景信息包括:背景边框、从所述输入图像中分割出的背景部分或所述输入图像中的背景的类别中的至少一种,所述背景边框用于标识所述输入图像中除实例外的背景的区域。
14.一种神经网络训练装置,其特征在于,包括:
获取模块,用于获取目标任务;
选择模块,用于根据所述目标任务选择第一网络所述第一网络用于执行所述目标任务;
增加模块,用于根据所述目标任务在所述第一网络中增加至少一个模块,得到第二网络,所述至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,所述第一损失模块用于基于所述第一网络输出的实例边框计算第一损失值,所述实例边框用于标识输入至所述第一网络的输入图像中实例的区域,所述像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,所述像素级标签用于表示所述至少一个像素的类别,所述第二损失模块用于基于所述第一网络输出的掩膜计算第二损失值,所述传递模块用于结合所述第一网络输出的背景信息和实例特征计算梯度值,所述实例特征为所述实例边框标识出的所述输入图像的区域的特征,所述背景信息包括所述输入图像中除实例外的背景的信息,其中,若执行所述目标任务需对输入图像的实例部分进行处理,则从所述至少一个模块中选择与实例相关的模块,若执行所述目标任务需对输入图像的背景部分进行处理,则从所述至少一个模块中选择与背景相关的模块;
所述获取模块,还用于获取第一样本集,所述第一样本集中包括携带标签的样本;
训练模块,用于使用所述第一样本集训练所述第二网络,得到第三网络,所述第三网络用于执行所述目标任务,其中,在训练所述第二网络的过程中,所述至少一个模块的输出用于更新所述第二网络中所述第一网络的参数。
15.根据权利要求14所述的装置,其特征在于,所述第一样本集中包括至少一个全监督样本和/或至少一个弱监督样本,所述全监督样本为携带前景标签和背景标签的样本,所述弱监督样本携带的标签的种类少于所述全监督样本。
16.根据权利要求15所述的装置,其特征在于,所述获取模块,还用于:
在所述获取第一样本集之前,获取第二样本集,所述第二样本集中包括多个全监督样本;
根据所述第二样本集构建多个第三样本集,且所述多个第三样本集中全监督样本所占的比例不相同;
根据所述多个第三样本集分别对所述第二网络进行训练,得到多个训练结果;
根据所述多个训练结果以及多个样本比例确定目标比例,所述多个样本比例包括所述多个第三样本集中各种标签所占的比例;
按照所述目标比例对未标注样本中的样本添加标签,得到所述第一样本集。
17.根据权利要求16所述的装置,其特征在于,所述获取模块,还用于:
根据所述多个训练结果和所述多个样本比例,生成训练所述第二网络的样本集中每种标签的数量和训练结果之间的关联关系;
根据所述关联关系确定所述目标比例。
18.根据权利要求17所述的装置,其特征在于,所述获取模块,还用于:
根据所述关联关系计算训练所述第二网络使用的样本集中所有标签的数量的增量和所述训练结果的增量之间的函数关系;
根据所述函数关系确定所述目标比例。
19.根据权利要求18所述的装置,其特征在于,所述获取模块,还用于:
根据所述函数关系和标注代价,计算帕累托前沿,所述标注代价为样本添加标签的成本;
根据所述帕累托前沿计算所述目标比例。
20.根据权利要求16-19中任一项所述的装置,其特征在于,所述多个训练结果包括以下一项或者多项:训练后的所述神经网络的输出准确度、召回率或重叠度IOU。
21.根据权利要求14-19中任一项所述的装置,其特征在于,所述目标任务包括全景分割,所述至少一个模块包括所述第一损失模块、所述像素级标签模块、所述第二损失模块和所述传递模块。
22.根据权利要求14-19中任一项所述的装置,其特征在于,所述目标任务包括实例分割,所述实例分割为分割输入的图像中的前景;所述至少一个模块包括所述第一损失模块和所述第二损失模块。
23.根据权利要求14-19中任一项所述的装置,其特征在于,所述目标任务包括目标检测,所述至少一个模块包括所述第一损失模块。
24.根据权利要求14-19中任一项所述的装置,其特征在于,所述目标任务包括语义分割,所述至少一个模块包括所述像素级标签模块。
25.根据权利要求15-19中任一项所述的装置,其特征在于,
所述全监督样本携带的标签包括:前景标签、类别标签、实例边框和背景标签,所述前景标签包括以图像中的前景的至少一个像素为单位的类别标签,所述类别标签用于表示所述全监督样本中包括的实例的类别,所述实例边框用于表示所述实例在图像的区域,所述背景标签包括以图像中的背景的至少一个像素为单位的类别标签;
所述弱监督样本携带的标签包括所述前景标签、所述类别标签、所述实例边框或所述背景标签中的最多三种。
26.根据权利要求14-19中任一项所述的装置,其特征在于,所述背景信息与所述目标任务的种类相关,所述背景信息包括:背景边框、从所述输入图像中分割出的背景部分或所述输入图像中的背景的类别中的至少一种,所述背景边框用于标识所述输入图像中除实例外的背景的区域。
27.一种图像处理方法,其特征在于,包括:
获取输入图像;
将所述输入图像作为第三网络的输入,输出实例边框、掩膜或背景信息中的至少一种,所述实例边框用于标识所述输入图像中实例的区域,所述背景信息包括所述输入图像中除实例外的背景的信息,所述第三网络是使用第一样本集对第二网络进行训练得到,所述第二网络中包括第一网络和至少一个模块,所述第一网络是根据获取到的目标任务选择的网络,所述至少一个模块的输出用于在训练所述第二网络的过程中更新所述第二网络中所述第一网络的参数,所述至少一个模块包括以下模块中的至少一种:第一损失模块、像素级标签模块、第二损失模块和传递模块,所述第一损失模块用于基于所述第一网络输出的实例边框计算第一损失值,所述实例边框用于标识输入至所述第一网络的输入图像中实例的区域,所述像素级标签模块用于以输入的图像中的至少一个像素为单位生成像素级标签,所述像素级标签用于表示所述至少一个像素的类别,所述第二损失模块用于基于所述第一网络输出的掩膜计算第二损失值,所述传递模块用于结合所述第一网络输出的背景信息和实例特征计算梯度值,所述实例特征为所述实例边框标识出的所述输入图像的区域的特征,所述第一网络输出的背景信息包括输入至所述第一网络的图像中除实例外的背景的信息,其中,若执行所述目标任务需对输入图像的实例部分进行处理,则从所述至少一个模块中选择与实例相关的模块,若执行所述目标任务需对输入图像的背景部分进行处理,则从所述至少一个模块中选择与背景相关的模块。
28.根据权利要求27所述的方法,其特征在于,所述第三网络中包括训练后的所述第一网络,或者,所述第三网络中包括训练后的所述第二网络。
29.一种神经网络训练装置,其特征在于,包括处理器,所述处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述处理器执行时实现权利要求1至13中任一项所述的方法。
30.一种计算机可读存储介质,包括程序,当其被处理单元所执行时,执行如权利要求1至13中任一项所述的方法。
CN202110130645.7A 2021-01-29 2021-01-29 一种神经网络的训练方法、图像处理方法以及装置 Active CN112990211B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110130645.7A CN112990211B (zh) 2021-01-29 2021-01-29 一种神经网络的训练方法、图像处理方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110130645.7A CN112990211B (zh) 2021-01-29 2021-01-29 一种神经网络的训练方法、图像处理方法以及装置

Publications (2)

Publication Number Publication Date
CN112990211A CN112990211A (zh) 2021-06-18
CN112990211B true CN112990211B (zh) 2023-07-11

Family

ID=76345805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110130645.7A Active CN112990211B (zh) 2021-01-29 2021-01-29 一种神经网络的训练方法、图像处理方法以及装置

Country Status (1)

Country Link
CN (1) CN112990211B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505670B (zh) * 2021-06-29 2023-06-23 西南交通大学 基于多尺度cam和超像素的遥感图像弱监督建筑提取方法
CN115730205A (zh) * 2021-08-25 2023-03-03 华为云计算技术有限公司 一种配置决策装置的方法、装置及相关设备
CN113743340B (zh) * 2021-09-09 2023-09-26 智道网联科技(北京)有限公司 用于自动驾驶的计算机视觉网络模型优化方法及相关装置
CN113807316B (zh) * 2021-10-08 2023-12-12 南京恩博科技有限公司 烟雾浓度估计模型的训练方法、装置、电子设备及介质
CN114374636B (zh) * 2021-12-21 2024-04-02 航天科工网络信息发展有限公司 一种智能路由方法、装置及网络设备
CN114612717B (zh) * 2022-03-09 2023-05-26 四川大学华西医院 Ai模型训练标签生成方法、训练方法、使用方法及设备
CN114550223B (zh) * 2022-04-25 2022-07-12 中国科学院自动化研究所 人物交互检测方法、装置及电子设备
CN117036658A (zh) * 2022-04-29 2023-11-10 华为技术有限公司 一种图像处理方法及相关设备
CN117217982A (zh) * 2022-05-31 2023-12-12 华为技术有限公司 一种视觉任务处理方法及其相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019192397A1 (zh) * 2018-04-04 2019-10-10 华中科技大学 一种任意形状的场景文本端到端识别方法
CN110634167A (zh) * 2019-09-27 2019-12-31 北京市商汤科技开发有限公司 神经网络训练方法及装置和图像生成方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416440A (zh) * 2018-03-20 2018-08-17 上海未来伙伴机器人有限公司 一种神经网络的训练方法、物体识别方法及装置
CN109584248B (zh) * 2018-11-20 2023-09-08 西安电子科技大学 基于特征融合和稠密连接网络的红外面目标实例分割方法
US10546216B1 (en) * 2019-04-11 2020-01-28 Seetree Systems Ltd. Recurrent pattern image classification and registration
CN111723860B (zh) * 2020-06-17 2022-11-18 苏宁云计算有限公司 一种目标检测方法及装置
CN112232293B (zh) * 2020-11-09 2022-08-26 腾讯科技(深圳)有限公司 图像处理模型训练、图像处理方法及相关设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019192397A1 (zh) * 2018-04-04 2019-10-10 华中科技大学 一种任意形状的场景文本端到端识别方法
CN110634167A (zh) * 2019-09-27 2019-12-31 北京市商汤科技开发有限公司 神经网络训练方法及装置和图像生成方法及装置

Also Published As

Publication number Publication date
CN112990211A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN112990211B (zh) 一种神经网络的训练方法、图像处理方法以及装置
WO2021238366A1 (zh) 一种神经网络构建方法以及装置
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
CN111797893B (zh) 一种神经网络的训练方法、图像分类系统及相关设备
EP4064130A1 (en) Neural network model update method, and image processing method and device
CN111291809B (zh) 一种处理装置、方法及存储介质
CN112232293B (zh) 图像处理模型训练、图像处理方法及相关设备
US20220215227A1 (en) Neural Architecture Search Method, Image Processing Method And Apparatus, And Storage Medium
WO2021147325A1 (zh) 一种物体检测方法、装置以及存储介质
CN113807399B (zh) 一种神经网络训练方法、检测方法以及装置
CN111368972B (zh) 一种卷积层量化方法及其装置
CN113159283B (zh) 一种基于联邦迁移学习的模型训练方法及计算节点
CN110222718B (zh) 图像处理的方法及装置
CN112651511A (zh) 一种训练模型的方法、数据处理的方法以及装置
CN112446398A (zh) 图像分类方法以及装置
CN111401517B (zh) 一种感知网络结构搜索方法及其装置
CN111832592B (zh) Rgbd显著性检测方法以及相关装置
CN111931764B (zh) 一种目标检测方法、目标检测框架及相关设备
WO2022111387A1 (zh) 一种数据处理方法及相关装置
CN112464930A (zh) 目标检测网络构建方法、目标检测方法、装置和存储介质
Grigorev et al. Depth estimation from single monocular images using deep hybrid network
CN116187391A (zh) 神经网络模型的处理方法及装置
CN112862828A (zh) 一种语义分割方法、模型训练方法及装置
WO2023125628A1 (zh) 神经网络模型优化方法、装置及计算设备
CN113011562A (zh) 一种模型训练方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant