CN114995898A - 目标对象处理方法、装置以及电子设备 - Google Patents
目标对象处理方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN114995898A CN114995898A CN202210524560.1A CN202210524560A CN114995898A CN 114995898 A CN114995898 A CN 114995898A CN 202210524560 A CN202210524560 A CN 202210524560A CN 114995898 A CN114995898 A CN 114995898A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- processing
- algorithms
- preset
- preset 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
- 238000003672 processing method Methods 0.000 title claims abstract description 40
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 701
- 238000012545 processing Methods 0.000 claims abstract description 597
- 238000000034 method Methods 0.000 claims abstract description 256
- 230000008569 process Effects 0.000 claims abstract description 177
- 238000012805 post-processing Methods 0.000 claims abstract description 60
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本申请实施例公开了一种目标对象处理方法、装置以及电子设备。方法包括:响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的至少两个预设处理算法之间的依赖关系满足第一条件,根据选择的至少两个预设处理算法配置对应的线程,并行运行对应于选择的至少两个预设处理算法的线程。响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程,从多个预设处理算法中选择至少一个预设处理算法,根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;运行在后处理过程对应的线程。通过上述方式使得降低了执行目标对象对应的多个算法的整体耗时。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种目标对象处理方法、装置以及电子设备。
背景技术
随着技术的进步发展,电子设备具备越来越强大的计算、存储能力,能够支持针对待处理对象的复杂计算。例如,电子设备需要利用不同算法的组合对电子设备所获取的待处理对象比如图像或者文本进行计算处理,以获得所期望的改善,比如改善待处理对象比如图像或者文本的成像质量、对待处理对象比如图像或者文本进行识别提取等。电子设备在利用不同算法的组合对电子设备所获取的待处理对象进行计算处理时,处理效率还有改善空间。
发明内容
鉴于上述问题,本申请提出了一种目标对象处理方法、装置以及电子设备,以实现改善上述问题。
第一方面,本申请提供了一种目标对象处理方法,应用于电子设备,所述方法包括:响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的所述至少两个预设处理算法之间的依赖关系满足第一条件;根据选择的所述至少两个预设处理算法配置对应的线程;并行运行对应于选择的所述至少两个预设处理算法的线程;响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程;从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同;根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;运行在后处理过程对应的线程。
第二方面,本申请提供了一种目标对象处理方法,应用于服务器,所述方法包括:响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的所述至少两个预设处理算法之间的依赖关系满足第一条件;根据选择的所述至少两个预设处理算法配置对应的线程;并行运行对应于选择的所述至少两个预设处理算法的线程;响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程;从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同;根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;运行在后处理过程对应的线程。
第三方面,本申请提供了一种目标对象处理装置,运行于电子设备,所述装置包括:算法确定单元,用于响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的所述至少两个预设处理算法之间的依赖关系满足第一条件;根据选择的所述至少两个预设处理算法配置对应的线程;算法运行单元,用于并行运行对应于选择的所述至少两个预设处理算法的线程;响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程;算法确定单元,还用于从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同;根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;算法运行单元,还用于运行在后处理过程对应的线程。
第四方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第五方面,本申请提供的一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
本申请提供的一种目标对象处理方法、装置以及电子设备,响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,根据选择的至少两个预设处理算法配置对应的线程,并行运行对应于选择的至少两个预设处理算法的线程,再响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程,从多个预设处理算法中选择至少一个预设处理算法。从而通过上述方式使得在目标对象的当前处理过程中可以在从多个预设处理算法中选取至少两个预设处理算法的情况下,为至少两个预设处理算法配置对应的线程,进而实现并行运行至少两个预设处理算法,以缩短对目标对象的处理过程中的耗时。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提出的目标对象处理方法的一种应用场景示意图;
图2示出了本申请提出的目标对象处理方法的另一种应用场景示意图;
图3示出了本申请实施例提出的一种目标对象处理方法的流程图;
图4示出了本申请实施例提出的一种目标对象所对应的多个算法的相互依赖关系的示意图;
图5示出了本申请实施例提出的目标对象处理方法的运行耗时的示意图;
图6示出了本申请另一实施例提出的一种目标对象处理方法的流程图;
图7示出了本申请实施例提出的子算法可以依赖于多个在前算法的示意图;
图8示出了本申请实施例中数据依赖关系处理线程的运行示意图;
图9示出了本申请实施例中算法所支持处理器件以及算法所依赖数据的示意图;
图10示出了本申请实施例提出的一种目标对象处理装置的结构框图;
图11示出了本申请提出的一种电子设备的结构框图;
图12是本申请实施例的用于保存或者携带实现根据本申请实施例的目标对象处理方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
电子设备在运行过程中,可以获取到多种多样的对象。例如,可以获取到文本类型的对象,也可以获取到图像类型的对象。在一些情况下,电子设备会通过算法对获取到的对象进行处理,然后再对处理后的对象进行后续的操作。例如,电子设备在拍照的过程中,对于直接通过摄像头所采集的图像,可以经过多个算法进行处理,然后再将经过多个算法处理之后的图像显示给用户并进行存储。
但是,发明人在研究中发现,在相关的通过多个算法对对象进行处理的过程中,还存在效率有待提升的问题。例如,相关的处理过程中,在待处理的对象需要通过多个算法进行处理的情况下,通常是通过多个算法串行方式的对待处理对象进行处理。而本申请的发明人在研究中发现,待处理的对象对应的多个算法中,部分在后进行运行的算法中所包括的一些子算法(例如,一个算法可以看做由多个子算法组成)实际可以更早的进行运行。
因此,发明人提出了本申请中的一种目标对象处理方法、装置以及电子设备,以缩短对目标对象的处理过程中的耗时。
下面先对本申请实施例所涉及的应用场景进行介绍。
在本申请实施例中,所提供的目标对象处理方法可以由电子设备执行。在由电子设备执行的这种方式中,本申请实施例提供的目标对象处理方法中所有步骤可以均由电子设备执行。例如,如图1所示,本申请实施例提供的目标对象处理方法中所有步骤可以均由电子设备执行的情况下,所有步骤均可以通过电子设备100处理器执行。再者,本申请实施例提供的目标对象处理方法也可以由服务器进行执行。
另外,本申请实施例提供的目标对象处理方法还可以由电子设备和服务器协同执行。在由电子设备和服务器协同执行的这种方式中,本申请实施例提供的目标对象处理方法中的部分步骤由电子设备执行,而另外部分的步骤则由服务器来执行。示例性的,如图2所示,电子设备100可以执行目标对象处理方法包括的:获取目标对象,然后将目标对象传输给服务器,然后由服务器 200来执行其他步骤,进而将执行其他步骤所得到的结果再返回给电子设备 100。
需要说明的是,在由电子设备和服务器协同执行的这种方式中,电子设备和服务器分别执行的步骤不限于上述示例中所介绍的方式,在实际应用中,可以根据实际情况动态的调整电子设备和服务器分别执行的步骤。
需要说明的是,其中的电子设备100除了为图1和图2中所示的智能手机外,还可以为平板电脑、智能手表、智能语音助手等设备。服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。在本申请实施例提供的目标对象处理方法由多个物理服务器构成的服务器集群或者分布式系统执行的情况下,目标对象处理方法中的不同步骤可以分别由不同的物理服务器执行,或者可以由基于分布式系统构建的服务器基于分布式的方式执行。
请参阅图3,本申请提供的一种目标对象处理方法,应用于电子设备,方法包括:
S110:响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的至少两个预设处理算法之间的依赖关系满足第一条件。
其中,启动触发条件可以有多种情况。可选的,若当前处理过程为首次处理过程,启动触发条件可以包括获取到目标对象。可选的,若当次处理过程并非首次处理过程(例如,为第二次处理过程或者之后的处理过程),那么启动触发条件可以包括在前处理过程中的预设处理算法完成执行,也可以包括得到了在前处理过程所输出的数据。对应的,从多个预设处理算法中所选择出的至少两个预设处理算法可以为用于在当次处理过程中进行运行的算法。可选的,该至少两个预设处理算法之间的依赖关系所包括的第一条件可以包括:该至少两个预设处理算法所依赖的数据是相同的,或者该至少两个预设处理算法均配置在同一在先运行的预设处理算法之后运行。
本申请实施例中,电子设备可以利用不同算法的组合对目标对象进行处理,以获得所期望的改善。目标对象所包括的类型可以有多种,例如,目标对象可以为文本,也可以为图像(图片或者视频)。目标对象具体的类型可以根据目标对象处理方法所应用的场景确定。
在一种方式中,本申请实施例提供的目标对象处理方法可以应用在图像采集场景,在这种情况下,目标对象则可以包括通过电子设备的摄像头所采集的图像(也可以是存储于电子设备中的图像或者接收由服务器侧发送的图像,在此不限定),对应的,电子设备则可以响应于摄像头采集到图像,开始基于该图像对应的多个预设处理算法对该图像进行多次处理。在一种方式中,本申请实施例提供的目标对象处理方法可以应用在文本识别场景,例如,电子设备在通过麦克风采集到语音内容,并将该语音内容转换为对应的文本后,为了确定文本所要表达的语义则可以对该文本进行多次的算法处理,在这种情况下,本申请实施例中的目标对象则可以理解为要进行语义理解的文本,对应的,电子设备可以响应于得到由语音内容所转换得到的文本,开始基于该文本对应的多个预设处理算法对该文本进行多次处理。在其他实施例中,也可以基于对图像中的识别提取后的文本内容作为目标对象。
另外,需要说明的是,其中的目标对象可以为还未经过任何处理的对象,例如可以为通过电子设备的摄像头所采集的图片。再者,目标对象也可以为已经经过指定算法所处理过的对象,且该指定算法与目标对象对应的多个预设处理算法不同。
在本申请实施例中,多个预设处理算法为用于对目标对象进行处理的算法,需要说明的是,该多个预设处理算法用于对目标对象进行处理可以理解为用于对目标对象直接进行处理以及用于对目标对象被经过某个预设处理算法进行处理所得到的中间处理结果数据进行处理。示例性的,目标对象X对应的多个预设处理算法包括算法A、算法B1、算法B2以及算法C。其中,算法 A用于直接对目标对象X进行处理,算法B1用于对算法A处理目标对象所得到的中间结果数据进行处理,而算法B2也用于对算法A处理目标对象所得到的中间结果数据进行处理,其中算法B1进行运行后所输出的中间结果数据为对象X1,算法B2进行运行后所输出的中间结果数据为数据X2,算法C则可以基于数据X2对对象X1进行处理得到最终的对象,从该示例可以看出,目标对象对应的多个预设处理算法中,部分预设处理算法是直接对目标对象进行处理,而部分预设处理算法是对处理过程中的中间数据进行处理。
在本申请实施例中,目标对象对应的多个预设处理算法可以是通过对目标对象对应的多个初始处理算法进行拆分而得到的。其中,目标对象对应的多个初始处理算法的执行顺序为串行执行。那么在多个初始处理算法执行的过程中,并不会出现有多个初始处理算法并行执行的情况。例如,目标对象对应的多个初始处理算法包括初始处理算法A、初始处理算法B以及初始处理算法C。其中,可以先执行初始处理算法A,在初始处理算法A完成执行后再开始执行初始处理算法B,在初始处理算法B完成执行后再开始执行初始处理算法C。基于该示例可以看出在多个初始处理算法串行执行的情况下,目标对象的整体的处理耗时就等于每个处理算法的耗时之和,算法处理效率还有改善空间。
其中,作为整体的初始处理算法可能是会有多个子算法组成的。例如,在初始处理算法B的运行过程中,初始处理算法B会对输入的数据分两个步骤进行处理,而这里的两个步骤则可以分别对应一个子算法。也就是其中一个子算法B1用于执行第一个步骤,另一个子算法B2用于执行另外一个步骤。而发明人在研究中发现,在目标对象对应的多个初始处理算法中,部分在后执行的初始处理算法中的部分子算法实际是可以更加提前的被执行,而不用限定在所属初始处理算法的执行时序再开始执行。需要说明的是,作为一种方式,可以基于算法依赖的数据来确定某个算法是否开始进行运行,其中,算法依赖的数据可以理解为算法运行过程中所处理的数据,或者可以为需要输入到算法中的数据。
示例性的,在目标对象对应的初始处理算法A、初始处理算法B以及初始处理算法C中,其中的,初始处理算法B包括子算法B1和子算法B2,其中,子算法B1是用于直接对初始处理算法A所输出的数据进行处理,子算法 B2则是用于从初始处理算法A所输出的数据中提取信息。但是,子算法B2 在运行过程中所要提取的信息实际也可以从目标对象中直接提取出,也就是说,子算法B2运行所依赖的数据实际可以为目标对象,进而子算法B2实际可以和初始处理算法A并行运行。
对目标对象对应的多个初始处理算法进行拆分可以理解为分别对每个初始处理算法进行拆分,再者,部分初始处理算法可能无法进行拆分,在这种情况下,对于目标对象所对应的每个初始处理算法都可以分别基于所依赖的数据检测是否可以进行拆分,对于可以进行拆分的初始处理算法则可以基于算法依赖的数据进行拆分,进而完成对多个初始处理算法的拆分,以得到在实际对目标对象进行处理过程中的多个预设处理算法。其中,基于所依赖数据对目标对象对应的多个初始处理算法进行拆分可以理解为基于每个初始处理算法各自所包括的子算法依赖的数据,对每个初始处理算法进行拆分,对应的,基于所依赖的数据检测初始处理算法是否可以拆分可以理解为基于初始处理算法中所包括的子算法依赖的数据,确定该子算法是否可以拆分为一个独立的算法。
例如,若目标对象对应的多个初始处理算法为初始处理算法A、初始处理算法B以及初始处理算法C,在基于算法依赖的数据对初始处理算法A、初始处理算法B以及初始处理算法C分别进行检测后,确定初始处理算法B可以拆分为子算法B1和子算法B2,那么在对目标对象对应的多个初始处理算法进行拆分后,所得到的目标对象对应的多个预设处理算法包括初始处理算法 A、子算法B1、子算法B2和初始处理算法C。
所得到的目标对象对应的多个预设处理算法中每个算法各自对应的执行顺序,可以是基于各自所依赖的算法确定的。在后运行的算法依赖的算法,可以理解为生成在后运行的算法依赖的数据的算法。所以,在本申请实施例中,当有算法完成执行后则可以进一步的触发依赖该已经完成执行的算法运行。
需要说明的是,在本申请实施例中,可以预先由电子设备以外的其他设备对目标对象对应的多个初始处理算法进行拆分,以得到目标对象对应的多个预设处理算法。也可以由电子设备在对目标对象进行处理之前获取得到目标对象对应的多个初始处理算法后,由电子设备在本地对目标对象对应的多个初始处理算法进行拆分以得到目标对象对应的多个预设处理算法。
S120:根据选择的至少两个预设处理算法配置对应的线程。
如前述内容可知,目标对象所对应的多个预设处理算法可以是基于算法依赖的数据确定各自的运行顺序的,则可能会有多个在后运行的预设处理算法依赖于同一个在在前得到的数据。所以,所确定的当前处理过程对应的预设处理算法则可能会有多个,因此,为当前处理过程所运行的预设处理算法分别配置对应的线程,可以使得当前处理过程所确定的预设处理算法可以并行运行。作为一种方式,可以在确定当前处理过程对应的预设处理算法时,同步确定当前处理过程对应的预设处理算法的数量,若当前处理过程对应的预设处理算法有多个,为当前处理过程对应的多个预设处理算法分别配置对应的线程。所以,在本申请实施例中,对于所选择至少两个预设处理算法可以分别配置对应的线程,从而使得不同的预设处理算法可以由各自对应的线程来进行运行。
S130:并行运行对应于选择的至少两个预设处理算法的线程。
S140:响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程。
其中,当前处理过程的结束触发条件可以包括当前处理过程所对应选择的预设处理算法中至少有一个预设处理算法运行完成。例如,对于前述所选择的至少两个预设处理算法,若其中有一个预设处理算法运行完成,则可以确定当前处理过程中的结束触发条件满足。再者,结束触发条件也可以包括当前处理过程所对应选择的预设处理算法均运行完成。例如,对于前述所选择的至少两个预设处理算法,在该至少两个运行处理算法完成运行后,确定满足结束触发条件。另外,作为另外一种方式,结束触发条件还可以包括:已经得到当前处理过程所选择的预设处理算法所输出的数据。
S150:从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同。
其中,第二条件可以包括所选择的至少一个预设处理算法依赖于配置为在当前处理过程中所选择的至少两个预设处理算法的其中之一所输出的数据。第三条件可以包括所选择的至少一个预设处理算法依赖于配置为在当前处理过程中所选择的至少两个预设处理算法的其中另一所输出的数据。示例性的,在当前处理过程所选择的至少两个预设处理算法可以包括算法E1和算法C2,其中,算法E1在完成运行后所输出的数据为叠加算法E1效果的对象,算法 C2在完成运行后所输出的数据为叠加算法C2效果的对象。在当前处理过程满足结束触发条件时,则从从多个预设处理算法中选择至少一个预设处理算法则可以为C3,且算法C3与算法E1之间所满足的第二条件则可以包括:算法 C3依赖于算法E1输出叠加算法E1效果的对象,对应的,算法C3与算法C2 之间所满足的第三条件则可以包括:算法C3依赖于算法C2输出叠加算法C2 效果的对象。
S160:根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程。
S170:运行在后处理过程对应的线程。
其中,运行在后处理过程对应的线程则可以理解为控制在后处理过程对应的线程进行运行,以对在后处理过程对应的预设处理算法进行运行。
下面再通过图4和图5来对本申请实施例涉及的目标对象处理方法的效果进行说明。如图4所示,目标对象为图像,例如,图4中所示的a帧图像。对于其中的a帧图像可以先由算法A、算法D以及算法C1并行处理。其中,算法A用于对a帧图像均进行处理从而得到b帧结果图像,算法C1和算法D 则可以理解为用于对a帧图像中的任一一帧图像进行处理。在经过算法A处理后可以得到b帧结果图像,然后算法B可以结合b帧结果图像和c帧图像(与 a帧图像同步采集但格式不同的图像)继续进行处理,以得到叠加算法B效果的图像。叠加算法B效果图像则会又被算法C2进行处理,算法C2在对叠加算法B效果图像进行处理的过程中,还会结合算法C1所输出的提取的信息i2,从而基于图4中箭头所示的方向依次进行处理,从而得到图4中所示的叠加以上所有效果的图像作为最终的处理结果。基于图4所示的情况,若当前处理过程是对a帧图像进行处理,那么从多个预设处理算法中所选择的预设处理算法可以为算法D、算法A以及算法C1。
再者,图4中所示的算法的具体内容在本申请实施例中不做具体限定。例如,其中的算法A可以为图像降噪算法、算法C1可以为图像前景获取算法,算法D可以为图像背景获取算法等。
需要说明的是,在图4所示的算法中算法C1、算法C2和算法C3原本属于算法C(即算法C1、算法C2和算法C3共同组成算法C),而算法C原本的执行顺序是在算法B之后。本发明实施例中,算法C1实际是可以直接对图4 中的a帧图像(一种目标对象,可以是一帧也可以是多帧)进行处理,因此,则可以将算法C1执行顺序提前,与算法A以及算法D并行运行,从而就缩短了整体的处理耗时
如图5所示,若目标对象对应的多个初始处理算法包括算法A、算法B、算法C以及算法D。其中,算法D可以包括有算法D1、算法D2以及算法D3,其中,基于算法D1、算法D2以及算法D3各自所依赖的数据确定算法D2可以被拆分出的情况下,目标对象的整体处理耗时对比可以如图5所示。其中,在多个初始处理算法全部串行执行的情况下,整体的耗时为T3-T1,而在经过本申请实施例提供的方式进行初始处理算法的拆分之后所得到的多个预设处理算法则包括算法A、算法B、算法C、算法D1、算法D2以及算法D3,因为从算法D中拆分出的算法D2(可以理解为第第二预设处理算法)可以与算法 A(可以理解为第第一预设处理算法)并行执行,也就意味着算法D2和算法A 的运行耗时是重合的,所以整体的处理耗时为T2-T1,明显,T2-T1小于T3-T1。
需要说明的是,若当前处理过程对应的算法(例如,第一预设处理算法和第二预设处理算法)完成执行,进入当前处理过程对应的算法对应的在后处理过程,直到多个算法均被执行。其中,在当前处理过程对应的算法完成执行后,则可以对在当前处理过程对应的算法之后运行的算法进行运行。需要说明的是,若当前处理过程对应的算法有多个的情况下,当前处理过程中有算法完成执行,则可以进入该完成执行的算法所对应的在后处理过程。示例性的,目标对象所对应的多个算法包括算法A、算法B1、算法B2以及算法C。若当前处理过程所确定的算法为算法B1(即当前处理过程中的算法只有1个),其中,算法C依赖于算法B1。在当前处理过程所确定的算法B1完成执行后,则可以进入算法B1对应的在后处理过程,即开始运行依赖该算法B1的算法C。若当前处理过程所确定的算法为算法B1和算法B2(即当前处理过程中的算法有多个),则当算法B1完成执行后,则可以进入到算法B1所对应的在后处理过程,对应的,当算法B2完成执行后,则可以进入到算法B2所对应的在后处理过程。
本实施例提供的一种目标对象处理方法,响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,根据选择的至少两个预设处理算法配置对应的线程,并行运行对应于选择的至少两个预设处理算法的线程,再响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程,从多个预设处理算法中选择至少一个预设处理算法。从而通过上述方式使得在目标对象的当前处理过程中可以在从多个预设处理算法中选取至少两个预设处理算法的情况下,为至少两个预设处理算法配置对应的线程,进而实现并行运行至少两个预设处理算法,以缩短对目标对象的处理过程中的耗时。
请参阅图6,本申请提供的一种目标对象处理方法,应用于电子设备,方法包括:
S210:响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的至少两个预设处理算法之间的依赖关系满足第一条件。
S220:根据选择的至少两个预设处理算法配置对应的线程。
需要说明的是,并行进行运行的线程数量越多,电子设备实时产生的负载也就越高。在一些情况下,电子设备所同时运行的应用程序可能会较多,在这种情况下,如果依然为当前处理过程中的多个算法分别配置对应的线程,则可能会使得电子设备的负载进一步的升高,而导致电子设备出现卡顿的情况。
作为一种改善方式,作为一种方式,根据选择的至少两个预设处理算法配置对应的线程,包括:获取电子设备中目标器件的占用程度,目标器件用于运行线程;若目标器件的占用程度低于占用阈值,根据选择的至少两个预设处理算法配置对应的线程。
需要说明的是,并行进行运行的线程数量越多,电子设备实时产生的负载也就越高。在一些情况下,电子设备所同时运行的应用程序可能会较多,在这种情况下,如果依然为当前处理过程中的多个预设处理算法分别配置对应的线程,则可能会使得电子设备的负载进一步的升高,而导致电子设备出现卡顿的情况。作为一种改善方式,若当前处理过程对应的多个预设处理算法有多个,可以获取电子设备中处理器件的占用程度,若处理器件的占用程度低于占用阈值,为当前处理过程对应的多个多个预设处理算法分别配置对应的线程,从而通过这种方式使得电子设备可以根据处理器件的占用程度来确定电子设备的负载,进而根据负载情况下来确定是否要为当前处理过程所确定的多个预设处理算法分别配置对应的线程,进而提升了对象处理过程中的灵活性,也降低了电子设备出现卡顿的概率。
其中,需要说明的是,电子设备中的算法在运行的过程中是会由具体的处理器件来运行的。例如,部分的算法可以由电子设备的CPU来运行,部分的算法可以由电子设备的NPU(Neural-network Processing Unit)来运行,还有部分的算法可以由电子设备中的DSP(Digital Signal Processor)来运行。在获取处理器件的占用程度的过程中,获取占用程度的处理器件可以为当前处理过程所确定的预设处理算法所对应的处理器件。其中,预设处理算法所对应的处理器件可以理解为对该预设处理算法进行运行的处理器件。例如,算法A配置为由电子设备的GPU(Graphics Processing Unit)运行,那么算法A所对应的处理器件则为GPU。其中,处理器件的占用程度可以为处理器件的利用率。
对应的,若当前处理过程对应的预设处理算法有多个且处理器件的占用程度不低于占用阈值,则所配置用于运行当前处理过程对应的预设处理算法的线程的数量少于当前处理过程对应的预设处理算法的数量,以减少并行运行的预设处理算法的数量。在用于运行当前处理过程对应的预设处理算法的线程的数量少于当前处理过程对应的预设处理算法的数量的情况下,可以基于当前处理过程中对应的多个预设处理算法各自的算法优先级来确定具体的执行顺序,在确定当前处理过程中对应的多个预设处理算法的执行顺序后,则可以基于该执行顺序以及所配置的线程运行。示例性的,所确定的当前处理过程对应的算法可以有为算法B1、算法B2以及算法C,且确定处理器件的占用程度不低于占用阈值,那么配置给当前处理过程的线程的数量可以为两个,再者,算法 B1、算法B2以及算法C所确定的执行顺序可以为先执行算法B1,再执行算法B2然后再执行算法C。在这种情况下,则可以先通过所配置的两个线程来并行执行算法B1和算法B2,当算法B1和算法B2中有算法完成执行后,再由空闲的线程来执行算法C。
其中,如前述内容所示,若当前处理过程对应的预设处理算法有多个且处理器件的占用程度不低于占用阈值的情况下,配置给当前处理过程的预设处理算法的线程数量会少于当次处理过程对应的预设处理算法的数量,在这种情况下,电子设备也可以根据多种方式来确定所配置给当前处理过程中的线程的数量。作为一种方式,电子设备可以直接根据当前处理过程的预设处理算法的数量来确定所配置的线程的数量。可选的,可以将当前处理过程的预设处理算法的数量减去预设值,则得到了所配置的线程的数量。例如,该预设值可以为1。
作为另外一种方式,电子设备可以参考电子设备所运行的应用程序的数量以及当前剩余电量中的至少一项参数来确定所配置的线程的数量。在这种方式下,若是基于所运行的应用程序的数量来确定所配置的线程的数量的情况下,可以建立有应用程序的数量与所配置的线程的数量之间的对应关系,进而基于应用程序的数量与所配置的线程之间的对应关系来确定所配置的线程的数量。若是基于当前剩余电量来确定所配置的线程的数量的情况下,可以建立有当前剩余电量与所配置的线程的数量之间的对应关系,进而当前剩余电量与所配置的线程之间的对应关系来确定所配置的线程的数量。若是基于电子设备所运行的应用程序的数量以及当前剩余电量来共同确定所配置的线程的数量的情况下,可以建立有基于电子设备所运行的应用程序的数量以及当前剩余电量所共同对应的线程的数量。
S230:并行运行对应于选择的至少两个预设处理算法的线程。
S240:响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程。
S250:获取数据依赖关系。
作为一种方式,获取数据依赖关系之前还包括:获取数据依赖关系标识,数据依赖关系标识用于唯一标识多个算法的一种数据依赖关系,基于数据依赖关系标识获取数据依赖关系并进行存储。在这种方式下,获取数据依赖关系,包括:读取预先存储的数据依赖关系。
在本申请实施例中,数据依赖关系标识可以与所要处理的对象进行关联,在这种方式下,电子设备在确定目标对象后,则可以根据对象与数据依赖关系标识之间的关联来获取对应的数据依赖关系标识,进而再通过该数据依赖关系标识来得到的具体的数据依赖关系。示例性的,如下表所示:
ID | 对象 | 标识 |
1 | 对象1 | 001 |
2 | 对象2 | 002 |
3 | 对象3 | 001 |
如上表所示,对象1所对应的数据依赖关系标识为001,对象2所对应的数据依赖关系标识为002,对象3所对应的数据依赖关系标识为003。在确定目标对象为对象2的情况下,则所获取到的数据依赖关系标识则为002,进而再根据002来获取得到对应的数据依赖关系。
其中,可以根据对象所属的类型来确定其所对应的数据依赖关系标识。作为一种方式,对于图片类型的对象所对应的数据依赖关系标识可以相同,对于文本类型的对象所对应的数据依赖关系标识可以相同,对于视频类型的对象所对应的数据依赖关系标识可以相同。作为另外一种方式,对于同一类型的对象,还可以进一步的进行细分,从而使得即使对于相同类型的对象可以有更为针对性的处理方式。例如,对于图片而言,根据其所包括的内容的不同可以区分为不同场景的图片,例如,以人像为主的图片所属的场景可以为人像,以风景为主的图片所属的场景可以为风景。在这种情况下,在得到图片之后可以进一步的获取图片所对应的场景,进而根据图片所属类型和所属场景来确定对应的数据依赖关系标识。
再者,需要说明的是,对于相同的对象而言在不同的电子设备中的处理方式或者处理内容可能会有所不同,而不同的处理方式或者处理内容给电子设备所造成的负载的增加则会对应的有所不同。例如,在一些电子设备中,在电子设备进行拍照时,一些电子设备只需要对摄像头所采集的图片进行处理然后显示给用户以及并同步进行存储即可,但是,在另外一些电子设备中,可以配置有同步分享功能,在这种情况下,电子设备在拍照的时候,除了需要对图片进行处理以进行显示和存储外,还要在获取得到摄像头采集的图片的同时同步的绘制图片分享界面。在需要同步的绘制图片分享界面的情况下,则会给电子设备增加更大的负载。
作为一种方式,对于同一类型的对象可以预先配置有多个数据依赖关系,其不同的数据依赖关系所保证的在后运行的算法所依赖的数据可以有所不同,进而使得在后运行的算法的运行时序会有所不同。示例性的,如图7所示,对于算法D可以拆分为算法D1、算法D2和算法D3。其中,对于算法D1而言,可以是在算法A之后执行,也可以在算法B之后执行。在这种情况下,所确定的算法依赖关系可以为算法B依赖算法A,算法D1依赖算法B,算法C依赖算法B,算法D2和算法D3依赖算法C。再者,所确定的算法依赖关系还可以为算法B依赖算法A,算法D1依赖算法C,算法C依赖算法B,算法 D2和算法D3依赖算法C。对于该两种算法依赖关系可以发现,在算法D1依赖算法A的情况下,则算法D1和算法B(也依赖算法A)会同步开始运行,在算法D1依赖算法B的情况下,算法D则会和算法C(也依赖算法B)同步开始运行。可以理解的是,并行运行的算法越多,电子设备的实时负载也就越高,而前述所示的两种算法依赖关系中,若算法D1和算法B并行处理,则会在算法D1和算法B并行运行的时间内有较高的负载,若算法D1和算法C并行处理,则会在算法D1和算法C并行运行的时间内有较高的负载,也就是说,同一个对象所对应的多个算法依赖关系,各自对应的负载变化情况不同。算法依赖关系所对应的负载变化情况可以理解为在就要该算法依赖关系对目标对象的多个算法进行运行的过程中,所使得电子设备增加的负载随时间变化的幅度不同。
那么若目标对象所对应的多个算法依赖关系有多个,且各自对应的负载变化情况不同的情况下,电子设备可以从目标对象对应的多个算法依赖关系中选择与电子设备当次的负载最为匹配的算法依赖关系,以便使得因为对目标对象进行处理而增加的负载可以与电子设备中其他应用程序运行所增加的负载可以相互错开,以降低电子设备的瞬间负载,进而降低电子设备出现卡顿的概率。例如,拍照场景为例,在一些情况下,用户会配置电子设备在拍照之后同步显示图像分享界面,那么在这种情况下,电子设备在控制摄像头进行图像采集的同时还会触发显示图像分享界面,因此,在图像采集的开始阶段的负载会相对更大,那么电子设备则可以从图像(摄像头所采集的图像)对应的多个算法依赖管关系中,选择在开始阶段负载增加不高的算法依赖关系。
作为一种方式,获取数据依赖关系,包括:触发数据依赖关系处理线程获取数据依赖关系。在这种方式中,通过数据依赖关系从多个预设处理算法中选择至少一个预设处理算法,包括:获取数据依赖关系处理线程通过数据依赖关系从多个预设处理算法中选择至少一个预设处理算法。
示例性的,如图8所示,目标对象对应的多个算法包括算法A、算法B、算法C1、算法C2、算法C3、算法D、算法E1、算法E2以及算法F。其中,在图8中示出了每个算法所依赖的数据(算法A是直接对目标对象进行处理),和每个算法在完成执行时所输出的数据。例如,算法A在运行过程中会对a 帧图像(目标对象)进行处理,在算法完成执行时所输出的数据为b帧结果图像。再例如,算法B所依赖的数据为b帧结果图像和c帧图像,那么算法B在运行过程中会基于b帧结果图像和c帧图像进行运行,并输出叠加算法B效果图像。
其中,目标对象所对应的多个算法可以存储在算法队列中。并且,在电子设备中配置有线程池用于存放线程。在通过配置给当前处理过程对应的算法的线程对当前处理过程对应的算法完成执行后,会再触发数据依赖关系处理线程开始工作,以从算法队列中选取满足数据依赖关系的算法(也可以理解为在后处理过程对应的算法)。其中,在当次处理过程对应的算法完成执行并输出处理结果数据后,满足数据依赖关系的算法则为依赖该处理结果数据的算法。在得到满足数据依赖关系算法后,则又会从线程池中选择算法配置给该满足数据依赖关系算法,以便对该满足数据依赖关系算法进行运行。
S260:通过数据依赖关系从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同。
S270:根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程。
S280:运行在后处理过程对应的线程。
需要说明的是,在电子设备所包括的处理器件有多个的情况下,可以将所选择的多个预设处理算法分别分发到不同的处理器件中进行运行,以便有利于进一步的提升多个预设处理算法的并行运行效率,也使得可以提升电子设备的处理器件的利用率。另外,在一些情况下,同一个预设处理算法可以支持在多种处理器件中进行运行。在这种情况下,可以从预设处理算法所支持的多个处理器件中选择1个处理器件作为目标处理器件,以通过目标处理器件对该预设处理算法进行运行。其中,多个处理器件各自的作用可能会有所不同,进而就会造成不同的处理器件的实时负载会有所不同。若某一个处理器件的瞬时负载超过负该处理器件的临界负载或者一段时间内一直处于较高负载状态,则就可能会使得该处理器件出现工作错误,进而造成由该处理器件所执行的任务都无法正常的运行。
在本申请实施例中可以有多种的确定目标处理器件的方式。
作为一种方式,基于多个处理器件各自的负载从多个处理器件中确定目标处理器件,包括:若第三预设处理算法支持在多个处理器件中运行,获取多个处理器件各自的当前负载,将对应的当前负载最小的处理器件作为目标处理器件。从而通过将当前处理过程对应的算法支持的多个处理器件中,当前负载最小的处理器件作为最终运行该当前处理过程对应的算法的处理器件,可以使得可以利用当前负载最小的处理器件来运行算法,进而使得该当前处理过程对应的算法可以更佳高效的处理完成,并且也可以提升电子设备的处理器件的利用率。
示例性的,如图9所示,为目标对象对应的多个预设处理算法各自所支持的处理器件的示意图。如图9所示,示例性的给出a帧图像(一种目标对象) 对应的多个预设处理算法,以及该多个预设处理算法各自所依赖的算法以及所支持的处理器件。其中,a帧图像可以理解为由电子设备的camera hal层得到的多帧图像。例如,用户在通过电子设备进行拍照的过程中,响应于用户触控拍照控件则会连续采集多帧图像,该连续采集的多帧图像则会由电子设备的 camerahal层进行上报以用于算法A进行处理,且算法A所支持的处理器件为 CPU。那么则会由电子设备的CPU运行算法A以对a帧图像进行处理,进而输出b帧结果图像。
在得到b帧结果图像后,b帧结果图像会同c帧图像(也是由由电子设备的camerahal层上报的多帧图像)一起输入到算法B中,由算法B进行处理。其中,算法B所支持的处理期间包括CPU和DSP,在这种情况下,电子设备可以从CPU和DSP中选择负载较小的一个用于运行算法B。在算法B完整运行后,会输出1帧图像,其该1帧图像为叠加算法B效果的图像。
其中,算法C1为用于对a帧图像中的1帧图像进行处理的算法,且算法 C1所支持的处理器件包括CPU和DSP。在这种情况下,电子设备可以控制 CPU和DSP中负载较小的处理器件用于运行算法C1,以对a帧图像中的1帧图像进行处理。对应的,算法D也为用于对a帧图像中的1帧图像进行处理的算法,且算法D所支持的处理器件包括CPU和DSP。在这种情况下,电子设备可以控制CPU和DSP中负载较小的处理器件用于运行算法D,以对a帧图像中的1帧图像进行处理。
在算法C1和算法B完成执行后,则会触发算法C2运行。其中,算法C2 所支持的处理器件包括CPU和NPU。在这种情况下,电子设备可以控制CPU 和NPU中负载较小的处理器件用于运行算法C2。在算法D和算法B完成执行后,则会触发算法E1运行。其中,算法E1所支持的处理器件包括CPU和 GPU。在这种情况下,电子设备可以控制CPU和GPU中负载较小的处理器件用于运行算法E1。
在算法E1和算法C2完成执行后,则会触发算法C3运行。其中,算法 C3所支持的处理器件包括CPU。在这种情况下,电子设备可以控制CPU用于运行算法C3。结合图4可以看出,算法C3输出的为融合图像,在算法C3完成执行后,则会触发算法E2运行,类似的,在算法E2支持的处理器件包括 CPU和GPU的情况下,电子设备可以控制CPU和GPU中负载较小的处理器件用于运行算法E2,在算法E2完成运行后,则可以得到最终输出的图像。
例如,若所确定的当前处理过程对应的算法为算法C1,其中,算法C1 所支持的处理器件包括CPU和DSP(Digital Signal Processor)。在这种情况下,电子设备则可以在运行算法C1之前先获取CPU和DSP各自的负载,若CPU 的负载小于DSP的负载,则会确定通过CPU来运行该算法C1,若CPU的负载高于DSP的负载,则会确定通过DSP来运行该算法C1。
作为另外一种方式,基于多个处理器件各自的负载从多个处理器件中确定目标处理器件,包括:若第三预设处理算法支持在多个处理器件中运行,读取预先存储的多个处理器件在未来指定时间长度内的预估负载,预估负载为基于处理器件的当前负载以及电子设备正在运行的应用程序确定;将对应的预估负载最小的处理器件作为目标处理器件
需要说明的是,在本申请实施例中,电子设备可以通过预先配置的文件来存储所包括的处理器件各自的实时负载,在这种情况下,若需要获取某个处理器件的实时负载的情况下,可以通过直接从该文件中读取处理器件的实时负载,而不用再实时对处理器件进行检测来获取对应的负载,进而提升了获取实时负载的速度。
本实施例提供的一种目标对象处理方法,从而通过上述方式使得在目标对象的当前处理过程中可以在从多个预设处理算法中选取至少两个预设处理算法的情况下,为至少两个预设处理算法配置对应的线程,进而实现并行运行至少两个预设处理算法,以缩短对目标对象的处理过程中的耗时。并且,在本实施例中,还可以配置有数据依赖关系处理线程,从而使得算法的运行和算法的选取可以由不同的线程来执行。并且,在本实施例中,电子设备中还可以存储有数据依赖关系,在该数据依赖关系表征了目标对象对应的多个算法所依赖的数据的情况下,可以直接通过该数据依赖关系来确定每次处理过程对应的算法,提升了获取当前处理过程所对应的算法的便利性。
请参阅图10,本申请提供的一种目标对象处理装置300,运行于电子设备,装置300包括:
算法确定单元310,用于响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的至少两个预设处理算法之间的依赖关系满足第一条件;根据选择的至少两个预设处理算法配置对应的线程;
算法运行单元320,用于并行运行对应于选择的至少两个预设处理算法的线程;响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程;
算法确定单元310,还用于从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同;根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;
算法运行单元320,还用于运行在后处理过程对应的线程。
作为一种方式,算法确定单元310,还具体用于获取数据依赖关系;通过数据依赖关系从多个预设处理算法中选择至少一个预设处理算法。可选的,算法确定单元310,还具体用于触发数据依赖关系处理线程获取数据依赖关系。对应的,算法确定单元310,还具体用于获取数据依赖关系处理线程通过数据依赖关系从多个预设处理算法中选择至少一个预设处理算法。
再者,算法确定单元310,还具体用于获取数据依赖关系标识,数据依赖关系标识用于唯一标识多个算法的一种数据依赖关系;基于数据依赖关系标识获取数据依赖关系并进行存储。对应的,算法确定单元310,还具体用于读取预先存储的数据依赖关系。
作为一种方式,算法确定单元310,还具体用于获取电子设备中目标器件的占用程度,目标器件用于运行线程;若目标器件的占用程度低于占用阈值,根据选择的至少两个预设处理算法配置对应的线程。
作为一种方式,算法确定单元310,还用于响应于摄像头采集到图像,开始基于摄像头采集到图像对应的多个预设处理算法对摄像头采集到图像进行处理。
本申请提供的一种目标对象处理装置,响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,根据选择的至少两个预设处理算法配置对应的线程,并行运行对应于选择的至少两个预设处理算法的线程,再响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程,从多个预设处理算法中选择至少一个预设处理算法。从而通过上述方式使得在目标对象的当前处理过程中可以在从多个预设处理算法中选取至少两个预设处理算法的情况下,为至少两个预设处理算法配置对应的线程,进而实现并行运行至少两个预设处理算法,以缩短对目标对象的处理过程中的耗时。
需要说明的是,在本申请实施例提供的目标对象处理方法全部由服务器进行运行的情况下,所执行的步骤以及步骤的具体实施方式与前述在电子设备中执行是相同的,因此,实施例中则不再重复介绍由服务器单独运行目标对象处理方法的内容。
下面将结合图11对本申请提供的一种电子设备进行说明。
请参阅图11,基于上述的目标对象处理方法、装置,本申请实施例还提供的另一种可以执行前述终端控制方法的电子设备100。电子设备100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104、网络模块 106以及图像采集装置108。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器 104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field- Programmable GateArray,FPGA)、可编程逻辑阵列(Programmable LogicArray, PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据 (比如电话本、音视频数据、聊天记录数据)等。
网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。无线模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。无线模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。
再者,该图像采集装置108可以用于进行图像采集。可选的,图像采集装置108可以包括有彩色图像采集器件以及深度图像采集器件。
请参考图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
综上,本申请提供的一种目标对象处理方法、装置以及电子设备,响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,根据选择的至少两个预设处理算法配置对应的线程,并行运行对应于选择的至少两个预设处理算法的线程,再响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程,从多个预设处理算法中选择至少一个预设处理算法。从而通过上述方式使得在目标对象的当前处理过程中可以在从多个预设处理算法中选取至少两个预设处理算法的情况下,为至少两个预设处理算法配置对应的线程,进而实现并行运行至少两个预设处理算法,以缩短对目标对象的处理过程中的耗时。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种目标对象处理方法,其特征在于,应用于电子设备,所述方法包括:
响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的所述至少两个预设处理算法之间的依赖关系满足第一条件;
根据选择的所述至少两个预设处理算法配置对应的线程;
并行运行对应于选择的所述至少两个预设处理算法的线程;
响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程;
从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同;
根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;
运行在后处理过程对应的线程。
2.根据权利要求1所述的方法,其特征在于,所述从多个预设处理算法中选择至少一个预设处理算法,包括:
获取数据依赖关系;
通过所述数据依赖关系从多个预设处理算法中选择至少一个预设处理算法。
3.根据权利要求2所述的方法,其特征在于,所述获取数据依赖关系,包括:触发数据依赖关系处理线程获取数据依赖关系;
所述通过所述数据依赖关系从多个预设处理算法中选择至少一个预设处理算法,包括:
获取所述数据依赖关系处理线程通过所述数据依赖关系从多个预设处理算法中选择至少一个预设处理算法。
4.根据权利要求2所述的方法,其特征在于,所述获取数据依赖关系之前还包括:
获取数据依赖关系标识,所述数据依赖关系标识用于唯一标识多个算法的一种数据依赖关系;基于所述数据依赖关系标识获取数据依赖关系并进行存储;
所述获取数据依赖关系,包括:
读取预先存储的数据依赖关系。
5.根据权利要求1所述的方法,其特征在于,所述根据选择的所述至少两个预设处理算法配置对应的线程,包括:
获取电子设备中目标器件的占用程度,所述目标器件用于运行线程;
若所述目标器件的占用程度低于占用阈值,根据选择的所述至少两个预设处理算法配置对应的线程。
6.根据权利要求1所述的方法,其特征在于,响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法之前还包括:
响应于摄像头采集到图像,开始基于所述摄像头采集到图像对应的多个预设处理算法对摄像头采集到图像进行处理。
7.一种目标对象处理方法,其特征在于,应用于服务器,所述方法包括:
响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的所述至少两个预设处理算法之间的依赖关系满足第一条件;
根据选择的所述至少两个预设处理算法配置对应的线程;
并行运行对应于选择的所述至少两个预设处理算法的线程;
响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程;
从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同;
根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;运行在后处理过程对应的线程。
8.一种目标对象处理装置,其特征在于,运行于电子设备,所述装置包括:
算法确定单元,用于响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择至少两个预设处理算法,选择的所述至少两个预设处理算法之间的依赖关系满足第一条件;根据选择的所述至少两个预设处理算法配置对应的线程;
算法运行单元,用于并行运行对应于选择的所述至少两个预设处理算法的线程;响应于接受到针对目标对象当前处理过程的结束触发条件,启动当前处理过程的在后处理过程;
算法确定单元,还用于从多个预设处理算法中选择至少一个预设处理算法,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中之一的依赖关系满足第二条件,在后处理过程中所选择的至少一个预设处理算法与所述当前处理过程中所选择的至少两个预设处理算法的其中另一的依赖关系满足第三条件,第一条件、第二条件和第三条件不同;根据选择的在后处理过程选择的至少一个预设处理算法配置对应的线程;
算法运行单元,还用于运行在后处理过程对应的线程。
9.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;
一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1-6任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行权利要求1-6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210524560.1A CN114995898A (zh) | 2022-05-13 | 2022-05-13 | 目标对象处理方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210524560.1A CN114995898A (zh) | 2022-05-13 | 2022-05-13 | 目标对象处理方法、装置以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114995898A true CN114995898A (zh) | 2022-09-02 |
Family
ID=83026493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210524560.1A Pending CN114995898A (zh) | 2022-05-13 | 2022-05-13 | 目标对象处理方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114995898A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000036562A1 (en) * | 1998-12-15 | 2000-06-22 | Intensys Corporation | Digital camera using programmed parallel computer for image processing functions and control |
US20090089658A1 (en) * | 2007-09-27 | 2009-04-02 | The Research Foundation, State University Of New York | Parallel approach to xml parsing |
US20090138862A1 (en) * | 2007-11-22 | 2009-05-28 | Kabushiki Kaisha Toshiba | Program parallelization supporting apparatus and program parallelization supporting method |
CN103019671A (zh) * | 2012-10-08 | 2013-04-03 | 中国科学院对地观测与数字地球科学中心 | 面向数据密集型遥感图像处理的泛型编程的框架编程方法 |
CN104506867A (zh) * | 2014-12-01 | 2015-04-08 | 北京大学 | 采样点自适应偏移参数估计方法及装置 |
CN105992008A (zh) * | 2016-03-30 | 2016-10-05 | 南京邮电大学 | 一种在多核处理器平台上的多层次多任务并行解码算法 |
CN106358003A (zh) * | 2016-08-31 | 2017-01-25 | 华中科技大学 | 一种基于线程级流水线的视频分析加速方法 |
CN106445688A (zh) * | 2016-09-30 | 2017-02-22 | 电子科技大学 | 一种基于mic计算平台的nlm并行图像增强方法 |
CN111737075A (zh) * | 2020-06-19 | 2020-10-02 | 浙江大华技术股份有限公司 | 执行顺序的确定方法及装置、存储介质、电子装置 |
CN112596880A (zh) * | 2020-12-25 | 2021-04-02 | 深圳市元征科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112882813A (zh) * | 2021-03-18 | 2021-06-01 | 苏州科达科技股份有限公司 | 任务调度方法、装置、系统及电子设备 |
-
2022
- 2022-05-13 CN CN202210524560.1A patent/CN114995898A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000036562A1 (en) * | 1998-12-15 | 2000-06-22 | Intensys Corporation | Digital camera using programmed parallel computer for image processing functions and control |
US20090089658A1 (en) * | 2007-09-27 | 2009-04-02 | The Research Foundation, State University Of New York | Parallel approach to xml parsing |
US20090138862A1 (en) * | 2007-11-22 | 2009-05-28 | Kabushiki Kaisha Toshiba | Program parallelization supporting apparatus and program parallelization supporting method |
CN103019671A (zh) * | 2012-10-08 | 2013-04-03 | 中国科学院对地观测与数字地球科学中心 | 面向数据密集型遥感图像处理的泛型编程的框架编程方法 |
CN104506867A (zh) * | 2014-12-01 | 2015-04-08 | 北京大学 | 采样点自适应偏移参数估计方法及装置 |
CN105992008A (zh) * | 2016-03-30 | 2016-10-05 | 南京邮电大学 | 一种在多核处理器平台上的多层次多任务并行解码算法 |
CN106358003A (zh) * | 2016-08-31 | 2017-01-25 | 华中科技大学 | 一种基于线程级流水线的视频分析加速方法 |
CN106445688A (zh) * | 2016-09-30 | 2017-02-22 | 电子科技大学 | 一种基于mic计算平台的nlm并行图像增强方法 |
CN111737075A (zh) * | 2020-06-19 | 2020-10-02 | 浙江大华技术股份有限公司 | 执行顺序的确定方法及装置、存储介质、电子装置 |
CN112596880A (zh) * | 2020-12-25 | 2021-04-02 | 深圳市元征科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112882813A (zh) * | 2021-03-18 | 2021-06-01 | 苏州科达科技股份有限公司 | 任务调度方法、装置、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021057619A1 (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN107480587B (zh) | 一种模型配置以及图像识别的方法及装置 | |
CN111782403B (zh) | 数据处理方法、装置以及电子设备 | |
CN107295352B (zh) | 一种视频压缩方法、装置、设备及存储介质 | |
CN110727607B (zh) | 内存回收方法、装置以及电子设备 | |
CN111367828B (zh) | 内存压缩方法、装置、终端及存储介质 | |
WO2021057623A1 (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN111782402A (zh) | 数据处理方法、装置以及电子设备 | |
JP2022509191A (ja) | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 | |
CN115220912A (zh) | 系统资源的配置方法、装置、电子设备以及存储介质 | |
CN110599581B (zh) | 图像模型数据处理方法、装置以及电子设备 | |
CN112488563B (zh) | 一种算力参数的确定方法和装置 | |
CN112487223A (zh) | 图像处理方法、装置以及电子设备 | |
CN114995898A (zh) | 目标对象处理方法、装置以及电子设备 | |
CN110503042B (zh) | 图像处理方法、装置以及电子设备 | |
CN114968564A (zh) | 目标对象处理方法、装置以及电子设备 | |
CN111813529A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN117687772A (zh) | 一种算法调度方法及电子设备 | |
CN114860447A (zh) | 对象处理方法、装置以及电子设备 | |
CN114125159A (zh) | 一种语音播报方法、装置及计算机可读存储介质 | |
CN112052089B (zh) | 内存回收方法、装置以及电子设备 | |
US11900661B2 (en) | Image processing method, device, storage medium and camera | |
CN111444022B (zh) | 数据处理方法、系统以及电子设备 | |
CN110365962B (zh) | 色域转换处理方法、装置以及电子设备 | |
CN114330675A (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 |