视频流的处理方法和装置与流程

文档序号:19419939发布日期:2019-12-14 01:19阅读:391来源:国知局
视频流的处理方法和装置与流程

本说明书一个或多个实施例涉及计算机技术领域,尤其涉及通过计算机对视频流进行处理的方法和装置。



背景技术:

卷积神经网络(convolutionalneuralnetworks,cnn)是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像处理。卷积神经网络往往以多图像帧图像序列作为输入,可以同时提取图像序列中的空间维度抽象特征及时间维度抽象特征,挖掘图像中的隐含特征,在视频分类、动作识别等图像序列分析等领域具有重要应用。常规技术中,通过卷积神经网络对单个图片的分析方法通常可以挖掘单个图片在某些方向上的特征。而在视频处理领域,也往往是对单个图片的分析。因此,需要一种改进的方案,能够利用卷积神经网络,提供更有效的视频流处理方案。



技术实现要素:

本说明书一个或多个实施例描述了视频流的处理方法和装置,以解决现有技术的部分不足。

根据第一方面,提供了一种视频流的处理方法,所述方法包括:获取待处理的视频流;对所述视频流中的s个图像帧分别进行特征抽取,生成s个n维的特征向量;将所述s个n维特征向量按照对应图像帧的时间顺序进行排布,生成特征矩阵,其中,所述特征矩阵具有n行、至少s列;利用预先训练的卷积神经网络处理所述特征矩阵,以得到对所述视频流的处理结果。

在一些实施例中,所述s个图像帧包括第一图像帧,所述对所述视频流中的s个图像帧分别进行特征抽取包括:基于与所述第一图像帧的前一图像帧的对比,确定所述第一图像帧的变化特征。

在一些实施例中,所述s个图像帧包括第一图像帧,所述对所述视频流中的s个图像帧分别进行特征抽取进一步包括:将所述前一图像帧到所述第一图像帧的光流变化作为所述变化特征。

在一些实施例中,所述s个图像帧包括第一图像帧,所述对所述视频流中的s个图像帧分别进行特征抽取进一步包括:

将通过结构相似性模型确定的所述第一图像帧与所述前一图像帧的ssim指数,确定为所述第一图像帧的变化特征。

在一些实施例中,所述s个图像帧包括第一图像帧,所述对所述视频流中的s个图像帧分别进行特征抽取进一步包括:

确定所述前一图像帧变换到所述第一图像帧的投影矩阵;

将所述投影矩阵作为所述变化特征。

在一些实施例中,在所述第一图像帧为所述视频流的第一个图像帧的情况下,确定所述变化特征包含预定值,或者确定所述前一图像帧和所述第一图像帧为相同图像帧。

在一些实施例中,所述对所述视频流中的s个图像帧分别进行特征抽取包括:

针对所述s个图像帧中的第一图像帧,进行目标识别,确定所述第一图像帧的目标特征。

在一些实施例中,所述视频流为针对损伤车辆拍摄的视频流,所述目标特征包括,损伤部件、损伤材质、损伤类别中的一项或多项。

在一些实施例中,所述对所述视频流中的s个图像帧分别进行特征抽取包括:针对所述s个图像帧中的第一图像帧,检测是否模糊、是否包含目标、光照是否充足、拍摄角度是否预定角度中的一项或多项,并将检测结果作为所述第一图像帧的相应特征。

在一些实施例中,在对所述s个图像帧中的第一图像帧抽取多个特征的情况下,所述生成s个n维的特征向量包括:将所述第一图像帧的多个特征对应的特征值进行组合,从而生成一个n维的特征向量。

在一些实施例中,所述将所述s个n维特征向量按照对应图像帧的时间顺序进行排布,生成特征矩阵包括:利用插值方式在s个n维特征向量中补充m-s个特征向量,以生成n行m列的所述特征矩阵。

在一些实施例中,对于第一插值位置,所述插值方式包括以下之一:

将所述第一插值位置最近邻的特征向量作为在所述第一插值位置处插入的特征向量;

将与所述第一插值位置邻近的r个特征向量中,各对应元素分别进行二线性插值,根据插值结果确定所述第一插值位置处插入的特征向量。

在一些实施例中,所述卷积神经网络通过至少一个卷积核对所述特征矩阵进行卷积处理,其中,所述卷积核依次处理所述特征矩阵中每个时间维度的多个特征值。

在一些实施例中,所述卷积神经网络用于对所述视频流进行关键图像帧抽取,所述卷积神经网络通过以下方式训练:

获取作为样本的多个视频流,各个作为样本的视频流分别对应通过对其中的s个图像帧进行特征抽取所生成的各个n行、至少s列的样本特征矩阵,以及标注出的关键帧所在时间段标签,所述时间段标签包括用于描述所述时间段的起始时刻、结束时刻的二维数组,所述起始时刻、所述结束时刻为通过所述视频流的首个图像帧开始计算的相对时刻;

使用各个样本特征矩阵和时间段标签训练所述模型,以使得相比于训练前,训练后的所述模型的与所述多个样本对应的预测损失函数减小。

在进一步的实施例中,所述二维数组中的各元素为相应的相对时刻与所述视频流的总时长的比值。

在一些实施例中,所述卷积神经网络用于对所述视频流进行车辆处理决策,所述卷积神经网络通过以下方式训练:

获取作为样本的多个视频流,各个作为样本的视频流分别对应通过对其中的s个图像帧进行特征抽取所生成的各个n行、至少s列的样本特征矩阵,以及基于实际车辆的处理决策标签;

使用各个样本特征矩阵即对应的处理决策标签训练所述模型,以使得相比于训练前,训练后的所述模型的与所述多个样本对应的预测损失函数减小。

在一些实施例中,所述处理决策标签为多维向量,所述处理决策标签中的多个元素包括:车辆各个部件的换新概率、车辆各个部件的修理概率。

根据第二方面,提供一种视频流的处理装置,所述装置包括:

获取单元,配置为获取待处理的视频流;

特征抽取单元,配置为对所述视频流中的s个图像帧分别进行特征抽取,生成s个n维的特征向量;

矩阵生成单元,配置为将所述s个n维特征向量按照对应图像帧的时间顺序进行排布,生成特征矩阵,其中,所述特征矩阵具有n行、至少s列;

卷积处理单元,配置为利用预先训练的卷积神经网络处理所述特征矩阵,以得到对所述视频流的处理结果。

根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。

根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。

本说明书实施例提供的视频流的处理方法和装置,通过部署多个特征提取模型,将视频流中的各图像帧分别进行特征抽取获取它们的特征向量,然后将这些特征向量组合在一起,针对视频流构建出预定大小的特征矩阵,创造性地利用预先训练的卷积神经网络模型处理该特征矩阵,以得到对视频流的处理结果。该过程中可以减少模型标注的复杂度,对时域视频数据,通过卷积神经网络的处理,挖掘特征之间的关联性,进行更有效的视频处理。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1示出本说明书实施例的应用场景示意图;

图2示出根据一个实施例的视频流的处理方法的流程图;

图3示出根据一个实施例的视频流的处理过程中的特征矩阵生成示意图;

图4示出根据一个具体例子的对特征矩阵做卷积的示意图;

图5示出根据一个实施例的视频流的处理装置的示意性框图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。为了便于说明,结合图1示出的本说明书实施例的一个具体适用场景进行说明。图1示出的是对车辆损伤进行识别的具体场景。

该实施场景中,假设车辆受损,用户可以通过可采集现场信息的终端,例如智能手机、照相机、传感器等,采集受损车辆的现场信息。该现场信息可以包括视频流。该视频流可以由计算平台进行处理,以对受损车辆进行损伤识别。如图1所示,该实施场景中的计算平台由第一计算平台和第二计算平台组成。

请参考图1所示,第一计算平台首先可以通过图像帧特征提取模块,对视频流中的s图像帧分别进行特征抽取,对每个图像帧生成一个n维的特征向量。其中,这里的s图像帧可以包括视频流中的每一图像帧,也可以是按照预定时间间隔(如500ms)抽取的图像帧。然后,可以通过特征矩阵构建模块将这些n维特征向量按照对应图像帧的时间顺序进行排布,生成特征矩阵。其中,特征矩阵可以的行数可以是n,列数至少为s。接着,第二计算平台可以利用预先训练的卷积神经网络,处理该特征矩阵,以得到对视频流的处理结果。在图1示出的场景中,对该视频流的处理结果可以是对受损车辆的损伤识别结果。在其他应用场景中,对该视频流的处理结果还可以是关键图像帧抽取等等结果,在此不做限定。

值得说明的是,卷积神经网络是一种前馈神经网络,神经元可以响应周围单元,从而可以进行大型图像处理。卷积神经网络可以包括一维卷积神经网络、二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络通常应用于序列类的数据处理;二维卷积神经网络通常应用于图像类文本的识别;三维卷积神经网络通常应用于医学图像以及视频类数据识别。对于图像处理而言,通过训练不同的卷积核,可以发掘图像中的不同特征。可以看出,上述二维卷积神经网络和三维卷积神经网络在用于图像或视频数据处理时,面对的都是图像本身。如果将图像看作多个像素点组成的矩阵,则卷积神经网络可以对矩阵进行分析。基于这种思想,在本说明书的技术框架中,创新地利用卷积神经网络处理由多个图像帧的特征向量组成的特征矩阵,从而可以发掘连续图像中的关联特征。

容易理解:在一个实施例中,第一计算平台和第二计算平台可以为同一个计算平台,例如集成在终端或者为终端上运行的车辆定损类应用提供服务的服务端的一个计算平台;在另一个实施例中,第一计算平台和第二计算平台也可以是分开设置的两个计算平台,例如第一计算平台设于终端,用于对采集到的视频流进行预处理,得到视频流的特征矩阵,第二计算平台设于服务端,用于通过卷积神经网络处理特征矩阵,给出对损伤车辆的损伤识别结果。值得说明的是,图1的实施场景是示例性的,在其他实施例中,特征矩阵构建模块还可以设于第二计算平台中,本说明书中对此不做限定。在可选的实施例中,第二计算平台还可以将损伤识别结果反馈至终端进行展示。

由上述实施场景可以看出,本说明书提供的技术方案,将通常用于处理图像的卷积神经网络,创造性地用于处理多个图像帧的特征向量组成的特征矩阵,尤其适用于视频流的整体决策问题,为视频流分析提供更有效的解决方案。

下面详细描述视频流的处理方法的具体流程。

图2示出根据一个实施例的视频流的处理方法流程图。其中,图2示出的方法的执行主体可以是具有一定数据处理能力的任何具有计算、处理能力的系统、终端、装置、平台或服务器,例如由图1所示的第一计算平台和第二计算平台组成的总的计算平台等。

如图2所示,视频流的处理方法包括以下步骤:步骤22,获取待处理的视频流;步骤24,对视频流中的s个图像帧分别进行特征抽取,生成s个n维的特征向量;步骤26,将s个n维特征向量按照对应图像帧的时间顺序进行排布,生成特征矩阵,其中,特征矩阵具有n行、至少s列;步骤28,利用预先训练的卷积神经网络处理特征矩阵,以得到对视频流的处理结果。

首先,在步骤22中,获取待处理的视频流。可以理解,视频流通常是稳定、连续传输的视频数据。一个视频流可以包括多个图像帧。视频流可以由各种摄像装置采集,例如相机、智能手机的摄像头装置等等。

在一个实施例中,视频流可以是预先存储在本说明书实施例的执行主体上的,此时,可以从本地获取视频流。

在另一个实施例中,视频流可以是执行主体从远端设备通过有现货无线网络获取的,例如执行主体是服务器,远端设备是具有视频录制和通信功能的相机或智能手机等。

在又一个实施例中,视频流还可以是通过执行主体上集成的采集模块(如摄像头)现场采集的,此时,视频流并非完整地直接全部获取,而是按照图像帧的拍摄间隔连续不断地获取。

在更多实施例中,视频流的获取方式还可以具有更多的形式,在此不做限定。

在获取上述视频流之后,还可以对视频流进行预处理,从而生成可以利用卷积神经网络分析的条件。

由此,通过步骤24,对视频流中的s个图像帧分别进行特征抽取,生成s个n维的特征向量。

可以理解,不同视频流中的图像帧数可能是不一样的。在一个实现中,s可以是视频流中图像帧的帧数,可以对这s个图像帧都进行特征抽取。在另一个实现中,s是一个预定值,例如30,对获取的视频流可以按照预定时间间隔、帧间隔等抽取出s个图像帧,并进行特征抽取。以按照预定时间间隔为例,可以每个500毫秒抽取一个图像帧。在更多实现中,还可以有更多方法从视频流中确定出s个图像帧进行特征抽取,在此不再一一列举。

值得说明的是,本说明书实施例的视频流的处理方法尤其适用于一定时长(例如30秒)内的视频流处理,例如,对受损车辆进行损伤识别时,拍摄的现场视频。

对于图像帧而言,所抽取的特征可以是预先确定的一些特征。这些特征通常是与具体场景中对视频流的分析需求相关的特征。例如,在车损识别的场景下,所抽取的特征可以是描述损伤部件、损伤程度等等的特征。其中,特征抽取的过程可以通过预先训练的相应算法、模型来确定,也可以通过预先设定的参数阈值(例如亮度阈值等)来检测,在此不做限定。

为了更清楚地进行描述,假设该s个图像帧中的任一图像帧为第一图像帧,则针对该第一图像帧,在一种可能的实施方式中,对该第一图像帧进行特征抽取的过程可以包括:对第一图像帧进行目标识别,确定第一图像帧的目标特征。可以理解,对图像的处理可以以目标识别为目的,例如,在受损车辆的损伤识别场景下,这里的目标例如可以是损伤部件、损伤程度等等。目标特征可以包括,损伤部件、损伤材质、损伤类别中的一项或多项。

其中,目标识别可以通过预先训练的识别模型确定。该识别模型的训练样本可以包括,预先标注有目标标签(如保险杠刮擦等)的多张图片。将训练样本中的各个图片依次输入选定的神经网络模型,例如决策树(decisiontree)、支持向量机(svm)、cnn之类的模型,并根据预先标注的目标标签调整模型参数,可以训练出上述识别模型。

在另一个可能的实施方式中,对该第一图像帧进行特征抽取的过程可以包括:基于第一图像帧与前一图像帧的对比,确定第一图像帧的变化特征。该变化特征可以用于描述当前图像帧与前一图像帧之间的变化情况。可以理解,视频流采集过程中,可以通过静止的采集装置(如固定的监控摄像头)采集运动物体的图像,也可以通过运动的采集装置(如智能手机)采集静止物体(如受损车辆)的图像,还可以通过运动的采集装置(如智能手机)采集运动物体的图像等等。因此,在确定图像帧的变化特征时,针对不同的情景,处理方法也可以不同。

可以理解,当物体在运动时,它在图像上对应点的亮度模式也在运动。这种图像亮度模式的表观运动就是光流。光流可以表达图像的变化,由于它包含了目标运动的信息,因此可被用来确定目标的运动情况。由光流的定义可以还可以引申出光流场,用于表征图像中所有像素点构成的一种二维(2d)瞬时速度场。如此,在一个实施例中,可以将前一图像帧到第一图像帧的光流变化作为第一图像帧的变化特征。该光流变化可以通过诸如光流(opticalflow)模型之类的方法实现。光流模型具有多种形式,举例而言,可以把两幅图片(如第一图像帧和前一图像帧)一起输入到一个“线性”的cnn中,光流输出的结果是每个像素的偏移量。在可选的实现方式中,也可以选择一个两幅图像帧中都包含的位置点(例如左前车灯的左上角)作为参考点,该参考点在两幅图像帧中分别对应第一图像帧中第一坐标和前一图像帧中的第二坐标,则可以将第一坐标和第二坐标的偏移坐标确定为第一图像帧的变化特征。其中,对于两个图像帧,可以选择同一二维坐标系,例如都是以图像中心点为原点,沿长度方向为横轴的坐标系,第一坐标和第二坐标对应坐标系中的二维坐标。

另一方面,在视频流中,采集设备的移动速度往往滞后于图像帧采集速度,因此,相邻的两个图像帧可以包含相同的特征点。其中,图像的特征点是图像中具有鲜明特性并能够有效反映图像本质特征、能够标识图像中目标物体的点。特征点可以通过诸如sift(scale-invariantfeaturetransform,尺度不变特征变换)、lbp(localbinarypattern,局部二值模式)之类的方式确定,在此不再赘述。如此,在一个实施例中,可以根据特征点的偏移,来评估相邻两幅图像的变化。其中,特征点的偏移可以通过投影矩阵(projectivematrix)来描述。举例而言,假设第一图像帧的特征点集合为y,前一图像帧的特征点集合为x,可以求解一个变换矩阵w,使得f(x)=xw的结果尽可能接近y,则求解出的变换矩阵w就可以作为前一图像帧到第一图像帧的投影矩阵。进一步地,可以将该偏移矩阵作为第一图像帧的变化特征。

在另一个实施例中,还可以通过第一图像帧和前一图像帧的图像相似性(strcturesimilarity)来确定第一图像帧的变化特征。图像相似性可以通过ssim(structuralsimilarityindexmeasurement)指数来衡量。也就是说,可以将第一图像帧和前一图像帧的ssim指数,作为第一图像帧的变化特征。作为示例,用y表示第一图像帧,用x表示前一图像帧,x和y的ssim指数的一个计算方法为:

其中,ux为x各像素点的平均灰度值,uy为y的平均灰度值,ux和uy分别是x和y的亮度估计;为x中由各像素点的灰度值确定的方差,为y中由各像素点的灰度值确定的方差,分别作为x和y的对比度估计;pixy为x和y中各像素点灰度值的协方差;c1和c2为用于稳定除法运算的常数。ssim指数的最大值为1,ssim指数越大,两个图像的结构相似度越高,当ssim指数为1时,两个图像的结构一致。

在更多实施方式中,针对第一图像帧还有更多的确定其变化特征的方式,在此不再赘述。值得说明的是,以上变化特征在相关实施例中,可以单独使用,也可以组合使用,在此不做限定。

其中,在第一图像帧是视频流的第一个图像帧的情况下,确定其变化特征时,可以将该第一图像帧本身作为它的前一图像帧进行对比,也可以直接将其变化特征确定为预定值,例如投影矩阵的各个元素都为1,或者光流输出为0,等等。

在再一个可能的实施方式中,本领域技术人员可以理解,根据应用场景的不同,对第一图像帧抽取的特征还可以包括其他特征,例如清晰度特征、光照特征、目标存在情况特征(是否包含目标)、拍摄角度特征(如是否俯拍)等等中的一项或多项。这些特征都可以按照上述的方式进行拼接,以包含在预定的n维特征向量中。

在一个可能的设计中,也可以将目标特征等变化特征进行融合。此时,对于第一图像帧,可以先确定其变化特征(如投影矩阵),在第一图像帧与前一图像帧的包含相同目标的情况下,可以将前一图像帧的目标特征映射到该第一图像帧,从而不需要通过目标识别而获取第一图像帧的目标特征,例如在该第一图像帧中增加前一图像帧的保险杠刮擦特征,等等。

在对视频流的s个图像帧仅分别抽取一个特征的情况下,可以将该特征生成对应图像帧的特征向量。此时,该特征的维数可以为n维。

另一方面,如果对视频流的s个图像帧分别抽取多个特征,可以将多个特征的特征值进行组合拼接,生成一个n维的特征向量。

其中,上述的n可以是一个预定的正整数,特征向量中的每个维度是代表预定特征的特征值。

如果各个图像帧的某个特征(例如前述的变化特征)包括矩阵(如上述的投影矩阵),由于第一图像帧的特征向量是n维的特征向量,因此,还可以对该矩阵进行铺展或拼接处理,例如将投影矩阵的各列拼接排列,得到k维一列的向量,以作为n维的特征向量的一部分,其中n≥k。

如此,针对视频流中的s个图像帧,可以得到s个n维特征向量。进一步地,在步骤26中,将s个n维特征向量按照对应图像帧的时间顺序进行排布,生成特征矩阵。其中,特征矩阵具有n行、至少s列。

可以理解,通过预先训练的神经网络处理的特征矩阵,其大小往往是预先确定的。如果视频流中的s个图像帧是按照预定帧数s抽取,也就是说,特征矩阵的预设列数就是s列,则可以直接将s个n维特征向量组合排列,生成n维s列的矩阵,作为视频流的特征矩阵。然而,由于视频长短可能无法预先知晓,s的值无法预先确定,如果特征矩阵的预设列数为m列,在s=m的情况下,仍可以直接将s个n维特征向量组合形成特征矩阵,在s<m的情况下,简单的特征向量组合无法生成预定大小的特征矩阵。

因此,在一个可能的设计中,可以利用插值方式在s个n维特征向量中补充m-s个特征向量,以生成n行m列的特征矩阵。可以理解,在补充m-s个特征向量的时候,涉及两个问题,第一个是补充特征向量的位置,另一个是补充什么样的特征向量。

对于第一个问题,在可选的实现方式中,补充特征向量的位置均匀分布,例如,通过(m-s)/s确定每间隔多少个特征向量补充一个特征向量。如图3所示,假设没间隔2个特征向量插入一个n维特征向量,可以将c0、c1、c2、c3等对应箭头所指的位置为补充特征向量的位置。值得说明的是,图3中补充特征向量的位置仅为示例,具体实施时,也可以将x11之后,或者x21之后的位置作为首个补充特征向量的位置(对应c0)。

对于第二个问题,是确定补充的特征向量各维的具体值。为了描述方便,将任一确定的补充特征向量的位置称为第一插值位置,例如c0、c1、c2、c3等对应箭头所指的位置。在一个可选的实现方式中,可以将第一插值位置最近邻的特征向量作为在第一插值位置处插入的特征向量。例如,在c0对应箭头所指的位置插入特征向量[x11、x12……x1n]。在第一插值位置由两个最近邻的特征向量的情况下,可以随机选择其中一个特征向量插入第一插值位置,也可以按照预先确定的选择规则(例如选择后一个)选择相应的特征向量插入第一插值位置,在此不做限定。在另一个可选的实现方式中,还可以将与第一插值位置邻近的r个特征向量中,各对应元素分别进行二线性插值,根据插值结果确定第一插值位置处插入的特征向量。其中,r可以是个预定的值,例如4。请参考图3,以c1对应箭头所指的位置为例,将x11、x21、x31、x41分别看作横轴为时间、纵轴为特征值的二维坐标系中的点,进行二线性插值运算,得到c1对应位置(横轴坐标已知)插入的n维特征向量的第一维的值(纵轴坐标)。以此类推,可以得到c1对应位置插入的n维特征向量各维的值。

除了以上插值方式,在其他可能的设计中,还可以在最后一帧的后面补充m-s个与最后一帧的n维特征向量相同的特征向量等方式,形成m个n维的特征向量,以组合成n行m列的特征矩阵,在此不再一一列举。

经过步骤26,可以按照预定大小,针对一个视频流生成可以通过预先训练的卷积神经网络进行处理的特征矩阵。于是,在步骤28中,利用预先训练的卷积神经网络处理特征矩阵,以得到对视频流的处理结果。

可以理解,卷积神经网络在处理图像时,其输入矩阵的格式往往是“批处理尺寸(batch_size)*长*宽*通道数”。其中,彩色图像的通道通常为“r”、“g”、“b”3个通道,即通道数为3。显然,该格式中,长和宽是相互独立的,通道之间则是相互影响的。同理,在对上述特征矩阵的二维卷积操作中,图像的不同空间位置的特征应该是独立的,二维卷积操作具有空间不变性。由于图像处理过程中一般是在“长*宽”维度上做卷积,而如果将“长*宽”替换为特征矩阵中的行数和列数,则在特征维度上,不同位置的特征之间是会相互影响的,而不是互相独立,对其进行卷积是不合理的。例如抽取细节损伤图,需要同时涉及细节图分类,损伤检测结果等多个维度的特征。也就是说,该空间不变性在时间维度成立,在特征维度上不成立。从而,这里的特征维度可以和图像处理中的通道维度的性质相对应。因此,可以对特征矩阵的输入格式进行调整,如调整为“批处理尺寸(batch_size)*1*列数(如s或m)*行数(n)”。这样,就可以在“1*列数(如m)”的维度做卷积,而每列是一个时刻的特征集合,通过对时间维度做卷积,可以挖掘出各个特征之间的关联。

在一个实施例中,卷积神经网络可以包括一个或多个卷积处理层和输出层。其中,卷积处理层可以由二维卷积层、激活层、标准化层组成,例如2dconvolutionalfilter+relu+batchnormalization。

其中,二维卷积层可以用于通过对应于时间维度的卷积核对特征矩阵进行卷积处理。如图4所示,n×m的特征矩阵通过上述格式转换得到的m×n矩阵,可以经过诸如(1,-1,-1,1)之类的卷积核对应于时间维度进行卷积操作。在卷积神经网络的训练过程中,可以针对性地训练卷积核。例如,可以针对每个特征训练一个卷积核。例如图4示出的卷积核(1,-1,-1,1)是对应于车损检测场景中的部件损伤特征的卷积核等等。如此,经过每一个卷积核的卷积操作,可以识别一个特征(例如车损检测场景中的部件损伤特征)。

激活层可以用于把二维卷积层的输出结果做非线性映射。激活层可以通过诸如sigmoid、tanh(双曲正切)、relu之类的激励函数实现。通过激活层,二维卷积层的输出结果映射为0-1之间的非线性变化数值。

随着网络加深,经过激活层后的输出结果可能会向梯度饱和区(对应激励函数梯度变化较小的区域)移动。这样,会由于梯度减小或消失导致的卷积神经网络收敛较慢或不收敛。因此,还可以进一步通过标准化层(batchnormalization)将激活层的输出结果拉回激励函数的梯度变化明显的区域。

输出层用于输出对视频流的处理结果。根据视频流处理的场景以及目的的不同,输出层输出的处理结果也不相同。

例如在关键帧抽取的应用场景下,所抽取的关键帧可以是对结果意义较大的图像帧,例如,车损识别的视频流中,包含损伤的图像帧。如果车辆损伤是不连续的,关键帧还可以分段抽取。此时,输出层输出的处理结果可以为诸如[t1,t2]这样的表示时间范围的二维数组。其中,t1表示关键帧开始时间,t2表示关键帧结束时间。在一些可选的实现中,t1、t2还可以是归一化的数值。例如总的图像帧帧数为30帧,第18-25帧可以表示为[18/30,25/30]。经过归一化,可以避免输出的梯度爆炸,或者输出结果不收敛。

这种情况下,对卷积神经网络训练过程中,可以首先获取作为样本的多个视频流。其中,这些视频流先经过步骤22-26的预处理,可以得到样本特征矩阵。各个样本特征矩阵分别是n行、至少s列的矩阵。每个视频流还可以具有预先标注出的关键帧所在的时间段标签。然后可以使用各个样本特征矩阵和时间段标签训练模型。这里的时间段标签例如是前述的[t1,t2]这样的用于描述时间段的起始时刻、结束时刻的二维数组。其中的起始时刻、结束时刻可以为通过视频流的首个图像帧开始计算的相对时刻,该相对时刻可以是诸如第5秒、第5帧这样的相对描述。可选地,二维数组中的各元素为相应的相对时刻与视频流的总时长的比值。相应地,视频总时长也可以通过30秒、60帧这样的描述,在此不做限定。

如本领域技术人员所知,基于各个样本对应的各个样本特征矩阵和时间段标签,可通过例如梯度下降法调整模型的参数。模型训练过线程中的损失函数例如为上述多个样本的各自的预测函数与标签值之差的平方和、或者为多个样本的各自的预测函数与标签值之差的绝对值之和,等等。以下以通过mse(minimumsquared-error,最小平方误差)方式计算损失函数为例进行说明。

将第一样本(第k个样本)的样本特征矩阵代入模型的输出值为[yk1,yk2],样本特征矩阵对应的时间段标签为[yk10,yk20],代入模型损失函数l1:

可以看出,排在后面样本的预测函数中还与排在前面的样本的预测函数结果相关。然后,在损失函数中对模型参数求梯度,并向梯度的反方向调整参数的值,从而使得训练后的模型的损失函数的值减小。

在一些实施例中,如果最终抽取的关键帧为1个图像帧,对于经过卷积神经网络输出的关键帧的时间范围的视频流的处理结果,还可以进一步进行后处理。例如,按照预定优先抽取规则,将检测到的清晰度符合要求的第一个图像帧抽取出来。该预定优先抽取规则例如是从最中间一帧开始向两边同时进行。

再例如,在通过针对受损车辆拍摄的视频流,确定受损部件及处理策略(如换新、维修)的应用场景下,卷积神经网络输出的处理结果例如可以是预定的针对各个部件处理决策组成的多维数组。

这种情况下,卷积神经网络的各个卷积处理层的卷积核可以对其中一个特征进行识别。此时,卷积神经网络的训练样本也可以是多个视频流。这些视频流先经过步骤22-26的预处理,可以得到样本特征矩阵。各个样本特征矩阵分别是n行、至少s列的矩阵。每个视频流还可以具有预先标注出的处理决策标签。这些处理决策标签可以基于对实际车辆的处理结果确定,且例如可以包括换新、维修等中的至少一项。可以理解,对于受损车辆而言,损伤部件可以包括多个,处理决策也可以是多种(如换新、维修等),因此,处理决策标签可以是个多维数组,数组中的各个元素值分别对应相关部件处理决策。然后可以用各个样本特征矩阵和处理决策标签训练模型。

如本领域技术人员所知,基于各个样本对应的各个样本特征矩阵和处理决策标签,可通过例如梯度下降法调整模型的参数。模型训练过线程中的损失函数例如sigmiod函数、均方差等。以下以通过sigmiod函数方式计算损失函数为例进行说明。

将第一样本的样本特征矩阵代入模型的输出为一个r维的向量y1,样本特征矩阵对应的损伤识别结果标签为y0,将y1进行一个平滑运算,得到:

hk=1/(1+exp(-y1))

代入模型损失函数l2:

l2=-∑k(y0*log(hk)+(i-y0)*log(i-hk))/r

其中,i为单位向量。“*”表示对向量求内积。可以看出,排在后面样本的预测函数中还与排在前面的样本的预测函数结果相关。然后,在损失函数中对模型参数求梯度,并向梯度的反方向调整参数的值,从而使得训练后的模型的损失函数的值减小。

在一些实施例中,卷积神经网络的输出结果可以是相应的概率,例如对前保险杠维修或换新的概率,通过概率与对应阈值的对比,可以输出最终的决策结果。其中,相应阈值可以由区别于训练集的样本集通过训练好的卷积神经网络进行预测,结合预测准确度要求确定。

在更多应用场景下,卷积神经网络还可以有与场景相应的输出结果,在此不再一一例举。

回顾以上过程,在对视频流的处理过程中,通过采集时域信号,通过对视频流中各图像帧进行抽取特征等预处理,将个图像帧的额特征向量组合生成可通过卷积神经网络处理的特征矩阵,从而可以利用卷积神经网络对视频流中的各个图像帧进行综合分析,并且,通过卷积神经网络的输出层的不同设计可以应用于不同的视频处理问题,更有效地进行视频流处理。

根据另一方面的实施例,还提供一种视频流的处理装置。图5示出根据一个实施例的视频流的处理装置的示意性框图。如图5所示,视频流的处理装置500包括:获取单元51,配置为获取待处理的视频流;特征抽取单元52,配置为对视频流中的s个图像帧分别进行特征抽取,生成s个n维的特征向量;矩阵生成单元53,配置为将所述n维特征向量按照对应图像帧的时间顺序进行排布,生成特征矩阵,其中,特征矩阵具有n行、至少s列;卷积处理单元54,配置为利用预先训练的卷积神经网络处理特征矩阵,以得到对视频流的处理结果。

为了描述方便,假设s个图像帧中的任一图像帧为第一图像帧。

根据一种实施方式,特征抽取单元52还配置为:基于与所述第一图像帧的前一图像帧的对比,确定所述第一图像帧的变化特征。

在一个实施例中,特征抽取单元52可以将前一图像帧到第一图像帧的光流变化作为变化特征。

在另一个实施例中,特征抽取单元52可以将通过结构相似性模型确定的第一图像帧与前一图像帧的ssim指数,确定为第一图像帧的变化特征。

在又一个实施例中,特征抽取单元52可以:基于第一图像帧和前一图像帧的变换关系,确定前一图像帧变换到第一图像帧的投影矩阵,并将投影矩阵作为变化特征。

值得说明的是,在第一图像帧为视频流的第一个图像帧的情况下,特征抽取单元52可以:确定变化特征包含预定值,或者确定前一图像帧和第一图像帧为相同图像帧。

根据另一个实施方式,特征抽取单元52还可以配置为:

针对s个图像帧中的第一图像帧,进行目标识别,确定第一图像帧的目标特征。其中,视频流为针对损伤车辆拍摄的视频流的情况下,目标特征可以包括,损伤部件、损伤材质、损伤类别中的一项或多项。

根据其他实施方式,特征抽取单元52还可以配置为:

针对s个图像帧中的第一图像帧,检测是否模糊、是否包含目标、光照是否充足、拍摄角度是否预定角度中的一项或多项,并将检测结果作为第一图像帧的相应特征。

进一步地,矩阵生成单元53可以将各个图像帧通过特征抽取单元52抽取的各个特征对应的特征值进行组合,从而生成一个n维的特征向量。

在一个可能的设计中,矩阵生成单元53还可以:利用插值方式在s个n维特征向量中补充m-s个特征向量,以生成n行m列的特征矩阵。

其中,对于第一插值位置,插值方式包括以下之一:

将第一插值位置最近邻的特征向量作为在第一插值位置处插入的特征向量;

将与第一插值位置邻近的r个特征向量中,各对应元素分别进行二线性插值,根据插值结果确定第一插值位置处插入的特征向量。

在一个实施例中,卷积神经网络通过至少一个卷积核对特征矩阵进行卷积处理。卷积核依次处理特征矩阵中每个时间维度的多个特征值。

在卷积神经网络用于对视频流进行关键图像帧抽取的情况下,装置500还可以包括第一模型训练单元,配置为通过以下方式训练卷积神经网络:

获取作为样本的多个视频流,各个作为样本的视频流分别对应通过对其中的s个图像帧进行特征抽取所生成的各个n行、至少s列的样本特征矩阵,以及标注出的关键帧所在时间段标签;

使用各个样本特征矩阵和时间段标签训练模型,以使得相比于训练前,训练后的模型的与样本对应的损失函数减小。

在卷积神经网络用于对视频流进行车辆处理决策的情况下,装置500还可以包括第二模型训练单元,配置为通过以下方式训练卷积神经网络:

获取作为样本的多个视频流,各个作为样本的视频流分别对应通过对其中的s个图像帧进行特征抽取所生成的各个n行、至少s列的样本特征矩阵,以及基于实际车辆的处理决策标签;

使用各个样本特征矩阵即对应的处理决策标签训练模型,以使得相比于训练前,训练后的模型的与样本对应的损失函数减小。

可选地,上述处理决策标签为多维向量,处理决策标签中的多个元素可以包括:车辆各个部件的换新概率、车辆各个部件的修理概率。

值得说明的是,图5所示的装置500是与图2出的方法实施例相对应的装置实施例,图2出的方法实施例中的相应描述同样适用于装置500,在此不再赘述。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1