CN117956264A - 拍摄方法、电子设备、存储介质和程序产品 - Google Patents

拍摄方法、电子设备、存储介质和程序产品 Download PDF

Info

Publication number
CN117956264A
CN117956264A CN202410350267.7A CN202410350267A CN117956264A CN 117956264 A CN117956264 A CN 117956264A CN 202410350267 A CN202410350267 A CN 202410350267A CN 117956264 A CN117956264 A CN 117956264A
Authority
CN
China
Prior art keywords
algorithm
shooting
target
chip
time consumption
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
CN202410350267.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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202410350267.7A priority Critical patent/CN117956264A/zh
Publication of CN117956264A publication Critical patent/CN117956264A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Studio Devices (AREA)

Abstract

本申请公开了一种拍摄方法、电子设备、存储介质和程序产品,属于终端技术领域。该方法包括:响应于接收到的拍摄指令,执行拍摄处理流程,得到目标图像,该拍摄处理流程包括多个算法;其中,在执行该拍摄处理流程的过程中,在需要运行目标算法前,根据当前的系统负载信息确定目标算法的预估耗时,根据拍摄超时阈值和目标算法的预估耗时确定是运行目标算法还是跳过目标算法,目标算法是该多个算法中任意一个算法。本申请可以以拍摄超时阈值为约束来控制该拍摄处理流程的总运行时长,使该拍摄处理流程的总运行时长大概率不超过拍摄超时阈值,从而可以减小该拍摄处理流程出现超时的可能性,降低图像拍摄时的丢图率,提升用户的拍摄体验。

Description

拍摄方法、电子设备、存储介质和程序产品
技术领域
本申请涉及终端技术领域,特别涉及一种拍摄方法、电子设备、存储介质和程序产品。
背景技术
随着终端技术的不断发展,诸如手机、平板电脑等电子设备逐渐集通讯、拍摄和影音等功能于一体,成为人们日常生活中不可缺少的部分。用户可以使用电子设备来拍摄图像,记录生活的点点滴滴。然而,电子设备的计算资源相对有限,在系统负载比较高的情况下,很有可能无法为拍摄算法提供充足的计算资源,从而容易出现拍摄性能差的问题,导致电子设备未能输出用户期望的拍摄图像,即导致丢图现象。
发明内容
本申请提供了一种拍摄方法、电子设备、存储介质和程序产品,可以降低图像拍摄时的丢图率。所述技术方案如下:
第一方面,提供了一种拍摄方法。在该方法中,电子设备接收拍摄指令;响应于该拍摄指令,执行拍摄处理流程,得到目标图像,该拍摄处理流程包括多个算法。其中,该电子设备在执行该拍摄处理流程的过程中,在需要运行目标算法前,获取系统负载信息,根据该系统负载信息确定目标算法的预估耗时,根据拍摄超时阈值和目标算法的预估耗时确定是运行目标算法还是跳过目标算法,目标算法是该多个算法中任意一个算法。
目标算法的预估耗时为预估的目标算法的耗时。目标算法的预估耗时用于指示目标算法在该系统负载信息指示的系统负载情况下需要多长时间才能运行完成。
拍摄超时阈值可以预先设置。拍摄超时阈值是该拍摄处理流程最多允许被运行的时长。也即,若该拍摄处理流程的运行时长超过拍摄超时阈值,则确定该拍摄处理流程运行超时,需要终止该拍摄处理流程。
在本申请中,该电子设备在运行该拍摄处理流程中的每个算法前,都可以根据系统负载信息确定该算法的预估耗时,并根据该预估耗时和拍摄超时阈值确定是运行该算法还是跳过该算法。如此,可以以拍摄超时阈值为约束来控制该拍摄处理流程的总运行时长,使该拍摄处理流程的总运行时长大概率不超过拍摄超时阈值,从而可以减小该拍摄处理流程出现超时的可能性,降低图像拍摄时的丢图率,提升用户的拍摄体验。
可选地,该系统负载信息可以包括多个芯片中每个芯片的运行状况信息。
示例地,该多个芯片是执行该拍摄处理流程需要使用的芯片。比如,该多个芯片可以包括CPU所在的芯片、GPU所在的芯片和DSP所在的芯片。
示例地,该芯片的运行状况信息包括该芯片的负载率和频率。
在本申请中,将多个芯片均纳入监测范围,根据该多个芯片中每个芯片的运行状况信息来预估目标算法的耗时,从而可以提高预估出的耗时的准确性。
作为一种可选的实现方式,该电子设备根据该系统负载信息确定目标算法的预估耗时的操作可以为:根据该多个芯片中每个芯片的运行状况信息确定每个芯片的负载恶化系数;根据该多个芯片中每个芯片的负载恶化系数和目标算法对应的预设耗时确定目标算法的预估耗时。
该芯片的负载恶化系数用于指示该芯片当前的运行状况(即该芯片的运行状况信息指示的运行状况)相比于该芯片的正常运行状况(即可正常执行该拍摄处理流程的运行状况)的恶化程度。其中,该芯片处于正常运行状况时可为该拍摄处理流程提供充足的计算资源。
示例地,若该芯片的负载恶化系数大于0且小于或等于1,则说明该芯片当前的运行状况相比于正常运行状况并未恶化;若该芯片的负载恶化系数大于1,则说明芯片当前的运行状况相比于正常运行状况有所恶化。
目标算法对应的预设耗时可以预先设置。目标算法对应的预设耗时是在系统负载情况正常的情况下,即在有充足的计算资源可提供给目标算法的情况下,目标算法的耗时。
在本申请中,该多个芯片中每个芯片的负载恶化系数可以反映每个芯片的运行状况的恶化程度,由于该多个芯片均会对目标算法的运行造成影响,所以可以根据该多个芯片中每个芯片的负载恶化系数和目标算法对应的预设耗时来较为准确的预估目标算法的耗时。
作为一种可选的实现方式,该电子设备根据该多个芯片中每个芯片的运行状况信息确定每个芯片的负载恶化系数的操作可以为:对于该多个芯片中任意的一个芯片的运行状况信息,将该芯片的运行状况信息输入该芯片对应的运行性能模型,获得该运行性能模型输出的负载恶化系数。
该芯片对应的运行性能模型用于根据该芯片的运行状况信息确定该芯片的负载恶化系数。在本申请中,可以根据该芯片的运行状况信息,通过该芯片对应的运行性能模型快速获得该芯片的负载恶化系数。
该多个芯片中的每个芯片均有其对应的运行性能模型。可选地,不同芯片对应的运行性能模型可以不同。某个芯片对应的运行性能模型可以根据该芯片的相关数据训练得到。
作为一种可选的实现方式,该电子设备根据该多个芯片中每个芯片的负载恶化系数和目标算法对应的预设耗时确定目标算法的预估耗时的操作可以为:根据该多个芯片中每个芯片的权重,对该多个芯片中每个芯片的负载恶化系数进行加权平均,得到目标恶化系数;将目标恶化系数与目标算法对应的预设耗时相乘,得到目标算法的预估耗时。
可选地,对于该多个算法中不同的算法,该多个芯片的权重可以相同,也可以部分不同或全部不同。比如,假设该多个算法包括算法1和算法2,假设该多个芯片包括芯片1、芯片2和芯片3。在确定算法1的预估耗时时,芯片1的权重可以为0.6,芯片2的权重可以为0.2,芯片3的权重可以为0.2。在确定算法2的预估耗时时,芯片1的权重可以为0.5,芯片2的权重可以为0.3,芯片3的权重可以为0.2。
对于目标算法,该多个芯片中任意的一个芯片的权重用于指示该芯片在目标算法运行时的重要程度。若一个芯片的权重大于另一个芯片的权重,则说明这个芯片在目标算法运行时的重要程度高于另一个芯片在目标算法运行时的重要程度,也即,在运行目标算法的过程中这个芯片的作用更大,相应的,这个芯片对目标算法的耗时的影响更大。
在本申请中,在确定目标算法的预估耗时时,不仅考虑了该多个芯片的负载恶化系数,还考虑了该多个芯片中各个芯片对目标算法的耗时的影响程度,如此可以提高预估出的耗时的准确性。
作为一种可选的实现方式,该电子设备根据拍摄超时阈值和目标算法的预估耗时确定是运行目标算法还是跳过目标算法的操作可以为:获取目标时长,目标时长是该拍摄超时阈值减去该拍摄处理流程当前的运行时长得到;若目标算法的预估耗时小于或等于目标时长,则运行目标算法;若目标算法的预估耗时大于目标时长,则跳过目标算法。
该电子设备开始执行该拍摄处理流程后可以计时,以确定该拍摄处理流程当前的运行时长,即该拍摄处理流程从开始运行到当前时刻的时长。那么将拍摄超时阈值减去该拍摄处理流程当前的运行时长得到的目标时长用于指示该拍摄处理流程当前最多还能被允许运行多长时间。这种情况下,若该拍摄处理流程接下来运行的时长超过了目标时长,则该拍摄处理流程运行超时,将会被终止运行,这样很有可能会出现丢图现象。
为此,在本申请中,若目标算法的预估耗时大于目标时长,说明运行目标算法后,很有可能导致该拍摄处理流程运行超时,因而为了降低该拍摄处理流程的超时概率,在此情况下可以跳过目标算法。若目标算法的预估耗时小于或等于目标时长,说明运行目标算法后,不太可能导致该拍摄处理流程运行超时,因而在此情况下可以正常运行目标算法进行图像处理。
需说明的是,在目标算法不是该拍摄处理流程包括的多个算法中的最后一个算法的情况下,在跳过目标算法后,或者在运行目标算法且在目标算法运行完成后,可以确定需要运行下一个算法,此时可以继续根据当前的系统负载信息确定是运行该算法还是跳过该算法。
在目标算法是该拍摄处理流程包括的多个算法中的最后一个算法的情况下,若是跳过目标算法,那么在跳过目标算法后即完成对该拍摄处理流程的执行,可输出目标图像,在此情况下输出的目标图像是基于在该最后一个算法之前运行的算法进行图像处理后得到的图像;若是运行目标算法,那么在目标算法运行完成后即完成对该拍摄处理流程的执行,目标算法运行完成后可得到目标图像。
第二方面,提供了一种拍摄装置,该拍摄装置具有实现上述第一方面中拍摄方法行为的功能。该拍摄装置包括至少一个模块,该至少一个模块用于实现上述第一方面提供的拍摄方法。
第三方面,提供了一种电子设备,该电子设备包括:一个或多个处理器,以及存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行上述第一方面提供的拍摄方法。
第四方面,提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该一个或多个处理器用于调用计算机指令以使得该电子设备执行上述第一方面提供的拍摄方法。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,当该指令在电子设备上运行时,使得该电子设备执行上述第一方面提供的拍摄方法。
第六方面,提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行上述第一方面提供的拍摄方法。
上述第二方面、第三方面、第四方面、第五方面和第六方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种电子设备的结构示意图;
图2是本申请实施例提供的一种电子设备的软件系统的框图;
图3是本申请实施例提供的一种拍摄过程的界面示意图;
图4是本申请实施例提供的一种拍摄方法的流程图;
图5是本申请实施例提供的一种确定预估耗时的过程的流程图;
图6是本申请实施例提供的一种拍摄方法的示意图;
图7是本申请实施例提供的另一种拍摄方法的流程图;
图8是本申请实施例提供的一种拍摄装置的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。
应当理解的是,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应当理解的是,本申请提及的“一个或多个”是指一个、两个或两个以上,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请中描述的“一个实施例”或“一些实施例”等语句意味着在本申请的一个或多个实施例中包括该实施例描述的特定特征、结构或特点。由此,在本申请中的不同之处出现的“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等语句不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
本申请实施例提供的拍摄方法可以应用于电子设备。示例地,该电子设备可以是移动终端(mobile terminal,MT)、移动台(mobile station,MS)、移动单元(mobile unit,MU)、无线单元、远程单元、用户代理、移动客户端等。比如,该电子设备可以是手机、智慧屏设备、平板电脑、可穿戴设备、数码相机、车载设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digitalassistant,PDA)、膝上型计算机(laptop)等,本申请实施例对此不作限定。
图1是本申请实施例提供的一种电子设备的结构示意图。参见图1,电子设备100可以包括处理器110、外部存储器接口120、内部存储器121、通用串行总线(universal serialbus,USB)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、传感器模块180、按键190、马达191、指示器192、摄像头193、显示屏194、以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A、陀螺仪传感器180B、气压传感器180C、磁传感器180D、加速度传感器180E、距离传感器180F、接近光传感器180G、指纹传感器180H、温度传感器180J、触摸传感器180K、环境光传感器180L、骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,比如:处理器110可以包括中央处理器(central processing unit,CPU)等)、应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signalprocessor,ISP)、控制器、存储器、视频编解码器、数字信号处理器(digital signalprocessor,DSP)、基带处理器、和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统效率。
外部存储器接口120可以用于连接外部存储卡,比如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。比如将音乐、视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,计算机可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。存储数据区可存储电子设备100在使用过程中所创建的数据(比如音频数据、电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,比如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,UFS)等。
电子设备100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等实现。
移动通信模块150可以提供应用在电子设备100上的包括第二代移动通信技术(2th generation mobile networks,2G)/第三代移动通信技术(3th generation mobilenetworks,3G)/第四代移动通信技术(4th generation mobile networks,4G)/第五代移动通信技术(5th generation mobile networks,5G)等无线通信的解决方案。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络)、蓝牙(bluetooth,BT)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。
电子设备100可以通过音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D以及应用处理器等实现音频功能,比如音乐播放、录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
电子设备100可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
ISP 用于处理摄像头193反馈的数据。比如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点、亮度、肤色进行算法优化。ISP还可以对拍摄场景的曝光、色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。示例地,摄像头193可以通过应用程序指令触发开启,实现拍摄功能,如拍摄获取任意场景的图像。摄像头193可以包括成像镜头、滤光片、图像传感器等部件。物体发出或反射的光线进入成像镜头,通过滤光片,最终汇聚在图像传感器上。成像镜头主要是用于对拍摄视角中的所有物体发出或反射的光汇聚成像;滤光片主要是用于将光线中的多余光波滤去;图像传感器可以是电荷耦合器件(chargecoupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。图像传感器主要是用于将接收到的光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的红绿蓝(red green blue,RGB)、亮度色度(luminancechrominance,YUV)等格式的图像信号。
电子设备100可以通过GPU、显示屏194以及应用处理器等实现显示功能。
GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像、视频等。显示屏194包括显示面板。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
接下来对电子设备100的软件系统予以说明。
电子设备100的软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构、或云架构。本申请实施例以分层架构的安卓(Android)系统为例,对电子设备100的软件系统进行示例性说明。
图2是本申请实施例提供的一种电子设备100的软件系统的框图。参见图2,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将安卓系统分为应用程序层、应用程序框架层、安卓运行时(AndroidRuntime)和系统层,以及内核层。
应用程序层可以包括一系列应用程序。如图2所示,应用程序层可以包括相机、日历、地图、WLAN、音乐、短信息、图库、通话、导航、蓝牙、视频等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器、内容提供器、视图系统、电话管理器、资源管理器、通知管理器、耗时预估模块等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、电话簿等。视图系统包括可视控件,比如显示文字的控件、显示图片的控件等。视图系统可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示短信通知图标的视图,包括显示文字的视图,以及包括显示图片的视图。电话管理器用于提供电子设备100的通信功能,比如通话状态的管理(包括接通、挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件、视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如,通知管理器被用于告知下载完成、消息提醒等。通知管理器还可以是以图表或滚动条文本形式出现在系统顶部状态栏的通知,比如后台运行的应用程序的通知。通知管理器还可以是以对话窗口形式出现在屏幕上的通知,比如在状态栏提示文本信息、发出提示音、电子设备振动、指示灯闪烁等。耗时预估模块用于预估拍摄处理流程中的多个算法中每个算法的耗时。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理,以及垃圾回收等功能。
系统层可以包括多个功能模块,比如:表面管理器(surface manager)、媒体库(Media Libraries)、三维图形处理库(比如:OpenGL ES)、二维图形引擎(比如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维(twodimensional,2D)和三维(three dimensional,3D)图层的融合。媒体库支持多种常用的音频、视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,比如:MPEG4、H.264(又称为高级视频编码(advanced video coding,AVC))、动态影像专家压缩标准音频层面3(moving picture experts group audio layer III,MP3)、高级音频编码(advanced audio coding,AAC)、自适应多速率(adaptive multi-rate,AMR)、联合图像专家组(joint photographic experts group,JPG)、便携式网络图形(portable networkgraphics,PNG)等。三维图形处理库用于实现3D图形绘图、图像渲染、合成和图层处理等。二维图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动、传感器驱动等。
本申请实施例并未特别限定拍摄方法的执行主体的具体结构,只要可以通过运行记录有本申请实施例提供的拍摄方法的代码,以根据本申请实施例提供的拍摄方法进行处理即可。比如,本申请实施例提供的拍摄方法的执行主体可以是电子设备中能够调用程序并执行程序的功能模块,或者可以是应用于电子设备中的处理装置,如芯片等。
接下来对本申请实施例涉及的应用场景予以说明。
目前,用户经常会使用手机、平板电脑等电子设备来拍摄图像,记录生活的点点滴滴。
示例地,如图3中的(a)图所示,电子设备显示的桌面310中显示有相机应用程序的图标311。若用户想要进行图像拍摄,则可以点击相机应用程序的图标311。响应于该点击操作,如图3中的(b)图所示,该电子设备启动相机应用程序,显示相机应用程序的拍摄界面320,拍摄界面320中显示有预览窗口321、拍摄模式控件322、拍摄控件323等。若用户确定预览窗口321中显示的预览图像可满足自身需求,则可以点击拍摄控件323进行拍摄。响应于该点击操作,该电子设备可以进行图像拍摄,得到目标图像,并将目标图像保存至图库应用程序。如图3中的(c)图所示,该电子设备在得到目标图像后,还可以将目标图像的缩略图324显示在拍摄界面320。若用户想要查看目标图像,则可以点击目标图像的缩略图324。响应于该点击操作,如图3中的(d)图所示,该电子设备可以显示目标图像。
用户点击拍摄控件323后,该电子设备进行图像拍摄,得到目标图像的过程可以称为一个拍摄处理流程,也可称为一个拍摄pipline(流水线)。该拍摄处理流程可以指在拍摄时,从光线进入摄像头到最终图像生成的一系列处理阶段。具体来讲,该拍摄处理流程可以包括多个算法,该多个算法用于对摄像头(包括但不限于前置摄像头、后置摄像头等)采集的原始图像数据进行处理,得到最终的目标图像。示例地,该多个算法可以包括基础拍照算法、虚化算法、美肤算法等。
相机应用程序可以包括多个拍摄模式,如大光圈模式、夜景模式、人像模式、拍照模式、录像模式、专业模式或其他模式。该多个拍摄模式中每个拍摄模式的拍摄处理流程可以是预先设置的。在一些实施例中,不同拍摄模式的拍摄处理流程可以不同,也即,不同拍摄模式的拍摄处理流程包括的多个算法中的部分或全部算法可能有所不同。比如,人像模式的拍摄处理流程中包括虚化算法,而普通拍照模式的拍摄处理流程中不包括虚化算法。
电子设备中预先设置有拍摄超时阈值。用户点击拍摄控件323后,该电子设备开始执行拍摄处理流程,并同步计时。在一些情况下,若该拍摄处理流程的耗时大于拍摄超时阈值,即该拍摄处理流程超时未完成,则该电子设备会终止该拍摄处理流程。这种情况下,图像拍摄失败,该电子设备无法输出拍摄图像,即出现丢图现象。
目前,手机、平板电脑等电子设备的计算资源相对有限,比较容易出现系统负载高的情况。而在系统负载高的情况下,若用户使用电子设备进行拍摄,该电子设备很有可能无法为拍摄处理流程提供充足的计算资源,从而容易出现拍摄性能差的问题,导致拍摄处理流程的耗时较长甚至超时造成丢图,严重影响用户的拍摄体验。
为此,本申请实施例提供了一种拍摄方法,可以根据系统负载信息确定拍摄处理流程包括的多个算法中每个算法的预估耗时,然后根据各个算法的预估耗时选择性的跳过该多个算法中的部分算法,以在系统负载较高时减小该拍摄处理流程出现超时的可能性,从而可以降低图像拍摄时的丢图率,提升用户的拍摄体验。
接下来对本申请实施例提供的拍摄方法进行详细地解释说明。
图4是本申请实施例提供的一种拍摄方法的流程图。该方法可以由上述图1至图2实施例所述的电子设备执行。参见图4,该方法包括以下步骤:
步骤401:电子设备接收指示启动相机应用程序的操作。
可选地,指示启动相机应用程序的操作可以由用户触发。
示例地,该电子设备显示桌面时,可以接收对桌面中显示的相机应用程序的图标的点击操作,该点击操作即用于指示启动相机应用程序。响应于该点击操作,该电子设备可以启动相机应用程序。
示例地,该电子设备在锁屏状态时,可以接收在屏幕上的右滑操作,该右滑操作即用于指示启动相机应用程序。响应于该右滑操作,该电子设备可以启动相机应用程序。
示例地,该电子设备在锁屏状态时可以在锁屏界面中显示相机应用程序的图标,该电子设备可以接收对锁屏界面中显示的相机应用程序的图标的点击操作,该点击操作即用于指示启动相机应用程序。响应于该点击操作,该电子设备可以启动相机应用程序。
或者,该电子设备在运行其他应用程序时,若该应用程序具有调用相机应用程序的权限,那么该电子设备可以接收对该应用程序中相应的控件的点击操作,该点击操作即用于指示启动相机应用程序。响应于该点击操作,该电子设备可以启动相机应用程序。比如,该电子设备正在运行即时通讯应用程序,用户可以在即时通讯应用程序的应用界面中点击相机功能的控件,响应于对该相机功能的控件的点击操作,该电子设备可以启动相机应用程序。
当然,不限于上述举例,该电子设备也可以在其他情况下接收指示启动相机应用程序的操作,然后启动相机应用程序。
步骤402:该电子设备启动相机应用程序,以显示相机应用程序的拍摄界面。
该电子设备启动相机应用程序后,相机应用程序开始运行,在运行时可以显示拍摄界面。
该拍摄界面中可以显示预览窗口、拍摄模式控件、拍摄控件等。其中,该预览窗口用于显示在该电子设备当前的拍摄视角下的预览图像。该拍摄模式控件的数量可以是多个,用于提供不同的拍摄模式,如大光圈、夜景、人像、拍照、录像、专业等模式。用户可以通过该拍摄模式控件来切换相机应用程序当前采用的拍摄模式。拍摄控件用于指示进行图像拍摄。
比如,用户可以在图3中的(a)图所示的桌面310中点击相机应用程序的图标311。响应于该点击操作,如图3中的(b)图所示,该电子设备可以启动相机应用程序,以显示相机应用程序的拍摄界面320。拍摄界面320中显示有预览窗口321、拍摄模式控件322、拍摄控件323等。
步骤403:相机应用程序接收作用于该拍摄界面中的拍摄控件的操作。
此处作用于该拍摄控件的操作为对该拍摄控件的触发操作,如点击操作、手势操作、语音操作、体感操作等,以指示进行图像拍摄。
比如,用户可以在图3中的(b)图所示的拍摄界面320中点击拍摄控件323,以指示进行图像拍摄。
步骤404:响应于作用于该拍摄控件的操作,相机应用程序确定拍摄处理流程包括的多个算法。
该拍摄处理流程为相机应用程序当前采用的拍摄模式的拍摄处理流程。
该拍摄处理流程中的多个算法是按序执行的,且该多个算法的执行顺序是预先设置的。示例地,该多个算法中可以存在串行执行的算法,也可以存在并行执行的算法,本申请实施例对此不作限定。
比如,该多个算法可以包括算法1、算法2、算法3。算法1、算法2、算法3串行执行。也即,先运行算法1,在算法1运行结束后,再运行算法2,在算法2运行结束后,再运行算法3,在算法3运行结束后,得到目标图像。
又比如,该多个算法可以包括算法4、算法5、算法6、算法7、算法8。算法4、算法5、算法7、算法8串行执行,算法4、算法6、算法7、算法8串行执行,算法5、算法6并行执行。也即,先运行算法4,在算法4运行结束后,再运行算法5和算法6,在算法5和算法6均运行结束后,再运行算法7,在算法7运行结束后,再运行算法8,在算法8运行结束后,得到目标图像。
假设该拍摄处理流程中的多个算法包括基础拍照算法和虚化算法,且该基础拍照算法和该虚化算法串行执行。下面以此为例进行示例性说明。
步骤405:相机应用程序在需要运行该基础拍照算法前,调用耗时预估模块确定该基础拍照算法的预估耗时。
该基础拍照算法用于对输入的图像数据进行处理,如可进行降噪、调整颜色、调整亮度等处理。示例地,在该基础拍照算法为该拍摄处理流程中的第一个算法的情况下,输入该基础拍照算法的图像数据可以为摄像头采集的原始图像数据。
该基础拍照算法的预估耗时为预估出的该基础拍照算法在该电子设备当前的负载情况下可能的耗时,该耗时是指该基础拍照算法从开始运行至运行完成所花费的时长。
相机应用程序接收到作用于该拍摄控件的操作后,可以开始执行该拍摄处理流程,即可以按序运行该拍摄处理流程中的多个算法。这种情况下,相机应用程序在需要运行该拍摄处理流程中的某个算法之前,可以先调用耗时预估模块来确定该算法的预估耗时,然后据此确定是运行该算法还是跳过(即bypass)该算法。
在一些实施例中,参见图5,耗时预估模块确定该基础拍照算法的预估耗时的操作可以包括如下步骤4051至步骤4053。
步骤4051:耗时预估模块获取系统负载信息。
该系统负载信息用于指示系统负载情况。示例地,该系统负载信息可以包括多个芯片中每个芯片的运行状况信息。
可选地,该多个芯片可以是执行该拍摄处理流程需要使用的芯片。比如,该多个芯片可以包括CPU所在的芯片、GPU所在的芯片、DSP所在的芯片等,本申请实施例对此不作限定。
该多个芯片中任意的一个芯片的运行状况信息可以包括该芯片的负载率、频率等信息,当然,还可以包括其他能够体现该芯片的运行状况的信息,本申请实施例对此不作限定。
在一些实施例中,对于该多个芯片中任意的一个芯片,耗时预估模块可以通过该芯片的监控接口或相关系统工具来获取该芯片的运行状况信息。
步骤4052:耗时预估模块根据该系统负载信息确定负载恶化系数。
该负载恶化系数用于指示该电子设备当前的系统负载情况(即该系统负载信息指示的系统负载情况)相比于正常系统负载情况(即可正常执行该拍摄处理流程的系统负载情况)的恶化程度。其中,正常系统负载情况下该电子设备可为该拍摄处理流程提供充足的计算资源。
示例地,若该负载恶化系数大于0且小于或等于1,则说明当前系统负载情况相比于正常系统负载情况并未恶化,即当前系统负载正常;若该负载恶化系数大于1,则说明当前系统负载情况相比于正常系统负载情况有所恶化,即当前系统负载较高。
在一些实施例中,步骤4052的操作可以为:对于该多个芯片中任意的一个芯片的运行状况信息,耗时预估模块将该芯片的运行状况信息输入该芯片对应的运行性能模型,获得该运行性能模型输出的负载恶化系数。
该芯片对应的运行性能模型用于根据该芯片的运行状况信息确定该芯片的负载恶化系数。该芯片的负载恶化系数用于指示该芯片当前的运行状况(即该芯片的运行状况信息指示的运行状况)相比于该芯片的正常运行状况(即可正常执行该拍摄处理流程的运行状况)的恶化程度。其中,该芯片处于正常运行状况时可为该拍摄处理流程提供充足的计算资源。
示例地,若该芯片的负载恶化系数大于0且小于或等于1,则说明该芯片当前的运行状况相比于正常运行状况并未恶化;若该芯片的负载恶化系数大于1,则说明芯片当前的运行状况相比于正常运行状况有所恶化。
该多个芯片中的每个芯片均有其对应的运行性能模型。可选地,不同芯片对应的运行性能模型可以不同。某个芯片对应的运行性能模型可以根据该芯片的相关数据训练得到。
该运行性能模型可以为神经网络模型,如可以为轻量化的神经网络模型。示例地,该运行性能模型可以为卷积神经网络模型、循环神经网络模型等,本申请实施例对此不作限定。
示例地,该运行性能模型可以是该电子设备训练得到的。或者,该运行性能模型可以是其他设备训练得到的,该其他设备可以将训练好的该运行性能模型发送给该电子设备进行使用。
示例地,训练得到该运行性能模型的操作可以为:获取多个训练样本,使用该多个训练样本对神经网络模型进行训练,得到该运行性能模型。
示例地,神经网络模型可以包括多个网络层,该多个网络层可以包括输入层、多个隐含层和输出层。输入层负责接收输入数据;输出层负责输出处理后的数据;多个隐含层位于输入层与输出层之间,负责处理数据,多个隐含层对于外部是不可见的。
该多个训练样本可以是预先设置的。该多个训练样本中的每个训练样本包括输入数据和样本标记,该输入数据为芯片的运行状况信息,该样本标记为该运行状况信息对应的负载恶化系数。
在一些实施例中,该多个训练样本可以是技术人员离线采集得到的。示例地,技术人员可以在该芯片处于正常运行状况时通过该芯片运行拍摄算法(包括但不限于上述拍摄处理流程包括的多个算法中的任意一个算法),得到该拍摄算法的第一耗时。然后控制该芯片处于不同的运行状况。对于任意一种运行状况,在该芯片处于这种运行状况时采集该芯片的运行状况信息,并通过该芯片运行该拍摄算法,得到该拍摄算法的第二耗时,将第二耗时除以第一耗时,得到所采集的运行状况信息对应的负载恶化系数。
示例地,使用该多个训练样本对神经网络模型进行训练时,对于该多个训练样本中任意的一个训练样本,可以将该训练样本中的输入数据输入神经网络模型,获得输出数据;通过损失函数确定该输出数据与该训练样本中的样本标记之间的损失值;根据该损失值调整该神经网络模型中的参数。在基于该多个训练样本中的每个训练样本对该神经网络模型中的参数进行调整后,参数调整完成的该神经网络模型即为该运行性能模型。其中,根据该损失值调整该神经网络模型中的参数的操作可以参考相关技术,本申请实施例对此不进行详细阐述。
步骤4053:耗时预估模块根据该负载恶化系数确定该基础拍照算法的预估耗时。
可选地,该多个芯片中的每个芯片具有权重,该多个芯片中每个芯片的权重可以预先设置。示例地,该多个芯片中每个芯片的权重大于或等于0且小于或等于1,该多个芯片的权重之和为1。
在一些实施例中,对于该多个算法中不同的算法,该多个芯片的权重可以相同,也可以部分不同或全部不同。比如,假设该多个芯片包括芯片1、芯片2和芯片3。在确定该基础拍照算法的预估耗时时,芯片1的权重可以为0.6,芯片2的权重可以为0.2,芯片3的权重可以为0.2。在确定该虚化算法的预估耗时时,芯片1的权重可以为0.5,芯片2的权重可以为0.3,芯片3的权重可以为0.2。
对于该基础拍照算法,该多个芯片中任意的一个芯片的权重用于指示该芯片在该基础拍照算法运行时的重要程度。若一个芯片的权重大于另一个芯片的权重,则说明这个芯片在该基础拍照算法运行时的重要程度高于另一个芯片在该基础拍照算法运行时的重要程度,也即,在运行该基础拍照算法的过程中这个芯片的作用更大,相应的,这个芯片对该基础拍照算法的耗时的影响更大。
在一些实施例中,步骤4053的操作可以为:耗时预估模块根据该多个芯片中每个芯片的权重,对该多个芯片中每个芯片的负载恶化系数进行加权平均,得到目标恶化系数;将目标恶化系数与该基础拍照算法对应的预设耗时相乘,得到该基础拍照算法的预估耗时。
该基础拍照算法对应的预设耗时可以预先设置。该基础拍照算法对应的预设耗时是在系统负载情况正常的情况下,即在有充足的计算资源可提供给该基础拍照算法的情况下,该基础拍照算法的耗时。
需说明的是,本申请实施例将多个芯片均纳入监测范围,根据该多个芯片中每个芯片的运行状况信息来预估该基础拍照算法的耗时,从而可以提高预估出的耗时的准确性。
步骤406:相机应用程序判断该基础拍照算法的预估耗时是否大于目标时长,目标时长是拍摄超时阈值减去该拍摄处理流程当前的运行时长得到;若该基础拍照算法的预估耗时大于目标时长则执行步骤407,若该基础拍照算法的预估耗时小于或等于目标时长则执行步骤408。
拍摄超时阈值可以预先设置。拍摄超时阈值是该拍摄处理流程最多允许被运行的时长。也即,在该拍摄处理流程的运行时长大于拍摄超时阈值时,确定该拍摄处理流程运行超时,相机应用程序可以终止该拍摄处理流程。
相机应用程序开始执行该拍摄处理流程后可以计时,以确定该拍摄处理流程当前的运行时长,即该拍摄处理流程从开始运行到当前时刻的时长。那么将拍摄超时阈值减去该拍摄处理流程当前的运行时长得到的目标时长用于指示该拍摄处理流程当前最多还能被允许运行多长时间。这种情况下,若该拍摄处理流程接下来运行的时长超过了目标时长,则该拍摄处理流程运行超时,将会被终止运行,这样很有可能会出现丢图现象。
步骤407:相机应用程序在该基础拍照算法的预估耗时大于目标时长的情况下,跳过该基础拍照算法,确定需要运行下一个算法,即该虚化算法。
若该基础拍照算法的预估耗时大于目标时长,说明运行该基础拍照算法后,很有可能导致该拍摄处理流程运行超时。因而为了降低该拍摄处理流程的超时概率,本申请实施例在此情况下可以跳过该基础拍照算法。
步骤408:相机应用程序在该基础拍照算法的预估耗时小于或等于目标时长的情况下,运行该基础拍照算法,在该基础拍照算法运行完成后确定需要运行下一个算法,即该虚化算法。
若该基础拍照算法的预估耗时小于或等于目标时长,说明运行该基础拍照算法后,不太可能导致该拍摄处理流程运行超时。因而本申请实施例在此情况下可以正常运行该基础拍照算法进行图像处理。
步骤409:相机应用程序在需要运行该虚化算法前,调用耗时预估模块确定该虚化算法的预估耗时。
示例地,该虚化算法用于对输入的图像数据进行处理,如可进行背景虚化等处理。示例地,在该虚化算法为该基础拍照算法的下一个算法的情况下,若此前跳过了该基础拍照算法,那么输入该虚化算法的图像数据可以为摄像头采集的原始图像数据;若此前未跳过该基础拍照算法,而是运行了该基础拍照算法,那么输入该虚化算法的图像数据可以为基于该基础拍照片算法进行图像处理后得到的图像数据。
该虚化算法的预估耗时为预估出的该虚化算法在该电子设备当前的负载情况下可能的耗时,该耗时是指该虚化算法从开始运行至运行完成所花费的时长。
在一些实施例中,耗时预估模块确定该虚化算法的预估耗时的操作可以包括如下步骤(1)至步骤(3)。
(1)耗时预估模块获取系统负载信息。
步骤(1)的操作与上述步骤4051的操作类似,本申请实施例对此不再赘述。
(2)耗时预估模块根据该系统负载信息确定负载恶化系数。
步骤(2)的操作与上述步骤4052的操作类似,本申请实施例对此不再赘述。
(3)耗时预估模块根据该负载恶化系数确定该虚化算法的预估耗时。
对于该虚化算法,该多个芯片中任意的一个芯片的权重用于指示该芯片在该虚化算法运行时的重要程度。若一个芯片的权重大于另一个芯片的权重,则说明这个芯片在该虚化算法运行时的重要程度高于另一个芯片在该虚化算法运行时的重要程度,也即,在运行该虚化算法的过程中这个芯片的作用更大,相应的,这个芯片对该虚化算法的耗时的影响更大。
在一些实施例中,步骤(3)的操作可以为:耗时预估模块根据该多个芯片中每个芯片的权重,对该多个芯片中每个芯片的负载恶化系数进行加权平均,得到目标恶化系数;将目标恶化系数与该虚化算法对应的预设耗时相乘,得到该虚化算法的预估耗时。
该虚化算法对应的预设耗时可以预先设置。该虚化算法对应的预设耗时是在系统负载情况正常的情况下,即在有充足的计算资源可提供给该虚化算法的情况下,该虚化算法的耗时。
需说明的是,本申请实施例将多个芯片均纳入监测范围,根据该多个芯片中每个芯片的运行状况信息来预估该虚化算法的耗时,从而可以提高预估出的耗时的准确性。
步骤410:相机应用程序判断该虚化算法的预估耗时是否大于目标时长,目标时长是拍摄超时阈值减去该拍摄处理流程当前的运行时长得到;若该虚化算法的预估耗时大于目标时长则执行步骤411,若该虚化算法的预估耗时小于或等于目标时长则执行步骤412。
步骤410的操作与上述步骤406的操作类似,本申请实施例对此不再赘述。
步骤411:相机应用程序在该虚化算法的预估耗时大于目标时长的情况下,跳过该虚化算法,输出目标图像。
若该虚化算法的预估耗时大于目标时长,说明运行该虚化算法后,很有可能导致该拍摄处理流程运行超时。因而为了降低该拍摄处理流程的超时概率,本申请实施例在此情况下可以跳过该虚化算法。
示例地,在该虚化算法是该拍摄处理流程包括的多个算法中的最后一个算法的情况下,跳过该虚化算法后,即完成对该拍摄处理流程的执行,可输出目标图像,在此情况下输出的目标图像是基于在该虚化算法之前运行的算法进行图像处理后得到的图像。
可选地,相机应用程序可以将目标图像保存至图库应用程序。在一些实施例中,相机应用程序还可以在拍摄界面显示目标图像的缩略图。
步骤412:相机应用程序在该虚化算法的预估耗时小于或等于目标时长的情况下,运行该虚化算法,得到目标图像。
若该虚化算法的预估耗时小于或等于目标时长,说明运行该虚化算法后,不太可能导致该拍摄处理流程运行超时。因而本申请实施例在此情况下可以正常运行该虚化算法进行图像处理。示例地,在该虚化算法是该拍摄处理流程包括的多个算法中的最后一个算法的情况下,运行该虚化算法对输入的图像数据进行处理,在该虚化算法运行完成后即完成对该拍摄处理流程的执行,可得到目标图像。
可选地,相机应用程序可以将目标图像保存至图库应用程序。在一些实施例中,相机应用程序还可以在拍摄界面显示目标图像的缩略图。
在本申请实施例中,电子设备接收到作用于拍摄控件的操作后,可以执行拍摄处理流程,得到目标图像。电子设备在执行该拍摄处理流程的过程中,对于该拍摄处理流程中任意的一个算法,在运行该算法前可以根据系统负载信息确定该算法的预估耗时,然后根据拍摄超时阈值和该算法的预估耗时确定是运行该算法还是跳过该算法。如此,可以以拍摄超时阈值为约束来控制该拍摄处理流程的总运行时长,使该拍摄处理流程的总运行时长大概率不超过拍摄超时阈值,从而可以减小该拍摄处理流程出现超时的可能性,降低图像拍摄时的丢图率,提升用户的拍摄体验。
另外,本申请实施例中分别针对该拍摄处理流程中的每个算法部署了相应的耗时预估逻辑,各个算法的耗时预估逻辑相互独立,灵活性高,可迁移性强。并且,本申请实施例中可以根据任意一个算法的预估耗时来确定是否要跳过该算法,从而在降低该拍摄处理流程的超时概率的情况下,尽量多的运行该拍摄处理流程中的算法、尽量少的跳过该拍摄处理流程中的算法,如此可以提高最终得到的目标图像的图像质量。
下面以图6为例来对上述图4实施例提供的拍摄方法进行示例性说明。
如图6所示,用户点击拍摄控件后,电子设备执行拍摄处理流程,该拍摄处理流程包括基础拍照算法和虚化算法。假设执行该拍摄处理流程需要使用芯片1、芯片2和芯片3。
在执行该拍摄处理流程的过程中,在运行基础拍照算法前,根据芯片1的运行状况信息,通过芯片1对应的运行性能模型获得芯片1的负载恶化系数;根据芯片2的运行状况信息,通过芯片2对应的运行性能模型获得芯片2的负载恶化系数;根据芯片3的运行状况信息,通过芯片3对应的运行性能模型获得芯片3的负载恶化系数。之后,根据芯片1的权重、芯片2的权重、芯片3的权重、芯片1的负载恶化系数、芯片2的负载恶化系数、芯片3的负载恶化系数和基础拍照算法对应的预设耗时,确定基础拍照算法的预估耗时。若该预估耗时大于目标时长(即拍摄超时阈值减去该拍摄处理流程当前的运行时长得到的时长),则跳过基础拍照算法;否则运行基础拍摄算法。
之后,在运行虚化算法前,通过与上述类似的操作确定虚化算法的预估耗时。在该预估耗时大于目标时长时跳过虚化算法,输出目标图像;否则运行该虚化算法,得到目标图像。
图7是本申请实施例提供的一种拍摄方法的流程图。该方法可以由上述图1至图2实施例所述的电子设备执行。参见图7,该方法包括以下步骤:
步骤701:电子设备接收拍摄指令。
该拍摄指令用于指示进行图像拍摄。该拍摄指令可以由用户触发。比如,用户可以在相机应用程序的拍摄界面中点击拍摄控件,来触发该拍摄指令。或者,在该电子设备显示相机应用程序的拍摄界面的情况下,用户也可以通过语音操作、手势操作、体感操作等触发该拍摄指令,本申请实施例对此不作限定。
步骤702:响应于该拍摄指令,该电子设备执行拍摄处理流程,得到目标图像。
该拍摄处理流程包括多个算法。该拍摄处理流程已在上文实施例进行解释说明,在此不再赘述。
目标图像为拍摄得到的图像。该电子设备可以将目标图像保存至图库应用程序。在一些实施例中,该电子设备还可以在拍摄界面显示目标图像的缩略图。
其中,该电子设备在执行该拍摄处理流程的过程中,可以执行如下步骤7021至步骤7023。
步骤7021:该电子设备在需要运行目标算法前,获取系统负载信息,目标算法是该多个算法中任意一个算法。
该电子设备获取系统负载信息的操作与上述步骤4051中耗时预估模块获取系统负载信息的操作类似,本申请实施例对此不再赘述。
步骤7022:该电子设备根据该系统负载信息确定目标算法的预估耗时。
目标算法的预估耗时为预估的目标算法的耗时。目标算法的预估耗时用于指示目标算法在该系统负载信息指示的系统负载情况下需要多长时间才能运行完成。
在一些实施例中,步骤7022的操作可以为:该电子设备根据多个芯片中每个芯片的运行状况信息确定每个芯片的负载恶化系数,根据该多个芯片中每个芯片的负载恶化系数和目标算法对应的预设耗时确定目标算法的预估耗时。
该电子设备根据该多个芯片中每个芯片的运行状况信息确定每个芯片的负载恶化系数的操作可以参考上述步骤4052,在此不再赘述。
该电子设备根据该多个芯片中每个芯片的负载恶化系数和目标算法对应的预设耗时确定目标算法的预估耗时的操作可以参考上述步骤4053,在此不再赘述。
步骤7023:该电子设备根据拍摄超时阈值和目标算法的预估耗时确定是运行目标算法还是跳过目标算法。
在本申请实施例中,该电子设备在运行该拍摄处理流程中的每个算法前,都可以根据系统负载信息确定该算法的预估耗时,并根据该预估耗时和拍摄超时阈值确定是运行该算法还是跳过该算法。如此,可以以拍摄超时阈值为约束来控制该拍摄处理流程的总运行时长,使该拍摄处理流程的总运行时长大概率不超过拍摄超时阈值,从而可以减小该拍摄处理流程出现超时的可能性,降低图像拍摄时的丢图率,提升用户的拍摄体验。
在一些实施例中,步骤7023的操作可以为:获取目标时长,目标时长是拍摄超时阈值减去该拍摄处理流程当前的运行时长得到;若目标算法的预估耗时小于或等于目标时长,则运行目标算法;若目标算法的预估耗时大于目标时长,则跳过目标算法。具体操作可以参考上述步骤406至步骤408,或者参考上述步骤410至步骤412,在此不再赘述。
需说明的是,在目标算法不是该拍摄处理流程包括的多个算法中的最后一个算法的情况下,在跳过目标算法后,或者在运行目标算法且在目标算法运行完成后,可以确定需要运行下一个算法,此时该算法即可作为目标算法,然后可以按照上述步骤7021至步骤7023来确定是运行该算法还是跳过该算法。
在目标算法是该拍摄处理流程包括的多个算法中的最后一个算法的情况下,若是跳过目标算法,那么在跳过目标算法后即完成对该拍摄处理流程的执行,可输出目标图像,在此情况下输出的目标图像是基于在该最后一个算法之前运行的算法进行图像处理后得到的图像;若是运行目标算法,那么在目标算法运行完成后即完成对该拍摄处理流程的执行,目标算法运行完成后可得到目标图像。
需说明的是,本申请实施例不仅可以应用于拍摄场景,也可以应用于其他需要考虑运行速度且可动态调节算法运行的场景。
比如,在一些场景下,电子设备需要执行目标处理流程,目标处理流程用于完成特定的任务,且目标处理流程包括用于完成此任务的多个算法,该多个算法中的任意一个或多个可被跳过,也即,在执行目标处理流程的过程中跳过该多个算法中的部分算法不会影响对结果的输出。这种情况下,该电子设备在需要运行目标处理流程包括的多个算法中任意的一个算法前,可以根据当前的系统负载信息确定该算法的预估耗时,并根据目标处理流程对应的超时阈值和该算法的预估耗时,确定是运行该算法还是跳过该算法。如此,可以以目标处理流程对应的超时阈值为约束来控制目标处理流程的总运行时长,使目标处理流程的总运行时长大概率不超过该超时阈值,从而可以减小目标处理流程出现超时的可能性,提高目标处理流程的执行成功率。
图8是本申请实施例提供的一种拍摄装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为上文图1至图2实施例所述的电子设备。参见图8,该装置包括:接收模块801和执行模块802。
接收模块801,用于接收拍摄指令;
执行模块802,用于响应于该拍摄指令,执行拍摄处理流程,得到目标图像,该拍摄处理流程包括多个算法;其中,在执行该拍摄处理流程的过程中,在需要运行目标算法前,获取系统负载信息,根据该系统负载信息确定目标算法的预估耗时,根据拍摄超时阈值和目标算法的预估耗时确定是运行目标算法还是跳过目标算法,目标算法是该多个算法中任意一个算法。
在本申请实施例中,电子设备在运行该拍摄处理流程中的每个算法前,都可以根据系统负载信息确定该算法的预估耗时,并根据该预估耗时和拍摄超时阈值确定是运行该算法还是跳过该算法。如此,可以以拍摄超时阈值为约束来控制该拍摄处理流程的总运行时长,使该拍摄处理流程的总运行时长大概率不超过拍摄超时阈值,从而可以减小该拍摄处理流程出现超时的可能性,降低图像拍摄时的丢图率,提升用户的拍摄体验。
需要说明的是:上述实施例提供的拍摄装置在拍摄时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的拍摄装置与拍摄方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种芯片系统,该芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请任一方法实施例的步骤。该芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(DigitalSubscriber Line,DSL)等)或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(比如:软盘、硬盘、磁带等)、光介质(比如:数字通用光盘(DigitalVersatile Disc,DVD)等)或半导体介质(比如:固态硬盘(Solid State Disk,SSD)等)等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种拍摄方法,其特征在于,所述方法包括:
接收拍摄指令;
响应于所述拍摄指令,执行拍摄处理流程,得到目标图像,所述拍摄处理流程包括多个算法;
其中,在执行所述拍摄处理流程的过程中,在需要运行目标算法前,获取系统负载信息,根据所述系统负载信息确定所述目标算法的预估耗时,根据拍摄超时阈值和所述目标算法的预估耗时确定是运行所述目标算法还是跳过所述目标算法,所述目标算法是所述多个算法中任意一个算法。
2.如权利要求1所述的方法,其特征在于,所述系统负载信息包括多个芯片中每个芯片的运行状况信息。
3.如权利要求2所述的方法,其特征在于,所述多个芯片是执行所述拍摄处理流程需要使用的芯片。
4.如权利要求3所述的方法,其特征在于,所述多个芯片包括中央处理器CPU所在的芯片、图形处理器GPU所在的芯片和数字信号处理器DSP所在的芯片。
5.如权利要求2所述的方法,其特征在于,所述芯片的运行状况信息包括所述芯片的负载率和频率。
6.如权利要求2所述的方法,其特征在于,所述根据所述系统负载信息确定所述目标算法的预估耗时,包括:
根据所述多个芯片中每个芯片的运行状况信息确定所述每个芯片的负载恶化系数;
根据所述多个芯片中每个芯片的负载恶化系数和所述目标算法对应的预设耗时确定所述目标算法的预估耗时。
7.如权利要求6所述的方法,其特征在于,所述根据所述多个芯片中每个芯片的运行状况信息确定所述每个芯片的负载恶化系数,包括:
对于所述多个芯片中任意的一个芯片的运行状况信息,将所述芯片的运行状况信息输入所述芯片对应的运行性能模型,获得所述运行性能模型输出的负载恶化系数。
8.如权利要求6所述的方法,其特征在于,所述根据所述多个芯片中每个芯片的负载恶化系数和所述目标算法对应的预设耗时确定所述目标算法的预估耗时,包括:
根据所述多个芯片中每个芯片的权重,对所述多个芯片中每个芯片的负载恶化系数进行加权平均,得到目标恶化系数;
将所述目标恶化系数与所述目标算法对应的预设耗时相乘,得到所述目标算法的预估耗时。
9.如权利要求1至8任一所述的方法,其特征在于,所述根据拍摄超时阈值和所述目标算法的预估耗时确定是运行所述目标算法还是跳过所述目标算法,包括:
获取目标时长,所述目标时长是所述拍摄超时阈值减去所述拍摄处理流程当前的运行时长得到;
若所述目标算法的预估耗时小于或等于所述目标时长,则运行所述目标算法;
若所述目标算法的预估耗时大于所述目标时长,则跳过所述目标算法。
10.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器,以及存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至9中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至9中任一项所述的方法。
12.一种计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1至9中任一项所述的方法。
CN202410350267.7A 2024-03-26 2024-03-26 拍摄方法、电子设备、存储介质和程序产品 Pending CN117956264A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410350267.7A CN117956264A (zh) 2024-03-26 2024-03-26 拍摄方法、电子设备、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410350267.7A CN117956264A (zh) 2024-03-26 2024-03-26 拍摄方法、电子设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN117956264A true CN117956264A (zh) 2024-04-30

Family

ID=90803371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410350267.7A Pending CN117956264A (zh) 2024-03-26 2024-03-26 拍摄方法、电子设备、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN117956264A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108881706A (zh) * 2017-05-16 2018-11-23 北京三星通信技术研究有限公司 控制多媒体设备工作的方法及装置
CN111190753A (zh) * 2019-12-30 2020-05-22 腾讯科技(深圳)有限公司 分布式任务处理方法、装置、存储介质和计算机设备
CN111416759A (zh) * 2020-03-27 2020-07-14 海信集团有限公司 智能家居设备及控制方法
CN112788235A (zh) * 2020-12-31 2021-05-11 深圳追一科技有限公司 图像处理方法、装置、终端设备及计算机可读取存储介质
CN114600445A (zh) * 2020-12-16 2022-06-07 深圳市大疆创新科技有限公司 追踪算法的运行方法、装置、电子设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108881706A (zh) * 2017-05-16 2018-11-23 北京三星通信技术研究有限公司 控制多媒体设备工作的方法及装置
CN111190753A (zh) * 2019-12-30 2020-05-22 腾讯科技(深圳)有限公司 分布式任务处理方法、装置、存储介质和计算机设备
CN111416759A (zh) * 2020-03-27 2020-07-14 海信集团有限公司 智能家居设备及控制方法
CN114600445A (zh) * 2020-12-16 2022-06-07 深圳市大疆创新科技有限公司 追踪算法的运行方法、装置、电子设备及计算机可读存储介质
CN112788235A (zh) * 2020-12-31 2021-05-11 深圳追一科技有限公司 图像处理方法、装置、终端设备及计算机可读取存储介质

Similar Documents

Publication Publication Date Title
CN115473957B (zh) 一种图像处理方法和电子设备
CN113453040B (zh) 短视频的生成方法、装置、相关设备及介质
CN113709355B (zh) 滑动变焦的拍摄方法及电子设备
CN115689963B (zh) 一种图像处理方法及电子设备
CN116320783B (zh) 一种录像中抓拍图像的方法及电子设备
CN114640783B (zh) 一种拍照方法及相关设备
CN115802146B (zh) 一种录像中抓拍图像的方法及电子设备
CN116916151B (zh) 拍摄方法、电子设备和存储介质
CN116052701B (zh) 一种音频处理方法及电子设备
CN116723383B (zh) 一种拍摄方法及相关设备
CN115802148B (zh) 一种获取图像的方法及电子设备
CN115686182B (zh) 增强现实视频的处理方法与电子设备
CN116055868A (zh) 一种拍摄方法及相关设备
CN117956264A (zh) 拍摄方法、电子设备、存储介质和程序产品
CN115460343B (zh) 图像处理方法、设备及存储介质
CN115776532B (zh) 一种录像中抓拍图像的方法及电子设备
CN117389745B (zh) 一种数据处理方法、电子设备及存储介质
CN115424118B (zh) 一种神经网络训练方法、图像处理方法及装置
CN116363017B (zh) 图像处理方法及装置
CN116723382B (zh) 一种拍摄方法及相关设备
CN117076284B (zh) 页面加载时长的检测方法、设备及存储介质
CN116700578B (zh) 图层合成方法、电子设备以及存储介质
CN117082295B (zh) 图像流处理方法、设备及存储介质
WO2022206600A1 (zh) 一种投屏方法、系统及相关装置
CN117692753A (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