自动聚焦方法及装置、存储介质及电子设备转让专利

申请号 : CN202110808937.1

文献号 : CN115701122A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘钦

申请人 : 北京极感科技有限公司

摘要 :

本申请涉及计算机视觉技术领域,提供一种自动聚焦方法及装置、存储介质及电子设备。其中,自动聚焦方法包括:利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置;对原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像;目标图像为原始图像的局部图像,该局部图像中包含目标对象,聚焦变换为能够凸显出目标图像的仿射变换。从而,只要目标对象还处于原始图像的范围内,该方法都可以自动锁定其位置并对将其在屏幕上进行显著性地显示,因此该方法有效改善了目标对象容易离开屏幕的显示范围、难以被用户持续观察的问题。并且,该方法所实现的自动聚焦并不需要摄像头具备目标跟踪功能,因此还有利于降低实施成本。

权利要求 :

1.一种自动聚焦方法,其特征在于,包括:

利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置;

对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像;其中,所述目标图像为所述原始图像的局部图像,该局部图像中包含所述目标对象,所述聚焦变换为能够凸显出所述目标图像的仿射变换。

2.根据权利要求1所述的自动聚焦方法,其特征在于,所述目标图像通过对所述目标对象在所述原始图像中占据的区域进行扩展后得到。

3.根据权利要求1或2所述的自动聚焦方法,其特征在于,所述聚焦变换包括放大和/或平移。

4.根据权利要求3所述的自动聚焦方法,其特征在于,若所述聚焦变换包括放大,则所述对所述原始图像中的目标图像进行聚焦变换,包括:根据所述原始图像的尺寸以及所述目标图像的尺寸计算预期放大倍数,并根据所述预期放大倍数对所述原始图像中的目标图像进行放大;

若所述聚焦变换包括平移,则所述对所述原始图像中的目标图像进行聚焦变换,包括:根据所述原始图像的中心位置以及所述目标对象的中心位置计算预期平移量,并根据所述预期平移量对所述原始图像中的目标图像进行平移。

5.根据权利要求4所述的自动聚焦方法,其特征在于,所述根据所述原始图像的尺寸以及所述目标图像的尺寸计算预期放大倍数,并根据所述预期放大倍数对所述目标图像进行放大,包括:根据当前帧原始图像的尺寸以及所述当前帧原始图像中的目标图像的尺寸计算所述预期放大倍数;

根据所述预期放大倍数以及上一帧放大倍数计算当前帧放大倍数,并根据所述当前帧放大倍数对当前帧原始图像中的目标图像进行放大;其中,所述上一帧放大倍数为对上一帧原始图像中的目标图像进行放大的倍数,所述当前帧放大倍数位于所述上一帧放大倍数与所述预期放大倍数之间;

所述根据所述原始图像的中心位置以及所述目标对象的中心位置计算预期平移量,并根据所述预期平移量对所述目标图像进行平移,包括:根据当前帧原始图像的中心位置以及所述当前帧原始图像中的目标对象的中心位置计算所述预期平移量;

根据所述预期平移量以及上一帧平移量计算当前帧平移量,并根据所述当前帧平移量对当前帧原始图像中的目标图像进行平移;其中,所述当前帧平移量位于所述上一帧平移量与所述预期平移量之间。

6.根据权利要求5所述的自动聚焦方法,其特征在于,所述根据所述预期放大倍数以及上一帧放大倍数计算当前帧放大倍数,包括:根据所述预期放大倍数、所述上一帧放大倍数以及剩余放大帧数计算放大倍数增量;

其中,所述剩余放大帧数表示:所述当前帧放大倍数要达到所述预期放大倍数还需经历的原始图像帧数;

在所述上一帧放大倍数上叠加所述放大倍数增量,得到所述当前帧放大倍数;

所述根据所述预期平移量以及上一帧平移量计算当前帧平移量,包括:

根据所述预期平移量、所述上一帧平移量以及剩余平移帧数计算平移量增量;其中,所述剩余平移帧数表示:所述当前帧平移量要达到所述预期平移量还需经历的原始图像帧数;

在所述上一帧平移量上叠加所述平移量增量,得到所述当前帧平移量。

7.根据权利要求1‑6中任一项所述的自动聚焦方法,其特征在于,所述图像传感器为摄像头的感光元件,所述摄像头的数量为N个,N≥2,且从第1个摄像头至第N个摄像头视场角依次增大,所述对所述原始图像中的目标图像进行聚焦变换,包括:根据当前摄像头对应的原始图像和/或下一摄像头对应的原始图像判断是否满足从当前摄像头切换至下一摄像头的切换条件;其中,所述当前摄像头为第i个摄像头,1≤i≤N,所述下一摄像头为与所述当前摄像头在视场角大小的排序上相邻的摄像头,摄像头对应的原始图像是指所述摄像头的图像传感器生成的原始图像;

若判断结果不满足所述切换条件,则对所述当前摄像头对应的原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换;其中,所述聚焦变换包括放大。

8.根据权利要求7所述的自动聚焦方法,其特征在于,所述若判断结果不满足所述切换条件,则对所述当前摄像头对应的原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换,包括:若判断结果不满足所述切换条件,则根据所述当前摄像头对应的当前帧变换参数,对所述当前摄像头采集的当前帧原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则根据所述下一摄像头对应的当前帧变换参数,对所述下一摄像头采集的当前帧原始图像中的目标图像进行聚焦变换;

其中,所述当前摄像头对应的当前帧变换参数根据所述当前摄像头对应的当前帧原始图像进行计算,所述下一摄像头对应的当前帧变换参数根据所述下一摄像头对应的当前帧原始图像进行计算,所述当前帧变换参数包括当前帧放大倍数,或者,包括当前帧放大倍数和当前帧平移量。

9.根据权利要求8所述的自动聚焦方法,其特征在于,若所述当前摄像头的视场角大于所述下一摄像头的视场角,则所述切换条件包括:所述当前摄像头对应的当前帧放大倍数不小于摄像头倍数比值,且所述目标对象的位置未超出所述下一摄像头对应的当前帧原始图像的边界;

和/或,

若所述当前摄像头的视场角小于所述下一摄像头的视场角,则所述切换条件包括:所述下一摄像头对应的当前帧放大倍数小于摄像头倍数比值,或所述目标对象的位置已超出所述当前摄像头对应的当前帧原始图像的边界;

其中,所述摄像头倍数比值为所述当前摄像头的放大倍数与所述下一摄像头的放大倍数的比值。

10.根据权利要求9所述的自动聚焦方法,其特征在于,若所述当前摄像头的视场角大于所述下一摄像头的视场角,则根据所述下一摄像头对应的当前帧平移量判断所述目标对象的位置是否超出所述下一摄像头对应的当前帧原始图像的边界;

若所述当前摄像头的视场角小于所述下一摄像头的视场角,则根据所述当前摄像头对应的当前帧平移量判断所述目标对象的位置是否超出所述当前摄像头对应的当前帧原始图像的边界。

11.根据权利要求7‑10中任一项所述的自动聚焦方法,其特征在于,所述若判断结果满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换,包括:若当前时刻的判断结果满足所述切换条件,则在之后的一个时间段内继续根据所述当前摄像头对应的原始图像和/或所述下一摄像头对应的原始图像进行切换条件的判断,若在该时间段内得到的判断结果均满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换。

12.根据权利要求1‑11中任一项所述的自动聚焦方法,其特征在于,在所述利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置之前,所述方法还包括:将初始图像中检测出的感兴趣对象确定为所述目标对象,或者,根据针对初始图像的目标选择操作确定所述目标对象;其中,所述初始图像为所述目标跟踪算法所处理的首帧原始图像。

13.根据权利要求12所述的自动聚焦方法,其特征在于,所述根据针对初始图像的目标选择操作确定所述目标对象,包括:根据针对所述初始图像的区域圈定操作,将被圈定区域内的感兴趣对象确定为所述目标对象;或者,根据针对所述初始图像的对焦点选择操作,将包含对焦点的感兴趣对象确定为所述目标对象。

14.根据权利要求1‑13中任一项所述的自动聚焦方法,其特征在于,所述利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置,包括:利用目标跟踪算法,从图像传感器生成的原始图像中确定多个目标对象的位置;

所述对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像,包括:对所述原始图像的选中目标图像进行聚焦变换,并显示变换后的选中目标图像;或者,对所述原始图像中的目标图像进行聚焦变换,并显示变换后的选中目标图像;

其中,所述选中目标图像为所述多个目标对象对应的目标图像中,包含有被选中的目标对象的目标图像。

15.根据权利要求1‑14中任一项所述的自动聚焦方法,其特征在于,所述方法还包括:保存显示屏上所显示的图像作为拍照结果或者录制的视频帧;其中,所述显示屏上所显示的图像中包括所述变换后的目标图像。

16.一种自动聚焦装置,其特征在于,包括:

目标跟踪模块,用于利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置;

聚焦变换模块,用于对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像;其中,所述目标图像为所述原始图像的局部图像,该局部图像中包含所述目标对象,所述聚焦变换为能够凸显出所述目标图像的仿射变换。

17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1‑15中任一项所述的方法。

18.一种电子设备,其特征在于,包括:

存储器,用于存储计算机程序指令;

处理器,用于读取并运行所述计算机程序指令,以执行权利要求1‑15中任一项所述的方法。

19.根据权利要求18所述的电子设备,其特征在于,所述设备还包括:摄像头,所述摄像头包括镜头以及图像传感器,所述图像传感器用于基于透过所述镜头的光线生成原始图像;

显示屏,用于显示变换后的目标图像。

说明书 :

自动聚焦方法及装置、存储介质及电子设备

技术领域

[0001] 本发明涉及计算机视觉技术领域,具体而言,涉及一种自动聚焦方法及装置、存储介质及电子设备。

背景技术

[0002] 用户在利用智能手机进行拍照(或录像)时,经常会通过滑动屏幕或者双指缩放屏幕等操作,对相机预览界面中的图像进行放大,以便更仔细地观察画面中感兴趣的目标对象(例如,人物、动物、风景等)。然而,放大屏幕内容的操作等效于缩小了摄像头的视场角(Field of View,简称FOV),这使得手机的轻微抖动或者物体的小幅运动都更容易导致目标对象离开屏幕的显示范围,这之后用户必须通过反复调整手机的位置才能再次在屏幕中捕捉到目标对象。
[0003] 目前,不少摄像头已经具备“光学防抖(Optical Image Stabilization,简称OIS)”或“电子防抖(Electric Image Stabilization,简称EIS)”的功能,但这些功能也只是能够降低手机屏幕内容的抖动感,目标对象容易离开屏幕的显示范围这一问题并未得到实质性地改善,从而用户很难长时间地将目标物体锁定在屏幕中进行观察,不利于其对目标物体进行拍照(或录像)。

发明内容

[0004] 本申请实施例的目的在于提供一种自动聚焦方法及装置、存储介质及电子设备,以改善上述技术问题。
[0005] 为实现上述目的,本申请提供如下技术方案:
[0006] 第一方面,本申请实施例提供一种自动聚焦方法,包括:利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置;对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像;其中,所述目标图像为所述原始图像的局部图像,该局部图像中包含所述目标对象,所述聚焦变换为能够凸显出所述目标图像的仿射变换。
[0007] 上述方法首先利用目标跟踪算法自动从摄像头获取的原始图像中找到目标对象的位置,然后通过聚焦变换(例如,放大)自动将包含目标对象的目标图像以显著的方式进行呈现,从而使用户的注意力能够集中到目标对象上,即实现了目标对象的自动聚焦。
[0008] 换句话说,只要目标对象还处于原始图像的范围内(该范围不小于屏幕的显示范围,特别是在用户放大屏幕画面观察时,该范围必然大于屏幕的显示范围),该方法都可以自动锁定其位置并对将其在屏幕上进行显著性地显示,因此该方法有效改善了目标对象容易离开屏幕的显示范围、从而难以被用户持续观察(或拍摄)的问题,有利于用户高效地拍摄高质量的照片(或录制高质量的视频),改善其拍照(或录像)体验。
[0009] 并且,该方法所实现的自动聚焦并不需要摄像头本身具备目标跟踪功能(例如,通过云台控制摄像头跟随目标对象转动),即只采用普通的固定摄像头、利用摄像头的图像传感器进行成像即可,因此还有利于降低实施成本,拓宽方案的应用场景。
[0010] 在第一方面的一种实现方式中,所述目标图像通过对所述目标对象在所述原始图像中占据的区域进行扩展后得到。
[0011] 可以直接将目标对象在原始图像中占据的区域作为目标图像,但在这样得到的目标图像中,前景(目标对象)所占比例过大,背景所占比例过小,难以体现目标对象所处的环境,也不符合一般用户的观察习惯。因此,在上述实现方式中,会将目标对象在原始图像中占据的区域进行适当扩展后作为目标图像。
[0012] 在第一方面的一种实现方式中,所述聚焦变换包括放大和/或平移。
[0013] 放大操作可以使用户更清楚地观察(或拍摄)到目标对象的细节(特别是切换摄像头后更是如此),因此属于一种聚焦变换。这里的平移操作是指将目标图像移动至某个更适于用户观察的位置(如屏幕中心),因此也属于一种聚焦变换。当然,这两种操作也可以结合起来,例如,一方面将目标图像移动至屏幕中心,一方面将其放大至填充满或者接近于填充满整个屏幕。
[0014] 在第一方面的一种实现方式中,若所述聚焦变换包括放大,则所述对所述原始图像中的目标图像进行聚焦变换,包括:根据所述原始图像的尺寸以及所述目标图像的尺寸计算预期放大倍数,并根据所述预期放大倍数对所述原始图像中的目标图像进行放大;若所述聚焦变换包括平移,则所述对所述原始图像中的目标图像进行聚焦变换,包括:根据所述原始图像的中心位置以及所述目标对象的中心位置计算预期平移量,并根据所述预期平移量对所述原始图像中的目标图像进行平移。
[0015] 在上述实现方式中,可以先计算一个预期放大倍数和/或预期平移量,然后按照该预期放大倍数和/或预期平移量对目标图像进行放大和/或平移,以实现对目标图像有针对性地放大和/或平移。预期放大倍数和/或预期平移量可以视为当前所估计出的、目标图像的理想放大倍数和理想平移量。
[0016] 例如,预期放大倍数可以为原始图像的尺寸除以目标图像的尺寸,即将预期放大至原始图像大小,由于原始图像在显示时会尽可能地填充满整个屏幕,所以按此预期放大倍数放大后的目标图像在显示时也将尽可能地填充满整个屏幕,有利于用户观察(或拍摄)目标对象。例如,预期平移量可以是原始图像的中心位置减去目标对象的中心位置(结果是一个向量),由于原始图像在显示时图像中心一般也位于屏幕中心,所以按此预期平移量平移后的目标图像在显示时图像中心一般也位于屏幕中心,有利于用户观察(或拍摄)目标对象。
[0017] 在第一方面的一种实现方式中,所述根据所述原始图像的尺寸以及所述目标图像的尺寸计算预期放大倍数,并根据所述预期放大倍数对所述目标图像进行放大,包括:根据当前帧原始图像的尺寸以及所述当前帧原始图像中的目标图像的尺寸计算所述预期放大倍数;根据所述预期放大倍数以及上一帧放大倍数计算当前帧放大倍数,并根据所述当前帧放大倍数对当前帧原始图像中的目标图像进行放大;其中,所述上一帧放大倍数为对上一帧原始图像中的目标图像进行放大的倍数,所述当前帧放大倍数位于所述上一帧放大倍数与所述预期放大倍数之间;所述根据所述原始图像的中心位置以及所述目标对象的中心位置计算预期平移量,并根据所述预期平移量对所述目标图像进行平移,包括:根据当前帧原始图像的中心位置以及所述当前帧原始图像中的目标对象的中心位置计算所述预期平移量;根据所述预期平移量以及上一帧平移量计算当前帧平移量,并根据所述当前帧平移量对当前帧原始图像中的目标图像进行平移;其中,所述当前帧平移量位于所述上一帧平移量与所述预期平移量之间。
[0018] 可以将当前帧原始图像中的目标图像直接按照预期放大倍数一次性放大到位,也可以将当前帧原始图像中的目标图像直接按照预期平移量一次性平移到位。但这些做法可能导致屏幕内容发生不连贯的变化,严重影响用户的拍照(或录像)体验。因此在上述实现方式中,放大和平移都是逐渐进行的(可称为平滑放大、平滑平移),每一帧原始图像对应的放大倍数和平移量逐渐向预期放大倍数和预期平移量靠拢(当然,在这一过程中预期放大倍数和预期平移量也可能会发生变化),使得屏幕内容的变化是连续的,有利于改善用户的拍照(或录像)体验。
[0019] 在第一方面的一种实现方式中,所述根据所述预期放大倍数以及上一帧放大倍数计算当前帧放大倍数,包括:根据所述预期放大倍数、所述上一帧放大倍数以及剩余放大帧数计算放大倍数增量;其中,所述剩余放大帧数表示:所述当前帧放大倍数要达到所述预期放大倍数还需经历的原始图像帧数;在所述上一帧放大倍数上叠加所述放大倍数增量,得到所述当前帧放大倍数;所述根据所述预期平移量以及上一帧平移量计算当前帧平移量,包括:根据所述预期平移量、所述上一帧平移量以及剩余平移帧数计算平移量增量;其中,所述剩余平移帧数表示:所述当前帧平移量要达到所述预期平移量还需经历的原始图像帧数;在所述上一帧平移量上叠加所述平移量增量,得到所述当前帧平移量。
[0020] 在上述实现方式中,每一帧的放大倍数都通过在上一帧的放大倍数的基础上叠加一个增量获得,从而放大倍数是渐变的,可以实现平滑放大的效果。对于平移,也可类似分析。
[0021] 在第一方面的一种实现方式中,所述图像传感器为摄像头的感光元件,所述摄像头的数量为N个,N≥2,且从第1个摄像头至第N个摄像头视场角依次增大,所述对所述原始图像中的目标图像进行聚焦变换,包括:根据当前摄像头对应的原始图像和/或下一摄像头对应的原始图像判断是否满足从当前摄像头切换至下一摄像头的切换条件;其中,所述当前摄像头为第i个摄像头,1≤i≤N,所述下一摄像头为与所述当前摄像头在视场角大小的排序上相邻的摄像头,摄像头对应的原始图像是指所述摄像头的图像传感器生成的原始图像;若判断结果不满足所述切换条件,则对所述当前摄像头对应的原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换;其中,所述聚焦变换包括放大。
[0022] 在自动聚焦的过程中,可以根据切换条件切换为采用不同的摄像头对应的原始图像进行聚焦变换(切换后聚焦变换的过程不中断),以改善自动聚焦的效果。例如,在可以采用视场角较小的摄像头对应的原始图像进行聚焦变换时,尽可能地采用,除非视场角较小的摄像头对应的原始图像已经无法有效捕捉目标对象时,才使用视场角较大的摄像头对应的原始图像进行聚焦变换。此种设置既能够将尽可能清晰的目标对象呈现给用户,又可以保证在一个比较大的范围内对目标对象进行自动聚焦。
[0023] 在第一方面的一种实现方式中,所述若判断结果不满足所述切换条件,则对所述当前摄像头对应的原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换,包括:若判断结果不满足所述切换条件,则根据所述当前摄像头对应的当前帧变换参数,对所述当前摄像头采集的当前帧原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则根据所述下一摄像头对应的当前帧变换参数,对所述下一摄像头采集的当前帧原始图像中的目标图像进行聚焦变换;其中,所述当前摄像头对应的当前帧变换参数根据所述当前摄像头对应的当前帧原始图像进行计算,所述下一摄像头对应的当前帧变换参数根据所述下一摄像头对应的当前帧原始图像进行计算,所述当前帧变换参数包括当前帧放大倍数,或者,包括当前帧放大倍数和当前帧平移量。
[0024] 存在多个摄像头时,可以在多个摄像头(不一定是全部的摄像头)对应的原始图像中同时进行目标跟踪,并根据跟踪结果计算聚焦变换的相关参数(例如,当前帧放大倍数、当前帧平移量),这样不仅有利于快速判断是否满足切换条件(一些切换条件中可能会使用这些参数),也有利于在发生摄像头切换时,快速基于切换后的参数继续进行聚焦变换。
[0025] 在第一方面的一种实现方式中,若所述当前摄像头的视场角大于所述下一摄像头的视场角,则所述切换条件包括:所述当前摄像头对应的当前帧放大倍数不小于摄像头倍数比值,且所述目标对象的位置未超出所述下一摄像头对应的当前帧原始图像的边界;和/或,若所述当前摄像头的视场角小于所述下一摄像头的视场角,则所述切换条件包括:所述下一摄像头对应的当前帧放大倍数小于摄像头倍数比值,或所述目标对象的位置已超出所述当前摄像头对应的当前帧原始图像的边界;其中,所述摄像头倍数比值为所述当前摄像头的放大倍数与所述下一摄像头的放大倍数的比值。
[0026] 若开始时基于视场角较大的摄像头对应的原始图像进行放大(还可能包括其他聚焦变换),则在当前帧放大倍数已经不小于摄像头倍数比值(视场角较小的摄像头与视场角较大的摄像头的固有放大倍数之比)、并且视场角较小的摄像头对应的原始图像也能够捕捉到目标对象时,就可以切换为视场角较小的摄像头对应的原始图像继续进行放大(还可能包括其他聚焦变换),这样有利于更清晰地显示目标对象的细节。
[0027] 若开始时基于视场角较小的摄像头对应的原始图像进行放大(还可能包括其他聚焦变换),则在当前帧放大倍数已经小于摄像头倍数比值(视场角较小的摄像头与视场角较大的摄像头的固有放大倍数之比)、或者视场角较小的摄像头对应的原始图像不能够捕捉到目标对象时,就可以切换为视场角较大的摄像头对应的原始图像继续进行放大(还可能包括其他聚焦变换),这样虽然降低了目标对象的细节显示,但至少还可以在较大的范围内对目标对象进行自动聚焦。
[0028] 以上两个切换条件都符合上面提到的切换原则:在可以采用视场角较小的摄像头对应的原始图像进行聚焦变换时,尽可能地采用,除非视场角较小的摄像头对应的原始图像已经无法有效捕捉目标对象时(例如,目标对象已经处于图像范围之外或者在图像范围内尺寸过大),才使用视场角较大的摄像头对应的原始图像进行聚焦变换。
[0029] 在第一方面的一种实现方式中,若所述当前摄像头的视场角大于所述下一摄像头的视场角,则根据所述下一摄像头对应的当前帧平移量判断所述目标对象的位置是否超出所述下一摄像头对应的当前帧原始图像的边界;若所述当前摄像头的视场角小于所述下一摄像头的视场角,则根据所述当前摄像头对应的当前帧平移量判断所述目标对象的位置是否超出所述当前摄像头对应的当前帧原始图像的边界。
[0030] 在上述实现方式中,利用当前帧平移量来判断目标对象是否超出原始图像的边界,判断过程简单高效。当然在其他一些实现方式中,可存在其他的判断方法,例如,根据目标对象在原始图像中占据的区域(通过目标跟踪可获得)与原始图像边界之间的关系进行判断。
[0031] 在第一方面的一种实现方式中,所述若判断结果满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换,包括:若当前时刻的判断结果满足所述切换条件,则在之后的一个时间段内继续根据所述当前摄像头对应的原始图像和/或所述下一摄像头对应的原始图像进行切换条件的判断,若在该时间段内得到的判断结果均满足所述切换条件,则对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换。
[0032] 上述实现方式提出了两种摄像头切换方案,一种是满足切换条件立即进行摄像头切换,一种是满足切换条件后还要等上一段时间才进行摄像头切换。前一种方案逻辑比较简单,切换效率较高,后一种方案逻辑稍复杂,但有利于避免摄像头频繁切换的问题(例如,目标对象在视场角较小的摄像头对应的原始图像边界处来回移动)。
[0033] 在第一方面的一种实现方式中,在所述利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置之前,所述方法还包括:将初始图像中检测出的感兴趣对象确定为所述目标对象,或者,根据针对初始图像的目标选择操作确定所述目标对象;其中,所述初始图像为所述目标跟踪算法所处理的首帧原始图像。
[0034] 在上述实现方式中,可以通过算法自动从初始图像中确定目标对象的,这样操作可以简化用户行为;也可以通过人工选择从初始图像中确定目标对象,这样操作具有较高的灵活性。提供多样化的选定目标对象的方式有利于充分满足用户观察(或拍摄)不同目标对象的需求。
[0035] 在第一方面的一种实现方式中,所述根据针对初始图像的目标选择操作确定所述目标对象,包括:根据针对所述初始图像的区域圈定操作,将被圈定区域内的感兴趣对象确定为所述目标对象;或者,根据针对所述初始图像的对焦点选择操作,将包含对焦点的感兴趣对象确定为所述目标对象。
[0036] 在上述实现方式中,用户既可以通过选择一个初始图像中的区域来确定目标对象,也可以通过选择初始图像中的点来确定目标对象,其操作方式灵活,有利于充分满足用户观察(或拍摄)不同目标对象的需求。
[0037] 在第一方面的一种实现方式中,所述利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置,包括:利用目标跟踪算法,从图像传感器生成的原始图像中确定多个目标对象的位置;所述对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像,包括:对所述原始图像的选中目标图像进行聚焦变换,并显示变换后的选中目标图像;或者,对所述原始图像中的目标图像进行聚焦变换,并显示变换后的选中目标图像;其中,所述选中目标图像为所述多个目标对象对应的目标图像中,包含有被选中的目标对象的目标图像。
[0038] 在上述实现方式中,会同时跟踪原始图像中的多个目标对象,但只对用户选中的目标对象进行聚焦变换并显示,或者,对所有的目标对象都进行聚焦变换,但只显示用户选中的目标对象,从而,实现了对多目标自动聚焦的支持。
[0039] 其中,用户选中目标对象的时机非常灵活,可以是在目标跟踪开始之前就进行选择,也可以是在目标跟踪开始之后才进行选择,或者同时包括这两种情况。特别地,用户还可以动态地更改被选中的目标对象,例如,用户开始选择了目标对象X进行自动聚焦,后续可以重新选择目标对象Y进行自动聚焦,变更后可以不再对X进行自动聚焦,或者虽然继续对X进行自动聚焦,但不在屏幕上显示X的自动聚焦结果(改为显示Y的自动聚焦结果)。
[0040] 在第一方面的一种实现方式中,所述方法还包括:保存显示屏上所显示的图像作为拍照结果或者录制的视频帧;其中,所述显示屏上所显示的图像中包括所述变换后的目标图像。
[0041] 在采用自动聚焦后,显示屏上所显示图像总是包括变换后的目标图像(例如,总是将目标对象放大并居中显示),从而将其作为拍照或者视频录制结果,能够使得照片(或视频)总是聚焦于拍摄场景中重要的目标,从而有利于改善照片(或视频)的质量。
[0042] 第二方面,本申请实施例提供一种自动聚焦装置,包括:目标跟踪模块,用于利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置;聚焦变换模块,用于对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像;其中,所述目标图像为所述原始图像的局部图像,该局部图像中包含所述目标对象,所述聚焦变换为能够凸显出所述目标图像的仿射变换。
[0043] 第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
[0044] 第四方面,本申请实施例提供一种电子设备,包括:存储器,用于存储计算机程序指令;处理器,用于读取并运行所述计算机程序指令,以执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
[0045] 在第四方面的一种实现方式中,所述设备还包括:摄像头,所述摄像头包括镜头以及图像传感器,所述图像传感器用于基于透过所述镜头的光线生成原始图像;显示屏,用于显示变换后的目标图像。

附图说明

[0046] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0047] 图1示出了本申请实施例提供的电子设备的一种可能的结构;
[0048] 图2示出了本申请实施例提供的自动聚焦方法的一种可能的流程;
[0049] 图3示出了本申请实施例提供的自动聚焦方法的基本原理;
[0050] 图4(A)和图4(B)示出了判断摄像头切换条件的一种场景;
[0051] 图5示出了切换自动聚焦对象的一种方式;
[0052] 图6示出了本申请实施例提供的自动聚焦装置的一种可能的结构。

具体实施方式

[0053] 近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(Artificial Intelligence,简称AI)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(Simultaneous Localization And Mapping,简称SLAM)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
[0054] 本申请实施例中的方案也属于计算机视觉技术的范畴,下面将结合本申请实施例中的附图,对这些技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0055] 术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0056] 图1示出了本申请实施例提供的电子设备100的一种可能的结构。参照图1,电子设备100包括:处理器110、存储器120以及摄像头130,这些组件通过通信总线150和/或其他形式的连接机构(未示出)互连并相互通讯。
[0057] 其中,处理器110包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器110可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural‑network Processing Unit,简称NPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器110为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
[0058] 存储器120包括一个或多个(图中仅示出一个),其可以但不限于是,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read‑Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read‑Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read‑Only Memory,简称EEPROM)等。
[0059] 处理器110以及其他可能的组件可对存储器120进行访问,读和/或写其中的数据。特别地,在存储器120中可以存储一个或多个计算机程序指令,处理器110可以读取并运行这些计算机程序指令,以实现本申请实施例提供的自动聚焦方法。
[0060] 摄像头130包括一个或多个(图中仅示出一个),用于获取图像。摄像头可以进一步包括镜头和图像传感器(例如,CCD传感器、CMOS传感器等),电子设备100外部的光线透过镜头后在图像传感器上成像,这就是图像的获取过程。拍照、录像以及拍照或录像前的预览都需要进行图像获取。若摄像头130包括多个,则这些摄像头可以具有不同大小的视场角(或者说焦距不同),分别用于执行不同场景下的拍摄任务,并且各摄像头之间可以进行切换。另外,不同的摄像头镜头是独立的,但图像传感器可能是独立的,也可能是共享的,但在后文中主要以图像传感器是独立的情况为例,简单理解就是一个摄像头对应一个图像传感器。摄像头130可以是黑白摄像头、彩色摄像头、红外摄像头等。
[0061] 显示屏140包括一个或多个(图中仅示出一个),用于显示图像或者其他电子设备100所期望显示的内容。显示屏140可以是,但不限于液晶显示屏(Liquid Crystal Display,简称LCD)、有机发光二极管(Organic Light Emitting Diode,简称OLED)显示屏等。
[0062] 可以理解,图1所示的结构仅为示意,电子设备100还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。例如,电子设备100也可能只包含处理器110和存储器120,摄像头130是独立的图像采集设备,显示屏140也是独立的图像显示设备,并不属于电子设备100的组件,而是通过有线和/或无线的方式与电子设备100连接,以便进行数据交互。
[0063] 进一步的,图1中所示的各组件可以采用硬件、软件或其组合实现。电子设备100可能是实体设备,例如手机、平板电脑、智能穿戴设备、数码相机、数码摄像机、PC机、笔记本电脑等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备100也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。在后文中,主要以电子设备100是手机的情况进行举例。
[0064] 图2示出了本申请实施例提供的自动聚焦方法的一种可能的流程,该方法可以但不限于由一电子设备(例如,图1中的电子设备100)执行。参照图2,该方法包括:
[0065] 步骤S210:利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置。
[0066] 其中,原始图像泛指摄像头的图像传感器生成的、未经本申请提出的自动聚焦方法处理过的图像,但并不代表图像一定是未经过任何处理的(例如,亮度调整、降噪等)。目标对象具体是何种物体本申请并不限定,例如,可以是人脸、整个人体、动植物、车辆、风景等。原始图像中的目标对象可能有一个或多个,后文主要以一个目标对象的情况为例,多个目标对象的情况也会适当阐述。
[0067] 用于获取原始图像的摄像头可以采用定焦镜头,也可以是变焦镜头。后文主要以定焦镜头为例,因为在手机等移动设备上,由于摄像头体积所限,所以一般难以设置复杂的光学变焦结构,只能采用定焦镜头结合数字变焦的方案。定焦镜头自身无法通过镜片调整对画面进行放大,但数字变焦技术可以通过上采样算法对原始图像的局部区域进行放大,然后将放大后的局部区域显示在屏幕上,从而达到和光学变焦(放大)类似的效果。
[0068] 需要指出,并非只有在用户下达了拍照或录像指令之后,摄像头的图像传感器才会生成原始图像,而是只要摄像头处于开启状态,就可以生成原始图像,例如,用户开启了相机APP后,会显示预览画面,这些预览画面也来源于图像传感器生成的原始图像。
[0069] 另外,在介绍图1时已经指出,电子设备的摄像头可能有多个,本申请实施例中的自动聚焦方法既可以应用于单个摄像头的场景,也可以应用于多个摄像头的场景,下面在阐述时,先以单个摄像头的情况为例,说明自动聚焦的基本原理,再将方案推广到多个摄像头的情况。
[0070] 目标跟踪算法是指一种能够对图像帧序列中的特定物体进行跟踪的算法,该算法多以图像帧序列为输入,输出特定物体在每帧图像中的位置。目标跟踪算法包括传统算法(例如,粒子滤波算法、卡尔曼滤波算法、光流算法)、基于机器学习或深度学习的算法(例如,TLD算法、DeepSRDCF算法、Adaboost算法),等等,本申请的方案中不限定目标跟踪算法的类型。在步骤S210中,上述图像帧序列即原始图像的序列,上述特定物体即目标对象。
[0071] 目标跟踪算法的实现方式很多,一些目标跟踪算法能够从原始图像中自动检测出目标对象的位置并进行跟踪,另一些目标跟踪算法则不能自动检测目标对象,因此在算法刚开始执行时必须向其输入原始图像(称为初始图像,即算法处理的首帧原始图像)以及该原始图像中目标对象的位置(称为初始位置),目标跟踪算法将以此初始位置为出发点对目标对象进行跟踪,从而后续则只需要向目标跟踪算法输入原始图像即可,无需再输入目标对象的位置。
[0072] 考虑需要提供初始位置的目标跟踪算法,目标对象的初始位置可以但不限于采用以下形式之一进行描述:
[0073] 1、初始图像中的图像块,该图像块中包含了目标对象:例如,该图像块可以是矩形块。
[0074] 2、初始图像中的坐标:例如,矩形的四个顶点坐标;又例如,矩形的左上角顶点坐标结合矩形的宽和高。
[0075] 3、掩膜图像:例如,一张二值图像,像素值取0或255,取值为255的像素构成的集合对应目标对象在初始图像中的位置。
[0076] 需要指出,由于目标对象是通过其位置进行标识的,一个对象如果其位置尚不清楚,那么该对象具体指代画面中的哪个物体也是不清楚的。所以,确定目标对象的初始位置也等价于确定了目标跟踪算法所要进行跟踪的对象,或者从方案总体来看,也等价于确定了自动聚焦方法所要聚焦的对象,在后文中,为阐述方便,不再专门区分确定目标对象的初始位置和确定目标对象这两种说法。
[0077] 在初始图像中确定目标对象,可以但不限于采用以下方式之一:
[0078] 方式(1):将初始图像中检测出的感兴趣对象确定为目标对象。
[0079] 例如,利用预先训练好的神经网络模型自动检测初始图像中的人脸(感兴趣对象),将得到的人脸作为目标对象。如果初始图像中有多个人脸,则被检测到的人脸也可能有多个,此时可以根据某种规则自动选择出其中一个人脸作为目标对象。比如,该规则可以是:尺寸最大的人脸、位置最居中的人脸、拍摄角度最佳的人脸等。当然,也可以把选择权交给用户,例如将所有检测到的人脸都在显示屏上显示出来,由用户通过触摸显示屏或者点击按钮(虚拟的或实体的)等方式选择出一个人脸,将该人脸作为目标对象。
[0080] 进一步的,如果可选方案支持设置多个目标对象,则上面的例子中也可能选择出多个人脸作为目标对象。
[0081] 方式(2):根据针对初始图像的目标选择操作确定目标对象。
[0082] 方式(1)中虽然也可能存在人工介入,但主要是依靠算法自动从初始图像中确定目标对象,从而可以在一定程度上简化用户的操作。但算法所选出的目标对象并不一定是用户真正关注的对象,例如,用户关注的是画面中一个较小的人脸,但算法选出的目标对象却是画面中最大的人脸。方式(2)将目标对象的选择权交还给用户,根据用户选择目标对象的操作(称为目标选择操作)来确定目标对象,使得目标对象在选择上更具灵活性,有利于充分满足用户观察不同目标对象的需求。下面列举两种情况:
[0083] 情况(2.1):用户从初始图像中圈定一个区域,将该区域中的感兴趣对象作为目标对象。
[0084] 此处的“圈定”可视为目标选择操作的一种。例如,对于显示屏是触摸屏、感兴趣对象是人脸的情况,用户可以通过手指在屏幕上绘制一个矩形框,直接将该矩形框作为人脸的初始位置,此时相当于默认了用户绘制的矩形框中存在人脸。又例如,用户在屏幕上绘制的矩形框仅表示人脸位于该矩形框之中,此时可以利用算法进一步从该矩形框之中检测人脸,并将检测到的人脸作为目标对象。又例如,也可以利用算法事先检测出初始图像中的全部人脸,然后根据用户绘制的矩形框,将位于矩形框之内的人脸作为用户选择的目标对象。
[0085] 情况(2.2):用户从初始图像中选择对焦点,将包含该对焦点的感兴趣对象确定为目标对象。
[0086] 此处的“选择对焦点”可视为目标选择操作的一种。例如,对于显示屏是触摸屏的情况,用户通过手指点击屏幕上的某处,就相当于将点击处确定为对焦点。例如,对于显示屏是触摸屏、感兴趣对象是人脸的情况,可以将以对焦点为中心的一个预设大小的矩形框作为人脸的初始位置,此时相当于默认了该矩形框中存在人脸;又例如,可将初始图像中包含该对焦点的人脸作为目标对象。初始图像中的人脸可以在确定对焦点之前由算法检测,或者也可以在确定了对焦点之后,再利用算法从对焦点周围的区域中进行检测。
[0087] 可以理解,目标选择操作不限于以上两种,并且根据情况(2.1)和(2.2)可知,即使针对同一种目标选择操作,确定目标对象也存在不同的方式,其灵活性非常大。
[0088] 进一步的,如果可选方案支持设置多个目标对象,每个目标对象都可以通过上述方式中的一种进行选择,并且不排除不同的目标对象会采用不同的选择方式。
[0089] 步骤S210的执行时刻可以是目标跟踪算法开始执行之后的任意一个时刻,将该时刻或者该时刻之前图像传感器生成的原始图像输入给目标跟踪算法,目标跟踪算法输出原始图像中目标对象的位置,例如,输出一个矩形框。其中,目标对象的初始位置可能不是目标跟踪算法输出的,如前所述。
[0090] 步骤S220:对原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像。
[0091] 目标图像是原始图像的局部图像(例如,原始图像中的一个矩形区域,该矩形区域的棉结小于原始图像的面积),该局部图像中包含步骤S210中通过跟踪得到的目标对象,关于目标图像的选择稍后再进行阐述。聚焦变换泛指能够凸显出目标图像的某种仿射变换,仿射变换在数学上可以定义为对向量空间进行的一次线性变换接一次平移变换,仿射变换可以通过一系列原子变换(或原子变换的组合)来实现,这些原子变换包括缩放(Scale)、平移(Translation)、翻转(Flip)、旋转(Rotation)以及剪切(Shear)。变换后的目标图像可以在显示屏上进行显示,例如,对于手机而言,可以在相机APP的预览界面中进行显示。
[0092] 聚焦变换定义中的所谓“凸显”,可以理解为相较于变换前,变换后的目标图像的显示方式更加显著,从而使用户的注意力能够更加集中到目标对象上,即实现了目标对象的聚焦,而这一聚焦过程是自动进行的,所以也称自动聚焦。例如,聚焦变换具体可以包括放大和/或平移。按照上面对“凸显”的定义,放大操作可以使用户更清楚地观察到目标对象的细节,因此属于一种聚焦变换;平移操作并不是指随意地移动目标图像,而是指将目标图像移动至某个更适于用户观察的位置(如屏幕中心),因此也属于一种聚焦变换。根据前文的阐述,单个定焦镜头无法通过镜片调整对画面进行放大,因此聚焦变换中对目标图像的放大利用了数字变焦技术。
[0093] 聚焦变换可能会涉及变换参数,例如,放大倍数(包括后文提到的预期放大倍数、当前帧放大倍数等)、平移量(包括后文提到的预期平移量、当前帧平移量等)。
[0094] 需要指出,聚焦变换虽然可视为针对目标图像的变换,但并不代表聚焦变换仅针对目标图像进行操作。例如,对于聚焦变换包括放大和平移的情况,并不一定会从原始图像中截取出目标图像进行放大和平移(虽然这也是可行的),也可能是对原始图像整体进行放大和平移,从而“顺便”放大并平移了目标图像,后文还会给出相关的例子。
[0095] 上面只提到了变换后的目标图像可在屏幕上进行显示,但并不是说屏幕上一定只显示目标图像。例如,目标图像进行了一定程度的放大,但还不足以填充满整个屏幕,则位于目标图像外层的部分原始图像也可以在屏幕上显示(这部分原始图像也可能会随目标图像一起进行聚焦变换),而当目标图像放大至填充满整个屏幕之后,则可以只在屏幕先显示放大后的目标图像。当然,只在屏幕上显示目标图像,其余位置进行填充显示(例如,显示黑色)也是可能的。
[0096] 此外,原始图像自身是否要在屏幕上显示是可选的:例如,可以在相机APP开启时先显示原始图像,之后不再显示完整的原始图像,改为显示变换后的目标图像(当然,如上所述,也可能继续显示除目标图像外的部分原始图像);又例如,在相机APP开启后就直接显示变换后的目标图像,不显示原始图像;又例如,在相机APP开启后原始图像总会进行显示,放大后的目标图像则单独以一个小窗口的形式在屏幕中显示,等等。
[0097] 关于目标图像的显示,还有一点需要说明,本申请的方案并不关注显示屏的分辨率,即目标图像的分辨率可能小于、等于或者大于显示屏的分辨率,在显示变换后的目标图像时,根据显示屏的分辨率进行适配即可。
[0098] 为说明自动聚焦方法的效果,不妨考虑一个时间段内的情况,在该时间段内摄像头的图像传感器生成了多帧原始图像,首先对每帧原始图像都执行目标跟踪算法,得到目标对象在每帧原始图像中的位置,然后对每帧原始图像中包含目标对象的目标图像进行聚焦变换,最后对得到的每帧变换后的目标图像进行显示。从而,只要目标对象还处于摄像头的拍摄范围以内(即还在原始图像中)并且目标跟踪算法正常工作,无论是目标自身发生了运动还是用户的手出现了抖动,都不影响目标跟踪算法持续地锁定目标对象的位置,并通过聚焦变换在显示屏上持续地对目标图像进行凸显。从而,该方法显著改善了目标对象容易离开屏幕的显示范围、导致难以被用户持续观察(或拍摄)的问题,有利于用户高效地拍摄高质量的照片(或录制高质量的视频),提高其拍照(或录像)体验。参照图3,图3的上半部分是原始图像,其中的人体为目标对象,目标图像为原始图像中包括目标对象的一个矩形区域,在原始图像中,目标图像的尺寸较小而且也不在中心位置,因此若在屏幕上直接显示原始图像并不利于用户观察(或拍摄)目标对象的细节。图3的下半部分是聚焦变换后的目标图像,可见,目标图像经过了放大后人体的细节变得清晰、位置也居于正中,从而显示在屏幕上有利于用户观察(或拍摄)目标对象的细节。
[0099] 需要注意,上面所说的“高质量的照片”、“高质量的视频”并不是指采用自动聚焦后照片(或视频)的清晰度、亮度、颜色等属性一定有显著的提升,而是指在采用自动聚焦后,显示屏画面总是聚焦到目标对象上(例如,总是将目标对象放大并居中显示),从而用户可以在比较好的角度对目标对象进行拍照(或录像),从而获得内容更有价值的照片(或视频)。
[0100] 该自动聚焦方法执行的时机比较自由。仍以聚焦变换包括放大和平移的情况为例,该自动聚焦方法可以应用于用户开始拍照或录像之前,目标图像会被持续地从原始图像中的原始位置移动至屏幕中心、并放大至填充满或者接近于填充满整个屏幕的状态呈现给用户进行预览,从而用户可以持续地在合适的位置观察目标对象的细节,以便在恰当的时机拍摄目标对象,从而获得高质量的照片(或视频);该自动聚焦方法也可以应用于用户开始录像之后,目标图像会被持续地从原始图像中的原始位置移动至屏幕中心、并放大至填充满或者接近于填充满整个屏幕的状态进行录制,从而用户拍摄的视频中目标对象总是处于合适的位置,并展现出丰富的细节,这样的视频质量较高。此外,上述自动聚焦方法还有一个优点,即该方法所实现的自动聚焦是在摄像头拍摄范围内的自动聚焦,并不需要摄像头本身具备目标跟踪能力(例如,通过云台控制摄像头跟随目标对象转动,手机摄像头普遍不具备这种能力),即只采用普通的固定摄像头即可,因此该方法的实施成本较低,应用场景丰富。
[0101] 应当理解,该自动聚焦方法的实施与用户并无必然关系,上面提及的场景中均涉及用户,这只是为了便于理解方案内容,该自动聚焦方法完全可以应用于无需用户介入的自动拍摄场景。
[0102] 在一些实现方式中,还可以保存显示屏上所显示的图像作为拍照结果或者录制的视频帧。如前所述,显示屏上所显示的图像中至少包括变换后的目标图像,但也可能包括其余内容,例如目标图像外围的部分原始图像。若将显示屏上所显示的图像作为拍照结果,可以指将该图像作为一张照片;若将显示屏上所显示的图像作为录像结果,可以指将该图像作为一个视频帧,连续若干个这样的视频帧将形成所录制的视频。用户的拍照(或录像)行为通过点击按钮(虚拟或实体的)、语音控制等方式触发,拍照(或录像)既可能发生于自动聚焦开始之前,也可能发生于自动聚焦开始之后。
[0103] 考虑聚焦变换包括放大和平移的情况,例如,用户给跑动的孩子进行录像,上述方法能够始终捕捉孩子被放大且位于图像中心的画面;又例如,用户在火车上给远处的高耸的山峰进行录像,上述方法能够始终捕捉山峰被放大且位于图像中心的画面。显然,这样的视频非常符合用户的期望。作为对比的,在现有技术中,一旦放大画面对孩子进行录像,由于孩子的运动或者用户手抖,导致孩子很容易离开屏幕的显示范围,从而录制到不包含孩子的视频帧;而放大画面对山峰进行录像,由于火车本身的运动或者用户手抖,导致山峰很容易离开屏幕的显示范围,从而录制到不包含山峰的视频帧。
[0104] 下面在以上实施例的基础上,继续介绍步骤S220中目标图像的确定。
[0105] 步骤S210中得到了目标对象在原始图像中的位置,也就是得到了目标对象在原始图像中占据的区域(例如,一个矩形区域),从而在一些实现方式中,可以直接将原始图像中的该区域作为目标图像。但在这样得到的目标图像中,前景(目标对象)所占比例过大,背景所占比例过小,从而难以体现出目标对象所处的环境,也不符合一般用户的观察(或拍摄)习惯。因此,在另一些实现方式中,可以将目标对象在原始图像中占据的区域进行适当扩展后作为目标图像。扩展的方式不作限定,例如,可以将原区域的尺寸(对于矩形区域,尺寸可以理解为边长)乘上预设的比例值(大于1),或者将原区域的尺寸增加若干像素,等等。
[0106] 参照图3,目标对象占据的区域紧贴着人体的边缘,而目标图像则对该区域进行了扩展,纳入了人体附近的部分图像内容。扩展比例view_scale=W2/W3是一个预设值,例如1.2、1.5等,其中,W2和W3分别是目标图像的尺寸和人体区域的尺寸。
[0107] 需要强调,在步骤S220中,最终要得到的是变换后的目标图像,为了得到变换后的目标图像,需要先确定目标图像的位置,但这种“确定”操作并不一定是显式的。还是举一个前文已经提到过的例子,假设需要对目标图像进行放大和平移,一种做法是先从原始图像中截取出目标图像再进行放大和平移,此种做法需要显式地确定目标图像的位置,另一种做法是对原始图像整体进行放大和平移,由于目标图像是原始图像的一部分,所以目标图像也被放大了,此种做法不需要显式地确定目标图像的位置,但可能会基于目标图像的尺寸和中心位置计算放大和平移操作的参数,因此可以认为是隐式地确定了目标图像的位置。关于直接对原始图像进行放大和平移,后文会给出相关的例子。
[0108] 下面在以上实施例的基础上,继续介绍如何对目标图像进行放大以及平移。放大和平移是两类独立的聚焦变换,二者可以单独执行,当然也可以结合在一起使用。
[0109] A.对目标图像进行放大
[0110] 在一些实现方式中,可以先计算预期放大倍数,然后根据预期放大倍数对目标图像进行放大,从而实现有针对性地对目标图像进行放大。预期放大倍数可以视为当前所估计出的、目标图像的理想放大倍数,在该放大倍数下,用户可以比较理想地观察(或拍摄)目标对象的细节。
[0111] 例如,预期放大倍数可以根据原始图像的尺寸以及目标图像的尺寸计算,比如将原始图像的尺寸与目标图像的尺寸的比值作为预期放大倍数(或者在此比值的基础上适当波动),由于原始图像在显示时会尽可能地填充满整个屏幕,所以按此预期放大倍数放大后的目标图像在显示时也将尽可能地填充满整个屏幕,从而有利于用户观察(或拍摄)目标对象。
[0112] 参照图3,预期放大倍数zoom_scale=W1/W2=W1/(view_scale×W3),其中,W1、W2、W3分别是原始图像的尺寸、目标图像的尺寸和人体区域的尺寸,view_scale是前文介绍的扩展比例,view_scale可取预设值,对于特定的图像传感器,W1也是固定值,但W3可能会随时间变化。如果将目标图像放大zoom_scale倍,其尺寸恰好与原始图像相同(假设目标图像的宽高比也和原始图像相同),即填充满了整个屏幕。
[0113] 考虑多帧原始图像的情况,每帧原始图像进行目标跟踪后都可以对应计算出一个预期放大倍数(计算方法如前所述),不妨以当前帧原始图像为例,根据预期放大倍数放大当前帧原始图像中的目标图像存在不同的做法:
[0114] A1:直接按照当前计算出预期放大倍数一次性放大到位,但这种做法可能导致屏幕内容突然放大,严重影响用户的拍照(或录像)体验。例如,用户刚开启了手机上的相机APP,此时显示摄像头刚获取的原始图像,不妨假设放大倍数为1x,根据该原始图像计算出的预期放大倍数为2.5x,按照A1的做法屏幕画面将直接从1x跳变到2.5x,用户会感觉突兀,但方法逻辑简单,计算量很小。
[0115] A2:分多次平滑放大,即根据预期放大倍数(当前帧的)以及上一帧放大倍数计算当前帧放大倍数,并按照当前帧放大倍数对当前帧原始图像中的目标图像进行放大。当前帧放大倍数具体的计算公式不限,但应满足当前帧放大倍数位于上一帧放大倍数与预期放大倍数之间(可以等于预期放大倍数,但不能等于上一帧放大倍数)。从而,经过若干帧的放大后,当前帧放大倍数将逐渐接近于乃至达到预期放大倍数。例如,当前帧放大倍数可以采用如下公式计算:
[0116] cur_frame_scale=pre_frame_scale+(zoom_scale‑pre_frame_scale)/smooth_residual_number
[0117] 公式中的各变量含义如下:
[0118] pre_frame_scale:上一帧放大倍数,即当上一帧原始图像是当前帧时,算出的当前帧放大倍数;
[0119] cur_frame_scale:当前帧放大倍数,若当前帧原始图像是开始自动聚焦后的采集的首帧原始图像,可以不进行放大,例如,用户刚开启了手机上的相机APP,cur_frame_scale可以直接取当前摄像头的固有放大倍数1x;
[0120] zoom_scale:根据当前帧原始图像算出的预期放大倍数,其定义前文已述;
[0121] smooth_residual_number:剩余放大帧数,将目标图像平滑放大zoom_scale倍的遗留帧数。首先需要设定目标图像从初始放大倍数(即第一个算出的cur_frame_scale,例如上面提到的1x)逐渐达到预期放大倍数的总帧数N(N>1),进行第一帧目标图像的放大时smooth_residual_number=N,进行第二帧目标图像的放大时,smooth_residual_number=N‑1,以此类推,直至进行最后一帧目标图像的放大时smooth_residual_number=1。
[0122] 可见,上述公式描述的方案实质上是分N次逐渐放大目标对象,直至放大倍数达到zoom_scale倍。需要指出,在这一平滑放大的过程中,zoom_scale的值有可能发生变化(因为W3的值可能会发生变化),使得每一帧放大倍数相对于上一帧放大倍数的变化量并不一定是完全均匀的,但放大过程的平滑性仍然可以保证。
[0123] 其中,△sacle=(zoom_scale‑pre_frame_scale)/smooth_residual_number表示当前帧放大倍数相对于上一帧放大倍数的放大倍数增量,△sacle可以是正数也可以是负数。另外,△sacle的计算方式也不限于上述公式,也可能会根据zoom_scale、pre_frame_scale以及smooth_residual_number,利用其他公式进行计算,例如,在现有计算公式的基础上添加系数,使得△sacle随着smooth_residual_number的增大而逐渐减小。
[0124] 假设zoom_scale保持不变,上述当前帧放大倍数的计算公式实际上就是一个在初始放大倍数和预期放大倍数之间进行线性插值的公式,从而显然地,该公式也可以替换为其他采用非线性插值的公式。
[0125] 例如,用户刚开启了手机上的相机APP,此时显示摄像头刚获取的原始图像,不妨假设放大倍数为1x,根据该原始图像计算出的预期放大倍数为2.5x,假设预期放大倍数保持不变,按照A2的做法屏幕画面可能会从1x变为1.1x,再从1.1x变为1.2x,直至变为2.5x,在用户看来目标图像是逐渐放大的,就如同用户自己在屏幕上手动放大目标对象一样,其体验较好,但做法A2的计算量要大于A1。
[0126] 另外还需要指出,zoom_scale并不一定会大于目标图像的初始放大倍数,也就是说cur_frame_scale也有可能会小于pre_frame_scale(此时△sacle为负数),但这对上述公式的正确性没有影响,此种情况也属于平滑放大,只不过当前帧放大倍数在逐渐缩小而已,最终将缩小到预期放大倍数。此时,相对于原始图像中的目标图像,屏幕上显示的目标图像实际上仍然是放大的,但在用户看来,屏幕上显示的目标图像是逐渐缩小的。
[0127] 例如,在执行自动聚焦后,目标图像已经放大了2.5x,即达到了预期放大倍数,此后目标对象离开了摄像头的拍摄范围、或者因为遮挡无法被跟踪到、或者用户关闭了自动聚焦功能,预期放大倍数无法再按照上面的公式计算,此时可以取一个默认值,例如1x。这时,目标图像的当前帧放大倍数需要从2.5x过渡到1x,可以继续采用A2中的做法(当然也可以采用A1)。
[0128] 又例如,在执行自动聚焦后,目标图像已经放大了2.5x,即达到了预期放大倍数,此后用户拿着手机向目标对象靠近,导致目标对象在原始图像中的尺寸变大(W3增大),从而预期放大倍数的值显著减小,假设减小至1.5x,这时,目标图像的当前帧放大倍数需要从2.5x过渡到1.5x,也可以继续采用A2中的做法(当然也可以采用A1,只是用户的体验差一些)。
[0129] B.对目标图像进行平移
[0130] 在一些实现方式中,可以先计算预期平移量,然后根据预期平移量对目标图像进行平移,从而实现有针对性地对目标图像进行平移。预期平移量可以视为当前所估计出的、目标图像的理想平移量,利用该平移量平移目标图像后,用户可以在比较理想的位置观察(或拍摄)目标对象。
[0131] 例如,预期平移量可以根据原始图像的中心位置以及目标对象的中心位置(也可以视为目标图像的中心位置)计算,比如将原始图像的中心位置与目标对象的中心位置的差值作为预期平移量(或者在此差值的基础上适当波动),预期平移量可以是一个二维向量(x方向和y方向)。由于原始图像在显示时图像中心一般位于屏幕中心,所以按此预期平移量平移后的目标图像在显示时图像中心也将位于屏幕中心,从而有利于用户观察(或拍摄)目标对象。
[0132] 参照图3,预期平移量shift=P2‑P 1(包含x方向和y方向上的相减),其中,P 1和P 2分别是目标对象的中心位置和原始图像的中心位置,P 2可以认为是固定值,但P1可能会随时间变化。如果将目标图像平移shift,其中心变得和原始图像的中心重合,显示后将位于屏幕正中。
[0133] 考虑多帧原始图像的情况,每帧原始图像进行目标跟踪后都可以对应计算出一个预期平移量(计算方法如前所述),不妨以当前帧原始图像为例,根据预期平移量平移当前帧原始图像中的目标图像存在不同的做法:
[0134] B1:直接按照当前计算出预期平移量一次性平移到位,但这种做法可能导致屏幕内容突然移动,严重影响用户的拍照(或录像)体验。例如,用户刚开启了手机上的相机APP,此时显示摄像头刚获取的原始图像,根据该原始图像计算出的预期平移量为(100,‑80),按照B1的做法屏幕画面将直接移动(100,‑80),用户会感觉突兀,但方法逻辑简单,计算量很小。
[0135] B2:分多次平滑平移,即根据预期平移量(当前帧的)以及上一帧平移量计算当前帧平移量,并按照当前帧平移量对当前帧原始图像中的目标图像进行平移。当前帧平移量具体的计算公式不限,但应满足当前帧平移量位于上一帧平移量与预期平移量之间(可以等于预期平移量)。从而,经过若干帧的平移后,当前帧平移量将逐渐接近于乃至达到预期平移量。
[0136] 例如,当前帧平移量可以采用如下公式计算:
[0137] cur_frame_shift=pre_frame_shift+(shift‑pre_frame_shift)/smooth_residual_number
[0138] 公式中的各变量含义如下:
[0139] pre_frame_shift:上一帧平移量,即当上一帧原始图像是当前帧时,算出的当前帧平移量;
[0140] cur_frame_shift:当前帧平移量,若当前帧原始图像是开始自动聚焦后的采集的首帧原始图像,可以不进行平移,例如,用户刚开启了手机上的相机APP,cur_frame_shift可以直接取(0,0);
[0141] shift:根据当前帧原始图像算出的预期平移量,其定义前文已述;
[0142] smooth_residual_number:剩余平移帧数,将目标图像平滑平移shift的遗留帧数。首先需要设定目标图像从初始平移量(即第一个算出的cur_frame_shift,例如上面提到的(0,0))逐渐达到预期平移量的总帧数N(N>1),进行第一帧目标图像的平移时smooth_residual_number=N,进行第二帧目标图像的平移时,smooth_residual_number=N‑1,以此类推,直至进行最后一帧目标图像的平移时smooth_residual_number=1。
[0143] 可见,上述公式描述的方案实质上是分N次逐渐平移目标对象,直至平移量达到shift。需要指出,在这一平滑平移的过程中,shift的值有可能发生变化(因为P1的值可能会发生变化),使得每一帧平移量相对于上一帧平移量的变化量并不一定是完全均匀的,但平移过程的平滑性仍然可以保证。
[0144] 其中,△shift=(shift‑pre_frame_shift)/smooth_residual_number表示当前帧平移量相对于上一帧平移量的平移量增量。△sacle的计算方式也不限于上述公式,也可能会根据shift、pre_frame_shift以及smooth_residual_number,利用其他公式进行计算,例如,在现有计算公式的基础上添加系数,使得△shift随着smooth_residual_number的增大而逐渐减小。
[0145] 假设shift保持不变,上述当前帧平移量的计算公式实际上就是一个在初始平移量和预期平移量之间进行线性插值的公式,从而显然地,该公式也可以替换为其他采用非线性插值的公式。
[0146] 例如,用户刚开启了手机上的相机APP,此时显示摄像头刚获取的原始图像,根据该原始图像计算出的预期平移量为(100,‑80),假设预期平移量保持不变,按照B2的做法目标图像的平移量可能会从(0,0)变为(10,‑8),再从(10,‑8)变为(20,‑16),直至变为(100,‑80),在用户看来目标图像是逐渐平移的,就如同用户自己平移手机使得目标对象位于屏幕中心一样,其体验较好,但做法B2的计算量要大于B1。
[0147] 另外还需要指出,shift的并不一定会大于目标图像的初始平移量(平移量的大小可以理解为向量的大小),也就是说cur_frame_shift也有可能会小于pre_frame_shift,但这对上述公式的正确性没有影响,此种情况也属于平滑平移,只不过当前帧平移量在逐渐缩小而已,最终将缩小到预期平移量。平移量缩小意味着目标图像回归其在原始图像中的位置,而不再位于适合用户观察的位置,因此此时的平移操作严格来说已经不属于聚焦变换的范畴。
[0148] 例如,在执行自动聚焦后,目标图像已经平移了(100,‑80),即达到了预期平移量,此后目标对象离开了摄像头的拍摄范围、或者因为遮挡无法被跟踪到、或者用户关闭了自动聚焦功能,预期平移量无法再按照上面的公式计算,此时可以取一个默认值,例如(0,0)。这时,目标图像的当前帧平移量需要从(100,‑80)过渡到(0,0),可以继续采用B2中的做法(当然也可以采用B1)。
[0149] 又例如,在执行自动聚焦后,目标图像已经平移了(100,‑80),即达到了预期平移量,此后用户调整手机位置使目标对象向屏幕中心移动,导致目标对象在原始图像中的位置变化(P1接近于P2),从而预期平移量的值显著减小,假设减小至(20,‑5),这时,目标图像的当前帧平移量需要从(100,‑80)过渡到(20,‑5),也可以继续采用B2中的做法(当然也可以采用B1)。
[0150] 以A2和B2中的公式为例,考虑聚焦变换同时包括放大和平移的情况,即需要对当前帧原始图像中的目标图像放大cur_frame_scale倍并平移cur_frame_shift,这一过程可以通过矩阵运算实现:
[0151] 首先,构造一个3×3的变换矩阵:
[0152]
[0153] 其中,s即cur_frame_scale,(cx,cy)即cur_frame_shift(分别是x方向和y方向的平移量)。
[0154] 然后,对原始图像进行以下矩阵运算:
[0155]
[0156] 其中,Iinput表示原始图像,(x,y)表示原始图像中的坐标, 表示Iinput在(x,y)处的像素值,Ioutput表示变换后的原始图像,(x’,y’)表示变换后的原始图像中的坐标, 表示Ioutput在(x’,y’)处的像素值。若(x’,y’)超出了原始图像的范围,则将其丢弃。
[0157] 在丢弃了一些像素值后,Ioutput中像素值的数量将少于Iinput中像素值的数量,可以通过上采样填充这些缺少的像素值,得到最终要进行显示的图像Ifinal,Ifinal中包含变换后的目标图像。
[0158] 正如前文所阐述的,利用矩阵运算对目标图像进行放大和平移,并不需要显式地确定目标图像的位置,只需要根据目标图像的尺寸(view_scale×W3)和位置(P1)计算放大和平移操作的参数(s、cx、cy)即可,可以认为只是隐式地确定了目标图像的位置。
[0159] 另外,利用矩阵运算直接对原始图像进行放大和平移还有一个好处:目标对象在放大倍数尚未达到预期放大倍数时,并不能有效填充整个屏幕,因为需要将原始图像中位于目标图像外围的部分也和目标图像一起放大并显示,以填充满整个屏幕(当然,只在屏幕中显示目标图像也是可行的,但用户观感可能会差一些)。上述方法在矩阵运算之后,会将超出原始图像范围的像素值丢弃掉,剩余的像素值恰好就是要显示的像素值,其中既包含了目标图像中的像素值,也包含位于目标图像外围但需要显示的像素值。
[0160] 上面提到的放大和平移都是自动进行的,目标对象会被不断地跟踪,并经过放大和平移后呈现给用户。但也不排除在某些实现方式中,用户也可以介入自动聚焦过程,不妨以放大为例进行说明:
[0161] 例如,用户刚开启了手机上的相机APP,此时显示摄像头刚获取到的原始图像,不妨假设放大倍数为1x,根据该原始图像计算出的预期放大倍数为2.5x,目标图像将从1x逐渐放大至2.5x,假设放大至1.5x时,用户认为目标对象已经足够清晰,可以通过触摸显示屏阻断该放大过程,此时预期放大倍数被锁定在1.5x,并基于此预期放大倍数继续进行自动聚焦。或者,也可能关闭自动聚焦功能,即放大倍数维持在1.5x不变,除非用户手动调整。
[0162] 又例如,若目标图像的放大倍数已经达到预期放大倍数2.5x,但用户认为目标对象还不够清晰,可以通过触摸显示屏调整目标图像的放大倍数,假设用户将其放大倍数调整到3.0x,此时预期放大倍数被锁定在3.0x,并基于此预期放大倍数继续进行自动聚焦。或者,也可能关闭自动聚焦功能,即放大倍数维持在3.0x不变,除非用户手动调整。
[0163] 下面在以上实施例的基础上,继续介绍多摄像头情况下的自动聚焦。
[0164] 首先引入光学数字联合变焦的概念,主要以电子设备是手机的情况为例。前文提到的数字变焦虽然能够通过上采样实现图像的局部放大,但却无法弥补图像清晰度的降低,特别是在高变焦倍率的情况下更为明显。为改善这一问题,业界越来越多地在手机上搭载多个视场角不同的摄像头,如一个摄像头FOV=80°(广角镜头,相对意义而言),一个摄像头FOV=40°(长焦镜头,相对意义而言),若两个摄像头的传感器分辨率相同,比如都是1600万像素,那么FOV=40°的摄像头将会呈现出比FOV=80°的摄像头更清晰的图像。
[0165] 不妨假设FOV=80°的摄像头对应放大倍数1x,FOV=40°的摄像头对应放大倍数2x,则光学数字联合变焦的过程大致如下:用户开启相机APP后,预览界面先显示FOV=80°的摄像头获取的图像,此时放大倍数为1x,随着用户对屏幕画面进行放大,只要放大倍数尚未达到2x,屏幕上显示的图像都是对FOV=80°的摄像头所获取的图像进行数字变焦的结果。当放大倍数达到2x时,屏幕上显示FOV=40°的摄像头获取到的图像,此时为光学变焦。
用户继续放大屏幕画面,即放大倍数大于2x,则会基于FOV=40°的摄像头所获取的图像进行数字变焦。放大倍数缩小的情况、有更多摄像头的情况也是类似,不再分析。不难看出,由于多摄像头的联合变焦过程结合了光学变焦和数字变焦,所以可称为“光学数字联合变焦”。
[0166] 相较于单个摄像头的纯数字变焦,光学数字联合变焦在高变焦倍率下会切换为使用焦距更大的摄像头进行成像,特别对于中远景,其成像质量显著高于纯数字变焦。
[0167] 光学数字联合变焦面临的主要问题之一是图像内容的过渡问题,不同的摄像头对场景的拍摄角度、距离都存在差异,并且不同的摄像头所获取到的图像在风格上也存在区别,因此在切换摄像头时,应尽可能保持图像内容不要发生突变,以免给用户突兀之感。
[0168] 当存在多摄像头并支持光学数字联合变焦的情况下,经过发明人长期研究发现,用户更愿意对远景进行放大并预览拍摄内容:例如,给前方跑闹的小朋友进行录像;又例如,拿着手机在音乐厅看远方舞台的表演时;又例如,坐在火车上用手机给远方美丽的景色拍照;又例如,站在雪山脚下想拍摄高处的雪山山顶,等等。然而,如前文所述,在屏幕画面放大后,手机的轻微抖动或者物体的小幅运动都更容易导致目标对象离开屏幕的显示范围,这无疑制约了光学数字联合变焦的推广应用。在下面要介绍的方案中,将本申请提出的自动聚焦方法与多摄像头场景、光学数字联合变焦算法相结合,以升华光学数字联合变焦的表现形式。对于电子设备设置有N(N≥2)个摄像头,且从第1个摄像头至第N个摄像头,其对应的视场角依次增大的情况,此时步骤S220中的原始图像中的目标图像进行聚焦变换可以进一步包括:
[0169] 根据当前摄像头对应的原始图像和/或下一摄像头对应的原始图像判断是否满足从当前摄像头切换至下一摄像头的切换条件;若判断结果不满足切换条件,则对当前摄像头对应的原始图像中的目标图像进行聚焦变换,若判断结果满足切换条件,则对下一摄像头对应的原始图像中的目标图像进行聚焦变换。其中,摄像头对应的原始图像是指摄像头的图像传感器生成的原始图像。
[0170] 考虑到用户的体验,这里只讨论两个摄像头之间进行切换的问题,且这两个摄像头对应的视场角在大小排序上是相邻的。例如,摄像头1的FOV=80°、摄像头2的FOV=40°、摄像头3的FOV=20°,其对应的放大倍数分别是1x、2x、4x。目标图像的初始放大倍数为1x,预期放大倍数为5x,则在自动聚焦的过程中可能会涉及从摄像头1切换为摄像头2,以及从摄像头2切换为摄像头3(在某些情况下切换顺序也有可能倒过来),但不会涉及从摄像1直接切换到摄像头3,因为跨摄像头(跨过了摄像头2)的切换画面会产生突变,造成用户体验下降,当然,计算出预期放大倍数后,直接从摄像头1切换为摄像头3,也不失为一种可能的做法。
[0171] 由于每次摄像头切换都发生在两个相邻的摄像头之间,因此可对这两个摄像头进行命名,分别称为当前摄像头和下一摄像头。当前摄像头是指其对应的图像(包括原始图像或者目标图像)正在屏幕上进行显示的摄像头,下一摄像头是指其对应的图像(包括原始图像或者目标图像)并未在屏幕上进行显示的摄像头,下一摄像头是候选的切换对象,摄像头切换的具体含义就是指屏幕上显示的图像从当前摄像头采集的图像切换为了下一摄像头采集的图像。
[0172] 若当前摄像头是N个摄像头中的第i(1≤i≤N)个摄像头,则下一摄像头存在不同的可能:对于i=1的情况,下一摄像头为第2个摄像头;对于i=N的情况,下一摄像头为第N‑1个摄像头;对于2≤i≤N‑1的情况,下一摄像头为第i‑1个或者第i+1个摄像头。沿用上面三个摄像头的例子,若当前摄像头是摄像头1,则下一摄像头是摄像头2;若当前摄像头是摄像头2,则下一摄像头是摄像头2或摄像头3。
[0173] 在判断是否满足切换条件时,当前摄像头必然处于开启状态,下一摄像头则不一定。理论上下一摄像头可以等到切换条件满足时再开启,以节约功耗。但摄像头的开启也需要时间,等到切换条件满足时再开启摄像头可能会导致显示的画面不连贯,因此下一摄像头可以提前开启,并随时为摄像头切换做好准备。当然,出于节约功耗的考虑,在一些实现方式中,下一摄像头也不必和当前摄像头一同开启,而是在预判到有可能发生切换时再开启,例如,目标图像的当前帧放大倍数达到2x时,可能从摄像头1切换为摄像头2,则在当前帧放大倍数为1x时,还不必开启摄像头2,在当前帧放大倍数增长到1.5x时,才开启摄像头2。
[0174] 后文主要以切换条件满足时,两个摄像头均已开启的情况为例进行阐述。需要指出,一旦当前摄像头和下一摄像头都处于开启状态,应当认为二者在基本同步地获取图像。
[0175] 判断切换条件是否满足这一行为可以发生当前摄像头每采集到一帧原始图像之后,当然也可以每隔若干帧原始图像才判断一次。若目前已经在对当前摄像头对应的原始图像中的目标图像进行聚焦变换,则在判断结果不满足切换条件时,可以继续对该目标图像进行聚焦变换,而在判断结果满足切换条件时,则可以改为对下一摄像头对应的原始图像中的目标图像进行聚焦变换。切换摄像头后,原来的当前摄像头变为下一摄像头,原来的下一摄像头则变为当前摄像头。和切换发生前的情况类似,切换后,原来的当前摄像头也无需关闭(至少是暂时无需关闭),以便为发生逆向的切换做好准备。
[0176] 另外,切换后,原来的当前摄像头是否要继续进行聚焦变换是可选的,虽然原则上来说可以不进行聚焦变换,因为此时不会再显示该摄像头获取的图像,停止聚焦变化可以节约运算量及设备功耗,但也不排除在某些方案中可以继续进行聚焦变换,这样在发生切向切换时,就无需再临时执行聚焦变换。至于当前摄像头对应的原始图像和/或下一摄像头对应的原始图像与切换条件之间的具体关系,后文会给出例子,这里暂不阐述。
[0177] 下面简单分析一下自动聚焦方法支持多摄像头切换的意义:
[0178] 对于存在多个摄像头、且各摄像头的视场角大小不同的情况,假设这些摄像头针对包含同一目标对象的同一场景拍摄,则大FOV摄像头(视场角较大的摄像头,如摄像头1)拍摄范围较大,从而可以在较大的范围内捕捉目标对象,但目标对象在原始图像中尺寸较小,即清晰度较差,而小FOV摄像头(视场角较小的摄像头,如摄像头2)拍摄范围较小,从而只能在较小的范围内捕捉目标对象,但目标对象在原始图像中尺寸较大,即清晰度较高。
[0179] 在自动聚焦的过程中,可以根据切换条件切换为采用不同的摄像头对应的原始图像进行聚焦变换(切换后聚焦变换的过程不终断),以改善自动聚焦的效果。例如,在可以采用小FOV摄像头对应的原始图像进行聚焦变换时,尽可能地采用,除非小FOV摄像头对应的原始图像已经无法有效捕捉目标对象时,才使用大FOV摄像头对应的原始图像进行聚焦变换。此种切换逻辑既能够将尽可能清晰的目标对象呈现给用户,又可以保证在一个比较大的范围内对目标对象持续进行自动聚焦,因为小FOV摄像头的拍摄范围较小,因为手抖或者目标对象运动等原因,目标对象相对容易离开此范围,但大FOV摄像头的拍摄范围较大,目标对象相对不容易离开此范围。
[0180] 根据以上内容可知,光学数字联合变焦算法在结合了自动聚焦后,和原来有些差异,由于显示屏上呈现的一直是变换后的目标图像(通过数字变焦得到),并不是原始图像,所以实际上光学变焦的结果并未直接使用,但变换后的目标图像是基于原始图像得到的,所以光学变焦的结果还是被间接地使用了。
[0181] 前文已经提到,聚焦变换可能涉及一些变换参数,例如,当前帧放大倍数、当前帧平移量等,不同的摄像头所计算出的变换参数是不同的,有的变换参数还可以相互换算(如当前帧放大倍数),有的变换参数则无法相互换算(如当前帧平移量)。从而,为确保摄像头发生切换后聚焦变换的连续性,可以分别针对当前摄像头和下一摄像头计算一套变换参数,以便在切换发生时这些参数可以立即投入使用。当然,若未发生切换,则针对下一摄像头计算出的变换参数可能不会被使用,即这些参数在目前看来是冗余的,但考虑到参数计算的方式比较简单,这种程度的冗余是可以接受的。
[0182] 可以理解的,计算变换参数应等到摄像头启动之后,例如,若当前摄像头启动时下一摄像头还未启动,则只需计算一套变换参数即可。此外,切换条件中也可能会使用计算出的变换参数,从而能够尽量避免计算出的参数不被使用的情况,详见后文的例子。
[0183] 具体地,若聚焦变换包括放大和平移,则可以采取如下方式计算变换参数(当前帧放大倍数、当前帧平移量)并进行摄像头切换:
[0184] (a)利用目标跟踪算法,分别从当前摄像头和下一摄像头对应的当前帧原始图像中确定目标对象的位置。显然,这里默认了下一摄像头已经启动。
[0185] (b)分别根据当前摄像头和下一摄像头对应的当前帧原始图像中目标对象的位置,计算当前摄像头和下一摄像头对应的当前帧放大倍数,以及,计算当前摄像头和下一摄像头对应的当前帧平移量。当前帧放大倍数和当前帧平移量的计算方法均可以参考前文,不再重复阐述(其中,可能需要先计算出当前的预期放大倍数和预期平移量)。还需要指出,对于下一摄像头而言,毕竟在切换发生前,并不会使用算出的当前帧放大倍数和当前帧平移量进行放大和平移,因此这两个参数的计算频率可以适当降低,例如,可以不必每帧都进行计算,而改为每采集几帧原始图像才计算一次,当然每帧都进行计算也是可以的,只是运算量稍大。
[0186] (c)判断是否满足从当前摄像头切换至下一摄像头的切换条件,判断时可能会使用上一步计算出的变换参数,详见后文的例子。若判断结果不满足切换条件,则根据当前摄像头对应的当前帧放大倍数及当前帧平移量,对当前摄像头对应的当前帧原始图像中的目标图像进行放大及平移,若判断结果满足切换条件,则切换为根据下一摄像头对应的当前帧放大倍数及当前帧平移量,对下一摄像头对应的当前帧原始图像中的目标图像进行放大及平移。
[0187] 若聚焦变换包括放大而不包括平移,只需将上述步骤(a)至(c)中有关平移的内容移除即可,若聚焦变换还包括其他变换参数,也是类似的,不再专门阐述。
[0188] 值得一提的是,在考虑摄像头切换时,前文给出的cur_frame_scale和cur_frame_shift的计算公式依然成立,即放大和平移的平滑性仍然可以得到保证,只是在判断结果满足切换条件之前,cur_frame_scale和cur_frame_shift是根据当前摄像头的目标跟踪结果计算的,在判断结果满足切换条件之后,cur_frame_scale和cur_frame_shift是根据下一摄像头的目标跟踪结果计算的。
[0189] 不同的摄像头即使对同一场景进行拍摄,得到的原始图像之间也存在视差,为了削弱视差对于摄像头切换的影响,可以在切换发生前就对当前摄像头对应的原始图像进行处理(例如,进行旋转和平移),使得在切换发生时,当前摄像头对应的、且经过处理的原始图像与下一摄像头对应的原始图像恰好重合或者只存在微小的差别,既然作为聚焦变换的源头的原始图像在切换后基本没发生变化,屏幕上显示的切换后的目标图像自然也不会发生突变。
[0190] 上述对原始图像的处理也可以采用平滑的方式,并与目标图像的平滑放大同步进行。以旋转为例,假设当前摄像头和下一摄像头的角度差(可以指光轴夹角)为5°,目标图像从1x放大至2x经过了10帧,则每一帧都可将当前摄像头对应的原始图像旋转5/10=0.5°,目标图像的放大在此旋转后的原始图像上进行,到第10帧时,当前摄像头对应的、旋转了5°的原始图像恰好与下一摄像头对应的原始图像重合(假设两个摄像头的传感器分辨率相同),可以进行无缝地切换。进一步的,由于仿射变换中本来就包括旋转,并且可以进行矩阵表示,所以在一些实现方式中,若采用矩阵运算实现聚焦变换,也可以在变换矩阵(如前文的Htrans)中加入有关旋转的参数。
[0191] 除了视差之外,两个摄像头获取的图像在风格上(例如,色温等)也可能存在区别,这是摄像头本身的特性所决定的,因此也需要进行过渡处理,不再详细阐述。
[0192] 下面继续介绍可能采用的切换条件:
[0193] 条件C1:若当前摄像头的视场角大于下一摄像头的视场角,则切换条件包括:当前摄像头对应的当前帧放大倍数不小于摄像头倍数比值,且目标对象的位置未超出下一摄像头对应的当前帧原始图像的边界。其中,摄像头倍数比值定义为当前摄像头的放大倍数与下一摄像头的放大倍数的比值,此处摄像头的放大倍数指其固有放大倍数,可以通过摄像头的标定数据获得。若C1中关于放大倍数的条件不满足,则条件C1不满足,关于目标对象位置的条件无需再进一步判断。
[0194] 不难看出,条件C1包括两个子条件,第一个子条件和当前摄像头对应的原始图像相关,第二个子条件和下一摄像头对应的原始图像相关,也不排除在某些方案中,C1会简化为只包含其中一个子条件。
[0195] 简单解释条件C1的含义:条件C1对应的是大FOV摄像头切小FOV摄像头的情况。若开始时基于大FOV摄像头对应的原始图像进行放大(还可能包括其他聚焦变换),则在当前帧放大倍数已经不小于摄像头倍数比值、并且小FOV摄像头对应的原始图像也能够捕捉到目标对象时,就可以切换为小FOV摄像头对应的原始图像继续进行放大(还可能包括其他聚焦变换),这样有利于更清晰地显示目标对象的细节。
[0196] 在条件C1中,目标对象的位置是否超出下一摄像头采集的当前帧原始图像的边界,可以通过下一摄像头对应的当前帧平移量来判断,若该当前帧平移量不大于下一摄像头对应的当前帧原始图像中同一方向上的最大平移量,则认为目标对象的位置未超出下一摄像头对应的当前帧原始图像的边界,否则,认为目标对象的位置已超出下一摄像头对应的当前帧原始图像的边界。
[0197] 其中,若聚焦变换包括平移,则下一摄像头对应的当前帧平移量可以在上面的步骤(b)中进行计算,若聚焦变换不包括平移,也可以专门计算下一摄像头对应的当前帧平移量用于切换条件的判断。
[0198] 原始图像中的最大平移量与目标图像的尺寸以及平移的方向有关,可以这样定义:与x轴夹角为θ的方向(简称θ方向),其最大平移量就是以原始图像的中心位置为起点,将目标图像沿θ方向平移到原始图像的边界处(目标图像的边界与原始图像的某段边界重合但不超出原始图像的边界)形成的平移量。例如,θ=0°,该最大平移量为(W1/2‑W2/2,0),W1为原始图像的宽度,W2为目标图像的宽度;θ=90°,该最大平移量为(0,H1/2‑H2/2),H1为原始图像的高度,H2为目标图像的高度。在比较当前帧平移量和最大平移量的大小时,应选择和当前帧平移量同方向上的最大平移量进行比较。另外,对于条件C1而言,用于计算最大平移量的原始图像是指下一摄像头对应的当前帧原始图像。
[0199] 当然,在其他一些实现方式中,对于目标对象的位置是否超出下一摄像头采集的当前帧原始图像的边界,也存在其他的判断方法:
[0200] 例如,根据上面对最大平移量的定义可知,上面的判断方法中的临界条件是目标图像被平移到了原始图像的边界处,该临界条件也可以替换为目标对象(也对应一个矩形框)被平移到了原始图像的边界处、目标对象的中心位置被平移到了原始图像的边界处,等等。
[0201] 又例如,只要目标跟踪算法仍然可以在下一摄像头采集的当前帧原始图像中跟踪到目标对象,就认为目标对象的位置为超出该原始图像的边界。
[0202] 结合图4(A)和图4(B)说明条件C1,摄像头1是当前摄像头,FOV=80°,放大倍数1x;摄像头2是下一摄像头,FOV=40°,放大倍数为2x。由于摄像头2的FOV较小,所以其拍摄范围不及摄像头1,即对于摄像头2对应的原始图像,其拍摄范围只能对应摄像头1对应的原始图像中虚线方框的部分(注意,摄像头2对应的原始图像在分辨率上不一定小于摄像头1对应的原始图像,图4(A)和(B)中只是对其进行了缩小绘制)。
[0203] 用户刚开启相机APP时,采用摄像头1,目标图像的放大倍数为1x,此时算出的预期放大倍数为2.5x。在自动聚焦过程中,若放大倍数还未达到2x,则继续采用摄像头1,若放大倍数达到了2x,则进一步判断目标对象是否位于摄像头2对应的当前帧原始图像之内:图4(A)为目标对象的位置在当前帧原始图像之的边界内情况,此时条件C1满足,切换为摄像头2继续执行目标图像的放大;图4(B)为目标对象的位置在当前帧原始图像的边界之外的情况,此时条件C1不满足,继续基于摄像头1执行目标图像的放大。
[0204] 条件C2:若当前摄像头的视场角小于下一摄像头的视场角,则切换条件包括:下一摄像头对应的当前帧放大倍数小于摄像头倍数比值,或目标对象的位置已超出当前摄像头对应的当前帧原始图像的边界。其中,摄像头倍数比值定义和条件C1中相同,C2中下一摄像头对应的当前帧放大倍数是大FOV摄像头对应的当前帧放大倍数,与C1保持一致,当然也可以采用当前摄像头(小FOV摄像头)对应的当前帧放大倍数,但这样就需要进行相应的换算了。
[0205] 不难看出,条件C2包括两个子条件,第一个子条件和下一摄像头对应的原始图像相关,第二个子条件和当前摄像头对应的原始图像相关,也不排除在某些方案中,C2会简化为只包含其中一个子条件。
[0206] 简单解释条件C2的含义:条件C2对应的是小FOV摄像头切大FOV的摄像头的情况。若开始时基于小FOV摄像头对应的原始图像进行放大(还可能包括其他聚焦变换),则在当前帧放大倍数已经小于摄像头倍数比值、或者小FOV摄像头对应的原始图像不能够捕捉到目标对象时,就可以切换为大FOV摄像头对应的原始图像继续进行放大(还可能包括其他聚焦变换),这样虽然降低了目标对象的细节显示,但至少还可以在较大的范围内对目标对象进行自动聚焦,维系自动聚焦的功能。
[0207] 在条件C2中,目标对象的位置是超出当前摄像头对应的当前帧原始图像的边界,可以通过当前摄像头对应的当前帧平移量来判断,若该当前帧平移量大于当前摄像头对应的当前帧原始图像中同一方向上的最大平移量,则认为目标对象的位置已超出当前摄像头对应的当前帧原始图像的边界,否则,认为目标对象的位置未超出当前摄像头对应的当前帧原始图像的边界。
[0208] 其中,若聚焦变换包括平移,则当前摄像头对应的当前帧平移量可以在上面的步骤(b)中进行计算,若聚焦变换不包括平移,也可以专门计算当前摄像头对应的当前帧平移量用于切换条件的判断。关于原始图像中的最大平移量的定义,和条件C1类似,不再重复,只是对于条件C2而言,用于计算最大平移量的原始图像是指当前摄像头对应的当前帧原始图像。
[0209] 当然,在其他一些实现方式中,对于目标对象的位置是否超出当前摄像头采集的当前帧原始图像的边界,也存在其他的判断方法,可参照条件C1,不再重复。
[0210] 仍然结合图4(A)和图4(B)说明条件C2,关于切换条件的判断是持续进行的,例如,某时刻已经满足条件C1,从摄像头1切换为了摄像头2,并且目标图像已经放大到了2.5x,后期由于目标对象自身的运动,导致其离开了摄像头2的拍摄范围,此时满足条件C2,会从摄像头2切换回摄像头1继续执行目标图像的放大。
[0211] 在一个自动聚焦的方案中,条件C1和C2可以同时实现,也可以只实现其中的一个。例如,只实现条件C1,对于小FOV摄像头切大FOV摄像头的情况,则可以采用另外的条件。
[0212] 条件C1和C2都符合之前提到的切换原则:在可以采用小FOV摄像头对应的原始图像进行聚焦变换时,尽可能地采用,除非小FOV摄像头对应的原始图像已经无法有效捕捉目标对象时(例如,目标对象已经处于图像范围之外或者在图像范围内尺寸过大),才使用大FOV摄像头对应的原始图像进行聚焦变换。
[0213] 进一步的,在以上实施例的基础上,若判断结果满足切换条件,则对下一摄像头对应的原始图像中的目标图像进行聚焦变换,至少存在如下两种方式:
[0214] 方式1:若当前时刻得到的判断结果满足切换条件,立刻就从对当前摄像头对应的原始图像中的目标图像进行聚焦变换,切换成对下一摄像头对应的原始图像中的目标图像进行聚焦变换。可见,方式1实际上是当前判断出满足切换条件就立即进行摄像头切换的方案。
[0215] 方式2:若当前时刻得到的判断结果满足切换条件,则在之后一个时间段内继续根据当前摄像头对应的原始图像和/或下一摄像头对应的原始图像(当然是指在该时间段内新获取的原始图像)进行切换条件的判断,若在该时间段内得到的判断结果均满足切换条件,才从对当前摄像头对应的原始图像中的目标图像进行聚焦变换,切换成对下一摄像头对应的原始图像中的目标图像进行聚焦变换。
[0216] 方式2实际上是判断出当前满足切换条件后还要等上一段时间,若一直都能满足切换条件才进行摄像头切换的方案。方式2中的时间段可以采用不同的描述方式:例如,用时长来描述,比如2s;又例如,用帧数来描述,比如20帧(指采集20帧原始图像)。
[0217] 方式1逻辑比较简单,切换效率较高。方式2逻辑稍复杂,但有利于避免摄像头频繁切换的问题。
[0218] 例如,目标对象在小FOV摄像头对应的原始图像的边界处(例如,图4(B)中目标对象的位置)来回移动,导致一会儿满足条件C1一会儿满足条件C2,进而导致大FOV摄像头和小FOV摄像头之间反复切换,影响其使用寿命,也可能造成显示画面的不稳定。采用方式2的逻辑后,若满足条件C2,不会立即切换为大FOV摄像头,而是要等上2s,假设2s内目标对象又回到了小FOV摄像头的拍摄范围内,此时条件C2不满足,不用切换摄像头。
[0219] 类似的,若目标对象离开了FOV最大的摄像头的拍摄范围或者目标对象突然无法被跟踪到,根据前文阐述,此时应当缩小目标图像的放大倍数,直至缩小为原始尺寸(例如,1x)。考虑到目标对象在FOV最大的摄像头对应的原始图像的边界处反复移动的情况,或者目标对象被断断续续地跟踪到的情况,在决定缩小目标图像的放大倍数之前,也可以先等上一小段时间,避免屏幕上的目标图像反复缩小放大,影响用户体验。
[0220] 最后,在以上实施例的基础上,再说明多个目标对象的自动聚焦。为支持多个目标对象的自动聚焦,在步骤S210中,应当同时对多个目标对象进行跟踪,并分别确定每个目标对象在原始图像中的位置。步骤S220则至少可包括两种方案:
[0221] 方案1:对原始图像的选中目标图像进行聚焦变换,并显示变换后的选中目标图像。其中,选中目标图像为多个目标对象对应的目标图像中,包含有被选中的目标对象的目标图像。
[0222] 例如,原始图像中共有5个目标对象,用户选中了其中3个,则可基于目标跟踪结果对这3个目标对象对应的目标图像进行聚焦变换并显示,显示的方式不限,可以是同时显示,可以是依次显示,可以是应用户的操作显示其中一个、另外两个暂时隐藏,等等。
[0223] 方案2:对原始图像中的目标图像进行聚焦变换,并显示选变换后的选中目标图像。关于选中目标图像的定义和方案1相同,不再重复说明。
[0224] 例如,原始图像中共有5个目标对象,用户选中了其中3个,则可基于目标跟踪结果对全部5个目标对象对应的目标图像进行聚焦变换,但只显示用户选中的3个目标对象对应的变换后的目标图像,显示的方式不限。
[0225] 其中,用户选中目标对象的时机非常灵活,可以是在目标跟踪开始之前就进行选择,也可以是在目标跟踪开始之后才进行选择,或者同时包括这两种情况。特别地,用户还可以动态地更改被选中的目标对象,例如,用户开始选择了目标对象X进行自动聚焦,后续可以重新选择目标对象Y进行自动聚焦(在此之前,Y可能进行了自动聚焦也可能没有,取决于方案实现),变更后可以不再对X进行自动聚焦,或者虽然继续对X进行自动聚焦,但不在屏幕上显示X的自动聚焦结果,而改为显示Y的自动聚焦结果。
[0226] 上述两种方案中,方案1的运算量较小(因为并不会对每个目标对象进行自动聚焦),但方案2对于动态切换的支持更好(因为对每个目标对象都进行了自动聚焦,只是没有显示全部的结果)。
[0227] 图5示出了切换自动聚焦对象的一种方式。参照图5,切换前,屏幕上显示的自动聚焦对象为黑色人体,用户长按屏幕,上方出现目前正在进行自动聚焦的全部目标对象,一共有5个。用户选择了第2个,即灰色人体,此时屏幕上显示的自动聚焦对象变为灰色人体,黑色人体也可以继续进行自动聚焦,以便用户再次切换自动聚焦对象。
[0228] 图6示出了本申请实施例提供的自动聚焦装置300的一种可能的结构。
[0229] 参照图6,自动聚焦装置300包括:
[0230] 目标跟踪模块310,用于利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置;
[0231] 聚焦变换模块320,用于对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像;其中,所述目标图像为所述原始图像的局部图像,该局部图像中包含所述目标对象,所述聚焦变换为能够凸显出所述目标图像的仿射变换。
[0232] 在自动聚焦装置300的一种实现方式中,所述目标图像通过对所述目标对象在所述原始图像中占据的区域进行扩展后得到。
[0233] 在自动聚焦装置300的一种实现方式中,所述聚焦变换包括放大和/或平移。
[0234] 在自动聚焦装置300的一种实现方式中,若所述聚焦变换包括放大,则聚焦变换模块320对所述原始图像中的目标图像进行聚焦变换,包括:根据所述原始图像的尺寸以及所述目标图像的尺寸计算预期放大倍数,并根据所述预期放大倍数对所述原始图像中的目标图像进行放大;若所述聚焦变换包括平移,则聚焦变换模块320对所述原始图像中的目标图像进行聚焦变换,包括:根据所述原始图像的中心位置以及所述目标对象的中心位置计算预期平移量,并根据所述预期平移量对所述原始图像中的目标图像进行平移。
[0235] 在自动聚焦装置300的一种实现方式中,聚焦变换模块320根据所述原始图像的尺寸以及所述目标图像的尺寸计算预期放大倍数,并根据所述预期放大倍数对所述目标图像进行放大,包括:根据当前帧原始图像的尺寸以及所述当前帧原始图像中的目标图像的尺寸计算所述预期放大倍数;根据所述预期放大倍数以及上一帧放大倍数计算当前帧放大倍数,并根据所述当前帧放大倍数对当前帧原始图像中的目标图像进行放大;其中,所述上一帧放大倍数为对上一帧原始图像中的目标图像进行放大的倍数,所述当前帧放大倍数位于所述上一帧放大倍数与所述预期放大倍数之间;聚焦变换模块320根据所述原始图像的中心位置以及所述目标对象的中心位置计算预期平移量,并根据所述预期平移量对所述目标图像进行平移,包括:根据当前帧原始图像的中心位置以及所述当前帧原始图像中的目标对象的中心位置计算所述预期平移量;根据所述预期平移量以及上一帧平移量计算当前帧平移量,并根据所述当前帧平移量对当前帧原始图像中的目标图像进行平移;其中,所述当前帧平移量位于所述上一帧平移量与所述预期平移量之间。
[0236] 在自动聚焦装置300的一种实现方式中,聚焦变换模块320根据所述预期放大倍数以及上一帧放大倍数计算当前帧放大倍数,包括:根据所述预期放大倍数、所述上一帧放大倍数以及剩余放大帧数计算放大倍数增量;其中,所述剩余放大帧数表示:所述当前帧放大倍数要达到所述预期放大倍数还需经历的原始图像帧数;在所述上一帧放大倍数上叠加所述放大倍数增量,得到所述当前帧放大倍数;聚焦变换模块320根据所述预期平移量以及上一帧平移量计算当前帧平移量,包括:根据所述预期平移量、所述上一帧平移量以及剩余平移帧数计算平移量增量;其中,所述剩余平移帧数表示:所述当前帧平移量要达到所述预期平移量还需经历的原始图像帧数;在所述上一帧平移量上叠加所述平移量增量,得到所述当前帧平移量。
[0237] 在自动聚焦装置300的一种实现方式中,所述图像传感器为摄像头的感光元件,所述摄像头的数量为N个,N≥2,且从第1个摄像头至第N个摄像头视场角依次增大,聚焦变换模块320对所述原始图像中的目标图像进行聚焦变换,包括:根据当前摄像头对应的原始图像和/或下一摄像头对应的原始图像判断是否满足从当前摄像头切换至下一摄像头的切换条件;其中,所述当前摄像头为第i个摄像头,1≤i≤N,所述下一摄像头为与所述当前摄像头在视场角大小的排序上相邻的摄像头,摄像头对应的原始图像是指所述摄像头的图像传感器生成的原始图像;若判断结果不满足所述切换条件,则聚焦变换模块320对所述当前摄像头对应的原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则聚焦变换模块320对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换;其中,所述聚焦变换包括放大。
[0238] 在自动聚焦装置300的一种实现方式中,所述若判断结果不满足所述切换条件,则聚焦变换模块320对所述当前摄像头对应的原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则聚焦变换模块320对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换,包括:若判断结果不满足所述切换条件,则聚焦变换模块320根据所述当前摄像头对应的当前帧变换参数,对所述当前摄像头对应的当前帧原始图像中的目标图像进行聚焦变换,若判断结果满足所述切换条件,则聚焦变换模块320根据所述下一摄像头对应的当前帧变换参数,对所述下一摄像头采集的当前帧原始图像中的目标图像进行聚焦变换;其中,所述当前摄像头对应的当前帧变换参数根据所述当前摄像头对应的当前帧原始图像进行计算,所述下一摄像头对应的当前帧变换参数根据所述下一摄像头对应的当前帧原始图像进行计算,所述当前帧变换参数包括当前帧放大倍数,或者,包括当前帧放大倍数和当前帧平移量。
[0239] 在自动聚焦装置300的一种实现方式中,若所述当前摄像头的视场角大于所述下一摄像头的视场角,则所述切换条件包括:所述当前摄像头对应的当前帧放大倍数不小于摄像头倍数比值,且所述目标对象的位置未超出所述下一摄像头对应的当前帧原始图像的边界;和/或,若所述当前摄像头的视场角小于所述下一摄像头的视场角,则所述切换条件包括:所述下一摄像头对应的当前帧放大倍数小于摄像头倍数比值,或所述目标对象的位置已超出所述当前摄像头对应的当前帧原始图像的边界;其中,所述摄像头倍数比值为所述当前摄像头的放大倍数与所述下一摄像头的放大倍数的比值。
[0240] 在自动聚焦装置300的一种实现方式中,若所述当前摄像头的视场角大于所述下一摄像头的视场角,则聚焦变换模块320根据所述下一摄像头对应的当前帧平移量判断所述目标对象的位置是否超出所述下一摄像头对应的当前帧原始图像的边界;若所述当前摄像头的视场角小于所述下一摄像头的视场角,则聚焦变换模块320根据所述当前摄像头对应的当前帧平移量判断所述目标对象的位置是否超出所述当前摄像头对应的当前帧原始图像的边界。
[0241] 在自动聚焦装置300的一种实现方式中,所述若判断结果满足所述切换条件,则聚焦变换模块320对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换,包括:若当前时刻的判断结果满足所述切换条件,则聚焦变换模块320在之后的一个时间段内继续根据所述当前摄像头对应的原始图像和/或所述下一摄像头对应的原始图像进行切换条件的判断,若在该时间段内得到的判断结果均满足所述切换条件,则聚焦变换模块320对所述下一摄像头对应的原始图像中的目标图像进行聚焦变换。
[0242] 在自动聚焦装置300的一种实现方式中,目标跟踪模块310还用于:在利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置之前,将初始图像中检测出的感兴趣对象确定为所述目标对象,或者,根据针对初始图像的目标选择操作确定所述目标对象;其中,所述初始图像为所述目标跟踪算法所处理的首帧原始图像。
[0243] 在自动聚焦装置300的一种实现方式中,目标跟踪模块310还根据针对初始图像的目标选择操作确定所述目标对象,包括:根据针对所述初始图像的区域圈定操作,将被圈定区域内的感兴趣对象确定为所述目标对象;或者,根据针对所述初始图像的对焦点选择操作,将包含对焦点的感兴趣对象确定为所述目标对象。
[0244] 在自动聚焦装置300的一种实现方式中,目标跟踪模块310利用目标跟踪算法,从图像传感器生成的原始图像中确定目标对象的位置,包括:利用目标跟踪算法,从图像传感器生成的原始图像中确定多个目标对象的位置;聚焦变换模块320对所述原始图像中的目标图像进行聚焦变换,并显示变换后的目标图像,包括:对所述原始图像的选中目标图像进行聚焦变换,并显示变换后的选中目标图像;或者,对所述原始图像中的目标图像进行聚焦变换,并显示变换后的选中目标图像;其中,所述选中目标图像为所述多个目标对象对应的目标图像中,包含有被选中的目标对象的目标图像。
[0245] 在自动聚焦装置300的一种实现方式中,所述装置还包括:拍摄模块,用于保存显示屏上所显示的图像作为拍照结果或者录制的视频帧;其中,所述显示屏上所显示的图像中包括所述变换后的目标图像。
[0246] 本申请实施例提供的自动聚焦装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
[0247] 本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的自动聚焦方法。例如,计算机可读存储介质可以但不限于实现为图1中电子设备100中的存储器120。
[0248] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。