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

一种图像处理方法、装置、电子设备以及存储介质

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



技术领域

本公开涉及图像处理技术领域,具体而言,涉及一种图像处理方法、装置、电子设备以及存储介质。

背景技术

在图像处理领域,常常遇到复杂图像的识别及分类任务,而在复杂图像中通常包含多个目标。例如,在自动驾驶技术的领域中,自动驾驶车辆的摄像头所捕获的图像中通常存在多个目标,例如,车道、斑马线、指示牌等目标。由于图像中各个目标的大小是不确定的,因此,现有技术在对多个目标进行识别时,依次对每个目标进行识别。在图像中所包含的目标数量较多时,现有的目标识别方法会增加处理器的工作量,进而导致处理器的处理速度无法满足实时性要求较高的应用场景,例如,自动驾驶场景。

发明内容

本公开实施例至少提供一种图像处理方法、装置、电子设备以及存储介质。

第一方面,本公开实施例提供了一种图像处理方法,该方法包括:获取包含多个待检测目标的待处理图像,并提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像;对每个所述子图像进行缩放处理,得到多个目标子图像;其中,每个所述目标子图像的图像尺寸相同;对所述多个目标子图像进行图像拼接,得到图像批处理数据;并对所述图像批处理数据进行分类处理,得到每个所述待检测目标的目标分类结果。

在本公开实施例中,通过得到尺寸相同的多个目标子图像,并对多个目标子图像进行批处理的方式,可以加快对图像中的目标进行识别的速度,进而提高对图像中的目标进行识别的效率,从而使得本公开技术方案能够应用于实时性要求较高的应用场景。

一种可选的实施方式中,所述图像处理方法运行在集成芯片的IP核;所述提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像,包括:获取像素处理数量,其中,所述像素处理数量用于表征所述IP核在所述集成芯片的一个时钟周期内能够处理像素数据的数量;基于所述像素处理数量在所述待处理图像的像素数据中确定当前时钟周期所处理的多个像素数据;提取所述当前时钟周期所处理的多个像素数据的像素特征,并根据所述像素特征确定所述待处理图像中各所述待检测目标的子图像。

上述实施方式中,通过获取像素处理数量,并基于该像素处理数量在待处理图像中确定当前时钟周期所处理的多个像素数据的方式,可以实现在一个时钟周期内同时对多个像素数据进行处理,减少了IP核与内存之间的交互次数,提高了待处理图像对应的像素数据的处理速度,从而可以使该技术方案能够适用于实时性要求较高的应用场景。同时,通过提取当前时钟周期所处理的多个像素数据的像素特征,并基于该像素特征确定待处理图像中各待检测目标的子图像的方式,可以确定出更加准确的子图像。

一种可选的实施方式中,对所述图像批处理数据进行分类处理由目标分类网络执行,所述对每个所述子图像进行缩放处理,得到多个目标子图像,包括:获取所述目标分类网络对应的目标测试集中全部测试样本的像素均值;其中,所述目标测试集为对训练后的目标分类网络进行测试的数据集合;对每个所述子图像中的每个像素点的像素值和所述像素均值进行求和计算,得到第一中间子图像;按照预设缩放参数,对所述第一中间子图像进行缩放处理,得到第二中间子图像;计算所述第二中间子图像中每个像素点的像素值和所述像素均值之间的差值,并基于计算到的差值确定所述多个目标子图像。

在本公开实施例中,通过目标测试集中全部测试样本的像素均值对子图像进行缩放处理的方式,可以得到符合目标分类网络的数据输入格式的目标子图像,进而可以实现对多个目标子图像的图像数据进行批处理,以加快目标分类的速度。

一种可选的实施方式中,所述图像批处理数据包括目标拼接图像;所述对所述多个目标子图像进行拼接操作,得到图像批处理数据,包括:获取批处理图像数量阈值;基于所述批处理图像数量阈值,将所述多个目标子图像划分为多组待拼接子图像;将每组所述待拼接子图像进行图像拼接,得到至少一个目标拼接图像;其中,每组所述待拼接子图像拼接得到一个目标拼接图像。

上述实施方式中,可以通过批处理图像数量阈值,将多个目标子图像进行分组之后再拼接,从而可以减轻对图像批处理数据进行分类的压力,进而提高对图像批处理数据进行分类的准确度。

一种可选的实施方式中,对所述图像批处理数据进行分类处理由多个目标分类网络执行;所述对所述图像批处理数据进行分类处理,得到每个所述待检测目标的目标分类结果,包括:在所述多个目标分类网络中确定与每个所述目标拼接图像相匹配的目标分类网络;将每个所述目标拼接图像输入至所述相匹配的目标分类网络中进行分类处理,得到多个分类子结果;对所述多个分类子结果进行整合,得到所述目标分类结果。

上述实施方式中,可以设置多个目标分类网络对上述图像批处理数据进行分类处理,从而可以目标拼接图像为多个的情况下,同时对该多个目标拼接图像进行分类处理,从而可以提高对待处理图像中每个待检测目标进行分类的效率,进一步保证了本公开技术方案的实时性。

一种可选的实施方式中,所述待处理图像为目标车辆所处驾驶环境的图像,所述方法还包括:基于所述目标分类结果确定每个所述待检测目标的目标类型;基于所述目标类型确定相对应的待检测目标的运行状态;基于每个所述待检测目标的运行状态,生成控制指令,以通过所述控制指令控制所述目标车辆的驾驶状态。

上述实施方式中,通过按照每个待检测目标的目标类型,分析每个待检测目标的运行状态,进而根据该运行状态生成目标车辆的控制指令,以通过该控制指令控制目标车辆的驾驶状态的方式,可以提高对目标车辆进行控制的控制精度,从而进一步提高了目标车辆的驾驶安全程度。

一种可选的实施方式中,所述提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像,包括:基于目标分割网络确定所述待处理图像中每个所述待检测目标的位置信息;根据所述位置信息,提取所述待处理图像中包含各个所述待检测目标的子图像,得到多个子图像。

上述实施方式中,可以通过目标分割网络确定待处理图像中每个待检测目标的位置信息,此时,可以根据该位置信息准确快速提取待处理图像中包含各个待检测目标的子图像,从而可以提高提取得到多个子图像的速度和准确度。

第二方面,本公开实施例还提供一种图像处理装置,包括:获取单元,用于获取包含多个待检测目标的待处理图像,并提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像;缩放单元,用于对每个所述子图像进行缩放处理,得到多个目标子图像;其中,每个所述目标子图像的图像尺寸相同;分类单元,用于对所述多个目标子图像进行图像拼接,得到图像批处理数据;并对所述图像批处理数据进行分类处理,得到每个所述待检测目标的目标分类结果。

第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种图像处理方法的流程图;

图2示出了本公开实施例所提供的一种目标拼接图像的效果示意图;

图3示出了本公开实施例所提供的一种待处理图像的效果示意图;

图4示出了本公开实施例所提供的另一种目标拼接图像的效果示意图;

图5示出了本公开实施例所提供的一种图像处理装置的示意图;

图6示出了本公开实施例所提供的一种电子设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

经研究发现,现有技术在对多个目标进行识别时,依次对每个目标进行识别。在图像中所包含的目标数量较多时,现有的目标识别方法会增加处理器的工作量,进而导致处理器的处理速度无法满足实时性要求较高的应用场景,例如,自动驾驶场景。

基于上述研究,本公开提供了一种图像处理方法、装置、电子设备以及存储介质。在本公开实施例中,首先,获取包含多个待检测目标的待处理图像,并提取该待处理图像中包含的各待检测目标的子图像,得到多个子图像。之后,可以对该每个子图像进行缩放处理,得到多个目标子图像。由于多个目标子图像中每个目标子图像的尺寸相同,因此,可以将多个目标子图像进行拼接之后得到图像批处理数据,通过对该图像批处理数据进行分类处理,得到每个待检测目标的目标分类结果。相对于现有技术中依次对每个目标进行识别的方式,本公开技术方案通过得到尺寸相同的多个目标子图像,并对多个目标子图像进行批处理的方式,可以加快对图像中的目标进行识别的速度,进而提高对图像中的目标进行识别的效率,从而使得本公开技术方案能够应用于实时性要求较高的应用场景。

为便于对本实施例进行理解,首先对本公开实施例所公开的一种图像处理方法进行详细介绍,本公开实施例所提供的图像处理方法的执行主体一般为具有一定计算能力的电子设备。

参见图1所示,为本公开实施例提供的一种图像处理方法的流程图,所述方法包括步骤S101~S105,其中:

S101:获取包含多个待检测目标的待处理图像,并提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像。

在本公开实施例中,待检测目标可以为预先设定的感兴趣目标。对于不同的应用场景,待检测目标的类型可以不相同。例如,在自动驾驶领域,待检测目标可以为车辆摄像头所捕捉到的帧图像中的车道线、斑马线、指示牌、行人、车辆等感兴趣目标。

在本公开实施例中,可以在获取到待处理图像之后,提取该待处理图像中包含的各待检测目标的子图像,得到多个子图像。

具体实施时,可以先确定待处理图像中各待检测目标的位置信息,之后,再基于待检测目标的位置信息提取包含待检测目标的子图像。其中,待检测目标的位置信息可以为待检测目标在该处理图像中的坐标信息。例如,该坐标信息可以为待检测目标的候选框在待处理图像中的坐标信息,比如,可以为该候选框的顶点坐标信息。

在根据待检测目标的位置信息,提取待处理图像中包含的各待检测目标的子图像的过程中,可以先根据位置信息在待处理图像中确定与该位置信息对应的图像区域,然后,在待处理图像中截取该图像区域内的图像,得到包含各个待检测目标的子图像。其中,每个子图像包含一个待检测目标。

示例性地,假设该位置信息为上述候选框的顶点坐标信息,此时,可以基于该顶点坐标信息在待处理图像中确定该候选框的位置,进而,对待处理图像中包含在该候选框内的图像进行截取,得到一个图像,并将该图像确定为包含待检测目标的子图像。

S103:对每个所述子图像进行缩放处理,得到多个目标子图像;其中,每个所述目标子图像的图像尺寸相同。

在通过上述所描述的方式得到多个子图像之后,就可以对多个子图像进行缩放处理,其中,缩放处理包括放大操作或缩小操作。

在本公开实施例中,可以通过对每个子图像中每个像素的像素值进行像素计算的方式,实现对子图像进行放大的操作或者缩小的操作,以得到多个目标子图像。

S105:对所述多个目标子图像进行图像拼接,得到图像批处理数据;并对所述图像批处理数据进行分类处理,得到每个所述待检测目标的目标分类结果。

在本公开实施例中,在对目标子图像进行拼接之后可以得到图像批处理数据。其中,图像批处理数据可以包含至少一个目标拼接图像,其中,每个目标拼接图像包含多个目标子图像。这里,图像批处理数据中所包含的目标拼接图像的数量可以通过目标子图像的数量和/或批处理图像数量阈值确定。其中,批处理图像数量阈值用于指示目标拼接图像中所包含的目标子图像的数量上限值的阈值。

例如,在目标子图像的数量为4个,批处理图像数量阈值大于或者等于4个的情况下,可以确定图像批处理数据中所包含的目标拼接图像的数量为1个;在目标子图像的数量为8个,批处理图像数量阈值为4个的情况下,可以确定图像批处理数据中所包含的目标拼接图像的数量为2个。以此类推,此处不再一一列举。

假设,批处理图像数量阈值为4,目标子图像的数量为4,该4个目标子图像分别为:“目标子图像1”、“目标子图像2”、“目标子图像3”、“目标子图像4”,此时,可以将这4个目标子图像进行拼接,得到目标拼接图像,从而得到图像批处理数据。

又假设,批处理图像数量阈值为4,目标子图像的数量为8个,该8个目标子图像分别为:“目标子图像1”、“目标子图像2”、…、“目标子图像7”、“目标子图像8”,此时,可以这8个目标子图像以4个目标子图像为一组进行拼接,得到目标拼接图像1和目标拼接图像2。此时,图像批处理数据中包含目标拼接图像1和目标拼接图像2。

在本公开实施例中,在基于多个目标子图像确定目标拼接图像的过程中,可以将该多个目标子图像的图像数据进行串联,得到串联之后的新数组,此时,该新数组即为目标拼接图像的图像数据。

示例性地,如图2所示,假设目标子图像的数量为4个,且每个目标子图像的尺寸均为64*64,此时,每个目标子图像对应的数组大小为64*64。基于此,可以将该4个目标子图像的图像数据进行串联,可以得到一个新数组。此时该新数组的大小即为64*256,此时,该新数组中所包含的数据即为基于该4个目标子图像得到的目标拼接图像的图像数据。

通过上述描述可知,本公开实施例中,可以先判断待处理图像中所包含的待检测目标的数量(也即目标子图像的数量)是否满足预设数量要求。例如,在判断出待检测目标的数量大于批处理图像数量阈值的情况下,确定满足预设数量要求。

在判断出满足预设数量要求的情况下,可以基于待检测目标的数量确定目标拼接图像的数量,从而基于该目标拼接图像的数量和多个目标子图像的图像数据串联得到对应数量的目标拼接图像的图像数据,该串联得到的对应数量的目标拼接图像的图像数据即为上述所需要确定的图像批处理数据。

在本公开实施例中,目标拼接图像的数量可以与待检测目标的数量(或者,目标子图像的数量)相关联;目标拼接图像的数量还可以与目标分类网络所允许输入的最大数据量相关联。

例如,当目标子图像的数量(待检测目标的数量)为20个,目标分类网络所允许输入的最大数据量为10个时,此时,可以确定目标拼接图像的数量为2个。基于此,可以将多个目标子图像的图像数据划分为两组,每组图像数据进行串联,可以得到一个目标拼接图像。

在本公开实施例中,目标分类网络是针对待处理图像所属的类别信息进行训练得到的目标分类网络,例如,该目标分类网络可以为ResNet(Residual Network,残差网络),除此之外,该目标分类网络还可以为其他类型的神经网络模型,本公开对此不作具体限定。

在本公开实施例中,首先,获取到包含多个待检测目标的待处理图像,并提取该待处理图像中包含的各待检测目标的子图像,得到多个子图像。之后,可以对该每个子图像进行缩放处理,得到多个目标子图像。由于多个目标子图像中每个目标子图像的尺寸相同,因此,可以将多个目标子图像进行拼接之后得到图像批处理数据,通过对该图像批处理数据进行分类处理,得到每个待检测目标的目标分类结果。相对于现有技术中依次对每个目标进行识别的方式,本公开技术方案通过得到尺寸相同的多个目标子图像,并对多个目标子图像进行批处理的方式,可以加快对图像中的目标进行识别的速度,进而提高对图像中的目标进行识别的效率,从而使得本公开技术方案能够应用于实时性要求较高的应用场景。

在一个可选的实施方式中,上述步骤S101至S105所描述的图像处理方法可以应用于集成芯片的IP核中,具体应用过程可以描述如下:

首先,IP核与外部寄存器进行交互,得到待处理图像;之后,IP核可以通过目标分割网络获取待处理图像中每个待检测目标的位置信息;并基于该位置信息提取待处理图像中包含的各待检测目标的子图像,进而得到多个子图像;接下来,IP核可以通过缩放模块对每个子图像进行缩放处理,得到多个目标子图像;最后,IP核可以通过拼接模块对多个目标子图像的图像数据进行拼接之后确定图像批处理数据,并通过将该图像批处理数据输入至目标分类网络以实现对图像批处理数据的分类处理,得到每个待检测目标的目标分类结果。

上述实施方式中,通过IP核对多个目标子图像进行批处理,从而批处理得到每个目标子图像的分类结果的方式,可以减少IP核与内存之间的交互次数,从而加快了对多个目标子图像进行分类处理的速度,缩短了对多个目标子图像进行分类处理的时间,进而使得该技术方案能够适用于实时性要求较高的应用场景。

在一个可选的实施方式中,针对S101,提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像,具体包括如下步骤:

步骤S21:基于目标分割网络确定所述待处理图像中每个所述待检测目标的位置信息;

步骤S22:根据所述位置信息,提取所述待处理图像中包含各个所述待检测目标的子图像,得到多个子图像。

这里,目标分割网络可以为任意一种能够进行目标分割提取的神经网络模型。例如,该目标分割网络中可以包含至少一个卷积层和至少一个池化层,该至少一个卷积层和至少一个池化层用于对待处理图像进行感兴趣区域(Region of Interest,简称ROI)的分割提取,进而实现对目标的分割提取。

举例来说,该目标分割网络可以包括:卷积神经网络和区域生成网络。其中,卷积神经网络用于对待处理图像进行特征提取,得到待处理图像的特征图,区域生成网络用于基于待处理图像的特征图,生成待处理图像中多个待检测目标的候选框,其中,每个候选框所对应的区域即为对应的感兴趣ROI区域。

在本公开实施例中,目标分割网络除了可以为上述所描述的神经网络模型之外,该目标分割网络还可以为任意一种能够进行目标分割的网络模型,例如,该目标分割网络可以为FastR-CNN网络,或者能够替代该FastR-CNN网络的其他网络模型,本公开技术方案不再详细赘述。

这里,感兴趣ROI区域的区域位置信息用于表征当前感兴趣ROI区域在待处理图像中的位置。其中,该位置可以用感兴趣ROI区域所对应的候选框的位置信息来表示。例如,感兴趣ROI区域的区域位置信息可以为该感兴趣ROI区域所对应的候选框的坐标信息,其中,候选框的坐标信息为能够唯一在待处理图像中确定该候选框的顶点坐标信息,例如,该顶点坐标信息可以包括候选框的左上角坐标信息和右下角坐标信息;又例如,该顶点坐标信息可以包括候选框的右上角坐标信息和左下角坐标信息。

在本公开实施例中,通过目标分割网络对待处理图像进行目标分割提取,可以准确、快速地得到每个感兴趣ROI区域及其区域位置信息,进而可以基于该区域位置信息快速的确定待处理图像中每个待检测目标的位置信息。

在一个可选的实施方式中,在本公开实施例所提供的图像处理方法运行在集成芯片的IP核的情况下,针对S101,提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像,具体还包括如下步骤:

步骤S31:获取像素处理数量,其中,所述像素处理数量用于表征所述IP核在所述集成芯片的一个时钟周期内能够处理像素数据的数量;

步骤S32:基于所述像素处理数量在所述待处理图像的像素数据中确定当前时钟周期所处理的多个像素数据;

步骤S33:提取所述当前时钟周期所处理的多个像素数据的像素特征,并根据所述像素特征确定所述待处理图像中各所述待检测目标的子图像。

在本公开实施例中,上述电子设备通过信号的时序对图像数据进行处理。例如,在集成芯片为FPGA的情况下,可以确定FPGA的信号处理时序,进而根据该信号处理时序对图像数据进行处理。在相关技术中,FPGA在一个时钟周期内,可以从外部寄存器中获取一个像素点的数据进行处理。当待处理图像中包含多个待检测目标时,该处理方式将增大目标提取时间,降低目标提取效率。为了使得本公开技术方案能够更好的满足实时性要求较高的应用场景,在本公开技术方案中,可以设置在一个时钟周期内,FPGA的IP核从外部寄存器中读取待处理图像中多个像素点的像素数据。此时,就可以获取集成芯片在当前时钟周期所要处理的多个像素数据。这里,可以基于待处理图像中每个待检测目标的位置信息,在待处理图像中确定当前时钟周期内该集成芯片所需要并行处理的多个像素数据。集成芯片在获取到该多个像素数据之后,就可以对该多个像素数据进行并行处理,以根据处理结果在待处理图像中确定包含各待检测目标的子图像。

具体实施时,可以先获取IP核的像素处理数量,之后,可以基于该像素处理数量在待处理图像的像素数据中确定在集成芯片的当前时钟周期内所需要处理的多个像素数据。

举例来说,假设,像素处理数量为N个(N的取值为大于1的自然数),在N的取值为6的情况下,当前时钟周期可以并行处理的像素数据的个数为6个。在此情况下,可以基于上述位置信息在待处理图像对应的像素数据中选择6个未进行处理的像素数据,然后,在该时钟周期内对选择的6个像素数据进行并行处理。

示例性地,假设,如图3所示的待处理图像,该待处理图像的尺寸信息为256*256,此时,待处理图像每个像素点的像素数据为“(1,1),……,(I,J),……,(256,256)”,其中,I、J的取值分别为1至256。假设,当前时钟周期内可以并行处理的像素数据的个数为6个,那么,在第一个时钟周期内输入的待处理图像中的像素数据可以为“(1,1)、(1,2)、(1,3)、(1,4)、(1,5)、(1,6)”,下一个时钟周期内输入的待处理图像中的像素数据即为“(1,7)、(1,8)、(1,9)、(1,10)、(1,11)、(1,12)”,以此类推,直到待处理图像中的像素数据全部输入完成为止。

这里,在当前时钟周期内并行输入的像素数据的个数小于N个的情况下,可以对剩余的输入像素数据进行补零。例如,当N的个数为6时,若确定出的当前时钟周期内并行输入的像素数据的个数为4个时,此时,剩余的输入像素数据的个数为2个,那么可以将这2个像素数据的像素值设置为0,与之前确定出的4个像素数据一同输入至当前时钟周期内进行处理。

在本公开实施例中,基于每个待检测目标的位置信息,可以确定出每个待检测目标所对应的像素数据。例如,如图3所示,假设,待处理图像中的一个待检测目标的位置信息为((85,90),(125,165))时,此时,该待检测目标所对应的像素数据为“(85,90),……,(M,P),……,(125,165)”,其中,M的取值为85至125,P的取值为90至165。

在确定出集成芯片在当前时钟周期所处理的多个像素数据之后,可以提取该多个像素数据的像素特征,并根据该像素特征确定待处理图像中各待检测目标的子图像。

示例性地,假设,如图3所示的待处理图像,该图像的尺寸信息为256*256,该待处理图像所包含的一个待检测目标的位置信息为((85,90),(125,165))。此时,假设,在像素处理数量为6个的情况下,假设,当前时钟周期内输入的待处理图像中的多个像素数据为“(85,162)、(85,163)、(85,164)、(85,165)、(85,166)、(85,167)”时,此时,基于上述位置信息可以确定出能够表征待检测目标的以下像素点“(85,162)、(85,163)、(85,164)、(85,165)”,并提取上述像素点的像素特征,从而基于该像素特征确定对应待检测目标的子图像。

在本公开实施例中,在按照上述实施步骤对待处理图像所包含的像素数据进行处理之后,可以将保留下来的像素数据进行汇总,进而可以提取汇总之后的像素数据的像素特征,从而基于提取到的像素特征确定待处理图像中各待检测目标的子图像。当待处理图像中包含多个待检测目标时,重复上述步骤,即可得到包含每个待检测目标的子图像。

上述实施方式中,通过获取像素处理数量,并基于该像素处理数量在待处理图像中确定当前时钟周期所处理的多个像素数据的方式,可以实现在一个时钟周期内同时对多个像素数据进行处理,减少了IP核与内存之间的交互次数,提高了待处理图像对应的像素数据的处理速度,从而可以使该技术方案能够适用于实时性要求较高的应用场景。同时,通过提取当前时钟周期所处理的多个像素数据的像素特征,并基于该像素特征确定待处理图像中各待检测目标的子图像的方式,可以确定出更加准确的子图像。

在一个可选的实施方式中,在图像批处理数据进行分类处理由目标分类网络执行的情况下,针对S103,对每个所述子图像进行缩放处理,得到多个目标子图像,具体包括如下步骤:

步骤S41:获取所述目标分类网络对应的目标测试集中全部测试样本的像素均值;其中,所述目标测试集为对训练后的目标分类网络进行测试的数据集合;

步骤S42:对每个所述子图像中的每个像素点的像素值和所述像素均值进行求和计算,得到第一中间子图像;

步骤S43:按照预设缩放参数,对所述第一中间子图像进行缩放处理,得到第二中间子图像;

步骤S44:计算所述第二中间子图像中每个像素点的像素值和所述像素均值之间的差值,并基于计算到的差值确定所述多个目标子图像。

这里,全部测试样本的像素均值是通过对目标测试集中每个测试样本所对应的像素点的像素值进行求和再求平均运算得到的。

全部测试样本是目标分类网络的目标测试集中所包含的全部数据,例如,该目标测试集可以为Oxford RobotCar数据集、Kitty数据集等,除此之外,该目标测试集还可以为其他任意类型的测试集,本公开对此不作具体限定。

这里,预设缩放参数用于表征对第一中间子图像进行缩放处理时,对第一中间子图像进行缩放处理的缩放比例参数,例如,该缩放比例参数可以为1.2,0.8等参数。上述缩放比例参数与目标分类网络所允许输入的图像的尺寸相关联,本公开对缩放比例参数不作具体限定。

在本公开实施例中,基于预设缩放参数,对得到的第一中间子图像进行放大或缩小操作,进而缩放得到第二中间子图像。

示例性的,假设,目标测试集中全部测试样本的像素均值为110,此时,可以对子图像中的每个像素点的像素值与该像素均值110进行求和运算。假设,子图像中的某一个像素点的像素值为56,在将该像素值和像素均值110进行求和运算之后,该像素点的像素值为166。

在对子图像中的每个像素点均与像素均值110进行求和运算之后,可以得到第一中间子图像。此时,就可以对第一中间子图像进行缩放处理,得到第二中间子图像。

在得到第二中间子图像之后,就可以对得到的第二中间子图像中的每个像素点的像素值与上述像素均值做差值,得到目标子图像。例如,假设,第二中间子图像中的任意一个像素点的像素值为186,此时,利用上述像素均值110与该像素点做差值,可以得到该像素点的像素点的像素值为76,之后,就可以基于进行差值计算之后的像素值确定目标子图像。

在本公开实施例中,通过目标测试集中全部测试样本的像素均值对子图像进行缩放处理的方式,可以得到符合目标分类网络的数据输入格式的目标子图像,进而可以实现对多个目标子图像的图像数据进行批处理,以加快目标分类的速度。另一方面,本公开技术方案,可以通过FPGA中的IP核来执行上述步骤,在通过FPGA中的IP核来对目标子图像的图像数据进行批处理时,可以减少IP核和FPGA中内存之间的交互次数,从而实现进一步加快目标分类的速度。

在一个可选的实施方式中,在图像批处理数据包括目标拼接图像的情况下,针对S103,对所述多个目标子图像进行图像拼接,得到图像批处理数据,具体包括如下步骤:

步骤S51:获取批处理图像数量阈值;

步骤S52:基于所述批处理图像数量阈值,将所述多个目标子图像划分为多组待拼接子图像;

步骤S53:将每组所述待拼接子图像进行图像拼接,得到至少一个目标拼接图像;其中,每组所述待拼接子图像拼接得到一个目标拼接图像。

这里,批处理图像数量阈值可以用于指示目标拼接图像中所包含的目标子图像的数量上限值的阈值;或者,可以用于指示目标分类网络可以一次性进行分类处理的图像的数量。

在本公开实施例中,可以先获取批处理图像数量阈值,并基于该批处理图像数量阈值,将多个目标子图像划分为多组待拼接子图像。

具体实施时,可以先基于批处理图像数量阈值和目标子图像的数量确定待拼接子图像的图像划分组数,之后,再基于该图像划分组数将多个目标子图像划分为多组待拼接子图像。

示例性地,假设目标子图像的数量为20个,且上述20个目标子图像分别为:“目标子图像1”、“目标子图像2”、…、“目标子图像19”、“目标子图像20”,此时,假设,批处理图像数量阈值为10个,那么,可以确定图像划分组数为2组。基于此,可以将上述20个目标子图像以10个为一组进行拼接,得到2组待拼接子图像。之后,每组待拼接子图像可以拼接得到一个目标拼接图像,这两个目标拼接图像的拼接示意图可以如图4所示。

此外,在目标子图像为20个,批处理图像数量阈值为9个的情况下,可以确定图像划分组数为3组。此时,可以将该20个目标子图像划分为三组待拼接子图像。其中,该三组待拼接子图像中包含的目标子图像的数量可以为:[9,9,2],即:第一组待拼接子图像和第二组待拼接子图像中均包含9个目标子图像,第三组待拼接子图像中包含2个目标子图像。

或者,该三组待拼接子图像中包含的目标子图像的数量可以为:[7,7,6],即:第一组待拼接子图像和第二组待拼接子图像中均包含7个目标子图像,第三组待拼接子图像中包含6个目标子图像。

由上述描述可知,在基于批处理图像数量阈值确定出能够将多个目标子图像进行平均分配的情况下,可以将多个目标子图像进行平均分配,从而使每组待拼接子图像中所包含的目标子图像的数量相同。

在基于批处理图像数量阈值确定出无法将多个目标子图像进行平均分配的情况下,可以先基于批处理图像数量阈值和目标子图像的数量确定出图像划分组数,并基于该图像划分组数确定每组待拼接子图像中所包含的目标子图像的数量,具体可以描述为如下过程:

假设,图像划分组数为Q(其中,Q为大于1的自然数),此时,可以设定第1至第Q-1组待拼接子图像中目标子图像的数量为批处理图像数量阈值。并将多个目标子图像中剩余的目标子图像确定为第Q组待拼接子图像。或者,可以基于该图像划分组数重新分配每组待拼接子图像中所包含的目标子图像的数量,本公开对上述分配方式不作具体限定,以在上述Q组待拼接子图像中可以包含全部目标子图像为准。

在本公开实施例中,在确定出至少一组待拼接子图像之后,可以将每组待拼接子图像中所包含的目标子图像进行图像拼接,得到至少一个目标拼接图像。

上述实施方式中,可以通过获取批处理图像数量阈值,并基于该批处理图像数量阈值将多个目标子图像划分为多组待拼接子图像。在将各组待拼接子图像进行图像拼接之后,可以得到每组待拼接子图像对应的目标拼接图像。上述实施方式中,可以通过批处理图像数量阈值,将多个目标子图像进行分组之后再拼接,从而可以减轻对图像批处理数据进行分类的压力,进而提高对图像批处理数据进行分类的准确度。

在一个可选的实施方式中,对所述图像批处理数据进行分类处理由多个目标分类网络执行,在上述步骤S51~S53的基础上,针对S105,对所述图像批处理数据进行分类处理,得到每个所述待检测目标的目标分类结果,具体包括如下步骤:

步骤S61:在所述多个目标分类网络中确定与每个所述目标拼接图像相匹配的目标分类网络;

步骤S62:将每个所述目标拼接图像输入至所述相匹配的目标分类网络中进行分类处理,得到多个分类子结果;

步骤S63:对所述多个分类子结果进行整合,得到所述目标分类结果。

在本公开实施例中,在确定出图像批处理数据中所包含的目标拼接图像之后,可以在多个目标分类网络中确定与每个目标拼接图像相匹配的目标分类网络。之后,可以将每个目标拼接图像输入至该相匹配的目标分类网络中进行分类处理,得到多个分类子结果。

例如,在确定出的目标拼接图像为如图4所示的目标拼接图像的情况下,可以将如图4所示的2个目标拼接图像依次输入至每个目标拼接图像相匹配的目标分类网络中进行分类处理,从而得到每个目标拼接图像所包含的多个目标子图像中各待检测目标的分类子结果。

之后,可以将得到的多个分类资结果进行整合,进而可以得到待处理图像中包含的各待检测目标的目标分类结果。其中,待检测目标的目标分类结果中可以包含至少以下信息:待检测目标的名称(或者编号)、待检测目标的类别,待检测目标的位置信息等。

上述实施方式中,可以设置多个目标分类网络对上述图像批处理数据进行分类处理,从而可以目标拼接图像为多个的情况下,同时对该多个目标拼接图像进行分类处理,从而可以提高对待处理图像中每个待检测目标进行分类的效率,进一步保证了本公开技术方案的实时性。

在一个可选的实施方式中,在待处理图像为目标车辆所处驾驶环境的图像的情况下,本公开技术方案所提供的方法还包括如下步骤:

步骤S71:基于所述目标分类结果确定每个所述待检测目标的目标类型;

步骤S72:基于所述目标类型确定相对应的待检测目标的运行状态;

步骤S73:基于每个所述待检测目标的运行状态,生成控制指令,以通过所述控制指令控制所述目标车辆的驾驶状态。

这里,目标类型可以用于指示待检测目标所属的类别,以及该待检测目标的状态类型。例如,在待检测目标1的类别为“人”,且该待检测目标1的状态类型为“行走”,那么该待检测目标1的目标类型就可以为“行走的人”。假设,待检测目标2所属的类别为“人”,且该待检测目标2的状态类型为“骑自行车”,那么该待检测目标2的目标类型就可以为“骑自行车的人”。

在确定出待检测目标的目标类型之后,就可以基于该目标类型确定该待检测目标的运行状态。例如,针对待检测目标1,可以确定出的运行状态为“行走”,针对待检测目标2,可以确定出的运行状态为“骑自行车”。

在确定出每个待检测目标的运行状态之后,就可以基于该运行状态生成对应的控制指令,以通过该控制指令控制目标车辆的驾驶状态。

在本公开实施例中,在分析每个待检测目标的运行状态时,还可以结合基于待处理图像的前N帧图像确定的该待检测目标的运行状态,分析当前时刻待处理图像中对应待检测目标的运行状态。

上述实施方式中,通过按照每个待检测目标的目标类型,分析每个待检测目标的运行状态,进而根据该运行状态生成目标车辆的控制指令,以通过该控制指令控制目标车辆的驾驶状态的方式,可以提高对目标车辆进行控制的控制精度,从而进一步提高了目标车辆的驾驶安全程度。

在本公开实施例中,在确定出每个待检测目标的运行状态之后,可以基于分类参数对待检测目标进行分类,得到至少一组待检测目标,其中,分类参数包括以下至少之一:待检测目标所属的类别、待检测目标的相对于目标车辆的方位、待检测目标的状态类型。之后,就可以基于每组待检测目标的运行状态,生成对应的控制指令。

通过对待检测目标进行分类,以基于每组待检测目标的运行状态生成控制指令的方式,可以实现充分考虑目标车辆周边的待检测目标的运行状态,来控制目标车辆的驾驶状态,从而提高控制指令的准确性,以进一步提高目标车辆的驾驶安全性。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与图像处理方法对应的图像处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述图像处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图5所示,为本公开实施例提供的一种图像处理装置的示意图,所述装置包括:获取单元51、缩放单元52、分类单元53;其中,

获取单元51,用于获取包含多个待检测目标的待处理图像,并提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像;

缩放单元52,用于对每个所述子图像进行缩放处理,得到多个目标子图像;其中,每个所述目标子图像的图像尺寸相同;

分类单元53,用于对所述多个目标子图像进行图像拼接,得到图像批处理数据;并对所述图像批处理数据进行分类处理,得到每个所述待检测目标的目标分类结果。

在本公开实施例中,首先,获取到包含多个待检测目标的待处理图像,并提取该待处理图像中包含的各待检测目标的子图像,得到多个子图像。之后,可以对该每个子图像进行缩放处理,得到多个目标子图像。由于多个目标子图像中每个目标子图像的尺寸相同,因此,可以将多个目标子图像进行拼接之后得到图像批处理数据,通过对该图像批处理数据进行分类处理,得到每个待检测目标的目标分类结果。相对于现有技术中依次对每个目标进行识别的方式,本公开技术方案通过得到尺寸相同的多个目标子图像,并对多个目标子图像进行批处理的方式,可以加快对图像中的目标进行识别的速度,进而提高对图像中的目标进行识别的效率,从而使得本公开技术方案能够应用于实时性要求较高的应用场景。

一种可能的实施方式中,在图像处理方法运行在集成芯片的IP核的情况下,获取单元,还用于:获取像素处理数量,其中,所述像素处理数量用于表征所述IP核在所述集成芯片的一个时钟周期内能够处理像素数据的数量;基于所述像素处理数量在所述待处理图像的像素数据中确定当前时钟周期所处理的多个像素数据;提取所述当前时钟周期所处理的多个像素数据的像素特征,并根据所述像素特征确定所述待处理图像中各所述待检测目标的子图像。

一种可能的实施方式中,在对所述图像批处理数据进行分类处理由目标分类网络执行的情况下,缩放单元,还用于:获取所述目标分类网络对应的目标测试集中全部测试样本的像素均值;其中,所述目标测试集为对训练后的目标分类网络进行测试的数据集合;对每个所述子图像中的每个像素点的像素值和所述像素均值进行求和计算,得到第一中间子图像;按照预设缩放参数,对所述第一中间子图像进行缩放处理,得到第二中间子图像;计算所述第二中间子图像中每个像素点的像素值和所述像素均值之间的差值,并基于计算到的差值确定所述多个目标子图像。

一种可能的实施方式中,在图像批处理数据包括目标拼接图像的情况下,分类单元,还用于:获取批处理图像数量阈值;基于所述批处理图像数量阈值,将所述多个目标子图像划分为多组待拼接子图像;将每组所述待拼接子图像进行图像拼接,得到至少一个目标拼接图像;其中,每组所述待拼接子图像拼接得到一个目标拼接图像。

一种可能的实施方式中,在对所述图像批处理数据进行分类处理由多个目标分类网络执行的情况下,分类单元,还用于:在所述多个目标分类网络中确定与每个所述目标拼接图像相匹配的目标分类网络;将每个所述目标拼接图像输入至所述相匹配的目标分类网络中进行分类处理,得到多个分类子结果;对所述多个分类子结果进行整合,得到所述目标分类结果。

一种可能的实施方式中,该装置还用于:基于所述目标分类结果确定每个所述待检测目标的目标类型;基于所述目标类型确定相对应的待检测目标的运行状态;基于每个所述待检测目标的运行状态,生成控制指令,以通过所述控制指令控制所述目标车辆的驾驶状态。

一种可能的实施方式中,获取单元,还用于:基于目标分割网络确定所述待处理图像中每个所述待检测目标的位置信息;根据所述位置信息,提取所述待处理图像中包含各个所述待检测目标的子图像,得到多个子图像。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

对应于图1中的图像处理方法,本公开实施例还提供了一种电子设备600,如图6所示,为本公开实施例提供的电子设备600结构示意图,包括:

处理器61、存储器62、和总线63;存储器62用于存储执行指令,包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换,当所述电子设备600运行时,所述处理器61与所述存储器62之间通过总线63通信,使得所述处理器61执行以下指令:

获取包含多个待检测目标的待处理图像,并提取所述待处理图像中包含的各待检测目标的子图像,得到多个子图像;

对每个所述子图像进行缩放处理,得到多个目标子图像;其中,每个所述目标子图像的图像尺寸相同;

对所述多个目标子图像进行图像拼接,得到图像批处理数据;并对所述图像批处理数据进行分类处理,得到每个所述待检测目标的目标分类结果。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的图像处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的图像处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。

其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

技术分类

06120114719282