目标标注的方法及装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及通过计算机进行目标标注的方法和装置。
背景技术
在传统车险验车场景中,往往通过保险公司的专业查勘人员进行验车。例如,在投保时,需要检验车辆是否有损,车险理赔场景中,保险公司需要派出专业的查勘定损人员到事故现场进行现场查勘定损。由于需要人工查勘定损,保险公司需要投入大量的人力成本,和专业知识的培训成本。从普通用户的体验来说,投保和理赔流程由于等待人工查勘员现场查验等,用户的等待时间较长,体验较差。
针对需求背景中提到的这一人工成本巨大的行业痛点,开始设想将人工智能和机器学习应用到车辆损伤检测的场景中,希望能够利用人工智能领域计算机视觉图像识别技术,根据普通用户拍摄的现场图像,自动识别图片中反映的车损状况。如此,可以大大减少人工成本,提升用户体验。
然而,常规技术中的自动识别技术,通常是基于单张图片的标注进行的。因此,基于以上背景,亟需提供一种充分考虑前后图像帧之间关联的普适性目标标注方式(不限于车损状况标注),提高目标标注的有效性。
发明内容
本说明书一个或多个实施例描述了一种目标标注的方法和装置,可以提高损伤识别的准确度。
根据第一方面,提供了一种基于视频流进行目标标注的方法,所述方法包括:获取当前关键帧,所述当前关键帧是从所述视频流的各个图像帧中确定的多个关键帧中的一个;使用预先训练的标注模型对所述当前关键帧进行目标标注,得到针对所述当前关键帧的标注结果,所述标注模型用于通过目标边框从图片中标注出包含预定目标的区域;基于针对所述当前关键帧的标注结果,对所述视频流中所述当前关键帧之后的非关键帧进行目标标注。
在一个实施例中,初始的多个关键帧通过以下任一种方式提取:
按照预定时间间隔从所述视频流中选择出多个图像帧作为关键帧;
将所述视频流输入预先训练的抽帧模型,根据所述抽帧模型的输出结果确定出多个关键帧。
在一个实施例中,所述视频流是车辆视频,所述目标是车辆损伤,所述标注模型通过以下方式训练:获取多张车辆图片,各张车辆图片对应各个样本标注结果,其中,在车辆图片中包括车辆损伤的情况下,单个样本标注结果包括至少一个损伤边框,所述损伤边框是包围连续损伤区域的最小矩形框;至少基于所述多张车辆图片,训练所述标注模型。
在一个实施例中,在所述视频流中,相邻的关键帧分别记为第一图像帧和第二图像帧,针对所述当前图像帧,所述当前关键帧为初始的第一图像帧,所述当前关键帧的下一帧为初始的第二图像帧;所述基于针对所述当前关键帧的标注结果,对所述视频流中,所述当前关键帧之后的非关键帧进行目标标注包括:在对所述第一图像帧标注完成后,检测所述第二图像帧是否为关键帧;在所述第二图像帧不是关键帧的情况下,检测所述第二图像帧与所述第一图像帧的相似度;如果所述第二图像帧与所述第一图像帧的相似度大于预先设定的相似度阈值,将所述第一图像帧对应的标注结果映射到所述第二图像帧,从而得到所述第二图像帧对应的标注结果;用所述第二图像帧与所述第二图像帧的下一帧,分别更新所述第一图像帧与所述第二图像帧,基于更新后的第一图像帧的标注结果对更新后的第二图像帧进行目标标注。
在一个实施例中,如果所述第二图像帧与所述第一图像帧的相似度小于所述相似度阈值,将所述第二图像帧确定为关键帧。
在一个实施例中,确定所述第二图像帧与所述第一图像帧的相似度包括:基于所述第一图像帧的标注结果,确定所述第一图像帧中的参考区域;利用预先确定的卷积神经网络分别处理所述第一图像帧中的参考区域、所述第二图像帧,并分别得到第一卷积结果、第二卷积结果;将所述第一卷积结果作为卷积核,对所述第二卷积结果进行卷积处理,得到第三卷积结果,所述第三卷积结果对应的数值阵列中,各个数值分别描绘出所述第二图像帧的相应区域与所述第一图像帧的参考区域的各个相似度;基于所述第三卷积结果对应的数值阵列中的最大数值,确定所述第二图像帧与所述第一图像帧的相似度。
在一个实施例中,在所述第二图像帧与所述第一图像帧的相似度大于预先设定的相似度阈值的情况下,所述将所述第一图像帧对应的标注结果映射到所述第二图像帧,从而得到所述第二图像帧对应的第二标注结果包括:按照所述第一图像帧的标注结果,标注出所述最大数值对应到的所述第二图像帧的图像区域。
在一个实施例中,所述基于所述第一图像帧的标注结果,确定所述第一图像帧中的参考区域包括:在所述第一标注结果包含目标边框的情况下,将初始的参考区域确定为,所述目标边框包围的区域;在所述第一标注结果不包含目标边框的情况下,将初始的参考区域确定为,所述当前关键帧中指定位置的区域。
在一个实施例中,所述当前关键帧还对应有置信标识,所述基于针对所述当前关键帧的标注结果,对所述视频流中,所述当前关键帧之后的非关键帧进行目标标注包括:确定所述当前关键帧之后、下一关键帧之前的各个非关键帧的置信标识,与所述当前关键帧的标注结果对应的置信标识一致。
在一个实施例中,所述置信标识包括,高置信度标识、低置信度标识,其中,所述高置信度标识对应所述标注模型针对相应关键帧的输出结果包含目标边框,参考区域指示出可提供高置信度的预定目标的情况,所述低置信度标识对应所述标注模型针对相应关键帧的输出结果不包含目标边框,参考区域不指示预定目标的情况;所述方法还包括:将对应有高置信度标识的图像帧加入目标标注集。
根据第二方面,提供一种基于视频流进行目标标注的装置,所述装置包括:
获取单元,配置为获取当前关键帧,所述当前关键帧是从所述视频流的各个图像帧中确定的多个关键帧中的一个;
第一标注单元,配置为使用预先训练的标注模型对所述当前关键帧进行目标标注,得到针对所述当前关键帧的标注结果,所述标注模型用于通过目标边框从图片中标注出包含预定目标的区域;
第二标注单元,配置为基于针对所述当前关键帧的标注结果,对所述视频流中所述当前关键帧之后的非关键帧进行目标标注。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的目标标注的方法和装置,在目标标注的过程中,在目标标注的过程中,仅通过标注模型处理视频流中的关键帧,对于非关键帧,通过关键帧的标注结果进行标注,从而大大减少数据处理量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的目标标注的方法流程图;
图3示出一个具体例子中确定图像帧相似度的流程示意图;
图4示出一个具体例子的基于视频流进行目标标注的流程示意图;
图5示出根据一个实施例的目标标注的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
为了便于说明,结合图1示出的本说明书实施例的一个具体适用场景进行描述。图1示出的是在验车场景,标注目标为车辆损伤,如有无损伤、损伤类型、损伤材质等等。该验车场景可以是任意需要对车辆损伤情况进行查验的场景。例如,车辆投保时,通过验车确定车辆有无损伤,或者车险理赔时,通过验车确定车辆损伤情况。
该实施场景中,用户可以通过可采集现场信息的终端,例如智能手机、照相机、传感器等,采集车辆的现场视频。现场视频可以包括一个或多个视频流,一个视频流即一段视频。现场视频可以发送至人工查验平台,由人工查验平台确定查验目的,从而向计算平台发送相应的标注请求,同时将所针对的现场视频发送给计算平台。值得说明的是,所针对的现场视频可以以视频流为单位,针对每个视频流发送一个标注请求,也可以以案件为单位,针对一个案件中的一个或多个视频流发送一个标注请求。计算平台通过本说明书架构的目标标注的方法,对视频流按照标注请求进行目标标注。在该实施场景中,该目标标注可以作为预标注结果反馈至人工查验平台,为人工决策提供参考。预标注结果可以指示出车辆无损,或者车辆有损情况下的损伤部位、损伤类别等。预标注结果可以是文字形式,也可以是包含车辆损伤的图像帧形式。
其中,图1示出的人工查验平台和计算平台可以是集成在一起的,也可以分开设置。在分开设置的情况下,计算平台可以作为为多个人工查验平台提供服务的服务端。图1中的实施场景仅为示例,在一些实现中,也可以不设置人工查验平台,直接由终端向计算平台发送视频流,计算平台将标注结果反馈至终端,或者将基于标注结果生成的验车结果反馈至终端。
具体地,本说明书实施例架构下的目标标注的方法,先从视频流中确定出多个关键帧,按照时间顺序对各个关键帧通过预先训练的标注模型进行处理,每处理一个关键帧,得到一个标注结果,并且对该关键帧之后的非关键帧进行处理之后,将当前关键帧和下一关键帧之间的图像帧标注完成后,进行下一个关键帧的处理。其中,对当前关键帧之后的非关键帧进行处理时,参考当前关键帧的标注结果,减少数据处理量。可选地,在对非关键帧进行处理时,还可以根据实际情况从非关键帧中选出满足条件的图像帧加入到关键帧中。并对选出的关键帧,利用标注模型进行处理,得到标注结果,基于其标注结果进行后续图像帧处理。
下面详细介绍目标标注的方法。
图2示出根据一个实施例的目标标注的方法流程图。该方法的执行主体可以是任何具有计算、处理能力的***、设备、装置、平台或服务器。例如图1示出的计算平台。所标注的目标可以是相关场景下的任意目标,例如各种物体(如小猫)、具有某些特征的模块(如椭圆形的树叶)等。在验车场景下,要标注的目标可以是车辆部件、车辆损伤等。
如图2所示,该目标标注的方法可以包括以下步骤:步骤201,获取当前关键帧,当前关键帧是从视频流中确定的多个关键帧中的一个;步骤202,使用预先训练的标注模型对当前关键帧进行目标标注,得到针对当前关键帧的标注结果,标注模型用于通过目标边框从图片中标注出包含目标的区域;步骤203,基于针对当前关键帧的标注结果,对视频流中当前关键帧之后的非关键帧进行目标标注。
首先,在步骤201中,获取当前关键帧,当前关键帧是从视频流的各个图像帧中确定的多个关键帧中的一个。关键帧通常是可以反映视频的变化特征的图像帧。通过对视频流抽取关键帧,用对关键帧的处理结果反映视频流的变化特征,可以有效降低数据处理量。
对一个视频流处理之前,可以预先抽取其中的多个关键帧。这些关键帧可以作为初始的关键帧。其中,对视频流进行关键帧抽取可以采用各种合理的方式进行。
在一个实施方式中,可以按照预定时间间隔从视频流中选择出图像帧作为关键帧。例如,一个30秒的视频流,可以按照0.5秒的时间间隔,从中抽取60个图像帧作为关键帧。
在另一个实施方式中,可以预先训练抽帧模型,将视频流输入抽帧模型,通过抽帧模型的输出结果确定视频流的各个关键帧。抽帧模型,顾名思义,就是从视频流的多个图像帧中抽取关键帧的模型。
在一个可选的实现方式中,抽帧模型可以通过以下方式训练:获取多个视频流作为训练样本,对每个视频流中的每个图像帧,可以提取有图像特征(例如色彩特征、部件特征等),并针对相应视频流具有人工标注的样本关键帧;对每个训练样本,将其对应的各个图像帧的图像特征依次输入选定的模型,例如循环神经网络RNN、LSTM等,利用模型输出结果与样本关键帧的对比,调整模型参数,从而训练抽帧模型。此时,步骤201获取的视频流中还可以包含对各个图像帧抽取图像特征的预处理结果,在此不再赘述。
在另一个可选的实现方式中,抽帧模型还可以通过以下方式训练:获取多个视频流作为训练样本,每个视频流分别对应多个图像帧,以及人工标注的样本关键帧;依次针对每个训练样本,将其各个图像帧依次输入选定的模型,例如循环神经网络RNN、LSTM等,由模型自行挖掘图像帧的特征,输出关键帧提取结果,然后利用模型输出结果与样本关键帧的对比,调整模型参数,从而训练抽帧模型。
在更多实施例中,还可以通过更多有效的方式抽取关键帧,在此不再赘述。
针对待处理的视频流中的每个关键帧,可以依次通过图2示出的目标标注流程进行处理。在本步骤201中,当前流程所获取的关键帧为当前关键帧,当前关键帧可以是待处理的视频流中的任一个关键帧。
接着,通过步骤202,使用预先训练的标注模型对当前关键帧进行目标标注,得到针对当前关键帧的标注结果。其中,标注模型用于通过目标边框从图片中标注出包含预定目标的区域。在验车场景中,预定目标可以是车辆部件、车辆损伤等。
标注模型的标注结果可以是图片形式,也可以是文字形式。图片形式例如是,在原图片的基础上,通过目标边框圈出所标注的目标。目标边框可以是包围连续目标区域的预定形状的最小边框,例如最小矩形框、最小圆形边框等。文字形式例如是,通过文字描述所标注的目标特征。例如,在目标为车辆损伤的情况下,文字形式的标注结果可以是:损伤部件+损伤程度,如保险杠刮擦;损伤材质+损伤程度,如左前车窗碎裂;等等。
根据一个实施方式,在视频流是车辆视频,目标是车辆损伤的情况下,标注模型可以通过以下方式训练:
获取多张车辆图片,各张车辆图片对应各个样本标注结果,其中,在车辆图片中包括车辆损伤的情况下,单个样本标注结果可以包括原图片上的至少一个损伤边框(对应至少一处损伤),损伤边框是包围连续损伤区域的最小矩形框(在其他实施例中也可以是圆形框等),否则,标注结果为空、“无损伤”,或原图片本身;
然后,至少基于这多张具有样本标注结果的车辆图片,训练标注模型。
这样,在本步骤202中,一个关键帧也就是一张图片,将当前关键帧输入标注模型,通过标注模型的处理,得到的输出结果,就可以是对当前关键帧的标注结果。在当前关键帧中不包含预定目标的情况下,针对当前关键帧的标注结果可以为空,或者“无损伤”的文字表示,或原图片本身。
进一步地,在步骤203,基于针对当前关键帧的标注结果,对视频流中当前关键帧之后的非关键帧进行目标标注。其中,这里的非关键帧就是没有被确定为关键帧的图像帧。当前关键帧之后的非关键帧,可以是当前关键帧之后、下一关键帧之前的图像帧。本说明书实施例中,关键帧通过标注模型进行目标标注,非关键帧参考关键帧的标注结果进行目标标注,从而减少数据处理量。
可以理解,视频流中的图像帧通常是按照一定的频率(如每秒24帧)连续采集的,相邻的图像帧之间的画面可能具有一定的相似性。相邻的图像帧可能具有多个相似的区域,即具有较大的相似度。可以理解,如果相邻图像帧相似度较小,则可能产生了某种画面的突变,图像帧的特征改变。这种情况下,关键帧的相邻的图像帧还可以作为关键帧,反映视频流的特征变化。基于此,在本说明书实施例中,可以基于图像帧之间的相似度对非关键帧进行目标标注。
在一个实施例中,可以将当前关键帧之后、下一关键帧之前的各个图像帧依次与当前关键帧比较,确定它们的相似度。如果相似度大于预定阈值,则利用当前关键帧的标注结果标注相应的图像帧。如果相似度小于预定阈值,则将相应图像帧作为关键帧。按照时间顺序,该新确定的关键帧是当前流程中的当前关键帧的下一关键帧,因此,接下来可以获取该新确定的关键帧为当前关键帧,执行图2示出的目标标注的流程。进一步地,该新确定的关键帧之后的非关键帧,参考该新确定的关键帧的标注结果进行标注。
在另一个实施例中,可以将当前关键帧与当前关键帧之后、下一关键帧之前的非关键帧,进行相邻图像帧之间的比较,确定相邻图像帧的相似度。如果相邻图像帧相似度较高,则利用前一图像帧的标注结果对后一图像帧进行标注,否则,将后一图像帧作为新确定的关键帧,执行图2示出的目标标注的流程。
具体地,可以将相邻的两个图像帧分别称为第一图像帧和第二图像帧,则针对当前关键帧,当前关键帧为初始的第一图像帧,当前关键帧的下一帧为初始的第二图像帧。在对第一图像帧标注完成后,先检测第二图像帧是否为关键帧。在第二图像帧是关键帧的情况下,将第二图像帧作为当前关键帧,执行图2示出的流程。在第二图像帧不是关键帧的情况下,检测第二图像帧与第一图像帧的相似度。
如果第二图像帧与第一图像帧的相似度小于预先设定的相似度阈值,可以将第二图像帧作为当前关键帧,并针对更新后的当前关键帧,利用图2示出的流程进行处理。
如果第二图像帧与第一图像帧的相似度大于预先设定的相似度阈值,将第一图像帧的标注结果映射到第二图像帧,从而得到第二图像帧对应的标注结果。另一方面,用第二图像帧及第二图像帧的下一帧,分别更新第一图像帧、第二图像帧,即,第二图像帧作为新的第一图像帧,第二图像帧的下一帧作为新的第二图像帧。
重复以上过程。直到下列之一的情况出现:
第二图像帧是视频流的最后一帧,不存在下一图像帧(即更新第二图像帧的步骤无法继续进行);或者,
在上述过程中检测到更新后的第二图像帧是关键帧,将第二图像帧作为当前关键帧继续后续处理。
在其他实施例中,也可以通过其他方式,利用当前关键帧的标注结果对当前关键帧之后的非关键帧进行目标标注,例如通过光流(optical flow)之类的方法将当前关键帧的标注结果映射到其他图像帧,在此不再赘述。
其中,在两个图像帧的相似度确定时,可以使用诸如特征点描绘的形状的比对等等方式进行。可以理解,在通过前面的图像帧的标注结果对后面的图像帧进行标注时,主要目的在于在后面的图像帧的目标标注过程中,借鉴前面的图像帧的标注结果,因此,在一个可选的实施方式中,为了减少数据处理量,可以只在第一图像帧中取一个参考区域,与第二图像帧做相似度判断。
以前述相邻的第一图像帧和第二图像帧为例,具体地,首先可以基于第一图像帧的标注结果,确定第一图像帧中的参考区域。可选地,针对当前关键帧,在针对当前关键帧的标注结果包含目标边框的情况下,将初始的参考区域确定为,目标边框包围的区域;在针对当前关键帧的标注结果不包含目标边框的情况下,将初始的参考区域确定为,当前关键帧中指定位置的区域。该指定位置的区域可以是预先指定的、包含预定个像素的区域,例如第一图像帧中心的9×9的像素区域,第一图像帧左上角的9×9的像素区域等等。在后续的图像帧中,第一图像帧中的参考区域是相应标注结果中标注出的区域。
第一图像帧的参考区域与第二图像帧相应的各个区域的相似度的确定方法可以通过像素值比较等方法进行,也可以通过相似度模型进行,在此不作限定。
下面参考图3,以相似度模型为例,说明第一图像帧的参考区域与第二图像帧相应的各个区域的相似度的确定方法。假设基于第一图像帧的标注结果确定的参考区域为参考区域z,第二图像帧为图像帧x。一方面,对参考区域z(如对应127×127×3的像素阵列)利用预先确定的卷积神经网络
进行处理,得到第一卷积结果(如6×6×128的特征阵列),另一方面,对图像帧x(如对应255×255×3的像素阵列)也利用相同的卷积神经网络
进行处理,得到第二卷积结果(如22×22×128的特征阵列)。进一步地,将第一卷积结果作为卷积核,对第二卷积结果进行卷积处理,得到第三卷积结果(如17×17×1的数值阵列)。可以理解,在通过卷积核对一个阵列做卷积时,与卷积核越相似的阵列,得到的数值越大。因此,第三卷积结果对应的数值阵列中,各个数值分别描绘出第二卷积结果中相应阵列与第一卷积结果的阵列的相似度。第二卷积结果是对第二图像帧的处理结果,那么第二卷积结果中的各个子阵列都可以对应到第二图像帧中的各个区域。同时,第三卷积结果中的各个数值又分别对应到第二卷积结果中的各个子阵列。于是,第三卷积结果可以看作是第二图像帧中各个相应区域与第一图像帧的参考区域的相似度的分布阵列。第三卷积结果的数值阵列中,数值越大,第二图像帧中相应区域与第一图像帧的参考区域的相似度越大。由于基于第一图像帧的标注结果对第二图像帧进行标注,因此,只需判断第二图像帧中是否存在与第一图像帧的参考区域对应的区域即可。通常,如果在第二图像帧中存在与第一图像帧的参考区域对应的区域,则该区域是第二图像帧中与第一图像帧的参考区域相似度最高的区域。如此,可以基于第三卷积结果对应的数值阵列中的最大数值,确定第二图像帧与第一关键图像帧的相似度。该最大值对应着第二图像帧中与第一图像帧的参考区域最相似的区域。第二图像帧与第一关键图像帧的相似度可以是该最大数值本身,也可以是将第三卷积结果对应的数值阵列中的各个数值进行归一化处理后,该最大数值对应的小数/分数值。
可以预先设定有两个图像帧中相同区域的相似度阈值,这样,如果上述过程确定的相似度大于该相似度阈值,则表明第二图像帧中具有与第一图像帧的参考区域对应的区域,例如都是左前车灯。否则,如果上述过程确定的相似度小于相似度阈值,表明第二图像帧中不包含与第一图像帧的参考区域对应的区域。
在第二图像帧中不包含与第一图像帧的参考区域对应的区域的情况下,可能在第二图像帧与第一图像帧之间存在画面的突变。如果不对第二图像帧进行标注,可能会漏掉重要信息。因此,此时,可以将第二图像帧加入到视频流的关键帧中。并且,按照时间顺序,在下一流程中,获取该第二图像帧作为当前关键帧进行目标标注。
可以理解,根据以上描述,每个图像帧都可以对应有参考区域,但参考区域的实际意义是有所区别的。例如,在车辆检测场景下,通常,如果当前关键帧对应的标注模型的标注结果包含目标边框,则说明车辆某个部件或某块材质存在高置信度的损伤,这个结果是可以提供给人工进行参考的,或者对决策产生影响的。此时的参考区域指示出可提供高置信度的预定目标。而通过指定位置方式得到的参考区域也可能包含边框,但该边框包围的区域是为了给之后的图像帧的标注提供参考,而不指示预定目标,在车辆检测场景下即不存在损伤。因此,当前关键帧的标注结果还可以对应有置信标识。标注模型的输出结果包含目标边框,参考区域指示出可提供高置信度的预定目标的情况下,当前关键帧的置信标识为高置信度标识。在图1示出的车辆检测场景下,高置信度标识代表着较高可能的车辆损伤,相应图像帧可以输出给人工查验平台参考。在当前关键帧对应的标注模型的输出结果不包含目标边框时,指定位置区域被确定为参考区域,当前关键帧的置信标识可以为低置信度标识。在车辆检测场景下,参考标注对应着置信度较低,或者置信度为0的车辆损伤。
本领域技术人员容易理解,关键帧之后的非关键帧的标注结果是参考关键帧的标注结果进行的标注,因此,后续非关键帧的标注结果的置信标识都可以与当前关键帧的置信标识一致。在最终决策时,可以参考置信标识进行。此时,图2示出的目标表标注流程还可以包括,将对应有高置信度标识的图像帧加入目标标注集。目标标注集用于输出给人工查验,或者用于计算机的智能决策。
为了更清楚地理解本说明书实施例的技术构思,请参考图4。在一个具体的实施流程中,如图4所示,针对接收到的视频流,首先提取关键帧。然后,按时间顺序获取其中一个关键帧为当前关键帧。当前关键帧经过标注模型处理,得到当前关键帧的标注结果。对标注结果判断是否输出目标边框。若是,将目标边框内的区域作为参考区域,同时,为当前关键帧设置高置信标识,如通过一个置信标识flag置1表示,并将当前关键帧加入预标注结果集。否则,为当前关键帧设置低置信标识,如将一个置信标识flag置0。接着,基于当前关键帧的标注结果为下以图像帧进行标注。
首先,判断下一图像帧是否为关键帧。若是,将下一图像帧获取为当前关键帧,继续流程。否则,当前关键帧为当前帧,检测当前帧和下一帧的相似度。如果相似度小于预设相似度阈值,将下一帧加入关键帧,获取下一帧作为当前关键帧,继续流程。否则,相似度大于预设相似度阈值,利用当前帧的标注结果标注下一帧,并且下一帧继承当前帧的置信标识。检测该下一帧的置信标识是否为高置信标识。若该下一帧的置信标识是高置信标识,将该下一帧加入预标注结果,并利用下一帧和下一帧的下一帧更新当前帧和下一帧,继续流程,直至检测到关键帧,或者视频流结束。若该下一帧的置信标识不是高置信标识,利用下一帧和下一帧的下一帧更新当前帧和下一帧,继续流程,直至检测到关键帧,或者视频流结束。
根据以上描述,可以理解的是,在本说明书的技术构思下,图2示出的目标标注流程是不可绕过的标注流程,但不是对每一个关键帧都必须完全执行的标注流程。例如,在当前关键帧的下一图像帧也是关键帧的情况下,当前关键帧和下一关键帧没有间隔的非关键帧,步骤203中,基于针对当前关键帧的标注结果,对视频流中当前关键帧之后的非关键帧进行目标标注,就无需执行。
回顾以上过程,在目标标注的过程中,仅通过标注模型处理视频流中的关键帧,对于非关键帧,通过关键帧的标注结果进行标注,从而大大减少数据处理量。进一步地,在非关键帧标注过程中,对于相似度较高的图像帧,可以将标注结果进行迁移,对相似度较低的图像帧,可以作为关键帧通过标注模型重新标注,从而得到更准确的标注结果。如此,可以提供更有效的目标标注。
根据另一方面的实施例,还提供一种目标标注的装置。图5示出根据一个实施例的目标标注的装置的示意性框图。如图5所示,用于目标标注的装置500包括:获取单元51,配置为获取当前关键帧,当前关键帧是从视频流的各个图像帧中确定的多个关键帧中的一个;第一标注单元52,配置为使用预先训练的标注模型对当前关键帧进行目标标注,得到针对当前关键帧的标注结果,标注模型用于通过目标边框从图片中标注出包含预定目标的区域;第二标注单元53,配置为基于针对当前关键帧的标注结果,对视频流中当前关键帧之后的非关键帧进行目标标注。
根据一个实施方式,装置500还包括提取单元(未示出),配置为通过以下任一种方式提取初始的多个关键帧:
按照预定时间间隔从视频流中选择出多个图像帧作为关键帧;
将视频流输入预先训练的抽帧模型,根据抽帧模型的输出结果确定出多个关键帧。
在一个实施中,视频流是车辆视频,目标是车辆损伤,装置500还可以包括训练单元(未示出),配置为通过以下方式训练标注模型:
获取多张车辆图片,各张车辆图片对应各个样本标注结果,其中,在车辆图片中包括车辆损伤的情况下,单个样本标注结果包括至少一个损伤边框,损伤边框是包围连续损伤区域的最小矩形框;
至少基于多张车辆图片,训练标注模型。
根据一个可能的设计,在视频流中,为了描述方便,将相邻的关键帧分别记为第一图像帧和第二图像帧,针对当前关键帧,初始的第一图像帧为当前关键帧,初始的第二图像帧为当前关键帧的下一帧;
第二标注单元53还配置为:
在对第一图像帧标注完成后,检测第二图像帧是否为关键帧;
在第二图像帧不是关键帧的情况下,检测第二图像帧与第一图像帧的相似度;
如果第二图像帧与第一图像帧的相似度大于预先设定的相似度阈值,将第一图像帧对应的标注结果映射到第二图像帧,从而得到第二图像帧对应的标注结果;
用第二图像帧与第二图像帧的下一帧,分别更新第一图像帧与第二图像帧,基于更新后的第一图像帧的标注结果对更新后的第二图像帧进行目标标注。
如果第二图像帧与第一图像帧的相似度小于预先设定的相似度阈值,将第二图像帧确定为关键帧。
在一个进一步的实施例中,第二标注单元53还配置为,通过以下方式确定第二图像帧与第一图像帧的相似度:
基于第一图像帧的标注结果,确定第一图像帧中的参考区域;
利用预先确定的卷积神经网络分别处理第一图像帧中的参考区域、第二图像帧,并分别得到第一卷积结果、第二卷积结果;
将第一卷积结果作为卷积核,对第二卷积结果进行卷积处理,得到第三卷积结果,第三卷积结果对应的数值阵列中,各个数值分别描绘出第二图像帧的相应区域与第一图像帧的参考区域的各个相似度;
基于第三卷积结果对应的数值阵列中的最大数值,确定第二图像帧与第一图像帧的相似度。
在一个实施例中,在第二图像帧与第一图像帧的相似度大于预先设定的相似度阈值的情况下,第二标注单元53进一步配置为:
按照第一图像帧的标注结果,标注出最大数值对应到的第二图像帧的图像区域。
在一个实施例中,第二标注单元53还配置为:
在第一标注结果包含目标边框的情况下,将初始的参考区域确定为,目标边框包围的区域;
在第一标注结果不包含目标边框的情况下,将初始的参考区域确定为,当前关键帧中指定位置的区域。
在一个进一步地实施例中,当前关键帧还对应有置信标识,第二标注单元进一步配置为:
确定当前关键帧之后、下一关键帧之前的各个非关键帧的置信标识,与当前关键帧的标注结果对应的置信标识一致。
其中,置信标识包括,高置信度标识、低置信度标识。高置信度标识对应标注模型针对相应关键帧的输出结果包含目标边框,参考区域指示出可提供高置信度的预定目标的情况,低置信度标识对应标注模型针对相应关键帧的输出结果不包含目标边框,参考区域不指示预定目标的情况。
此时,装置500还可以包括标注结果确定单元(未示出),配置为:
将对应有高置信度标识的图像帧加入标注结果集。
值得说明的是,图5所示的装置500是与图2示出的方法实施例相对应的装置实施例,图2示出的方法实施例中的相应描述同样适用于装置500,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。