车辆识别模型的参数调整及数据处理方法和装置、车辆
技术领域
本公开涉及人工智能技术领域,具体而言,涉及车辆识别模型的参数调整及数据处理方法和装置、车辆。
背景技术
随着自动驾驶技术发展,越来越多的深度学习模型应用在车辆等具有自主移动能力的设备(称为可移动平台)的运算平台上,用来提升车辆的环境感知、决策规划能力。受可移动平台的运算平台功耗、算力、样本数量的限制,其上运行的深度学习模型的输出结果准确度难以得到有效提升。有必要提出方案来改进这种可移动平台上运行的深度学习模型。
发明内容
第一方面,本公开实施例提供一种车辆识别模型的参数调整方法,所述方法包括:获取第一识别模型对行驶环境图像进行识别后输出的第一识别结果,并获取第二识别模型对所述行驶环境图像进行识别后输出的第二识别结果,所述第一识别模型运行在所述车辆的运算平台,所述第二识别模型运行在服务器的运算平台;获取所述第一识别结果与所述第二识别结果之间的差异;基于所述差异和所述行驶环境图像,对所述第一识别模型的参数进行调整。
第二方面,本公开实施例提供一种数据处理方法,所述方法包括:获取预先训练的第一模型对待处理数据进行预测后输出的第一预测结果,并获取预先训练的第二模型对所述待处理数据进行预测后输出的第二预测结果;确定所述第一预测结果与所述第二预测结果之间的差异;基于所述差异和所述待处理数据对所述第一模型的模型参数进行调整;其中,所述第一模型和所述第二模型具有以下一种或者多种特征:用于训练所述第一模型的样本数据集是用于训练所述第二模型的样本数据集的子集,和/或所述第一模型运行时占用的资源少于所述第二模型运行时占用的资源,和/或所述第一模型的规模小于所述第二模型的规模。
第三方面,本公开实施例提供一种车辆识别模型的参数调整装置,包括处理器, 所述处理器用于执行以下步骤:获取第一识别模型对行驶环境图像进行识别后输出的第一识别结果,并获取第二识别模型对所述行驶环境图像进行识别后输出的第二识别结果,所述第一识别模型运行在所述车辆的运算平台,所述第二识别模型运行在服务器的运算平台;获取所述第一识别结果与所述第二识别结果之间的差异;基于所述差异和所述行驶环境图像,对所述第一识别模型的参数进行调整。
第四方面,本公开实施例提供一种数据处理装置,包括处理器,所述处理器用于执行以下步骤:获取预先训练的第一模型对待处理数据进行预测后输出的第一预测结果,并获取预先训练的第二模型对所述待处理数据进行预测后输出的第二预测结果;确定所述第一预测结果与所述第二预测结果之间的差异;基于所述差异和所述待处理数据对所述第一模型的模型参数进行调整;其中,所述第一模型和所述第二模型具有以下一种或者多种特征:用于训练所述第一模型的样本数据集是用于训练所述第二模型的样本数据集的子集,和/或所述第一模型运行时占用的资源少于所述第二模型运行时占用的资源,和/或所述第一模型的规模小于所述第二模型的规模。
第五方面,本公开实施例提供一种车辆,包括:图像传感器,用于在所述车辆行驶过程中,采集所述车辆的行驶环境图像;以及处理器,其上运行有第一识别模型,用于对所述行驶环境图像进行识别后输出第一识别结果,所述第一识别模型的模型参数基于所述第一识别结果与第二识别结果之间的差异以及所述行驶环境图像调整得到,所述第二识别结果为运行在服务器的运算平台上的第二识别模型对所述行驶环境图像进行识别后输出的。
应用本说明书实施例方案,基于预先训练的第一模型与预先训练的第二模型的预测结果之间的差异以及待处理数据来对第一模型的模型参数进行调整,第二模型的性能通常比第一模型的性能更好,从而使得基于上述方式进行参数调整后第一模型的性能较好。
在一些应用场景下,上述第一模型和第二模型可以分别是运行在车辆的运算平台的第一识别模型和运行在服务器的运算平台第二识别模型,通过上述方式进行参数调整后的第一识别模型可以提高车辆的行驶安全性。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例, 对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例的车辆识别模型的参数调整方法的流程图。
图2是本公开实施例的模型输入/输出方式的示意图。
图3是本公开实施例的输入输出过程的示意图。
图4是本公开实施例的识别结果的过滤过程的示意图。
图5是本公开实施例的软件架构的示意图。
图6是本公开实施例的数据处理方法的示意图。
图7是本公开实施例的车辆识别模型的参数调整装置/数据处理装置的硬件结构示意图。
图8是本公开实施例的车辆的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
深度学习模型通常由不同种类、功能的神经元构成,用以执行特定的任务。所述 任务可以是回归任务、分类任务,或者两者相结合。通常,模型越大越复杂,其性能越好。的输入包括但不限于图像、视频、音频、文字等,并且可以同时输入多种模态的数据。
在采用深度学习模型执行任务之前,需要采用样本数据对深度学习模型进行训练。然而,实际采集的样本数据对于深度学习模型的训练来说往往是重复、冗余、不平衡的,在很多情况下,一小部分的类别占据了大多数的样本数据,而大部分的类别只有极少数的样本数据,这一问题称为数据的长尾问题。为了提高深度学习模型的性能,需要进行数据挖掘,即从数据池中提取出导致深度学习模型失效的、表现不好的、甚至是没见过的边角案例(corner case)数据来调整深度学习模型的模型参数。其中,数据池是指待挖掘的海量数据,通常指某一深度学习任务场景中所有采集到的作为模型输入的数据总和,通常不包括或者仅包括有限的标注信息。数据池中数据的类别根据任务场景不同而不同,包括但不限于图像、视频、音频、文字等各种模态的数据,并且在同一个任务场景中可以多种模态的数据共存。
鉴于实际情况中数据池极为庞大和复杂,数据挖掘一般采用纯算法或者半人工的数据挖掘手段实现。相关技术中的数据挖掘框架一般包括主动学习(active learning)、人机回圈(Human in the Loop)、决策树/森林以及基于规则的数据挖掘框架等。
主动学习是指通过估计样本的信息量来对数据池进行筛选。这种方式可解释性弱,例如主流的通过模型不确定性(epistemic uncertainty)估计样本信息量的方法,虽然有足够的理论支持,但可解释性仅仅体现在统计意义层面,而无法解释单个独立的样本为何被/不被挖掘出来。并且,主动学习方式无法进行定向的挖掘,例如某品牌自动驾驶车辆连续发生撞上白色卡车事故后,业务要求定向挖掘包括白色卡车的图像,但主动学习框架无法做到这一点。
人机回圈的思想是通过人力手动判断哪些是目标样本,从而获得一个目标/非目标样本的数据集,用以训练一个分类模型。整体上按照“分类模型输出分类结果、对结果手动判断/纠正、训练分类模型”这样的流程进行迭代,直至分类模型的输出结果达到足够高的精确度。这种方法需要人工额外标注目标/非目标数据,在大数据场景中,人本成本过高,标注和迭代分类器的时间长。并且,分类模型的准确度有限,实际应用中准确度往往低于80%。此外,适用场景有限,以“挖掘容易产生白色卡车漏检情况的图像”为例,这种方法无法判断哪些图像容易导致深度学习模型在白色卡车上产生漏检情况。
此外,决策树/森林以及基于规则的数据挖掘框架非常依赖专家知识,导致整个框架扩展性较差(很难通过低成本的方式拓展挖掘的标准),不够灵活。
基于此,本公开实施例提出一种车辆识别模型的参数调整及数据处理方法和装置、车辆,以解决上述至少部分问题。
如图1所示,是本公开实施例的车辆识别模型的参数调整方法的流程图,所述方法可包括:
S101:获取第一识别模型对行驶环境图像进行识别后输出的第一识别结果,并获取第二识别模型对所述行驶环境图像进行识别后输出的第二识别结果,所述第一识别模型运行在所述车辆的运算平台,所述第二识别模型运行在服务器的运算平台;
S102:获取所述第一识别结果与所述第二识别结果之间的差异;
S103:基于所述差异和所述行驶环境图像,对所述第一识别模型的参数进行调整。
在S101中,行驶环境图像是指车辆行驶场景的环境图像,行驶环境图像可以由安装在车辆上的图像传感器采集得到,也可以通过接收其他图像采集装置采集得到,还可以通过对各种道路图像与道路上可能出现的对象的图像进行融合得到,所述可能出现的对象可以包括但不限于人、宠物、各种型号的车辆、植物等。
可以预先在车辆的运算平台部署第一识别模型,并在服务器的运算平台部署第二识别模型。第一识别模型与第二识别模型采用的识别算法、模型结构以及模型参数中的任意一者可以相同,也可以不同。第一识别模型与第二识别模型执行的任务可以根据实际需求设置,例如,所述任务可以是识别白色卡车、识别特定语义的交通标志或者识别机动车等。
在一些实施例中,所述第一识别模型包括至少一个第一子模型,所述第二识别模型包括至少一个第二子模型。例如,所述第一识别模型包括用于进行特征提取的第一子模型,以及用于基于特征提取结果输出第一识别结果的第一子模型。所述第二识别模型包括用于进行特征提取的第二子模型,以及用于基于特征提取结果输出第二识别结果的第二子模型。在实际应用中,第一子模型的数量与第二子模型的数量可以相同,也可以不同。实现相同功能的第一子模型与第二子模型可以的结构、算法可以相同,也可以不同。
由于移动端(例如手机、车辆)经常会存在存储资源和算力资源有限的情况,考 虑到成本、能耗和实时性等方面的要求,在移动端的运算平台运行的深度学习模型往往是轻量化模型。与此相对地,由于服务器的存储资源和算力资源往往更加充裕,在服务器的运算平台的模型往往是更大、更复杂的模型。在一般情况下,模型越大、越复杂,其性能越好。因此,第二识别模型的性能优于第一识别模型。其中,模型的性能指代模型在其设计的任务功能中输出结果与理想状态之间的差异。例如,针对识别任务,性能指代模型的识别结果与被识别对象的真实类别之间的差异。差异越小,模型的性能越高。即,对于同样的输入样本,第二识别模型输出的第二识别结果更接近真值(或者在大多数成熟的深度学习任务中,可以认为就是真值),而第一识别模型输出的第一识别结果与真实类别之间的差异更大。也就是说,性能在本公开中指代绝对性能而不是任何意义上的性价比。模型性能有明确的评价指标,这意味着模型的输出可以被量化、比较。例如,针对同一样本图像集,轻量化模型对该样本图像集的识别准确度低于理想模型对该样本图像集的识别准确度。因此,可以将第二识别模型作为参考模型(也称为指导模型),基于第二识别结果来对第一识别模型针对行驶环境图像的第一识别结果进行评价。
为了便于描述和区分,下面将服务器的运算平台和车辆的运算平台分别称为开发环境和部署环境。开发环境指算力、存储空间相对富裕的,一般用于算法研发、迭代的硬件环境,记为E
dev。通常体现为大型计算集群。部署环境指实际运行业务算法的算力、存储空间相对有限的硬件环境,记为E
ops。在深度学习行业应用中,尤其移动端应用,部署环境一般是集成的嵌入式平台。相应地,第一识别模型可以称为部署模型,即在部署环境中运行,并且承担完成业务功能的深度学习模型。第二识别模型可以称为指导模型,即在开发环境中运行,用于指导数据挖掘的模型。
在一些实施例中,部署模型和指导模型具有以下一种或者多种特征:
用于训练部署模型的样本图像集S1是用于训练指导模型的样本图像集S2的子集。例如,样本图像集S1包括第一时间段采集的图像,样本图像集S2包括第二时间段采集的图像,其中,第一时间段是第二时间段的子集。又例如,样本图像集S1包括在第一地点集合中的各个地点采集的图像,样本图像集S2包括在第二地点集合中的各个地点采集的图像,其中,第一地点集合是第二地点集合的子集。再例如,样本图像集S1包括第一型号集合中各个型号的图像传感器采集的图像,样本图像集S2包括第二型号集合中各个型号的图像传感器采集的图像,其中,第一型号集合是第二型号集合的子 集。再例如,样本图像集S1包括车辆的行驶环境图像,样本图像集S2包括多种不同类别的可自主行驶的设备(例如,车辆、无人机、无人船、可移动机器人)的行驶环境图像。在一些实施例中,样本图像集S1中可以仅包括一个数据域上的样本图像,样本图像集S2中可以包括多个数据域上的样本图像。这样,可以减少多个数据域对部署模型带来的噪声和干扰。
部署模型运行时占用的资源少于指导模型运行时占用的资源。在所述资源包括内存资源的情况下,占用的资源少可以是指内存占用量较少。在所述资源包括运行时间资源的情况下,占用的资源少可以是指运行时间较短。除此之外,还可以通过其他指标来衡量模型运行时占用的资源,此处不再一一列举。
部署模型的规模小于指导模型的规模。模型的规模可以采用模型的层数、节点数量、模型占用的存储空间等指标来衡量。具体来说,模型的规模较小可以是指模型的层数较少、模型的节点数量较少和/或模型占用的存储空间较少等。除此之外,还可以通过其他指标来衡量模型的规模,此处不再一一列举。
部署模型的复杂度低于指导模型的复杂度。所述复杂度可以采用识别算法的复杂度和/或模型结构的复杂度等指标来衡量。
针对至少一张行驶环境图像中的每张行驶环境图像,可以将该行驶环境图像分别输入部署模型m和指导模型M,并分别获取两个模型输出的识别结果。部署模型m和指导模型M的输入/输出(I/O)均可以定义为图2所示的形式。输入样本(即行驶环境图像)和输出样本(即第一识别结果和第二识别结果)可以包含数值信息,并且按照一定格式组织起来。其中,数值信息可以包括行驶环境图像中的各个像素点的像素值,格式包括数据结构以及数据结构中各属性的物理含义。例如,数据结构可以记为{u,v,像素值},u表示行驶环境图像的行数,v表示行驶环境图像的列数,像素值表示数值信息中的数值的物理含义是像素值。部署模型m和指导模型M的输入样本采用相同的格式,便于衡量两个模型输出结果之间的差距。在部署模型m和指导模型M的输入样本采用不同的格式时,可以先将两个模型的输入样本转换成相同格式。同理,部署模型m和指导模型M的输出样本也可以采用相同的格式。输入样本的格式与输出样本的格式可以不同。例如,输出样本中的格式为{轿车概率,卡车概率,公交车概率,自行车概率},分别表示输出样本的数值信息中各个数值依次表示行驶环境图像中的目标对象为轿车、卡车、公交车和自行车的概率。部署模型m可以在部署环境和开发环境正常工作;指导模型M可以在开发环境正常工作,依据具体情况可能可以 在部署环境正常工作。
在S102中,参见图3,将所有行驶环境图像的集合记为D,其中每张行驶环境图像记为x,经过部署模型m和指导模型M后输出的第一识别结果和第二识别结果分别记为y
m和y
M。可以采用预先建立的损失函数(loss)来确定第一识别结果与第二识别结果之间的差异。Loss越大,意味着y
m与y
M之间的差异越大,从而表示性能相对较差的部署模型与性能相对较好的指导模型之间的分歧越大。
在一些实施例中,参见图4,在确定所述第一识别结果与所述第二识别结果之间的差异之前,还可以基于预先设置的过滤条件,对所述第一识别结果y
m和所述第二识别结果y
M进行过滤,分别得到过滤后的第一识别结果y'
m和过滤后的第二识别结果y'
M。如果数据挖掘的目标情景是具体的并且可以通过数学方法描述的,则相应制定过滤条件c,对y
m和y
M的信息进行过滤;如果目标情景是笼统的,则不对第一识别结果与第二识别结果进行过滤。
举例来说,在自动驾驶场景下,可以通过部署模型和指导模型对车辆和行人进行识别,识别结果y
m和y
M均可以包括车辆的包围框以及行人的包围框。假设当前数据挖掘用户的目标是挖掘行人识别效果不好的样本,而不关心车辆识别的结果,那么,可以将y
m和y
M中车辆的包围框过滤掉,只保留行人的包围框,形成y'
m和y'
M。在上述例子中,“不需要车辆信息”这一过滤条件很容易通过数据方法描述,从而进行过滤。当过滤条件不可通过数学描述,或者干脆不需要过滤,例如,只需要获取部署模型识别不准确的第一识别结果,而不需要区分是对车辆的识别结果不准确还是对行人的识别结果不准确,则不进行过滤操作。
在S103中,可以基于所述差异从所述行驶环境图像中选取目标图像;基于所述目标图像对所述第一识别模型的参数进行调整。部署模型与指导模型针对同一张行驶环境图像得到的识别结果之间的差异越大,意味着业务模型在这张行驶环境图像上的性能是越差的,这张行驶环境图像会导致部署模型的识别结果不准确的概率越大,从而该行驶环境图像是corner case的概率越大。因此,一张行驶环境图像为所述目标图像的概率与所述行驶环境图像对应的差异正相关。即,一张行驶环境图像对应的差异越大,该行驶环境图像是目标图像的概率越大。可以通过权重来表征所述行驶环境图像为目标图像的概率。这样,可以基于所述行驶环境图像对应的差异确定所述行驶环境图像的权重,并基于多张行驶环境图像的权重,从所述多张行驶环境图像中选取目标图像。
例如,可以遍历D中所有的行驶环境图像x,按照上述权重计算方式得到一组权重{w},按从大到小排列后,选取前若干个权重对应的行驶环境图像作为目标图像输出。又例如,可以将权重大于预设权重阈值的各个行驶环境图像作为目标图像输出。再例如,可以将大于预设权重阈值的若干个权重中,取值从大到小的若干个权重对应的行驶环境图像作为目标图像输出。
可以通过上述方式,在满足预设条件的情况下对所述第一识别模型的参数进行调整。
对所述第一识别模型的参数进行调整的操作步骤可以是在云端服务器上执行的,也可以是在车端处理器上执行的。
若是在非车端处理器执行的,进一步的,可以将调整参数后的所述第一识别模型更新至所述车辆。例如,通过OTA升级固件包的形式进行模型升级。所述预设条件可以包括但不限于以下至少一者:达到预设的更新时间、当前时间与上次更新第一识别模型的时间之间的时间间隔大于或等于预设时间间隔、接收到用户输入的模型更新指令、检测到车辆上报的特定事件(例如,车辆与其他车辆相撞)等。在第一识别模型包括多个子模型的情况下,一次更新过程可以仅更新其中的部分子模型,也可以更新全部子模型。
在一些实施例中,所述第一识别模型用于执行第一识别任务,所述第二识别模型用于执行第二识别任务,所述第二识别任务是所述第一识别任务的子集。例如,第一识别任务包括识别白色卡车的任务、识别行人的任务以及识别非机动车的任务,第二识别任务仅包括识别白色卡车的任务。在第一识别模型用于执行多个第一识别任务的情况下,可以获取多个第二识别模型,其中,每个第二识别模型用于执行第一识别模型所执行的其中一种任务。例如,第一识别任务包括识别白色卡车的任务、识别行人的任务以及识别非机动车的任务,可以获取3个第二识别模型,这3个第二识别模型分别用于执行识别白色卡车的任务、识别行人的任务以及识别非机动车的任务。各个第二识别模型执行的任务之间也可以有重叠。例如,可以获取两个第二识别模型,其中一个第二识别模型用于执行识别白色卡车的任务和识别行人的任务,另一个第二识别模型用于执行识别行人的任务以及识别非机动车的任务。或者,也可以仅针对第一识别模型执行的部分第一识别任务来获取第二识别模型。例如,例如,第一识别任务包括识别白色卡车的任务、识别行人的任务以及识别非机动车的任务,可以获取2个第二识别模型,分别用于执行识别白色卡车的任务和识别行人的任务。
在一些实施例中,所述第一识别结果由所述第一识别模型基于预先设置的任务信息对所述行驶环境图像进行识别得到,所述第二识别结果由所述第二识别模型基于所述任务信息对所述行驶环境图像进行识别得到。所述任务信息包括以下至少任一:
所述第一识别模型和所述第二识别模型执行的识别任务。所述识别任务可以是识别具有某种具体特征的对象(例如,白色卡车)的任务,也可以是识别某种类别的对象(例如,非机动车)。通过定义识别任务,能够支持定向挖掘,使得获取的目标图像基于当前任务需求而改变。
用于确定所述第一识别结果与所述第二识别结果之间的差异的损失函数,该损失函数可以是自定义的损失函数,也可以是现有的损失函数(例如,交叉熵损失函数、Softmax损失函数等)。
所述第一识别模型和所述第二识别模型的运行环境,包括但不限于操作系统类型、处理器的内核数量、处理器类型、内存容量等。
多张所述行驶环境图像中目标图像的比例信息或数量信息。所述比例信息是指目标图像的数量与行驶环境图像的总数之间的比值,所述数量信息可以是一个绝对数量(例如,20张)。
在一些实施例中,所述任务信息可以由用户通过交互组件输入。所述交互组件可以包括但不限于触摸屏、鼠标、键盘等。在未获取到用户输入的任务信息的情况下,可以将默认信息作为所述任务信息,或者将最近一次设置的信息作为所述任务信息,或者将最常用的信息作为所述任务信息,或者随机设置所述任务信息。
参见图5,是本公开实施例的软件架构的示意图,所述软件架构包括:
数据库(database),用于对待挖掘数据进行存储管理;
容器(container),即模型所运行的虚拟环境,可以是形如docker的容器,用于运行部署模型m和指导模型M。针对不同的任务,可以选择不同的部署模型m和指导模型M以及模型运行的容器。对于同一个任务,也可以在挖掘操作之中/之间切换指导模型M及其容器。
在图形用户界面(Graphical User Interface,GUI)上,用户可以选择抽取目标图像的目标情景/边角案例的定义、loss函数、部署/指导模型、模型的运行环境、目标图像抽取的比例/绝对数量;同时,也可以对行驶环境图像、目标图像、目标图像的抽取 状态以及抽取前后的各种统计分析进行可视化展示。
应用程序(Application)模块为自动数据挖掘算法框架执行的主体。它首先接收GUI上用户输入的信息和指令,对部署模型m和指导模型M的输出结果进行处理,计算待挖掘的目标图像的权重,整体上协调database、模型、以及自身之间信息传递。
参见图6,本公开实施例还提供一种更为通用的数据处理方法,所述方法可包括:
S601:获取预先训练的第一模型对待处理数据进行预测后输出的第一预测结果,并获取预先训练的第二模型对所述待处理数据进行预测后输出的第二预测结果;
S602:确定所述第一预测结果与所述第二预测结果之间的差异;
S603:基于所述差异和所述待处理数据对所述第一模型的模型参数进行调整;
其中,所述第一模型和所述第二模型具有以下一种或者多种特征:
用于训练所述第一模型的样本数据集是用于训练所述第二模型的样本数据集的子集,和/或所述第一模型运行时占用的资源少于所述第二模型运行时占用的资源,和/或所述第一模型的规模小于所述第二模型的规模。
在S601中,所述第一模型和所述第二模型可以分别是前述实施例中的第一识别模型和第二识别模型,所述待处理数据可以是前述实施例中的行驶环境图像,所述第一预测结果和所述第二预测结果可以分别是前述实施例中的第一识别结果和第二识别结果。在此基础上,上述数据处理方法可用于自动驾驶领域对行驶环境图像进行识别,从而对车辆的行驶路径进行决策规划,或者用于对道路拥堵情况进行预测。
在另一些场景下,所述第一模型和所述第二模型也可以分别是第一语音识别模型和第二语音识别模型,所述待处理数据为语音数据,所述第一预测结果和所述第二预测结果可以分别为第一语音识别结果和第二语音识别结果。所述第一语音识别模型可以运行在手机、智能音箱等移动通信设备上,所述第二语音识别模型可以运行在服务器的运算平台。在此基础上,上述数据处理方法可用于对用户输入的语音信息进行识别,从而将用户输入的语音信息转换成文字信息,或者使移动通信设备响应于用户输入的语音信息执行相应的操作。例如,用户向手机输入语音信息“Siri,打开通讯录”,手机识别该语音信息之后,可以启动并在手机的显示界面上显示通讯录。
在再一些场景下,所述第一模型和所述第二模型也可以分别是用于疾病诊断的第一诊断模型和第二诊断模型,所述待处理数据可以是用户的检查报告和/或检验报告, 所述第二预测结果和所述第二预测结果可以是对用户的健康状态的预测结果,包括但不限于用户是否患病、所患疾病的种类和/或所患疾病的严重程度(例如,早期、中期、晚期)等信息。所述第一模型可以运行在医疗器械设备的运算平台,所述第二模型可以运行在服务器的运算平台。在此基础上,上述数据处理方法可用于基于用户输入的检查报告和/或检验报告对用户的健康状态进行诊断。
除了以上列举的情况之外,本公开实施例的数据处理方法还可用于其他场景,此处不再一一列举。在其他场景下,所述第一模型和所述第二模型既可以用于执行回归任务,也可以用于执行分类任务,还可以用于同时执行回归任务和分类任务,适用领域较广。
在一些实施例中,第一模型和第二模型具有以下一种或者多种特征:
用于训练第一模型的样本数据集S1是用于训练第二模型的样本数据集S2的子集。例如,样本数据集S1包括车辆上的图像传感器采集的第一图像集合,样本数据集S2包括车辆上的图像传感器采集的第二图像集合,其中,第一图像集合是第二图像集合的子集。又例如,样本数据集S1包括手机上的语音采集模块采集的第一语音集合,样本数据集S2包括手机上的语音采集模块采集的第二语音集合,其中,第一语音集合是第二语音集合的子集。在一些实施例中,样本数据集S1中可以仅包括一个数据域上的样本数据,样本数据集S2中可以包括多个数据域上的样本数据。例如,样本数据集S1中包括车辆的行驶环境图像,样本数据集S2中既包括车辆的行驶环境图像,又包括无人机的飞行环境图像。又例如,样本数据集S1中包括一种语言(例如中文)的语音数据,样本数据集S2中包括多种语言(例如,中文、英文、日文)的语音数据。这样,可以减少多个数据域对部署模型带来的噪声和干扰。
第一模型运行时占用的资源少于第二模型运行时占用的资源,具体可以包括内存占用量较少和/或运行时间较短等。除此之外,还可以通过其他指标来衡量模型运行时占用的资源,此处不再一一列举。
第一模型的规模小于第二模型的规模。模型的规模可以采用模型的层数、节点数量、模型占用的存储空间等指标来衡量。具体来说,模型的规模较小可以是指模型的层数较少、模型的节点数量较少和/或模型占用的存储空间较少等。除此之外,还可以通过其他指标来衡量模型的规模,此处不再一一列举。
第一模型的复杂度低于第二模型的复杂度。所述复杂度可以采用识别算法的复杂 度和/或模型结构的复杂度等指标来衡量。
在S602中,将所有待处理数据的集合记为D,其中每条待处理数据记为x,经过第一模型m和第二模型M后输出的第一预测结果和第二预测结果分别记为y
m和y
M。可以采用预先建立的损失函数(loss)来确定第一预测结果与第二预测结果之间的差异。Loss越大,意味着y
m与y
M之间的差异越大,从而表示性能相对较差的第一模型与性能相对较好的第二模型之间的分歧越大。例如,在语音识别场景下,所述差异可以是第一模型m输出的语音识别结果与第二模型M输出的语音识别结果之间的差异。在疾病诊断场景下所述差异可以是第一模型m输出的疾病诊断结果与第二模型M输出的疾病诊断结果之间的差异。
在一些实施例中,在确定所述第一预测结果与所述第二预测结果之间的差异之前,还可以基于预先设置的过滤条件,对所述第一预测结果y
m和所述第二预测结果y
M进行过滤,分别得到过滤后的第一预测结果y'
m和过滤后的第二预测结果y'
M。如果数据挖掘的目标情景是具体的并且可以通过数学方法描述的,则相应制定过滤条件c,对y
m和y
M进行过滤;如果目标情景是笼统的,则可以不对y
m和y
M进行过滤。
举例来说,在语音识别场景下,可以通过第一模型和第二模型对输入的语音数据进行识别,分别得到语音识别结果y
m和y
M。假设语音识别结果中包括含有关键字“打开”的结果(例如“打开通讯录”)以及含有关键字“关闭”的结果(例如,“关闭闹钟”),且需要挖掘的是包含关键点“打开”的结果,则可以过滤掉“关闭闹钟”这一语音识别结果,只保留“打开通讯录”这一语音识别结果。
得益于loss的定义是一个纯数学的优化目标,不挑剔具体的应用场景,所以除了自动驾驶、语音识别等场景,以上挖掘计算方法实际上适用于回归、分类等所有机器学习/深度学习模型及业务场景。
在S603中,可以基于所述差异从所述待处理数据中选取目标数据;基于所述目标数据对所述第一模型的参数进行调整。第一模型与第二模型针对同一待处理数据得到的识别结果之间的差异越大,意味着第一模型在这条待处理数据上的性能是越差的,这条待处理数据会导致第一模型的预测结果不准确的概率越大,从而这条待处理数据是corner case的概率越大。因此,一条待处理数据为所述目标数据的概率与所述待处理数据对应的差异正相关。即,一条待处理数据对应的差异越大,该待处理数据是目标数据的概率越大。可以通过权重来表征所述待处理数据为目标数据的概率。这样, 可以基于所述待处理数据对应的差异确定所述待处理数据的权重,并基于多条待处理数据的权重,从所述多条待处理数据中选取目标数据。
例如,可以遍历D中所有的待处理数据x,按照上述权重计算方式得到一组权重{w},按从大到小排列后,选取前若干个权重对应的待处理数据作为目标数据输出。又例如,可以将权重大于预设权重阈值的各待处理数据作为目标数据输出。再例如,可以将大于预设权重阈值的若干个权重中,取值从大到小的若干个权重对应的待处理数据作为目标数据输出。
在一些实施例中,所述第一模型用于执行第一任务,所述第二模型用于执行第二任务,所述第二任务是所述第一任务的子集。例如,第一任务包括识别白色卡车的任务、识别行人的任务以及识别非机动车的任务,第二任务仅包括识别白色卡车的任务。或者,第一人物包括识别包含关键字“打开”和“关闭”的语音数据的任务,第二任务仅包括识别包含关键字“打开”的语音数据的任务。
在一些实施例中,所述第一预测结果由所述第一模型基于预先设置的任务信息对所述待处理数据进行预测得到,所述第二预测结果由所述第二模型基于所述任务信息对所述待处理数据进行预测得到。所述任务信息包括以下至少任一:
所述第一模型和所述第二模型执行的任务。所述任务可以是语音识别任务、疾病诊断任务、图像识别任务等。通过定义识别任务,能够支持定向挖掘,使得获取的目标数据基于当前任务需求而改变,并能够以较小的代价改变数据挖掘标准,可扩展性高。
用于确定所述第一预测结果与所述第二预测结果之间的差异的损失函数,该损失函数可以是自定义的损失函数,也可以是现有的损失函数(例如,交叉熵损失函数、Softmax损失函数、L1损失函数等)。
所述第一模型和所述第二模型的运行环境,包括但不限于操作系统类型、处理器的内核数量、处理器类型、内存容量等。
多条待处理数据中目标数据的比例信息或数量信息。所述比例信息是指目标数据的数量与待处理数据的总数之间的比值,所述数量信息可以是一个绝对数量(例如,20张)。
在一些实施例中,所述任务信息可以由用户通过交互组件输入。所述交互组件可以包括但不限于触摸屏、鼠标、键盘等。在未获取到用户输入的任务信息的情况下, 可以将默认信息作为所述任务信息,或者将最近一次设置的信息作为所述任务信息,或者将最常用的信息作为所述任务信息,或者随机设置所述任务信息。
本公开的方案具有以下优势:
(1)适用领域广,兼容回归、分类、二者结合的深度学习模型和任务;
(2)自动化的数据挖掘过程,尽可能少的人为参与;
(3)可解释性强,对于每一个条待处理数据,能够通过明确的逻辑来解释为何被/不被挖掘;
(4)支持定向挖掘,可以定向挖掘导致深度学习模型出错/表现不好场景的目标数据;
(5)准确度高,挖掘出来的目标数据有很高的准确度和可靠性;
(6)挖掘标准可扩展,当边角案例的定义发生变化,亦即挖掘标准变化时,挖掘算法可以很低的成本进行适配。
本公开实施例还提供一种车辆识别模型的参数调整装置,包括处理器,所述处理器用于执行以下步骤:
获取第一识别模型对行驶环境图像进行识别后输出的第一识别结果,并获取第二识别模型对所述行驶环境图像进行识别后输出的第二识别结果,所述第一识别模型运行在所述车辆的运算平台,所述第二识别模型运行在服务器的运算平台;
获取所述第一识别结果与所述第二识别结果之间的差异;
基于所述差异和所述行驶环境图像,对所述第一识别模型的参数进行调整。
在一些实施例中,所述处理器具体用于:将调整参数后的所述第一识别模型更新至所述车辆。
在一些实施例中,所述处理器具体用于:基于所述差异从所述行驶环境图像中选取目标图像;基于所述目标图像对所述第一识别模型的参数进行调整。
在一些实施例中,一张行驶环境图像为所述目标图像的概率与所述行驶环境图像对应的差异正相关。
在一些实施例中,所述处理器具体用于:基于所述行驶环境图像对应的差异确定所述行驶环境图像的权重,所述行驶环境图像的权重用于表征所述行驶环境图像为目 标图像的概率;基于多张行驶环境图像的权重,从所述多张行驶环境图像中选取目标图像。
在一些实施例中,所述处理器具体用于:从所述多张行驶环境图像中选取权重从大到小的若干张行驶环境图像作为所述目标图像。
在一些实施例中,所述第一识别模型用于执行第一识别任务,所述第二识别模型用于执行第二识别任务,所述第二识别任务是所述第一识别任务的子集。
在一些实施例中,所述处理器还用于:在确定所述第一识别结果与所述第二识别结果之间的差异之前,基于预先设置的过滤条件,对所述第一识别结果和所述第二识别结果进行过滤。
在一些实施例中,所述第一识别结果由所述第一识别模型基于预先设置的任务信息对所述行驶环境图像进行识别得到,所述第二识别结果由所述第二识别模型基于所述任务信息对所述行驶环境图像进行识别得到。
在一些实施例中,所述任务信息包括以下至少任一:所述第一识别模型和所述第二识别模型执行的识别任务;用于确定所述第一识别结果与所述第二识别结果之间的差异的损失函数;所述第一识别模型和所述第二识别模型的运行环境;多张所述行驶环境图像中目标图像的比例信息或数量信息,其中,所述目标图像基于所述差异从多张所述行驶环境图像中选取得到,并用于对所述第一识别模型的参数进行调整。
在一些实施例中,所述任务信息由用户通过交互组件输入。
在一些实施例中,所述第一识别模型包括至少一个第一子模型,所述第二识别模型包括至少一个第二子模型。
在一些实施例中,所述第一识别模型和所述第二识别模型具有以下一种或者多种特征:用于训练所述第一识别模型的样本图像集是用于训练所述第二识别模型的样本图像集的子集;所述第一识别模型运行时占用的资源少于所述第二识别模型运行时占用的资源;所述第一识别模型的规模小于所述第二识别模型的规模。
本公开实施例还提供一种数据处理装置,包括处理器,所述处理器用于执行以下步骤:
获取预先训练的第一模型对待处理数据进行预测后输出的第一预测结果,并获取预先训练的第二模型对所述待处理数据进行预测后输出的第二预测结果;
确定所述第一预测结果与所述第二预测结果之间的差异;
基于所述差异和所述待处理数据对所述第一模型的模型参数进行调整;
其中,所述第一模型和所述第二模型具有以下一种或者多种特征:
用于训练所述第一模型的样本数据集是用于训练所述第二模型的样本数据集的子集,和/或所述第一模型运行时占用的资源少于所述第二模型运行时占用的资源,和/或所述第一模型的规模小于所述第二模型的规模。
在一些实施例中,所述处理器具体用于:基于所述差异从所述待处理数据中选取目标数据;基于所述目标数据对所述第一模型的模型参数进行调整。
在一些实施例中,所述待处理数据为目标数据的概率与所述待处理数据对应的差异正相关。
在一些实施例中,所述处理器具体用于:基于所述待处理数据对应的差异确定所述待处理数据的权重,所述待处理数据的权重用于表征所述待处理数据为目标数据的概率;基于多条待处理数据的权重,从所述多条待处理数据中确定目标数据。
在一些实施例中,所述处理器具体用于:从所述多条待处理数据中选择权重从大到小的若干条待处理数据;将选中的待处理数据确定为目标数据。
在一些实施例中,所述第一模型用于执行第一任务,所述第二模型用于执行第二任务,所述第二任务是所述第一任务的子集。
在一些实施例中,所述待处理数据由可移动平台上的传感器采集得到,所述第一模型部署在所述可移动平台上。
在一些实施例中,用于训练所述第一模型的样本数据集是用于训练所述第二模型的样本数据集的子集,其中,用于训练所述第一模型的样本数据集包括一个数据域上的样本数据,用于训练所述第二模型的样本数据集包括多个数据域上的样本数据。
在一些实施例中,所述处理器还用于:在确定所述第一预测结果与所述第二预测结果之间的差异之前,基于预先设置的过滤条件,对所述第一预测结果和所述第二预测结果进行过滤。
在一些实施例中,所述第一预测结果由所述第一模型基于预先设置的任务信息对所述待处理数据进行预测得到,所述第二预测结果由所述第二模型基于预先设置的所述任务信息对所述待处理数据进行预测得到。
在一些实施例中,所述任务信息包括以下至少任一:所述第一模型和所述第二模型执行任务的任务类型;用于确定所述第一预测结果与所述第二预测结果之间的差异的损失函数;所述第一模型和所述第二模型的运行环境;从多条所述待处理数据中选取目标数据的比例信息或数量信息,其中,所述目标数据基于所述差异从多条所述待处理数据中选取得到,并用于对所述第一模型的参数进行调整。
在一些实施例中,所述任务信息由用户通过交互组件输入。
在一些实施例中,所述第一模型包括至少一个第一子模型,所述第二模型包括至少一个第二子模型。
图7示出了一种车辆识别模型的参数调整装置/数据处理装置的硬件结构示意图,该装置可以包括:处理器701、存储器702、输入/输出接口703、通信接口704和总线705。其中处理器701、存储器702、输入/输出接口703和通信接口704通过总线705实现彼此之间在设备内部的通信连接。
处理器701可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。处理器701还可以包括显卡,所述显卡可以是Nvidia titan X显卡或者1080Ti显卡等。
存储器702可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器702可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器702中,并由处理器701来调用执行。
输入/输出接口703用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口704用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线705包括一通路,在设备的各个组件(例如处理器701、存储器702、输入/输出接口703和通信接口704)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器701、存储器702、输入/输出接口703、通信接口704以及总线705,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
参见图8,本公开实施例还提供一种车辆,包括:
图像传感器801,用于在所述车辆行驶过程中,采集所述车辆的行驶环境图像;以及
处理器802,其上运行有第一识别模型,用于对所述行驶环境图像进行识别后输出第一识别结果,所述第一识别模型的模型参数基于所述第一识别结果与第二识别结果之间的差异以及所述行驶环境图像调整得到,所述第二识别结果为运行在服务器的运算平台上的第二识别模型对所述行驶环境图像进行识别后输出的。
所述图像传感器801可以安装在车辆的车身上,安装位置可以包括但不限于以下一者:左后视镜下、右后视镜下、主驾驶位的遮阳板周围、副驾驶位的遮阳板周围、车顶。图像传感器801的安装数量可以大于或等于1。
所述处理器802执行的方法可参见前述车辆识别模型的参数调整方法,此处不再赘述。
本说明书实施例还提供一种计算机可读存储介质,所述可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实任一实施例所述方法的步骤。
以上实施例中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员在考虑说明书及实践这里公开的说明书后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。