掌桥专利:专业的专利平台
掌桥专利
首页

一种拍摄方法和电子设备

文献发布时间:2024-04-18 19:58:26


一种拍摄方法和电子设备

技术领域

本申请涉及终端领域,尤其涉及一种拍摄方法和电子设备。

背景技术

为提高用户体验,手机、平板电脑等终端设备通常配置多个摄像头。为拍照与录像功能提供多种拍摄模式。例如,前摄模式、后摄模式、前后双摄模式等。实现中,用户可使用终端设备录制一个或多个人物的视频。在用户想得到其中一个目标人物的视频时,可对视频进行人工剪辑处理。但人工剪辑的处理方法操作繁琐,且需要拍摄用户具备一定的视频剪辑技术,用户体验较差。

发明内容

第一方面,本申请提供了一种拍摄方法,应用于具有摄像头和屏幕的电子设备,该方法包括:在屏幕中显示预览窗,预览窗中显示摄像头采集的图像,预览窗中显示的图像包括一个或多个第一对象;在一个或多个第一对象中选择第二对象;在屏幕中显示预览窗的同时,还显示第一窗口,第一窗口中显示的图像包括第二对象;录制预览窗中的图像并保存为第一视频,录制第一窗口中的图像并保存为第二视频。

实施第一方面提供的方法,电子设备可以识别摄像头采集的图像中的对象,并从中选择追焦对象,即主角。然后,电子设备可在屏幕中再显示一个窗口,即第一窗口,用于展示主角图像。电子设备可分别录制并保存预览窗中的图像和第一窗口中的图像。这样,用户既可以拍摄预览窗中展示的原始图像,也可以自动地获得聚焦主角的特写图像。

实施第一方面提供的方法,在一些实施例中,在一个或多个第一对象中选择第二对象,包括:在一个或多个第一对象上显示选择框;响应于作用于第一选择框上的用户操作,将第一选择框对应的第一对象确定为第二对象。

实施上述实施例提供的方法,电子设备可以在识别到图像中的对象之后,显示与各个对象对应的选择框。这样,用户可通过上述选择框确定电子设备识别到的各个对象,并通过上述选择框选择上述各个对象中的任意一个为追焦对象。

实施第一方面提供的方法,在一些实施例中,在一个或多个第一对象上显示选择框之后,该方法还包括:在第一时长内没有检测到作用于屏幕的用户操作,选择框消失。

实施上述实施例提供的方法,电子设备可以在显示选择框之后检测屏幕上的交互事件,若在预设时间内,例如第一时长内,未检测到任何作用于屏幕上的交互事件,则电子设备可以隐藏选择框。这样既可以减少选择框对屏幕中显示的图像的遮挡,也可以减少绘制图像所需的计算成本,节省功耗。

实施第一方面提供的方法,在一些实施例中,第二对象是电子设备确定的。

实施上述实施例提供的方法,电子设备也可自行从识别到的对象中确定追焦对象。例如,电子设备中可预设有对象评价规则。电子设备可依据上述规则对识别到的图像中的各个对象进行评价,然后确定评价最高的对象为追焦对象。

实施第一方面提供的方法,在一些实施例中,屏幕中还显示有录制控件,在屏幕中显示第一窗口之后,该方法还包括:接收到用户对应于录制控件的录制操作,同时开始录制第一视频和第二视频;第一视频和第二视频的开始录制时刻相同。

实施上述实施例提供的方法,用户可以在确定追焦对象之后,点击录制控件,控制电子设备开始录制。此时,屏幕中包括预览窗和第一窗口。电子设备可以同时开始录制预览窗中的图像和第一窗口中的图像。

实施第一方面提供的方法,在一些实施例中,屏幕中还显示有录制控件,在一个或多个第一对象中选择第二对象之前,该方法还包括:接收到用户对应于录制控件的录制操作,开始录制第一视频;在显示第一窗口的同时,开始录制第二视频;第二视频的开始录制时刻晚于第一视频的开始录制时刻。

实施上述实施例提供的方法,用户可以在选定追焦对象之前先点击录制控件开始录制。此时,屏幕中包括预览窗而未显示第一窗口。电子设备先录制预览窗中的图像。在用户确定追焦对象,并显示第一窗口之后,电子设备可以自动地开始录制第一窗口中的图像。

实施第一方面提供的方法,在一些实施例中,第一视频和第二视频的结束录制时刻是相同的;或者,第二视频的结束录制时刻早于第一视频的结束录制时刻。

实施上述实施例提供的方法,用户可以先结束录制第一窗口的图像,也可以同时结束录制第一窗口和预览窗的图像。

实施第一方面提供的方法,在一些实施例中,在录制过程中,该方法还包括:从一个或多个第一对象中变更第二对象;第一窗口中显示的图像包括变更后的第二对象。

实施上述实施例提供的方法,用户可以在录制过程中随时切换追焦对象。在切换追焦对象之后,电子设备可以追焦新选定的追焦对象,并在第一窗口中显示上述新选定的追焦对象的特写图像。

实施第一方面提供的方法,在一些实施例中,在录制过程中,该方法还包括:当监测到摄像头采集的图像不包括第二对象时,且持续时间长于第二时长后,暂停录制第一窗口中的图像。

实施上述实施例提供的方法,当识别到摄像头采集的图像不包括之前选定的追焦对象时,电子设备可以启动计时器。当上述计时器计时结束,且仍未从摄像头采集的图像中识别到主角时,第一窗口中显示的图像可以停留在计时器结束的一帧。同时,电子设备可以暂停录制第一窗口中的图像。

实施第一方面提供的方法,在一些实施例中,在录制过程中,该方法还包括:当监测到摄像头采集的图像不包括第二对象时,暂停录制第一窗口中的图像。

实施上述实施例提供的方法,当识别到摄像头采集的图像不包括之前选定的追焦对象时,第一窗口中显示的图像可以停留在包括追焦对象的最后一帧。同时,电子设备可以暂停录制第一窗口中的图像。即,在失焦之后,电子设备可以立即暂停录制第一窗口中的图像。因为,此时第一窗口中不再更新追焦对象的特写图像。这样,当主角从取景范围内消失时,电子设备可以自动的暂停录制特写图像,从而得到更纯净的仅包括主角的特写视频。

实施第一方面提供的方法,在一些实施例中,该方法还包括:当监测到摄像头采集的图像包括第二对象时,恢复录制第一窗口中的图像。

实施上述实施例提供的方法,在因为失焦暂停录制第一窗口中的图像之后,若重新识别到摄像头采集的图像包括之前选定的追焦对象,则电子设备还可以在第一窗口中继续显示追焦对象的特写图像,并恢复录制第一窗口中的图像。这样,当主角重新出现在取景范围内时,电子设备可以自动的继续追焦主角,且无需用户操作。

实施第一方面提供的方法,在一些实施例中,第一窗口与预览窗分屏显示,或者,第一窗口显示在预览窗之上,但不完全覆盖预览窗。

实施上述实施例提供的方法,用户在录制视频的过程中,可以同时浏览预览窗中展示的原始图像和第一窗口中展示的包括主角的特写图像。进而,用户可以随时调整摄像头位置,以便于拍摄更符合个人需求的原始视频和特写视频。

实施第一方面提供的方法,在一些实施例中,第一窗口中显示的包括第二对象的图像是基于预览窗中显示的图像裁剪得到的。

实施第一方面提供的方法,在一些实施例中,电子设备包括功能模块、对象检测模块和大窗控制模块,在一个或多个第一对象上显示选择框,包括:对象检测模块从摄像头采集的图像中识别到一个或多个第一对象;对象检测模块将一个或多个第一对象的特征信息发送给功能模块,特征信息包括指示第一对象位置的中心点;一个第一对象对应一组特征信息。功能模块依据特征信息中的中心点确定显示坐标;大窗控制模块依据显示坐标在屏幕上显示与一个或多个第一对象对应的选择框。

实施第一方面提供的方法,在一些实施例中,在第一时长内没有检测到作用于屏幕的用户操作,选择框消失,包括:在显示选择框之后,功能模块设置第一计时器,第一计时器的计时时长为第一时长;在第一计时器计时结束后,且功能模块未检测到作用于屏幕的用户操作,大窗控制模块消除选择框。

实施第一方面提供的方法,在一些实施例中,电子设备还包括追焦模块、小窗控制模块,显示第一窗口,包括:功能模块向追焦模块发送第二对象的特征信息;追焦模块依据第二对象的特征信息确定将要送显的图像中是否包括第二对象;当包括第二对象时,追焦模块向功能模块发送追焦成功指示,功能模块依据指示控制小窗控制模块在屏幕中显示第一窗口;

实施第一方面提供的方法,在一些实施例中,该方法还包括:当包括第二对象时,追焦模块从将要送显的图像中裁剪出第一窗口中显示的图像。

实施第一方面提供的方法,在一些实施例中,电子设备还包括开始录制模块,接收到用户对应于录制控件的录制操作,同时开始录制第一视频和第二视频,包括:开始录制模块接收到用户对应于录制控件的录制操作;响应于录制操作,开始录制模块开启第一编码器和第二编码器,第一编码器开始编码预览窗中的图像,第二编码器开始编码第一窗口中的图像。

实施第一方面提供的方法,在一些实施例中,电子设备还包括暂停录制模块,当监测到摄像头采集的图像不包括第二对象时,且持续时间长于第二时长后,暂停录制第一窗口中的图像,包括:当识别到将要送显的图像中不包括第二对象时,追焦模块向功能模块发送失焦指示,功能模块依据失焦指示设置第二计时器,第二计时器的计时时长为第二时长;在第二计时器计时结束,且功能模块仍未接收到追焦成功指示时,暂停录制模块控制第二编码器暂停编码第一窗口中显示的图像。

实施第一方面提供的方法,在一些实施例中,当监测到摄像头采集的图像包括第二对象时,恢复录制第一窗口中的图像,包括:当识别到将要送显的图像中包括第二对象时,追焦模块向功能模块发送追焦成功指示,功能模块依据追焦成功指示,向开始录制模块发送恢复录制指示;开始录制模块依据恢复录制指示重新开启第二编码器,继续编码第一窗口中显示的图像。

实施第一方面提供的方法,在一些实施例中,该方法还包括:在图库中显示第一视频的缩略图、第二视频的缩略图,第二视频的缩略图中包含第二对象,第二视频的缩略图也包含第一对象,第一对象在第二视频的缩略图中的图像内容与第一对象在第一视频的缩略图中的图像内容一致。

实施上述实施例提供的方法,电子设备可以在图库应用中分别显示录制预览窗中图像得到的第一视频,和录制第一窗口得到的第二视频。这样,用户可以任意的选择浏览第一视频或第二视频。

实施第一方面提供的方法,在一些实施例中,第一视频的缩略图与第二视频的缩略图相邻陈列。

实施上述实施例提供的方法,同时录制的第一视频和第二视频可以相邻的展示。用户可以清晰直观的获取同时录制的第一视频和第二视频。

实施第一方面提供的方法,在一些实施例中,摄像头包括第一摄像头和第二摄像头,预览窗中显示的第一摄像头采集的图像,第二图像为第二摄像头对焦第二对象采集得到的。

实施上述实施例提供的方法,电子设备也可以通过不同的摄像头追焦主角,从而得到与预览窗中显示的主角图像内容不同的特写图像。

第二方面,本申请提供了一种电子设备,该电子设备包括一个或多个处理器和一个或多个存储器;其中,一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。

第三方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。

第四方面,本申请提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。

第五方面,本申请提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。

可以理解地,上述第二方面提供的电子设备、第三方面提供的芯片系统、第四方面提供的计算机存储介质、第五方面提供的计算机程序产品均用于执行本申请所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。

附图说明

图1A-图1J是本申请实施例提供的一组主角模式拍摄方法的用户界面示意图;

图2A-图2I是本申请实施例提供的一组主角模式拍摄方法的用户界面示意图;

图3A-图3C是本申请实施例提供的一组浏览已拍摄图像的用户界面示意图;

图4是本申请实施例提供的一种终端100的系统结构示意图;

图5是本申请实施例提供的一种终端100的软件模块的交互流程图;

图6是本申请实施例提供的一种终端100的确定一帧图像的对象特征信息的示意图;

图7是本申请实施例提供的另一种终端100的软件模块的交互流程图;

图8是本申请实施例提供的另一种终端100的软件模块的交互流程图;

图9是本申请实施例提供的另一种终端100的软件模块的交互流程图;

图10是本申请实施例提供的另一种终端100的软件模块的交互流程图;

图11是本申请实施例提供的另一种终端100的软件模块的交互流程图;

图12是本申请实施例提供的终端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可根据用户操作选择和变更主角,拍摄并保存至少两路视频:分别为以主角为中心的特写视频,和基于摄像头采集的原始图像生成的原始视频。其中,以主角为中心的特写视频可以有多个。终端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还可检测到作用于小窗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的用户操作。上述操作可称为开始拍摄(开始录制)的用户操作。拍摄控件112也称录制控件。响应于上述操作,终端100可开始录制视频(原始视频和特写视频),即编码并保存摄像头采集的原始图像,和以主角为中心的特写图像。这时,原始视频和特写视频的开始录制时刻是相同的。在一些示例中,上述开始拍摄的用户操作还可以是预设的用户肢体动作或语音指令。其中,用户肢体动作包括手势动作(例如举手、握拳)、体势动作(例如跳跃、奔跑)。

在开始录制视频之后,如图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不停止录制原始视频。

此后,可选的,用户可以重新选择主角。在选定新的主角之后,终端100可重新显示小窗141,并在小窗141中显示新主角的特写视频,录制新主角的特写视频。上述新的主角可以与之前选定的主角相同,也可以不同。这时,终端100会将录制的小窗中的图像保存为另一个特写视频。

可选的,小窗141中还可显示暂停控件213。在检测到的作用于暂停控件213的用户操作之后,终端100可暂停更新小窗141中显示的图像,同时也暂停录制小窗141中的图像(即暂停录制特写视频)。在检测到的作用于暂停控件213的用户操作之后,终端100可显示继续录制控件(图2B中未体现)替代暂停控件213。在检测到的作用于继续录制控件的用户操作之后,终端100可恢复更新小窗141中显示的图像,同时恢复录制特写视频,并在小窗141中显示暂停控件213替换上述继续录制控件。

终端100还可监听作用于屏幕的用户操作。在显示图2B所示的用户界面的基础上,当5秒内未监听到作用于屏幕上预览窗113的用户操作时,例如点击操作,终端100可以隐藏预览窗113中的选择框;当5秒内未监听到作用于屏幕上小窗141的用户操作时,终端100可以隐藏小窗141中的功能控件,例如小窗的时间戳、停止控件212。

在开始录制视频之后,终端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也可根据各个对象的评分的变化切换主角。例如,在刚开始录制视频的过程中,人物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显示特写图像的图层之上显示一个半透明的灰色蒙版,以提示用户追焦录制已暂停。

可以理解的,在图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可播放已拍摄原始视频和/或特写视频。这样,用户立刻查看上述原始视频和/或特写视频。

图3A示例性示出了终端100上图库应用提供的一个用于展示本地保存的视频和/或图片用户界面。图库应用(或称相册应用)是终端100上管理本地保存的视频和/或图片的应用。

如图3A所示,该用户界面可显示多个缩略图图标。一个缩略图图标对应一次拍摄操作得到的视频或图片。示例性的,上述多个缩略图图标可包括图标313。图标313可对应前述图2A-图2I所示的拍摄操作生成的视频。

终端100可检测到作用于图标313的用户操作。响应于上述操作,终端100可展示前述图2A-图2I所示的拍摄操作拍摄的视频:原始视频和特写视频,参考图3B。

如图3B所示,该用户界面可包括窗口332和窗口333。其中,窗口331可用于展示图2A-图2I所示的拍摄操作拍摄的原始视频;窗口333可用于展示图2A-图2I所示的拍摄操作拍摄的特写视频。

在一些示例中,终端100在显示图3B所示的用户界面时,可同时播放原始视频和特写视频。其中,特写视频的视频帧与原始视频对齐。这样,用户可以同时浏览原始视频和特写视频。在一些示例中,终端100也可先播放原始视频后播放特写视频,以便用户单独浏览各个视频。

进一步的,在图3B所示的用户界面的基础上,终端100可检测到作用于原始视频或特写视频的用户操作,例如点击操作。响应于上述操作,终端100可单独地展示上述视频。以原始视频为例,在检测到作用于原始视频的点击操作之后,终端100可单独地播放原始视频,以便于用户可以浏览分辨率更高的更清晰的原始视频。

图3C示例性示出了另一种终端100展示本地保存的视频和/或图片的用户界面。

在图3C所示的用户界面中,终端100可以显示两个缩略图图标,例如图标331,图标332。这两个缩略图图标分别对应主角模式下拍摄得到的原始视频和特写视频。例如,图标331可对应上述原始视频,图标332可对应上述特写视频。在检测到作用于图标331的用户操作之后,终端100可展示原始视频。在检测到作用于图标332的用户操作之后,终端100可展示特写视频。

其中,图标331,图标332可包括相同的图像内容,例如用户选定的主角人物2。这样,用户可以通过图像中显示的图像内容,直观清晰地确定上述两个图标对应的视频是在主角模式下拍摄的一组视频。

实施图1A-图1J、图2A-图2I所示的自动追焦拍摄方法(主角模式),终端100可以实时地检测摄像头采集的原始图像中的对象。用户可以随时选择终端100已识别到的一个或多个对象中的任一对象为主角,也可以随时切换主角。

在开始录制之前,当已设定为主角的对象丢失时超过一段时间,终端100可取消上述对象的主角资格,然后,指示用户重新选定主角。在录制过程中,当已设定为主角的对象丢失时,终端100可暂停录制;当找回主角时,终端100可以继续录制。这样,用户可以得到连贯的以主角为中心的特写视频,并且上述主角不限定为一个对象。

在录制结束后,终端100可同时保存原始视频和特写视频。其中,原始视频可以保留录制过程中摄像头采集到的全部图像内容。特写视频可以集中地展示用户选定的主角的视频内容。用户可根据不同的需求,浏览或使用上述原始视频或特写视频,从而为用户提供更丰富的使用体验。

图4示例性示出了终端100的软件结构示意图。

图4所示的软件结构示意图可包括:相机应用CameraApp、相机硬件抽象CameraHAL。

终端100可采用分层架构。层与层之间通过软件接口通信。以安卓Android系统为例,分层架构从上至下分别包括:应用程序层,应用程序框架层,安卓运行时(Androidruntime)和系统库,以及内核层。

相机应用可设置在应用程序层。应用程序层可以包括一系列应用程序包,例如相机应用,图库应用,电话应用等。其中,本申请实施例主要涉及相机应用。

相机应用中可包括一个或多个功能模块。一个功能模块对应相机应用提供的一类相机服务。图4中示出了录像模块。录像模块可为用户提供录像服务。此外,相机应用中还可其他功能模块。结合图1A所示的菜单栏111,上述其他功能模块还包括拍照模块(提供拍照服务)、人像模块(提供拍摄人像照的服务)、夜景模块(提供针对夜间的拍摄服务)等等。

参考图1A所示的闪光灯1151、滤镜1152、主角模式1154等控件,录像模块可包括闪光灯模块、滤镜模块以及主角模式模块等。闪光灯模块可用于控制开启或关闭闪光灯。滤镜模块可用于控制开启或关闭滤镜以及选择滤镜种类。主角模式模块用于控制启用前述用户界面介绍的自动追焦主角的拍摄功能。

进一步的,主角模式模块可包括特性开关模块、功能模块、大窗控制模块、小窗控制模块、开始录制模块、暂停录制模块、结束录制模块。

特性开关模块中记录了开启主角模式的处理逻辑。功能模块中记录了全局的主角模式拍摄方法的处理逻辑。大窗控制模块中记录了主角模式中与预览窗显示相关的处理逻辑。小窗控制模块中记录了主角模式中与小窗显示相关的处理逻辑。开始录制模块中记录了主角模式中开始录像的处理逻辑。暂停录制模块中记录了主角模式中暂停录像的处理逻辑。结束录制模块中记录了主角模式中结束录像的处理逻辑。

相机硬件抽象可设置在系统库。在本申请实施例中,相机硬件抽象可包括帧流模块Stream、帧预处理模块framePreprocessing、对象检测模块tackDetect、追焦模块tracking。

帧流模块可用于缓存摄像头采集的图像帧流。帧预处理模块可用于对已获取到的图像帧执行美颜、美体、滤镜等图像处理算法。对象检测模块中包括对象识别算法。对象检测模块执行对象识别算法,可识别任意一帧图像中包括的一个或多个对象。追焦模块中包括追焦算法。追焦模块执行追焦算法,可定位在后图像帧中的主角,从而使得相机应用可以提供针对主角进行自动追焦拍摄的服务。

可选的,相机应用的中的功能模块也可设置在应用程序框架层或系统库,相机硬件抽象也可设置在内核层等。相机应用的中的功能模块在相机硬件抽象之上。可以理解的,图4所示的软件结构仅为一种可选的示例,不应构成对本申请的限制。

在开启相机应用之后,终端100中的安装的摄像头会进入工作状态,采集光信号并生成对应的电信号表示的图像。生成的图像首先存储在摄像头的缓存(RAW-buffer)中。然后,摄像头可实时地将当前生成的图像帧上报到CameraHAL。CameraHAL可对接收到的图像帧进行处理然后发送到屏幕预览窗对应的区域进行显示。CameraHAL发送到屏幕预览窗对应的区域进行显示的图像即本申请实施例所述的原始图像。

在本申请实施例提供的主角模式的拍摄方法中,在CameraHAL送显原始图像的过程中,CameraHAL还可对上述原始图像进行图像识别和追焦,进而实现图1A-图1J、图2A-图2I、图3A-图3C所示的主角模式的拍摄功能。

首先,图5示例性示出了图1A-图1D所示的预览过程中选中主角并显示主角特写图像的流程图。

S501.特性开关模块检测到开启主角模式的用户操作。

结合图1A所示的用户界面,在调用摄像头录像的场景下,用户可以通过作用于主角模式1154的操作,指示终端100开启主角模式,进而使用主角模式录制以主角为中心的特写视频以及原始视频。在上述过程中,CameraApp中的特性开关模块可检测到上述作用于主角模式1154的开启主角模式的用户操作。

在检测到开启主角模式的用户操作之后,S502.特性开关模块向可向功能模块发送指示加载主角模式程序块的控制信息。响应于上述控制信息,S503.功能模块加载主角模式程序块。功能模块可将存储器中存储的主角模式程序块加载到内存中。处理器可从内存中读取上述程序块中的程序代码,并依次执行,从而运行本申请实施例提供的主角模式的拍摄方法。

S504.功能模块调用对象检测接口进行对象识别。

在完成加载主角模式程序块的操作之后,在执行主角模式的程序代码的过程中,首先,功能模块可调用对象检测接口(对象检测函数)进行对象识别。对象检测接口可用于调用CameraHAL中的对象检测模块执行对象识别算法,识别摄像头采集的图像中包括的对象。

S505.对象检测模块获取即将送显的一帧原始图像,执行对象识别算法,确定该图像中包括的对象及对应的特征信息。

响应于S504所示的调用动作,对象检测模块可从摄像头的RAW-buffer中获取当前帧(摄像头最新生成的一帧图像)。然后,对象检测模块可直接将上述图像帧输入到对象识别算法中,识别并输出该帧图像中的对象及对象特征信息。摄像头可连续地采集并生成图像(原始图像流),对象检测模块可连续地识别原始图像流中各图像中的包括的对象。

上述对象特征信息包括对象数量和各个对象的特征信息。一个对象的特征信息包括但不限于该对象的对象标识(objectId)、面部区域(face)、人体区域(body)、中心点(center),以及追踪标签(isTracking)。

对象标识用于唯一标识一个对象。面部区域是指一个对象的面部图像在原始图像中的图像区域。人体区域是指一个对象的面部图像在原始图像中的图像区域。中心点是表示一个对象图像中心位置坐标。可选的,上述中心点可以是人体区域的中心点、或面部区域的中心点,还可以是基于人体区域的中心点和面部区域的中心点确定的一个点坐标。追踪标签用于指示该对象是否为主角。例如,isTracking=1可表示该对象被设定为追踪对象(即主角);isTracking=0可表示该对象未被设定为追踪对象。初始的,追踪标签均为指示未被追踪的标签(isTracking=0)。

示例性的,以图6所示图像S1为例,执行对象识别算法,对象检测模块可确定S1的对象特征信息,参考表1:

表1

以objectId=1为例,objectId=1可表示人物1。Face1可表示人物1的面部区域。Body1可表示人物1的人体区域。C1可表示人物1的图像中心点。其中(x1,y1)为上述中心点的坐标。isTracking=0可表示人物1未被设定为追焦对象。

在本申请实施例中,对象识别算法主要是针对人物这一类对象的识别算法,即人体检测算法。在其他实施中,终端100还可支持追焦植物、动物、建筑等类型的对象。这时,上述对象识别算法还包括识别特定植物、动物、建筑的识别算法,这里不再赘述。

在一些实施例中,终端100可以利用人体检测算法确定图像中包括的一个或多个人物。在一些实施例中,终端100还可以利用人体检测算法和人脸检测算法确定图像中包括的一个或多个人物。当人体检测算法输出的一个人体图像和人脸检测算法输出的一个人脸图像匹配时,终端100可确定一个人物。在多人场景中,上述方法可以减少人物图像重叠的干扰,提升人物识别的准确性。

可选的,在调用对象检测接口时,功能模块还可确定RAW-buffer的地址,然后在调用对象检测模块进行识别时,可将上述地址发送给对象检测模块。或者,功能模块也可在RAW-buffer的地址之后,从RAW-buffer中获取摄像头采集的图像,然后将上述图像发送给对象检测模块。这样,对象检测模块可直接从功能模块获取原始图像,或根据功能模块传输的地址获取原始图像。

S506.对象检测模块向功能模块返回对象特征信息(对象标识,面部区域,人体区域,中心点,追焦标签)。

在对象检测模块通过对象识别算法确定原始图像中的对象特征信息之后,对象检测模块可将上述特征信息返回给功能模块。例如,对象检测模块可将上述表1所示的对象特征信息返回给功能模块。这样,功能模块即可基于接收到的对象特征信息确定摄像头上报的最新一帧图像(即将送显的一帧图像)中是否包括一个或多个可作为主角的对象。

如果接收到的对象特征信息指示上述即将送显的一帧图像中包括一个或多个对象,则功能模块可确定将要送显的图像中包括一个或多个对象,进而功能模块可依据上述特征信息中的中心点,生成对应各个对象的标记(选择框)。反之,如果接收到的对象特征信息指示上述即将送显的一帧图像中无对象,则功能模块可可确定将要送显的图像中无对象,进而功能模块可确定无需生成标记,随之,用户也不能选择任意对象作为主角。

S507.当接收到的对象特征信息指示图像中包括一个或多个对象时,功能模块基于对象特征信息中的中心点确定各个对象的选择框的显示坐标。

在接收到上述对象特征信息之后,功能模块可依据对象特征信息中的中心点确定与已识别到的对象一一匹配的选择框,并确定各个选择框的显示坐标。选择框的中心点即上述对象特征信息中各个对象的中心点。

结合图1B所示的用户界面,终端100在显示摄像头采集的原始图像时,还会显示与上述原始图像中各个对象对应的选择框,例如选择框121、122。上述选择框的中心点即图1B预览窗113中人物1、人物2的中心点。

以人物1(objectId=1)为例,在接收到表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.大窗控制模块检测到选择用户的点击操作。

在大窗控制模块可监测用户的点击操作。在显示选择框之后的某一时刻,在大窗控制模块可检测到用户点击屏幕的操作。大窗控制模块可确定上述点击操作作用在屏幕上的坐标(点击坐标),例如click_screen(X0,Y0)。

结合图1C所示的用户界面,在显示选择框121、122之后,终端100可检测到作用于选择框122的用户操作。可以理解的,大窗控制模块在检测到点击操作时,并不确定该点击操作是否是点击选择框的操作。大窗控制模块只需确定该点击的操作在屏幕上的点击坐标。

S511.大窗控制模块向功能模块返回点击坐标。

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)为追焦对象,S510所示的点击操作为点击人物2的选择框122的操作。此时,人物2可称为追焦对象或主角。随后,功能模块可更新人物2的追踪标签,例如将原来的isTracking=0更新为isTracking=1。

S513.功能模块向追焦模块下发追焦对象信息(对象标识,面部区域,人体区域,中心点,追焦标签,时间戳)。

在确定追焦对象之后,功能模块可调用追焦接口。追焦接口可用于调用CameraHAL中的追焦模块执行追焦算法,识别后续原始图像流中是否包括的用户选定的追焦对象(主角)。

在调用追焦接口时,功能模块可向追焦模块发送用户选定的追焦对象的特征信息。以上述追焦对象为人物2为例,上述功能模块发送的人物2的特征信息可以为:例如face=Face2,body=Face2,center=C2,isTracking=1,objectId=2。上述特征信息用于追焦模块在接下来摄像头采集的图像中定位人物2,即定位用户选定的主角。

此外,功能模块还会向追焦模块发送时间戳timestamp。上述时间戳为功能模块调用追焦接口的时间戳。上述时间戳可用于确定从摄像头采集的哪一帧图像开始执行追焦算法。

在支持选定多个主角的场景下,大窗控制模块可检测到多个点击选择框的用户操作,功能模块可基于上述多个点击操作确定多个追焦对象,然后向追焦模块下发上述多个追焦对象。

S514.追焦模块从对象检测模块中获取经过对象检测的原始图像。

在接收到追焦对象信息之后,追焦模块可首先获取待追焦图像,即摄像头采集的即将送显的一帧原始图像。追焦模块可从对象检测模块中获取上述待追焦图像。

在一些实施例中,对象检测模块的缓存中仅存储一帧经过对象识别的原始图像。这时,追焦模块可直接从上述缓存中获取该缓存中当前存储的图像帧。上述当前存储的图像帧即待追焦图像。

在另一些实施例中,对象检测模块的缓存中可存储多帧经过对象识别的原始图像。其中,上述缓存中的最后一帧为待追焦图像。这时,若没有下发追焦对象时刻的时间戳,则追焦模块可能会获取到已经送显过的图像帧,从而使得预览窗中显示的原始图像和小窗中显示的主角的特写图像不匹配。鉴于此,功能模块在下发追焦对象的特征信息时还可发送当前时间戳,追焦模块可根据功能模块上述时间戳从上述缓存中获取待追焦图像,从而避免图像不匹配的问题。

在从对象检测模块中获取经过对象检测的原始图像时,除了获取图像数据,追焦模块还可获取该图像对应的对象特征信息,以供后续确定该图像中的追焦对象。

S515.追焦模块执行追焦算法,确定追焦状态(成功、失败、失焦)及追焦对象的特写图像。

在接收到追焦对象的特征信息,且确定待追焦图像之后,追焦模块可执行追焦算法。通过上述追焦算法,追焦模块可确认待追焦图像中是否包括上述特征信息指示的追焦对象。如果待追焦图像中包括上述特征信息指示的追焦对象,则追焦模块可确定追焦状态为成功;反之,追焦模块可确定追焦状态为失败。在成功时,追焦模块可进一步生成以上述追焦对象为中心的特写图像。

以摄像头采集的第i帧图像为待追焦图像为例:经过S514,追焦模块可获取到第i帧图像及其对应的对象特征信息。然后,追焦模块可计算第i帧图像中各个对象与S513中下发的追焦对象的相似度。第i帧图像中与下发的追焦对象相似度最高且高于门限值的对象,可确定为第i帧图像中的追焦对象。

例如,追焦模块在从对象检测模块获取第i帧图像时,追焦模块还可获取到上述第i帧图像中各个对象的特征信息,参考表2:

表2

然后,追焦模块可分别计算追焦对象(表1: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帧图像中各个对象与上述下发的追焦对象的相似度的具体过程如下:首先,追焦模块可根据对象检测模块输出的对象数量和各个对象的图像区域(例如图6中的人体框body1),确定第i帧图像中的人物是否重叠。

在不重叠的场景下,终端100可以利用各个对象的图像区域与下发的追焦对象的图像区域的交并比IoU,来确定第i帧图像中的追焦对象。其中,一个对象的图像区域可通过对象特征信息中的人体区域表示,即追焦模块可通过第i帧图像中的人体区域的IoU进行主角追焦。第i帧图像中与下发的追焦对象的IoU最大的对象可被确定为第i帧图像中的追焦对象。

在重叠的场景下,终端100可以利用各个对象的图像区域的交并比IoU以及图像内容的相似度确定第i帧图像中的追焦对象。其中,第i帧图像中与下发的追焦对象的IoU和图像内容相似度的和最大的对象可被确定为第i帧图像中的追焦对象。

S516.追焦模块向功能模块返回追焦状态(成功、失败、失焦)。

在确定追焦状态之后,追焦模块可首先将上述追焦状态返回到功能模块。一帧图像的追焦状态可以为成功、失败、失焦中任意一类状态。每确定一帧图像的追焦状态,追焦模块可向功能模块返回该帧图像的追焦状态。功能模块接收到的成功的追焦状态可称为追焦成功指示;失焦的追焦状态可称为失焦指示。

S517.功能模块确定追焦状态。在接收到CameraHAL中追焦模块返回的追焦状态后,功能模块可确认上述追焦状态为成功、失败或失焦。

S518.当追焦状态为追焦成功时,功能模块向小窗控制模块发送开启小窗的指示。

S519.小窗控制模块绘制小窗并控制显示器显示小窗。

响应于上述开启小窗的指示,小窗控制模块可绘制小窗,例如图1D所示的小窗141。然后,小窗控制模块可将绘制好的小窗的图像发送到显示器。显示器在接收到小窗的图像之后在显示器对应的位置上显示小窗。

S520.小窗控制模块从追焦模块中获取追焦对象的特写图像,并在小窗中显示。

参考S515介绍的,在成功时,追焦模块可进一步生成以追焦对象为中心的特写图像。具体的,小窗控制模块可通过追焦模块提供的读取特写图像的通道(session),获取特写图像,从而在小窗中显示追焦对象的特写图像。上述通道为追焦模块中用于存放特写图像的一段存储空间。

例如,在送显周期到来时,CameraAPP可接收到CameraHAL上报的第i帧图像及其对应的主角特写图像。这时,CameraAPP中的大窗控制模块可在预览窗中显示第i帧图像,CameraAPP中的小窗控制模块可在已绘制的小窗中显示上述主角特写图像。

S521.功能模块向大窗控制模块发送显示选择框的指示。

当追焦状态为追焦成功时,功能模块还可向大窗控制模块发送显示对象标记(选择框和/或选中框)的指示。其中,追焦对象(主角)的标记为选中框,非主角的标记为选择框。上述控制信息中可携带各个对象标记的显示坐标。可以理解的,S518和S521无先后顺序,均为S517之后,功能模块执行的操作。

S522.大窗控制模块绘制选择框并控制显示器显示选择框。

在接收到上述显示选择框的指示之后,大窗控制模块可确定绘制并选择框。其中,根据上述显示坐标,大窗控制模块可确定各个选择框在屏幕中的具体显示位置。此时,大窗控制模块还可根据第i帧图像的对象特征信息(isTracking),确认该图像中是否有追焦对象,以及追焦对象具体为哪一个。然后,大窗控制模块可确定选择框的类型:表示未选中的选择框(选择框122),或者表示已选中的选择框(选中框142)。

例如,根据表2所示的第i帧图像的对象特征信息(isTracking),大窗控制模块可人物2对应的表示已选中的选择框(选中框),而人物1对应表示未选中的选择框。这时,大窗控制模块可绘制不同类型的选择框,从而使得用户可以方便地区分主角和非主角。

在S517中,如果功能模块接收到的追焦状态为失败时,则功能模块不会执行任何动作。终端100会按照前述介绍的方法继续显示摄像头采集的图像、识别图像中的对象并显示与各个对象对应的选择框,等待用户的选择主角的操作。可选的,如果功能模块接收到的追焦状态为失败,则功能模块也可指示大窗控制模块在预览窗中显示追焦失败的提示,指示用户重新选择主角。

在追焦成功的基础上,如果某一帧中追焦模块未识别到追焦对象,则追焦模块可向功能模块返回失焦的追焦状态,并控制小窗暂停显示特写图像甚至关闭小窗。图7示例性示出了图1I-图1J所示的预览过程中失焦的流程图。

在预览场景(未开始录制)中,S523.当追焦状态为追焦失焦时,功能模块启动计时器。

参考图1I-图1J以及后续录像过程中图2E-图2F的介绍,刚开始检测到追焦对象丢失时,小窗141可以立即暂停小窗,也可以等待一段时间再暂停小窗。其中,在等待的过程中,小窗中可以显示根据最后一帧特写图像在原始图像中的位置裁剪得到的图像,也可以直接显示经过等比例缩放的原始图像。

以等待一段时间再暂停小窗的方法为例,当功能模块接收到的追焦状态为“失焦”时,功能模块可启动计时器。功能模块在启动计时器是可设定计时器的计时时长。结合图1I所示的用户界面的介绍,上述计时器的计时长度可以为5秒。

在等待一段时间再暂停小窗的方法中,在确定追焦状态为失焦之后,追焦模块可按照丢失之前最后一帧的裁剪方式继续裁剪后续几帧原始图像,得到送显小窗的图像。相应地,小窗控制模块可以继续从追焦模块提供的session中获取送显小窗的图像,然后显示。可以理解的,此时,送显小窗的图像内容不包括前述设定的主角。

S524.当计时器计时结束时,功能模块向小窗控制模块发送暂停显示的控制信息。

以上述计时时长5秒为例,当计时器计时结束且cameraHAL返回的追焦状态仍然是失焦时,功能模块可向小窗控制模块发送关闭小窗的控制信息。

其间,若cameraHAL返回的追焦状态为成功时,追焦模块可在session中存入追焦对象的特写图像。对应的,小窗控制模块可从session中获取到上述特写图像。这时,用户可以在小窗中看到新的特写图像。在cameraHAL返回的追焦状态为成功时,功能模块可关闭计时还未结束的计时器。

参考图2E-图2F的介绍,在开始录制的场景下,当计时器计时结束且cameraHAL返回的追焦状态仍然是失焦时,功能模块可向小窗控制模块发送暂停录制的控制信息,而不会直接关闭小窗,后续实施例再详细介绍。

S525.小窗控制模块控制关闭小窗。

响应于上述关闭小窗的控制信息,小窗控制模块可关闭小窗,并停止从session中获取特写图像。参考图1J所示的用户界面,预览窗113中不再显示小窗141。

可选的,在预览场景中,S526.当追焦状态为追焦失焦时,功能模块向小窗控制模块发送暂停显示的控制信息。

以立即暂停小窗的方法为例,当功能模块接收到的追焦状态为“失焦”时,功能模块可立即向小窗控制模块发送关闭的控制信息,而不再设定计时器、等待计时器计时结束后再发送关闭小窗的控制信息。

S527.小窗控制模块控制关闭小窗。同S525,这里不再赘述。

图8示例性示出了图2A-图2B所示的开始录制的过程中的流程图。

S601.开始录制模块检测到开始录制的用户操作。

在预览过程中,在确定追焦对象后,用户可通过拍摄控件开启视频录制。参考图2A所示的用户界面,终端100可检测到作用于拍摄控件112的用户操作,响应于上述操作,终端100可开始录制视频。具体的,CameraAPP中的开始录制模块可检测到上述开始录制的用户操作。

S602.开始录制模块控制大窗编码器和小窗编码器开始编码。

在检测到开始录制的用户操作之后,开始录制模块可开启大窗编码器和小窗编码器,并控制大窗编码器和小窗编码器可开始编码送显图像。大窗编码器用于编码大窗(预览窗113)中的图像流。小窗编码器用于编码小窗(小窗141)中的图像流。

S603.开始录制模块向大窗控制模块发送开始录制的指示。响应于上述指示,S604.大窗控制模块开启大窗计时器并显示计时结果。

录制过程中的预览窗视图可包括记录预览窗录制时长的时间标记。在接收到上述开始录制的指示信息之后,大窗控制模块可初始化大窗计时器,并开始计时。同时,大窗控制模块可在预览窗中显示上述计时器的计时结果。大窗中显示的计时结果即上述记录预览窗录制时长的时间标记。参考图2B所示的用户界面,预览窗113的左上角显示有录制时长“00:01”。上述录制时长“00:01”即当前大窗计时器的计时结果。

S605.开始录制模块向小窗控制模块发送开始录制的指示信息。同样的,在开启小窗编码器之后,开始录制模块还可向小窗控制模块发送开始录制的指示信息。可以理解的,S603-S604与S605-S606无时序上的先后关系。

响应于上述指示,S606.小窗控制模块开启小窗计时器并显示计时结果。

录制过程中的小窗视图可包括记录小窗录制时长的时间标记。在接收到上述开始录制的指示信息之后,小窗控制模块可初始化小窗计时器,并开始计时。同时,小窗控制模块可在小窗中显示上述计时器的计时结果。小窗中显示的计时结果即上述记录小窗录制时长的时间标记。参考图2B所示的用户界面,小窗141中的左上角显示有录制时长“00:01”。上述录制时长“00:01”即当前小窗计时器的计时结果。

S607.功能模块监听作用于屏幕的交互事件。

在检测到开始录制的用户操作之后,功能模块可实时地检监听作用于屏幕的交互控制事件,例如点击操作、滑动操作等交互事件。

S608.当预设时间内未监听到作用于屏幕中大窗区域的交互事件,功能模块向大窗控制模块发送隐藏选择框的指示信息。

以预设时间为5秒为例,当连续5秒内未监听到作用于屏幕中大窗区域的交互事件,则功能模块可向大窗控制模块发送隐藏选择框的指示信息。上述5秒为示例性例举的监听时长。功能模块也可设置其他时长的监听时长。上述监听时长可称为第一时长。功能模块可通过第一计时器计时所述第一时长。

在接收到隐藏选择框的指示信息之后,S609.大窗控制模块隐藏选择框。

S610.预设时间内未监听到作用于屏幕中小窗区域的交互事件,功能模块向小窗控制模块下发隐藏功能控件的指示信息。

同样以5秒为例,当连续5秒内未监听到作用于屏幕中小窗区域的交互事件,则功能模块可向小窗控制模块发送隐藏功能控件的指示信息。上述功能控件包括小窗中显示的录制时长、停止控件等,以减少对小窗中显示的图像的遮挡,提升用户浏览体验。

S611.小窗控制模块隐藏功能控件。

在接收到隐藏功能控件的指示信息之后,小窗控制模块可停止显示录制时长、停止控件等功能控件。同样的,S608-S609与S610-S611无时序上的先后关系。

S612.功能模块监听到作用于屏幕的交互事件。

在隐藏选择框之后的某一时刻,功能模块可监听到作用于屏幕的交互事件,例如点击屏幕中任意位置的用户操作。这里,作用于屏幕的交互时间包括作用于预览窗的交互事件和作用于小窗的交互事件。

在监听到作用于屏幕的交互事件之后,S613.功能模块向大窗控制模块发送显示选择框的指示。响应于上述指示,S614.大窗控制模块可显示选择框。这样,用户可以通过上述显示框选择或切换追焦对象。

在监听到作用于屏幕的交互事件之后,S615.功能模块向小窗控制模块发送显示功能控件的指示信息。响应于上述指示,S616.小窗控制模块显示功能控件。上述功能控件例如小窗141中的录制时长、暂停控件、停止控件等。这样,用户可以通过上述功能模块控制暂停或停止录制小窗。

可选的,功能模块可分别监听作用于屏幕中大窗区域的交互事件和小窗的交互事件。当监听到作用于屏幕中大窗区域的交互事件时,功能模块可指示大窗控制模块显示选择框。当监听到作用于屏幕中小窗区域的交互事件时,功能模块可指示小窗控制模块显示功能控件。

图9示例性示出了图2C-图2D所示的切换主角的过程中的流程图。

S701.大窗控制模块检测到切换追焦对象的用户操作。

在录制的过程中,用户可以随时切换追焦对象。例如,参考图2C所示的用户界面,终端100可检测到作用于选择框121的切换追焦对象为人物1的用户操作。具体的,CameraAPP中的大窗控制模块可检测到上述切换追焦对象的用户操作。

S702.大窗控制模块向功能模块返回点击坐标。

参考步骤S511,在检测到用户点击选择框以切换追焦对象的用户操作时,大窗控制模块也是首先确定上述点击操作作用在屏幕上的坐标(点击坐标)。然后,大窗控制模块可将上述点击坐标返回给功能模块。

S703.功能模块依据点击坐标更新追焦对象。

参考步骤S512,在接收到大窗控制模块返回的点击坐标之后,功能模块可首先确定上述点击坐标对应的图像坐标。在切换追焦对象的过程中,功能模块可依据上述图像坐标和各个对象的中心点,确定用户点击的对象,进而确定新的追焦对象(主角)。结合图2C所示的用户界面,这时,终端100可将人物1设定为新的追焦对象(主角)。

在更新追焦对象后,适应性地,功能模块可修改对应图像的对象特征信息。例如,功能模块可将之前的追焦对象人物2的追踪标签修改为0(isTracking=0),同时将新的追焦对象人物1的追踪标签修改为1(isTracking=1)。

S704.功能模块向追焦模块下发更新后的追焦对象信息(face,body,center,isTracking,objectId,timestamp)。

在确定新的追焦对象之后,功能模块可调用追焦接口向追焦模块输入新的追焦对象的特征信息,例如人物1的特征信息:face=Face1,body=Face1,center=C1,isTracking=1,objectId=1,以供追焦模块在原始图像流中定位新的追焦对象,并生成新的追焦对象的特写图像。参考步骤S513,同样的,功能模块还会向追焦模块发送当前时间戳timestamp,以供追焦模块从原始图像流中的哪一帧开始定位新的追焦对象。

S705.追焦模块从对象检测模块中获取经过对象识别的原始图像,对上述图像执行追焦算法,确定追焦状态(成功、失焦)。

参考S514-S515的介绍,追焦模块可根据上述时间戳timestamp确定开始定位新的追焦对象的第一帧图像。例如,上述timestamp可指示从第k帧图像开始追焦新的主角人物1。这时,追焦模块可从对象检测模块中获取经过对象识别的第k帧图像,然后确定该图像帧的追焦状态:成功或失焦。

以第k帧图像为例,从对象检测模块获取第k帧图像时,追焦模块还可获取到上述第k帧图像中各个对象的特征信息。参考步骤S515,然后,追焦模块可根据下发的追焦对象的特征信息,和第k帧图像中各个对象的特征信息,定位第k帧图像的追焦对象,这里不再赘述。同样的,在定位第k帧图像的追焦对象之后,追焦模块还可基于上述追焦对象确定特写图像,以供后续CameraAPP获取该特写图像并显示。

S706.追焦模块向功能模块返回追焦状态(成功、失焦)。

在确定追焦状态之后,追焦模块可首先将上述追焦状态返回到功能模块。

当追焦模块在第k帧图像中定位到了新的追焦对象时,追焦模块返回的第k帧图像的追焦状态为“成功”。当追焦模块在第k帧图像中未定位到新的追焦对象时,追焦模块返回的第k帧图像的追焦状态为“失焦”。

小窗控制模块会定时的从追焦模块提供的session中获取送显小窗的图像。当追焦状态为“成功”时,功能模块无需做任何变化。此时,追焦模块session中的特写图像已经根据追焦算法更换为新的追焦对象的特写图像。随之,小窗控制模块从session中获取的图像也相应地为新的追焦对象的特写图像。

S707.当追焦状态为失焦时,功能模块启动计时器。

当追焦状态为“失焦”时,功能模块可启动计时器。参考S523的介绍,功能模块在启动计时器是可设定计时器的计时时长。上述计时器的计时时长例如5秒。上述计时时长可称为第二时长。上述计时器可称为第二计时器。

S708.在计时结束后,功能模块向暂停录制模块发送暂停录制的指示。在设置计时器的同时,或设置计时器之后,功能模块还可向暂停录制模块发送暂停录制的指示。S709.暂停录制模块控制小窗编码器暂停编码。响应于上述指示,暂停录制模块中的小窗编码器可暂停编码。

S710.暂停录制模块向小窗控制模块发送暂停录制的指示。在暂停小窗编码器的之后,暂停录制模块还可向小窗控制模块发送暂停显示的指示。S711.小窗控制模块暂停小窗计时器。在接收到暂停显示的指示之后,小窗控制模块可停止小窗计时器的计时。这时,小窗中的时间戳可停止在失焦前的最后计时结果,例如“00:05”。同时,在接收到暂停显示的指示之后,小窗控制模块可暂停从session中获取并显示新的特写图像。这时,小窗中展示的特写图像可停止在当前显示的图像。

S712.在暂停录制之后,功能模块接收到成功的追焦状态。

在暂停录制之后,功能模块可接收到追焦模块传回的某一帧的追焦状态为成功。这时,小窗控制模块可从session中获取到新的追焦对象的特写图像,因此,小窗中可继续显示上述新的特写图像。相应的,S713.功能模块可向开始录制模块发送继续录制小窗的指示。响应于上述指示,S714.小窗编码器恢复编码。小窗编码器可继续编码小窗(小窗141)中的图像流。

同时,S715.开始录制模块可向小窗控制模块发送恢复录制的指示。响应于上述指示,S716.小窗控制模块恢复小窗计时器并继续显示特写图像。小窗控制模块可重新启动小窗计时器,并在小窗中重新显示小窗计时器当前计时。同时,小窗控制模块可继续从session中获取并显示追焦对象的特写图像。

图10示例性示出了暂停录制的过程中的流程图。

S801.暂停录制模块检测到暂停录制的用户操作。

在开始录制视频之后,用户可以通过拍摄控件暂停视频录制。例如,参考图2B所示的用户界面,暂停控件2111可用于暂停视频录制。当检测到作用于暂停控件2111的用户操作时,终端100可确认检测到暂停录制的用户操作。

响应于上述用户操作,S802.暂停录制模块可控制大窗编码器和小窗编码器停止编码。同时,S803.暂停录制模块可向大窗控制模块发送暂停录制的指示。响应于上述指示,S804.大窗控制模块可暂停大窗计时器。这时,大窗中的时间戳可停止在当前的计时时刻。用户可以通过上述计时时刻不再增长确定已经暂停大窗录制。

同时,S805.暂停录制模块还可向小窗控制模块发送暂停录制的指示。响应于上述指示,S806.小窗控制模块可暂停小窗计时器。这时,小窗中的时间戳可停止在当前的计时时刻。用户可以通过上述计时时刻不再增长确定已经暂停小窗录制。S803-S804与S805-S808无时序上的先后关系。且,从用户看来,上述大窗计时器和小窗计时器是同时停止计时。

S807.追焦模块向功能模块返回追焦状态。

在暂停录制视频的过程中,摄像头仍然可以采集并生成图像,并在生成图像之后依次将生成的图像帧上报给CameraHAL。相应的,追焦模块在每接收到摄像头上报的一帧之后,就对该帧执行追焦算法,确定各图像帧中是否包括追焦对象,进而确定追焦状态,并将上述追焦状态传回功能模块。

在录制过程中,S808.在大窗小窗均暂停录制的情况下,当返回的追焦状态为失焦时,功能模块可向小窗控制模块发送追焦对象丢失的指示。响应于上述指示,S809.小窗控制模块控制小窗显示蒙层。

在录制过程中,S810.在大窗小窗均暂停录制的情况下,当返回的追焦状态为“失焦”时,功能模块还可向大窗控制模块发送追焦对象丢失的指示。响应于上述指示,S811.大窗控制模块可控制大窗显示指示追焦对象丢失的提示信息。同样的,S808与S810无时序上的先后关系。

在已失焦的场景下,当追焦模块重新在一帧图像中定位到追焦对象时,追焦模块可确定该帧图像的追焦状态为成功,并将上述追焦状态传回功能模块。S812.当重新接收到成功的追焦状态时,功能模块向小窗控制模块发送追焦对象找回的指示。响应于上述指示,S813.小窗控制模块消除小窗蒙层。

同时,S814.当重新接收到成功的追焦状态时,功能模块还会向大窗控制模块发送追焦对象找回的指示。响应于上述指示,S815.大窗控制模块在大窗中显示指示追焦对象找回的提示信息。

可以理解的,在图9所示的流程中,在失焦的状态下,功能模块可控制暂停录制小窗图像。结合S808-S809的介绍,功能模块也会向小窗控制模块发送追焦对象丢失的指示,使得小窗相应地显示蒙层。在失焦后追回的状态下,功能模块可恢复录制小窗图像。结合S812-S813的介绍,功能模块也会向小窗控制模块发送追焦对象找回的指示,消除小窗上显示的蒙层。

图11示例性示出了图2H-图2I所示的结束录制的过程中的流程图。

在录制视频的过程中,用户可以选择先关闭小窗,结束录制特写视频,同时,用户还可以关闭大窗,同时结束录制原始视频和特写视频。

S901.结束录制模块检测到结束小窗录制的用户操作。参考图2B中介绍的结束控件212,终端100可检测到作用于上述控件的用户操作。上述用户操作即结束小窗录制的用户操作。

响应于上述结束小窗录制的用户操作,S902.结束录制模块可控制关闭小窗编码器、停止小窗编码器编码送显小窗的特写图像。小窗编码器可将已编码的特写图像封装为视频,即特写视频。

在检测到结束小窗录制的用户操作之后,S903.结束录制模块还可向小窗控制模块发送关闭小窗的指示。响应于上述指示,S904.小窗控制模块可关闭小窗。

S905.结束录制模块检测到结束录制的用户操作。参考图2H所示的用户界面,终端100还可检测到作用于控件2112的用户操作。上述用户操作即结束录制的用户操作。上述结束录制的操作对应同时结束大窗录制和小窗录制。

响应于上述结束录制的用户操作,S906.结束录制模块可控制关闭大窗编码器和小窗编码器、停止编码送显大窗和小窗的图像。小窗编码器可将已编码的特写图像封装为视频,即特写视频。同时,大窗编码器可将已编码的原始图像封装为视频,即原始视频。

在检测到结束录制的用户操作之后,S907.结束录制模块向大窗控制模块发送关闭大窗的指示。在接收到关闭大窗的指示之后,S908.大窗控制模块显示开始录制视频之前的预览界面。大窗控制模块可显示预览界面。

同时,S909.结束录制模块向小窗控制模块发送关闭小窗的指示。在接收到关闭小窗的指示之后,S910.小窗控制模块关闭小窗。这时,终端设备100可显示图1A所示的用户界面:预览界面、无小窗。同样的,S907与S909之间无时序上的先后关系。

在本申请实施例中:

对象检测模块从摄像头采集的图像中识别的对象可称为第一对象,例如图1B所示的人物1、人物2。摄像头采集的一帧图像中可包括一个或多个第一对象。从对象检测模块识别到的对象中选择的作为追焦对象(主角)的对象可称为第二对象,例如图1D所示的用户确定为主角的人物2。

在确定追焦对象后,用于展示追焦对象特写图像的窗口可称为第一窗口,例如图1D所示的展示人物2(追焦对象)的小窗141。录制预览窗113中的原始图像得到的原始视频即所述第一视频。录制小窗141中的特写图像得到的特写视频即所述第二视频。

参考图8,开始录制模块启用的大窗编码器可称为第一编码器,小窗编码器可称为第二编码器。

图12是本申请实施例提供的终端100的硬件结构示意图。

终端100可以包括处理器110,外部存储器接口120,内部存储器121,音频模块130,扬声器130A,受话器130B,麦克风130C,耳机接口130D,显示屏140,摄像头150,触摸传感器160。

本发明实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。处理器110中还可以设置存储器,用于存储指令和数据。

终端100通过GPU,显示屏140,以及应用处理器等实现显示功能。

GPU为图像处理的微处理器,连接显示屏140和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。显示屏140用于显示图像,视频等。在一些实施例中,电子设备可以包括1个或N个显示屏140,N为大于1的正整数。

在本申请实施例中,终端100显示摄像头采集的原始图像、经过追焦确定的主角的特写图像,以及图1A-图1J、图2A-图2I、图3A-图3C所示的用户界面的能力,依赖于上述GPU,显示屏140,以及应用处理器提供的显示功能。

终端100可以通过ISP,摄像头150,视频编解码器,GPU,显示屏140以及应用处理器等实现拍摄功能。

摄像头150用于捕获静态图像或视频。ISP用于处理摄像头150反馈的数据。光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。终端100可以包括1个或N个摄像头150,N为大于1的正整数。视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。

在本申请实施例中,终端100实施本申请实施例提供的拍摄方法,首先依赖于ISP,摄像头150采集的图像,其次还依赖于视频编解码器,GPU提供的图像计算与处理能力。

内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。

在本申请实施例中,实现本申请实施例所述的拍摄方法的代码可存储在非易失性存储器上。在运行相机应用时,终端100可将非易失性存储器中存储的可执行代码加载到随机存取存储器。

外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展终端100的存储能力。

终端100可以通过音频模块130,扬声器130A,受话器130B,麦克风130C,耳机接口130D,以及应用处理器等实现音频功能。

音频模块130用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器130A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器130B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风130C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口130D用于连接有线耳机。

在本申请实施例中,终端100在启用摄像头采集图像的过程中,可以同时启用麦克风130C采集声音信号,并将声音信号转换为电信号存储下来。这样,用户可以得到有声视频。

触摸传感器160,也称“触控器件”。触摸传感器160可以设置于显示屏140,由触摸传感器160与显示屏140组成触摸屏,也称“触控屏”。触摸传感器160用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏140提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器160也可以设置于终端100的表面,与显示屏140所处的位置不同。

在本申请实施例中,终端100可利用触摸传感器160检测用户作用于显示屏140上的点击、滑动等操作,以实现图1A-图1J、图2A-图2I、图3A-图3C所示的拍摄方法。

本申请的说明书和权利要求书及附图中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户可以识别的内容,比如图片、文字、按钮等控件。控件(control)也称为部件(widget),是用户界面的基本元素,典型的控件有工具栏(toolbar)、菜单栏(menu bar)、文本框(text box)、按钮(button)、滚动条(scrollbar)、图片和文本。界面中的控件的属性和内容是通过标签或者节点来定义的,比如XML通过等节点来规定界面所包含的控件。一个节点对应界面中一个控件或属性,节点经过解析和渲染之后呈现为用户可视的内容。此外,很多应用程序,比如混合应用(hybrid application)的界面中通常还包含有网页。网页,也称为页面,可以理解为内嵌在应用程序界面中的一个特殊的控件,网页是通过特定计算机语言编写的源代码,例如超文本标记语言(hyper text markup language,GTML),层叠样式表(cascading style sheets,CSS),java脚本(JavaScript,JS)等,网页源代码可以由浏览器或与浏览器功能类似的网页显示组件加载和显示为用户可识别的内容。网页所包含的具体内容也是通过网页源代码中的标签或者节点来定义的,比如GTML通过

用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。

在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

相关技术
  • 一种多焦距图像拍摄方法、电子设备、存储介质
  • 摄像头模组、电子设备及拍摄方法
  • 拍摄方法和装置、电子设备、计算机可读存储介质
  • 电影拍摄场景的调度方法、装置、电子设备和存储介质
  • 一种利用三维电影拍摄设备拍摄电影的方法
  • 电子设备的拍摄方法、拍摄装置、电子设备及存储介质
  • 拍摄系统、拍摄方法及使用该拍摄系统的电子设备
技术分类

06120116494369