本技术涉及终端,尤其涉及一种相机控制方法、设备、芯片系统、存储介质及程序产品。
背景技术:
1、随着终端技术领域的发展,电子设备中的相机应用能够支持越来越多的功能。示例性地,在电子设备启动相机应用后,且接收到指示拍摄的输入操作之前,电子设备可以显示相机应用预览界面,以使用户可以预览待拍摄的画面。并且,在该过程中,相机应用可以进行对象识别,例如识别拍摄对象为人物、美食或美景等,以在预览界面中显示识别出的对象的标识;或者,相机应用还可以进行目标追踪,例如在待拍摄的人物移动过程中,预览界面中始终能够对焦该人物等。
2、然而,在相机应用启动或运行过程中,相机应用可能出现卡顿或闪退等现象,影响用户体验。
技术实现思路
1、本技术实施例提供一种相机控制方法、设备、芯片系统、存储介质及程序产品,应用于终端技术领域。能够基于电子设备的运行状态,运行与电子设备运行状态相匹配的相机应用的感知类算法,使得电子设备的运行状态能够支持运行感知类算法的概率较高,从而可以减少相机应用卡顿或闪退等问题,提升用户体验。
2、第一方面,本技术实施例提出一种相机控制方法,应用于电子设备,电子设备安装有相机应用,该方法包括:获取第一参数,第一参数用于指示电子设备的第一运行状态,且第一参数包括与以下一项或几项相关的参数:电子设备的温度、中央处理器cpu资源、图形处理器gpu资源或内存;在相机应用运行在前台的情况下,基于第一参数,加载与第一参数对应的第一算法,第一算法用于实现相机应用的功能。
3、其中,第一参数可以为下文中与电子设备运行相关的一些指标。与cpu资源相关的参数可以为下文中的cpu性能参数。获取第一参数的过程可以参照下文中的图8实施例的相关描述。第一运行状态可以理解为电子设备的状态。第一算法可以为下文中的感知类算法中的部分或全部算法。电子设备加载与第一参数对应的第一算法,也即,电子设备可以基于电子设备的第一运行状态加载对应的第一算法。
4、加载第一算法也可以理解为加载第一算法的配置文件,并且,电子设备可以基于第一算法的配置文件配置第一算法。配置文件例如可以包括第一算法运行所需的各种参数,例如第一算法运行所需设置的参数(与第一算法运行相关的阈值、处理输入数据的预处理步骤等),还例如环境参数等,也即为了运行第一算法对gpu和/或dsp等硬件进行设置的参数。
5、一种可能的情况下,第一算法可以是基于指示启动相机应用的输入操作以及第一参数加载的。也即,在相机应用启动时,电子设备基于第一参数加载第一算法。
6、另一种可能的情况下,第一算法可以是相机应用运行过程中,基于电子设备的运行状态变好加载的,例如在加载第一算法之前,电子设备已经加载有算法1(可以是一个或多个算法),则基于电子设备的运行状态变好,电子设备又加载了第一算法,则第一参数可以对应第一算法与算法1。
7、还一种可能的情况下,第一算法可以是相机应用运行过程中,基于电子设备的运行状态变差丢弃或删除其余算法后剩余的算法。加载第一算法也可以理解为电子设备丢弃算法2(可以是一个或多个算法)。也即,在加载第一算法之前,电子设备已经加载了第一算法与算法2,则基于电子设备的运行状态变差,电子设备丢弃算法2,则电子设备中加载的算法还剩余第一算法。
8、示例性地,以下文中的电子设备的状态被划分为很差、较差、较好为例,在第一运行状态为很差时,第一算法可以为下文中的高优先级的感知类算法。类似的,在第一运行状态为较差时,第一算法可以为下文中的高优先级和中优先级的感知类算法;在第一运行状态为较好时,第一算法可以为下文中的全部的感知类算法。
9、本技术的相机控制方法,在相机应用启动或运行过程中,电子设备可以获取能够用于指示电子设备运行状态的第一参数,并可以基于第一参数加载对应的第一算法,以使相机应用运行过程中电子设备能够通过运行第一算法实现相机应用的功能。例如,在第一参数指示当前电子设备的运行状态较差时,可以加载部分感知类算法(例如可以加载对相机预览影响较大的感知类算法)来实现相机应用的功能。这样,电子设备可以基于电子设备运行状态加载相匹配的感知类算法,使得电子设备的运行状态能够支持电子设备运行该些算法的概率较高,例如在电子设备运行状态较差时,电子设备加载的感知类算法较少,则相机应用运行过程中电子设备运行感知类算法的数量也相对较少,有助于减少由于电子设备无法支持运行多种感知类算法导致的相机应用的卡顿或闪退等问题,有助于使电子设备显示相机应用的预览画面的流畅性较高,提升用户体验。
10、在一种可能的实现方式中,在加载与第一参数对应的第一算法之后,该方法还包括:获取第二参数,第二参数用于指示电子设备的第二运行状态,第二运行状态优于第一运行状态;基于第二参数,加载第二算法,第二算法用于实现相机应用的功能,第二参数对应第一算法与第二算法。
11、可以理解,在相机应用的运行过程中,可能出现电子设备的状态变好的情况(例如下文图12对应实施例中的过程2),即电子设备从第一运行状态切换为第二运行状态。示例性地,电子设备从第一运行状态切换为第二运行状态可以为电子设备从很差切换为较差或较好;或者,电子设备的状态从较差切换为较好。在电子设备的状态变好后,电子设备可以加载更多的感知类算法,即第二算法,以使相机应用可以实现更多的功能。
12、需要说明的是,在电子设备的状态从第一运行状态切换为第二运行状态后,由于电子设备已经加载过第一算法,则电子设备此时可以不重复加载第一算法。
13、示例性地,在电子设备从很差状态切换为较差状态时,第一算法可以为下文中的高优先级的感知类算法,第二算法可以为下文中的中优先级的感知类算法;在电子设备从很差状态切换为较好状态时,第一算法可以为下文中的高优先级的感知类算法,第二算法可以为下文中的中优先级的感知类算法和低优先级的感知类算法;在电子设备从较差状态切换为较好状态时,第一算法可以为下文中的高优先级的感知类算法和中优先级的感知类算法,第二算法可以为下文中的低优先级的感知类算法。
14、这样,可以使电子设备的状态变好后,电子设备为相机应用加载更多的感知类算法,以实现更多的相机功能。可以在减少相机应用预览界面卡顿的情况下,为用户提供更多的相机功能,增强用户体验。
15、在一种可能的实现方式中,在加载与第一参数对应的第一算法之后,方法还包括:获取第三参数,第三参数用于指示电子设备的第三运行状态,第三运行状态差于第一运行状态;基于第三参数,删除第一算法中包括的第三算法,第一参数对应第三算法,第三参数对应第一算法中除第三算法之外的算法。
16、可以理解,在相机应用的运行过程中,可能出现电子设备的状态变差的情况(例如下文图12对应实施例中的过程3),即电子设备从第一运行状态切换为第三运行状态。示例性地,电子设备从第一运行状态切换为第三运行状态可以为电子设备从较好状态切换为较差或很差状态;或者,电子设备从较差状态切换为很差状态。在电子设备状态变差后,可以删除第一算法中的第三算法。
17、应理解,删除第一算法中的第三算法可以理解为电子设备丢弃第三算法(也即不运行第三算法,或电子设备不配置第三算法,或电子设备删除为了运行第三算法所获取的相关参数等)。
18、示例性地,在电子设备从较差状态切换为很差状态时,第一算法可以为下文中的高优先级的感知类算法和中优先级的感知类算法,第三算法可以为下文中的中优先级算法;在电子设备从较好状态切换为较差状态时,第一算法可以为下文中的全部感知类算法(高优先级的感知类算法、中优先级的感知类算法以及低优先级的感知类算法),第三算法可以为下文中的低优先级算法;在电子设备从较好状态切换为很差状态时,第一算法可以为下文中的全部感知类算法,第二算法可以为下文中的高优先级的感知类算法和中优先级的感知类算法。
19、这样,电子设备可以基于当前的运行状态对加载的感知类算法进行动态调整,在电子设备的运行状态变差时,可以减少为相机应用加载的感知类算法,从而使得电子设备能够支持相机应用运行所运行的较少的感知类算法,有助于减少相机运行过程中的卡顿现象,提高用户体验。
20、在一种可能的实现方式中,加载与第一参数对应的第一算法,包括:基于第一参数,确定第一运行状态为第一等级;基于第一对应关系,加载第一算法,第一对应关系包括第一等级与第一算法之间的对应关系。
21、其中,第一等级可以为下文中的级别1、级别2或级别3,确定第一运行状态为第一等级的过程可以理解为下文中的感知模块确认电子设备状态的级别的过程。可选地,电子设备确定第一运行状态为第一等级的过程可以参照下文中图8实施例的相关描述,此处不再赘述。第一对应关系可以参照下文中的对应关系2的相关描述,此处不再赘述。
22、这样,可以基于电子设备的状态的等级加载相应的感知类算法,并且,基于第一对应关系电子设备可以在不同状态下加载适合电子设备当前状态的感知类算法,使得电子设备的能够支持相机应用成功调用的感知类算法的概率较大,有助于减少卡顿等现象,提高用户体验。
23、在一种可能的实现方式中,加载第一算法之前,方法还包括:基于相机应用实现预览功能调用算法的频率和/或算法类型,将电子设备中预置的第一算法集合中的算法划分为不同优先级,第一算法集合中的算法用于实现相机应用的预览功能,第一算法包括第一算法集合中优先级最高的算法,第一对应关系包括第一等级与第一算法的优先级之间的对应关系。
24、其中,调用算法的频率可以用于指示算法的重要程度,也即,调用算法的频率越高,算法越重要,该算法影响预览功能的可能性越大,可以设置算法的优先级越高。算法类别可以理解为算法的类型,例如算法可以与实现相机应用预览功能相关等。算法例如可以包括下文中的人脸识别相关的算法或追踪相关的算法等。电子设备例如可以设置人脸识别相关的算法的优先级更高。不同优先级例如可以包括下文中的高优先级、中优先级和低优先级。
25、应理解,实现预览功能调用的算法可以理解为下文中的全部的感知类算法,例如可以是挂载于微小(tiny)流上的算法。tiny流可以理解为处理对象检测(例如识别、定位和追踪等)和相关特效(例如美颜、贴纸和添加滤镜等)等的图像流,其中图像流可以理解为传输图像数据的数据流。且tiny流也可以理解为一种低分辨率的图像流,可以用于实时预览,减少处理和传输的负担,从而提高相机应用的响应速度。或者,实现预览功能调用的算法也可以理解为相机应用实现预览功能时所运行的感知类算法。
26、进一步地,电子设备可以基于第一等级加载对应优先级的第一算法。示例性地,在第一等级为下文中的级别1的情况下,第一算法可以包括高优先级算法;在第一等级为下文中的级别2的情况下,第一算法可以包括高优先级和中优先级算法;在第一等级为下文中的级别1的情况下,第一算法可以包括第一算法集合中的全部算法。
27、这样,可以使电子设备基于第一等级加载对应优先级的第一算法,可以使电子设备在系统资源紧张时加载优先级较高的算法,或在系统资源充足时加载更多优先级的算法,以在电子设备系统资源紧张时,减少相机应用卡顿等现象。且在电子设备系统资源充足时,可以提供更多的相机功能,提高用户体验。
28、在一种可能的实现方式中,加载与第一参数对应的第一算法之后,该方法还包括:通过第一线程池中的第一线程,处理第一任务队列中的任务,第一任务队列为与第一线程池绑定的任务队列,第一任务队列中的任务与第一算法的运行相关。
29、其中,第一任务队列可以包括(记录或缓存)调用(或运行)第一算法的任务。示例性地,在第一算法包括高优先级算法的情况下,第一任务队列可以用于缓存调用高优先级的感知类算法的任务。相应的,第一线程池可以用于处理调用第一算法的任务,例如,在第一算法为高优先级的感知类算法的情况下,第一线程池可以包括下文中的线程池1,第一线程可以包括下文中的线程池1中的线程;或者,在第一算法为高优先级和中优先级算法的情况下,第一线程池可以包括下文中的线程池1和线程池2,第一线程可以包括下文中的线程池1和线程池2中的线程。
30、这样,通过复用线程池中的线程运行第一算法可以使电子设备减少创建或销毁线程的开销,提高任务处理效率,节约系统资源,并有助于提高相机应用的响应速度,增强用户体验。
31、在一种可能的实现方式中,第一线程包括第一稳定线程,第一稳定线程为第一线程池中的稳定线程;方法还包括:接收到指示退出相机应用的第一操作;基于第一操作,设置第一稳定线程的状态为休眠状态,销毁用于处理相机应用对应的任务的其余线程,并退出相机应用。
32、其中,第一稳定线程可以参照下文中对线程池1中的稳定线程的相关描述,此处不再赘述。应理解,第一稳定线程可以用于运行较高优先级的感知类算法。
33、可以理解,相机应用对应的任务可以理解为调用感知类算法的任务。在接收到指示退出相机应用的第一操作后,电子设备可以设置第一稳定线程从活跃状态为休眠状态,也可以理解为,电子设备在退出相机应用后,可以未销毁第一稳定线程。其余线程例如下文中线程池1至线程池n的线程中除了线程池1中的稳定线程的线程。
34、这样,相机应用退出时,电子设备可以销毁其余线程以释放系统资源。并可以不销毁第一稳定线程,以使相机应用在重新启动后,能够快速恢复调用较高优先级的感知类算法的能力,降低电子设备重新创建线程的开销,提高相机应用的响应速度,可以提高相机运行的流畅性。
35、在一种可能的实现方式中,退出相机应用之后,方法还包括:接收到指示启动相机应用的第二操作,接收到第二操作的时刻与接收到第一操作的时刻之间的时间间隔小于第一预设时长;基于第二操作,启动相机应用;在第一任务队列中存在任务的情况下,将第一稳定线程的状态由休眠状态设置为活跃状态,并通过第一稳定线程处理第一任务队列中的任务。
36、其中,第一预设时长可以为下文中的预设时长。也即,第一预设时长可以理解为退出相机应用后,保持不销毁第一稳定线程的时长。
37、这样,可以使电子设备在退出相机应用,并在第一预设时长内重新启动相机应用后,可以继续使用第一稳定线程处理第一任务队列中的任务(即调用较高优先级的感知类算法),可以降低电子设备重新创建线程的开销,提高相机应用的响应速度,可以提高相机运行的流畅性。
38、在一种可能的实现方式中,退出相机应用之后,方法还包括:第一时刻,销毁第一稳定线程,第一时刻与接收到第一操作的时刻之间的时间间隔大于或等于第一预设时长;接收到指示启动相机应用的第三操作,接收到第三操作的时刻晚于第一时刻;基于第三操作,启动相机应用,并创建第一稳定线程。
39、也就是,在退出相机应用后的第一预设时长后,在电子设备未重新启动相机应用的情况下,电子设备可以销毁第一稳定线程(例如可以参照下文中s1124的相关描述)。且在退出相机应用后的第一预设时长后接收到启动相机应用的第三操作时,电子设备可以重新创建第一稳定线程处理第一任务队列中的任务,这样,可以减少第一稳定线程占用不必要的系统资源,提高系统性能。
40、在一种可能的实现方式中,第一线程包括第一稳定线程与可变线程;通过第一线程池中的第一线程,处理第一任务队列中的任务之前,方法还包括:接收到指示启动相机应用的第四操作;基于第四操作,创建第一稳定线程;在第一任务队列中的任务的数量超过第一阈值的情况下,创建可变线程;处理第一任务队列中的任务,包括:通过第一稳定线程,处理第一任务队列中的第一任务,并通过可变线程,处理第一任务队列中的第二任务。
41、其中,第一阈值可以为下文中的阈值a,第一任务可以为下文中的任务队列1中的任务1,第二任务可以为下文中的任务队列1中的任务2。也即,在第一任务队列中的任务的数量超过第一阈值的情况下,电子设备可以创建可变线程,并利用第一稳定线程处理第一任务队列中的第一任务,利用可变线程处理第一任务队列中的第二任务。
42、这样,可以在任务队列中的任务堆积时,电子设备可以创建更多的可变线程,以快速处理堆积的任务,提高系统的响应速度以及相机应用运行的流畅性,并提高用户体验。
43、在一种可能的实现方式中,该方法还包括:在可变线程处理完第二任务后,销毁可变线程。
44、其中,销毁可变线程可以参照s1123中销毁线程池1中的可变线程的相关描述,此处不再赘述。
45、这样,在处理完第二任务后,电子设备可以销毁可变线程,并释放相应的系统资源。使得可变线程可以不占用过多的系统资源,有助于使系统性能较高。
46、第二方面,本技术实施例提供一种相机控制装置,相机控制装置可以是电子设备,也可以是电子设备内的芯片或者芯片系统。相机控制装置可以包括摄像头以及处理单元。该处理单元可以是处理器。该装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种相机控制方法。当该装置是电子设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种相机控制方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该电子设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
47、第三方面,本技术实施例提供一种电子设备,包括处理器和存储器,存储器用于存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
48、第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
49、第五方面,本技术实施例提供一种包括计算机程序的计算机程序产品,当计算机程序在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
50、第六方面,本技术提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
51、在一种可能的实现中,本技术中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
52、应当理解的是,本技术的第二方面至第六方面与本技术的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
1.一种相机控制方法,其特征在于,应用于电子设备,所述电子设备安装有相机应用,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述加载与所述第一参数对应的第一算法之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述加载与所述第一参数对应的第一算法之后,所述方法还包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述加载与所述第一参数对应的第一算法,包括:
5.根据权利要求4所述的方法,其特征在于,所述加载所述第一算法之前,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述加载与所述第一参数对应的第一算法之后,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述第一线程包括第一稳定线程,所述第一稳定线程为所述第一线程池中的稳定线程;
8.根据权利要求7所述的方法,其特征在于,所述退出所述相机应用之后,所述方法还包括:
9.根据权利要求7所述的方法,其特征在于,所述退出所述相机应用之后,所述方法还包括:
10.根据权利要求6至9中任一项所述的方法,其特征在于,所述第一线程包括第一稳定线程与可变线程;
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
12.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;
13.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-11任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在电子设备上运行时,使得所述电子设备执行如权利要求1-11任一项所述的方法。
