CN114968564A - 目标对象处理方法、装置以及电子设备 - Google Patents
目标对象处理方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN114968564A CN114968564A CN202210533507.8A CN202210533507A CN114968564A CN 114968564 A CN114968564 A CN 114968564A CN 202210533507 A CN202210533507 A CN 202210533507A CN 114968564 A CN114968564 A CN 114968564A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- processing
- preset
- preset processing
- target object
- 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
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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,然后由服务器200来执行通过配置给所述当前处理过程对应的算法的线程,对所述当前处理过程对应的算法进行运行,以对所述在前处理过程生成的处理结果数据进行处理,若所述当前处理过程对应的算法完成执行,将完成执行的消息再返回给电子设备100。
需要说明的是,在由电子设备和服务器协同执行的这种方式中,电子设备和服务器分别执行的步骤不限于上述示例中所介绍的方式,在实际应用中,可以根据实际情况动态的调整电子设备和服务器分别执行的步骤。
需要说明的是,其中的电子设备100除了为图1和图2中所示的智能手机外,还可以为平板电脑、智能手表、智能语音助手等设备。服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。在本申请实施例提供的目标对象处理方法由多个物理服务器构成的服务器集群或者分布式系统执行的情况下,目标对象处理方法中的不同步骤可以分别由不同的物理服务器执行,或者可以由基于分布式系统构建的服务器基于分布式的方式执行。
为了便于更好的对本申请实施例进行理解,下面先对本申请实施例中涉及的一些概念进行说明。
算法依赖的数据:算法依赖的数据表征了算法在运行过程中所需要的数据。其中,所需要的数据可以理解为算法在运行过程中作为输入而输入到算法中的数据。
算法的拆分:在本申请实施例中,算法的拆分可以理解为将一个算法拆分为多个子算法。其中,该被拆分的算法可以由多个算法所组成,其中,该多个算法都可以理解为被拆分的算法的子算法。示例性的,算法D由算法D1、算法D2以及算法D3组成,那么算法D1、算法D2以及算法D3均可以作为算法D的子算法。
下面将结合附图来本申请实施例进行说明。
请参阅图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:响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,从多个预设处理算法中选择一第三预设处理算法,运行选择的第三预设处理算法,其中第三预设处理算法是针对第一预设处理算法所产生的数据进行计算处理。
其中,所选择的第三预设处理算法依赖的数据为第一预设处理爽所产生的数据,因此,在第一预设处理算法完成运行后,所确定的在后处理过程的算法则为第三预设处理算法。其中,第二预设处理算法和第三预设处理算法可以为从同一个算法中所拆分出的两个算法。例如,其中的第二预设处理算法和前述的第一预设处理算法所依赖数据为相同的,那么则第二预设处理算法则可以提前与第一预设处理算法并行运行。
下面再通过图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:并行运行选择的第一预设处理算法和第二预设处理算法。
作为一种方式,并行运行选择的第一预设处理算法和第二预设处理算法,包括:为选择的第一预设处理算法和第二预设处理算法分别配置对应的线程,通过第一预设处理算法和第二预设处理算法各自对应的线程,并行对第一预设处理算法和第二预设处理算法进行运行。
需要说明的是,如前述内容可知,目标对象所对应的多个预设处理算法是基于算法依赖确定各自的运行顺序的,则可能会有多个在后运行的算法依赖于同一个在前运行的算法。所以,所确定的当前处理过程对应的算法则可能会有多个,因此,为当前处理过程所运行的算法分别配置对应的线程,可以使得当前处理过程所确定的算法可以并行运行。作为一种方式,可以在确定当前处理过程对应的算法时,同步确定当前处理过程对应的算法的数量,若当前处理过程对应的算法有多个,为当前处理过程对应的多个预设处理算法分别配置对应的线程,基于多个预设处理算法各自对应的线程运行对应的算法以分别对在前处理过程生成的处理结果数据进行处理。例如前述的为选择的第一预设处理算法和第二预设处理算法分别配置对应的线程。
需要说明的是,并行进行运行的线程数量越多,电子设备实时产生的负载也就越高。在一些情况下,电子设备所同时运行的应用程序可能会较多,在这种情况下,如果依然为当次处理过程中的多个预设处理算法分别配置对应的线程,则可能会使得电子设备的负载进一步的升高,而导致电子设备出现卡顿的情况。作为一种改善方式,若当前处理过程对应的算法有多个,可以获取电子设备中处理器件的占用程度,若处理器件的占用程度低于占用阈值,为当前处理过程对应的多个预设处理算法分别配置对应的线程,从而通过这种方式使得电子设备可以根据处理器件的占用程度来确定电子设备的负载,进而根据负载情况下来确定是否要为当前处理过程所确定的多个预设处理算法分别配置对应的线程,进而提升了对象处理过程中的灵活性,也降低了电子设备出现卡顿的概率。
在获取处理器件的占用程度的过程中,获取占用程度的处理器件可以为当前处理过程所确定的算法所对应的处理器件。其中,算法所对应的处理器件可以理解为对该算法进行运行的处理器件。例如,算法A配置为由电子设备的GPU(Graphics Processing Unit)运行,那么算法A所对应的处理器件则为GPU。其中,处理器件的占用程度可以为处理器件的利用率。
对应的,若当前处理过程对应的算法有多个且处理器件的占用程度不低于占用阈值,则所配置用于运行当前处理过程对应的算法线程的数量少于当前处理过程对应的算法的数量,以减少并行运行的算法的数量。在用于运行当前处理过程对应的算法线程的数量少于当前处理过程对应的算法的数量的情况下,可以基于当前处理过程中对应的多个预设处理算法各自的算法优先级来确定具体的执行顺序,在确定当前处理过程中对应的多个预设处理算法的执行顺序后,则可以基于该执行顺序以及所配置的线程运行。示例性的,所确定的当前处理过程对应的算法可以有为算法B1、算法B2以及算法C,且确定处理器件的占用程度不低于占用阈值,那么配置给当前处理过程的线程的数量可以为两个,再者,算法B1、算法B2以及算法C所确定的执行顺序可以为先执行算法B1,再执行算法B2然后再执行算法C。在这种情况下,则可以先通过所配置的两个线程来并行执行算法B1和算法B2,当算法B1和算法B2中有算法完成执行后,再由空闲的线程来执行算法C。在确定处理器件的占用程度不低于占用阈值时,可以根据算法优先级配置当前处理过程的线程数量,优先为高优先级的算法配置线程。
其中,如前述内容所示,若当前处理过程对应的算法有多个且处理器件的占用程度不低于占用阈值的情况下,配置给当前处理过程的算法的线程数量会少于当次处理过程对应的算法的数量,在这种情况下,电子设备也可以根据多种方式来确定所配置给当前处理过程中的线程的数量。
作为一种方式,电子设备可以直接根据当前处理过程的算法的数量来确定所配置的线程的数量。可选的,可以将当前处理过程的算法的数量减去预设值,则得到了所配置的线程的数量。例如,该预设值可以为1。
作为另外一种方式,电子设备可以参考电子设备所运行的应用程序的数量以及当前剩余电量中的至少一项参数来确定所配置的线程的数量。在这种方式下,若是基于所运行的应用程序的数量来确定所配置的线程的数量的情况下,可以建立有应用程序的数量与所配置的线程的数量之间的对应关系,进而基于应用程序的数量与所配置的线程之间的对应关系来确定所配置的线程的数量。若是基于当前剩余电量来确定所配置的线程的数量的情况下,可以建立有当前剩余电量与所配置的线程的数量之间的对应关系,进而当前剩余电量与所配置的线程之间的对应关系来确定所配置的线程的数量。若是基于电子设备所运行的应用程序的数量以及当前剩余电量来共同确定所配置的线程的数量的情况下,可以建立有基于电子设备所运行的应用程序的数量以及当前剩余电量所共同对应的线程的数量。
S230:响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,获取算法依赖关系。
其中,算法依赖关系表征了目标对象对应的多个预设处理算法各自所依赖的算法。并且,每个预设处理算法都是相邻于所依赖的预设处理算法之后运行。
需要说明的是,对于每个类型的目标对象而言所对应的多个预设处理算法是不同的,那么每个类型的目标对象各自所对应的算法依赖关系也是不同的。作为一种方式,电子设备可以预先在电子设备中存储每个类型的对象所对应的算法依赖关系,从而使得在确定目标对象后,可以直接读取本地预先存储的算法依赖关系。
再者,需要说明的是,在本申请实施例中,在对初始处理算法进行拆分的过程中是基于算法依赖的数据进行算法拆分的,对于部分的子算法依赖的数据可以是从在前的多个阶段均可以获取得到,因此,所拆分出的算法依赖的算法也可以有多种,进而就使得最终所得到算法依赖关系也可能会有多种。
示例性的,如图7所示,算法D可以拆分为算法D1、算法D2和算法D3。其中,对于算法D1而言,可以是在算法A之后执行,也可以在算法B之后执行。在这种情况下,所确定的算法依赖关系可以为算法B依赖算法A,算法D1依赖算法A,算法C依赖算法B,算法D2和算法D3依赖算法C。再者,所确定的算法依赖关系还可以为算法B依赖算法A,算法D1依赖算法B,算法C依赖算法B,算法D2和算法D3依赖算法C。对于该两种算法依赖关系可以发现,在算法D1依赖算法A的情况下,则算法D1和算法B(也依赖算法A)会同步开始运行,在算法D1依赖算法B的情况下,算法D1则会和算法C(也依赖算法B)同步开始运行。可以理解的是,并行运行的算法越多,电子设备的实时负载也就越高,而前述所示的两种算法依赖关系中,若算法D1和算法B并行处理,则会在算法D1和算法B并行运行的时间内有较高的负载,若算法D1和算法C并行处理,则会在算法D1和算法C并行运行的时间内有较高的负载,也就是说,同一个对象所对应的多个预设处理算法依赖关系,各自对应的负载变化情况不同。算法依赖关系所对应的负载变化情况可以理解为在就要该算法依赖关系对目标对象的多个预设处理算法进行运行的过程中,所使得电子设备增加的负载随时间变化的幅度不同。
那么若目标对象所对应的多个预设处理算法依赖关系有多个,且各自对应的负载变化情况不同的情况下,电子设备可以从目标对象对应的多个预设处理算法依赖关系中选择与电子设备当前的负载最为匹配的算法依赖关系,以便使得因为对目标对象进行处理而增加的负载可以与电子设备中其他应用程序运行所增加的负载可以相互错开,以降低电子设备的瞬间负载,进而降低电子设备出现卡顿的概率。例如,拍照场景为例,在一些情况下,用户会配置电子设备在执行拍照操作之后同步显示图像分享界面,那么在这种情况下,电子设备在控制摄像头进行拍照的同时还会触发显示图像分享界面,因此,在图像采集的开始阶段的负载会相对更大(在触发显示图像分享界面之后,因为图像分享界面已经完成绘制而显示在屏幕中,所以电子设备的负载会相对降低),那么电子设备则可以从图像(摄像头所采集的图像)对应的多个预设处理算法依赖关系中,选择在开始阶段负载增加不高的算法依赖关系。
S240:通过获取算法依赖关系从多个预设处理算法中选择一第三预设处理算法,运行选择的第三预设处理算法,其中第三预设处理算法是针对第一预设处理算法所产生的数据进行计算处理。
示例性的,目标对象对应的多个预设处理算法包括算法A、算法B1以及算法C。那么该目标对象所对应的算法依赖关系可以为:算法B1依赖于算法A,算法B2依赖于算法A,算法C依赖于算法B1。在这种情况下,若当前处理过程所对应的第一预设处理算法为算法A,那么基于该算法依赖关系,所确定的第三预设处理算法可以包括算法B1。
需要说明的是,在电子设备中建立有逻辑处理线程的情况下,预设处理算法的运行和预设处理算法的选取则可以由不同的线程执行,从而降低单个线程的运行压力。可选的预设处理算法的运行可以由主线程来运行,而在通过主线程完成对当前处理过程的预设处理算法的运行后,主线程可以调用逻辑处理线程来选择在后处理过程所对应的预设处理算法。
作为一种方式,响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,获取算法依赖关系,包括:响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,触发逻辑处理线程获取算法依赖关系。在这种方式下,通过获取算法依赖关系从多个预设处理算法中选择一第三预设处理算法,包括:获取逻辑处理线程通过算法依赖关系获取得到的一第三预设处理算法。
本实施例提供的一种目标对象处理方法,从而通过上述方式使得在对目标对象的处理过程中,对于目标对象对应的多个预设处理算法中的第一预设处理算法和第二预设处理算法可以并行运行,从而有利于缩短对目标对象的整体的处理耗时。并且,在本实施例中,电子设备中还可以存储有算法依赖关系,在该算法依赖关系表征了目标对象对应的多个预设处理算法依赖关系的情况下,可以直接通过该算法依赖关系来确定每次处理过程对应的算法(例如,第三预设处理算法),提升了获取当前处理过程所对应的算法的便利性。再者,在实施例中,还配置有逻辑处理线程用于根据算法依赖关系确定当前处理过程所对应的算法,从而使得算法的运行和算法的选取可以由不同的线程来执行。
请参阅图8,本申请提供的一种目标对象处理方法,应用于电子设备,方法包括:
S310:响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择一第一预设处理算法和一第二预设处理算法。
S320:并行运行选择的第一预设处理算法和第二预设处理算法。
S330:响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,从多个预设处理算法中选择一第三预设处理算法,若第三预设处理算法支持在多个处理器件中运行,基于多个处理器件各自的负载从多个处理器件中确定目标处理器件。
需要说明的是,在电子设备所包括的处理器件有多个的情况下,多个处理器件各自的作用可能会有所不同,进而就会造成不同的处理器件的实时负载会有所不同。若某一个处理器件的瞬时负载超过负该处理器件的临界负载或者一段时间内一直处于较高负载状态,则就可能会使得该处理器件出现工作错误,进而造成由该处理器件所执行的任务都无法正常的运行。
在本申请实施例中可以有多种的确定目标处理器件的方式。
作为一种方式,基于多个处理器件各自的负载从多个处理器件中确定目标处理器件,包括:若第三预设处理算法支持在多个处理器件中运行,获取多个处理器件各自的当前负载;将对应的当前负载最小的处理器件作为目标处理器件。
从而通过将当前处理过程对应的算法支持的多个处理器件中,当前负载最小的处理器件作为最终运行该当前处理过程对应的算法的处理器件,可以使得可以利用当前负载最小的处理器件来运行算法,进而使得该当前处理过程对应的算法可以更佳高效的处理完成,并且也可以提升电子设备的处理器件的利用率。
示例性的,如图9所示,为目标对象对应的多个算法各自所支持的处理器件的示意图。如图9所示,示例性的给出a帧图像(一种目标对象)对应的多个算法,以及该多个算法各自所依赖的算法以及所支持的处理器件。其中,a帧图像可以理解为由电子设备的camerahal层得到的多帧图像。例如,用户在通过电子设备进行拍照的过程中,响应于用户触控拍照控件则会连续采集多帧图像,该连续采集的多帧图像则会由电子设备的camera hal层进行上报以用于算法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。
作为另外一种方式,基于多个处理器件各自的负载从多个处理器件中确定目标处理器件,包括:若第三预设处理算法支持在多个处理器件中运行,读取预先存储的多个处理器件在未来指定时间长度内的预估负载,预估负载为基于处理器件的当前负载以及电子设备正在运行的应用程序确定;将对应的预估负载最小的处理器件作为目标处理器件
需要说明的是,在本申请实施例中,电子设备可以通过预先配置的文件来存储所包括的处理器件各自的实时负载,在这种情况下,若需要获取某个处理器件的实时负载的情况下,可以通过直接从该文件中读取处理器件的实时负载,而不用再实时对处理器件进行检测来获取对应的负载,进而提升了获取实时负载的速度。
S340:控制目标处理器件运行第三预设处理算法,其中第三预设处理算法是针对第一预设处理算法所产生的数据进行计算处理。
本实施例提供的一种目标对象处理方法,从而通过上述方式使得在对目标对象的处理过程中,对于目标对象对应的多个预设处理算法中的第一预设处理算法和第二预设处理算法可以并行运行,从而有利于缩短对目标对象的整体的处理耗时。并且,在本实施例中,在确定当前处理过程对应的算法后,可以在该算法支持在多个处理器件中运行的情况下,可以灵活的根据所支持的处理器件的负载来确定具体是哪个处理器件中进行运行,进而有利于选取为当前处理通过对应的算法选取更为合适的处理器件,以提升目标对象处理的整体速度。
请参阅图10,本申请提供的一种目标对象处理装置400,运行于电子设备,装置400包括:
算法确定单元410,用于响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择一第一预设处理算法和一第二预设处理算法。算法执行单元420,用于并行运行选择的第一预设处理算法和第二预设处理算法。
算法确定单元410,还用于响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,从多个预设处理算法中选择一第三预设处理算法。算法执行单元420,还用于运行选择的第三预设处理算法,其中第三预设处理算法是针对第一预设处理算法所产生的数据进行计算处理。
算法执行单元420,具体用于若第三预设处理算法支持在多个处理器件中运行,基于多个处理器件各自的负载从多个处理器件中确定目标处理器件;控制目标处理器件运行第三预设处理算法。可选的,算法执行单元420,具体用于若第三预设处理算法支持在多个处理器件中运行,获取多个处理器件各自的当前负载;将对应的当前负载最小的处理器件作为目标处理器件。可选的,算法执行单元420,具体用于若第三预设处理算法支持在多个处理器件中运行,读取预先存储的多个处理器件在未来指定时间长度内的预估负载,预估负载为基于处理器件的当前负载以及电子设备正在运行的应用程序确定;将对应的预估负载最小的处理器件作为目标处理器件。
作为一种方式,算法确定单元410,具体用于响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,获取算法依赖关系;通过获取算法依赖关系从多个预设处理算法中选择一第三预设处理算法。可选的,算法确定单元410,具体用于响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,触发逻辑处理线程获取算法依赖关系。对应的,还具体用于获取逻辑处理线程通过算法依赖关系获取得到的一第三预设处理算法。
作为一种方式,算法执行单元420,具体用于为选择的第一预设处理算法和第二预设处理算法分别配置对应的线程;通过第一预设处理算法和第二预设处理算法各自对应的线程,并行对第一预设处理算法和第二预设处理算法进行运行。可选的,算法执行单元420,具体用于获取电子设备中处理器件的占用程度;若处理器件的占用程度低于占用阈值,为选择的第一预设处理算法和第二预设处理算法分别配置对应的线程。
作为一种方式,算法确定单元410,还用于响应于摄像头采集到图像,开始基于图像对应的多个算法对图像进行多次处理。
本实施例提供的一种目标对象处理装置,从而通过上述方式使得在对目标对象的处理过程中,对于目标对象对应的多个预设处理算法中的第一预设处理算法和第二预设处理算法可以并行运行,从而有利于缩短对目标对象的整体的处理耗时。
下面将结合图10对本申请提供的一种电子设备进行说明。
请参阅图10,基于上述的目标对象处理方法、装置,本申请实施例还提供的另一种可以执行前述终端控制方法的电子设备100。电子设备100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104、网络模块106以及图像采集装置108。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(CentralProcessing 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可以包括有彩色图像采集器件以及深度图像采集器件。
请参考图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
综上,本申请提供的一种目标对象处理方法、装置以及电子设备,在基于算法依赖的数据对目标对象对应的多个初始处理算法进行拆分,以得到目标对象对应的多个算法的情况下,在对目标对象进行处理的过程中,可以响应于在前处理过程所对应算法执行结束完成执行,基于在前处理过程所对应算法从多个算法中确定当前处理过程对应的算法,在通过配置给当前处理过程对应的算法的线程,对当前处理过程对应的算法进行运行,以对在前处理过程生成的处理结果数据进行处理。从而通过上述方式使得在对目标对象的处理过程中,对于目标对象对应的多个预设处理算法中的第一预设处理算法和第二预设处理算法可以并行运行,从而有利于缩短对目标对象的整体的处理耗时。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (13)
1.一种目标对象处理方法,其特征在于,应用于电子设备,所述方法包括:
响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择一第一预设处理算法和一第二预设处理算法;
并行运行选择的所述第一预设处理算法和第二预设处理算法;
响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,从多个预设处理算法中选择一第三预设处理算法,运行选择的所述第三预设处理算法,其中第三预设处理算法是针对所述第一预设处理算法所产生的数据进行计算处理。
2.根据权利要求1所述的方法,其特征在于,所述运行选择的所述第三预设处理算法,包括:
若所述第三预设处理算法支持在多个处理器件中运行,基于所述多个处理器件各自的负载从所述多个处理器件中确定目标处理器件;
控制所述目标处理器件运行所述第三预设处理算法。
3.根据权利要求2所述的方法,其特征在于,所述基于所述多个处理器件各自的负载从所述多个处理器件中确定目标处理器件,包括:
若所述第三预设处理算法支持在多个处理器件中运行,获取所述多个处理器件各自的当前负载;
将对应的当前负载最小的处理器件作为目标处理器件。
4.根据权利要求2所述的方法,其特征在于,所述基于所述多个处理器件各自的负载从所述多个处理器件中确定目标处理器件,包括:
若所述第三预设处理算法支持在多个处理器件中运行,读取预先存储的多个处理器件在未来指定时间长度内的预估负载,所述预估负载为基于处理器件的当前负载以及电子设备正在运行的应用程序确定;
将对应的预估负载最小的处理器件作为目标处理器件。
5.根据权利要求1所述的方法,其特征在于,所述响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,从多个预设处理算法中选择一第三预设处理算法,包括:
响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,获取算法依赖关系;
通过所述获取算法依赖关系从多个预设处理算法中选择一第三预设处理算法。
6.根据权利要求5所述的方法,其特征在于,所述响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,获取算法依赖关系,包括:
响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,触发逻辑处理线程获取算法依赖关系;
所述通过所述获取算法依赖关系从多个预设处理算法中选择一第三预设处理算法,包括:
获取所述逻辑处理线程通过所述算法依赖关系获取得到的一第三预设处理算法。
7.根据权利要求1所述的方法,其特征在于,所述并行运行选择的所述第一预设处理算法和第二预设处理算法,包括:
为选择的所述第一预设处理算法和第二预设处理算法分别配置对应的线程;
通过第一预设处理算法和第二预设处理算法各自对应的线程,并行对第一预设处理算法和第二预设处理算法进行运行。
8.根据权利要求7所述的方法,其特征在于,所述为选择的所述第一预设处理算法和第二预设处理算法分别配置对应的线程,包括:
获取电子设备中处理器件的占用程度;
若所述处理器件的占用程度低于占用阈值,为选择的所述第一预设处理算法和第二预设处理算法分别配置对应的线程。
9.根据权利要求1-8任一所述的方法,其特征在于,所述目标对象为通过摄像头所采集的图像,所述响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择一第一预设处理算法和一第二预设处理算法之前还包括:
响应于摄像头采集到图像,开始基于所述图像对应的多个算法对所述图像进行多次处理。
10.一种目标对象处理方法,其特征在于,应用于服务器,所述方法包括:
响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择一第一预设处理算法和一第二预设处理算法;
并行运行选择的所述第一预设处理算法和第二预设处理算法;
响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,从多个预设处理算法中选择一第三预设处理算法,运行选择的所述第三预设处理算法,其中第三预设处理算法是针对所述第一预设处理算法所产生的数据进行计算处理。
11.一种目标对象处理装置,其特征在于,运行于电子设备,所述装置包括:
算法确定单元,用于响应于接受到针对目标对象当前处理过程的启动触发条件,从多个预设处理算法中选择一第一预设处理算法和一第二预设处理算法;
算法执行单元,用于并行运行选择的所述第一预设处理算法和第二预设处理算法;
所述算法确定单元,还用于响应于接受到针对目标对象当前处理过程的第一预设处理算法的结束触发条件,从多个预设处理算法中选择一第三预设处理算法,所述算法执行单元,还用于运行选择的所述第三预设处理算法,其中第三预设处理算法是针对所述第一预设处理算法所产生的数据进行计算处理。
12.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;
一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1-9任一所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行权利要求1-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210533507.8A CN114968564A (zh) | 2022-05-13 | 2022-05-13 | 目标对象处理方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210533507.8A CN114968564A (zh) | 2022-05-13 | 2022-05-13 | 目标对象处理方法、装置以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968564A true CN114968564A (zh) | 2022-08-30 |
Family
ID=82984271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210533507.8A Pending CN114968564A (zh) | 2022-05-13 | 2022-05-13 | 目标对象处理方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968564A (zh) |
-
2022
- 2022-05-13 CN CN202210533507.8A patent/CN114968564A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021057619A1 (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN111163345A (zh) | 一种图像渲染方法及装置 | |
CN109062715B (zh) | 内存时钟频率的确定方法、装置及终端 | |
CN107295352B (zh) | 一种视频压缩方法、装置、设备及存储介质 | |
CN111782403B (zh) | 数据处理方法、装置以及电子设备 | |
US20220058772A1 (en) | Image Processing Method and Device | |
JP2022509191A (ja) | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 | |
CN111782402A (zh) | 数据处理方法、装置以及电子设备 | |
CN110599581B (zh) | 图像模型数据处理方法、装置以及电子设备 | |
CN112291475A (zh) | 拍照方法、装置及电子设备 | |
CN112487223A (zh) | 图像处理方法、装置以及电子设备 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114968564A (zh) | 目标对象处理方法、装置以及电子设备 | |
CN114995898A (zh) | 目标对象处理方法、装置以及电子设备 | |
CN112052089B (zh) | 内存回收方法、装置以及电子设备 | |
CN114860447A (zh) | 对象处理方法、装置以及电子设备 | |
CN115587049A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
US11900661B2 (en) | Image processing method, device, storage medium and camera | |
CN111444022B (zh) | 数据处理方法、系统以及电子设备 | |
CN109819187B (zh) | 视频录制的控制方法、装置、移动终端及存储介质 | |
CN112099736A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN108647097B (zh) | 文本图像处理方法、装置、存储介质及终端 | |
CN117130764A (zh) | 算法运行方法、装置、电子设备及存储介质 | |
CN106776010B (zh) | 一种资源配置方法及终端 | |
CN112037814A (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 |