CN115619631A - 图数据的处理方法、装置、电子设备及存储介质 - Google Patents

图数据的处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115619631A
CN115619631A CN202110806968.3A CN202110806968A CN115619631A CN 115619631 A CN115619631 A CN 115619631A CN 202110806968 A CN202110806968 A CN 202110806968A CN 115619631 A CN115619631 A CN 115619631A
Authority
CN
China
Prior art keywords
graph
processed
height
thread
candidate
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
Application number
CN202110806968.3A
Other languages
English (en)
Inventor
罗洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN202110806968.3A priority Critical patent/CN115619631A/zh
Publication of CN115619631A publication Critical patent/CN115619631A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation

Abstract

本申请实施例提供了一种图数据的处理方法、装置、电子设备及存储介质,涉及人工智能和云技术领域。包括:获取至少一张待处理图和至少一张待处理图的相关信息;获取第一数量的多个候选值和电子设备的设备资源信息;根据设备资源信息和相关信息,确定各候选值对应的设备资源利用率,并根据各候选值对应的设备资源利用率,从各候选值中确定出第一数量;根据第一数量和图尺寸信息确定第二数量,并启动第二数量的线程;对于每个线程,通过线程获取至少一张待处理图中线程所对应的原像素点的像素数据,并根据原像素点的像素数据进行像素插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据。在本申请中可以有效提升数据处理效率。

Description

图数据的处理方法、装置、电子设备及存储介质
技术领域
本申请涉及人工智能和云技术领域,具体而言,本申请涉及一种图数据的处理方法、装置、电子设备及存储介质。
背景技术
图数据放大是深度学习计算机视觉中常用的操作之一,在很多应用场景中需要将图数据放大到固定尺寸,使其与模型输入尺寸对齐,保证模型推理或者满足训练输入要求。例如在OCR(Optical Character Recognition,光学字符识别)场景中,需要将训练用的样本图片放大到一定尺寸后才可以输入到模型计算,而在识别阶段需要将待识别图片等比放大到固定尺寸。在深度学习模型中则需要通过上采样操作对特征图进行放大,生成多种尺度特征图,从而增强模型对不同粒度大小物体检测精度等。但是目前对图数据放大时存在处理时耗过长、处理效率较低的问题。
发明内容
本申请提供了一种图数据的处理方法、装置、电子设备及存储介质,能够提升数据处理效率,提高设备的资源利用率。
一方面,本申请实施例提供了一种图数据的处理方法,该方法由电子设备执行,该方法包括:
获取至少一张待处理图和至少一张待处理图的相关信息,相关信息包括图数据格式和图信息,图信息包括图数量、待处理图的通道数和图尺寸信息,图尺寸信息包括待处理图的宽和高、以及待处理图对应的目标图的宽和高;
获取第一数量的多个候选值和电子设备的设备资源信息,第一数量为电子设备的一个线程处理的像素点的数量;
根据设备资源信息和相关信息,确定各候选值对应的设备资源利用率,并根据各候选值对应的设备资源利用率,从各候选值中确定出第一数量;
根据第一数量和相关信息,确定处理至少一张待处理图所需的线程的第二数量,并启动第二数量的线程;
对于每个线程,通过线程获取至少一张待处理图中线程对应的原像素点的像素数据,并根据原像素点的像素数据进行插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据,各目标像素点的数量为第一数量。
另一方面,本申请实施例提供了一种图数据的处理装置,该装置包括:
图数据获取模块,用于获取至少一张待处理图和至少一张待处理图的相关信息,相关信息包括图数据格式和图信息,图信息包括图数量、待处理图的通道数和图尺寸信息,图尺寸信息包括待处理图的宽和高、以及待处理图对应的目标图的宽和高;
第一数量确定模块,用于获取第一数量的多个候选值和电子设备的设备资源信息,第一数量为电子设备的一个线程处理的像素点的数量;根据设备资源信息和相关信息,确定各候选值对应的设备资源利用率,并根据各候选值对应的设备资源利用率,从各候选值中确定出第一数量;
第二数量确定模块,用于根据第一数量和相关信息,确定处理至少一张待处理图所需的线程的第二数量,并启动第二数量的线程;
像素插值计算模块,用于对于每个线程,通过线程获取至少一张待处理图中线程对应的原像素点的像素数据,并根据原像素点的像素数据进行插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据,各目标像素点的数量为第一数量。
可选的,图数据格式为NCHW(batch_number,channel,height,width,批数量,通道,高度,宽度)格式或NHWC(batch,height,width,channel,批数量,高度,宽度,通道)格式;第一数量确定模块在获取第一数量的多个候选值时,具体用于:
若图数据格式为NCHW格式,确定目标图的高和待处理图的高的第一比值,将不大于第一比值的各整数值作为多个候选值;
若图数据格式为NHWC格式,确定目标图的高和待处理图的高的第二比值,以及目标图的宽和待处理图的宽的第三比值;并将取值不大于第二比值和第三比值的乘积、且取值为第三比值的倍数的各整数值作为多个候选值。
可选的,图数据格式为NCHW格式或NHWC格式;
第一数量确定模块在根据设备资源信息和相关信息,确定各候选值对应的设备资源利用率时,具体用于:
根据设备资源信息,确定电子设备可启动的线程数;
若图数据格式为NCHW格式,对于每个候选值,根据待处理图的高、图数量、目标图的宽和通道数,确定候选值对应的候选线程数,根据候选线程数和可启动的线程数,确定候选值对应的设备资源率,其中,候选线程数是指若第一数量为候选值,处理至少一张待处理图所需的线程数量;
若图数据格式为NHWC格式,对于每个候选值,根据待处理图的高和宽、图数量以及通道数,确定候选值对应的候选线程数,根据候选线程数和可启动的线程数,确定候选值对应的设备资源利用率。
可选的,第一数量确定模块在对于每个候选值,根据候选线程数和可启动的线程数,确定候选值对应的设备资源利用率时,具体用于:
确定候选值对应的候选线程数和可启动的线程数的差值的绝对值,并将绝对值作为候选值对应的设备资源利用率;
第一数量确定模块在根据各候选值对应的设备资源利用率,从各候选值中确定出第一数量时,具体用于:
将各候选值对应的绝对值中最小绝对值对应的候选值,确定为第一数量。
可选的,设备资源信息为电子设备中SM(streaming multiprocessor,流处理器)的数量;
若图数据格式为NCHW格式,对于任一候选值k,通过以下表达式确定候选值对应的设备资源利用率:
cost=|out_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,cost为设备资源利用率,out_width为目标图的宽,in_height为待处理图的高,channel_num为通道数,sm_num为SM的数量,r为预设值,batch_num为图数量,out_width*in_height*batch_num*channel_num*k为候选值k对应的候选线程数,512*sm_num*r为可启动的线程数;
若图数据格式为NHWC格式,对于任一候选值k,通过以下表达式确定候选值对应的设备资源利用率:
cost=|in_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,in_width为待处理图的宽,in_width*in_height*batch_num*channel_num*k为候选值k对应的候选线程数,512*sm_num*r为可启动的线程数。
可选的,对于每个线程,像素插值计算模块在根据原像素点的像素数据进行插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据时,具体用于:
若图数据格式为NCHW格式,根据原像素点的像素数据,在高度维度上进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度上的各目标像素点的像素数据;
若图数据格式为NHWC格式,对于每个线程,根据原像素点的像素数据,在高度维度和宽度维度上进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度和宽度维度上的各目标像素点的像素数据。
可选的,该装置还包括信息确定模块,用于在从各候选值中确定出第一数量之前,确定至少一张待处理图满足以下至少一项:
确定至少一张待处理图满足以下至少一项:
目标图的高和待处理图的高的比值大于或等于第一设定值;
目标图的宽和待处理图的宽的比值大于或等于第二设定值;
至少一张待处理图所对应的像素点的总数量大于或等于电子设备可启动的线程数。
可选的,对于每个线程,像素插值计算模块在通过线程获取至少一张待处理图中线程所对应的原像素点的像素数据时,具体用于:
对于第二数量的线程中的任意两个线程,若两个线程所对应的原像素点的像素数据中存在相同的原像素点的像素数据,则获取两个线程中的一个线程对应的原像素点的像素数据,将获取到的原像素点的像素数据中相同的原像素点的像素数据传输给两个线程中的另一线程,并获取另一线程所对应的其他原像素点的像素数据;
其中,其他原像素点的像素数据为另一线程对应的原像素点的像素数据中除相同的原像素点的像素数据之外的原像素点的像素数据。
可选的,待处理图为图像或特征图。
再一方面,本申请实施例提供了一种电子设备,包括处理器以及存储器:存储器被配置用于存储计算机程序,计算机程序在由处理器执行时,使得处理器执行图数据的处理方法。
又一方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机程序,当计算机程序在计算机上运行时,使得计算机可以执行图数据的处理方法。
另一方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述本申请任一可选实施例中提供的图数据的处理方法。
本申请实施例提供的技术方案带来的有益效果是:
在本申请实施例中,可以根据待处理图的图数据格式和相关信息,确定出一个线程所处理的像素点的第一数量,此时单个线程中可计算多个像素点,相比于现有技术中一个线程中计算一个像素点,可以有效的提升了数据处理效率。进一步的,由于第一数量是根据设备资源信息和相关信息计算出的资源利用率而确定的,即在确定第一数量时考虑到了设备的资源利用情况,相应的,在根据第一数量和相关信息,确定用于处理至少一张待处理图的线程的第二数量时,可以充分发挥电子设备的硬件计算资源,降低硬件成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种待处理图的示意图;
图2为本申请实施例提供的一种图数据的处理方法的流程示意图;
图3为本申请实施例提供的一种线程读取像素数据的原理示意图;
图4为本申请实施例提供的另一种图数据的处理方法的流程示意图;
图5a为本申请实施例提供的一种待处理图的示意图;
图5b为本申请实施例提供的一种基于原像素点的像素数据进行插值计算的原理示意图;
图5c为本申请实施例提供的另一种基于原像素点的像素数据进行插值计算的原理示意图;
图6为本申请实施例提供的几种不同的图数据处理方式所对应的耗时示意图;
图7为本申请实施例提供的一种图数据的处理装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本申请是针对现有图数据放大处理方式中所存在的处理效率低、资源利用率低的问题,而提出的一种图数据的处理方法,其中,本申请实施例中的待处理图可以是图像,也可以是特征图。基于本申请实施例所提供的方案,可以有效提高图数据的插值计算效率,将尺寸较小的待处理图通过插值计算得到尺寸较大的目标图。本申请实施例所提供的该方法适用于任何需要进行图数据方法处理的应用场景中。
双线性插值算法是常用的实现图数据放大的处理方式,目前常规的GPU(graphicsprocessing unit,图形处理器)实现的双线性插值放大算法如Tensorflow(一种端到端开源机器学习平台)、Pytorch(一种机器学习库,用于自然语言处理等应用程序)和TensorRT(一种高性能深度学习支持引擎)等方案,虽然现有的这些方案能够基本上满足图数据方法的处理需求,但是本申请发明人发现现有的图数据放大处理方式中至少还存在以下技术问题:
(1)部分输入像素(也就是待放大的原图的像素点的像素数据)在不同的线程被重复访问:现有技术中,每个线程计算一个插值像素点,在进行插值计算时,由于有些不同的插值像素点所需要用到的输入像素会存在部分甚至全部相同的情况,这就会导致这些部分甚至全部相同的输入像素会被不同的线程重复访问,且随着图数据需要放大的倍数的增加,数据访问量就会大大增加。虽然GPU具有强大的并行计算能力,但是计算量的增大,会导致整体线程分配过多,超过硬件资源的极限,部分线程必须等待活跃线程结束任务时才能使用硬件资源计算,这样导致该部分线程与活跃线程之间也是串行执行的。
如1图所示,图1为一个放大后的特征图的一部分,其中,x轴表示特征图的宽度方向,y轴表示特征图的高度方向,图中每一个方块为插值计算像素(也就是插值像素点,通过插值计算得到的像素点),F(xi,yj)(i,j=1,2)为输入像素点(图中白色方块所示,也就是放大前的特征图中的像素点)。采用现有技术,每个线程计算一个插值像素点,这样总共25个像素点会分配到25个线程中,而这25个像素点的像素数据都是根据图中所示的4个像素点的像素数据计算得到的,这4个像素点会被25个线程重复访问,F(xi,yj)整体数据访问量为25次。如果图片宽度和长度都增加n倍,那么数据访问量理论上也就为n*n次,随着n越大,GPU会出现整体线程分配过多,超过硬件资源极限的问题。
(2)现有方案的适用场景受限,不能在不同的硬件或图片放大的场景中发挥极致性能,比如,TensorRT采用的是TLP(Thread-Level Parallelism,线程级并行)方法,在需要放大的倍数较大时,会存在计算资源不足的问题,Pytorch采用的是ILP(Instruction-Level Parallelism,指令层并行)并行方法,存在GPU计算资源利用率的问题,处理效率较低,不能够满足时效要求较高的应用场景。
为了解决现有技术中所存在的问题中的至少一项,本申请实施例提供的图数据的处理方法,在考虑了电子设备的资源利用率的基础上,能够采用单个线程中计算多个像素点,有效的提升了数据处理效率。该方法可以由任一电子设备执行,该电子设备可以是服务器或终端设备。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此,本申请在此不做限制。
可选的,该电子设备可以为云设备,本申请实施例中涉及的数据处理/计算可以基于云技术实现。比如,在根据线程所对应的原像素点的像素数据进行像素插值计算,得到与所述原像素点相对应的目标图中的各目标像素点的像素数据的步骤,可以采用云计算实现。
其中,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
可选的,本申请实施例中所提供的方法还涉及到人工智能中的计算机视觉领域,本申请实施例提供的方案适用于人工智能领域中的特征图的放大处理(即上采样)。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建、自动驾驶、智慧交通等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2示出了本申请实施例中所提供的一种图数据的处理方法的流程示意图,该方法包括:
步骤S201,获取至少一张待处理图和至少一张待处理图的相关信息,相关信息包括图数据格式和图信息,图信息包括图数量、待处理图的通道数和图尺寸信息,图尺寸信息包括待处理图的宽和高、以及待处理图对应的目标图的宽和高。
其中,待处理图指的是需要变化尺寸信息的图数据,该待处理图可以为特征图或图片(图像)等,本申请实施例对待处理图的类型不进行限定。相关信息指的是待处理图的相关信息,可以包括待处理图的图数据格式如待处理图的图数据格式具体为NCHW格式还是NHWC格式和图信息,图信息具体可以包括待处理图的数量(即图数量)、待处理图的通道数和图尺寸信息,该图尺寸信息可以包括待处理图的宽和高,待处理图对应的目标图的宽和高。其中,目标图的宽和高指的是对待处理图进行放大处理后,所得到的处理后的图所对应的宽和高,也就是最终要得到的目标图的尺寸,而当待处理图为图像时,通道数可以指的是图像的颜色通道数量,如当待处理图为RGB(Red、Green、Blue,红色、绿色、蓝色)图像时,该待处理图的通道数为3。可选的,当待处理图为特征图时,通道数可以指的是特征提取模块输出的特征图的通道数量。
步骤S202,获取第一数量的多个候选值和电子设备的设备资源信息,第一数量为电子设备的一个线程处理的像素点的数量。
步骤S203,根据设备资源信息和相关信息确定各候选值对应的资源利用率,并根据各候选值对应的资源利用率,从各候选值中确定出第一数量。
其中,线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。本申请实施例中,设备资源信息指的是电子设备中可以用于处理待处理图的资源的信息。可选的,所获取的设备资源信息可以是GPU中SM的数量。多个候选值用于确定第一数量,第一数量指的是用于处理至少一张待处理图的一个线程所处理的像素点的数量,对于多个候选值的获取方式本申请实施例不做限定,比如,各候选值可以是经验值或实验值。对于每个候选值,可以根据获取到的设备资源信息和相关信息,确定每个候选值对应的资源利用率,每个候选值对应的资源利用率指的是在选取该候选值作为第一数量时,对于电子设备中资源的利用程度。相应的,在得到各候选值对应的资源利用率后,可以根据各候选值对应的资源利用率,从各候选值中确定出第一数量。
步骤S204,根据第一数量和相关信息,确定用于处理至少一张待处理图所需的线程的第二数量,并启动第二数量的线程;
在本申请实施例中,可以根据所获取到的相关信息知晓处理该至少一张待处理图时像素点的总数量,并且在已知一个线程所处理的像素点的数量时,可以根据知晓的总数量得出在处理该至少一张待处理图时所需线程的总数量(即第二数量),然后可以启动第二数量的线程处理该至少一张待处理图。
步骤S205,对于每个线程,通过线程获取至少一张待处理图中线程对应的原像素点的像素数据,并根据原像素点的像素数据进行插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据,各目标像素点的数量为第一数量。
在启动线程后,每个线程可以存在相对应的原像素点,此时对于每个线程,该线程可以获取自身所对应的原像素点的像素数据,然后根据原像素点的像素数据进行像素插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据,当所有线程完成后,即可基于每个线程所得到的像素数据的插值结果得到目标图。
其中,原像素点指的至少一张待处理图中的像素点,也就是在进行插值计算时的输入像素点。可以理解的是,对于图像而言,像素点的像素数据指的是像素点的像素值,对于特征图而言,像素点也就是特征图中的特征点,像素点的像素数据也就是特征图中特征点的特征值。
对于任一原像素点,原像素点的像素数据指的是待处理图中该像素点所对应的像素值。例如,当待处理图是RGB图像时,该图像的通道数为3,3个通道中一个原像素点的像素数据指的该通道中这个像素点的像素值,当待处理图是特征图时,一个通道的特征图中一个像素点的像素数据指的是该通道的特征图中该像素点的像素值(即特征值)。
在本申请实施例中,可以根据待处理图的图数据格式和相关信息,确定出一个线程所处理的像素点的第一数量,此时单个线程中可计算多个像素点,相比于现有技术中一个线程中计算一个像素点,可以有效的提升了数据处理效率。进一步的,由于第一数量是根据设备资源信息和相关信息计算出的资源利用率而确定的,即在确定第一数量时考虑到了设备的资源利用情况,相应的,在根据第一数量和相关信息,确定用于处理至少一张待处理图的线程的第二数量时,可以充分发挥电子设备的硬件计算资源,降低硬件成本。
在本申请可选的实施例中,图数据格式为NCHW格式或NHWC格式;
获取第一数量的多个候选值,包括:
若图数据格式为NCHW格式,确定目标图的高和待处理图的高的第一比值,并将取值不大于第一比值的各整数值作为多个候选值;
若图数据格式为NHWC格式,确定目标图的高和待处理图的高的第二比值,以及目标图的宽和待处理图的宽的第三比值;将取值不大于第二比值和第三比值的乘积、且取值为第三比值的倍数的各整数值作为多个候选值。
本申请实施例中,待处理图的图数据格式可以为NCHW格式或NHWC格式,由于不同的图数据格式的待处理图的像素点的像素数据的存储方式是不同的,比如,NCHW格式的至少一种待处理图,其每个通道内的像素点的像素数据是紧挨在一起,而NHWC格式的至少一种待处理图,其每个通道内的像素点的像素数据是间隔挨在一起,考虑于此,在确定上述第一数量时,对于不同的图数据格式,第一数量的各候选值的确定方式是不同的,以在提高设备资源率的同时,提高数据处理效率。
其中,若图数据格式为NCHW格式,可以确定目标图的高和待处理图的高的第一比值,并将取值不大于第一比值的各整数值作为多个候选值
在一示例中,假设设备资源信息是GPU中SM的数量(采用sm_num表示),待处理图的高为in_height、目标图的高为out_height、目标图的宽为out_width,通道数为channel_num,此时第一比值ah=out_height/in_height,此时各候选值k可以为不大于ah的各整数值,如k=1,……,ah,且为整数。
当图数据格式为NHWC格式时,则可以确定目标图的高和待处理图的高的第二比值、以及确定目标图的宽和待处理图的宽的第三比值,并将取值不大于第二比值和第三比值的乘积、且取值为第三比值的倍数的各整数值作为多个候选值。
在一示例中,假设设备资源信息是GPU中SM的数量(采用sm_num表示),待处理图的高为in_height、待处理图的宽为in_width、目标图的高为out_height、目标图的宽为out_width,通道数为channel_num,此时第二比值ah=out_height/in_height,第三比值aw=out_width/in_width,第二比值和第三比值的乘积为ah*aw,此时各候选值k可以为aw的倍数的各整数,如k=aw,…,i*aw,…,ah*aw,i的取值范围为1~ah内的整数。
在本申请可选的实施例中,图数据格式为NCHW格式或NHWC格式;
根据设备资源信息和相关信息,确定各候选值对应的设备资源利用率,包括:
根据设备资源信息,确定电子设备可启动的线程数;
若图数据格式为NCHW格式,对于每个候选值,可以根据待处理图的高、图数量、目标图的宽和通道数,确定候选值对应的候选线程数,根据候选线程数和可启动的线程数,确定候选值对应的设备资源率,其中,候选线程数是指若第一数量为候选值,处理至少一张待处理图所需的线程数量;
若图数据格式为NHWC格式,对于每个候选值,根据待处理图的高和宽、图数量以及通道数,确定候选值对应的候选线程数,根据候选线程数和可启动的线程数,确定候选值对应的设备资源利用率。
可选的,电子设备可启动的线程数,可以理解为该电子设备可以用来处理至少一种待处理图的线程的最大数量,也就是电子设备可启动的线程数量。由前文描述可知,由于不同的图数据格式的待处理图的像素点的像素数据的存储及读取方式是不同的,因此,在确定每个候选值对应的设备资源利用率,候选值对应的候选线程数的确定方式是不同的。
可选的,当待处理图的图数据格式为NCHW格式时,对于每个候选值,可以根据待处理图的高、待处理图的数量(即图数量)、目标图的宽和通道数,确定出在采用该候选值作为第一数量时处理至少一张待处理图所需的线程数量(即候选线程数),然后根据候选线程数和确定的可启动的线程数,确定出该候选值对应的设备资源率。
可选的,若待处理图的图数据格式为NHWC格式,对于每个候选值,则可以根据待处理图的高和宽、待处理图的数量(即图数量)以及通道数,确定出在采用该候选值作为第一数量时的候选线程数,然后根据该候选线程数和确定的可启动的线程数,确定出该候选值对应的设备资源率。
在本申请可选的实施例中,对于每个候选值,根据候选线程数和可启动的线程数,确定候选值对应的设备资源利用率,包括:
确定候选值对应的候选线程数和可启动的线程数的差值的绝对值,并将绝对值作为候选值对应的设备资源利用率;
根据各候选值对应的设备资源利用率,从各候选值中确定出第一数量,包括:
将各候选值对应的绝对值中最小绝对值对应的候选值,确定为第一数量。
可选的,在知晓采用每个候选值作为第一数量时的候选线程数量以及可启动的线程数时,此时对于每个候选值,可以确定该候选值对应的候选线程数和可启动的线程数的差值的绝对值,并将该绝对值作为该候选值对应的设备资源利用率。其中,当绝对值越小时,说明采用该候选值作为第一数量时所需要启动的线程数量越接近于电子设备可启动的线程数,此时对于电子设备的资源的利用程度越高。可选的,为了最大程度上利用电子设备的资源,此时可以将各候选值对应的绝对值中绝对值最小的候选值确定为第一数量。
在本申请可选的实施例中,设备资源信息为电子设备中SM的数量;
若图数据格式为NCHW格式,对于任一候选值k,通过以下表达式确定每个候选值对应的设备资源利用率:
cost=|out_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,cost为设备资源利用率,out_width为目标图的宽,in_height为待处理图的高,channel_num为通道数,SM_NUM为SM的数量,r为预设值,batch_num为图数量,out_width*in_height*batch_num*channel_num*k为候选值k对应的候选线程数,512*sm_num*r为可启动的线程数;
在一示例中,若图数据格式为NCHW格式,假设设备资源信息是GPU中的SM数量(即sm_num),r预设为2,待处理图的高为in_height、目标图的高为out_height、目标图的宽为out_width,通道数为channel_num,待处理图的数量为batch_num,此时可以确定第一比值ah=out_height/in_height,各候选值k为不大于ah的各整数值,如k=1,……,ah,且为整数。进一步的,可以将待处理图的高、目标图的宽、通道数、设备资源信息、待处理图的数量以及每个k值分别代入上述公式,此时可以得到每个候选值对应的候选线程数和可启动的线程数,进一步的,对于每个候选值,进一步可以确定该候选值对应的候选线程数和可启动的线程数的差值的绝对值,然后将各候选值对应的绝对值中绝对值最小的候选值确定为第一数量。
若图数据格式为NHWC格式,对于任一候选值k,通过以下表达式确定每个候选值对应的设备资源利用率:
cost=|in_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,cost为设备资源利用率,in_width为待处理图的宽,in_height为待处理图的高,channel_num为通道数,sm_num为SM的数量,r为预设值,k为候选值,batch_num为待处理图的数量,in_width*in_height*channel_num*k为候选值对应的候选线程数,512*sm_num*r为可启动的线程数。
在一示例中,若图数据格式为NCHW格式,假设设备资源信息是GPU中的SM数量(即sm_num),待处理图的高为in_height、待处理图的宽为in_width、目标图的高为out_height、目标图的宽为out_width,通道数为channel_num,此时可以确定第一比值ah=out_height/in_height,第二比值aw=out_width/in_width,第一比值和第二比值的乘积为ah*aw,此时各候选值k可以为不大于ah*aw的各整数值,如k=aw,…,i*aw,…,ah*aw,i的取值范围为1~ah内的整数。进一步的,可以将待处理图的高、待处理图的宽、通道数、设备资源信息以及每个k值分别代入上述公式,此时可以得到每个候选值对应的候选线程数和可启动的线程数,进一步的,对于每个候选值,可以确定该候选值对应的候选线程数和可启动供的线程数的差值的绝对值,然后将各候选值对应的绝对值中绝对值最小的候选值确定为第一数量。|
可选,在实际应用中,若待处理图的数量为一张,此时在确定每个候选值对应的设备资源利用率时,batch_num则取值为1。
在本申请可选的实施例中,对于每个线程,根据原像素点的像素数据进行插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据,包括:
若图数据格式为NCHW格式,根据原像素点的像素数据,在高度维度上进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度上的各目标像素点的像素数据;
若图数据格式为NH WC格式,对于每个线程,根据原像素点的像素数据,在高度维度和宽度维度上进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度和宽度维度上的各目标像素点的像素数据。
可选的,当待处理图的图数据格式为NCHW格式时,对于每个线程,在获取到至少一张待处理图中该线程所对应的原像素点的像素数据后,可以根据原像素点的像素数据,在高度维度上进行像素的双线性插值计算,得到目标图中在高度维度上与原像素点相对应的各目标像素点的像素数据。
在一示例中,假设一个线程所处理的像素点的第一数量为4,此时对于每个线程,可以基于该线程所对应的原像素点的像素数据在高度维度上一次双线性插值得到4个像素点,此时在高度维度由原来的一个像素点变为4个像素点,即从1*1(1个像素点*1个像素点)变为1*4(1个像素点*4个像素点),所得到的目标图在高度维度上对应于原像素点的目标像素点为4。
可选的,当待处理图的图数据格式为NHWC格式时,对于每个线程,在获取到至少一张待处理图中该线程所对应的原像素点的像素数据后,可以同时在待处理图的高度维度和宽度维度上,根据原像素点的像素数据进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度和宽度维度上的各像素点的像素数据。
其中,当待处理图的图数据格式为NHWC格式时,根据原像素点的像素数据,在高度维度和宽度维度上进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度和宽度维度上的各目标像素点的像素数据时,第一数量的各目标像素点的像素数据指的是第一数量的宽度维度的各目标像素点以及第一数量的高度维度的目标像素点。
在一示例中,假设一个线程所处理的像素点的第一数量为4,此时对于每个线程,可以基于该线程所对应的原像素点的像素数据分别在高度维度上和宽度维度进行像素的双线性插值计算得到4个像素点,此时不仅在高度维度由原来的一个像素点变为4个像素点,在宽度维度也由原来的一个像素点变为4个像素点,即从1*1(1个像素点*1个像素点)变为了4*4(4个像素点*4个像素点),所得到的目标图在高度维度上和宽度维度上对应于原像素点的目标像素点均为4。
在本申请可选的实施例中,从各候选值中确定出第一数量之前,还包括:
确定至少一张待处理图满足以下至少一项:
目标图的高和待处理图的高的比值大于或等于第一设定值;
目标图的宽和待处理图的宽的比值大于或等于第二设定值;
至少一张待处理图所对应的像素点的总数量大于或等于电子设备可启动的线程数。
可选的,在确定用于处理至少一张待处理图的一个线程所处理的像素点的第一数量之前,还可以确定至少一张待处理图是否满足设定条件,当满足设定条件时,说明处理该至少一张待处理图的数据计算量较大,此时可以基于本申请实施例中所提供的图数据处理方法对该少一张待处理图进行处理,从而减少数据计算量,提升数据处理效率。当不满足时设定条件,此时可以采用其它的处理方式对待处理图进行处理,如可以采用Tensorflow或者Pytorch方式进行处理。
可以理解的是,在实际应用中,上述该方案是可选的实施方式,可以是在确定至少一张待处理图满足设定条件时,采用本申请实施例中所提供的图数据处理方法对该少一张待处理图进行处理,或者在确定至少一张待处理图不满足设定条件时,采用本申请实施例中所提供的图数据处理方法对该少一张待处理图进行处理,也可以是在不做上述确定至少一张待处理图是否满足设定条件的判断,即无论满不满足,都可以采用本申请实施例所提供的方式进行待处理图的处理。
可选的,该设定条件可以包括目标图的高和待处理图的高的比值大于等于第一设定值、目标图的宽和目标图的宽的比值大于或等于第二设定值以及至少一张待处理图所对应的像素点的总数量大于或等于电子设备可启动的线程数中的至少一项。
其中,当目标图的高和待处理图的高的比值大于等于第一设定值时,说明目标图像相比于待处理图在高度上放大的较多,而目标图的宽和目标图的宽的比值大于或等于第二设定值,则说明目标图像相比于待处理图在宽度上放大的较多,此时都会伴随随着较大的数据计算量。而对于一个电子设备,其所对应的数据计算量(即可启动的线程数)是固定的,具体可以基于该电子设备的设备资源信息来确定,如可以基于电子设备内包括的SM数量来确定该电子设备所对应的数据计算量。
可选的,在实际应用中,在确定至少一张待处理图是否满足设定条件时,也可以为确定至少一张待处理图必须满足上述三项中的某一项、满足除该某一项之外的其它中的一项即可,如当至少一张待处理图所对应的像素点的总数量大于或等于电子设备可启动的线程数,且满足目标图的高和待处理图的高的比值大于或等于第一设定值或目标图的宽和待处理图的宽的比值大于或等于第二设定值中的任一项时,即可视为至少一张待处理图满足设定条件。
例如,采用ah表示目标图的高和待处理图的高的比值,采用aw表示目标图的宽和待处理图的宽,out_size表示至少一张待处理图所对应的像素点的总数量,512*sm_num*r表示电子设备可启动的线程数,第一设定值和第二设定值为2,此时只有当至少一张待处理图所对应的像素点的总数量大于或等于512*sm_num*r,且满足ah大于或等于2或aw大于或等于2中的任一项时(即满足(aw>=2||ah>=2)&&(out_size>512*sm_num*r)),才可视为至少一张待处理图满足设定条件。
在本申请可选的实施例中,对于每个线程,通过线程获取至少一张待处理图中线程所对应的原像素点的像素数据,包括:
对于第二数量的线程中的任意两个线程,若两个线程所对应的原像素点的像素数据中存在相同的原像素点的像素数据,则获取两个线程中的一个线程对应的原像素点的像素数据,将获取到的原像素点的像素数据中相同的原像素点的像素数据传输给两个线程中的另一线程,并获取另一线程所对应的其他原像素点的像素数据;
其中,其他原像素点的像素数据为另一线程对应的原像素点的像素数据中除相同的原像素点的像素数据之外的原像素点的像素数据。
在实际应用中,每个线程所对应的原像素点的像素数据需要从电子设备的内存中读取,若每个线程所对应的原像素点的像素数据均从电子设备的内存中读取,将会存在较大是数据读取量,影响数据处理效率,为了进一步提高数据处理效率,在本申请实施例中,对于第二数量的线程中的任意两个线程,若该两个线程所对应的原像素点的像素数据中存在相同的原像素点的像素数据,此时可以将相同的原像素点的像素数据由该两个线程中的一个线程传输至相邻线程中的另一线程,此时对于另一线程来说,对于该相同的原像素点的像素数据便不需要再从电子设备的内存中读取,仅需读取对应的原像素点的像素数据中除相同的原像素点的像素数据之外的原像素点的像素数据即可,从而降低了数据读取量。
在一示例中,假设如图3所示一共存在5个线程,分别为线程ID0~ID5(线程的标识),ID0所对应的原像素点的像素数据为x0和x0,ID1所对应的原像素点的像素数据为x0和x1,ID2所对应的原像素点的像素数据为x1和x2,ID3所对应的原像素点的像素数据为x2和x3,ID4所对应的原像素点的像素数据为x3和x4,ID5所对应的原像素点的像素数据为x4和x5,此时ID0可以从电子设备的内存中读取x0,并采用shuffle指令将x0传输至ID1中(如图中x0至x1的箭头所示),ID1此时仅从电子设备的内存中读取x1即可。同理,ID1采用shuffle指令将x1传输至ID2中(如图中x1至x2的箭头所示),ID2此时仅从电子设备的内存中读取x2即可,ID2采用shuffle指令将x2传输至ID3中(如图中x2至x3的箭头所示),ID3此时仅从电子设备的内存中读取x3即可,ID3采用shuffle指令将x3传输至ID4中(如图中x3至x4的箭头所示),ID4此时仅从电子设备的内存中读取x4即可,ID4采用shuffle指令将x4传输至ID5中(如图中x4至x5的箭头所示),ID5此时仅从电子设备的内存中读取x5即可。
可选的,本申请实施例中所提供的该方法可以应用于大尺度图片或者特征图的双线性插值放大算法等场景中。例如,在文字识别的检测模型输入数据之前需要将图片放大到一定尺寸(如960x960(960像素x960像素)或480x480(480像素x480像素)等)的大分辨率,此时可以基于本申请实施例所提供的方法将图片放大到一定尺寸,又或者在一些目标检测算法中,为了提升模型对不同尺寸大小物体的检测能力,需要利用双线性插值算法做上采样处理生成多尺度特征图,此时也可以基于本申请实施例所提供的方法做上采样处理生成多尺度特征图。
可选的,如图4所示,为了更好的理解本申请实施例中所提供的该方法,下面结合具体的实施例对该方法进行详细说明。
步骤S401,获取电子设备的设备资源信息。
具体的,可以获取电子设备的GPU型号,根据获取到的GPU型号确定对应的SM数量。
步骤S402,获取至少一张待处理图和至少一张待处理图的相关信息。
可选的,相关信息包括图数据格式和图信息,图信息包括图数量、待处理图的通道数和图尺寸信息,图尺寸信息包括待处理图的宽和高、以及待处理图对应的目标图的宽和高。
步骤S403,确定获取的至少一张待处理图是否符合大图计算场景,若是,则执行步骤S404,否则执行步骤S407。
其中,至少一张待处理图符合大图计算场景可以指的是至少一张待处理图满足目标图的高和待处理图的高的比值大于第一设定值、目标图的宽和目标图的宽的比值大于或等于第二设定值、以及至少一张待处理图所对应的像素点的总数量大于或等于电子设备可启动的线程数中至少一项。
步骤S404,获取第一数量的多个候选值和电子设备的设备资源信息,并根据设备资源信息和相关信息,从各候选值中确定出第一数量。
可选的,可以根据设备资源信息,确定电子设备可启动的线程数,并且在至少一张待处理图的图数据格式为NCHW格式时,此时可以确定目标图的高和待处理图的高的第一比值,将取值不大于第一比值的各整数值作为候选值,对于每个候选值,然后可以根据待处理图的高、图数量、目标图的宽和通道数,确定候选值对应的候选线程数,并根据该候选值对应的候选线程数和可启动的线程数的差值的绝对值,将各候选值对应的绝对值中绝对值最小的候选值确定为第一数量。
在至少一张待处理图的图数据格式为NHWC格式时,则可以确定目标图的高和待处理图的高的第二比值和目标图的宽和待处理图的宽的第三比值,将取值不大于第二比值和第三比值的乘积、且取值为第三比值的倍数的各整数值作为多个候选值,对于每个候选值,根据待处理图的高和宽、图数量以及通道数,确定该候选值对应的候选线程数,然后确定该候选线程数和可启动的线程数的差值的绝对值;并将各候选值对应的绝对值中绝对值最小的候选值确定为第一数量。
步骤S405,根据第一数量和相关信息,确定用于处理至少一张待处理图的线程的第二数量,并启动第二数量的线程。
步骤S406,对于每个线程,通过该线程获取至少一张待处理图中线程对应的原像素点的像素数据,并根据原像素点的像素数据进行像素插值计算,得到与原像素点相对应的目标图中的各像素点的像素数据。
具体的,假设待处理图的数量为1,即batch_num=1,待处理图时如图5a中所示的图像,该图像的宽和高分别为3(即大小为3像素*3像素),图5a中的数字0-8分别表示该图像中9个像素点的标识,该图像中一个通道中的各原像素点的像素数据即为该通道中这9个像素点的像素值。对于不同的图数据格式的待处理图,可以通过本申请实施例提供的方法,根据原像素点的像素数据进行双线性插值计算,得到与原像素点相对应的目标图中的各像素点的像素数据的方式也是不同的。下面对图数据格式分别为NCHW格式或NHWC格式时,通过线程根据原像素点的像素数据进行像素插值计算,得到与原像素点相对应的目标图中的各像素点的像素数据的方式分别进行说明。
(1)对于图数据格式为NCHW时:
对于一个线程(记为线程1),假设该线程所对应的原像素点为像素点0、像素点1、像素点3和像素点4,则可以将该4个像素点的像素数据读取到该线程中,此时该线程可以基于4个像素点的像素数据在H维度(即高度维度)进行像素插值计算,基于该线程得到的目标图中的各目标像素点如图5b中线程1的虚线框内所示,其中所得到的目标像素点的数量为3(即k=3)。同理,对于下一个线程(即线程2)由于该线程2相邻的4个原像素点仍为像素点0、像素点1、像素点3和像素点4,可以获取像素点0、像素点1、像素点3和像素点4的像素数据,线程2可以基于4个像素点的像素数据在H维度(即高度维度)进行像素插值计算,此时基于该线程得到的目标图中的各目标像素点的像素数据如图5b中线程2的虚线框所示。基于同样的道理,直至所有线程计算完成,便可得到目标图(具体如图5b整体所示)。
可选的,在实际应用中,在对图数据格式为NCHW的至少一张待处理图(该至少一张处理图可分为多批数据)进行处理时,对于一个线程,假设该线程的ID的索引为global_index,可以通过下述各表达式确定该线程所对应的原像素点的相关信息:
h_scale=in_height/out_height
w_scale=in_width/out_width
batch_id=global_index/(out_width*in_height*channel_num*k)
per_batch_index=global_index%(out_width*in_height*channel_num*k);
channel_id=per_batch_index/(out_width*in_height*k)
per_channel_index=per_batch_index%(out_width*in_height*k)
h_id=per_channel_index/out_width
w_id=per_channel_index%out_width
start_id=floor(h_id/h_scale)
end_id=floor((h_id+1)/h_scale)
其中,in_height表示待处理图的高,out_height表示目标图的高,in_width表示待处理图的宽,out_width表示目标图的宽,k表示该线程所处理的像素点的数量即第一数量,channel_num表示待处理图的通道数,out_width*in_height*channel_num*k表示第二数量的线程中一张待处理图所需的线程数量,batch_id表示线程索引为global_index的线程所属的批数据的标识,即该线程所需要处理的原像素点的像素数据(以下简称为输入数据)是哪批数据中的图的像素数据,per_batch_index则表示该线程对应的输入数据所属的待处理图的索引,即该线程对应的待处理图是标识为batch_id的批量数据中的哪个图,channel_id表示该线程对应的输入数据所属的通道的标识,即该输入数据是标识为per_batch_index的图的哪个通道的像素数据,per_channel_index则表示该线程对应的输入数据在对应通道的图中的索引,start_id表示该线程对应的各目标像素点的起始像素点的标识,end_id表示该线程对应的各目标像素点的最后一个像素点的标识。
进一步的,基于上述各相关信息,可以根据双线性插值算法的原理,得到该线程进行插值计算所需要的各原像素点的坐标信息,假设该线程所对应的4个原像素点的坐标分别为(h1,w1)、(h1,w1+w1p)、(h1+h1p,w1)和(h1+h1p,w1+w1p);
进一步的,可以将4个像素点的像素数据读取到寄存器X0,X1,X2,X3,根据各原像素点的坐标计算得到各插值权重,其中,包括宽度维度的权重w0lambda和w1lambda、以及高度维度的权重h0lambda和h1lambda,并基于各原像素点的像素数据和各插值权重可以计算得到各目标像素点的像素数据(即插值结果),可选的,计算各插值权重和插值结果的示例代码可以如下:
X0=X[idx(batch_id,channel_id,in_height,in_width,h1,w1)];
X1=X[idx(batch_id,channel_id,in_height,in_width,h1,w1+w1p)];
X2=X[idx(batch_id,channel_id,in_height,in_width,h1+h1p,w1)];
X3=X[idx(batch_id,channel_id,in_height,in_width,h1+h1p,w1+w1p)];
for int i=start_id;i<end_id;i++:
h1,h1p,h0lambda,h1lambda=bilinear_calcute(i,h_scale);
Y(batch_id,channel_id,i,w_id,scale)=h0lambda*(w0lambda*X0+w1lambda*X1)+h1lambda*(w0lambda*X2+w1lambda*X3)
End
(2)对于图数据格式为NHWC时:
对于一个线程(即线程1),假设该线程所对应的原像素点为像素点0、像素点1、像素点3和像素点4,则可以将该4个像素点的像素数据读取到该线程中,此时该线程可以基于4个像素点的像素数据在H维度(即高度维度)和W维度(即宽度维度)进行像素插值计算,此时基于该线程得到的目标图中的各目标像素点如图5c中线程1的虚线框内所示,其中每个维度对应的目标像素点为9,则最终得到的目标像素点的数量为3*3=9(即k=9)。同理,对于下一个线程(即线程2),可以获取相邻的像素点1、像素点2、像素点4和像素点5的像素数据,线程2可以基于该4个像素点的像素数据在H维度和W维度进行像素插值计算,此时基于该线程得到的目标图中的各目标像素点的像素数据如图5c中线程2的虚线框所示。基于同样的道理直至所有线程计算完成,便可得到目标图(具体如图5c整体所示)。
可选的,在实际应用中,在对图数据格式为NHWC的至少一张待处理图(该至少一张处理图可分为多批数据)进行处理时,对于一个线程,假设该线程的ID的索引为global_index,可以通过下述各表达式确定该线程所对应的原像素点的相关信息:
h_scale=in_height/out_height;
w_scale=in_width/out_width;
batch_id=global_index/(in_width*in_height*channel_num*k);
per_batch_index=global_index%(in_width*in_height*channel_num*k);
channel_id=per_batch_index/(in_width*in_height*k);
per_channel_index=per_batch_index%(i_width*in_height*k);
h_id=per_channel_index*ah/(in_width*k);
w_id=per_channel_index*ah%(in_width*k);
start_id_0=floor(h_id/h_scale);
end_id_0=floor((h_id+1)/h_scale);
start_id_1=floor(w_id/w_scale);
end_id_1=floor((w_id+1)/w_scale)
其中,in_width*in_height*channel_num*k表示第二数量的线程中一张待处理图所需的线程数量,start_id_0表示该线程在H维度上对应的各目标像素点的起始像素点的标识,end_id_0表示该线程在H维度上对应的各目标像素点的最后一个像素点的标识,start_id_1表示该线程在W维度上对应的各目标像素点的起始像素点的标识,end_id_1表示该线程在W维度上对应的各目标像素点的最后一个像素点的标识。
进一步的,基于上述各相关信息,可以根据双线性插值算法的原理,得到该线程进行插值计算所需要的各原像素点的坐标信息,假设该线程所对应的4个原像素点的坐标分别为(h1,w1)、(h1,w1+w1p)、(h1+h1p,w1)和(h1+h1p,w1+w1p);
进一步的,可以将4个像素点的像素数据读取到寄存器X0,X1,X2,X3,根据各原像素点的坐标计算得到各插值权重,其中,包括宽度维度的权重w0lambda和w1lambda、以及高度维度的权重h0lambda和h1lambda,并基于各原像素点的像素数据和各插值权重可以计算得到各目标像素点的像素数据(即插值结果),可选的,计算各插值权重和插值结果的示例代码可以如下:
X0=X[idx(batch_id,channel_id,i_height,i_width,h1,w1)];
X1=X[idx(batch_id,channel_id,i_height,i_width,h1,w1+w1p)];
X2=X[idx(batch_id,channel_id,i_height,i_width,h1+h1p,w1)];
X3=X[idx(batch_id,channel_id,i_height,i_width,h1+h1p,w1+w1p)];
for int j=start_id_0;j<end_id_0;i++:
w1,w1p,w0lambda,w1lambda=bilinear_calcute(w_id,w_scale);
for int i=start_id_1;i<end_id_1;i++:
h1,h1p,h0lambda,h1lambda=bilinear_calcute(i,h_scale);
Y(batch_id,channel_id,i,w_id,scale)=h0lambda*(w0lambda*X0+w1lambda*X1)+h1lambda*(w0lambda*X2+w1lambda*X3)
End
End
步骤S407,采用其它处理方法对待处理图进行处理。
在本示例中,对于NCHW格式的待处理图,是在H维度方向上一个线程插值多个像素数点,而在W维度方向上单线程计算单个像素;而对于NHWC格式的待处理图,可以在H维度方向和W维度方向上同时插值计算多像素数据。例如,在将3x3(3像素*3像素)的待处理图插值为9x9(9像素*9像素)的目标图时,对NCHW格式,由于在H维度计算多个像素点,W维度中计算一个像素点,此时单个线程插值可以生成1x3个像素点,此时仅需要27个线程,每个输入的像素数据读取3次即可;而对于NHWC格式的待处理图,由于可以在H和W维度计算多个像素点,单个线程可以插值生成3x3个像素点,此时总共需要9个线程,每个输入数据读取1次即可。可见,基于本申请实施例中所提供的方法,可以有效的减少数据计算量,提升计算速度,降低计算硬件成本。
可选的,在又一示例中,假设所获取到的待处理图的数量为32(batch_num=32),待处理图的通道为3(即channel=3),图尺寸信息为(in_height,in_width,out_height,out_width),分别基于TensorRT、pytorch以及本申请实施例所提供的方法对待处理图进行5次处理(分别为将240*240分辨率的待处理图上采样至960*960、480*480、1080*080、1024*1024、2080*2080)得到目标图,此时TensorRT、pytorch以及本申请实施例所提供的方法对待处理图像进行处理得到目标图所消耗的时长如图6所示(其中,图6中横坐标为不同的处理方式,纵坐标为得到目标图所消耗的时长,单位为毫秒(ms))。基于该图6可知,本申请实施例所提供的方法的时效性能最优,计算效率高于pytorch和TensorRT。
本申请实施例提供了一种图数据的处理装置,如图7所示,该图数据的处理装置70可以包括:图数据获取模块701、第一数量确定模块702、第二数量确定模块703以及像素插值计算模块704,其中,
图数据获取模块701,用于获取至少一张待处理图和至少一张待处理图的相关信息,相关信息包括图数据格式和图信息,图信息包括图数量、待处理图的通道数和图尺寸信息,图尺寸信息包括待处理图的宽和高、以及待处理图对应的目标图的宽和高;
第一数量确定模块702,用于获取第一数量的多个候选值和电子设备的设备资源信息,第一数量为电子设备的一个线程处理的像素点的数量;根据设备资源信息和相关信息,确定各候选值对应的设备资源利用率,并根据各候选值对应的设备资源利用率,从各候选值中确定出第一数量;
第二数量确定模块703,用于根据第一数量和相关信息,确定处理至少一张待处理图所需的线程的第二数量,并启动第二数量的线程;
像素插值计算模块704,用于对于每个线程,通过线程获取至少一张待处理图中线程对应的原像素点的像素数据,并根据原像素点的像素数据进行插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据,各目标像素点的数量为第一数量。
可选的,图数据格式为NCHW(batch_number,channel,height,width,批数量,通道,高度,宽度)格式或NHWC(batch,height,width,channel,批数量,高度,宽度,通道)格式;第一数量确定模块在获取第一数量的多个候选值时,具体用于:
若图数据格式为NCHW格式,确定目标图的高和待处理图的高的第一比值,将不大于第一比值的各整数值作为多个候选值;
若图数据格式为NHWC格式,确定目标图的高和待处理图的高的第二比值,以及目标图的宽和待处理图的宽的第三比值;并将取值不大于第二比值和第三比值的乘积、且取值为第三比值的倍数的各整数值作为多个候选值。
可选的,图数据格式为NCHW格式或NHWC格式;
第一数量确定模块在根据设备资源信息和相关信息,确定各候选值对应的设备资源利用率时,具体用于:
根据设备资源信息,确定电子设备可启动的线程数;
若图数据格式为NCHW格式,对于每个候选值,根据待处理图的高、图数量、目标图的宽和通道数,确定候选值对应的候选线程数,根据候选线程数和可启动的线程数,确定候选值对应的设备资源率,其中,候选线程数是指若第一数量为候选值,处理至少一张待处理图所需的线程数量;
若图数据格式为NHWC格式,对于每个候选值,根据待处理图的高和宽、图数量以及通道数,确定候选值对应的候选线程数,根据候选线程数和可启动的线程数,确定候选值对应的设备资源利用率。
可选的,第一数量确定模块在对于每个候选值,根据候选线程数和可启动的线程数,确定候选值对应的设备资源利用率时,具体用于:
确定候选值对应的候选线程数和可启动的线程数的差值的绝对值,并将绝对值作为候选值对应的设备资源利用率;
第一数量确定模块在根据各候选值对应的设备资源利用率,从各候选值中确定出第一数量时,具体用于:
将各候选值对应的绝对值中最小绝对值对应的候选值,确定为第一数量。
可选的,设备资源信息为电子设备中SM的数量;
若图数据格式为NCHW格式,对于任一候选值k,通过以下表达式确定候选值对应的设备资源利用率:
cost=|out_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,cost为设备资源利用率,out_width为目标图的宽,in_height为待处理图的高,channel_num为通道数,sm_num为SM的数量,r为预设值,batch_num为图数量,out_width*in_height*batch_num*channel_num*k为候选值k对应的候选线程数,512*sm_num*r为可启动的线程数;
若图数据格式为NHWC格式,对于任一候选值k,通过以下表达式确定候选值对应的设备资源利用率:
cost=|in_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,in_width为待处理图的宽,in_width*in_height*batch_num*channel_num*k为候选值k对应的候选线程数,512*sm_num*r为可启动的线程数。
可选的,对于每个线程,像素插值计算模块在根据原像素点的像素数据进行插值计算,得到与原像素点相对应的目标图中的各目标像素点的像素数据时,具体用于:
若图数据格式为NCHW格式,根据原像素点的像素数据,在高度维度上进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度上的各目标像素点的像素数据;
若图数据格式为NHWC格式,对于每个线程,根据原像素点的像素数据,在高度维度和宽度维度上进行像素的双线性插值计算,得到与原像素点相对应的目标图中在高度维度和宽度维度上的各目标像素点的像素数据。
可选的,该装置还包括信息确定模块,用于在从各候选值中确定出第一数量之前,确定至少一张待处理图满足以下至少一项:
确定至少一张待处理图满足以下至少一项:
目标图的高和待处理图的高的比值大于或等于第一设定值;
目标图的宽和待处理图的宽的比值大于或等于第二设定值;
至少一张待处理图所对应的像素点的总数量大于或等于电子设备可启动的线程数。
可选的,对于每个线程,像素插值计算模块在通过线程获取至少一张待处理图中线程所对应的原像素点的像素数据时,具体用于:
对于第二数量的线程中的任意两个线程,若两个线程所对应的原像素点的像素数据中存在相同的原像素点的像素数据,则获取两个线程中的一个线程对应的原像素点的像素数据,将获取到的原像素点的像素数据中相同的原像素点的像素数据传输给两个线程中的另一线程,并获取另一线程所对应的其他原像素点的像素数据;
其中,其他原像素点的像素数据为另一线程对应的原像素点的像素数据中除相同的原像素点的像素数据之外的原像素点的像素数据。
可选的,待处理图为图像或特征图。
本申请实施例的图数据的处理装置可执行本申请实施例提供的一种图数据的处理方法,其实现原理相类似,此处不再赘述。
在一些实施例中,本发明实施例提供的图数据的处理装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的图数据的处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的图数据的处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
本申请实施例提供了一种电子设备,如图8所示,图8所示的电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选地,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现图7所示的各模块的功能。
处理器2001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI总线或EISA总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM或可存储静态信息和计算机程序的其他类型的静态存储设备,RAM或者可存储信息和计算机程序的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储或以数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。
存储器2003用于存储执行本申请方案的应用程序的计算机程序,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序的计算机程序,以实现图7所示实施例提供的图数据的处理装置的动作。
本申请实施例提供了一种电子设备,包括处理器以及存储器:存储器被配置用于存储计算机程序,计算机程序在由所述处理器执行时,使得所述处理器上述实施例中的任一项方法。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机可以执行上述实施例中的任一项方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
本申请中的一种计算机可读存储介质所涉及的名词及实现原理具体可以参照本申请实施例中的一种图数据的处理方法,在此不再赘述。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (12)

1.一种图数据的处理方法,其特征在于,包括:
获取至少一张待处理图和所述至少一张待处理图的相关信息,所述相关信息包括图数据格式和图信息,所述图信息包括图数量、所述待处理图的通道数和图尺寸信息,所述图尺寸信息包括所述待处理图的宽和高、以及所述待处理图对应的目标图的宽和高;
获取第一数量的多个候选值和电子设备的设备资源信息,所述第一数量为所述电子设备的一个线程处理的像素点的数量;
根据所述设备资源信息和所述相关信息,确定各所述候选值对应的设备资源利用率,并根据各所述候选值对应的设备资源利用率,从各所述候选值中确定出所述第一数量;
根据所述第一数量和所述相关信息,确定处理所述至少一张待处理图所需的线程的第二数量,并启动所述第二数量的线程;
对于每个所述线程,通过所述线程获取所述至少一张待处理图中所述线程对应的原像素点的像素数据,并根据所述原像素点的像素数据进行插值计算,得到与所述原像素点相对应的目标图中的各目标像素点的像素数据,所述各目标像素点的数量为所述第一数量。
2.根据权利要求1所述的方法,其特征在于,所述图数据格式为批数量通道高度宽度NCHW格式或批数量高度宽度通道NHWC格式;
所述获取第一数量的多个候选值,包括:
若所述图数据格式为NCHW格式,确定所述目标图的高和所述待处理图的高的第一比值,将不大于所述第一比值的各整数值作为所述多个候选值;
若所述图数据格式为NHWC格式,确定所述目标图的高和所述待处理图的高的第二比值,以及所述目标图的宽和所述待处理图的宽的第三比值;并将取值不大于所述第二比值和所述第三比值的乘积、且取值为所述第三比值的倍数的各整数值作为所述多个候选值。
3.根据权利要求1所述的方法,其特征在于,所述图数据格式为NCHW格式或NHWC格式;
所述根据所述设备资源信息和所述相关信息,确定各所述候选值对应的设备资源利用率,包括:
根据所述设备资源信息,确定所述电子设备可启动的线程数;
若所述图数据格式为NCHW格式,对于每个所述候选值,根据所述待处理图的高、所述图数量、所述目标图的宽和所述通道数,确定所述候选值对应的候选线程数,根据所述候选线程数和所述可启动的线程数,确定所述候选值对应的设备资源率,其中,所述候选线程数是指若所述第一数量为所述候选值,处理所述至少一张待处理图所需的线程数量;
若所述图数据格式为NHWC格式,对于每个所述候选值,根据所述待处理图的高和宽、所述图数量以及所述通道数,确定所述候选值对应的候选线程数,根据所述候选线程数和所述可启动的线程数,确定所述候选值对应的设备资源利用率。
4.根据权利要求3所述的方法,其特征在于,对于每个所述候选值,所述根据所述候选线程数和所述可启动的线程数,确定所述候选值对应的设备资源利用率,包括:
确定所述候选值对应的候选线程数和所述可启动的线程数的差值的绝对值,并将所述绝对值作为所述候选值对应的设备资源利用率;
所述根据各所述候选值对应的设备资源利用率,从各所述候选值中确定出所述第一数量,包括:
将各所述候选值对应的所述绝对值中最小绝对值对应的候选值,确定为所述第一数量。
5.根据权利要求3所述的方法,其特征在于,所述设备资源信息为所述电子设备中流处理器SM的数量;
若所述图数据格式为NCHW格式,对于任一候选值k,通过以下表达式确定所述候选值对应的设备资源利用率:
cost=|out_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,cost为设备资源利用率,out_width为所述目标图的宽,in_height为所述待处理图的高,channel_num为所述通道数,sm_num为所述SM的数量,r为预设值,batch_num为所述图数量,out_width*in_height*batch_num*channel_num*k为候选值k对应的候选线程数,512*sm_num*r为所述可启动的线程数;
若所述图数据格式为NHWC格式,对于任一候选值k,通过以下表达式确定所述候选值对应的设备资源利用率:
cost=|in_width*in_height*batch_num*channel_num*k-512*sm_num*r|
其中,in_width为所述待处理图的宽,in_width*in_height*batch_num*channel_num*k为候选值k对应的候选线程数,512*sm_num*r为所述可启动的线程数。
6.根据权利要求2所述的方法,其特征在于,对于每个所述线程,所述根据所述原像素点的像素数据进行插值计算,得到与所述原像素点相对应的目标图中的各目标像素点的像素数据,包括:
若所述图数据格式为NCHW格式,根据所述原像素点的像素数据,在高度维度上进行像素的双线性插值计算,得到与所述原像素点相对应的目标图中在高度维度上的各目标像素点的像素数据;
若所述图数据格式为NHWC格式,对于每个所述线程,根据所述原像素点的像素数据,在高度维度和宽度维度上进行像素的双线性插值计算,得到与所述原像素点相对应的目标图中在高度维度和宽度维度上的各目标像素点的像素数据。
7.根据权利要求1所述的方法,其特征在于,所述对于每个所述线程,通过所述线程获取所述至少一张待处理图中所述线程所对应的原像素点的像素数据,包括:
对于所述第二数量的线程中的任意两个线程,若所述两个线程所对应的原像素点的像素数据中存在相同的原像素点的像素数据,则获取所述两个线程中的一个线程对应的原像素点的像素数据,将获取到的原像素点的像素数据中相同的原像素点的像素数据传输给所述两个线程中的另一线程,并获取所述另一线程所对应的其他原像素点的像素数据;
其中,所述其他原像素点的像素数据为所述另一线程对应的原像素点的像素数据中除所述相同的原像素点的像素数据之外的原像素点的像素数据。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述从各候选值中确定出所述第一数量之前,还包括:
确定所述至少一张待处理图满足以下至少一项:
所述目标图的高和所述待处理图的高的比值大于或等于第一设定值;
所述目标图的宽和所述待处理图的宽的比值大于或等于第二设定值;
所述至少一张待处理图所对应的像素点的总数量大于或等于所述电子设备可启动的线程数。
9.根据权利要求1所述的方法,其特征在于,所述待处理图为图像或特征图。
10.一种图数据的处理装置,其特征在于,所述装置包括:
图数据获取模块,用于获取至少一张待处理图和所述至少一张待处理图的相关信息,所述相关信息包括图数据格式和图信息,所述图信息包括图数量、所述待处理图的通道数和图尺寸信息,所述图尺寸信息包括所述待处理图的宽和高、以及所述待处理图对应的目标图的宽和高;
第一数量确定模块,用于获取第一数量的多个候选值和电子设备的设备资源信息,所述第一数量为所述电子设备的一个线程处理的像素点的数量;根据所述设备资源信息和所述相关信息,确定各所述候选值对应的设备资源利用率,并根据各所述候选值对应的设备资源利用率,从各所述候选值中确定出所述第一数量;
第二数量确定模块,用于根据所述第一数量和所述相关信息,确定处理所述至少一张待处理图所需的线程的第二数量,并启动所述第二数量的线程;
像素插值计算模块,用于对于每个所述线程,通过所述线程获取所述至少一张待处理图中所述线程对应的原像素点的像素数据,并根据所述原像素点的像素数据进行插值计算,得到与所述原像素点相对应的目标图中的各目标像素点的像素数据,所述各目标像素点的数量为所述第一数量。
11.一种电子设备,其特征在于,包括处理器以及存储器:
所述存储器被配置用于存储计算机程序,所述计算机程序在由所述处理器执行时,使得所述处理器执行权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机可以执行上述权利要求1-9中任一项所述的方法。
CN202110806968.3A 2021-07-16 2021-07-16 图数据的处理方法、装置、电子设备及存储介质 Pending CN115619631A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110806968.3A CN115619631A (zh) 2021-07-16 2021-07-16 图数据的处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110806968.3A CN115619631A (zh) 2021-07-16 2021-07-16 图数据的处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115619631A true CN115619631A (zh) 2023-01-17

Family

ID=84856148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110806968.3A Pending CN115619631A (zh) 2021-07-16 2021-07-16 图数据的处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115619631A (zh)

Similar Documents

Publication Publication Date Title
US10977530B2 (en) ThunderNet: a turbo unified network for real-time semantic segmentation
CN107895191B (zh) 一种信息处理方法及相关产品
TWI811291B (zh) 深度學習加速器及加快深度學習操作的方法
KR101639852B1 (ko) 그래픽 프로세싱을 위한 픽셀 값 압축
WO2019184657A1 (zh) 图像识别方法、装置、电子设备及存储介质
EP3855367A1 (en) Operation accelerator, processing method, and related device
CN109816769A (zh) 基于深度相机的场景地图生成方法、装置及设备
US8669979B2 (en) Multi-core processor supporting real-time 3D image rendering on an autostereoscopic display
CN113704531A (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
CN108322722B (zh) 基于增强现实的图像处理方法、装置及电子设备
EP3324367B1 (en) Identifying primitives in input index stream
US20210097647A1 (en) Information processing method and terminal device
US20220044104A1 (en) Method and apparatus for forward computation of neural network, and computer-readable storage medium
US20220036106A1 (en) Method and apparatus for data calculation in neural network model, and image processing method and apparatus
CN111161705A (zh) 语音转换方法及装置
CN112084023A (zh) 数据并行处理的方法、电子设备及计算机可读存储介质
CN110502975B (zh) 一种行人重识别的批量处理系统
CN115619631A (zh) 图数据的处理方法、装置、电子设备及存储介质
JP2004280157A (ja) 画像処理装置
CN115346099A (zh) 基于加速器芯片的图像卷积方法、芯片、设备及介质
US11636569B1 (en) Matrix transpose hardware acceleration
CN109493349B (zh) 一种图像特征处理模块、增强现实设备和角点检测方法
CN113592990A (zh) 针对二维图像的三维效果生成方法、装置、设备及介质
CN113867800A (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113840169A (zh) 一种视频处理方法、装置、计算设备和存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40080368

Country of ref document: HK