CN113473038A - 图像处理装置、图像处理方法及相关产品 - Google Patents
图像处理装置、图像处理方法及相关产品 Download PDFInfo
- Publication number
- CN113473038A CN113473038A CN202010235420.3A CN202010235420A CN113473038A CN 113473038 A CN113473038 A CN 113473038A CN 202010235420 A CN202010235420 A CN 202010235420A CN 113473038 A CN113473038 A CN 113473038A
- Authority
- CN
- China
- Prior art keywords
- image
- sub
- image processing
- target
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 463
- 238000003672 processing method Methods 0.000 title claims description 15
- 230000009466 transformation Effects 0.000 claims description 117
- 238000000034 method Methods 0.000 claims description 37
- 238000004364 calculation method Methods 0.000 claims description 28
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 description 32
- 238000007781 pre-processing Methods 0.000 description 21
- 238000013528 artificial neural network Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 238000004148 unit process Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/2628—Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
Abstract
本申请实施例公开了一种图像处理装置和相关产品,该图像处理装置包括:处理器、N个计算单元、存储器,所述处理器分别与所述N个计算单元耦接,所述N个计算单元分别与所述存储器耦接,所述N为大于1的整数;所述处理器,用于将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务,并向所述N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务;所述N个计算单元中的至少两个目标计算单元,用于并行地执行所述至少两个子图像处理任务,并将所述至少两个子图像处理任务的处理结果写入所述存储器;能够减少处理时延。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种图像处理装置、图像处理方法及相关产品。
背景技术
图像处理(image processing)是通过计算机技术将图像信号转换成数字信号并对其进行处理的过程。目前,在计算机视觉以及智能视频监控领域中通常采用神经网络来处理图像处理任务。例如通过深度神经网络实现人脸识别、物体检测、图像超分辨率处理等。当前采用的图像处理方案通常有较大的处理延时,因此需要研究处理时延较低的图像处理方案。
发明内容
本申请实施例公开了一种图像处理装置、图像处理方法及相关产品。
第一方面,本申请实施例提供的一种图像处理装置,包括:处理器、N个计算单元、存储器,所述处理器分别与所述N个计算单元耦接,所述N个计算单元分别与所述存储器耦接,所述N为大于1的整数;所述处理器,用于将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务,并向所述N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务;所述N个计算单元中的至少两个目标计算单元,用于并行地执行所述至少两个子图像处理任务,并将所述至少两个子图像处理任务的处理结果写入所述存储器。
所述图像处理装置可以是服务器、手机、游戏机、平板电脑、台式电脑、增强现实(augmented reality,AR)、虚拟现实(virtual reality,VR)等可执行图像处理操作的设备。可选的,所述N个计算单元的功能相同,并且并行工作。神经网络通常对输入图像的维度(即尺寸或大小)有固定的要求,图像处理装置在利用神经网络对输入图像进行处理之前,必须对待处理的输入图像进行预处理,以使得预处理后的输入图像适配神经网络的输入,即符合神经网络对输入图像的维度的要求。当前采用的图像处理方案中,图像处理装置在将输入图像输入至神经网络进行图像处理(例如图像识别、图像复原等)之前,逐行对整个输入图像做预处理,带来了较大的处理延时。所述一个图像处理任务可以是一个对原始图像做预处理得到目标图像的图像处理任务,即对原始图像进行缩放、投影变换、仿射变换等处理的任务。
本申请实施例中,处理器将一个图像处理任务切分为两个或两个以上子图像处理任务,多个计算单元并行执行这些子图像处理任务,可以降低处理延时。
在一个可选的实现方式中,所述处理器,还用于基于所述至少两个子图像处理任务生成至少两个处理指令,以及向所述至少两个目标计算单元中的每个目标计算单元发送对应的处理指令。示例性的,每个处理指令用于指示对应的目标计算单元执行一个子图像处理任务。
在该实现方式中,通过向每个目标计算单元发送对应的处理指令,以便于每个目标计算单元并行地基于接收到的处理指令执行子图像处理任务。
在一个可选的实现方式中,所述处理指令携带以下信息中的至少一种:子图像处理任务待处理的子图像的存储地址信息、所述子图像在所述原始图像中的位置信息、所述子图像的变换参数;所述目标计算单元,用于基于所述存储地址信息,从所述存储器中读取所述子图像,并基于所述变换参数对所述子图像进行处理。
在该实现方式中,目标计算单元基于处理指令可准确地读取其待处理的子图像,并利用处理指令携带的变换参数对子图像进行处理;处理指令包含目标计算单元执行子图像处理任务所必要的信息。
在一个可选的实现方式中,所述处理指令携带有子图像处理任务所需的变换参数;所述目标计算单元,用于基于接收到的处理指令中的变换参数,确定目标子图像中的多个像素点在所述原始图像中的位置,其中,所述目标子图像为所述子图像处理任务的处理结果;基于目标子图像中的多个像素点在所述原始图像中的位置,确定所述目标子图像中的多个像素点的像素值。
在该实现方式中,目标计算单元可基于接收到的处理指令,直接处理得到目标子图像,处理效率高。
在一个可选的实现方式中,所述目标计算单元,用于基于接收到的处理指令中的变换参数,确定目标子图像中的第一像素点在所述原始图像中的位置;在所述位置的至少一个坐标不为整数的情况下,确定所述原始图像中与所述位置邻近的四个参考像素点;对所述四个参考像素点的像素值进行双线性插值,得到所述第一像素点的像素值。
在一个可选的实现方式中,所述处理器用于将所述目标图像划分为多个目标子图像,其中,每个子图像处理任务用于得到一个目标子图像。
在一个可选的实现方式中,所述处理器,还用于基于所述N个计算单元的当前状态信息,从所述N个计算单元中确定所述至少两个目标计算单元;其中,所述处理器将所述图像处理任务切分得到的所述至少两个子图像处理任务的数量是基于所述至少两个目标计算单元的数量确定的。
在该实现方式中,可以快速将子图像处理任务分配给当前可用的计算单元。
在一个可选的实现方式中,所述处理器,还用于基于所述目标图像和所述至少两个目标计算单元的数量,确定每个子图像处理任务待输出的目标子图像在所述目标图像中的位置信息,其中,所述处理指令还包括所述目标子图像的位置信息。
在一个可选的实现方式中,所述图像处理任务包括下列处理中的至少一项:缩放变换、仿射变换、投影变换。
在一个可选的实现方式中,所述处理器,用于按照第一尺寸切分所述目标图像,得到所述至少两个子图像处理任务,所述第一尺寸不大于所述N个计算单元中任一个计算单元可处理图像的最大尺寸。
第二方面,本申请实施例提供了一种图像加速器,包括:第一计算单元和第二计算单元,所述第一计算单元和所述第二计算单元均分别与处理器和存储器耦接;所述第一计算单元和所述第二子计算单元,用于并行地执行所述处理器分配的第一子图像处理任务和第二子图像处理任务,并将执行所述第一子图像处理任务和所述第二子图像处理任务的处理结果写入至所述存储器,其中,所述第一子图像处理任务和所述第二子图像处理任务是通过切分由原始图像得到目标图像的图像处理任务得到的。
可选的,所述第一处理指令为指示所述第一计算单元执行由图像处理任务切分得到的第一子图像处理任务,所述第二处理指令为指示所述第二计算单元执行由所述图像处理任务切分得到的第二子图像处理任务。所述第一计算单元,用于基于来自所述处理器的第一处理指令和所述存储器中存储的所述原始图像进行缩放、仿射变换、投影变化等预处理中的一种得到第一目标子图像。可以理解,所述第一处理指令可以指示对所述原始图像进行缩放、仿射变换、投影变化等预处理中的任一种。在实际应用中,图像加速器可根据图像处理任务相应的选择一种恰当的预处理方式。所述第二计算单元,用于基于来自所述处理器的第二处理指令和所述存储器中存储的所述原始图像进行缩放、仿射变换、投影变化等预处理中的一种或多种得到第二目标子图像。
本申请实施例中,第一计算单元和第二计算单元并行执行子图像处理任务,可以降低处理延时。
在一个可选的实现方式中,所述第一计算单元,还用于接收来自所述处理器的处理指令,所述处理指令携带有所述第一计算单元待处理的第一子图像在所述存储器中的存储地址信息以及对所述第一子图像进行处理所需的变换参数;基于所述第一子图像的存储地址信息,从所述存储器中读取所述第一子图像;基于所述变换参数对所述第一子图像进行处理。
在一个可选的实现方式中,所述第一计算单元,还用于接收来自所述处理器的处理指令,所述处理指令携带有所述第一计算单元执行所述第一子图像任务所需的变换参数;基于所述处理指令中的变换参数,确定第一目标子图像中的多个像素点在所述原始图像中的位置,其中,所述第一目标子图像为所述第一子图像处理任务的处理结果;基于所述第一目标子图像中的多个像素点在所述原始图像中的位置,确定所述第一目标子图像中的多个像素点的像素值。
在一个可选的实现方式中,所述第一计算单元,用于基于接收到的处理指令中的变换参数,确定目标子图像中的第一像素点在所述原始图像中的位置;
在所述位置的至少一个坐标不为整数的情况下,确定所述原始图像中与所述位置邻近的四个参考像素点;对所述四个参考像素点的像素值进行双线性插值,得到所述第一像素点的像素值。
第三方面,本申请实施例提供了一种图像处理方法,该方法应用于包括处理器、N个计算单元、存储器的图像处理装置,所述处理器分别与所述N个计算单元耦接,所述N个计算单元分别与所述存储器耦接,所述N为大于1的整数;所述方法包括:所述处理器将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务,并向所述N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务;所述N个计算单元中的至少两个目标计算单元并行地执行所述至少两个子图像处理任务,并将所述至少两个子图像处理任务的处理结果写入所述存储器。
本申请实施例中,处理器将一个图像处理任务切分为两个或两个以上子图像处理任务,多个计算单元并行执行这些子图像处理任务,可以降低处理延时。
在一个可选的实现方式中,所述向所述N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务包括:所述处理器基于所述至少两个子图像处理任务生成至少两个处理指令,以及向所述至少两个目标计算单元中的每个目标计算单元发送对应的处理指令。
在一个可选的实现方式中,所述处理指令携带以下信息中的至少一种:子图像处理任务待处理的子图像的存储地址信息、所述子图像在所述原始图像中的位置信息、所述子图像的变换参数;所述N个计算单元中的至少两个目标计算单元并行地执行所述至少两个子图像处理任务包括:所述至少两个目标计算单元分别基于接收到的处理指令从所述存储器中读取待处理的子图像;分别基于接收到的处理指令对待处理的子图像进行处理。
在一个可选的实现方式中,所述至少两个处理指令中每个处理指令携带有实现子图像处理任务所需的变换参数;所述N个计算单元中的至少两个目标计算单元并行地执行所述至少两个子图像处理任务包括:所述至少两个目标计算单元分别基于接收到的处理指令中的变换参数确定目标子图像中的各坐标在所述原始图像中对应的坐标,目标子图像为子图像处理任务的处理结果;基于目标子图像中的各坐标在所述原始图像中对应的坐标,确定目标子图像中的各坐标的像素值。
在一个可选的实现方式中,所述处理器将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务包括:所述处理器确定所述N个计算单元中当前未执行处理操作的计算单元的数量为L;将所述一个图像处理任务切分为L个子图像处理任务,所述L为大于0且不大于所述N的整数,所述L个子图像处理任务为所述两个或两个以上子图像处理任务;或者,所述处理器确定按照第一尺寸切分大小为(H×W)图像得到的子图像的数量为F;将所述一个图像处理任务切分为F个子图像处理任务,所述F为大于0的整数,所述第一尺寸不大于所述N个计算单元中任一个计算单元可输出的图像的最大尺寸,所述F个子图像处理任务为所述两个或两个以上子图像处理任务。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被计算机执行时使该计算机执行上述第三方面以及任一种可选的实现方式中的处理器执行的方法。
第五方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,所述程序指令当被计算机执行时使所述计算机执行上述第三方面以及任一种可选的实现方式中的处理器执行的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种图像处理装置结构示意图;
图2为本申请实施例提供的一种对原始图像进行投影变换的方法流程图;
图3为本申请实施例提供的一种对原始图像进行仿射变换的方法流程图;
图4A为本申请实施例提供的一种原始图像的示意图;
图4B为本申请实施例提供的一种目标图像的示意图;
图5为本申请实施例提供的一种图像处理方法流程图;
图6为本申请实施例提供的另一种图像处理方法流程图;
图7为本申请实施例提供的又一种图像处理方法流程图;
图8为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”、和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图像处理(image processing)是通过计算机技术将图像信号转换成数字信号并对其进行处理的过程。目前,在计算机视觉以及智能视频监控领域中通常采用神经网络来处理图像处理任务。例如通过深度神经网络实现人脸识别、物体检测、图像文本识别、图像超分辨率处理等。本申请实施例提供的图像处理方法能够应用在图像文本识别、目标提取、视频文本识别等图像处理场景。下面分别对申请实施例提供的图像处理方法在图像文本识别场景、目标检测场景、视频文本识别场景中的应用进行简单的介绍。
图像文本识别1:终端设备采集包括一个或多个字符的图像,该终端设备对该图像进行文本识别,并显示识别出的字符。举例来说,用户使用手机拍摄得到一个招牌的图像,该手机对该图像进行文本识别,并显示该招牌上的文本。又举例来说,用户使用手机拍摄得到一张包括一段英文的图像,该手机对该图像进行文本识别,并显示翻译这段英文得到的中文。
图像文本识别2:终端设备将采集的图像发送给服务器;该服务器对该图像进行文本识别,并将识别得到的文本识别结果发送给该终端设备;该终端设备接收并显示该文本识别结果。举例来说,道路上的监控设备采集得到包括车辆的车牌号的图像,并发送给服务器,该服务器识别出该图像中的车牌号。又举例来说,用户使用手机拍摄得到一个招牌的图像,并将该图像发送给服务器;该服务器对该图像进行文本识别以得到文本识别结果,并将该文本识别结果发送该终端设备;该终端设备显示该文本识别结果。
目标提取场景1:终端设备采集包括一个或多个对象的图像,该终端设备从该图像中提取出目标对象。举例来说,用户使用手机拍摄得到一个行人的图像,该手机提取出图像中行人所处的矩形区域。
目标提取场景2:终端设备将采集的包括一个或多个对象的图像发送给服务器;该服务器该图像中提取出目标对象。举例来说,服务器从包括多个行人的图像中,提取出身穿黑色衣服的行人所处的矩形区域。
视频文本识别1:终端设备采集一段视频,并分别对该视频中的每帧图像进行文本识别。举例来说,用户使用手机拍摄了一段视频,该段视频中多帧图像包括至少一个字符;该手机分别对该视频中的每帧图像进行文本识别,得到文本识别结果并显示。
视频文本识别2:终端设备采集一段视频,并将该段视频发送给服务器;该服务器分别对该视频中的每帧图像进行文本识别,得到文本识别结果。举例来说,道路上的监控设备采集一段视频,该段视频中至少一帧图像包括车牌号;该监控设备将该段视频发送给服务器;该服务器对该段视频中的每帧图像进行文本识别,得到至少一个车牌号。
在上述场景中,图像处理装置通过将待处理的图像切分为多个子图像,且并行的对这些子图像进行预处理,可以有效降低处理时延。
在实际应用中,摄像装置(例如相机、手机等)拍摄图像时由于受到摄像头与目标对象之间的距离的影响,拍摄得到的图像中的ROI(即目标对象所处的区域)的大小通常不固定,需要将ROI缩放为神经网络输入的尺寸。另外,摄像装置拍摄图像时由于受摄像头与目标对象之间的角度影响,目标对象所处的区域在摄像头上获取的图像可能产生透视现象,影响神经网络识别的正确性。为了解决这两方面的问题,需要在将图像输入神经网络进行处理之前,对图像进行预处理。也就是说,图像处理装置在利用神经网络对输入图像进行处理之前,需要对待处理的输入图像进行预处理,以使得预处理后的输入图像适配神经网络的输入,即符合神经网络对输入图像的维度的要求。下面介绍本申请实施例提供的图像处理方案。
图1为本申请实施例提供的一种图像处理装置结构示意图,如图1所示,该图像处理装置10包括:处理器11、N个计算单元12、存储器13,处理器11分别与每个计算单元耦接,每个计算单元与存储器耦接,上述N为大于1的整数。每个计算单元均可以读取存储器13中的数据,也可以将数据写入存储器13。处理器11可以从存储器13读取数据,也可以将数据写入存储器13。处理器11可以向每个计算单元发送处理指令。可选的,上述N个计算单元中各个计算单元的结构和功能均相同,且各计算单元并行工作。下面介绍图像处理装置中的各部件在执行图像处理任务时所执行的操作。
处理器,用于将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务,并向N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务;
N个计算单元中的至少两个目标计算单元,用于并行地执行所述至少两个子图像处理任务,并将所述至少两个子图像处理任务的处理结果写入所述存储器。其中,所述至少目标计算单元可以是N个计算单元中当前处于可用状态的计算单元。
上述图像处理任务可以是一个对原始图像做预处理的任务,即对原始图像进行缩放变换、投影变换、仿射变换等预处理的任务。所述至少目标计算单元为上述N个计算单元中当前任意两个可用的计算单元,即当前未执行处理操作的计算单元。应理解,本申请实施例不对处理器切分图像处理任务得到的子图像处理任务的数量作限定,也不对并行执行处理操作的计算单元的数量作限定。也就是说,图像处理装置中的一个或者多个计算单元接收到处理器11的处理指令,并执行相应的处理操作。在一个可选的实现方式中,所述处理器,还用于从所述存储器中读取目标图像,并将所述目标图像输入至神经网络进行图像处理得到图像处理结果;所述目标图像为所述原始图像经过预处理得到的图像。所述图像处理结果可以是对所述目标图像进行处理得到的人脸识别结果、文本识别结果等。
在一些实施例中,处理器11、N个计算单元12、存储器13可以集成在同一个芯片上。在一些实施例中,处理器11可以为图像处理装置中的中央处理器,N个计算单元12和存储器13可以集成在同一个芯片上(对应于图像加速器)。在一些实施例中,处理器11可以为图像处理装置中的中央处理器,N个计算单元12和存储器13未集成在同一个部件上。本申请除请求保护图1中的图像处理装置之外,还请求单独包括一种图像加速器,该图像加速器包括上述N个计算单元或者包括上述N个计算单元和存储器13。
本申请实施例还提供一种图像加速器,该图像加速器包括:第一计算单元和第二计算单元,所述第一计算单元和所述第二计算单元均与处理器耦接,所述第一计算单元和所述第二计算单元均与存储器耦接,所述第一计算单元和所述第二计算单元的功能相同且并行工作;
所述第一计算单元和所述第二子计算单元,用于并行地执行所述处理器分配的子图像处理任务,并将执行子图像处理任务的处理结果写入至所述存储器;子图像处理任务为切分由原始图像得到目标图像的图像处理任务得到的。应理解,图像加速器包括图像处理装置中的N个计算单元或者包括上述N个计算单元和存储器13,这里不再详述图像加速器中的计算单元的功能。
下面介绍处理器切分图像处理任务的实施例。
在一些实施例中,处理器11,用于确定上述N个计算单元中当前未执行处理操作的计算单元的数量为L;将上述一个图像处理任务切分为L个子图像处理任务;基于上述L个子图像处理任务,生成L个处理指令;向上述N个计算单元中当前未执行处理操作的每个计算单元发送一个处理指令;上述L为大于0且不大于上述N的整数,上述L个子图像处理任务为上述两个或两个以上子图像处理任务;上述L个处理指令与上述L个子图像处理任务一一对应,即每个处理指令指示一个计算单元执行该处理指令对应的子图像处理任务。应理解,当前未执行处理操作的各计算单元接收的处理指令不同,即每个计算单元执行一个子图像处理任务。在一些实施例中,上述图像处理任务为根据上述原始图像生成一个大小为(H×W)的图像,上述第一子图像处理任务为输出一个大小为的图像。举例来说,图像处理装置中的L个计算单元当前可用,假定该图像处理装置需要生成一个大小为(H×W)的图像,处理器11可以在长度的方向上进行切割,得到大小为的L个子图(即目标子图像)。应理解,在H不能整除L时,最后一个子图的高度为从上述可知,处理器11可根据图像处理装置中当前可用的计算单元的数量,将图像处理任务平均分割。例如,对于一个大小为1024W*1024H的待处理图像,在图像处理装置当前有4个计算单元可使用时,将该待处理图像拆分为4个1024W*256H的子图。
在一些实施例中,处理器11,用于确定按照第一尺寸切分上述原始图像得到的子图像的数量为F;将上述一个图像处理任务切分为F个子图像处理任务;基于上述F个子图像处理任务,生成F个处理指令;向上述N个计算单元中当前未执行处理操作的每个计算单元发送一个处理指令;上述F为大于0的整数,上述第一尺寸不大于上述N个计算单元中任一个计算单元可处理的图像的最大尺寸,上述F个子图像处理任务为上述两个或两个以上子图像处理任务。上述F个处理指令与上述F个子图像处理任务一一对应,即每个处理指令指示一个计算单元执行该处理指令对应的子图像处理任务。应理解,当前未执行处理操作的各计算单元接收的处理指令不同,即每个计算单元执行一个子图像处理任务。举例来说,图像处理装置中各计算单元的适宜负载(可处理的图像的最大尺寸)为一个可配置的值,例如262144;当待处理图像的大小为1024*1024时,则计算出(1024*1024)/(262144)=4。如果图像处理装置中当前有4个或4以上的计算单元可用,则在其中选择4个计算单元分配子图像处理任务,否则先调度一部分子图像处理任务到当前可用的计算单元,剩下的子图像处理任务等待有可用的计算单元后再调度。
下面以第一计算单元为例来介绍图像处理装置中的计算单元如何获得待处理的子图像以及处理子图像得到目标子图像的实现方式。第一计算单元为上述N个计算单元中当前任一可用的计算单元,即任一目标计算单元。
在一个可选的实现方式中,处理器,还用于基于待分配给第一计算单元的第一子图像处理任务生成第一处理指令;向所述第一计算单元发送所述第一处理指令。其中,第一处理指令携带一下信息中的至少一种:第一子图像在存储器中的存储地址信息、所述第一子图像在所述原始图像中的位置信息、处理所述第一子图像所需的变换参数。示例性的,第一计算单元,基于第一处理指令中的存储地址信息和位置信息,从所述存储器中读取第一子图像,并基于所述第一处理指令中的变换参数对所述第一子图像进行处理。示例性的,第一处理指令携带有第一计算单元待处理的第一子图像在所述存储器中的存储地址以及第一子图像在所述原始图像中的位置信息(即可知第一子图像的大小),因此第一计算单元通过第一处理指令可从存储器中获取其待处理的第一子图像。举例来说,第一处理指令携带有第一计算单元待处理的第一子图像在所述存储器中对应的起始地址和结束地址以及该第一子图像的大小(即长和宽),第一计算单元依次读取该起始地址至该结束地址所存储的数据即可得到该第一子图像中各像素的像素值。在实际应用中,每个被分配子图像处理任务的计算单元,均能根据其接收到的处理指令从存储器中读取其待处理的子图像,并利用其接收到的处理指令所携带的变换矩阵对其待处理的子图像进行处理以得到处理结果,即目标子图像。举例来说,图像处理任务为利用某个变换矩阵对原始图像进行缩放,处理器可向计算单元发送携带该变换矩阵的处理指令,以便于计算单元利用该变换矩阵对子图像进行缩放。这种实现方式的主要原理是将处理器执行的一个较大的图像处理任务,切分为由多个计算单元并行执行的多个子图像处理任务,每个计算单元执行子图像处理任务的方式与处理器执行图像处理任务的方式类似。但是,通过多个计算单元并行的工作方式,可以提高处理效率。
在该实现方式中,处理器将一个图像处理任务切分为多个子图像处理任务,多个计算单元并行的执行这些子图像处理任务,可以大大减少处理时延。
下面以第一计算单元为例来介绍图像处理装置中的计算单元如何直接基于原始图像进行预处理得到目标子图像的实现方式。
在一个可选的实现方式中,第一计算单元,用于基于接收到的处理指令中的变换参数确定目标子图像中的各坐标在所述原始图像中对应的坐标,目标子图像为子图像处理任务的处理结果;基于目标子图像中的各坐标在所述原始图像中对应的坐标,确定目标子图像中的各坐标的像素值。可选的,每个计算单元接收到的处理指令携带有计算单元实现子图像处理任务所需的变换参数。在一些实施例中,所述处理器,还用于基于所述目标图像和所述至少两个目标计算单元的数量,确定每个子图像处理任务待输出的目标子图像在所述目标图像中的位置信息,其中,所述处理指令还包括所述目标子图像的位置信息。应理解,不同计算单元接收到的处理指令携带的变换参数不同,每个处理指令携带的变换参数可确定一个目标子图像中的各坐标在所述原始图像中对应的坐标。
在一些实施例中,处理器可基于切分图像处理任务得到的至少两个子图像处理任务,生成至少两个处理指令;向所述至少两个目标计算单元(包含第一计算单元)分别发送对应的处理指令;所述至少两个子图像处理任务与所述至少两个处理指令一一对应,每个处理指令用于指示一个子图像处理任务。应理解,每个计算单元执行的操作与第一计算单元执行的操作类似,且各计算单元并行地工作。在一些实施例中,第一计算单元基于接收到的处理指令中的变换参数确定其待输出的目标子图像中的第一坐标在所述原始图像中对应的第二坐标,该第一坐标为目标子图像中的任一坐标;在所述第二坐标的横坐标或纵坐标不为整数的情况下,确定所述原始图像中与所述第二坐标较接近的四个参考坐标点;对所述四个参考坐标点的像素值进行双线性插值以得到插值结果,并将所述插值结果作为所述第一坐标的像素值。在一些实施例中,第一计算单元基于接收到的处理指令中的变换参数确定其待输出的目标子图像中的第一坐标在所述原始图像中对应的第二坐标,该第一坐标为目标子图像中的任一坐标;在所述第二坐标的横坐标和纵坐标均为整数的情况下,将所述第二坐标的像素值作为所述第一坐标的像素值。
在该实现方式中,第一计算单元可以基于处理指令中的变换参数确定其待输出的目标子图像中的各坐标在上述原始图像中对应的坐标。上述第一目标子图像即为上述第一计算单元输出的子图,即上述第一目标子图像为对原始图像进行预处理得到的图像的一部分。也就是说,每个计算单元输出的一个目标子图像为对原始图像的一个子图做预处理得到的图像。应理解,图像处理装置中多个计算单元执行来自处理器的子图像处理任务得到的多个目标子图像(包括上述第一目标子图像)可以构成对原始图像进行预处理得到的图像,处理器可以从存储器中获取对原始图像做预处理得到的图像。
下面以对原始图像进行投影变换(即预处理为投影变换)为例,介绍计算单元如何直接基于原始图像进行预处理得到目标子图像的实现方式。
图2为本申请实施例提供的一种对原始图像进行投影变换的方法流程图,如图2所示,该方法可包括:
201、处理器根据原始图像中的顶点坐标和目标图像中的顶点坐标,计算出投影矩阵。
在投影变换中,处理器可以根据原始图像(即原图)上的四个顶点坐标和新图(即对原始图像进行投影变换需要得到的目标图像)的长宽,调用opencv函数生成对应的投影矩阵(对应于变换矩阵)其中,M11表示新图(即目标图像)上在X方向移动一个单位点,对应在上述原始图像的X方向移动的长度;M12表示新图上在X方向移动一个单位点,对应在上述原始图像的Y方向移动的长度;M13表示新图的左上顶点在上述原始图像上的X坐标;M21表示新图上在X方向移动一个单位点,对应在上述原始图像的Y方向移动的长度;M22表示新图上在Y方向移动一个单位点,对应在上述原始图像的Y方向移动的长度;M23表示新图的左上顶点在上述原始图像上的Y坐标;M31表示新图上在X方向移动一个单位点,对应在新图和上述原始图像投影距离上移动的长度;M32表示上述新图上在Y方向移动一个单位点,对应在新图和上述原始图像投影距离上移动的长度;M33表示新图的左上顶点与上述原始图像的投影距离Z。新图和原图的坐标映射满足如下公式:
其中,dxt(x,y)表示新图中的一个坐标(例如第二坐标),原始图像中的坐标(例如第一坐标)为(x,y)。原始图像中的坐标(x,y)与新图上的坐标,dxt(x,y)相对应。在一些实施例中,上述第二坐标的横坐标为上述第二坐标的纵坐标为应理解,通过上述公式(1)可计算得到新图中每个坐标点在上述原始图像对应的坐标点。公式(1)等号右边的x为原始图像中的横坐标,公式(1)等号右边的y为原始图像中的纵坐标,公式(1)等号左边的x为新图中的横坐标,公式(1)等号左边的y为新图中的纵坐标。在实际应用中,每个计算单元都可以基于来自处理器的处理指令所指示的变换矩阵和原始图像,得到其待输出的目标子图像。图像处理装置中的各计算单元接收到的处理指令所指示的变换矩阵类似。对于不同的计算单元来说,变换矩阵中的参数大部分共用,非共用的部分为M13,M23,M33,对应的是每个子图在原图上对应不同起点。举例来说,切分原始图像得到的每个子图的高度为h,则4个子图对应的变换矩阵的M13分别为:M13’(0)=M13,M13’(1)=M13+M12*h,M13’(2)=M13+M12*2h,M13’(3)=M13+M12*3h。对于第k幅子图对应的变换矩阵, 应理解,处理器可确定不同计算单元所需的变换矩阵,并向不同的计算单元发送携带相应变换矩阵的处理指令,以便于计算单元利用其接收到的处理指令中的变换矩阵实现子图像处理任务。
202、计算单元利用其对应的投影矩阵计算其待输出的目标子图像中各坐标在原始图像中对应的坐标。
每个计算单元可计算其待输出的目标子图像(对应于执行子图像处理任务的处理结果)中各坐标在原始图像中对应的坐标。在一些实施例中,计算单元在接收到包含变换矩阵的处理指令后,可执行如下步骤:从新图的左上点开始从左到右,从上到下逐行扫描新图上的点,同时对步进值进行累加,在第i行j列得到原图上的坐标((M11*i+M12*j+M13)/(M31*i+M32*j+M33),(M21*i+M22*j+M23)/(M31*i+M32*j+M33)),即新图的坐标(i,j)在原图对应的坐标。应理解,各计算单元可采用相同的方式确定其待输出的目标子图像上任意坐标在原图上对应的坐标。计算单元对应的投影矩阵可以是其接收到的处理指令中携带的变换矩阵。
203、计算单元从存储器中取出每个参考坐标周围的4个坐标的像素值进行双线性插值,并将插值结果写回存储。
参考坐标可以是目标图像中的坐标在原始图像中对应的坐标。每个参考坐标周围的4个坐标可以是距离该参考坐标最近的坐标。应理解,目标图像中的每个坐标在原始图像中对应一个参考坐标。所述插值结果为计算单元做预处理处理得到的目标子图像上的像素值。在实际应用中,处理器可以向图像处理装置中当前可用的各计算单元发送包含不同投影矩阵的处理指令,各计算单元可以利用其接收到的处理指令中的投影矩阵来实现原图中的一个子图的投影变换。由于各计算单元并行工作,可以大大减少对原图进行投影变换的时间。
下面以对原始图像进行仿射变换(即预处理为仿射变换)为例,介绍计算单元如何直接基于原始图像进行预处理得到目标子图像的实现方式。
图3为本申请实施例提供的一种对原始图像进行仿射变换的方法流程图,如图3所示,该方法可包括:
301、处理器根据原始图像中的顶点坐标和目标图像中的顶点坐标,计算出仿射矩阵。
图4A为本申请实施例提供的一种原始图像(即原图)的示意图。图4B为本申请实施例提供的一种目标图像(即对原始图像进行仿射变换得到的图像)的示意图。如图4A所示,原始图像中的4个顶点坐标分别为(x00,y00)、(x01,y01)、(x10,y10)、(x11,y11)。如图4B所示,对原始图像进行仿射变换待生成的目标图像的左上顶点和右下顶点分别为(0,0)和(x11’,y11’)。可选的,处理器根据原图4点顶点坐标和新图(即目标图像)的顶点坐标,计算出仿射矩阵(对应于变换矩阵)的方式如下:
M11=(x01-x00)/x11’,M12=(x10-x00)/y11’,M13=x00;
M21=(y01-y00)/x11’,M22=(y10-x00)/y11’,M23=y00;
M31=0,M32=0,M33=1。对于不同的计算单元来说,变换矩阵中的参数大部分共用,非共用的部分为M13,M23,M33,对应的是每个子图在原图(对应原始图像)上对应不同起点。在一些实施例中,步骤301计算得到的仿射矩阵可以为第一幅子图(对应于目标子图像以及一个子图)对应的仿射矩阵,处理器可基于该仿射矩阵得到不同计算单元所需的仿射矩阵。举例来说,图像处理任务为基于原始图像生成一个大小为(H×W)的新图(对应于目标图像),L个计算单元中每个计算单元执行子图像处理任务输出一个大小为的图像,在L不能被H整除时,最后一个子图的高度为对于第k幅子图对应的变换矩阵,在实际应用中,不同计算单元对应的变换矩阵中的M13、M23以及M33不同,剩余参数相同,处理器可得到不同计算单元所需的变换矩阵。应理解,处理器可确定不同计算单元所需的变换矩阵,并向不同的计算单元发送携带相应变换矩阵的处理指令,以便于计算单元利用其接收到的处理指令中的变换矩阵实现子图像处理任务。
302、计算单元利用其对应的仿射矩阵计算其待输出的目标子图像中各坐标在原始图像中对应的坐标。
可选的,计算单元(例如第一计算单元)采用上述公式(1)计算其待输出的目标子图像中各坐标在原始图像中对应的坐标,仿射矩阵为公式(1)中的变换矩阵。在一些实施例中,计算单元初始化a=M13,b=M23,c=M33=1。同时将a、b、c的值分别保留一份至a_rsv,b_rsv,c_rsv用于行更新。举例来说,计算单元将目标图像中的坐标(0,0)代入至公式(1),得到目标图像中的坐标(0,0)对应原始图像中的坐标(M13/M33,M23/M33),即(x00,y00)。当在新图上右移一个坐标点,此时a=M11*1+M12*0+M13=M11+M13,相比(0,0)坐标点对应的a只多了一项M11,于是只用在之前的a值上累加一个M11,b和c类似。重复以上累加/求和操作,直到第一行所有点都计算完成;然后移动到(1,0)坐标点,(1,0)坐标点对应的a与(0,0)坐标点对应的a只相差一个M12项,于是可以使用之前保存的a_rsv值加上M12,得到(1,0)对应的的a值,并将该值更新到a_rsv,b和c类似。重复以上操作:在每行开始时在之前的a_rsv,b_rsv,c_rsv上加上M12,M22,M32更新a,b,c的值。在行内用M11,M21,M31累加到a,b,c上,直到此行计算完成x11个点。然后移动到下一行,直到y11行全部计算完成。在实际应用中,被分配子图像处理任务的计算单元均可执行步骤302以得到一个目标子图像,各目标子图像构成了执行图像处理任务的处理结果。
前面写到了仿射变换和投影变换,下面介绍缩放变换、仿射变换以及投影变换的定义和区别。缩放变换:改变图像的尺寸,不能改变图像的角度关系。仿射变换:可以改变角度关系,不能改变平行关系。投影变换:可以将任意图像投影到一个平面上,改变线段之间的平行关系。由于仿射变换和缩放变换可以被视为投影变换的特殊形式,只是在投影变换时相当于变换矩阵中的M31为0,M32为0,M33为1,在缩放时M12和M21也为0。因此,可以复用以上方式来实现缩放变换,只需要在配置变换矩阵时修改相应的配置值,即可使用图像处理装置完成投影变换和缩放操作,处理时延和路径与方式变换相同。
前述实施例描述了图像处理装置对原始图像进行投影变换和仿射变换的实现方式。在实际应用中,图像处理装置可以对原始图像实现如下预处理:对一幅完整图像(即原始图像)进行缩放,输出矩形的新图(对应于目标图像);对从原始图像中选取的矩形区域(即ROI)进行缩放,输出矩形的新图;对从原始图像中选取的平行四边形区域(ROI)进行投影变换,输出矩形的新图;对从原始图像中选取的任意四边形区域进行投影变换,输出矩形的新图。
图5为本申请实施例提供的一种图像处理方法流程图,该方法应用于包括处理器、N个计算单元、存储器的图像处理装置,上述处理器分别与上述N个计算单元耦接,上述N个计算单元分别与上述存储器耦接,上述N为大于1的整数。上述图像处理装置可以是服务器、手机、游戏机、平板电脑、台式电脑、增强现实(augmented reality,AR)、虚拟现实(virtualreality,VR)等可执行图像处理操作的设备。如图5所示,该方法可包括:
501、处理器将一个图像处理任务切分为两个或两个以上子图像处理任务。
前述实施例描述了两种切分图像处理任务的实现方式,这里不再赘述。上述图像处理任务可以是对原始图像进行仿射变换、缩放变换、投影变换等中的一种或多种预处理。可选的,处理器在执行步骤501之前,接收到来自应用层的所述图像处理任务。
在一个可选的实现方式中,处理器在执行步骤501还可以执行如下操作:获取输入图像中包括目标对象的四边形区域以得到上述原始图像。上述目标对象为待识别的对象,例如人脸图像、车牌号等。可以理解,上述四边形区域为上述处理器确定的上述输入图像中的感兴趣区域(region of interest,ROI)。上述输入图像为上述图像处理任务对应的待处理的图像。
502、处理器将基于第一子图像处理任务生成的第一处理指令发送给第一计算单元,以及将基于第二子图像处理任务生成的第二处理指令发送给第二计算单元。
上述第一子图像处理任务和上述第二子图像处理任务均包含于上述两个或两个以上子图像处理任务,上述第一计算单元和上述第二计算单元均包含于上述N个计算单元。
503、第一计算单元基于上述第一处理指令和存储器中存储的原始图像进行处理得到第一目标子图像;将上述第一目标子图像写入至上述存储器。
在一些实施例中,第一处理指令携带有所述第一子图像处理任务待处理的第一子图像在所述存储器中的存储地址以及对第一子图像进行处理所需的参数;第一计算单元可基于第一处理指令从所述存储器中读取其待处理的第一子图像;基于第一处理指令对第一子图像进行处理,得到第一目标子图像。示例性的,上述第一计算单元基于上述第一处理指令对上述第一子图像进行仿射变换、缩放变换、投影变换中的一种或两种(即预处理),得到上述第一目标子图像。
在一些实施例中,第一处理指令携带有第一计算单元携带有实现第一子图像处理任务所需的变换参数;第一计算单元可利用第一处理指令中的变换参数其待输出的确定第一目标子图像中的各坐标在所述原始图像中对应的坐标,第一目标子图像为第一子图像处理任务的处理结果;基于第一目标子图像中的各坐标在所述原始图像中对应的坐标,确定第一目标子图像中的各坐标的像素值。
504、第二计算单元基于上述第二处理指令和上述存储器中存储的上述原始图像进行处理得到第二目标子图像;将上述第二目标子图像写入至上述存储器。
可选的,在第一计算单元执行步骤503且第二计算单元执行步骤504之前,上述处理器为上述第一计算单元配置第一存储空间以及为上述第二计算单元配置第二存储空间,上述第一存储空间和上述第二存储空间均为上述存储器中的存储空间且上述第一存储空间和上述第二存储空间之间不存在相同的存储地址。上述第一计算单元将上述第一目标子图像写入至上述第一存储空间;上述第二计算单元将上述第二目标子图像写入至上述第二存储空间。
在一个可选的实现方式中,在第一计算单元执行步骤503且第二计算单元执行步骤504之后,处理器可执行如下操作:从上述存储器中读取目标图像,并将上述目标图像输入至神经网络进行图像处理得到图像处理结果;上述目标图像为上述原始图像经过预处理得到的图像,且上述第一目标子图像和上述第二目标子图像均包含于上述目标图像。上述图像处理可以是人脸识别、图像文本识别等。
本申请实施例中,处理器将一个图像处理任务切分为两个或两个以上子图像处理任务,多个计算单元并行执行这些子图像处理任务,可以降低处理延时。
图6为本申请实施例提供的另一种图像处理方法流程图。如图6所示,该方法可包括:
601、图像处理装置采集文本图像。
图像处理装置可以是安装有摄像头的手机、平板电脑等电子设备。举例来说,用户可启动手机的相机应用,并拍摄包括至少一个字符或文本的图像,得到一个文本图像。例如,用户使用手机(即图像处理装置)拍摄一个快递单、一个名片、一个牌匾、一段文本等得到一个文本图像。
602、图像处理装置接收用户输入的文本识别指令。
该文本识别指令用于指示该图像处理装置对上述文本图像进行文本识别。
603、图像处理装置对文本图像进行预处理得到目标文本图像。
可选的,图像处理装置通过两个或两个以上计算单元并行地对由上述文本图像切分得到的多个子图进行预处理以得到上述目标文本图像,参阅图5。图像处理装置对文本图像进行预处理得到目标文本图像的任务对应于图5中的图像处理任务。
604、图像处理装置将目标文本图像输入至文本识别网络进行文本识别,得到文本识别结果。
上述文本识别网络可以一个深度神经网络。
605、图像处理装置显示文本识别结果。
本申请实施例中,用户使用图像处理装置采集文本图像,并对该文本图像进行文本识别,文本识别精度高。
图7为本申请实施例提供的另一种图像处理方法流程图。如图7所示,该方法可包括:
701、终端设备采集文本图像。
终端设备可以是安装有相机的手机、平板电脑等电子设备。文本图像是包括至少一个字符的图像。举例来说,用户可启动手机的相机应用,并拍摄包括至少一个字符或文本的图像,得到一个文本图像。例如,用户使用手机(即终端设备)拍摄一个快递单、一个名片、一个牌匾、一段文本等得到一个文本图像。
702、终端设备将采集的文本图像发送至服务器。
可选的,上述服务器为上述图像处理装置。
703、服务器对文本图像进行预处理得到目标文本图像。
服务器对文本图像进行预处理得到目标文本图像可对应于图5中的图像处理任务。
704、服务器将目标文本图像输入至文本识别网络进行文本识别,得到文本识别结果。
705、服务器将文本识别结果发送给终端设备。
本申请实施例中,处理器将一个图像处理任务切分为两个或两个以上子图像处理任务,多个计算单元并行执行这些子图像处理任务,可以降低处理延时。
图8是本申请实施例提供的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备),N个计算单元824。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。计算单元824可执行CPU822分配的子图像处理任务。服务器800可以为本申请提供的数据处理装置。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由图像处理装置所执行的步骤可以基于该图8所示的服务器结构。
在本申请的实施例中提供另一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现前述实施例中的处理器11所执行的方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述实施例所提供的图像处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (20)
1.一种图像处理装置,其特征在于,包括:处理器、N个计算单元、存储器,所述处理器分别与所述N个计算单元耦接,所述N个计算单元分别与所述存储器耦接,所述N为大于1的整数;
所述处理器,用于将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务,并向所述N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务;
所述N个计算单元中的至少两个目标计算单元,用于并行地执行所述至少两个子图像处理任务,并将所述至少两个子图像处理任务的处理结果写入所述存储器。
2.根据权利要求1所述的图像处理装置,其特征在于,
所述处理器,还用于基于所述至少两个子图像处理任务生成至少两个处理指令,以及向所述至少两个目标计算单元中的每个目标计算单元发送对应的处理指令。
3.根据权利要求2所述的图像处理装置,其特征在于,所述处理指令携带以下信息中的至少一种:子图像处理任务待处理的子图像的存储地址信息、所述子图像在所述原始图像中的位置信息、所述子图像的变换参数;
所述目标计算单元,用于基于所述存储地址信息,从所述存储器中读取所述子图像,并基于所述变换参数对所述子图像进行处理。
4.根据权利要求2所述的图像处理装置,其特征在于,所述处理指令携带有子图像处理任务所需的变换参数;
所述目标计算单元,用于基于接收到的处理指令中的变换参数,确定目标子图像中的多个像素点在所述原始图像中的位置,其中,所述目标子图像为所述子图像处理任务的处理结果;基于目标子图像中的多个像素点在所述原始图像中的位置,确定所述目标子图像中的多个像素点的像素值。
5.根据权利要求4所述的图像处理装置,其特征在于,
所述目标计算单元,用于基于接收到的处理指令中的变换参数,确定目标子图像中的第一像素点在所述原始图像中的位置;
在所述位置的至少一个坐标不为整数的情况下,确定所述原始图像中与所述位置邻近的四个参考像素点;对所述四个参考像素点的像素值进行双线性插值,得到所述第一像素点的像素值。
6.根据权利要求1所述的图像处理装置,其特征在于,所述处理器用于将所述目标图像划分为多个目标子图像,其中,每个子图像处理任务用于得到一个目标子图像。
7.根据权利要求1至6任一项所述的图像处理装置,其特征在于,
所述处理器,还用于基于所述N个计算单元的当前状态信息,从所述N个计算单元中确定所述至少两个目标计算单元;
其中,所述处理器将所述图像处理任务切分得到的所述至少两个子图像处理任务的数量是基于所述至少两个目标计算单元的数量确定的。
8.根据权利要求4或5所述的图像处理装置,其特征在于,所述处理器,还用于基于所述目标图像和所述至少两个目标计算单元的数量,确定每个子图像处理任务待输出的目标子图像在所述目标图像中的位置信息,其中,所述处理指令还包括所述目标子图像的位置信息。
9.根据权利要求7或8所述的图像处理装置,其特征在于,所述图像处理任务包括下列处理中的至少一项:缩放变换、仿射变换、投影变换。
10.根据权利要求1至9任一项所述的图像处理装置,其特征在于,
所述处理器,用于按照第一尺寸切分所述目标图像,得到所述至少两个子图像处理任务,所述第一尺寸不大于所述N个计算单元中任一个计算单元可处理图像的最大尺寸。
11.一种图像加速器,其特征在于,包括:第一计算单元和第二计算单元,所述第一计算单元和所述第二计算单元均分别与处理器和存储器耦接;
所述第一计算单元和所述第二子计算单元,用于并行地执行所述处理器分配的第一子图像处理任务和第二子图像处理任务,并将执行所述第一子图像处理任务和所述第二子图像处理任务的处理结果写入至所述存储器,其中,所述第一子图像处理任务和所述第二子图像处理任务是通过切分由原始图像得到目标图像的图像处理任务得到的。
12.根据权利要求11所述的图像加速器,其特征在于,
所述第一计算单元,还用于接收来自所述处理器的处理指令,所述处理指令携带有所述第一计算单元待处理的第一子图像在所述存储器中的存储地址信息以及对所述第一子图像进行处理所需的变换参数;基于所述第一子图像的存储地址信息,从所述存储器中读取所述第一子图像;基于所述变换参数对所述第一子图像进行处理。
13.根据权利要求11所述的图像加速器,其特征在于,
所述第一计算单元,还用于接收来自所述处理器的处理指令,所述处理指令携带有所述第一计算单元执行所述第一子图像任务所需的变换参数;基于所述处理指令中的变换参数,确定第一目标子图像中的多个像素点在所述原始图像中的位置,其中,所述第一目标子图像为所述第一子图像处理任务的处理结果;基于所述第一目标子图像中的多个像素点在所述原始图像中的位置,确定所述第一目标子图像中的多个像素点的像素值。
14.根据权利要求13所述的图像加速器,其特征在于,
所述第一计算单元,用于基于接收到的处理指令中的变换参数,确定目标子图像中的第一像素点在所述原始图像中的位置;
在所述位置的至少一个坐标不为整数的情况下,确定所述原始图像中与所述位置邻近的四个参考像素点;对所述四个参考像素点的像素值进行双线性插值,得到所述第一像素点的像素值。
15.一种图像处理方法,其特征在于,应用于包括处理器、N个计算单元、存储器的图像处理装置,所述N为大于1的整数;所述方法包括:
所述处理器将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务,并向所述N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务;
所述N个计算单元中的至少两个目标计算单元并行地执行所述至少两个子图像处理任务,并将所述至少两个子图像处理任务的处理结果写入所述存储器。
16.根据权利要求15所述的方法,其特征在于,所述向所述N个计算单元中的至少两个目标计算单元分配所述至少两个子图像处理任务包括:
所述处理器基于所述至少两个子图像处理任务生成至少两个处理指令,以及向所述至少两个目标计算单元中的每个目标计算单元发送对应的处理指令。
17.根据权利要求16所述的方法,其特征在于,所述处理指令携带以下信息中的至少一种:子图像处理任务待处理的子图像的存储地址信息、所述子图像在所述原始图像中的位置信息、所述子图像的变换参数;所述N个计算单元中的至少两个目标计算单元并行地执行所述至少两个子图像处理任务包括:
所述至少两个目标计算单元分别基于接收到的处理指令从所述存储器中读取待处理的子图像;分别基于接收到的处理指令对待处理的子图像进行处理。
18.根据权利要求15所述的方法,其特征在于,所述至少两个处理指令中每个处理指令携带有实现子图像处理任务所需的变换参数;所述N个计算单元中的至少两个目标计算单元并行地执行所述至少两个子图像处理任务包括:
所述至少两个目标计算单元分别基于接收到的处理指令中的变换参数确定目标子图像中的各坐标在所述原始图像中对应的坐标,目标子图像为子图像处理任务的处理结果;基于目标子图像中的各坐标在所述原始图像中对应的坐标,确定目标子图像中的各坐标的像素值。
19.根据权利要求15至18任一项所述的方法,其特征在于,所述处理器将处理原始图像得到目标图像的图像处理任务切分为至少两个子图像处理任务包括:
所述处理器确定所述N个计算单元中当前未执行处理操作的计算单元的数量为L;将所述一个图像处理任务切分为L个子图像处理任务,所述L为大于0且不大于所述N的整数,所述L个子图像处理任务为所述两个或两个以上子图像处理任务;
或者,
所述处理器确定按照第一尺寸切分大小为(H×W)图像得到的子图像的数量为F;将所述一个图像处理任务切分为F个子图像处理任务,所述F为大于0的整数,所述第一尺寸不大于所述N个计算单元中任一个计算单元可输出的图像的最大尺寸,所述F个子图像处理任务为所述两个或两个以上子图像处理任务。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,处理器所述程序指令以实现权利要求15至19任意一项所述的处理器执行的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235420.3A CN113473038A (zh) | 2020-03-30 | 2020-03-30 | 图像处理装置、图像处理方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235420.3A CN113473038A (zh) | 2020-03-30 | 2020-03-30 | 图像处理装置、图像处理方法及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113473038A true CN113473038A (zh) | 2021-10-01 |
Family
ID=77864771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010235420.3A Pending CN113473038A (zh) | 2020-03-30 | 2020-03-30 | 图像处理装置、图像处理方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113473038A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7360115B1 (ja) | 2022-04-13 | 2023-10-12 | 株式会社Ridge-i | 情報処理装置、情報処理方法及び情報処理プログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104888A (zh) * | 2014-07-01 | 2014-10-15 | 大连民族学院 | 一种并行多核fpga数字图像实时缩放处理方法和装置 |
CN106530209A (zh) * | 2016-09-26 | 2017-03-22 | 深圳市振华微电子有限公司 | 一种基于fpga的图像旋转方法及装置 |
CN108932702A (zh) * | 2018-06-13 | 2018-12-04 | 北京微播视界科技有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
CN109767408A (zh) * | 2018-12-29 | 2019-05-17 | 广州华多网络科技有限公司 | 图像处理方法、装置、存储介质及计算机设备 |
CN109934773A (zh) * | 2019-03-13 | 2019-06-25 | 北京旷视科技有限公司 | 一种图像处理方法、装置、电子设备和计算机可读介质 |
-
2020
- 2020-03-30 CN CN202010235420.3A patent/CN113473038A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104888A (zh) * | 2014-07-01 | 2014-10-15 | 大连民族学院 | 一种并行多核fpga数字图像实时缩放处理方法和装置 |
CN106530209A (zh) * | 2016-09-26 | 2017-03-22 | 深圳市振华微电子有限公司 | 一种基于fpga的图像旋转方法及装置 |
CN108932702A (zh) * | 2018-06-13 | 2018-12-04 | 北京微播视界科技有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
CN109767408A (zh) * | 2018-12-29 | 2019-05-17 | 广州华多网络科技有限公司 | 图像处理方法、装置、存储介质及计算机设备 |
CN109934773A (zh) * | 2019-03-13 | 2019-06-25 | 北京旷视科技有限公司 | 一种图像处理方法、装置、电子设备和计算机可读介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7360115B1 (ja) | 2022-04-13 | 2023-10-12 | 株式会社Ridge-i | 情報処理装置、情報処理方法及び情報処理プログラム |
JP2023156898A (ja) * | 2022-04-13 | 2023-10-25 | 株式会社Ridge-i | 情報処理装置、情報処理方法及び情報処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107330439B (zh) | 一种图像中物体姿态的确定方法、客户端及服务器 | |
JP6425780B1 (ja) | 画像処理システム、画像処理装置、画像処理方法及びプログラム | |
Zhuang et al. | Acdnet: Adaptively combined dilated convolution for monocular panorama depth estimation | |
US8023725B2 (en) | Identification of a graphical symbol by identifying its constituent contiguous pixel groups as characters | |
CN109474780B (zh) | 一种用于图像处理的方法和装置 | |
CN110111388B (zh) | 三维物体位姿参数估计方法及视觉设备 | |
WO2020146911A2 (en) | Multi-stage multi-reference bootstrapping for video super-resolution | |
KR20070093995A (ko) | 움직임 벡터 연산 방법과 이 방법을 이용한 손 떨림 보정장치, 촬상 장치, 및 동영상 생성 장치 | |
CN113643414B (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN112348885B (zh) | 视觉特征库的构建方法、视觉定位方法、装置和存储介质 | |
JP2016509805A (ja) | 画像ストリームの高フレームレート化 | |
CN111292335A (zh) | 一种前景掩模特征图的确定方法、装置及电子设备 | |
CN116168143A (zh) | 一种多视图三维重建的方法 | |
CN114758145B (zh) | 一种图像脱敏方法、装置、电子设备及存储介质 | |
CN113610835B (zh) | 看护摄像机的人形检测方法 | |
CN113473038A (zh) | 图像处理装置、图像处理方法及相关产品 | |
JP7546653B2 (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
US9392146B2 (en) | Apparatus and method for extracting object | |
CN111507119A (zh) | 标识码识别方法、装置、电子设备及计算机可读存储介质 | |
JP2000293627A (ja) | 画像入力装置、画像入力方法、及び記憶媒体 | |
JP2017126264A (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN113939852A (zh) | 物体识别装置以及物体识别方法 | |
JP2020009099A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
CN112929562B (zh) | 视频抖动的处理方法、装置、设备以及存储介质 | |
JP2002094849A (ja) | 広視野画像撮像装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |