掌桥专利:专业的专利平台
掌桥专利
首页

多任务目标检测方法、设备、自动驾驶系统和存储介质

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及人工神经网络技术领域,具体提供一种多任务目标检测方法、设备、自动驾驶系统和存储介质。

背景技术

多任务目标检测作为计算机视觉领域的基本任务之一,拥有广大的应用前景。在自动驾驶的感知场景中,需要涉及多任务目标的识别检测,如果每个任务目标均使用单任务学习模型,叠加起来的延时、计算资源以及部署难度都是难以忍受的。而多任务学习模型共享同一个骨干网络用来提取深度特征,每个任务在骨干网络输出的深度特征后接入一个头部网络,有效解决了计算资源、降低了延迟。

然而,在实际的自动驾驶感知落地中,由于数据成本问题,多任务数据集大多为异源的,即每一个数据样本只有一个任务的标注,且不同任务数据分布差异非常大,另外,任务数量一般比较多,这与当前公众领域探索的多任务学习方法采用同源数据集,且任务数量较少存在较大差异,在应用异源数据进行训练多任务模型时,容易导致任务间的冲突,收敛速度慢、模型训练效果较差的问题,进而影响了多任务目标检测的可靠性。

发明内容

为了克服上述缺陷,提出了本发明,以提供解决或至少部分地解决异源多数据之间易导致任务间的冲突,收敛速度慢、模型训练效果较差,进而影响了多任务目标检测的可靠性的技术问题的多任务目标检测方法、设备、自动驾驶系统和存储介质。

在第一方面,本发明提供一种多任务目标检测方法,包括:

获取包含至少一个目标检测对象的待检测图像;

将所述待检测图像输入基于分步法训练的多任务目标检测模型中,检测并识别出所述目标检测对象;

其中,所述多任务目标检测模型为对预先搭建的待训练模型进行分步训练得到的;所述待训练模型包括用于所有任务共享的主骨干网络、分别用于不同任务组的多个分支骨干网络和每个任务单独使用的头部网络,对预先搭建的待训练模型进行分步训练,包括:

分别选取每个任务组中部分任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,得到初始训练模型;

固定所述初始训练模型的主骨干网络参数,分别利用每个任务组的所有任务对应的交通场景训练图像对所述初始训练模型进行第二阶段训练,得到中间训练模型;

释放所述中间训练模型的主骨干网络参数,利用所有任务组的所有任务对应的交通场景训练图像对所述中间训练模型进行第三阶段训练,得到所述多任务目标检测模型。

进一步地,上述所述的多任务目标检测方法中,利用所有任务组的所有任务对应的交通场景训练图像对所述中间训练模型进行第三阶段训练,得到所述多任务目标检测模型,包括:

获取第二阶段训练时的学习率;

基于预设的学习率降低参数对所述第二阶段训练时的学习率进行调整,得到降低后的学习率;

基于所述降低后的学习率,利用所有任务组的所有任务对应的交通场景训练图像对所述中间训练模型进行第三阶段训练,得到所述多任务目标检测模型。

进一步地,上述所述的多任务目标检测方法中,每个所述分支骨干网络分别与所述主骨干网络和对应任务组组中的每个任务的头部网络连接,形成每个任务对应的网络路径;

在至少一个训练阶段中,按照如下步骤进行训练,所述训练阶段包括所述第一阶段训练、所述第二阶段训练和所述第三阶段训练:

基于当前训练阶段的多个任务对应的交通场景训练图像分别对对应的网络路径进行正向训练和反向训练,分别得到每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度;

基于每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度,对当前训练阶段的模型的参数进行更新,直到满足收敛条件后得到当前训练阶段中完成训练的模型。

进一步地,上述所述的多任务目标检测方法中,所述收敛条件包括:

每个网络路径的损失值不再下降,且利用验证集对应的交通场景训练图像进行测试当前训练阶段的模型后,测试结果的精度不再上升。

进一步地,上述所述的多任务目标检测方法中,基于当前训练阶段的任务对应的交通场景训练图像对对应的网络路径进行正向训练和反向训练,得到每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度,包括:

基于正向传播算法,利用当前训练阶段的任务对应的交通场景训练图像对对应的网络路径进行正向训练,得到每个网络路径的损失值;

基于反向传播算法,利用所述损失值对对应的网络路径进行反向训练,确定每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度。

进一步地,上述所述的多任务目标检测方法中,基于每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度,对当前训练阶段的模型的参数进行更新,包括:

将所有网络路径上的主骨干网络的梯度叠加,得到主骨干网络的梯度叠加值;以及,将每个分支骨干网对应的每个网络路径上的分支骨干网络的梯度叠加,得到每个分支骨干网络的梯度叠加值;

基于主骨干网络的梯度叠加值,对主骨干网络参数进行更新,基于每个分支骨干网络的梯度叠加,对每个主骨干网络参数进行更新,以及,基于每个网络路径上头部网络的梯度,对每个头部网络参数更新。

进一步地,上述所述的多任务目标检测方法中,选取每个任务组中部分任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,得到初始训练模型包括:

分别选取每个任务组中数据量最大的任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,得到所述初始训练模型。

在第三方面,提供一种多任务目标检测设备,包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述任一项所述的多任务目标检测方法。

在第四方面,提供一种自动驾驶系统,包括如上所述的多任务目标检测设备。

在第五方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述任一项技术方案所述的多任务目标检测方法。

本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:

在实施本发明的技术方案中,通过将待训练模型设计为所有任务共享的主骨干网络、不同任务组共享的分支骨干网络和每个任务单独使用的头部网络依次连接的结构,在模型训练时,选取每个任务组中部分任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,得到初始训练模型,并固定所述初始训练模型的主骨干网络参数,利用每个任务组的所有任务对应的交通场景训练图像对所述初始训练模型进行第二阶段训练,得到中间训练模型后,释放所述中间训练模型的主骨干网络参数,利用所有任务组的所有任务对应的交通场景训练图像对所述中间训练模型进行第三阶段训练,最终得到所述多任务目标检测模型。这样,在第一阶段训练时,由于每个组只有部分任务进行训练,降低了数据量,有效防止发生任务冲突,提高收敛速度,缩短训练时间,在第二阶段训练时,可以在主骨干网络参数不变的情况下,分别对主骨干网络后的各个分支骨干网络路径上的任务在相互不干扰的情况下进行训练,优化头部网络参数,缩短了训练时间,且可以不局限于任务是否来自同源数据集,针对异源数据集的任务同样可以在相互不干扰的情况下进行训练;在第三阶段训练时,由于前两个阶段模型已经处于收敛状态,此时,所有任务一起训练时,不仅可以进一步优化主骨干网络的参数,而且可以较快的完成收敛,得到所需要的所述多任务目标检测模型。这样,能够减少任务间的冲突现象,提高收敛速度,提高模型训练效果,最终在将所述待检测图像输入基于分步法训练的多任务目标检测模型中,检测并识别出所述目标检测对象的可靠性更高。

进一步地,在第一阶段训练时,选取每个任务组中数据量最大的任务进行训练,能够避免所有任务一起训练导致数据量小的任务难以收敛的问题。

附图说明

参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本发明的保护范围组成限制。此外,图中类似的数字用以表示类似的部件,其中:

图1是根据本发明的一个实施例的多任务目标检测方法的主要步骤流程示意图;

图2是根据本发明一个实施例的待训练模型的结构框图;

图3是根据本发明的一个实施例的多任务目标检测模型的训练方法的主要步骤流程示意图;

图4是根据本发明的一个实施例的多任务目标检测设备的主要结构框图。

具体实施方式

下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。

在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。术语“至少一个A或B”或者“A和B中的至少一个”含义与“A和/或B”类似,可以包括只是A、只是B或者A和B。单数形式的术语“一个”、“这个”也可以包含复数形式。

在多任务目标检测过程中,由于数据成本问题,多任务数据集大多为异源的,即每一个数据样本只有一个任务的标注,且不同任务数据分布差异非常大,另外,任务数量一般比较多,这与当前公众领域探索的多任务学习方法采用同源数据集,且任务数量较少存在较大差异,导致在应用异源数据进行训练多任务模型时,容易导致任务间的冲突,收敛速度慢、模型训练效果较差的问题,进而影响了多任务目标检测的可靠性。

因此,为了解决上述技术问题,本发明提供了以下技术方案。

参阅附图1,图1是根据本发明的一个实施例的多任务目标检测方法的主要步骤流程示意图。图2是根据本发明一个实施例的待训练模型的结构框图,如图2所示,该待训练模型可以包括用于所有任务共享的主骨干网络、分别用于不同任务组的多个分支骨干网络和每个任务单独使用的头部网络,每个所述分支骨干网络分别与所述主骨干网络和对应任务组组中的每个任务的头部网络连接,形成每个任务对应的网络路径。其中,每个分支骨干网络可以根据每个任务的特性进行划分,例如,任务的特性可以包括语义分割、目标检测等。

图2中以包括两个分支骨干网络,每个分支骨干网络连接3个不同任务的头部网络为例。主骨干网络可以记为shared networks1,两个分支骨干网络分别记为sharednetworks2、shared networks3,6个任务对应的头部网络依次记为task head1-taskhead6,第一个分支骨干网络shared networks2与第一个头部网络task head1-第三个头部网络task head3相连,第二个分支骨干网络shared networks3与第一个头部网络taskhead4-第三个头部网络task head6相连,主骨干网络shared networks1与输入数据Data相连。shared networks1-shared networks2-task head1为第一个网络路径,其对应的损失函数可以记为loss1;hared networks1-shared networks2-task head2为第二个网络路径,其对应的损失函数可以记为loss2,以此类推,在此不再一一举例。

如图1所示,本发明实施例中的多任务目标检测方法主要包括下列步骤101-步骤102。

步骤101、获取包含至少一个目标检测对象的待检测图像;

在一个具体实现过程中,目标检测对象可以包括但不限制于障碍物、行人、红绿灯以及车道线。可以通过车载摄像头、毫米雷达等获取包含目标检测对象的待检测图像。

步骤102、将所述待检测图像输入基于分步法训练的多任务目标检测模型中,检测并识别出所述目标检测对象;

在一个具体实现过程中,将所述待检测图像输入基于分步法训练的多任务目标检测模型后,多任务目标检测模型先根据待检测图像对应的任务特性进行划分,并将划分好的待检测图像依次输入对应的网络路径进行检测识别,从而得到目标检测对象。

在一个具体实现过程中,可以对预先搭建的待训练模型进行分步训练,进而得到多任务目标检测模型的训练,具体的训练过程如图3所示,图3是根据本发明的一个实施例的多任务目标检测模型的训练方法的主要步骤流程示意图。如图3所示,本实施例的多任务目标检测模型的训练方法主要包括步骤301-步骤303;

步骤301、分别选取每个任务组中部分任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,得到初始训练模型;

在一个具体实现过程中,每个任务中不同任务对应的交通场景训练图像的数据量不同,所有任务一起训练的时候,数据量较小的任务较难收敛,若针对数据量较小的任务采用重采样的方法,会导致训练收敛慢且训练时间大大延长,因此,本实施例中可以只选取每个任务组中部分任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,以便对待训练模型的主骨干网络参数、待训练模型的分支骨干网络参数和待训练模型中参与训练的任务相对应的头部网络参数进行更新,得到初始训练模型。

在一个具体实现过程中,可以分别选取每个任务组中数据量最大的任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,得到所述初始训练模型,这样,不再利用数据量较小的任务对应的交通场景训练图像对所述待训练模型进行训练,防止数据量较小的任务难收敛造成的训练时间较长的问题,且利用数据量最大的任务进行训练时,其数据量较大,不再需要进行重采样,且训练结果相对数据量较小的任务而言,更加精准。

在第一阶段训练过程中,可以按照如下步骤进行训练:

(1)基于当前训练阶段的多个任务对应的交通场景训练图像分别对对应的网络路径进行正向训练和反向训练,分别得到每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度;

具体地,可以基于正向传播算法,利用当前训练阶段的任务对应的交通场景训练图像对对应的网络路径进行正向训练,得到每个网络路径的损失值;基于反向传播算法,利用所述损失值对对应的网络路径进行反向训练,确定每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度。

(2)基于每个网络路径上的主骨干网络的梯度、分支骨干网络的梯度和头部网络的梯度,对当前训练阶段的模型的参数进行更新,直到满足收敛条件后得到当前训练阶段中完成训练的模型。

具体地,可以将所有网络路径上的主骨干网络的梯度叠加,得到主骨干网络的梯度叠加值;以及,将每个分支骨干网对应的每个网络路径上的分支骨干网络的梯度叠加,得到每个分支骨干网络的梯度叠加值;基于主骨干网络的梯度叠加值,对主骨干网络参数进行更新,基于每个分支骨干网络的梯度叠加,对每个主骨干网络参数进行更新,以及,基于每个网络路径上头部网络的梯度,对每个头部网络参数更新。

需要说明的是,在完成一次迭代训练后直接进行下一次迭代训练,到达一定数量后进行一次验证集上的测试查看当前训练阶段的模型精度,直到

每个网络路径的损失值不再下降,且利用验证集对应的交通场景训练图像进行测试当前训练阶段的模型后,测试结果的精度不再上升后即可停止训练。

步骤302、固定所述初始训练模型的主骨干网络参数,分别利用每个任务组的所有任务对应的交通场景训练图像对所述初始训练模型进行第二阶段训练,得到中间训练模型;

在一个具体实现过程中,由于第一阶段训练时,只有部分任务对应的交通场景训练图像参与模型训练,使得初始训练模型的主骨干网络参数、初始训练模型的分支主骨干网络参数和初始训练模型中每个头部网络参数并不是最优的参数,每个任务组对应的分支网络并不是由该任务组中所有的任务得到的,因此,在得到初始训练模型后,需要进行第二阶段训练。

在一个具体实现过程中,由于所有任务共用一个主骨干网络,而经过第一训练阶段已经更新了待训练模型的主骨干网络,已经取得了一定的训练效果,为了能够缩短训练时间,可以固定所述初始训练模型的主骨干网络参数使其保持不变,并分别利用每个任务组的所有任务对应的交通场景训练图像对所述初始训练模型进行第二阶段训练,并分别对初始训练模型的分支骨干网络参数和初始训练模型中所有的头部网络参数进行更新,得到中间训练模型。

在一个具体实现过程中,第二阶段训练过程可以参照第一阶段训练过程进行训练,在此不再赘述。

需要说明的是,第二阶段训练过程中,由于初始训练模型的主骨干网络参数被固定了,这样,即使得到了每个网络路径上的主骨干网络的梯度,也不会影响初始训练模型的主骨干网络参数,这样,每个网络路径上分支主骨干网络和与分支主骨干网络相连的头部网络,可以分别在不同的处理器上同时进行训练,从而缩短了训练时间,且可以不局限于任务是否来自同源数据集,针对异源数据集的任务同样可以在相互不干扰的情况下进行训练。

步骤303、释放所述中间训练模型的主骨干网络参数,利用所有任务组的所有任务对应的交通场景训练图像对所述中间训练模型进行第三阶段训练,得到所述多任务目标检测模型。

在一个具体实现过程中,由于第一阶段训练和第二阶段训练时,只有部分任务参与主骨干网络参数的训练,使得主骨干网络参数并不是最优的参数,因此,在得到中间训练模型后,可以释放所述中间训练模型的主骨干网络参数,这样,并利用所有任务组的所有任务对应的交通场景训练图像对所述中间训练模型进行第三阶段训练,再一次对中间训练模型的主骨干网络参数、中间训练模型的分支骨干网络参数和中间训练模型中所有的任务相对应的头部网络参数进行更新,得到所述多任务目标检测模型。

在一个具体实现过程中,第三阶段训练过程也可以参照第一阶段训练过程进行训练,在此不再赘述。

需要说明的是,由于经过第一阶段训练主骨干网络参数已经得到初步的优化,经过第二阶段训练分支骨干网络参数和中所有的任务相对应的头部网络参数,也就是说,在进行第三阶段训练时,是在前两个阶段训练完成收敛的情况下进行训练的,即使所有任务一起训练,其也能较快的完成收敛,且所述多任务目标检测模型的主骨干网络参数与所有任务相关,其准确度更高。

另外,由于经过第一阶段训练主骨干网络参数已经得到初步的优化,所以该步骤可以在一个较低的学习率下完成即可,进而缩短整个训练时间。

具体地,可以获取第二阶段训练时的学习率;基于预设的学习率降低参数对所述第二阶段训练时的学习率进行调整,得到降低后的学习率;基于所述降低后的学习率,利用所有任务组的所有任务对所述中间训练模型进行第三阶段训练,得到所述多任务目标检测模型。通常情况下,预设的学习率降低参数可以为按照上一训练阶段的学习率的1/10进行调整。

本实施例的多任务目标检测方法,通过将待训练模型设计为所有任务共享的主骨干网络、不同任务组共享的分支骨干网络和每个任务单独使用的头部网络依次连接的结构,在模型训练时,选取每个任务组中部分任务对应的交通场景训练图像对所述待训练模型进行第一阶段训练,得到初始训练模型,并固定所述初始训练模型的主骨干网络参数,利用每个任务组的所有任务对应的交通场景训练图像对所述初始训练模型进行第二阶段训练,得到中间训练模型后,释放所述中间训练模型的主骨干网络参数,利用所有任务组的所有任务对应的交通场景训练图像对所述中间训练模型进行第三阶段训练,最终得到所述多任务目标检测模型。这样,在第一阶段训练时,由于每个组只有部分任务进行训练,降低了数据量,有效防止发生任务冲突,提高收敛速度,缩短训练时间,在第二阶段训练时,可以在主骨干网络参数不变的情况下,分别对主骨干网络后的各个分支骨干网络路径上的任务在相互不干扰的情况下进行训练,优化头部网络参数,缩短了训练时间,且可以不局限于任务是否来自同源数据集,针对异源数据集的任务同样可以在相互不干扰的情况下进行训练;在第三阶段训练时,由于前两个阶段模型已经处于收敛状态,此时,所有任务一起训练时,不仅可以进一步优化主骨干网络的参数,而且可以较快的完成收敛,得到所需要的所述多任务目标检测模型。这样,能够减少任务间的冲突现象,提高收敛速度,提高模型训练效果,最终在将所述待检测图像输入基于分步法训练的多任务目标检测模型中,检测并识别出所述目标检测对象的可靠性更高。

需要指出的是,尽管上述实施例中将各个步骤按照特定的先后顺序进行了描述,但是本领域技术人员可以理解,为了实现本发明的效果,不同的步骤之间并非必须按照这样的顺序执行,其可以同时(并行)执行或以其他顺序执行,这些变化都在本发明的保护范围之内。

本领域技术人员能够理解的是,本发明实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。

进一步,本发明还提供了一种多任务目标检测设备。

图4是根据本发明的一个实施例的多任务目标检测设备的主要结构框图。如图4所示,在根据本发明的一个控制装置实施例中,多任务目标检测设备包括处理器40和存储装置41,存储装置41可以被配置成存储执行上述方法实施例的多任务目标检测方法的程序,处理器40可以被配置成用于执行存储装置41中的程序,该程序包括但不限于执行上述方法实施例的智能家居设备的控制方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该多任务目标检测设备可以是包括各种电子设备形成的控制设备。

进一步,本发明还提供了一种自动驾驶系统,该自动驾驶系统可以包括上述实施例的多任务目标检测设备。

进一步,本发明还提供了一种计算机可读存储介质。在根据本发明的一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的多任务目标检测方法的程序,该程序可以由处理器加载并运行以实现上述多任务目标检测方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机可读存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。

进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的装置的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。

本领域技术人员能够理解的是,可以对装置中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

相关技术
  • 多任务目标检测方法、设备、自动驾驶系统和存储介质
  • 多任务的目标检测方法、装置、电子设备及存储介质
技术分类

06120114722008