CN117459825A - 一种拍摄方法和电子设备 - Google Patents

一种拍摄方法和电子设备 Download PDF

Info

Publication number
CN117459825A
CN117459825A CN202210832195.0A CN202210832195A CN117459825A CN 117459825 A CN117459825 A CN 117459825A CN 202210832195 A CN202210832195 A CN 202210832195A CN 117459825 A CN117459825 A CN 117459825A
Authority
CN
China
Prior art keywords
image
window
video
recording
terminal
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
CN202210832195.0A
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 CN202210832195.0A priority Critical patent/CN117459825A/zh
Publication of CN117459825A publication Critical patent/CN117459825A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72439User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for image or video messaging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Environmental & Geological Engineering (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请提供了一种拍摄方法和电子设备。实施该方法,手机、平板电脑等终端设备可以在开始拍摄或拍摄过程中,根据用户操作确定拍摄主角。在拍摄的过程中,终端设备可以在预览窗中显示摄像头采集的图像流,同时,终端设备还可生成一个专门显示主角的小窗。在结束录制之后,用户可以得到两个视频:基于预览窗中的图像流生成的原始视频,和基于小窗中主角图像流生成的特写视频。这样,用户可以选择使用原始视频和/或特写视频,以满足自身不同时刻不同场景下的个性化需求。

Description

一种拍摄方法和电子设备
技术领域
本申请涉及终端领域,尤其涉及一种拍摄方法和电子设备。
背景技术
为提高用户体验,手机、平板电脑等终端设备通常配置多个摄像头。为拍照与录像功能提供多种拍摄模式。例如,前摄模式、后摄模式、前后双摄模式等。实现中,用户可使用终端设备录制一个或多个人物的视频。在用户想得到其中一个目标人物的视频时,可对视频进行人工剪辑处理。但人工剪辑的处理方法操作繁琐,且需要拍摄用户具备一定的视频剪辑技术,用户体验较差。
发明内容
第一方面,本申请提供了一种拍摄方法,该应用于具备摄像头和屏幕的电子设备,该方法包括:在屏幕中显示预览窗,预览窗中显示摄像头采集的图像;当预览窗中显示的图像包括第一对象时,在屏幕中还显示第一样式的第一窗口;第一样式的第一窗口中显示有第二图像,第二图像包括第一对象,且第一对象在第二图像中的图像内容与第一对象在预览窗中的图像内容一致;将第一窗口由第一样式切换为第二样式,在第二样式的第一窗口中显示第三图像,第三图像包括第一对象,且第一对象在第三图像中的图像内容与第一对象在预览窗中的图像内容一致;录制预览窗中的图像并保存为第一视频;录制第一窗口中的图像并保存为第二视频。
实施第一方面提供的方法,电子设备可以在确定追焦对象后,在显示预览窗的界面上再显示一个小窗,并在该小窗中,显示追焦对象的特写图像。同时,电子设备还可以调节小窗的样式,以更好地展示追焦对象。
结合第一方面提供的方法,在一些实施例中,在显示第二样式的第一窗口之前,该方法还包括:检测到第一用户操作。
实施上述实施例提供的方法,电子设备可以根据用户的点击操作调整小窗的样式,例如用户点击小窗中转置控件的操作,从而随时地根据用户需求变更小窗样式,即特写图像样式,提升用户使用体验。
结合第一方面提供的方法,在一些实施例中,在显示第二样式的第一窗口之前,该方法还包括:检测到用户手持屏幕的方向发生变化。
结合第一方面提供的方法,在一些实施例中,变化包括:从横屏到竖屏;第一样式为横窗样式,第二样式为竖窗样式。结合第一方面提供的方法,在一些实施例中,变化包括:从竖屏到横屏;第一样式为竖窗样式,第二样式为横窗样式。
实施上述实施例提供的方法,电子设备可以在再检测到用户手持屏幕的方向发生变化时,自动的变更小窗的样式,既可以好地展示追焦对象,也可以节省用户操作。例如,用户横持手机拍摄时,自动生成横向的小窗,在由横向拍摄转变为竖向拍摄时,自动的调整为竖向的小窗。
结合第一方面提供的方法,在一些实施例中,在切换之前,该方法还包括:保存第一对象的人脸和/或身体的图像位置,图像位置用于在切换之后从摄像头采集的图像中裁剪出第三图像,图像位置还用于在切换之前从摄像头采集的图像中裁剪出第二图像。
实施上述实施例提供的方法,电子设备可以在切换之后,继续追焦原来选定的追焦对象,进而电子设备可以在小窗中继续显示原来选定的追焦对象的特写图像。
结合第一方面提供的方法,在一些实施例中,在第一窗口显示第二图像之前,该方法还包括:在第一缓存区缓存第二图像,第一缓存区的尺寸与第一样式的第一窗口的尺寸匹配。
结合第一方面提供的方法,在一些实施例中,在第一窗口显示第三图像之前,该方法还包括:在第二缓存区缓存第三图像,第二缓存区的尺寸与第二样式的第一窗口的尺寸匹配。
结合第一方面提供的方法,在一些实施例中,预览窗中显示的图像包括一个或多个第二对象,第一对象是从一个或多个第二对象中选择出来的。
实施上述实施例提供的方法,电子设备可以从图像中包括的多个对象中选择一个对象作为追焦对象。
结合第一方面提供的方法,在一些实施例中,第二对象上显示有标记,第一对象是从一个或多个第二对象中选择出来的,包括:第一对象是通过用户点击标记的动作从一个或多个第二对象中选择出来的。
实施上述实施例提供的方法,电子设备可以各个对象上显示选择框,用于提示用户与上述标记对应的对象可作为追焦对象。然后,电子设备可根据用户点击任意标记的操作,将被点击的对象确定为追焦对象。
结合第一方面提供的方法,在一些实施例中,第一对象是通过识别预览窗中的图像检测到的。
实施上述实施例提供的方法,电子设备可以根据预设的规则,识别确定图像中的特定对象,然后将上述特定对象设定为追焦对象。例如,电子设备可以自动识别并追焦人物,当摄像头采集的图像中包括人物时,电子设备可以确定上述人物为追焦对象。进一步的,当摄像头采集的图像中包括多个人物时,电子设备可以确定表现最好的人物为追焦对象。
结合第一方面提供的方法,在一些实施例中,在标识的显示期间,如果超过第一时长没有检测到用户操作,则标识消失。
实施上述实施例提供的方法,当用户长时间没有操作电子设备时,电子设备可以隐藏选择框,以节省功耗,同时减少标记对预览窗中显示的图像的干扰。
结合第一方面提供的方法,在一些实施例中,第一对象是在开始录制第一视频之前选择的。结合第一方面提供的方法,在一些实施例中,第一视频和第二视频的开始录制时刻是相同的。
实施上述实施例提供的方法,电子设备可以在确定追焦对象后开始录像。这样,电子设备可以同时开始预览窗中的原始图像和小窗中的特写图像。
结合第一方面提供的方法,在一些实施例中,开始录制时刻是检测到第二对象完成第一姿势的时刻。
实施上述实施例提供的方法,用户可以通过点击操作,或者手势控制操作、语音控制操作等操作,控制电子设备开始录像。
结合第一方面提供的方法,在一些实施例中,第一对象是在开始录制第一视频之后选择的。结合第一方面提供的方法,在一些实施例中,第二视频的开始录制时刻晚于第一视频的开始录制时刻。
实施上述实施例提供的方法,电子设备也可以先开始录像,然后接收用户操作确定追焦对象。这时,在开始录像之后到确定追焦对象之前,电子设备只能录制预览窗的原始图像。在确定追焦对象之后,电子设备可以同时录制预览窗中的原始图像和小窗中的特写图像。
结合第一方面提供的方法,在一些实施例中,录制第一窗口中的图像,包括:当监测到第一对象从预览窗中消失且消失时间长于第二时长后,暂停录制。
实施上述实施例提供的方法,当摄像头采集的图像中不包括追焦对象时,小窗中无法再显示新的特写图像,此时,电子设备可以暂停录制小窗中的特写图像。
结合第一方面提供的方法,在一些实施例中,录制第一窗口中的图像,还包括:当监测到第一对象重新出现在预览窗中后,恢复录制。
实施上述实施例提供的方法,在追焦对象消失、暂停录制小窗的场景下,当检测到原追焦对象重新出现时,电子设备可在小窗中继续显示追焦对象的特写图像,并继续录制小窗中的特写图像。
结合第一方面提供的方法,在一些实施例中,该方法还包括:检测到预览窗中第一对象发生更换;更新第一窗口中显示的图像内容,更新后的图像内容包括更换后的第一对象,且更换后的第一对象在第一窗口中的图像内容与更换后的第一对象在预览窗中的图像内容一致。
实施上述实施例提供的方法,在录制视频的过程中,电子设备还可以根据用户操作切换追焦对象。这样,用户可以随时变更追焦对象,进而为用户提供更便捷地追焦拍摄服务,进一步满足用户的个性化的拍摄需求。
结合第一方面提供的方法,在一些实施例中,第一视频和第二视频的结束录制时刻是相同的。实施上述实施例提供的方法,用户可以同时结束录制预览窗对应的原始视频和小窗对应的特写视频。
结合第一方面提供的方法,在一些实施例中,第二视频的结束录制时刻早于第一视频的结束录制时刻。实施上述实施例提供的方法,用户还可以先结束录制小窗对应的特写视频,然后再根据需求结束录制预览窗对应的原始视频。
结合第一方面提供的方法,在一些实施例中,该方法还包括:在图库中显示第一视频的缩略图、第二视频的缩略图,第二视频的缩略图中包含第一对象,第一视频的缩略图也包含第一对象,第一对象在第二视频的缩略图中的图像内容与第一对象在第一视频的缩略图中的图像内容一致。
实施上述实施例提供的方法,录制视频结束之后,电子设备可以在图库应用中展示同时录制的原始视频和特写视频。这样,用户可以选择浏览或使用原始视频或特写视频,以满足用户的个性化需求。
结合第一方面提供的方法,在一些实施例中,第一视频的缩略图与第二视频的缩略图相邻陈列。
实施上述实施例提供的方法,用户可以快速方便的确定一次拍摄得到的原始视频,及其对应的特写视频。
结合第一方面提供的方法,在一些实施例中,第一窗口悬浮在预览窗中,或者与预览窗分屏显示。
结合第一方面提供的方法,在一些实施例中,第二图像是基于预览窗中显示的图像裁剪得到的。
结合第一方面提供的方法,在一些实施例中,摄像头包括第一摄像头和第二摄像头,预览窗中显示的第一摄像头采集的图像,第二图像为第二摄像头对焦第一对象采集得到的。
第二方面,本申请提供了一种电子设备,该电子设备包括一个或多个处理器和一个或多个存储器;其中,一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第三方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第四方面,本申请提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第五方面,本申请提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
可以理解地,上述第二方面提供的电子设备、第三方面提供的芯片系统、第四方面提供的计算机存储介质、第五方面提供的计算机程序产品均用于执行本申请所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1A-图1J是本申请实施例提供的一组主角模式拍摄方法的用户界面示意图;
图2A-图2I是本申请实施例提供的一组主角模式拍摄方法的用户界面示意图;
图3A-图3C是本申请实施例提供的一组浏览已拍摄图像的用户界面示意图;
图3D-图3F是本申请实施例提供的一组浏览已拍摄图像的用户界面示意图;
图4A是本申请实施例提供的一种终端100的系统结构示意图;
图4B是本申请实施例提供的一种终端100的相机应用的系统结构示意图;
图5A是本申请实施例提供的一种终端100确定追焦对象的软件模块的流程图;
图5B是本申请实施例提供的一种终端100的确定一帧图像的对象特征信息的示意图;
图6A是本申请实施例提供的一种终端100旋转小窗的软件模块的流程图;
图6B是本申请实施例提供的另一种终端100旋转小窗的软件模块的流程图;
图7是本申请实施例提供的一种终端100开始录制时的软件模块的流程图;
图8A是本申请实施例提供的一种终端100切换追焦对象时的软件模块的流程图;
图8B-图8C是本申请实施例提供的一组选择框与特征图像不对应的示意图;
图8D是本申请实施例提供的一种终端100避免选择框与特征图像不对应的软件模块的流程图;
图9是本申请实施例提供的一种终端100暂停录制时的软件模块的流程图;
图10是本申请实施例提供的一种终端100结束录制时的软件模块的流程图;
图11是本申请实施例提供的终端100的硬件结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。
为提高用户体验,手机、平板电脑等终端设备通常配置多个摄像头。为拍照与录像功能提供多种拍摄模式。例如,前摄模式、后摄模式、前后双摄模式等。可能的实现中,用户可使用终端设备录制一个或多个人物的视频。在用户想得到其中一个目标人物的视频时,可对视频进行人工剪辑处理。但人工剪辑的处理方法操作繁琐,且需要拍摄用户具备一定的视频剪辑技术,用户体验较差。
有鉴于此,本申请实施例提供了一种拍摄方法,其中,终端设备可提供主角模式的拍摄功能。在主角模式下,终端设备可额外生成一路针对主角的视频,无需人工剪辑处理,提升用户的拍摄体验。
具体的,在主角模式下,终端100在确定拍摄主角之后,可同时生成两个视频,记为原始视频和特写视频。其中,原始视频是由摄像头采集的用于送显的图像(记为原始图像)组成的。特写视频是在原始图像的基础上,识别图像中的主角,然后裁剪主角图像得到的。在录制视频的过程中,终端100可同时显示上述原始视频和特写视频,以供用户预览。
不限于生成一个特写视频,用户也可以选择多个主角。终端100可基于摄像头采集的原始图像定位上述多个主角,进而生成多个对应各个主角的特写视频。
这样,用户既可以拍得以主角为中心的特写视频,又可以同时得到由原始的摄像头采集的原始图像组成的原始视频,满足用户个性化需求,提升用户使用体验。
上述方法可应用于手机、平板电脑等终端设备上。后续统一使用终端100指代上述终端设备。不限于手机、平板电脑,终端100还可以是桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该终端的具体类型不作特殊限制。
下面具体介绍终端100实施本申请实施例提供的拍摄方法的用户示意图。
首先,图1A示例性示出了终端100启用摄像头执行拍摄动作的用户界面。
如图1A所示,该用户界面可包括菜单栏111、拍摄控件112、预览窗113、回看控件114。
菜单栏111中可显示有多个拍摄模式选项,例如夜景、录像、拍照、人像等拍摄模式。夜景模式可用于光线较暗的场景下拍摄照片,例如夜晚拍摄照片。录像模式可用于录制视频。拍照模式可用于日光场景下拍摄照片。人像模式可用于拍摄人物特写照片。
在启用摄像头执行拍摄动作时,如图1A所示,终端100可首先启用录像模式,准备开始录制视频。当然,终端100可以首先启用拍照、人像等其他拍摄模式,这时,终端100可根据用户操作进入录像模式。
拍摄控件112可用于接收用户的拍摄操作。在拍照场景下(包括拍照模式、人像模式、夜景模式),上述拍摄操作即作用于拍摄控件112的控制拍照的操作。在录制视频的场景下(录像模式),上述拍摄操作包括作用于拍摄控件112的开始录制的操作。
预览窗113可用于实时地显示摄像头采集的图像流。任意时刻,预览窗113中显示的一帧图像为一帧原始图像。
回看控件114可用于查看前一次拍摄的照片或视频。一般的,回看控件114可显示前一次拍摄的照片的缩略图或前一次拍摄的视频的首帧图像的缩略图。
在录像模式下,图1A所示的用户界面还可包括功能栏115。功能栏115中可包括多个功能控件,例如闪光灯1151、滤镜1152、设置1153、主角模式1154等功能控件。闪光灯1152可用于开启或关闭闪光灯,从而改变摄像头采集到的图像的画面亮度。滤镜1152可用于选择滤镜风格,进而调整预览窗113中的图像色彩。设置1153可用于提供更多的用于调整摄像头拍摄参数或图像优化参数的控件,例如白平衡控件、ISO控件、美颜控件、美体控件等等,从而为用户提供更丰富的拍摄服务。
主角模式1154可用于提供拍摄以主角为中心的特写视频的功能。特别的,在本申请实施例提供的主角模式拍摄方法中,终端100可根据用户操作选择和变更主角,拍摄并保存至少两路视频:分别为以主角为中心的特写视频,和基于摄像头采集的原始图像生成原始视频。其中,以主角为中心的特写视频可以有多个。一个主角可对应一个特写视频。
在显示图1A所示的用户界面的过程中,终端100可检测到作用于主角模式1154的用户操作,以开启主角模式拍摄功能。上述作用于主角模式1154的用户操作例如点击主角模式1154的操作。响应于上述操作,终端100可执行主角模式对应的算法,进入主角模式拍摄场景中,参考图1B。
图1B示例性示出了终端100进入主角模式拍摄场景后进行拍摄的用户界面。
在进入主角模式之后,终端100可对摄像头采集的图像进行图像识别,识别该图像中包括的对象(即对象识别)。上述对象包括但不限于人、动物、植物。本申请实施例后续主要以人为例进行说明。
参考图1B中预览窗113中展示的图像,某一时刻,终端100的摄像头采集的图像中包括人物1、人物2。在接收到上述图像之后,终端100可首先利用预设的对象识别算法识别图像中包括的对象。这里,上述对象识别算法可以为人体检测算法。可以理解的,当终端100还支持识别动物、植物类型的对象。相应的,上述对象识别算法还包括针对一种或多种动物的识别算法,以及针对一种或多种植物的识别算法,本申请实施例对此不作限制。这时,经过对象识别算法的处理,终端100可识别到上述图像中包括人物1、人物2这2个对象。
在接收到上述图像之后,终端100可在预览窗113中显示上述图像。基于已识别到的图像中包括的对象,在显示上述图像的同时,终端100还可显示与上述各个对象上对应的选择框。例如,终端100可在人物1上显示对应人物1的选择框121,在人物2上显示对应人物2的选择框122。这时,一方面,用户可以通过上述选择框确认终端100已检测的到可供用户选择的对象;另一方面,用户可以通过点击上述选择框中的任意一个,设定与之对应的对象为主角。
可选的,终端100还可在预览窗113中显示提示语125,例如“请选择主角人物,开启自动追焦录像”,用于提示用户选定主角。
在图1B所示的用户界面中,预览窗113中可包括美颜控件127。美颜控件127可用于调整图像中的人物的人脸图像。当检测作用于美颜控件127的用户操作之后,终端100可对图像中的人物进行美颜处理,并在预览窗中显示美颜处理后的图像。图1B所示的用户界面还可显示有其他拍摄控件,例如用于调整摄像头的焦距的焦距控件等,这里不再一一例举。
在显示图1B所示的用户界面时,终端100可检测到作用于任一选择框的用户操作。响应于上述操作,终端100可确定上述选择框对应的对象为主角。例如,参考图1C所示的用户界面,终端100可检测到作用于选择框122的用户操作。响应于上述操作,终端100可确定选择框122对应的人物2为主角。
随后,终端100可在预览窗113中以画中画的形式(嵌入)显示一个小窗,并在该小窗中显示人物2的特写图像。上述特写图像是指在摄像头采集的原始图像(预览窗中显示的图像)的基础上,以选定的主角为中心进行裁剪得到的图像。可选的,终端100可也将原来的预览窗113对应的显示区域划分为并列的两部分:一部分用户显示摄像头采集的图像;一部分用户显示基于上述摄像头采集的图像得到的特写图像。
图1D示例性示出了终端100显示小窗并在小窗中显示人物2的特写图像的用户界面。
如图1D所示,预览窗113中可包括小窗141。此时,小窗141中可显示人物2的特写图像。随着预览窗113中显示的原始图像中人物2的变化,小窗141中显示的人物2的特写图像也会相应的变化。这样,小窗141中显示的连续的以人物2为中心的特写图像即构成了人物2的特写视频。
可选的,小窗141中显示的特写图像与预览窗113中显示的原始图像还可来自不同的摄像头。例如,小窗141中显示的特写图像可以来自于长焦摄像头采集的图像,预览窗113中显示的原始图像可以来自于广角摄像头采集的图像。普通摄像头和广角摄像头可以同时采集图像。长焦摄像头和广角摄像头采集的图像可以通过时间戳进行对应。这时,小窗141中显示的特写图像是在普通摄像头采集的图像上裁剪得到的,而上述普通摄像头采集的图像对应同一时刻预览窗113中显示的广角摄像头采集的图像。这样,用户可以在预览窗113浏览更大范围的景观,同时,在小窗141中显示细节更多的主角图像。上述的广角和长焦仅是举例,小窗141中的显示图像还可以来自于广角摄像头、超广角摄像头、黑白摄像头、多光谱摄像头等任意摄像头。同样的预览窗113中显示的图像也可以自于超广角摄像头、长焦摄像头、黑白摄像头、多光谱摄像头等任意摄像头。
在确定人物2为拍摄主角之后,人物2对应的选择框122可变成图1D中选中框142。用户可通过选中框142区分主角和非主角的对象。不限于用户界面中所示的选中框142,终端100还可显示其他样式的图标,或使用不同的颜色,本申请实施例对此不作限制。
在一些示例中,用户还可以选定多个主角。例如,在图1D所示的用户界面上,终端100还可以检测到作用于选择框121的用户操作,响应于上述操作,终端100可确定选择框121对应的人物1为另一主角。在一些示例中,终端100可显示对应显示人物1的特写图像的小窗。在另一些示例中,为了避免对预览窗113造成较大遮挡,当有多个主角时,终端100也可只显示一个展示主角特写图像的小窗。对应选定的多个主角,终端100可生成多个特写视频。
可选的,用于展示特写图像的窗口141还可包括关闭控件143和转置控件144。关闭控件143可用于关闭窗口141。转置控件可用于调整小窗141的尺寸。
参考图1E,终端100可以检测到作用于关闭控件143的用户操作。响应于上述操作,终端100可关闭小窗141,参考图1F。如图1F所示,在关闭小窗141时,终端100可取消之前选定的主角(人物2)。相应地,对应人物2的选中框142可变更为选择框122。这时,用户可以重新选择预览窗113中已识别到的任一对象为主角。终端100可基于重新确定的主角,再次在预览窗113中显示小窗141。此时,小窗141中显示以新主角为中心对原始图像进行处理得到的特写图像。
参考图1G,终端100可以检测到作用于转置控件144的用户操作。响应于上述操作,终端100可将图1F中竖向的小窗141调整为横向,参考图1H。
可选的,在确定主角之后,终端100可首先生成宽高比9:16的用于展示特写图像的小窗(竖窗),参考图1D中的小窗141。上述宽高比为示例性例举,竖窗的宽高比包括但不限于9:16这一类。其中,可选的,终端100可固定地在屏幕的左下方(或右下方、左上方、右上方)显示上述小窗141。当检测到作用于转置控件144的用户操作之后,终端100可将原来的竖窗变更为宽高比16:9的横向小窗(横窗)。当然,终端100也可默认生成横窗,然后,根据用户操作将横窗调整为竖窗,本申请实施例对此不作限制。这样,用户可用过转置控件144调整特写视频的视频内容和视频格式,以满足自身个性化需求。
在一些示例中,上述小窗还可根据预览窗中的主角的位置,调整显示位置,以避免对预览窗113中主角的造成遮挡。进一步的,终端100还可根据用户操作调整小窗的位置和大小。在一些示例中,终端100还可检测到作用于小窗141的长按操作和拖动操作。响应于上述操作,终端100可将小窗移动到用户拖动操作最后停下的位置。
在一些示例中,终端100还可根据用户终端100的姿态,即用户手持终端100的姿态(横屏或竖屏),确定小窗的样式。例如,当检测终端100当前处于横屏拍摄时,终端100可显示横窗。当检测终端100变更为竖屏拍摄时,终端100可将横窗变更为竖窗,以更好的展示追焦对象的特写图像。
在另一些示例中,终端100还可检测到作用于小窗141的双击操作,响应于上述操作,终端100可将放大或缩小小窗141。不限于上述介绍的长按操作、拖动操作以及双击操作,终端100还可通过手势识别和语音识别来控制调整小窗的位置和大小。例如,终端100可通过摄像头采集的图像识别到用户做出了握拳手势,响应于上述握拳手势,终端100可缩小小窗141。终端100可通过摄像头采集的图像识别到用户做出了张手手势,响应于上述张手手势,终端100可放大小窗141。
可选的,在进入主角模式之后,在预设时间内仅识别到第一个对象,终端100也可默认地将上述对象设定为主角。例如,参考图1B所示的用户界面,在5秒内,预览窗113中显示的已识别的可作为主角的对象均只有人物2一个,此时,终端100可默认地将上述人物2设定为主角。这样,在典型的单人拍摄场景中,终端100可以智能地确定主角,从而节省用户操作。
可选的,在进入主角模式之后,在识别到多个对象时,终端100也可根据预设的评价规则,从上述多个对象中的选择出一个最佳对象,作为主角。上述评价规则例如人物图像大小,人脸区域的图像亮度等等,这里不再一一例举。
在开始录制视频之前,在确定主角之后,若选定的主角丢失(预览窗113中显示的图像中不包括主角),则小窗141中显示的主角的特写图像会定格在丢失前的最后一帧。
参考图1D,预览窗113中显示图像可以为摄像头采集的第n帧图像。此时,小窗141中显示的图像为基于上述第n帧图像得到的以主角(人物2)为中心的特写图像。参考图1I,预览窗113中显示图像可以为摄像头采集的第n+1帧图像。此时,第n+1帧图像中不包括之前选定的主角(人物2),即主角丢失。这时,小窗141中保持显示基于上述第n帧图像得到的以主角(人物2)为中心的特写图像。
如图1I所示,在检测到主角丢失之后,终端100还可显示在预览窗113中显示提示语151,例如“主角丢失,5秒后退出追焦”,用于提示用户调整摄像头位置或角度,使得终端100可以重新获取到包括主角的原始图像。
如图1J所示,如果在5秒后,终端100仍未找回主角(人物2),即摄像头采集的图像中仍然不包括之前选定的主角(人物2),则终端100可关闭小窗141,并取消之前选定的主角(人物2)。上述5秒是预设的,终端100还可设定其他时间长度,例如10秒等等,本申请实施例对此不作限制。
在预览过程中,在确定主角之后,终端100可开始录制视频。在本申请实施例提供的主角模式下,终端100可基于预览窗113中显示的原始图像生成原始视频,同时,终端100还可基于小窗141中的主角的特写图像生成特写视频。
如图2A所示,终端100可检测到作用于拍摄控件112的用户操作。上述操作可称为开始拍摄的用户操作。响应于上述操作,终端100可开始录制视频(原始视频和特写视频),即编码并保存摄像头采集的原始图像,和以主角为中心的特写图像。这时,原始视频和特写视频的开始录制时刻是相同的。在一些示例中,上述开始拍摄的用户操作还可以是预设的用户肢体动作或语音指令。其中,用户肢体动作包括手势动作(例如举手、握拳)、体势动作(例如跳跃、奔跑)。图2A所示的点击操作以及上述用户肢体动作或语音指令可称为第一姿势。
在开始录制视频之后,如图2A所示的用户界面可变更为图2B所示的样子。如图2B所示,在开始录制视频之后,终端100可显示控制模组211。控制模组211中可包括暂停控件2111和停止控件2112。暂停控件2111可用于暂停录制视频,包括暂停录制预览窗113对应的原始视频,和暂停录制小窗141对应的特写视频。停止控件2112可用于停止录制视频,包括停止录制原始视频,和停止录制特写视频。
在开始录制视频之后,预览窗113和小窗141中均可显示时间戳。例如预览窗113左上角显示的时间戳“00:01”,小窗141左上角显示的时间戳“00:01”。初始时,预览窗113和小窗141中的时间戳是相同的。后续,根据主角在预览窗113中的出镜情况,预览窗113和小窗141中的时间戳可能会不同,这里先不展开。
可选的,终端100也可在开始录制视频之后,确定主角,生成小窗141并显示主角的特写视频。这时,终端100先检测到开始录制的用户操作,然后再检测到点击某一选择框选定对应的对象为主角的操作。上述检测到开始录制的用户操作对应的视频为原始视频的开始录制时刻。上述点击某一选择框选定对应的对象为主角的操作对应的时刻为特写视频开始录制的视频。因此,在上述录制场景中,特写视频的开始录制时刻在原始视频之后。
可选的,在开始录制视频之后,小窗141中还可显示停止控件212。停止控件212可用于停止录制特写视频。在检测到的作用于停止控件212的用户操作之后,终端100可关闭小窗141,并停止录制小窗141对应的特写视频。此后,可选的,用户可以重新选择主角。这时,终端100不停止录制原始视频。在选定新的主角之后,终端100可重新显示小窗141,并在小窗141中显示新主角的特写视频,录制新主角的特写视频。
可选的,小窗141中还可显示暂停控件213。在检测到的作用于暂停控件213的用户操作之后,终端100可暂停更新小窗141中显示的图像,同时也暂停录制小窗141中的图像(即暂停录制特写视频)。在检测到的作用于暂停控件213的用户操作之后,终端100可显示继续录制控件替代暂停控件213。在检测到的作用于继续录制控件的用户操作之后,终端100可恢复更新小窗141中显示的图像,同时恢复录制特写视频。
终端100还可监听作用于屏幕的用户操作。在显示图2B所示的用户界面的基础上,当5秒内未监听到作用于屏幕上预览窗113的用户操作时,例如点击操作,终端100可以隐藏预览窗113中的选择框;当5秒内未监听到作用于屏幕上小窗141的用户操作时,终端100可以隐藏小窗141中的功能控件,例如小窗的时间戳、停止控件212。上述预设的5秒时长可称为第一时长。
在开始录制视频之后,终端100还可提供切换主角的服务。参考图2C所示的用户界面,在开始录制视频后的第5秒时,终端100可检测到作用于选择框121的用户操作。上述操作可称为切换主角的用户操作。响应于上述操作,终端100可将选择框121对应的人物1设定为主角。此时,之前设定为主角的人物2不再为主角。
参考图2D所示的用户界面,在将人物1设定为主角之后,终端100可在小窗141中显示人物1的特写图像,不再显示人物2的特写图像。适应性的,终端100可将人物1对应的选择框121更新为选中框211,同时,将人物2对应的选中框143更新为选择框122。
其中,在切换主角的过程中,小窗141可以直接显示切换后的人物1的特写图像,呈现跳跃式的显示效果。可选的,小窗141还可通过平滑策略实现非跳跃式的主角切换显示效果。例如,在将主角切换为人物1之后,终端100可根据预览窗113中人物2到人物1的路径,确定一组平滑移动的图像帧,然后在小窗141中显示上述图像帧,以实现非跳跃式的主角切换显示。例如,终端100还可使用固定的过渡效果,连接切换前后的主角的特写图像。上述固定的过渡效果例如视频编辑中常用的叠加、旋涡、平移等等。本申请实施例对此不作限定。
可选的,在初始主角是终端100根据预设的评价规则自动确定的场景下,终端100也可根据上述评价规则更换主角。例如,在刚开始录制视频的过程中,人物2的评价最高,此时终端100可确定人物2为主角,后续,终端100可检测到人物1的评价高于上述人物2,此时,终端100可将主角由人物2更换为人物1。
在录制视频的过程中,用户初始选定的主角可能离开终端100的摄像头的取景范围。这时,预览窗113对应的原始图像也会出现主角丢失的情况。同样的,在识别到主角丢失之后,终端100也可显示主角丢失的提示,并定格小窗141中的主角的特写图像。
参考图2E所示的用户界面,在开始录制视频后的第10秒时,终端100可检测到预览窗113中显示的原始图像(摄像头采集的原始图像)包括人物2,但不包括人物1(主角),即主角丢失。这时,终端100可在预览窗113中显示提示语231(“主角丢失,5秒后退出追焦”),以提示用户调整摄像头位置或角度,使得终端100可以重新获取到包括主角的原始图像。同时,终端100可小窗141中保持显示前一时刻确定的主角(人物1)的特写图像。从用户角度,小窗141中显示的特写图像暂停了,定格在了前一时刻确定的主角(人物1)的特写图像上。相应的,小窗141中左上角显示的时间戳暂停计时。
在看到上述提示语231之后,用户可调整摄像头位置以使得主角在摄像头的取景范围内,从而使得摄像头可以重新采集到包括主角的图像。
如图2F所示,如果在5秒后(开始录制视频后的第15秒00:15),终端100仍未找回主角(人物1),即预览窗113中的图像中仍然不包括之前选定的主角(人物1),则终端100可显示提示语232(“主角追焦已暂停”)。同时,终端100可在小窗141显示特写图像的图层之上显示一个半透明的灰色蒙版,以提示用户追焦录制已暂停。上述预设的5秒可称为第二时长。
可以理解的,在图2E所示的第10秒时,终端100就已经暂停录制小窗141中的特写视频了。其中,第10秒~第15秒这5秒的时间,是给终端100设置的用于用户调整的过渡时间。可选的,在第10秒~第15秒这5秒的时间内,终端100也可基于按主角丢失前的最后一帧的裁剪特写图像的方式,裁剪后续的预览窗113中的图像得到特写图像。此时,上述图像可不包括主角。
如果在暂停录制特写视频之后的某一时刻,终端100重新识别到了上述主角(人物1),这时,终端100可在小窗141中显示新获取的主角(人物1)的特写图像,并继续录制特写视频。
例如,参考图2G所示的用户界面,在开始录制视频后的第18秒时,摄像头重新采集到了包括人物1的图像,即预览窗113中显示的图像再次包括人物1。这时,终端100可基于上述包括人物1的原始图像确定以人物1为中心的特写图像,然后,在小窗141中显示上述特写图像。相应的,小窗141中左上角显示的时间戳恢复计时。同时,终端100继续编码上述特写图像,即继续录制特写视频。
在录制视频一段时间之后,终端100可检测到结束拍摄的用户操作。参考图2H所示的用户界面,例如,在开始录制视频之后的第25秒时,终端100可检测到作用于停止控件2112的用户操作。上述用户操作可称为结束拍摄的用户操作。响应于上述结束拍摄的用户操作,终端100可停止编码图像,并将开始录制至结束录制期间已编码的图像封装为视频保存到本地存储器中。
其中,响应于上述结束拍摄的用户操作,终端100可停止编码预览窗113对应的原始图像,并将开始录制至结束录制期间已编码的原始图像封装为原始视频保存到本地存储器中。同时,终端100可停止编码小窗141对应的特写图像,并将开始录制至结束录制期间已编码的特写图像封装为特写视频保存到本地存储器中。
保存完成之后,终端100可显示图2I所示的用户界面。如图2H所示,终端100可重新显示拍摄控件112和回看控件114。此时,回看控件114上可显示用于指示上述已录制的原始视频和特写视频的缩略图。可选的,上述标识可以为上述原始视频的第一帧图像的缩略图,或者上述特写视频的第一帧图像的缩略图。
在显示图2I所示的用户界面的过程中,终端100可检测到作用于回看控件114的用户操作。响应于上述操作,终端100可播放已拍摄原始视频和/或特写视频。这样,用户立刻查看上述原始视频和/或特写视频。
在一些实施例中,终端100还可支持在录制视频的过程中调整小窗样式,例如将竖窗变更为横窗,或将横窗变更为竖窗。
参考图3A所示的用户界面,在开始录制视频之后,小窗141中还可包括转置控件144。此时,小窗141可以为宽高比9:16的竖窗。如图3B所示,在录制视频过程中的某一时刻,终端100可检测到作用于转置控件144的用户操作。响应于上述操作,终端100可显示图3C所示的用户界面。此时,小窗141变更为宽高比16:9的横窗。
相应的,在检测到小窗141切换为横窗之后,终端100可更换确定特写图像的裁剪方式,使得裁剪后得到的特写图像与小窗141相适应,从而保证特写图像能正常地在小窗141中显示。
实施上述方法,终端100可以录制包括上述两种尺寸的图像的特写视频,从而进一步满足用户的拍摄需求。
图3D示例性示出了终端100上图库应用提供的一个用于展示本地保存的视频和/或图片用户界面。图库应用(或称相册应用)是终端100上管理本地保存的视频和/或图片的应用。
如图3D所示,该用户界面可显示多个缩略图图标。一个缩略图图标对应一次拍摄操作得到的视频或图片。示例性的,上述多个缩略图图标可包括图标313。图标313可对应前述图2A-图2I所示的拍摄操作生成的视频。
终端100可检测到作用于图标313的用户操作。响应于上述操作,终端100可展示前述图2A-图2I所示的拍摄操作拍摄的视频:原始视频和特写视频,参考图3E。
如图3E所示,该用户界面可包括窗口322和窗口323。其中,窗口331可用于展示图2A-图2I所示的拍摄操作拍摄的原始视频;窗口323可用于展示图2A-图2I所示的拍摄操作拍摄的特写视频。
在一些示例中,终端100在显示图3E所示的用户界面时,可同时播放原始视频和特写视频。其中,特写视频的视频帧与原始视频在时间戳上对齐。这样,用户可以同时浏览原始视频和特写视频。在一些示例中,终端100也可先播放原始视频后播放特写视频,以便于用户单独浏览各个视频。
进一步的,在图3E所示的用户界面的基础上,终端100可检测到作用于原始视频或特写视频的用户操作,例如点击操作。响应于上述操作,终端100可单独地展示上述视频。以原始视频为例,在检测到作用于原始视频的点击操作之后,终端100可单独地以全屏的形式播放原始视频,以便于用户可以浏览分辨率更高的更清晰的原始视频。
图3F示例性示出了另一种终端100展示本地保存的视频和/或图片的用户界面。
在图3F所示的用户界面中,终端100可以显示两个缩略图图标,例如图标331,图标332。这两个缩略图图标分别对应主角模式下拍摄得到的原始视频和特写视频。例如,图标331可对应上述原始视频,图标332可对应上述特写视频。在检测到作用于图标331的用户操作之后,终端100可展示原始视频。在检测到作用于图标332的用户操作之后,终端100可展示特写视频。
其中,图标331,图标332可包括相同的图像内容,例如用户选定的主角人物2。这样,用户可以通过图像中显示的图像内容,直观清晰地确定上述两个图标对应的视频是在主角模式下拍摄的一组视频。
实施图1A-图1J、图2A-图2I、图3A-图3F所示的自动追焦拍摄方法(主角模式),终端100可以实时地检测摄像头采集的原始图像中的对象。用户可以随时选择终端100已识别到的一个或多个对象中的任一对象为主角,也可以随时切换主角,还可以随时切换小窗的样式调整主角的特写图像等。
在开始录制之前,当已设定为主角的对象丢失时超过一段时间,终端100可取消上述对象的主角资格,然后,指示用户重新选定主角。在录制过程中,当已设定为主角的对象丢失时,终端100可暂停录制;当找回主角时,终端100可以继续录制。这样,用户可以得到连贯的以主角为中心的特写视频,并且上述主角不限定为一个对象。
在录制结束后,终端100可同时保存原始视频和特写视频。其中,原始视频可以保留录制过程中摄像头采集到的全部图像内容。特写视频可以集中地展示用户选定的主角的视频内容。用户可根据不同的需求,浏览或使用上述原始视频或特写视频,从而为用户提供更丰富的使用体验。
图4A示例性示出了终端100的软件结构框图。
终端100可采用分层架构。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,分层架构将安卓Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图4A所示,应用程序包可以包括相机,图库,电话,地图,电话,音乐,设置,邮箱,视频,社交等应用程序。其中,本申请实施例主要涉及相机应用。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图4A所示,应用程序框架层可以包括窗口管理器,内容提供器,资源管理器,视图系统,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,触摸屏幕,拖拽屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。二维图形引擎是二维绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合终端设备界面切换的场景,示例性说明终端设备软件以及硬件的工作流程。
例如,当终端设备中的触摸传感器接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸力度,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的按钮。以该触摸操作是触摸单击操作,该单击操作所对应的按钮为“相机应用”图标的按钮为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动显示驱动,显示相机应用的功能界面。相机应用的功能界面可以包括“录像”按钮。
当终端设备的触摸传感器接收到针对相机应用中“录像”按钮的触摸操作时,触摸操作对应的输入事件经过系统库、内核层、应用程序框架层给到相机应用,相机应用调用应用程序框架层中的相机访问接口,启动相机应用的录像功能,在内核层基于摄像头驱动,驱动一个或多个摄像头实时采集一帧或多帧图像。摄像头采集到图像后,可通过内核层、系统库、应用程序框架层将图像实时发送给相机应用,进而由相机应用将图像显示到相机应用的界面。
基于图4A所示的软件结构框图,图4B示例性示出了的相机应用的软件结构框图。
如图4B所示,相机应用的软件结构框图可包括三层:相机应用CameraApp、相机框架CameraFWK和相机硬件抽象CameraHAL。
CameraApp可包括功能模块和相机管理模块。
功能模块示例性示出了相机应用提供的录像功能、多镜功能对应的功能模块。以录像功能模块为例,录像功能模块可包括闪光灯模块、滤镜模块以及主角模式模块等。其中,主角模式模块对应上述用户界面介绍的拍摄方法。
具体的,主角模式模块可包括特性开关模块、功能模块、大窗控制模块、小窗控制模块、开始录制模块、暂停录制模块、结束录制模块。
特性开关模块中记录了开启主角模式的处理逻辑。功能模块中记录了全局的主角模式拍摄方法的处理逻辑。大窗控制模块中记录了主角模式中与预览窗显示相关的处理逻辑。小窗控制模块中记录了主角模式中与小窗显示相关的处理逻辑。开始录制模块中记录了主角模式中开始录像的处理逻辑。暂停录制模块中记录了主角模式中暂停录像的处理逻辑。结束录制模块中记录了主角模式中结束录像的处理逻辑。
相机管理模块可包括设备管理模块DeviceManager、会话管理模块SessionManager、表面管理模块SurfaceManager。相机框架模块CameraFWK可包括相机管理模块CameraManager、相机设备模块CameraDevice、会话模块Session、输出模块output。上述模块可参考现有的相机框架中对应的模块,这里不再赘述。
相机硬件抽象CameraHAL可包括帧流模块Stream、帧预处理模块framePreprocessing、对象检测模块tackDetect、追焦模块tracking。
帧流模块可用于缓存摄像头采集的图像帧流。帧预处理模块可用于对已获取到的图像帧执行美颜、美体、滤镜等图像处理算法。对象检测模块中包括对象识别算法。执行对象识别算法,对象检测模块可识别任意一帧图像中的对象。追焦模块中包括追焦算法。执行追焦算法,追焦模块可定位在后图像帧中的主角,从而使得CameraApp可以确定实现针对主角的自动追焦。
下面具体介绍终端100在实施主角模式拍摄方法时相机应用的各软件模块的交互流程。
首先,参考图1A-图1D所示的用户界面,在预览过程中,终端100可识别图像中的对象,并根据用户的点击操作确定选择哪一对象作为主角(即追焦对象)。图5A示例性示出了终端100提供上述功能的流程图。
S501.检测到开启主角模式的用户操作。
结合图1A所示的用户界面,在调用摄像头录像的场景下,用户可以通过作用于主角模式1154的操作,指示终端100开启主角模式,进而使用主角模式录制以主角为中心的特写视频以及原始视频。在上述过程中,CameraApp中的特性开关模块可检测到上述作用于主角模式1154的开启主角模式的用户操作。
S502.发送指示加载主角模式程序块的控制信息。
在检测到开启主角模式的用户操作之后,特性开关模块可向功能模块发送控制信息。上述控制信息可用于指示功能模块加载主角模式对应的程序块。
S503.加载主角模式程序块。
在收到上述控制信息之后,功能模块可将存储器中存储的主角模式程序块加载到内存中,以便于处理器执行主角模式程序块中的程序代码。
S504.调用对象检测接口。
在完成加载主角模式程序块的操作之后,首先,功能模块可调用对象检测接口(对象检测函数)。对象检测接口可用于调用CameraHAL中的对象检测模块执行对象识别算法,识别摄像头采集的原始图像中包括的对象。摄像头可连续地采集并生成原始图像(原始图像流),对象检测模块可连续地识别原始图像流中各图像中的对象。
可选的,在调用对象检测接口时,功能模块可向CameraHAL中对象检测模块传输原始图像的图像数据,或向其传输存储上述原始图像的地址,以便于对象检测模块获取原始图像。
S505.执行对象识别算法,确定原始图像的对象特征信息。
当对象检测接口中传输的数据为原始图像的图像数据时,对象检测模块可直接将上述原始图像的图像数据输入对象识别算法中,然后确定原始图像的对象特征信息。上述对象特征信息包括对象数量和各个对象的特征信息。一个对象的特征信息包括但不限于该对象的对象标识(objectId)、面部位置(face)、人体位置(body)、中心点(center),以及追踪标签(isTracking)。
对象标识用于唯一标识一个对象。面部位置用于指示该对象的面部图像在原始图像中的位置。人体位置用于指示该对象的面部图像在原始图像中的位置。中心点为该对象的整体图像的中心点坐标。追踪标签用于指示该对象是否为主角。例如,isTracking=1可表示该对象未被设定为追踪对象,即未被设定为主角;isTracking=0可表示该对象被设定为追踪对象,即主角。初始的,追踪标签均为指示未被追踪的标签。
示例性的,以图5B所示原始图像S1为例,执行对象识别算法,对象检测模块可确定S1中的对象特征信息,参考表1:
表1
objectId face body center isTracking
1 Face1 Body1 C1(x1,y1) 0
2 Face2 Body2 C2(x2,y2) 0
以objectId=1标记的对象为例,Face1可表示人物1的面部图像。Body1可表示人物1的人体图像。C1(x1,y1)中的(x1,y1)可表示中心点的坐标。isTracking=0可表示当前该对象未被设定为追焦对象(主角)。
在本申请实施例中,对象识别算法主要是针对人物这一类对象的识别算法,即人体检测算法。在终端100还可支持追焦植物、动物、建筑等类型的主角时,上述对象识别算法还包括识别特定植物、动物、建筑的识别算法,这里不再赘述。
在一些实施例中,终端100可以利用人体检测算法确定图像中包括的一个或多个人物。在一些实施例中,终端100还可以利用人体检测算法和人脸检测算法确定图像中包括的一个或多个人物。当人体检测算法输出的一个人体图像和人脸检测算法输出的一个人脸图像匹配时,终端100可确定一个人物。在多人场景中,上述方法可以减少人物图像重叠的干扰,提升人物识别的准确性。
S506.返回对象特征信息(face,body,center,isTracking,objectId)。
在对象检测模块通过对象识别算法确定原始图像中的对象特征信息之后,对象检测模块可将上述特征信息返回给功能模块。例如,对象检测模块可将上述表1所示的对象特征信息返回给功能模块。
S507.基于对象特征信息中的中心点确定选择框的显示坐标。
结合图1B所示的用户界面,终端100在显示摄像头采集的原始图像时,还会显示与上述原始图像中各个对象对应的选择框,例如选择框121、122。
这时,在接收到上述对象特征信息之后,功能模块可首先根据对象的数量,确定选择框的数量。然后,功能模块可根据各个对象的中心点(center),确定与该对象对应的选择框在屏幕上的显示坐标。
以人物1(objectId=1)为例,在接收到表1所示的对象特征信息之后,功能模块可确定人物1的中心点C1(x1,y1)。然后,功能模块可生成与人物1对应的选择框121。在上述过程中,功能模块可通过中心点C1(x1,y1)确定选择框121的显示坐标C_screen(X1,Y1)。同理,功能模块可确定其他对象的选择框的显示坐标:选择框122的显示坐标C_screen(X2,Y2)。
S508.发送指示绘制并显示选择框的控制信息。
在确定图像中各个对象对应的选择框的显示坐标之后,功能模块可向大窗控制模块发送指示大窗控制模块绘制并显示选择框的控制信息。上述控制信息中还可携带各个选择框的显示坐标,例如C_screen(X1,Y1)、C_screen(X2,Y2),以供大窗控制模块确定个选择框在屏幕上的显示位置。
S509.绘制并显示选择框。
在接收到上述指示绘制并显示选择框的控制信息之后,大窗控制模块可确定绘制并显示选择框。其中,通过上述控制信息中携带的显示坐标,大窗控制模块可绘制与原始图像中各个对象对应的选择框。然后,大窗控制模块可将已绘制的选择框的显示数据发送到显示器,从而实现在屏幕上显示上述选择框的功能。
参考图1B所示的用户界面,此时,终端100可在显示图像的同时,在图像中各个对象之上显示与之对应的选择框,从而为用户提供选择主角的功能。
S510.检测到点击选择框的用户操作。
在大窗控制模块绘制并显示各个选择框之后,大窗控制模块可检测到点击上述各个选择框中任一选择框的用户操作。结合图1C所示的用户界面,在显示选择框121、122之后,终端100可检测到作用于选择框122的用户操作。
S511.返回点击坐标。
在检测到用户点击选择框的用户操作时,大窗控制模块可确定上述点击操作作用在屏幕上的坐标(点击坐标),例如click_screen(X0,Y0)。然后,大窗控制模块可将上述点击坐标返回给功能模块。
S512.依据点击坐标确定追焦对象。
在接收到大窗控制模块返回的点击坐标之后,功能模块可首先确定上述点击坐标对应的图像坐标,即确定点击操作作用在图像中的位置。然后,功能模块可依据上述图像坐标和各个对象的中心点,确定用户点击的对象,即确定追焦对象(主角)。
例如,在接收到click_screen(X0,Y0)之后,功能模块可依据上述click_screen(X0,Y0)确定用户点击操对应的图像坐标C(x0,y0)。然后,可选的,功能模块可计算上述图像坐标C(x0,y0)与图像中个对象的中心点:C1(x1,y1)、C2(x2,y2)的距离。功能模块可确定距离最小的中心点对应的对象为追焦对象。
例如,结合图1C所示的用户界面,功能模块可确定C2(x2,y2)与C(x0,y0)之间的距离dis[C,C2]最小,于是,终端100可确定C2(x2,y2)对应的人物2(objectId=2)为追焦对象。随后,功能模块可更新人物2的追踪标签,例如将原来的isTracking=0更新为isTracking=1。
S513.下发追焦对象(face,body,center,isTracking,objectId,timestamp)。
在确定追焦对象之后,功能模块可调用追焦接口。追焦接口可用于调用CameraHAL中的追焦模块执行追焦算法,识别后续原始图像流中是否包括的上述追焦对象(主角)。
在调用追焦接口时,功能模块可向追焦模块发送追焦对象的特征信息。以上述追焦对象为人物2为例,上述功能模块发送的追焦对象的特征信息可以为:例如face=Face2,body=Face2,center=C2,isTracking=1,objectId=2。上述特征信息用于追焦模块定位后续原始图像流中的追焦对象,即定位主角。
此外,功能模块还会向追焦模块发送时间戳timestamp。上述时间戳为功能模块可调用追焦接口时的时间戳。上述时间戳可用于确定从摄像头采集的哪一帧图像开始执行追焦算法。
在支持选定多个主角的场景下,大窗控制模块可检测到多个点击选择框的用户操作,功能模块可基于上述多个点击操作确定多个追焦对象,然后向追焦模块下发上述多个追焦对象。
S514.执行追焦算法,确定追焦状态(成功、失败、失焦)。
在接收到上述追焦对象的特征信息和时间戳之后,追焦模块可执行追焦算法。通过上述追焦算法,追焦模块可追踪摄像头采集的图像中是否包括上述追焦对象,并生成以追焦对象为中心的特写图像。
具体的,追焦模块可首先根据上述时间戳确定开始执行追焦算法的第一帧图像。
由于数据传输有时延,功能模块t时刻下发追焦对象,而追焦模块需要在t+x时刻才能收到。这时,若没有时间戳,则追焦模块只能从t+x时刻对应的图像帧(记为第i+n帧图像)开始执行追焦算法。当功能模块t时刻下发追焦对象时同时携带当前的时间戳,则追焦模块可以利用上述时间戳确定上述t时刻对应的图像帧(记为第i帧图像),然后,从上述第i帧图像开始执行追焦算法,从而减少时延带来的影响,提升用户操作的连贯性,使用户获得更好的追焦体验。
其中,追焦模块可从对象检测模块中获取已经经过对象检测的第i帧图像。这样,追焦模块直接确定第i帧图像包括的各个对象。然后,追焦模块可计算第i帧图像中各个对象与上述下发的追焦对象的相似度。第i帧图像中与下发的追焦对象相似度最高且高于门限值的对象,可确定为第i帧图像中的追焦对象。
例如,追焦模块在从对象检测模块获取第i帧图像时,追焦模块还可获取到上述第i帧图像中各个对象的特征信息,参考表2:
表2
objectId face body center isTracking
i1 Face_i1 Body_i1 C_i1 0
i2 Face_i2 Body_i2 C_i2 0
然后,追焦模块可分别计算追焦对象(objectId=2)与第i帧图像中各个对象(objectId=i1,objectId=i2)的相似度。示例性的,追焦模块可确定objectId=i2与objectId=2的相似度最高且高于预设的门限值。这时,追焦模块可确定objectId=i2对应的对象为第i帧图像中的追焦对象。
当第i帧图像匹配到追焦对象时,追焦模块可确定当前帧的追踪状态为“成功”,反之,追焦模块可确定当前帧的追踪状态为“失败”。同时,由于视频流是实时生成的,在确定第i帧图像的追踪状态之后,追焦模块可继续确定第i+1帧的追焦状态,并向功能模块返回第i+1帧的追焦状态。其中,在第i帧图像状态为“成功”时,若第i+1帧图像匹配到追焦对象,追焦模块可确定第i+1帧图像的追踪状态为“成功”;若第i+1帧图像未匹配到追焦对象,追焦模块可确定第i+1帧图像的追踪状态为“失焦”。
此外,在确定objectId=i2对应的对象为第i帧图像中的追焦对象后,追焦模块可将上述objectId=i2对应的isTracking设定为1,表示该对象为追焦对象。同时,追焦模块还可基于上述追焦对象确定特写图像,以供后续CameraAPP获取该特写图像并显示。
在一些实施例中,追焦模块计算第i帧图像中各个对象与上述下发的追焦对象的相似度的具体过程如下:首先,追焦模块可根据对象检测模块输出的对象数量和各个对象的图像区域(例如图5B中的人体框body1),确定第i帧图像中的人物是否重叠。
在不重叠的场景下,终端100可以利用各个对象的图像区域与下发的追焦对象的图像区域的交并比IoU,来确定第i帧图像中的追焦对象。其中,第i帧图像中与下发的追焦对象的IoU最大的对象可被确定为第i帧图像中的追焦对象。在重叠的场景下,终端100可以利用各个对象的图像区域的交并比IoU以及图像内容的相似度确定第i帧图像中的追焦对象。其中,第i帧图像中与下发的追焦对象的IoU和图像内容相似度的和最大的对象可被确定为第i帧图像中的追焦对象。
S515.返回追焦状态(成功、失败、失焦)。
在确定追焦状态之后,追焦模块可首先将上述追焦状态返回到功能模块。然后,功能模块可根据接收到的追焦状态,确定是否显示小窗以及小窗的显示效果。
当功能模块接收到的追焦状态为“成功”时,CameraAPP可执行步骤S516-S519。
S516.发送指示开启小窗的控制信息。
当功能模块接收到第i帧图像的追焦状态为“成功”时,功能模块可向小窗控制模块发送指示小窗控制模块开启小窗的控制信息。
S517.绘制并显示小窗。
在接收到上述控制信息之后,小窗控制模块可绘制并显示小窗,例如图1D所示的小窗141。其中,小窗控制模块可向通过追焦模块提供的读取特写图像的通道(session),获取特写图像流,从而在小窗中持续地显示以追焦对象为中心的特写图像。
例如,在绘制完小窗之后,CameraAPP可接收到CameraHAL上报的第i+1帧图像及其对应的对象标记(选择框和/或选中框)、以及主角特写图像。这时,CameraAPP中的小窗控制模块可在已绘制的小窗中显示上述主角特写图像。
S518.发送指示绘制并显示选择框的控制信息。
在绘制并显示小窗的过程中,功能模块还可向大窗控制模块发送指示大窗控制模块绘制并显示对象标记(选择框和/或选中框)的控制信息。上述控制信息中还可携带各个对象标记的显示坐标。
例如,在收到第i+1帧图像及其对应的对象标记(选择框和/或选中框)、以及主角特写图像之后,功能模块可向大窗控制模块发送指示大窗控制模块绘制并显示第i+1帧图像对应的对象标记的显示坐标。其中,追焦对象(主角)的标记为选中框,非主角的标记为选择框。
S519.绘制并显示选择框。
在接收到上述控制信息,大窗控制模块可确定绘制并显示选择框。其中,根据上述显示坐标,大窗控制模块可确定各个选择框在屏幕中的具体显示位置。此时,大窗控制模块还可根据第i+1帧图像的对象特征信息(isTracking),确认该图像中是否有追焦对象,以及追焦对象具体为哪一个。然后,大窗控制模块可确定选择框的类型:表示未选中的选择框(选择框122),或者表示已选中的选择框(选中框142)。
例如,根据表2所示的第i帧图像的对象特征信息(isTracking),大窗控制模块可人物2对应的表示已选中的选择框(选中框),而人物1对应表示未选中的选择框。这时,大窗控制模块可绘制不同类型的选择框,从而使得用户可以方便地区分主角和非主角。
当功能模块接收到的追焦状态为“失焦”时,CameraAPP可执行步骤S520-S524。
S520.启动计时器。
当功能模块接收到的追焦状态为“失焦”时,功能模块可启动计时器。结合图1I所示的用户界面的介绍,上述计时器的计时长度可以为5秒。
S521.发送暂停显示的控制信息。
当功能模块接收到的追焦状态为“失焦”时,功能模块还可向小窗控制模块发送指示小窗暂停显示的控制信息。
S522.暂停显示。
在接收到指示小窗暂停显示的控制信息之后,小窗控制模块可停止从session中获取特写图像,并保持显示已获取的最后一帧特写图像。
参考图2E-图2F的介绍,在一些实施例中,刚开始检测到追焦对象丢失时,小窗141也可以不暂停。小窗141可以继续从session中获取特写图像,然后显示。对应的,追焦模块在初始识别到主角丢失之后,可以按照丢失之前最后一帧的裁剪方式继续裁剪后续几帧原始图像,得到对应的特写图像。可以理解的,此时,这部分特写图像的图像内容可能不包括前述设定的主角。在5秒之后,窗口141才暂停显示。
在这一场景中,在接收到指示小窗暂停显示的控制信息之后,小窗控制模块可以设定一个计时器。该计时器可以设定为上述5秒。当计时器计时结束时,小窗控制模块才停止从session中获取特写图像,并保持显示已获取的最后一帧图像。
S523.计时器计时结束时,发送指示关闭小窗的控制信息。
当上述计时器计时结束时,且功能模块仍未接收到“成功”的追焦状态,这时,功能模块可向小窗控制模块发送指示小窗控制模块关闭小窗的控制信息。
S524.关闭小窗。
在接收到上述指示关闭小窗的控制信息之后,小窗控制模块可关闭小窗。
参考图1G-图1H所示的用户界面,在确定追焦对象并在小窗中显示追焦对象的特写图像之后,终端100还可以根据用户旋转小窗的操作,变更小窗的样式,并在旋转后的小窗中继续显示追焦对象的特写图像。
图6A示例性示出了终端100旋转小窗并适应性调整小窗中的特写图像的流程图。
S601.加载主角模式程序块(Surface:X1*Y1,OpenRegion:X1*Y1)。
在确认进入主角模式之后,cameraAPP会首先加载主角模式对应的程序代码块,即主角模式程序块。在加载主角模式程序块时,cameraAPP可进行初始化。
上述初始化包括初始化对象检测算法和追焦算法,还包括申请送显缓冲区Surface。Surface是框架层output申请的用于缓存送显图像的一块存储空间。cameraAPP在申请Surface时,会指定Surface的尺寸。在图1D所示的默认首先生成竖窗的场景下,cameraAPP申请的Surface的尺寸是与上述竖窗的尺寸匹配的。例如,竖窗的尺寸为X1*Y1,这时,cameraAPP在申请Surface时可指定Surface的尺寸为X1*Y1。这样,Surface送显的图像与屏幕提供显示区域的尺寸是一致的,cameraAPP也就可以正确地显示送显图像,避免送显图像与显示区域不匹配的问题。
初始化对象检测算法或追焦算法包括向内存申请运行该算法所需的存储空间。其中,在初始化追焦算法时,追焦模块可指定特写图像缓冲区OpenRegion的尺寸。OpenRegion是指追焦模块存储以追焦对象为中心的特写图像的缓冲区。OpenRegion的尺寸与小窗的尺寸是一致的。例如,在图1D所示的默认首先生成竖窗的场景下,在初始化追焦算法时,追焦模块可指定OpenRegion的尺寸为X1*Y1。这样,追焦模块确定的特写图像的尺寸为X1*Y1,进一步的,X1*Y1的特写图像可被写入到X1*Y1的Surface,进而被输送到X1*Y1的竖窗中进行显示。当然,用户还可在进入主角模式时,选择小窗的样式,即确定小窗的尺寸。进而,在初始化时,cameraAPP可以根据用户选定的小窗样式,申请与之匹配的Surface。
S602.执行对象检测算法,返回对象特征信息(face,body,center,isTracking,objectId)。在初始化完成之后,cameraAPP可首先调用对象检测算法对当前接收到的图像帧(例如第t帧图像)进行对象检测。对象检测算法可识别图像中包括的对象,并确定各个对象的特征信息,具体可参考图5A中步骤S505的介绍。在cameraAPP接收到传回的对象检测结果之后,cameraAPP可在显示第t帧图像时显示与该图像中各对象对应的选择框,参考图1B所示的用户界面,以供用于选择追焦对象。
S603.检测到确定追焦对象的操作。用户可通过点击屏幕上显示的选择框中的任意一个指定拍摄主角,即追焦对象。参考图5A中步骤S510-S512的介绍,cameraAPP可检测作用于屏幕的点击事件。当检测到用户的点击操作后,cameraAPP可根据上述点击操作作用在屏幕上的位置确定用户指定的追焦对象。
S604.下发追焦对象(face,body,center,isTracking,objectId,timestamp)。在确定追焦对象之后,cameraAPP可将追焦对象对应的特征信息发送给cameraHAL中的追焦模块,以指示追焦模块追焦上述对象,具体参考图5A中步骤S513的介绍。
S605.依据下发的追焦对象确定后续图像帧的追焦状态和特写图像(X1*Y1)。在接收到追焦对象的特征信息后,追焦模块可依据上述特征信息在后续摄像头采集的图像中定位追焦对象,并基于定位到的追焦对象确定对应的特写图像。在初始化时,OpenRegion的尺寸为X1*Y1。因此,追焦对象确定特写图像的尺寸也为X1*Y1。
S606.返回追焦状态和特写图像(X1*Y1)。
S607.显示第t帧原始图像和第t帧特写图像(竖窗X1*Y1)。S605-S607可参考图5A中步骤S514-S524的介绍,这里不再赘述。
S608.检测到旋转小窗的操作。参考图1G所示的用户界面,在显示第t帧特写图像的某一时刻,终端100可检测到作用于转置控件144上的操作,即旋转小窗的操作。
S609.旋转小窗。响应于旋转小窗的操作,cameraAPP可在屏幕中重新绘制小窗,例如删除原本的竖窗,并绘制横窗。进一步的,cameraAPP还可通过绘制多个矩形窗来体现旋转的动态效果。旋转小窗需要一些时间,例如几帧~十几帧不等。旋转小窗在旋转小窗的过程中,小窗内可不显示特写图像。
S610.发送小窗指示信息(type=0/1)。响应于旋转小窗的操作,cameraAPP还可向追焦模块发送变更小窗指示信息。该指示信息可指示小窗样式发生变化,并指示旋转后的小窗的样式(尺寸)。
以小窗类型包括横窗、竖窗这两类为例,其中,横窗、竖窗对应的尺寸是固定的。这时,type可以为0/1。其中,type=0可以指示横窗,type=1可以指示竖窗。当旋转后的小窗为竖窗时,cameraAPP向追焦模块发送的小窗指示信息可以为type=1。当旋转后的小窗为横窗时,cameraAPP向追焦模块发送的小窗指示信息可以为type=0。
S611.上报追焦对象的历史信息。在接收到小窗指示信息之后,追焦模块可确定小窗样式发生变化,然后,追焦模块可向cameraAPP上报追焦对象的历史信息。上述历史信息包括基于最新一帧原始图像得到的追焦对象的位置和特征信息。上述特征信息可参考图5A介绍的face,body,center,isTracking,objectId,这里不再赘述。上述位置是指特写图像在原始图像中位置。
例如,在显示第t帧原始图像和第t帧特写图像(竖窗:X1*Y1)时,追焦模块处理的图像为摄像头上报的第t帧特写图像的后一帧,即第t+1帧原始图像。追焦模块可识别到第t+1帧原始图像是否包括前述确定的追焦对象。在包括追焦对象时,追焦模块可确定第t+1帧原始图像中追焦对象的特征信息,以及追焦对象在第t+1帧原始图像中的位置,例如第t+1帧原始图像中追焦对象的边界框boundingbox。
S612.存储历史信息。在接收到追焦模块上报的追焦对象的历史信息之后,cameraAPP可存储上述历史信息。
S613.重配流(Surface:X2*Y2)。在确定追焦对象的历史信息之后,cameraAPP可重新设定小窗预览流的配置信息,即重配流。其中,cameraAPP可修改Surface的尺寸,使修改后的Surface的尺寸与旋转后的小窗相匹配。例如,旋转后的横窗的尺寸为X2*Y2。这时,cameraAPP可将Surface尺寸由X1*Y1修改为X2*Y2。这样,Surface送显的图像与屏幕提供显示区域的尺寸是一致的,从而避免送显图像与显示区域不匹配的问题。
S614.初始化追焦算法(OpenRegion:X2*Y2)。在重新制定Surface的尺寸的同时,cameraAPP还会向cameraHAL发送初始化指令,指示cameraHAL进行初始化。在初始化追焦算法时,追焦模块可指定与X2*Y2的横窗相匹配的X2*Y2的OpenRegion。这样,追焦模块可确定尺寸为X2*Y2的特写图像,进一步的,X2*Y2的特写图像可被写入到X2*Y2的Surface。
S615.下发历史信息(位置[边界框]、特征信息)。在重新设定Surface和OpenRegion的尺寸之后,cameraAPP可向追焦模块下发前述存储的追焦对象的历史信息。
S616.依据历史信息确定图像帧中的追焦对象及其对应的特写图像(X2*Y2)。在接收到追焦对象的历史信息后,追焦模块可根据上述历史信息确定摄像头采集的图像帧中是否包括之前选定的追焦对象,进一步的,在确定包括追焦对象之后,确定以追焦对象为中心的X2*Y2的特写图像。例如,追焦模块可在接收到摄像头上报的第t+m帧原始图像时,接收到上述历史信息。这时,追焦模块在依据上述历史信息中的特征信息:face,body,center,isTracking,objectId等,识别第t+m帧原始图像是否包括前述选定的追焦对象(主角)。在识别到追焦对象之后,追焦模块可确定第t+m帧原始图像追焦对象的中心点(center)。然后,追焦模块可基于上述中心点确定尺寸为X2*Y2的对焦对象的特写图像。
S617.返回追焦状态和特写图像(X2*Y2)。在识别到追焦对象的场景下,追焦模块可确定第t+m帧原始图像的追焦状态为成功。随后,追焦模块可向cameraAPP返回成功的追焦状态,并返回对应的特写图像。如果在第t+m帧原始图像中未识别到前述追焦对象,则追焦模块可确定第t+m帧原始图像的追焦状态为失败,这时,追焦模块可向cameraAPP返回失败的追焦状态。
S617.在旋转后的小窗(横窗:X2*Y2)中显示对应的特写图像。当追焦模块返回的追焦状态为成功时,cameraAPP可在旋转后的小窗(X2*Y2的横窗)中显示X2*Y2的特写图像,参考图1H。当追焦模块返回的追焦状态为失败时,cameraAPP可提示用户重新选择追焦对象。可选的,在cameraAPP可提示用户重新选择追焦对象的过程中,cameraAPP可关闭小窗,也可以在小窗中显示基于历史信息中的位置确定的特写图像。
在一些实施例中,cameraAPP可以在下发追焦对象时指定Surface的尺寸,相应地,追焦模块也可以接收追焦对象时再确定OpenRegion的大小。图6B示例性示出了另一种终端100旋转小窗并适应性调整小窗中的特写图像的流程图。
如图6B所示,S621.加载主角模式程序块。此时,cameraAPP可不事先设定Surface和OpenRegion的尺寸。
S624.确定小窗的样式。在检测到确定追焦对象的操作之后,cameraAPP可确定小窗的样式:竖窗(X1*Y1)、横窗(X2*Y2)等。可选的,cameraAPP可默认小窗的样式为竖窗或横窗。可选的,cameraAPP也可根据用户操作确定此时的小窗的样式。
S625.下发追焦对象(face,body,center,isTracking,objectId,timestamp,type)。在本实施例中,在下发追焦对象的同时,cameraAPP还可向追焦模块发送指示小窗样式的小窗指示信息type。具体的,小窗指示信息type可参考图6A中S610的介绍,这里不再赘述。
S626.依据下发的追焦对象确定后续图像帧的追焦状态,依据type设定OpenRegion的尺寸:X1*Y1,确定与OpenRegion匹配的特写图像。
在接收到小窗指示信息type之后,追焦模块可根据type取值确定小窗的样式。在确定小窗的样式之后,追焦模块可将设定OpenRegion的尺寸,使之与小窗的尺寸匹配。例如,当小窗指示信息type=1指示小窗为X1*Y1的竖窗时,追焦模块可设定OpenRegion的尺寸为X1*Y1。
然后,追焦模块在确定图像帧中的追焦对象之后,追焦模块可按照上述OpenRegion的尺寸确定以追焦对象为中心的特写图像。此时,特写图像的尺寸即OpenRegion的尺寸:X1*Y1。
S627.指定Surface的尺寸:X1*Y1。在下发小窗指示信息type指示追焦模块设定OpenRegion的尺寸的同时,cameraAPP可指定Surface的尺寸。cameraAPP可根据S624中确定小窗的样式指定与之对应的Surface的尺寸。例如,当小窗为X1*Y1的竖窗时,cameraAPP可设定Surface的尺寸X1*Y1。
S632.重配流(Surface:X2*Y2)。在检测到旋转小窗的操作之后,cameraAPP可变更Surface的尺寸,使之与旋转后的小窗的样式匹配,或者,cameraAPP可重新申请一个与旋转后的小窗的样式匹配的Surface。例如,在检测到旋转小窗的操作之后,cameraAPP可将前述显示的X1*Y1的竖窗变更为X2*Y2的横窗。同时,cameraAPP可将Surface的尺寸由X1*Y1变更为X2*Y2,以避免送显图像与显示区域不匹配。
S633.发送小窗指示信息(type=0/1)。在检测到旋转小窗的操作之后,cameraAPP可再次向追焦模块发送小窗指示信息type。此时,上述type的取值与前述S625中的type的取值不相同。
S634.根据小窗指示信息修改OpenRegion的尺寸,以修改后的OpenRegion的尺寸确定追焦对象的特写图像。
在接收到新的小窗指示信息之后,追焦模块可根据上述指示信息修改OpenRegion的尺寸。然后,在确定图像帧中的追焦对象之后,追焦模块可按照上述修改后的OpenRegion的尺寸确定以追焦对象为中心的特写图像。此时,特写图像的尺寸即OpenRegion的尺寸。
例如,在将X1*Y1的竖窗变更为X2*Y2的横窗的场景下,新的小窗指示信息可以为type=0。type=0指示旋转后的小窗为横窗。于是,追焦模块可修改OpenRegion的尺寸为X2*Y2。然后,在确定图像帧中的追焦对象之后,追焦模块可按照X2*Y2的OpenRegion确以追焦对象为中心的特写图像。
这样,在旋转小窗之后,追焦模块可以及时变更特写图像的尺寸,使之匹配旋转后的小窗,避免特写图像的尺寸与小窗不匹配而无法正确显示的问题。
参考图2A-图2B所示的用户界面,在确定追焦对象后,用户可控制终端100开始录制视频。图7示例性示出了录制的过程中相机应用各软件模块的交互流程图。
S701.检测到开始录制的用户操作。
在预览过程中,在确定追焦对象后,用户可通过拍摄控件开启视频录制。参考图2A所示的用户界面,终端100可检测到作用于拍摄控件112的用户操作,响应于上述操作,终端100可开始录制视频。具体的,CameraAPP中的开始录制模块可检测到开始录制的用户操作。
S702.大窗编码器和小窗编码器开始编码。
在检测到开始录制的用户操作之后,开始录制模块中的大窗编码器和小窗编码器可开始编码。大窗编码器用于编码大窗(预览窗113)中的图像流。小窗编码器用于编码小窗(小窗141)中的图像流。
S703.向大窗控制模块发送开始录制的指示信息。
S704.开启大窗计时器并显示计时结果。
在接收到上述开始录制的指示信息之后,大窗控制模块可初始化大窗计时器,并开始计时。同时,大窗控制模块可在大窗中显示上述计时器的计时结果。参考图2B所示的用户界面,预览窗113的左上角显示有录制时长“00:01”。上述录制时长“00:01”即当前大窗计时器的计时结果。
S705.向小窗控制模块发送开始录制的指示信息。
S706.开启小窗计时器并显示计时结果。
在接收到上述开始录制的指示信息之后,小窗控制模块可初始化小窗计时器,并开始计时。同时,小窗控制模块可在小窗中显示上述计时器的计时结果。参考图2B所示的用户界面,小窗141中的左上角显示有录制时长“00:01”。上述录制时长“00:01”即当前小窗计时器的计时结果。
S707.监听作用于屏幕的交互事件。
在检测到开始录制的用户操作之后,功能模块可实时地检监听作用于屏幕的交互控制事件,例如点击操作、滑动操作等交互事件。
S708.发送隐藏选择框的指示信息。
当连续5秒内未监听到作用于屏幕中大窗区域的交互事件,则功能模块可向大窗控制模块发送隐藏选择框的指示信息。上述5秒为示例性例举的监听时间。功能模块也可设置其他时长的监听时间。
S709.隐藏选择框。
在接收到上述指示信息之后,大窗控制模块可停止显示选择框。
S710.向小窗控制模块下发隐藏功能控件的指示信息。
当连续5秒内未监听到作用于屏幕中小窗区域的交互事件,则功能模块可向小窗控制模块发送隐藏功能控件的指示信息。上述功能控件包括小窗中显示的录制时长、停止控件。
S711.隐藏功能控件。
在接收到上述指示信息之后,小窗控制模块可停止显示录制时长、停止控件等功能控件。
S712.监听到作用于屏幕中大窗区域的交互事件。
在隐藏选择框之后的某一时刻,功能模块可监听到作用于屏幕中大窗区域的交互事件,例如点击预览窗113的用户操作。
S713.发送显示选择框的指示信息。
在监听到作用于屏幕中大窗区域的交互事件之后,功能模块可向大窗控制模块发送显示选择框的指示信息。
S714.显示选择框。
在接收到上述指示信息之后,大窗控制模块可重新显示与图像中各对象对应的选择框。
S715.发送显示功能控件的指示信息。
在监听到作用于屏幕中小窗区域的交互事件之后,功能模块可向小窗控制模块发送显示功能控件的指示信息。
S716.显示功能控件。
在接收到上述指示信息之后,小窗控制模块可重新显示录制时长、停止控件等功能控件,以供用户使用。
参考图2C-图2D所示的用户界面,在录制视频的过程中,用户可以随时切换追焦对象。图8A示例性示出了在切换追焦对象的过程中相机应用各软件模块的交互流程图。
S801.检测到切换追焦对象的用户操作。
在录制的过程中,用户可以随时切换追焦对象。例如,参考图2C所示的用户界面,终端100可检测到作用于选择框121的切换追焦对象为人物1的用户操作。具体的,CameraAPP中的大窗控制模块可检测到上述切换追焦对象的用户操作。
S802.返回点击坐标。
参考步骤5111,在检测到用户点击选择框以切换追焦对象的用户操作时,大窗控制模块也是首先确定上述点击操作作用在屏幕上的坐标(点击坐标)。然后,大窗控制模块可将上述点击坐标返回给功能模块。
S803.依据点击坐标更新追焦对象。
参考步骤5112,在接收到大窗控制模块返回的点击坐标之后,功能模块可首先确定上述点击坐标对应的图像坐标。在切换追焦对象的过程中,功能模块可依据上述图像坐标和各个对象的中心点,确定用户点击的对象,进而确定新的追焦对象(主角)。结合图2C所示的用户界面,这时,终端100可将人物1设定为新的追焦对象(主角)。
在更新追焦对象后,适应性地,功能模块可修改对应图像的对象特征信息。例如,功能模块可将之前的追焦对象人物2的追踪标签修改为0(isTracking=0),同时将新的追焦对象人物1的追踪标签修改为1(isTracking=1)。
S804.下发追焦对象(face,body,center,isTracking,objectId,timestamp)。
在确定新的追焦对象之后,功能模块可调用追焦接口向追焦模块输入新的追焦对象的特征信息,例如人物1的特征信息:face=Face1,body=Face1,center=C1,isTracking=1,objectId=1,以供追焦模块在原始图像流中定位新的追焦对象,并生成新的追焦对象的特写图像。参考步骤5113,同样的,功能模块还会向追焦模块发送当前时间戳timestamp,以供追焦模块从原始图像流中的哪一帧开始定位新的追焦对象。
S805.执行追焦算法,确定追焦状态(成功、失焦)。
首先,追焦模块可根据上述时间戳timestamp确定开始定位新的追焦对象的第一帧图像。例如,上述timestamp可指示从第k帧图像开始追焦新的主角人物1。这时,追焦模块可从对象检测模块中获取第k帧图像开始的图像流,然后依次确定各图像帧的追焦状态:成功或失焦。
以第k帧图像为例,从对象检测模块获取第k帧图像时,追焦模块还可获取到上述第k帧图像中各个对象的特征信息。参考步骤5114,然后,追焦模块可根据下发的追焦对象的特征信息,和第k帧图像中各个对象的特征信息,定位第k帧图像的追焦对象,这里不再赘述。同样的,在定位第k帧图像的追焦对象之后,追焦模块还可基于上述追焦对象确定特写图像,以供后续CameraAPP获取该特写图像并显示。
S806.返回追焦状态(成功、失焦)。
在确定追焦状态之后,追焦模块可首先将上述追焦状态返回到功能模块。
当追焦模块在第k帧图像中定位到了新的追焦对象时,追焦模块返回的第k帧图像的追焦状态为“成功”。当追焦模块在第k帧图像中未定位到新的追焦对象时,追焦模块返回的第k帧图像的追焦状态为“失焦”。
当第k-1帧图像追焦状态为“失焦”,第k帧图像追焦状态为“成功”时,CameraAPP可执行步骤S807-S810。
S807.发送指示继续录制小窗特写视频的控制信息。
当第k-1帧图像追焦状态为“失焦”时,小窗此时是暂停录制的状态:小窗计时器暂停,小窗中显示的特写图像为失焦前最后一帧特写图像。当功能模块接收到第k帧图像追焦状态为“成功”之后,功能模块可向开始录制模块发送指示继续录制小窗特写视频的控制信息。
S808.小窗编码器继续编码。
在接收到上述控制信息之后,开始录制模块可重新开启小窗编码器。小窗编码器可继续编码小窗(小窗141)中的图像流。
S809.发送恢复录制的控制信息。
在接收到上述指示继续录制小窗特写视频的控制信息之后,开始录制模块还可向小窗控制模块发送恢复录制的控制信息。
S810.重新启动小窗计时器并继续显示特写图像。
在接收到上述恢复录制的控制信息之后,小窗控制模块可重新启动小窗计时器,并在小窗中重新显示小窗计时器当前计时。同时,小窗控制模块可继续从session中获取并显示追焦对象的特写图像。
当第k-1帧图像追焦状态为“成功”,第k帧图像追焦状态为“成功”时,功能模块无需执行状态切换动作。这时因为,在这一场景下,session中缓存的特写图像即新的追焦对象的特写图像。小窗控制模块只需保持从session中获取并显示特写图像,即可获取到的特写图像即新的追焦对象的特写图像。然后,小窗控制模块可显示新的追焦对象的特写图像。
同样的,当第k-1帧图像追焦状态为“失焦”,第k帧图像追焦状态为“失焦”时,功能模块也无需执行状态切换动作。
当第k-1帧图像追焦状态为“成功”,第k帧图像追焦状态为“失焦”时,CameraAPP可执行步骤S811-S815。
S811.启动计时器。步骤S811可参考步骤5120,这里不再赘述。
S812.发送暂停录制的控制信息。
当功能模块接收到的第k帧图像的追焦状态为“失焦”时,功能模块还可向暂停录制模块发送暂停录制的控制信息。
S813.小窗编码器暂停编码。
在接收到暂停录制的控制信息之后,暂停录制模块中的小窗编码器可暂停编码。
S814.发送暂停显示的控制信息。
在接收到暂停录制的控制信息之后,暂停录制模块还可向小窗控制模块发送暂停显示的控制信息。
S815.暂停小窗计时器并保持显示失焦前的最后一帧。
在接收到暂停显示的控制信息之后,小窗控制模块可停止小窗计时器的计时。这时,小窗中的时间戳可停止在失焦前的最后计时结果,例如“00:05”。同时,在接收到暂停显示的控制信息之后,小窗控制模块可暂停从session中获取并显示新的特写图像。这时,小窗中展示的特写图像可停止在第k-1帧图像的特写图像。
人体检测算法的检测结果和追焦状态的上报会在通路中缓存几帧。在切换追焦对象的场景中,在确定新的追焦对象之后,cameraAPP从cameraHAL中获取的可能还是缓存的之前的追焦对象的检测结果和追焦状态。这就导致cameraAPP收到的检测结果和追焦状态和当前期望的不一致。
例如,参考图8B和图8C所示的用户界面,在图8B所示的界面中,当前追焦对象为人物2,小窗141中显示的特写图像为人物2的特写图像;在图8C所示的界面中,响应于用户切换追焦对象的操作,当前追焦对象为人物1,大窗已经将人物1对应的选择框121切换到选中框221,但是,小窗141还未显示新的追焦对象人物1的特写图像,而仍然显示的之前的追焦对象人物2的特写图像。
因此,为了避免上述不匹配的问题,cameraAPP可以对cameraHAL上报的检测结果和追焦状态进行校验。参考图8D,cameraAPP在向cameraHAL下发追焦对象时,还可向cameraHAL下发tracking开关和校验码sessionkey。tracking开关用于指示开启追焦。校验码用于标记图像帧的追焦对象。相应地,cameraHAL在向cameraAPP返回特写图像是也会携带标记该特写图像中追焦对象的校验码sessionkey。当下发的sessionkey与返回的sessionkey匹配时,cameraAPP才显示该帧图像对应的选择框和选中框、以及对应的特写图像。
例如,当下发追焦对象人物1的特征信息时,cameraAPP可下发标记图像帧的追焦对象为人物1的校验码K1。在切换人物2为主角之后,当下发追焦对象人物2的特征信息时,cameraAPP可下发标记图像帧的追焦对象为人物2的校验码K2。如果,cameraAPP接收到的还是通路中滞留的人物1的特写图像,那么该图像携带的校验码K1与新下发的校验码K2不相符。于是,cameraAPP可以随即获取通路中上述滞留特写图像之后的特写图像。当特写图像携带的为校验码K2时,cameraAPP可确认上述校验码K2与新下发的校验码K2一致,进而确认可以显示上述特写图像,从而避免了图8B和图8C所示不匹配的问题。
图9示例性示出了暂停录制的过程中相机应用各软件模块的交互流程图。
S901.检测到暂停录制的用户操作。
在开始录制视频之后,用户可以通过拍摄控件暂停视频录制。例如,参考图2B所示的用户界面,暂停控件2111可用于暂停视频录制。当检测到作用于暂停控件2111的用户操作时,终端100可确认检测到暂停录制的用户操作。
S902.大窗编码器和小窗编码器停止编码。
S903.向大窗控制模块发送暂停录制的控制信息。
S904.暂停大窗计时器。
在接收到上述暂停录制的控制信息之后,大窗控制模块可暂停大窗计时器。这时,大窗中的时间戳可停止在当前的计时时刻。
S905.向小窗控制模块发送暂停录制的控制信息。
S906.暂停小窗计时器。
在接收到上述暂停录制的控制信息之后,小窗控制模块可暂停小窗计时器。这时,小窗中的时间戳可停止在当前的计时时刻。可以理解的,暂停录制模块向大窗控制模块发送暂停录制的控制信息和向小窗控制模块发送暂停录制的控制信息的时刻几乎为同一时刻。因此,大窗计时器和小窗计时器可视为同时停止计时。
S907.返回追焦状态。
在暂停录制视频的过程中,摄像头仍然可以采集并生成图像流。相应的,追焦模块仍然可以追踪上述图像流中的追焦对象(主角)。因此,追焦模块仍然可以持续地向功能模块返回当前图像帧的追焦状态。
S908.发送指示追焦对象丢失的控制信息。
当上述返回的追焦状态为“失焦”时,功能模块可向小窗控制模块发送指示追焦对象丢失的控制信息。
S909.小窗显示蒙层。
S910.发送指示追焦对象丢失的控制信息。
当上述返回的追焦状态为“失焦”时,功能模块还可同时向大窗控制模块发送指示追焦对象丢失的控制信息。
S911.大窗显示指示追焦对象丢失的提示信息。
S912.发送指示追焦对象找回的控制信息。
在已失焦的场景下,当追焦模块重新在一帧图像中定位到追焦对象时,功能模块可接收到“成功”的追焦状态。此时,功能模块可向小窗控制模块发送指示追焦对象找回的控制信息。
S913.消除小窗蒙层。
图10示例性示出了图2H-图2I所示的结束录制的过程中相机应用各软件模块的交互流程图。在录制视频的过程中,用户可以选择先关闭小窗,结束录制特写视频,同时,用户还可以关闭大窗,同时结束录制原始视频和特写视频。
S1001.检测到结束小窗录制的用户操作。结束录制模块可检测到结束小窗录制的用户操作。
S1002.小窗编码器结束编码。在检测到结束小窗录制的用户操作之后,结束录制模块可控制小窗编码器结束编码。然后,小窗编码器可将已编码的特写图像封装为视频,即特写视频。
S1003.发送指示关闭小窗的控制信息。在检测到结束小窗录制的用户操作之后,结束录制模块可向小窗控制模块发送指示关闭小窗的控制信息。
S1004.关闭小窗。在接收到上述指示关闭小窗的控制信息之后,小窗控制模块可关闭小窗。
S1005.检测到结束录制的用户操作。结束录制模块还可检测到结束录制的用户操作。
S1006.大窗编码器和小窗编码器结束编码。在检测到结束录制的用户操作之后,结束录制模块可控制大窗编码器和小窗编码器同时结束编码。小窗编码器可将已编码的特写图像封装为视频,即特写视频。同时,大窗编码器可将已编码的原始图像封装为视频,即原始视频。
S1007.发送指示关闭大窗的控制信息。在检测到结束录制的用户操作之后,结束录制模块可向大窗控制模块发送指示关闭大窗的控制信息。
S1008.显示预览界面。在接收到指示关闭大窗的控制信息之后,大窗控制模块可显示开始录制视频之前的预览界面。
S1009.发送指示关闭小窗的控制信息。在检测到结束录制的用户操作之后,结束录制模块可向小窗控制模块发送指示关闭小窗的控制信息。
S1010.关闭小窗。在接收到指示关闭小窗的控制信息之后,小窗控制模块可关闭小窗。
参考图3A-图3C所示的用户界面,在录制视频的过程中,终端100还可检测到旋转小窗的操作,进而调整主角特写图像的样式,以满足用户个性化的需求。在录制视频的过程旋转小窗的具体过程可参考图6A-图6B的介绍,这里不再赘述。
在本申请实施例中:
在进入直接模式后,终端100识别到的对象可称为第二对象,例如图1B中人物121、人物122均可称为第二对象。用户选定的主角或终端100根据预设的规则自动确定的主角可称为第一对象,例如图1C所示的用户点击操作对应的人物122。在选择主角后生成的小窗可称为第一窗口,例如图1D所示的小窗141。
图1D所示的小窗141的样式(竖窗)可称为第一样式。与第一样式不同的小窗的样式可称为第二样式,例如图1H所示的小窗141的样式(横窗)。图1D所示的小窗141中显示的人物122的特写图像可称为第二图像。图1H所示的小窗141中显示的人物122的特写图像可称为第三图像。
录制预览窗中的图像得到的原始视频可称为第一视频;录制小窗中的图像得到的特写视频可称为第二视频。
图1G中作用于转置控件144的用户操作可称为第一用户操作。
图6A中S601中的尺寸为X1*Y1的Surface可称为第一缓存区;S613中的尺寸为X2*Y2的Surface可称为第二缓存区。
图11是本申请实施例提供的终端100的硬件结构示意图。
终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,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可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。
移动通信模块150可以提供应用在终端100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)。显示面板还可以采用有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,QLED)等制造。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
在本申请实施例中,终端100显示摄像头采集的原始图像、显示经过追焦确定的主角的特写图像,以及显示图1A-图1J、图2A-图2I、图3A-图3C、图3E-图3F所示的用户界面的能力,依赖于上述GPU,显示屏194,以及应用处理器提供的显示功能。
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
在本申请实施例中,终端100实施本申请实施例提供的拍摄方法,首先依赖于ISP,摄像头193采集的图像,其次还依赖于视频编解码器,GPU提供的图像计算与处理能力。其中,终端100可通过NPU提供的计算处理能力,实施人脸识别、人体识别等神经网络算法。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等。
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-levelcell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universal flashstorage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
在本申请实施例中,实现本申请实施例所述的拍摄方法的代码可存储在非易失性存储器上。在运行相机应用时,终端100可将非易失性存储器中存储的可执行代码加载到随机存取存储器。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展终端100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端100可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。
在本申请实施例中,终端100在启用摄像头采集图像的过程中,可以同时启用麦克风170C采集声音信号,并将声音信号转换为电信号存储下来。这样,用户可以得到有声的视频。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
陀螺仪传感器180B可以用于确定终端100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端100的抖动,实现防抖。
气压传感器180C用于测量气压。在一些实施例中,终端100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。磁传感器180D包括霍尔传感器。终端100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测终端100在各个方向上(一般为三轴)加速度的大小。当终端100静止时可检测出重力的大小及方向。距离传感器180F,用于测量距离。终端100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端100可以利用距离传感器180F测距以实现快速对焦。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端100通过发光二极管向外发射红外光。终端100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端100附近有物体。当检测到不充分的反射光时,终端100可以确定终端100附近没有物体。环境光传感器180L用于感知环境光亮度。终端100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。指纹传感器180H用于采集指纹。终端100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。温度传感器180J用于检测温度。在一些实施例中,终端100利用温度传感器180J检测的温度,执行温度处理策略。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端100的表面,与显示屏194所处的位置不同。
在本申请实施例中,终端100可利用触摸传感器180K检测用户作用于显示屏194上的点击、滑动等操作,以实现图1A-图1J、图2A-图2I、图3A-图3C、图3E-图3F所示的拍摄方法。
骨传导传感器180M可以获取振动信号。按键190包括开机键,音量键等。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。终端100可以支持1个或N个SIM卡接口,N为大于1的正整数。
本申请的说明书和权利要求书及附图中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户可以识别的内容,比如图片、文字、按钮等控件。控件(control)也称为部件(widget),是用户界面的基本元素,典型的控件有工具栏(toolbar)、菜单栏(menu bar)、文本框(text box)、按钮(button)、滚动条(scrollbar)、图片和文本。界面中的控件的属性和内容是通过标签或者节点来定义的,比如XML通过<Textview>、<ImgView>、<VideoView>等节点来规定界面所包含的控件。一个节点对应界面中一个控件或属性,节点经过解析和渲染之后呈现为用户可视的内容。此外,很多应用程序,比如混合应用(hybrid application)的界面中通常还包含有网页。网页,也称为页面,可以理解为内嵌在应用程序界面中的一个特殊的控件,网页是通过特定计算机语言编写的源代码,例如超文本标记语言(hyper text markup language,GTML),层叠样式表(cascading style sheets,CSS),java脚本(JavaScript,JS)等,网页源代码可以由浏览器或与浏览器功能类似的网页显示组件加载和显示为用户可识别的内容。网页所包含的具体内容也是通过网页源代码中的标签或者节点来定义的,比如GTML通过<p>、<img>、<video>、<canvas>来定义网页的元素和属性。
用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (29)

1.一种拍摄方法,应用于具备摄像头和屏幕的电子设备,其特征在于,所述方法包括:
在所述屏幕中显示预览窗,所述预览窗中显示所述摄像头采集的图像;
当所述预览窗中显示的图像包括第一对象时,在所述屏幕中还显示第一样式的第一窗口;所述第一样式的第一窗口中显示有第二图像,所述第二图像包括所述第一对象,且所述第一对象在所述第二图像中的图像内容与所述第一对象在所述预览窗中的图像内容一致;
将所述第一窗口由所述第一样式切换为第二样式,在所述第二样式的所述第一窗口中显示第三图像,所述第三图像包括所述第一对象,且所述第一对象在所述第三图像中的图像内容与所述第一对象在所述预览窗中的图像内容一致;
录制所述预览窗中的图像并保存为第一视频;录制所述第一窗口中的图像并保存为第二视频。
2.根据权利要求1所述的方法,其特征在于,在显示所述第二样式的所述第一窗口之前,所述方法还包括:检测到第一用户操作。
3.根据权利要求1所述的方法,其特征在于,在显示所述第二样式的所述第一窗口之前,所述方法还包括:检测到用户手持所述屏幕的方向发生变化。
4.根据权利要求3所述的方法,其特征在于,所述变化包括:从横屏到竖屏;所述第一样式为横窗样式,所述第二样式为竖窗样式。
5.根据权利要求3所述的方法,其特征在于,所述变化包括:从竖屏到横屏;所述第一样式为竖窗样式,所述第二样式为横窗样式。
6.根据权利要求1所述的方法,其特征在于,在所述切换之前,所述方法还包括:保存所述第一对象的人脸和/或身体的图像位置,所述图像位置用于在所述切换之后从摄像头采集的图像中裁剪出所述第三图像,所述图像位置还用于在所述切换之前从摄像头采集的图像中裁剪出所述第二图像。
7.根据权利要求1所述的方法,其特征在于,在所述第一窗口显示所述第二图像之前,所述方法还包括:在第一缓存区缓存所述第二图像,所述第一缓存区的尺寸与所述第一样式的所述第一窗口的尺寸匹配。
8.根据权利要求7所述的方法,其特征在于,在所述第一窗口显示所述第三图像之前,所述方法还包括:在第二缓存区缓存所述第三图像,所述第二缓存区的尺寸与所述第二样式的所述第一窗口的尺寸匹配。
9.根据权利要求1所述的方法,其特征在于:所述预览窗中显示的图像包括一个或多个第二对象,所述第一对象是从所述一个或多个第二对象中选择出来的。
10.根据权利要求9所述的方法,其特征在于:所述第二对象上显示有标记,所述第一对象是从所述一个或多个第二对象中选择出来的,包括:所述第一对象是通过用户点击所述标记的动作从所述一个或多个第二对象中选择出来的。
11.根据权利要求1所述的方法,其特征在于:所述第一对象是通过识别预览窗中的图像检测到的。
12.根据权利要求10所述的方法,在所述标识的显示期间,如果超过第一时长没有检测到用户操作,则所述标识消失。
13.根据权利要求9-12中任一项所述的方法,其特征在于,所述第一对象是在开始录制第一视频之前选择的。
14.根据权利要求13所述的方法,其特征在于,所述第一视频和所述第二视频的开始录制时刻是相同的。
15.根据权利要求14所述的方法,其特征在于:所述开始录制时刻是检测到第二对象完成第一姿势的时刻。
16.根据权利要求9-12中任一项所述的方法,其特征在于,所述第一对象是在开始录制第一视频之后选择的。
17.根据权利要求16所述的方法,其特征在于,所述第二视频的开始录制时刻晚于所述第一视频的开始录制时刻。
18.根据权利要求1-17中任一项所述的方法,其特征在于,所述录制所述第一窗口中的图像,包括:当监测到所述第一对象从所述预览窗中消失且消失时间长于第二时长后,暂停所述录制。
19.根据权利要求18所述的方法,其特征在于,所述录制所述第一窗口中的图像,还包括:当监测到所述第一对象重新出现在所述预览窗中后,恢复所述录制。
20.根据权利要求1-19中任一项所述的方法,其特征在于,所述方法还包括:
检测到所述预览窗中所述第一对象发生更换;
更新所述第一窗口中显示的图像内容,更新后的图像内容包括更换后的第一对象,且所述更换后的第一对象在所述第一窗口中的图像内容与所述更换后的第一对象在所述预览窗中的图像内容一致。
21.根据权利要求1-20中任一项所述的方法,其特征在于,所述第一视频和所述第二视频的结束录制时刻是相同的。
22.根据权利要求1-20中任一项所述的方法,其特征在于,所述第二视频的结束录制时刻早于所述第一视频的结束录制时刻。
23.根据权利要求1-22中任一项所述的方法,其特征在于,所述方法还包括:
在图库中显示所述第一视频的缩略图、所述第二视频的缩略图,所述第二视频的缩略图中包含所述第一对象,所述第一视频的缩略图也包含所述第一对象,所述第一对象在所述第二视频的缩略图中的图像内容与所述第一对象在所述第一视频的缩略图中的图像内容一致。
24.根据权利要求23所述的方法,其特征在于,所述第一视频的缩略图与所述第二视频的缩略图相邻陈列。
25.根据权利要求1所述的方法,其特征在于,所述第一窗口悬浮在所述预览窗中,或者与所述预览窗分屏显示。
26.根据权利要求1所述的方法,其特征在于,所述第二图像是基于所述预览窗中显示的图像裁剪得到的。
27.根据权利要求1所述的方法,其特征在于,所述摄像头包括第一摄像头和第二摄像头,所述预览窗中显示的所述第一摄像头采集的图像,所述第二图像为所述第二摄像头对焦所述第一对象采集得到的。
28.一种电子设备,其特征在于,包括一个或多个处理器和一个或多个存储器;其中,所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得执行如权利要求1-27任一项所述的方法。
29.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得执行如权利要求1-27任一项所述的方法。
CN202210832195.0A 2022-07-15 2022-07-15 一种拍摄方法和电子设备 Pending CN117459825A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210832195.0A CN117459825A (zh) 2022-07-15 2022-07-15 一种拍摄方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210832195.0A CN117459825A (zh) 2022-07-15 2022-07-15 一种拍摄方法和电子设备

Publications (1)

Publication Number Publication Date
CN117459825A true CN117459825A (zh) 2024-01-26

Family

ID=89586089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210832195.0A Pending CN117459825A (zh) 2022-07-15 2022-07-15 一种拍摄方法和电子设备

Country Status (1)

Country Link
CN (1) CN117459825A (zh)

Similar Documents

Publication Publication Date Title
JP7142783B2 (ja) 音声制御方法及び電子装置
CN109814766B (zh) 一种应用显示方法及电子设备
WO2021000881A1 (zh) 一种分屏方法及电子设备
CN110750317A (zh) 一种桌面的编辑方法及电子设备
US11914850B2 (en) User profile picture generation method and electronic device
WO2022012418A1 (zh) 拍照方法及电子设备
CN113536866A (zh) 一种人物追踪显示方法和电子设备
CN114866860A (zh) 一种播放视频的方法及电子设备
WO2022068522A1 (zh) 一种目标跟踪方法及电子设备
CN115442509B (zh) 拍摄方法、用户界面及电子设备
CN114222187A (zh) 视频编辑方法和电子设备
CN115390957A (zh) 一种应用程序动效衔接的方法及装置
CN113448658A (zh) 截屏处理的方法、图形用户接口及终端
CN113867657A (zh) 跨设备桌面管理方法、第一电子设备及第二电子设备
CN116055868B (zh) 一种拍摄方法及相关设备
CN115994006A (zh) 动画效果显示方法及电子设备
CN115808997A (zh) 一种预览方法、电子设备及系统
CN117459825A (zh) 一种拍摄方法和电子设备
CN117221743A (zh) 一种拍摄方法和电子设备
CN116055861B (zh) 一种视频编辑方法和电子设备
CN116055867B (zh) 一种拍摄方法和电子设备
WO2023066177A1 (zh) 动画效果显示方法及电子设备
WO2023231696A1 (zh) 一种拍摄方法及相关设备
WO2022228010A1 (zh) 一种生成封面的方法及电子设备
CN115562535B (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