CN114119374A - 图像处理方法、装置、设备以及存储介质 - Google Patents

图像处理方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN114119374A
CN114119374A CN202111436883.7A CN202111436883A CN114119374A CN 114119374 A CN114119374 A CN 114119374A CN 202111436883 A CN202111436883 A CN 202111436883A CN 114119374 A CN114119374 A CN 114119374A
Authority
CN
China
Prior art keywords
image
processing
task corresponding
processing task
target image
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
CN202111436883.7A
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202111436883.7A priority Critical patent/CN114119374A/zh
Publication of CN114119374A publication Critical patent/CN114119374A/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/4038Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/32Indexing scheme for image data processing or generation, in general involving image mosaicing

Abstract

本公开提供了图像处理方法、装置、设备以及存储介质,涉及人工智能技术领域,具体为深度学习、计算机视觉技术领域,可用于OCR、文字识别等场景。具体实现方案为:获取依次采集得到的N帧图像,根据N帧图像,确定多个处理任务,多个处理任务包括:N帧图像各自对应的第一处理任务以及第二处理任务;第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i‑1帧图像对应的第二处理任务;通过M个线程对多个处理任务进行并行处理,得到N帧图像对应的处理结果图像;每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务。

Description

图像处理方法、装置、设备以及存储介质
技术领域
本公开涉及人工智能技术领域,具体为深度学习、计算机视觉技术领域,可用于OCR、文字识别等场景,尤其涉及一种图像处理方法、装置、设备以及存储介质。
背景技术
一些应用场景中,图像采集设备需要连续拍摄,得到多帧图像。进而,对采集到的多帧图像进行处理,例如,对多帧图像进行拼接处理或者其他处理。
实际应用中,对多帧图像进行处理的效率较低。
发明内容
本公开提供了一种图像处理方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种图像处理方法,包括:
获取依次采集得到的N帧图像,所述N为大于2的整数;
根据所述N帧图像,确定多个处理任务,所述多个处理任务包括:所述N帧图像各自对应的第一处理任务,以及所述N帧图像各自对应的第二处理任务;其中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务,所述i为整数,且,1<i≤N;
通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像;其中,每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务,所述M为大于1的整数。
根据本公开的第二方面,提供了一种图像处理装置,包括:
获取模块,用于获取依次采集得到的N帧图像,所述N为大于2的整数;
确定模块,用于根据所述N帧图像,确定多个处理任务,所述多个处理任务包括:所述N帧图像各自对应的第一处理任务,以及所述N帧图像各自对应的第二处理任务;其中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务,所述i为整数,且,1<i≤N;
处理模块,用于通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像;其中,每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务,所述M为大于1的整数。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中任一项所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面中任一项所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1A为本申请实施例提供的一种应用场景的示意图;
图1B为本申请实施例提供的另一种应用场景的示意图;
图2为采用单线程的图像处理过程示意图;
图3为采用双线程的图像处理过程示意图;
图4为本申请实施例提供的一种图像处理方法的流程示意图;
图5为本申请实施例提供的处理任务之间依赖关系的示意图;
图6为本申请实施例提供的另一种图像处理方法的流程示意图;
图7为本申请实施例提供的多线程多任务混调的图像处理过程的示意图;
图8为本申请实施例提供的一种图像处理装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
本公开提供一种图像处理方法、装置、设备以及存储介质,应用于人工智能技术领域,具体为深度学习、计算机视觉技术领域,可用于光学字符识别(Optical CharacterRecognition,OCR)、文字识别等场景,可以提高图像处理的效率。
一些应用场景中,图像采集设备连续拍摄得到多帧图像,该多帧图像中的相邻图像之间存在重叠区域。需要对多帧图像按序进行去重拼接处理,得到多帧图像对应的拼接结果图像。下面结合两个示例场景进行举例说明。
示例场景一,图1A为本申请实施例提供的一种应用场景的示意图。该应用场景可以为翻译笔对文本进行扫描、翻译的场景。翻译笔扫描一行文本,在扫描过程中,翻译笔拍摄得到该行文本的多帧图像,该多帧图像如图1A中的图像1至图像5所示。该多帧图像中的相邻图像之间存在重叠区域。图像处理设备对该多帧图像进行去重拼接处理,得到拼接结果图像。进一步的,可以对拼接结果图像中的文本进行识别,并对识别出的文本进行翻译,得到翻译结果。该场景中,图像处理设备可以为翻译笔,或者,为与翻译笔连接的其他电子设备(比如服务器)。
示例场景二,图1B为本申请实施例提供的另一种应用场景的示意图。该应用场景可以为全景图拍摄场景。拍摄设备连续拍摄得到多帧图像,并在拍摄每帧图像后旋转一定角度,这样拍摄得到的多帧图像如图1B中的图像1至图像4所示,相邻图像之间具有一定的重叠区域。图像处理设备对该多帧图像进行去重拼接处理,得到拼接结果图像,该拼接结果图像即为全景图。该场景中,图像处理设备可以为拍摄设备(例如手机、相机等),或者,为与拍摄设备连接的其他电子设备。
需要说明的是,上述两个示例场景仅为举例说明,并不对本申请实施例的应用场景造成限定。实际应用中,可能存在其他更多的需要对多帧图像进行去重拼接处理的场景。
上述应用场景中,在对多帧图像进行去重拼接处理时,需要对多帧图像进行按序处理。例如,先将图像1和图像2进行拼接,得到拼接图像1,再将图像3与拼接图像1进行拼接,得到拼接图像2,再将图像4与拼接图像2进行拼接,得到拼接图像3。以此类推。
进一步的,由于相邻图像之间存在重叠区域,上述过程中对两个图像进行拼接时,需要将两个图像中的重叠区域去除后拼接在一起。因此,每次的去重拼接处理可以分解为如下两个任务:特征提取任务和拼接任务两个步骤。下面以图像1和图像2的去重拼接处理过程为例进行说明。
(1)特征提取任务:提取图像1的特征,以及提取图像2的特征。每个图像的特征中可以包括该图像中不同区域对应的特征值。一个区域的特征值指示了该区域的颜色、纹理、内容等特征。若图像1中区域x的特征值与图像2中的区域y的特征值越相近,则说明图像1中的区域x与图像2中的区域y为重合区域的可能性越大。
(2)拼接任务:根据图像1的特征和图像2的特征,对图像1和图像2进行拼接得到拼接图像。具体而言,根据图像1的特征和图像2的特征,得到图像1和图像2之间各区域的映射关系,得到区域映射矩阵。进而根据区域映射矩阵对图像1和图像2进行拼接处理,得到拼接图像。
这样,对多帧图像进行去重拼接处理的过程如下:
(a)执行图像1对应的特征提取任务,以提取图像1的特征。
(b)执行图像2对应的特征提取任务,以提取图像2的特征。
(c)执行图像2对应的拼接任务,以根据图像1的特征和图像2的特征,对图像1和图像2进行去重拼接,得到拼接图像1以及拼接图像1的特征。
(d)执行图像3对应的特征提取任务,以提取图像3的特征。
(e)执行图像3对应的拼接任务,以根据图像3的特征和拼接图像1的特征,将图像3与拼接图像1进行去重拼接,得到拼接图像2以及拼接图像2的特征。
(f)执行图像4对应的特征提取任务,以提取图像4的特征。
(g)执行图像4对应的拼接任务,以根据图像4的特征和拼接图像2的特征,将图像4与拼接图像2进行去重拼接,得到拼接图像3以及拼接图像3的特征。
以此类推,直至多帧图像拼接完成,得到最终的拼接结果图像。
上述过程中,由于在对第i帧图像进行拼接处理时,既需要依赖第i帧图像的特征提取任务的执行结果,还需要依赖第i-1帧图像的拼接任务的执行结果,因此,可以采用单线程完成上述处理流程。示例性的,图2为采用单线程的图像处理过程示意图。如图2所示,采用一个线程交替执行特征提取任务和拼接任务。实际应用中发现,上述图像处理效率较低。在一些实时性要求较高的场景中,无法满足实时性要求。
一种可能的实现方式中,可以采用双线程并行完成上述处理流程。图3为采用双线程的图像处理过程示意图。如图3所示,指定线程1负责执行特征提取任务,线程2负责执行拼接任务,线程1和线程2可以并行执行。然而,由于线程2在执行拼接任务时,需要依赖线程1的特征提取任务的执行结果,导致线程2大部分时间处于等待状态。因此,采用图3所示的双线程处理方式,只能一定程度上提升图像处理效率,但是提升效果不佳,仍然无法满足实时性要求。
为了解决上述图像处理效率较低的问题,本申请实施例提供的技术方案中,可以多线程并行执行,但是不指定每个线程执行的任务类型,而是采用任务混调的方式,即每个线程既可以执行特征提取任务,也可以执行拼接任务。也就是说,在多线程并行执行过程中,在保证各帧图像的拼接任务按序执行,并且每帧图像的特征提取任务先于拼接任务执行的前提下,每个线程均选择当前能够被执行的任务,而不用考虑任务类型。这样,使得各线程执行的任务相对均衡,不会出现某个线程长时间等待的情况,充分利用各线程的处理资源,最大程度提高图像处理效率。
需要说明的是,上述介绍是以图像去重拼接处理为例进行说明的。本申请提供的方案并不局限于图像去重拼接处理应用中。只要是具有下述处理特点的应用场景均适用:需要对多帧图像按序处理、且每帧图像的处理过程中的各处理任务之间具有依赖关系。
下面以具体的实施例对本公开的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图4为本申请实施例提供的一种图像处理方法的流程示意图。如图4所示,本实施例提供的图像处理方法,包括:
S401:获取依次采集得到的N帧图像,所述N为大于2的整数。
S402:根据所述N帧图像,确定多个处理任务,所述多个处理任务包括:所述N帧图像各自对应的第一处理任务,以及所述N帧图像各自对应的第二处理任务;其中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务,所述i为整数,且,1<i≤N。
本实施例的应用场景中,需要对N帧图像进行按序处理得到处理结果图像。具体而言,先对第i-1帧图像进行处理,再对第i帧图像进行处理。对第i帧图像进行处理时,需要依赖第i-1帧图像的处理结果。其中,对每帧图像的处理步骤可以拆分为第一处理任务和第二处理任务。第二处理任务需要依赖第一处理任务的执行结果。
因此,本实施例中针对N帧图像,确定出的多个处理任务之间具有依赖关系。图5为本申请实施例提供的处理任务之间依赖关系的示意图。图5中,箭头表示依赖关系,A指向B的箭头,指示B依赖A。如图5所示,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务,以及依赖第i-1帧图像对应的第二处理任务。第i+1帧图像对应的第二处理任务依赖第i+1帧图像对应的第一处理任务,以及依赖第i帧图像对应的第二处理任务。
也就是说,本实施例对N帧图像进行处理时,需要满足如下执行顺序:第i帧图像对应的第一处理任务需要先于第i帧图像对应的第二处理任务执行,第i-1帧图像对应的第二处理任务需要先于第i帧图像对应的第二处理任务执行。
需要说明的是,本实施例对于具体的图像处理场景不做限定。只要是N个图像对应的多个处理任务之间满足图5所示的依赖关系即可。当应用于不同的图像处理场景时,不同应用场景下的第一处理任务可能有所不同,不同应用场景下的第二处理任务也可能有所不同。
一个示例中,本实施例可用于对N帧图像进行去重拼接的场景。该场景中,第一处理任务可以为特征提取任务。第二处理任务可以为拼接任务。下面对该场景下的第一处理任务和第二处理任务进行详细说明。
其中,第k帧图像对应的第一处理任务用于指示对所述第k帧图像进行特征提取,得到所述第k帧图像的特征;所述k为整数,1<k≤N。
第1帧图像对应的第二处理任务为空,第j帧图像对应的第二处理任务用于指示根据所述第j帧图像的特征以及中间结果图像的特征,对第j帧图像与所述中间结果图像进行拼接处理,得到拼接图像以及所述拼接图像的特征,j为整数,且2≤j≤N,当j=2时,所述中间结果图像为第1帧图像,当j>2时,所述中间结果图像为第j-1帧图像对应的第二处理任务得到的拼接图像。
举例而言,第1帧图像对应的第一处理任务用于指示对第1帧图像进行特征提取,得到第1帧图像的特征。第1帧图像对应的第二处理任务为空(即不用执行第1帧图像对应的第二处理任务)。
第2帧图像对应的第一处理任务用于指示对第2帧图像进行特征提取,得到第2帧图像的特征。第2帧图像对应的第二处理任务用于指示根据第2帧图像的特征和第1帧图像的特征,对第2帧图像和第1帧图像进行拼接处理,得到拼接图像1和拼接图像1的特征。
第3帧图像对应的第一处理任务用于指示对第3帧图像进行特征提取,得到第3帧图像的特征。第3帧图像对应的第二处理任务用于指示根据第3帧图像的特征和拼接图像1的特征,对第3帧图像和拼接图像1进行拼接处理,得到拼接图像2和拼接图像2的特征。
第4帧图像对应的第一处理任务用于指示对第4帧图像进行特征提取,得到第4帧图像的特征。第4帧图像对应的第二处理任务用于指示根据第4帧图像的特征和拼接图像2的特征,对第4帧图像和拼接图像2进行拼接处理,得到拼接图像3和拼接图像3的特征。
第5帧图像以及后续图像对应的第一处理任务和第二处理任务可以依次类推。此处不做赘述。
S403:通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像;其中,每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务,所述M为大于1的整数。
本实施例中,可以采用M个线程对上述多个处理任务进行并行处理,得到N帧图像对应的处理结果图像。通过采用多个线程并行处理的方式,可以提高图像处理效率。
与图3所示的双线程并行处理的方式不同,本实施例中,不指定每个线程执行的任务类型,而是采用“多线程多任务混调”的方式,即每个线程既可以执行第一处理任务,也可以执行第二处理任务。在多线程并行执行过程中,只需要保证各处理任务的执行顺序满足上述依赖关系即可。也就是说,在保证每个第二处理任务所依赖的处理任务先于该第二处理任务执行(即,各帧图像的第二处理任务按序执行,并且每帧图像的第一处理任务先于该帧图像的第二处理任务执行)的前提下,每个线程均选择当前能够被执行的处理任务,而不用考虑任务类型。
这样,在第一处理任务和第二处理任务所需耗时不等的情况下,由于每个线程执行部分图像对应的第一处理任务以及部分图像对应的第二处理任务,使得各线程所执行的任务分布更加均衡,不会出现如图3所示的某个线程长时间等待的情况,从而,充分利用各线程的处理资源,最大程度提高图像处理效率。
本实施例提供的图像处理方法,包括:获取依次采集得到的N帧图像,根据N帧图像,确定多个处理任务,所述多个处理任务包括:N帧图像各自对应的第一处理任务,以及N帧图像各自对应的第二处理任务;其中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务;通过M个线程对所述多个处理任务进行并行处理,得到N帧图像对应的处理结果图像;其中,每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务。上述过程中,由于采用多个线程并行处理,并且每个线程执行部分图像对应的第一处理任务以及部分图像对应的第二处理任务,使得各线程所执行的任务分布更加均衡,不会出现某个线程长时间等待的情况,充分利用各线程的处理资源,最大程度提高图像处理效率。
在图4所示实施例的基础上,下面结合一个具体的实施例对图4中S403的“多线程多任务混调”的可能实现方式进行详细说明。
图6为本申请实施例提供的另一种图像处理方法的流程示意图。本实施例中以第一线程的多任务混调过程为例进行举例说明。第一线程为M个线程中的任意一个线程。如图6所示,本实施例的方法,包括:
S601:在第一线程的运行状态切换为空闲状态时,将N帧图像中首个未执行第一处理任务的图像确定为第一目标图像,以及将N帧图像中首个未执行第二处理任务的图像确定为第二目标图像。
其中,第一线程的运行状态切换为空闲状态可以包括如下两种情况:(1)初始时,第一线程的运行状态为空闲态。(2)第一线程当前执行的处理任务执行完成后,第一线程的运行状态切换为空闲状态。
也就是说,第一线程在初始执行时,以及在执行完一个处理任务时,按照本实施例的方法,确定第一线程待执行的下一个处理任务,并执行该下一个处理任务。
本实施例中,在确定第一线程待执行的下一个处理任务时,按照从第1帧至第N帧的顺序,从N帧图像中找到首个未执行第一处理任务的图像作为第一目标图像,以及找到首个未执行第二处理任务的图像作为第二目标图像。
本实施例中,可以维护各帧图像的第一处理任务以及第二处理任务的执行状态,如表1所示。
每个处理任务的执行状态为下述中的任意一种:未执行、未完成、已完成。其中,“未执行”是指该处理任务还未开始执行。“未完成”是指该处理任务正在执行,还未执行完成。“已完成”是指该处理任务已经执行完成。
表1
Figure BDA0003381798200000101
本实施例中,按照从第1帧至第N帧的顺序,将N帧图像中首个未执行第一处理任务的图像作为第一目标图像,并将N帧图像中首个未执行第二处理任务的图像作为第二目标图像。进一步的,确定出第一目标图像以及第二目标图像之后,可以确定第一线程待执行的下一个处理任务为第一目标图像对应的第一处理任务,或者为第二目标图像对应的第二处理任务。
这样,可以保证在整个图像处理过程中,各帧图像对应的第一处理任务是按照从第1帧至第N帧的顺序按序执行,并保证各帧图像对应的第二处理任务是按照从第1帧至第N帧的顺序按序执行。
S602:确定第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及确定第二目标图像对应的第一处理任务的执行状态。
由于本公开实施例应用场景中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务,因此,本实施例中,在确定出第二目标图像之后,可以进一步确定第二目标图像的前一帧图像对应的第二处理任务,以及第二目标图像对应的第一处理任务是否已完成。也就是说,确定第二目标图像对应的第二处理任务所依赖的处理任务是否已完成。
进一步的,根据第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及第二目标图像对应的第一处理任务的执行状态,通过第一线程执行第一目标图像对应的第一处理任务,或者执行第二目标图像对应的第二处理任务。这里,可以包括S603、S604、S605三种情况。
S603:若第二目标图像的前一帧图像对应的第二处理任务的执行状态为未完成,则通过第一线程执行第一目标图像对应的第一处理任务。
该情况下,由于第二目标图像的前一帧图像对应的第二处理任务的执行状态为未完成,说明第二目标图像对应的第二处理任务还不具备执行条件,因此,通过第一线程执行第一目标图像对应的第一处理任务。
若第二目标图像的前一帧图像对应的第二处理任务的执行状态为已完成,则根据第二目标图像对应的第一处理任务的执行状态,通过第一线程执行第一目标图像对应的第一处理任务,或者执行第二目标图像对应的第二处理任务。这里,包括S604和S605两种情况。
S604:若第二目标图像对应的第一处理任务的执行状态为未完成,则通过第一线程执行第一目标图像对应的第一处理任务。
该情况下,由于第二目标图像对应的第一处理任务的执行状态为未完成,说明第二目标图像对应的第二处理任务还不具备执行条件,因此,通过第一线程执行第一目标图像对应的第一处理任务。
S605:若第二目标图像对应的第一处理任务的执行状态为已完成,则通过第一线程执行第二目标图像对应的第二处理任务。
该情况下,由于第二目标图像的前一帧图像对应的第二处理任务、以及第二目标图像对应的第一处理任务均已完成,说明第二目标图像对应的第二处理任务已具备执行条件,因此,通过第一线程执行第二目标图像对应的第二处理任务。
举例而言,以图像去重拼接场景为例,上述第一处理任务可以为特征提取任务,上述第二处理任务可以为拼接任务。上述S603和S604中,通过第一线程执行第一目标图像对应的第一处理任务,可以包括:通过第一线程对第一目标图像进行特征提取,得到第一目标图像的特征。上述S605中,通过第一线程执行第二目标图像对应的第二处理任务,可以包括:根据第二目标图像对应的第一处理任务的任务结果,获取所述第二目标图像的特征;根据第二目标图像的前一帧图像对应的第二处理任务的任务结果,获取中间结果图像以及中间结果图像的特征;根据第二目标图像的特征和中间结果图像的特征,对第二目标图像和中间结果图像进行拼接处理,得到拼接图像以及拼接图像的特征。其中,上述中间结果图像为第二目标图像的前一帧图像对应的第二处理任务得到的拼接图像。
需要说明的是,上述S601至S605描述的是第一线程执行一个处理任务的过程。针对M个线程中的每个线程,重复执行本实施例的S601至S605,直至第N帧图像对应的第二处理任务执行完成,得到N帧图像对应的处理结果图像。
本实施例中,在第二目标图像的前一帧图像对应的第二处理任务的执行状态为未完成,和/或,第二目标图像对应的第一处理任务的执行状态为未完成的情况下,通过第一线程执行第一目标图像对应的第一处理任务,在第二目标图像的前一帧图像对应的第二处理任务的执行状态为已完成,且第二目标图像对应的第一处理任务的执行状态为已完成的情况下,通过第一线程执行第二目标图像对应的第二处理任务。上述过程保证了各处理任务的执行顺序满足处理任务之间的依赖关系。进一步的,在保证各处理任务的执行顺序满足处理任务之间的依赖关系的基础上,通过采用多线程并行执行,并且每个线程执行部分图像对应的第一处理任务以及部分图像对应的第二处理任务,使得各线程所执行的任务分布更加均衡,不会出现某个线程长时间等待的情况,充分利用各线程的处理资源,最大程度提高图像处理效率。
在上述实施例的基础上,下面以图像去重拼接场景为例进行举例说明。该场景中,第一处理任务为特征提取任务,第二处理任务为拼接任务。为了便于理解,下面举例中以两个线程为例进行说明。
图7为本申请实施例提供的多线程多任务混调的图像处理过程的示意图。如图7所示,N帧图像的去重拼接处理过程如下:
(1)初始时,线程1执行第1帧图像对应的特征提取任务,线程2执行第2帧图像对应的特征提取任务。理想情况下,第1帧图像对应的特征提取任务和第2帧图像对应的特征提取任务同时执行完成。
(2)当线程1执行完第1帧图像对应的特征提取任务后,此时第2帧图像对应的特征提取任务也已完成。由于第2帧图像对应的拼接任务具备执行条件(即,其依赖的处理任务已完成),因此,线程1可以执行第2帧图像对应的拼接任务。
(3)线程2执行第3帧图像对应的特征提取任务。
(4)当线程1执行完第2帧图像对应拼接任务后,由于第3帧图像对应的特征提取任务还未完成,第3帧图像对应的拼接任务还不具备执行条件,因此,线程1执行第4帧图像对应的特征提取任务。
(5)当线程2执行完第3帧图像对应的特征提取任务后,第3帧图像对应的拼接任务已具备执行条件,因此,线程2执行第3帧图像对应的拼接任务。
(6)当线程1执行完第4帧图像对应的特征提取任务后,第4帧图像对应的拼接任务已具备执行条件,因此,线程1执行第4帧图像对应的拼接任务。
(7)当线程2执行完第3帧图像对应的拼接任务后,线程2执行第5帧图像对应的特征提取任务。
(8)当线程1执行完第4帧图像对应的拼接任务后,由于第5帧图像对应的特征提取任务还未完成,第5帧图像对应的拼接任务还不具备执行条件,因此,线程1执行第6帧图像对应的特征提取任务。
(9)线程2执行完第5帧图像对应的特征提取任务后,第5帧图像对应的拼接任务具备执行条件,因此,线程2执行第5帧图像对应的拼接任务。
由图7所示的执行过程可见,该执行过程满足了各处理任务之间的依赖关系,即,每帧图像的拼接任务所依赖的处理任务先于该图像的拼接任务执行。例如,第3帧图像对应的拼接任务所依赖的处理任务包括:第2帧图像对应的拼接任务、第3帧图像对应的特征提取任务,这两个处理任务均先于第3帧图像对应的拼接任务执行。又例如,第4帧图像对应的拼接任务所依赖的处理任务包括:第3帧图像对应的拼接任务、第4帧图像对应的特征提取任务,这两个处理任务均先于第4帧图像对应的拼接任务执行。
由图7所示的处理过程还可以看出,线程1执行了部分图像对应的特征提取任务、以及部分图像对应的拼接任务。线程2执行了部分图像对应的特征提取任务、以及部分图像对应的拼接任务。与图3所示的执行过程相比,由于每个线程均执行了部分图像对应的特征提取任务和部分图像对应的拼接任务,使得各线程所执行的任务分布更加均衡,不会出现某个线程长时间等待的情况,从而,充分利用各线程的处理资源,最大程度提高图像处理效率。
需要说明的是,图7示例的执行过程仅为一个示例。实际应用中,根据第一处理任务和第二处理任务所需耗时的不同,以及线程1和线程2的执行速度的不同,实际应用中线程1和线程2对各处理任务的执行过程可能与图7有所不同。
另外,本实施例对于并行执行的线程的数量也不做限定。图7是以2个线程为例进行示意。实际应用中,可以使用更多个线程进行并行处理,实现原理是类似的,不再一一举例说明。
在上述任意实施例的基础上,图像处理设备通过采用M个线程对上述N帧图像对应的多个处理任务进行并行处理,得到处理结果图像之后,还可以包括:对处理结果图像进行目标识别处理,得到目标识别结果。
一个示例中,结合图1A所示的翻译笔对文本进行扫描、翻译的场景。假设翻译笔在扫描过程中,依次采集得到N帧图像。通过M个线程对N帧图像进行去重拼接处理,得到处理结果图像之后,可以对处理结果图像中的文字进行识别处理,得到第一文本,第一文本采用第一语言。对第一文本进行翻译处理,得到第二文本,第二文本采用第二语言。可以将第二文本作为目标识别结果。
进一步的,若图像处理设备为翻译笔,则翻译笔可以在显示屏中显示该目标识别结果,或者,通过语音播报该目标识别结果。若图像处理设备为服务器或者其他电子设备,则可以向翻译笔发送目标识别结果,以使翻译笔对目标识别结果进行显示或者语音播报。本实施例中,通过采用M个线程进行并行处理,提高了翻译笔的翻译实时性。
在上述任意实施例的基础上,图像处理设备通过M个线程对上述N帧图像对应的多个处理任务进行并行处理,得到处理结果图像之后,还可以包括:显示所述处理结果图像,或者,存储所述处理结果图像。
一个示例中,结合图1B所示的全景图拍摄场景。拍摄设备依次采集得到N帧图像,通过M个线程对N帧图像进行去重拼接处理,得到处理结果图像,该处理结果图像即为全景图。拍摄设备可以显示该处理结果图像,或者,将处理结果图像存储至图库中。本实施例中,通过采用M个线程并行处理,提高了全景图拍摄的实时性。
图8为本申请实施例提供的一种图像处理装置的结构示意图。该装置可以为软件和/或硬件的形式。如图8所示,本实施例提供的图像处理装置800,可以包括:获取模块801、确定模块802和处理模块803。
其中,获取模块801,用于获取依次采集得到的N帧图像,所述N为大于2的整数;
确定模块802,用于根据所述N帧图像,确定多个处理任务,所述多个处理任务包括:所述N帧图像各自对应的第一处理任务,以及所述N帧图像各自对应的第二处理任务;其中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务,所述i为整数,且,1<i≤N;
处理模块803,用于通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像;其中,每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务,所述M为大于1的整数。
一种可能的实现方式中,所述处理模块803包括:
第一确定单元,用于针对所述M个线程中的每个第一线程,在所述第一线程的运行状态切换为空闲状态时,将所述N帧图像中首个未执行第一处理任务的图像确定为第一目标图像,以及将所述N帧图像中首个未执行第二处理任务的图像确定为第二目标图像;
第二确定单元,用于确定所述第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及确定所述第二目标图像对应的第一处理任务的执行状态;
处理单元,用于根据所述第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务。
一种可能的实现方式中,所述处理单元包括:
第一处理子单元,用于若所述第二目标图像的前一帧图像对应的第二处理任务的执行状态为未完成,则通过所述第一线程执行所述第一目标图像对应的第一处理任务;
或者,
第二处理子单元,用于若所述第二目标图像的前一帧图像对应的第二处理任务的执行状态为已完成,则根据所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务。
一种可能的实现方式中,所述第二处理子单元具体用于:
若所述第二目标图像对应的第一处理任务的执行状态为已完成,则通过所述第一线程执行所述第二目标图像对应的第二处理任务;
或者,
若所述第二目标图像对应的第一处理任务的执行状态为未完成,则通过所述第一线程执行所述第一目标图像对应的第一处理任务。
一种可能的实现方式中,所述N帧图像中的相邻图像存在重叠区域;
第k帧图像对应的第一处理任务用于指示对所述第k帧图像进行特征提取,得到所述第k帧图像的特征;所述k为整数,1<k≤N;
第1帧图像对应的第二处理任务为空,第j帧图像对应的第二处理任务用于指示根据所述第j帧图像的特征以及中间结果图像的特征,对第j帧图像与所述中间结果图像进行拼接处理,得到拼接图像以及所述拼接图像的特征,j为整数,且2≤j≤N,当j=2时,所述中间结果图像为第1帧图像,当j>2时,所述中间结果图像为第j-1帧图像对应的第二处理任务得到的拼接图像。
一种可能的实现方式中,所述处理单元具体用于:
通过所述第一线程对所述第一目标图像进行特征提取,得到所述第一目标图像的特征。
一种可能的实现方式中,所述处理单元具体用于:
根据所述第二目标图像对应的第一处理任务的任务结果,获取所述第二目标图像的特征;
根据所述第二目标图像的前一帧图像对应的第二处理任务的任务结果,获取所述中间结果图像以及所述中间结果图像的特征;
根据所述第二目标图像的特征和所述中间结果图像的特征,对所述第二目标图像和所述中间结果图像进行拼接处理,得到所述拼接图像以及所述拼接图像的特征。
一种可能的实现方式中,本实施例的装置还包括:
识别模块,用于对所述处理结果图像进行目标识别处理,得到目标识别结果;
输出模块,用于显示所述目标识别结果;或者,语音播放所述目标识别结果;或者,向预设设备发送所述目标识别结果。
一种可能的实现方式中,所述识别模块包括:
识别单元,用于对所述处理结果图像中的文字进行识别处理,得到第一文本,所述第一文本采用第一语言;
翻译单元,用于对所述第一文本进行翻译处理,得到第二文本,所述第二文本采用第二语言;
第三确定单元,用于将所述第二文本确定为所述目标识别结果。
本实施例提供的图像处理装置,可用于执行上述任意方法实施例提供的图像处理方法,其实现原理和技术效果类似,此处不做赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如图像处理方法。例如,在一些实施例中,图像处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的图像处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图像处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种图像处理方法,包括:
获取依次采集得到的N帧图像,所述N为大于2的整数;
根据所述N帧图像,确定多个处理任务,所述多个处理任务包括:所述N帧图像各自对应的第一处理任务,以及所述N帧图像各自对应的第二处理任务;其中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务,所述i为整数,且,1<i≤N;
通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像;其中,每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务,所述M为大于1的整数。
2.根据权利要求1所述的方法,其中,通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像,包括:
针对所述M个线程中的每个第一线程,重复执行下述步骤,直至第N帧图像对应的第二处理任务执行完成时,得到所述N帧图像对应的处理结果图像:
在所述第一线程的运行状态切换为空闲状态时,将所述N帧图像中首个未执行第一处理任务的图像确定为第一目标图像,以及将所述N帧图像中首个未执行第二处理任务的图像确定为第二目标图像;
确定所述第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及确定所述第二目标图像对应的第一处理任务的执行状态;
根据所述第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务。
3.根据权利要求2所述的方法,其中,根据所述第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务,包括:
若所述第二目标图像的前一帧图像对应的第二处理任务的执行状态为未完成,则通过所述第一线程执行所述第一目标图像对应的第一处理任务;
或者,
若所述第二目标图像的前一帧图像对应的第二处理任务的执行状态为已完成,则根据所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务。
4.根据权利要求3所述的方法,其中,根据所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务,包括:
若所述第二目标图像对应的第一处理任务的执行状态为已完成,则通过所述第一线程执行所述第二目标图像对应的第二处理任务;
或者,
若所述第二目标图像对应的第一处理任务的执行状态为未完成,则通过所述第一线程执行所述第一目标图像对应的第一处理任务。
5.根据权利要求2至4任一项所述的方法,其中,所述N帧图像中的相邻图像存在重叠区域;
第k帧图像对应的第一处理任务用于指示对所述第k帧图像进行特征提取,得到所述第k帧图像的特征;所述k为整数,1<k≤N;
第1帧图像对应的第二处理任务为空,第j帧图像对应的第二处理任务用于指示根据所述第j帧图像的特征以及中间结果图像的特征,对第j帧图像与所述中间结果图像进行拼接处理,得到拼接图像以及所述拼接图像的特征,j为整数,且2≤j≤N,当j=2时,所述中间结果图像为第1帧图像,当j>2时,所述中间结果图像为第j-1帧图像对应的第二处理任务得到的拼接图像。
6.根据权利要求2至5任一项所述的方法,其中,通过所述第一线程执行所述第一目标图像对应的第一处理任务,包括:
通过所述第一线程对所述第一目标图像进行特征提取,得到所述第一目标图像的特征。
7.根据权利要求2至5任一项所述的方法,其中,通过所述第一线程执行所述第二目标图像对应的第二处理任务,包括:
根据所述第二目标图像对应的第一处理任务的任务结果,获取所述第二目标图像的特征;
根据所述第二目标图像的前一帧图像对应的第二处理任务的任务结果,获取中间结果图像以及所述中间结果图像的特征;
根据所述第二目标图像的特征和所述中间结果图像的特征,对所述第二目标图像和所述中间结果图像进行拼接处理,得到拼接图像以及所述拼接图像的特征。
8.根据权利要求1至7任一项所述的方法,通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像之后,还包括:
对所述处理结果图像进行目标识别处理,得到目标识别结果;
显示所述目标识别结果;或者,
语音播放所述目标识别结果;或者,
向预设设备发送所述目标识别结果。
9.根据权利要求8所述的方法,其中,对所述处理结果图像进行目标识别处理,得到目标识别结果,包括:
对所述处理结果图像中的文字进行识别处理,得到第一文本,所述第一文本采用第一语言;
对所述第一文本进行翻译处理,得到第二文本,所述第二文本采用第二语言;
将所述第二文本确定为所述目标识别结果。
10.一种图像处理装置,包括:
获取模块,用于获取依次采集得到的N帧图像,所述N为大于2的整数;
确定模块,用于根据所述N帧图像,确定多个处理任务,所述多个处理任务包括:所述N帧图像各自对应的第一处理任务,以及所述N帧图像各自对应的第二处理任务;其中,第i帧图像对应的第二处理任务依赖第i帧图像对应的第一处理任务以及第i-1帧图像对应的第二处理任务,所述i为整数,且,1<i≤N;
处理模块,用于通过M个线程对所述多个处理任务进行并行处理,得到所述N帧图像对应的处理结果图像;其中,每个第二处理任务所依赖的处理任务先于该第二处理任务执行,且每个线程执行至少部分图像对应的第一处理任务以及至少部分图像对应的第二处理任务,所述M为大于1的整数。
11.根据权利要求10所述的装置,其中,所述处理模块包括:
第一确定单元,用于针对所述M个线程中的每个第一线程,在所述第一线程的运行状态切换为空闲状态时,将所述N帧图像中首个未执行第一处理任务的图像确定为第一目标图像,以及将所述N帧图像中首个未执行第二处理任务的图像确定为第二目标图像;
第二确定单元,用于确定所述第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及确定所述第二目标图像对应的第一处理任务的执行状态;
处理单元,用于根据所述第二目标图像的前一帧图像对应的第二处理任务的执行状态,以及所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务。
12.根据权利要求11所述的装置,其中,所述处理单元包括:
第一处理子单元,用于若所述第二目标图像的前一帧图像对应的第二处理任务的执行状态为未完成,则通过所述第一线程执行所述第一目标图像对应的第一处理任务;
或者,
第二处理子单元,用于若所述第二目标图像的前一帧图像对应的第二处理任务的执行状态为已完成,则根据所述第二目标图像对应的第一处理任务的执行状态,通过所述第一线程执行所述第一目标图像对应的第一处理任务,或者执行所述第二目标图像对应的第二处理任务。
13.根据权利要求12所述的装置,其中,所述第二处理子单元具体用于:
若所述第二目标图像对应的第一处理任务的执行状态为已完成,则通过所述第一线程执行所述第二目标图像对应的第二处理任务;
或者,
若所述第二目标图像对应的第一处理任务的执行状态为未完成,则通过所述第一线程执行所述第一目标图像对应的第一处理任务。
14.根据权利要求11至13任一项所述的装置,其中,所述N帧图像中的相邻图像存在重叠区域;
第k帧图像对应的第一处理任务用于指示对所述第k帧图像进行特征提取,得到所述第k帧图像的特征;所述k为整数,1<k≤N;
第1帧图像对应的第二处理任务为空,第j帧图像对应的第二处理任务用于指示根据所述第j帧图像的特征以及中间结果图像的特征,对第j帧图像与所述中间结果图像进行拼接处理,得到拼接图像以及所述拼接图像的特征,j为整数,且2≤j≤N,当j=2时,所述中间结果图像为第1帧图像,当j>2时,所述中间结果图像为第j-1帧图像对应的第二处理任务得到的拼接图像。
15.根据权利要求11至14任一项所述的装置,其中,所述处理单元具体用于:
通过所述第一线程对所述第一目标图像进行特征提取,得到所述第一目标图像的特征。
16.根据权利要求11至14任一项所述的装置,其中,所述处理单元具体用于:
根据所述第二目标图像对应的第一处理任务的任务结果,获取所述第二目标图像的特征;
根据所述第二目标图像的前一帧图像对应的第二处理任务的任务结果,获取中间结果图像以及所述中间结果图像的特征;
根据所述第二目标图像的特征和所述中间结果图像的特征,对所述第二目标图像和所述中间结果图像进行拼接处理,得到拼接图像以及所述拼接图像的特征。
17.根据权利要求10至16任一项所述的装置,还包括:
识别模块,用于对所述处理结果图像进行目标识别处理,得到目标识别结果;
输出模块,用于显示所述目标识别结果;或者,语音播放所述目标识别结果;或者,向预设设备发送所述目标识别结果。
18.根据权利要求17所述的装置,其中,所述识别模块包括:
识别单元,用于对所述处理结果图像中的文字进行识别处理,得到第一文本,所述第一文本采用第一语言;
翻译单元,用于对所述第一文本进行翻译处理,得到第二文本,所述第二文本采用第二语言;
第三确定单元,用于将所述第二文本确定为所述目标识别结果。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至9中任一项所述方法的步骤。
CN202111436883.7A 2021-11-29 2021-11-29 图像处理方法、装置、设备以及存储介质 Pending CN114119374A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111436883.7A CN114119374A (zh) 2021-11-29 2021-11-29 图像处理方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111436883.7A CN114119374A (zh) 2021-11-29 2021-11-29 图像处理方法、装置、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN114119374A true CN114119374A (zh) 2022-03-01

Family

ID=80367820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111436883.7A Pending CN114119374A (zh) 2021-11-29 2021-11-29 图像处理方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114119374A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115495312A (zh) * 2022-09-27 2022-12-20 北京百度网讯科技有限公司 业务请求处理方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115495312A (zh) * 2022-09-27 2022-12-20 北京百度网讯科技有限公司 业务请求处理方法和装置

Similar Documents

Publication Publication Date Title
CN111968631B (zh) 智能设备的交互方法、装置、设备及存储介质
CN113642584B (zh) 文字识别方法、装置、设备、存储介质和智能词典笔
CN113657395B (zh) 文本识别方法、视觉特征提取模型的训练方法及装置
CN114792355B (zh) 虚拟形象生成方法、装置、电子设备和存储介质
CN114332590B (zh) 联合感知模型训练、联合感知方法、装置、设备和介质
CN114119374A (zh) 图像处理方法、装置、设备以及存储介质
CN113656546A (zh) 多模态搜索方法、装置、设备、存储介质以及程序产品
CN116402914A (zh) 用于确定风格化图像生成模型的方法、装置及产品
CN114842541A (zh) 模型的训练及人脸识别方法、装置、设备以及存储介质
CN116052288A (zh) 活体检测模型训练方法、活体检测方法、装置和电子设备
CN114173158A (zh) 人脸识别方法、云端设备、客户端设备、电子设备及介质
CN114330675A (zh) 一种芯片、加速卡、电子设备和数据处理方法
CN114071024A (zh) 图像拍摄方法、神经网络训练方法、装置、设备和介质
CN108647097B (zh) 文本图像处理方法、装置、存储介质及终端
CN113378958A (zh) 自动标注方法、装置、设备、存储介质及计算机程序产品
CN116309160B (zh) 图像分辨率修复方法、装置、设备及存储介质
CN114363627B (zh) 图像处理方法、装置及电子设备
CN113283305B (zh) 人脸识别方法、装置、电子设备及计算机可读存储介质
CN113362218B (zh) 数据处理方法、装置、电子设备及存储介质
CN114979471B (zh) 界面显示方法、装置、电子设备及计算机可读存储介质
CN113327194A (zh) 图像风格迁移方法、装置、设备和存储介质
CN113627363B (zh) 视频文件的处理方法、装置、设备以及存储介质
CN113378773B (zh) 手势识别方法、装置、设备、存储介质以及程序产品
CN113542620B (zh) 一种特效处理方法、装置及电子设备
CN113343997B (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