CN114095662B - 拍摄指引方法及电子设备 - Google Patents

拍摄指引方法及电子设备 Download PDF

Info

Publication number
CN114095662B
CN114095662B CN202210065398.1A CN202210065398A CN114095662B CN 114095662 B CN114095662 B CN 114095662B CN 202210065398 A CN202210065398 A CN 202210065398A CN 114095662 B CN114095662 B CN 114095662B
Authority
CN
China
Prior art keywords
image
pose
camera
target
shooting
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.)
Active
Application number
CN202210065398.1A
Other languages
English (en)
Other versions
CN114095662A (zh
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.)
Shanghai Glory Smart Technology Development 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 CN202210065398.1A priority Critical patent/CN114095662B/zh
Publication of CN114095662A publication Critical patent/CN114095662A/zh
Application granted granted Critical
Publication of CN114095662B publication Critical patent/CN114095662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/64Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/695Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2624Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects for obtaining an image which is composed of whole input images, e.g. splitscreen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/32Indexing scheme for image data processing or generation, in general involving image mosaicing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • Studio Devices (AREA)

Abstract

本申请实施例提供一种拍摄指引方法及电子设备,涉及计算机视觉技术领域。在本申请方案中,先获取拍摄场景的图像序列;再根据图像序列构建三维地图,并将图像序列拼接为全景图像,以获取最佳构图区域;然后,根据三维地图和最佳构图区域得到目标相机位姿,并渲染出与相机位姿对应的虚拟相机图像;再然后,根据实时扫描的图像获取当前相机位姿,并按照当前相机位姿,渲染向虚拟相机图像移动的指引标识。如此,拍摄者基于虚拟相机图像和指引标识,通过移动或旋转电子设备,将电子设备从当前相机位姿调整为目标相机位姿,从而提高了构图效果,进而使得拍摄出的图像效果更好。

Description

拍摄指引方法及电子设备
技术领域
本申请涉及计算机视觉技术领域,尤其涉及一种拍摄指引方法及电子设备。
背景技术
目前,大多数电子设备具备了拍摄功能。
在拍摄图像时,拍摄者可以根据拍摄题材、主体思想、拍摄环境、拍摄对象的位置关系和成像特点等,通过调整电子设备的摄像头的拍摄角度,对眼前的景物进行构图,然后按压快门或点击拍摄控件,从而拍摄得到图像。
然而,大部分拍摄者并不具备专业的摄影知识,没有掌握熟练的构图技巧,因此拍摄的图像内容往往缺乏协调性,不能完整地表现出拍摄主体或主题,导致拍摄效果不佳,降低了用户的拍摄体验。
发明内容
本申请提供一种拍摄指引方法及电子设备,解决了由于用户不会构图导致拍摄效果不佳的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请实施例提供一种拍摄指引方法。该方法可以包括:
根据多帧图像构建三维地图,多帧图像为从不同拍摄角度扫描目标拍摄场景得到的图像;
将多帧图像拼接为全景图像,并在全景图像中确定最佳构图区域;
根据三维地图和最佳构图区域,确定与最佳构图区域对应的目标相机位姿;
按照目标相机位姿,渲染虚拟相机图像;
根据三维地图和实时扫描目标拍摄场景得到的图像,获取电子设备的当前相机位姿;
按照当前相机位姿,渲染向虚拟相机图像移动的第一指引标识,该第一指引标识用于指示拍摄者将电子设备从当前相机位姿调整为目标相机位姿。
通过该方案,在从不同拍摄角度扫描到目标拍摄场景的多帧图像之后,电子设备会构建三维地图,并确定由多帧图像得到的拼接图像的最佳构图区域,从而可以根据三维地图和最佳构图区域确定出与最佳构图对应的目标相机位姿,并渲染出与目标相机位姿对应的虚拟相机图像。另外,根据三维地图和实时扫描目标拍摄场景得到的图像,可以实时跟踪当前相机位姿,渲染向目标相机位姿移动的指引信息,使得拍摄者可以根据虚拟相机图像和指引标识,通过移动或旋转电子设备,将电子设备从当前相机位姿调整为目标相机位姿,使得取景框显示的画面为最佳构图画面,从而提高了构图效果。如此用户可以拍摄出效果更好的图像,提升了用户的拍摄体验。
在一些实施例中,三维地图的坐标系为世界坐标系;
目标相机位姿包括以下至少一项:
目标三维坐标,目标三维坐标用于指示虚拟相机在世界坐标系中的位置;
目标旋转角度,目标旋转角度用于指示虚拟相机在世界坐标系中的朝向;
当前相机位姿包括:
当前三维坐标,当前三维坐标用于指示电子设备在世界坐标系中的位置;
当前旋转角度,当前旋转角度用于指示电子设备在世界坐标系中的朝向。
在一些实施例中,根据三维地图和最佳构图区域,确定与最佳构图区域对应的目标相机位姿,包括:
从最佳构图区域提取多个特征点;
在世界坐标系中,确定与多个特征点的每个特征点对应的三维坐标;
根据每个特征点以及与每个特征点对应的三维坐标,确定目标三维坐标和目标旋转角度。
在一些实施例中,目标三维坐标可以用从世界坐标系到相机坐标系变换的偏移向量表示,目标旋转角度可以用从世界坐标系到相机坐标系变换的旋转矩阵表示;
根据每个特征点以及与每个特征点对应的三维坐标,确定目标三维坐标和目标旋转角度,包括:根据每个特征点以及与每个特征点对应的三维坐标,确定从世界坐标系到相机坐标系变换的偏移向量和旋转矩阵。
在一些实施例中,该方法还包括:
识别多帧图像的图像内容;
在多帧图像的图像内容包括人物的情况下,基于目标旋转角度确定目标人物位姿;
按照目标人物位姿,渲染虚拟人物图像;
根据三维地图和实时扫描目标拍摄场景得到的图像,获取被拍摄者的当前人物位姿;
按照当前人物位姿,渲染向虚拟人物图像移动的第二指引标识,第二指引标识用于指示被拍摄者由当前人物位姿调整为目标人物位姿。
通过该方案,在拍摄场景为人物拍摄场景的情况下,不但可以渲染虚拟相机图像和第一指引标识,还可以渲染虚拟人物图像和第二指引标识。这样,拍摄者可以根据虚拟相机图像和第一指引标识调整电子设备的位姿,被拍摄者可以根据虚拟人物图像和第二指引标识调整人物位姿,从而进一步提升了构图效果和拍摄效果。
在一些实施例中,目标人物位姿包括:
虚拟人物图像在世界坐标系中的三维坐标;
虚拟人物图像在世界坐标系中的姿态;
当前人物位姿包括:
被拍摄者在世界坐标系中的三维坐标;
被拍摄者在世界坐标系中的姿态。
在一些实施例中,在多帧图像的图像内容包括人物图像的情况下,基于目标旋转角度确定目标人物位姿,包括:
在多帧图像的图像内容包括人物图像的情况下,基于人物图像确定人物类型和人物数量;
将目标旋转角度、人物类型和人物数量,输入第一神经网络模型;
根据第一神经网络模型的输出结果,得到目标人物位姿。
在一些实施例中,虚拟人物图像为第一虚拟人物图像;
按照当前人物位姿,渲染向虚拟人物图像移动的第二指引标识,包括:
在当前人物位姿与目标人物位姿不匹配的情况下,渲染与当前人物位姿对应的第二虚拟人物图像,以及,渲染从第二虚拟人物图像向第一虚拟人物图像移动的第二指引标识。
在一些实施例中,虚拟相机图像为第一虚拟相机图像;
按照当前相机位姿,渲染向虚拟相机图像移动的第一指引标识,包括:
在当前相机位姿与目标相机位姿不匹配的情况下,渲染与当前相机位姿对应的第二虚拟相机图像,以及,渲染从第二虚拟相机图像向第一虚拟相机图像移动的第一指引标识。
在一些实施例中,该方法还包括:
在当前相机位姿与目标相机位姿匹配,且当前人物位姿与目标人物位姿匹配的情况下,显示拍摄提示信息,拍摄提示信息用于提示用户拍摄图像。
在一些实施例中,三维地图为稀疏三维地图。根据多帧图像构建三维地图,包括:
在扫描到目标拍摄场景的前N帧图像之后,启动SLAM系统;
SLAM系统根据前N帧图像构建稀疏三维地图;
在实时扫描到目标拍摄场景的其他帧图像后,SLAM系统根据该其他帧图像,更新该稀疏三维地图;
其中,N为大于或等于2的整数。前N帧图像和其他帧图像为上述多帧图像中的图像。
在一些实施例中,将多帧图像拼接为全景图像,并在全景图像中确定最佳构图区域,包括:
根据多帧图像的采集顺序,按照递归方式依次拼接多帧图像,得到全景图像;
将全景图像输入第二神经网络模型;
根据第二神经网络模型的输出结果,得到最佳构图区域。
在一些实施例中,根据多帧图像构建三维地图之前,该方法还包括:
响应于目标操作,获取拍摄预览图像;
识别拍摄预览图像的图像内容;
根据拍摄预览图像的图像内容,确定目标拍摄场景的场景类型;
确定与场景类型对应的扫描策略;
输出扫描提示信息,扫描提示信息用于提示拍摄者按照与场景类型对应的扫描策略,从不同拍摄角度扫描目标拍摄场景,得到多帧图像。
第二方面,本申请提供一种拍摄指引装置,该装置包括用于执行上述第一方面的方法的单元/模块。该装置可对应于执行上述第一方面描述的方法,该装置中的单元/模块的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
第三方面,提供一种电子设备,包括处理器和摄像头,该处理器与存储器耦合,该处理器用于执行该存储器中存储的计算机程序或指令,以使得电子设备实现如第一方面中任一项的拍摄指引方法。
第四方面,提供一种芯片系统,该芯片系统与存储器耦合,该芯片系统用于读取并执行该存储器中存储的计算机程序,以实现如第一方面中任一项的拍摄指引方法。
第五方面,提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序在电子设备上运行时,使得电子设备执行如第一方面中任一项的拍摄指引方法。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面中任一项的拍摄指引方法。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的电子设备的结构示意图;
图2为本申请一实施例提供的拍摄指引方案的总流程示意图;
图3为本申请实施例提供的触发拍摄指引功能的操作示意图;
图4为本申请实施例提供的提示用户扫描拍摄场景的示意图;
图5A为本申请实施例提供的用户持手机扫描拍摄场景的操作示意图;
图5B为本申请实施例提供的与图5A所示的拍摄场景对应的帧图像的示意图;
图5C为本申请实施例提供的对与图5B的帧图像进行拼接的示意图;
图6为本申请实施例提供的一种卷积神经网络模型的网络结构图;
图7为本申请实施例提供的将图5C的全景图像输入图6的卷积神经网络模型后得到的输出结果的示意图;
图8为本申请实施例提供的根据图像序列建立稀疏三维地图的流程图;
图9为本申请实施例提供的实时更新三维地图方法的流程图;
图10为本申请实施例提供的世界坐标系、相机坐标系和图像坐标系的示意图;
图11为本申请实施例提供的利用P3P算法求解相机位姿的示意图;
图12为本申请实施例提供的人体关键点的示意图;
图13为本申请一实施例提供的在世界坐标系中虚拟相机图像和虚拟人物图像的示意图;
图14为本申请一实施例提供的在拍摄预览画面渲染虚拟相机图像和虚拟人物图像的示意图;
图15为本申请另一实施例提供的在世界坐标系中虚拟相机图像和虚拟人物图像的示意图;
图16为本申请另一实施例提供的在拍摄预览画面渲染虚拟相机图像和虚拟人物图像的示意图;
图17为本申请再一实施例提供的在世界坐标系中虚拟相机图像和虚拟人物图像的示意图;
图18为本申请再一实施例提供的在拍摄预览画面渲染虚拟相机图像和虚拟人物图像的示意图;
图19为本申请另一实施例提供的拍摄指引方案的总流程示意图;
图20为本申请实施例提供的拍摄指引方法的示意图;
图21为本申请实施例提供的拍摄指引装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,本申请实施例中的“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
下面对本申请中涉及的一些名词或者术语进行解释说明。
增强现实(augmented reality,AR),也被称为混合现实,是一种实时地计算相机的位置及角度,然后加上相应的图像,从而将虚拟现实和真实世界叠加到同一个画面或空间的技术。该技术的目标是在屏幕上把虚拟世界叠加到现实世界并进行互动。
即时定位与地图构建(simultaneous localization and mapping,SLAM),也称为并发建图与定位(concurrent mapping and localization,CML),是一种对电子设备在环境中的位置定位的技术。SLAM技术可实现电子设备在环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,以便于后续的定位。采用SLAM技术可以逐步描绘出环境的三维地图。
投影n点(pespective-n-point,PnP)求解算法,是指通过n个三维(3-dimension,3D)与二维(2-dimension,2D)的匹配点对,在已知或者未知相机内参的情况下,利用最小化重投影误差,求解相机外参的算法。即,在已知n个三维空间点坐标及其二维投影位置的情况下,估计相机位姿的算法。
世界坐标系(world coordinates)是指在真实的物理环境中建立,用于描述物体位置的三维坐标系,因此世界坐标系也称为绝对坐标系、全局坐标系。本申请实施例中,由SLAM系统根据拍摄场景的图像序列,建立以真实的物理环境中的某一点为原点的世界坐标系,因此也称为SLAM世界坐标系。
相机坐标系,也称为摄像机坐标系,是以相机的聚焦中心(也称为光心)为原点,以相机的光轴为Z轴,以平行于物理成像平面(也称为像素平面)的平面作为XY平面,最终建立的三维坐标系。世界坐标系的坐标通过平移和旋转,可以变换为相机坐标系的坐标。需要说明的是,本申请实施例中的相机可以是独立的相机设备,也可以是电子设备的摄像头等摄像组件。在下述实施例中,相机和摄像头可以等价替换。
渲染(render)是指在计算机图形学领域,将三维场景中的模型,按照设定好的环境、灯光、材质和/或渲染参数,二维投影成数字图像的过程。其包含了两个过程:结算视频编辑文件中的效果的过程,生成最终视频输出的过程。本申请实施例主要涉及将三维场景中的虚拟人物图像和虚拟相机图像等,以二维形式渲染在屏幕的取景框中,例如,以AR方式按照一定透明度将二维形式的虚拟人物图像和虚拟相机图像叠加显示在由摄像头采集的预览画面上。
构图是指根据题材和主题思想,把要表现的形象适当地组织起来,构成一个协调的完整的画面。本申请实施例主要涉及摄影构图。在摄影构图中,可以根据拍摄题材、主体思想、拍摄环境和拍摄对象的位置等,把眼前现有的景物,适当的进行规划、组织和排列,并利用相机的成像技术特点进行渲染,使之形成一个协调、完整,具有一定艺术形式的画面。
示例性的,在用户使用电子设备拍摄照片或视频等图像之前,电子设备的屏幕会显示取景画面。用户可以将摄像头朝向拍摄对象,并通过移动或旋转摄像头的拍摄角度对眼前的景物进行构图,然后点击拍摄控件,从而拍摄得到图像。但是,由于大多数用户并不具备专业的摄影知识,没有掌握熟练的构图技巧,因此拍摄的图像内容往往缺乏协调性,不能完整地表现出拍摄主体或主题,导致拍摄效果不佳,降低了用户的拍摄体验。
为了解决用户不会构图导致拍摄效果不佳的问题,本申请实施例提供了一种拍摄指引方案,在从不同拍摄角度扫描到目标拍摄场景的多帧图像之后,电子设备会构建三维地图,并确定由多帧图像得到的拼接图像的最佳构图区域,从而可以根据三维地图和最佳构图区域确定出与最佳构图对应的目标相机位姿,并渲染出与目标相机位姿对应的虚拟相机图像。另外,根据三维地图和实时扫描目标拍摄场景得到的图像,可以实时跟踪当前相机位姿,渲染向目标相机位姿移动的指引信息,使得拍摄者可以根据虚拟相机图像和指引标识,通过移动或旋转电子设备,将电子设备从当前相机位姿调整为目标相机位姿,使得取景框显示的画面为最佳构图画面,从而提高了构图效果。如此用户可以拍摄出效果更好的图像,提升了用户的拍摄体验。
本申请实施例提供的拍摄指引方案不但可以应用于相机设备,还可以应用于各种具备拍摄功能的电子设备,例如手机、平板电脑、笔记本电脑、可穿戴设备、车载设备、AR设备、无人机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等各种配置有摄像头的电子设备,本申请实施例对电子设备的具体类型不作任何限制。相应的,上述相机位姿不但可以用于表示相机的位置和姿态,还可以用于表示其他各种具备拍摄功能的电子设备的位置和姿态(具体指电子设备中摄像头等拍摄组件的位置和姿态)。需要说明的是,下述部分实施例是以相机位姿用于表示手机(具体指手机的摄像头)的位置和姿态为例进行示例说明的,其并不对本申请实施例形成限定。
图1为本申请实施例提供的电子设备的结构示意图。如图1所示,电子设备可以包括处理器10,摄像头11,显示屏12,外部存储器接口13,内部存储器14,天线1,天线2,无线通信模块15,移动通信模块16,音频模块17,耳机接口17A,麦克风17B,受话器17C和/或扬声器17D等。
处理器10可以包括一个或多个处理单元,例如:处理器10可以包括如图1所示的图像信号处理器(image signal processor,ISP)10A,数字信号处理器(digital signalprocessor,DSP)10B,视频编解码器10C,神经网络处理器(neural-network processingunit,NPU)10D,图形处理器(graphics processing unit,GPU)10E,中央处理器(centralprocessing unit,CPU)10F,应用处理器(application processor,AP)10G,调制解调处理器10H,和/或基带处理器10I等。在一些实施例中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
CPU 10F是信息处理、程序运行的最终执行单元,其主要工作包括处理指令、执行操作、控制时间和处理数据等。其中,CPU 10F可以包括控制器、运算器、高速缓冲存储器,以及用于连接这些部件的总线。
控制器是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
运算器是指进行各种算术和逻辑运算操作的部件。
高速缓冲存储器可以保存处理器10刚用过或循环使用的指令或数据。如果处理器10需要再次使用该指令或数据,可从高速缓冲存储器中直接调用。避免了重复存取,减少了处理器10的等待时间,因而提高了系统的效率。
需要说明的是,本申请实施例提供的拍摄指引方案主要涉及拍摄场景,因此下面对电子设备中与拍摄场景相关的各个部件/单元/功能模块进行示例性说明。
电子设备可以通过摄像头11,ISP 10A,DSP 10B,视频编解码器10C,NPU 10D,GPU10E,显示屏12以及AP 10G等实现拍摄功能。在拍摄场景中,显示功能作为拍摄功能的一部分,主要通过GPU 10E,显示屏12以及AP 10G等实现。例如,通过GPU 10E,显示屏12以及AP10G等显示相机应用程序的图标,显示包括取景框和拍摄控件的拍摄预览界面,在取景框中显示采集的预览图像,以及在取景框中叠加显示虚拟人物图像、虚拟相机图像和指引标识等。
其中,摄像头11可以用于捕获静态图像或视频。当用户将摄像头11朝向拍摄对象时,由拍摄对象发射或反射的光线,通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementarymetal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP 10A。在一些实施例中,电子设备可以包括1个或N个摄像头11,N为大于1的整数。
ISP 10A可以用于处理摄像头11反馈的数据得到数字图像信息,并将数字图像信号输出到DSP 10B加工处理。例如,在拍照时,电子设备响应于用户操作打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP 10A处理,转化为肉眼可见的图像。此外,ISP 10A还可以对图像的噪点,亮度,肤色进行算法优化。ISP 10A还可以对拍摄场景的曝光和色温等参数优化。在一些实施例中,ISP 10A可以设置在摄像头11中。
DSP 10B可以用于处理数字信号,将数字图像信号转换成标准的RGB,YUV等格式的图像信号。需要说明的是,DSP 10B除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备在频点选择时,DSP 10B用于对频点能量进行傅里叶变换等。
视频编解码器10C可以用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器10C。这样,电子设备可以播放或录制多种编码格式的视频,例如:编码格式可以为动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU 10D为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断地自学习。通过NPU 10D可以实现电子设备的智能认知等应用。例如,在通过网络等方式获取大量照片后,人工标注每张图片的最佳构图区域作为真值(ground truth),然后以此数据集作为训练数据,构建一个卷积神经网络模型。这样,在将采集到的图像输入卷积神经网络模型之后,可以通过卷积神经网络模型确定该图像的最佳构图区域。
GPU 10E又称显示核心、视觉处理器或显示芯片,为图形和图像处理的微处理器。GPU 10E连接显示屏12和AP 10G。GPU 10E可以用于执行复杂的数学和几何计算、浮点运算、并行计算,还可以用于图形渲染。GPU 10E使显卡减少了对CPU 10F的依赖,尤其是在3D图形处理时,GPU 10E采用光影转换技术(transforming&lighting,T&L)、立方环境材质贴图和顶点混合等核心技术,因此GPU 10E进行了部分原本CPU 10F的工作。在一些实施例中,处理器10可以包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏12可以用于显示拍摄得到的图像和视频,以及显示虚拟人物图像、虚拟相机图像和/或指引标识等。显示屏12包括显示面板。显示面板可以采用液晶显示屏(liquidcrystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emittingdiode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,或者量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏12,N为大于1的整数。
具体到本申请实施例,在拍摄构图阶段,用户可以将摄像头11从不同角度朝向拍摄对象,从而摄像头11可以捕获在不同视角下拍摄对象的图像,进而通过ISP 10A、DSP 10B和视频编解码器10C等得到一组拍摄对象的图像序列。
进一步地,在多数情况下,由于CPU 10F要做内存管理和输入响应等繁多任务,而GPU 10E善于处理图形和图像,因此本申请实施例可以采用GPU 10E执行下述操作:GPU 10E拼接拍摄对象的图像序列,得到全景拼接图像,以通过NPU 10D获取全景图像的最佳构图区域;同时,GPU 10E根据图像序列构建三维地图;然后,GPU 10E根据三维地图和最佳构图区域,得到相机位姿;再然后,GPU 10E在显示屏12渲染出与相机位姿对应的虚拟相机和指引标识等。可以理解,根据GPU 10E和CPU 10F芯片的具体性能,也可以由GPU 10E和CPU 10F配合处理上述操作,还可以由CPU 10F单独处理上述操作,本申请实施例不作限定,可以根据实际使用需求调整。
外部存储器接口13可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口13与处理器10通信,实现数据存储功能。例如将最终拍摄得到的照片、视频等文件保存在外部存储卡中。
内部存储器14可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器10通过运行存储在内部存储器14的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器14可以包括存储程序区和存储数据区。其中,存储程序区可以存储操作系统,至少一个功能所需的应用程序等,比如用于拍摄图像的相机应用程序、用于根据图像序列构建三维地图的SLAM系统等。存储数据区可以存储电子设备使用过程中所创建的数据等,比如拍摄的图像序列,以及根据图像序列拼接得到的全景图像。此外,内部存储器14可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备可以通过音频模块17,耳机接口17A,麦克风17B,受话器17C,扬声器17D,以及应用处理器等实现音频功能。例如通过音频模块17和扬声器17D播放语音,以提示拍摄者调整相机位姿,并提示被拍摄者调整人体姿态。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
图2为本申请实施例提供的拍摄指引方案的总流程示意图。
1)在拍摄构图阶段,用户可以通过电子设备的摄像头扫描目标拍摄场景,从而获取到目标拍摄场景的图像序列。例如,用户可以将摄像头从不同角度朝向目标拍摄场景的拍摄对象,从而摄像头可以捕获在不同视角下拍摄对象的图像,进而通过ISP、DSP和视频编解码器等得到一组由拍摄对象的图像组成的图像序列。
2)电子设备将图像序列拼接为全景图像,并获取全景图像的最佳构图区域。例如,电子设备的GPU可以按照图像序列中的各个图像的采集顺序,进行图像的特征点提取和匹配,递归地进行图像拼接,最终得到一幅拍摄场景的全景图像。然后,借助由电子设备的NPU构建的卷积神经网络模型,获取该全景图像的最佳构图区域。
3)电子设备根据获取的图像序列构建三维地图。例如,在获取拍摄场景的前N帧图像之后,启动电子设备中的SLAM系统。SLAM系统可以根据采集的图像,实时构建、更新该拍摄场景的三维地图,以及确定与每帧图像对应的相机位姿,即在拍摄每帧图像时相机的位姿。其中,N为大于或等于2的整数。
4)在获取三维地图和最佳构图区域之后,电子设备根据三维地图和最佳构图区域,计算目标相机位姿。例如,电子设备的GPU先从最佳构图区域的图像中提取的多个特征点,并确定这些特征点在SLAM世界坐标系中的三维坐标;然后,根据多个特征点以及与其对应的三维坐标,使用PnP求解算法计算与最佳构图区域的图像对应的目标相机位姿。其中,该目标相机位姿包括在SLAM世界坐标系中的三维坐标和旋转角度,该三维坐标代表相机的位置,该旋转角度代表相机的朝向。
5)电子设备渲染出与目标相机位姿对应的虚拟相机图像。
进一步地,在拍摄场景为人物拍摄场景的情况下,本申请实施例不但可以在三维场景中渲染出与目标相机位姿对应的虚拟相机图像,还可以在三维场景中渲染出与目标相机位姿对应的虚拟人物图像,以指引被拍摄者调整站位和姿态。其中,站位是指被拍摄者在环境中的位置,姿态是指被拍摄者的动作等。
6)电子设备实时跟踪相机位姿,获取当前相机位姿;按照当前相机位姿,渲染向目标相机位姿移动的指引信息,例如第一指引标识,该第一指引标识用于指示拍摄者将电子设备从当前相机位姿调整为目标相机位姿。通过实时获取电子设备的当前相机位姿,可以判断当前相机位姿与目标相机位姿是否匹配。在当前相机位姿与目标相机位姿匹配的情况下,构图效果最好,因此可以提示用户拍摄图像;在当前相机位姿与目标相机位姿不匹配的情况下,继续实时跟踪相机位姿,渲染向目标相机位姿移动的指引标识。
进一步地,在拍摄场景为人物拍摄场景的情况下,本申请实施例不但可以渲染向目标相机位姿移动的指引信息,还可以根据实时扫描的图像获取被拍摄者的当前人物位姿,并按照当前人物位姿,渲染向虚拟人物图像移动的第二指引标识。其中,第二指引标识用于指示被拍摄者由当前人物位姿调整为目标人物位姿。
需要说明的是,本申请实施例提供的拍摄指引方案可以应用于拍摄照片的场景中,也可以应用于拍摄视频的场景中。对于每种场景的具体实施方案将在下述实施例中进行描述,此处不再赘述。
为了便于理解,下面将以电子设备为具有如图1所示结构的手机为例,从扫描图像、拼接全景图像、构建三维地图、计算最佳构图区域、AR指引生成与渲染、实时跟踪相机位姿等几个方面,对本申请实施例提供的拍摄指引方案进行详细说明。
一、获取图像序列
在手机检测到用户打开相机应用程序的操作后,手机可以启动相机应用程序,并显示如图3中的(a)所示的拍摄预览界面,该拍摄预览界面包括:用于显示预览图像的取景框21、用于选择拍摄模式的多个控件22、用于开启拍摄指引功能的拍摄指引控件23、用于触发拍摄图像的拍摄控件24。
以采用手机的后置摄像头拍摄某拍摄场景的照片为例。假设该拍摄场景包括的拍摄对象较为复杂,包括建筑、树木、太阳、云朵、花草、道路和/或山丘等等。通常,在拍摄照片之前用户需要将后置摄像头朝向该拍摄场景,进行摄影构图。但是,如果用户不擅长构图,那么可能导致在取景框显示的预览图像一直无法达到用户预期。在这种情况下,用户可以点击如图3中的(a)所示的拍摄指引控件23,从而手机可以显示如图3中的(b)所示的提示信息25“请转动手机,扫描拍摄场景”。如此,用户可以将摄像头从不同角度朝向拍摄对象,从而摄像头可以捕获在不同视角下拍摄场景的图像,进而得到一组拍摄场景的图像序列。
在一些实施例中,在手机中预先设置了与场景类型对应的扫描策略。其中,一种场景类型对应一种扫描策略。可以理解的是,场景类型不同,对应的扫描策略不同。在实际实现时,手机可以根据已经捕获的图像,获取图像内容和/或景深信息;之后,根据图像内容和/或景深信息,确定拍摄该图像时拍摄场景所属于的场景类型;然后,根据预先设置的场景类型与扫描策略的对应关系,确定该图像属于的场景类型的扫描策略,并通过输出扫描信息,提示拍摄者按照与场景类型对应的扫描策略,从不同拍摄角度扫描目标拍摄场景。这样,用户可以根据推荐的扫描策略对拍摄场景进行扫描,以获取该拍摄场景的一组图像序列。
上述场景类型包括但不限于:远景拍摄场景、近景拍摄场景、局部拍摄场景、全局拍摄场景、风景拍摄场景、人物拍摄场景、建筑拍摄场景和车辆拍摄场景等。需要说明的是,这些场景类型中的每个场景类型可能又包括多个子场景类型,例如,风景拍摄场景包括大海拍摄场景、夕阳拍摄场景和花海拍摄场景等。此外,一个拍摄场景可能属于多种拍摄类型,例如,用户在海边进行拍摄,这种情况可能既属于远景拍摄场景又属于人物拍摄场景。
下面结合下述三个示例拍摄场景对获取图像序列的过程进行示例性描述。
示例1,对于远景拍摄场景,例如集体合照场景、大型演出场景,由于视场角较大,仅水平或垂直移动手机采集的图像几乎可以涵盖全部场景。如图4中的(a)所示,在取景框中显示众多的人物图像。手机可以根据这些人物图像确定拍摄场景属于集体合照场景,因此手机可以在这些人物图像上悬浮显示箭头和提示信息“请沿着箭头方向持续移动手机”,从而用户可以以当前位置为中心,在水平方向持手机沿着箭头方向转动进行图像扫描。如此,手机可以获取该拍摄场景的图像序列。
示例2,对于近景拍摄场景,例如自拍场景,由于视场角较小,仅水平或垂直移动手机采集的图像无法涵盖全部场景。如图4中的(b)所示,在用户持手机自拍时,由于与摄像头距离过近,仅显示人物的部分图像。手机可以根据该部分图像确定拍摄场景属于自拍场景,因此手机可以在部分图像上悬浮显示实线箭头、虚线箭头以及提示信息“请沿着箭头方向持续移动手机”等,从而用户可以以当前位置为中心,先在水平方向持手机从左向右转动进行图像扫描,再在垂直方向持手机从上向下转动进行图像扫描,然后在水平方向持手机从右向左转动进行图像扫描。如此,手机可以获取该拍摄场景的图像序列。
示例3,与前两种示例有所不同,在某些拍摄场景中,以当前位置为中心移动手机是无法获取拍摄场景的全部图像序列的,例如对于车辆拍摄场景,用户仅站在某一角度无法观测到车辆的全貌。针对这种特殊场景,手机可以提示用户将摄像头朝向车辆,围绕车辆行走,从而获取包含车辆的各个角度的图像序列。
二、拼接全景图像
本申请实施例中,手机采集的图像序列由多帧图像组成。在采集各个视频帧时,手机会实时记录各帧图像的采集顺序。如此,手机可以按照各帧图像的采集顺序,递归地对这些帧图像进行拼接/融合,最终得到一幅拍摄场景的全景图像。
在一些实施例中,在采集到第二帧图像之后,手机可以拼接第一帧图像和第二帧图像,得到第一融合图像;在采集到第三帧图像之后,手机可以拼接第一融合图像和第三帧图像,得到第二融合图像;在采集到第四帧图像之后,手机可以拼接第二融合图像和第四帧图像,得到第三融合图像……以此类推,在采集到最后一帧图像之后,手机可以对先前拼接的融合图像和最后一帧图像进行拼接,最后可以得到包含该拍摄场景全部内容的全景图像。
在另一些实施例中,在采集到全部帧图像之后,手机开始拼接第一帧图像和第二帧图像,得到第一融合图像;之后,拼接第一融合图像和第三帧图像,得到第二融合图像;再之后,拼接第二融合图像和第三帧图像,得到第三融合图像……以此类推,最后对先前拼接的融合图像和最后一帧图像进行拼接,得到全景图像。
下面结合图5A、图5B和图5C对拼接全景图像的过程进行示例性说明。
如图5A所示,假设用户的当前位置用P表示。以位置P为圆心,用户先将摄像头朝向位置H1,然后在水平方向上匀速地转动手机,依次经过位置H2、位置H3、位置H4、位置H5、位置H6和位置H7。这样手机会按照预设帧率采集图像,得到一组图像序列。
如图5B所示,在位置H1采集到第一帧图像h1,在位置H2采集到第二帧图像h2,在位置H3采集到第三帧图像h3,在位置H4采集到第四帧图像h4,在位置H5采集到第五帧图像h5,在位置H6采集到第六帧图像h6,在位置H7采集到第七帧图像h7。由于这些图像的视场角不完全相同,每帧图像包含了拍摄场景的部分拍摄对象,因此通过对其拼接得到包含全部拍摄对象的全景图像。
以如图5C所示的第一帧图像h1和第二帧图像h2的拼接过程为例。手机可以采用尺度不变特征变换(scale invariant feature transform,SIFT)算法、加速稳健特征(speeded up robust features,SURF)算法、快速特征点提取和描述算法(oriented fastand rotated BRIEF,ORB)等,分别提取第一帧图像h1和第二帧图像h2的特征点并进行特征点匹配。假设第一帧图像h1的特征点a1、a2、a3、a4、a5、a6、a7、a8,这些特征点分别与第二帧图像h2的特征点b1、b2、b3、b4、b5、b6、b7、b8匹配,那么可以将第一帧图像h1和第二帧图像h2中匹配的特征点对齐,并进行融合处理,从而得到第一融合图像。在第一融合图像基础上,依次递归拼接第三帧图像h3、第四帧图像h4、第五帧图像h5、第六帧图像h6和第七帧图像h7,最终可以得到与如图5A所示的拍摄场景对应的全景图像。
需要说明的是,上述图5A至图5C仅是以对从部分位置采集的图像进行拼接为例进行示例说明的,在实际实现时,手机可以采集更多位置的图像。可以理解,针对同一拍摄场景,在手机的图像处理能力范围内,采集的图像越多,相邻图像之间匹配的特征点越多,重叠区域越大,拼接图像的精度和鲁棒性更好。
三、获取最佳构图区域
手机的NPU可以预先建立卷积神经网络(convolutional neural networks,CNN)模型。在获取全景图像后,将该全景图像输入该卷积神经网络模型,从而根据该卷积神经网络模型的输出,得到该全景图像的最佳构图区域。
在一些实施例中,卷积神经网络模型的训练方法如下:获取各种场景类型的大量图片;人工标注每张图片的最佳构图区域作为真值;然后将包含这些图片和真值的数据集,作为训练数据,构建一个卷积神经网络模型。
图6示出了一种卷积神经网络模型的网络结构图。在该卷积神经网络模型中,先将尺寸为448×448×3的图像输入卷积结构,在进行多次卷积运算后得到尺寸为7×7×1024的特征图;再将尺寸为7×7×1024的特征图进行第一次全连接,得到尺寸为4096的特征图;之后再将尺寸为4096的特征图进行第二次全连接,得到尺寸为7×7×30的输出结果。该输出结果的目标区域S1的中心点为(x,y),目标区域S1的长高为(w,h),目标区域S1的预测结果的置信度值为score。其中,目标区域即为最佳构图区域。
如图7所示,将由图5C拼接得到的全景图像,输入如图6所示的卷积神经网络模型后得到输出结果。在该输出结果中,如图7中所示的虚线矩形框表示最佳构图区域的边界框,虚线矩形框的对角线交叉点为最佳构图区域的中心点。其中,最佳构图区域的中心点记为(x1,y1),最佳构图区域的长高记为(w1,h1)。
需要说明的是,上述图6是以卷积神经网络模型的输出结果包括一个区域为例进行示例说明的。在一些实施例中,卷积神经网络模型的输出结果可能包括多个区域。在使用手机拍摄照片的场景中,通常需要将相机调整至某个位姿,而一个位姿在全景图像中对应一个最佳构图区域,因此需要在全景图像中确定一个最佳构图区域。若卷积神经网络模型的输出结果包括多个区域,则可以将多个区域中置信度值最高的一个区域作为最佳构图区域。
在一些实施例中,本申请实施例提供的拍摄指引方案适用于视频拍摄场景。在使用手机拍摄视频的场景中,通常需要分M次将相机调整至M个位姿,而每个位姿在全景图像中分别对应一个最佳构图区域,因此需要在全景图像中确定M个最佳构图区域。但是,卷积神经网络模型的输出结果可能多于M个区域,例如卷积神经网络模型的输出结果包括N个区域(N>M),在这种情况下,可以将N个区域中的M个区域作为最佳构图区域,该M个区域的置信度值高于其他区域的置信度值。其中,M和N均为大于或等于2的整数。
四、构建三维地图
手机可以采用SLAM系统,例如视觉SLAM系统,构建拍摄场景的三维地图。该三维地图可以由与二维图像的特征点对应的点云数据组成。
需要说明的是,采用SLAM系统构建的三维地图可以是稀疏(sparse)三维地图,也可以是密集(dense)三维地图。与稀疏三维地图相比,密集三维地图的点云数据更为庞大,据此计算得到的相机位姿也更为精确。建立密集三维地图所需的特征点更多,这意味着需要对更多的图像进行采集SLAM处理,对处理器的数据处理能力要求更高。由于本申请实施例构建的三维地图主要用于拍摄指引,对相机位姿的精确度要求不是非常高,因此在手机处理器的处理能力有限的情况下,可以建立稀疏三维地图。当然,在手机处理器的处理能力足够的情况下,也可以建立密集三维地图。
图8示出了根据图像序列建立稀疏三维地图的流程图。在摄像头采集到拍摄场景的前N帧图像之后,手机可以启动SLAM系统。SLAM系统可以根据采集的前N帧图像,构建该拍摄场景的稀疏三维地图,并在稀疏三维地图对应的世界坐标系中,确定与每帧图像对应的相机位姿。当摄像头实时采集到该拍摄场景的新图像时,SLAM系统可以根据该新图像,对已构建的稀疏三维地图进行更新,并确定与新图像对应的相机位姿。其中,N为大于或等于2的整数。
图9示出了一种实时更新三维地图方法的流程图。假设通过摄像头采集的图像为三原色(red green blue,RGB)图像。这种方法要求在通过摄像头采集RGB图像的同时,通过双目相机或激光传感器等采集深度图像,即一个RGB图像对应一个深度图像。在相邻帧图像进行匹配时,需要同时结合RGB图像和深度图像进行特征点提取与匹配。之后,采用RANSAC算法去除噪声。然后,采用迭代最近点法(iterative closest points,ICP)计算最优刚体变换,得到一个姿态信息(旋转参数R和平移参数T),同时利用惯性测量单元(inertialmeasurement unit,IMU)提供的姿态估计信息进行位姿融合。再然后,利用卡尔曼(EKF)滤波理论、无损卡尔曼(UKF)滤波理论、粒子滤波(PF)理论或者通用图优化算法(generalgraphic optimization,G2O)优化理论等进行图优化,得到最优的位姿估计并更新三维地图。
在一些实施例中,如果手机采集的帧图像较多,或者帧率较高,或者当前拍摄场景对相机位姿的精确度要求较低,那么SLAM系统可以在全部帧图像中确定部分帧图像,并根据该部分帧图像,构建稀疏三维地图。
其中,在全部帧图像中确定部分帧图像的方式,可以包括以下任一项:
方式1、按照图像的采集顺序,每隔N帧确定一帧图像,用于构建稀疏三维地图,N为正整数。例如,依次采集了图像1、图像2、图像3、图像4、图像5、图像6,可以将图像1、图像3、图像5作为用于构建稀疏三维地图的图像。
方式2、对于任意两幅相邻图像,可以分别提取特征点。然后根据匹配的特征点的数量,确定相邻图像的相似度。之后将相邻图像的相似度大于或等于预设值的图像,作为用于构建稀疏三维地图的图像。
上述实施例是以通过手机的SLAM系统为某些场景构建稀疏三维地图为例进行示例性说明的。在另一些实施例中,针对某些对相机位姿的精确度要求较高的拍摄场景,可能需要建立密集三维地图,如果处理器的处理能力不支持建立密集三维地图,那么手机可以向服务器实时发送扫描的图像。在服务器接收图像后,可以根据接收到的图像,通过服务器的SLAM系统构建密集三维地图。对于由服务器的SLAM系统构建密集三维地图的实现方式,可以参照由手机的SLAM系统构建密集三维地图的描述,此处不再赘述。
五、计算目标相机位姿和目标人物位姿
首先,为了更清楚示意AR指引生成与渲染过程,结合图10,对与该过程相关的世界坐标系、相机坐标系和图像坐标系进行示例性地说明。
图10示出了世界坐标系、相机坐标系和图像坐标系的示意图。世界坐标系可以用Ow-XwYwZw表示,用于描述相机在物理环境中的位置。世界坐标系的中心点Ow可以为物理环境中的任意一点。在一些实施例中,可以将相机的初始位姿作为世界坐标系的中心点。相机坐标系可以用如图10所示的Oc -XcYcZc表示。在相机坐标系中,以摄像机模型的光心Oc作为原点,以摄像机模型的光轴为Zc轴,以平行于物理成像平面o-xy的平面OcXcYc作为XY平面。图像坐标系可以用如图10所示的o-xy表示。在图像坐标系中,以图像中心o作为原点,以平行于图像相邻两边作为x轴和y轴。
从世界坐标系变换到相机坐标系属于刚性变换,即,物体不会发生形变,只需要进行旋转和平移。假设点P在世界坐标系的三维坐标为P(Xw,Yw,Zw),在相机坐标系的三维坐标为P(Xc,Yc,Zc),则存在下述关系1:
Figure DEST_PATH_IMAGE001
其中,R表示旋转矩阵,T表示偏移向量。
从相机坐标系到图像坐标系属于透视投影关系,P(Xc,Yc,Zc)在图像坐标系的投影点可以表示为p(x,y),则存在下述关系2:
Figure DEST_PATH_IMAGE002
其中,f为相机焦距,相机焦距等于光心Oc与图像中心o的距离。
具体到本申请实施例,SLAM系统基于世界坐标系构建了三维地图。在计算得到全景图像的最佳构图区域之后,手机可以采用预设算法从最佳构图区域图像中提取多个特征点。若以最佳构图区域图像的中心为原点建立图像坐标系,则可以确定多个特征点中的每个特征点在图像坐标系中的坐标。进一步地,由于该三维地图是根据手机采集的多个图像的特征点构建的,最佳构图区域也是由手机采集的多个图像拼接得到的,因此最佳构图区域的每个特征点分别与该三维地图的一个位置存在映射关系。也就是说,对于每个特征点,可以确定在图像坐标系中的二维坐标,以及在SLAM世界坐标系中的三维坐标。
在确定每个特征点的二维坐标和三维坐标之后,可以根据每个特征点的二维坐标和三维坐标,使用PnP求解算法计算从世界坐标系到相机坐标系变换的偏移向量和旋转矩阵。由于虚拟相机在SLAM世界坐标系中的三维坐标可以用从世界坐标系到相机坐标系变换的偏移向量表示,虚拟相机在SLAM世界坐标系中的旋转角度可以用从世界坐标系到相机坐标系变换的旋转矩阵表示,因此计算得到偏移向量和旋转矩阵,相当于确定了与最佳构图区域图像对应的目标相机位姿。
上述PnP求解算法包括但不限于:P3P算法、直接线性变换(direct lineartransformation ,DLT)算法和有效PnP(efficient perspective-n-point,EPnP)算法。此外,还可以采用非线性优化的方式构建最小二乘问题并迭代求解,例如光束平差(bundleadjustment,BA)算法等。
下面以P3P算法为例对求解相机位姿的过程进行示例性说明。
图11示出了利用P3P算法求解相机位姿的示意图。假设相机光心为点O,世界坐标系的点A、B、C分别对应于图像坐标系的点a、b、c,也就是说,点a是世界坐标系的点A在相机成像平面上的投影,点b是世界坐标系的点B在相机成像平面上的投影,点c是世界坐标系的点C在相机成像平面上的投影。需要说明的是,由A、B、C组成的平面ABC,与相机成像平面(即点a、b、c所在的平面)可以平行,也可以不平行,本申请实施例不作限定。
根据余弦定理可得:
OA2+ OB2-2OA·OB·cos(a,b) = AB2
OB2+ OC2-2OB·OC·cos(b,c) = BC2
OA2+ OC2-2OA·OC·cos(a,b) = AC2
将x=OA/OC,y=OB/OC代入上述公式,则得到:
x2+y2-2xycos(a,b) = AB2/OC2
y2+1-2ycos(b,c) = BC2/OC2
x2+1-2xcos(a,c) = AC2/OC2
令v=AB2/OC2,uv=BC2/OC2,wv=AC2/OC2,则有:
x2+y2-2xycos(a,b)-v =0
y2+1-2ycos(b,c)-uv =0
x2+1-2xcos(a,c)-wv =0
联立公式,则有:
(1-u)y2-ux2-cos(b,c)y+2uxycos(a,b)+1=0
(1-w)y2-wy2-cos(a,c)y+2wxycos(a,b)+1=0
由于图像坐标系的点a、b、c的位置已知,可以计算得到cos(a, b)、cos(b, c)和cos(a, c)。另外,u=BC2/AB2,w=AC2/AB2可以通过点A、B、C在世界坐标系的坐标计算得到。这样,x和y是未知的,随着相机移动会发生变化。因此,P3P问题转换成关于x和y的一个二元二次方程,即多项式方程。该方程可以得到四个解。
然后,可以用验证点D来计算这四个解中的最可能的解,得到点A、B、C在相机坐标系的坐标。根据A、B和C在相机坐标系的坐标,通过世界坐标系到相机坐标系的变化,可以求解得到目标相机位姿。该目标相机位姿包括在世界坐标系中的三维坐标和旋转角度。
在一些实施例中,在拍摄场景的拍摄对象包括人物的情况下,即在拍摄场景的图像内容包括人物图像的情况下,本申请实施例还可以根据虚拟相机在世界坐标系中的旋转角度,确定目标人物位姿;再按照该目标人物位姿,渲染虚拟人物图像。其中,该目标人物位姿包括:虚拟人物图像在世界坐标系中的三维坐标,虚拟人物图像在世界坐标系中的姿态。
可以采用下述方式确定目标人物位姿:
方式1、手机预先设置不同旋转角度与人物位姿的对应关系,其中,一个旋转角度对应至少一个人物位姿。在按照上述实施例的方法确定虚拟相机在世界坐标系中的旋转角度后,手机可以根据上述对应关系,可以确定与该旋转角度对应的目标人物位姿。
例如,当用户持手机俯拍某人时,被拍摄者可能需要抬头;当用户持手机仰拍某人时,被拍摄者可能需要低头。
方式2、手机根据虚拟相机在世界坐标系中的旋转角度、人物类型以及人物数量等,确定人物位姿,以指引被拍摄者调整在拍摄场景中的站位和姿态。其中,人物类型可以是儿童、老年人、男性或女性等,人物数量是被拍摄者的数量。
示例性的,手机预先存储有可以预先存储区一个用于指引人像姿态的神经网络模型。该神经网络模型的构建方式如下:采集各种旋转角度下的大量人物照片,并按照预设人像美感评估算法从这些照片中筛选出人像站位和姿态符合美感的照片。然后采用预设算法识别方式,确定出人物类型、人物数量和人物位姿。再然后,对于大量人物照片中的每张照片,均执行下述训练操作:将一张照片对应的相机位姿、人物类型和人物数量作为神经网络模型的输入数据,将该一张照片的人物位姿作为真值。通过反复训练,最终可以构建一个用于指引人像姿态的神经网络模型。
需要说明的是,对于不同的相机旋转角度,输出结果有所不同。对于不同的人物类型,输出结果也有所不同。例如,当用户持手机拍摄儿童时,被拍摄者的姿态可能需要更活泼;当用户持手机拍摄成年人时,被拍摄者的姿态可能需要更稳重。此外,对于不同的人物数量,输出结果也有所不同。例如,当用户持手机拍摄较多人物时,被拍摄者的站位可能需要更集中;当用户持手机拍摄某个人物时,被拍摄者的站位可能需要更突出。
在拍摄构图阶段,手机可以根据采集的拍摄场景的图像序列,采用预设算法识别方式,确定出人物类型和人物数量。另外,根据三维地图和最佳构图区域,计算得到了目标相机位姿。如此,手机可以将目标相机位姿(主要是目标旋转角度)、人物类型和人物数量输入上述神经网络模型。之后,根据神经网络模型的输出结果,可以得到目标人物位姿。
示例性的,图12为本申请实施例提供的人体关键点的示意图。与相机或手机有所不同,由于人体体积较大且能做出各种动作或姿态,因此确定人体位姿(即人物位姿)的方式较为复杂。根据人体的骨骼、关节和面部器官分布,可以用如图12中的(a)所示的18个人体关键点表示人体位姿。在将目标相机位姿、人物类型和人物数量输入神经网络模型后,神经网络模型的输出结果可以为如图12中的(b)所示的18个人体关键点,每个人体关键点可以用世界坐标系的三维坐标表示。如此,由这18个人体关键点组成了目标人物位姿。可以理解,还可以采用更少或更多的人体关键点的三维坐标组成目标人物位姿。
六、AR指引生成与渲染,以及实时跟踪
结合上述实施例的描述,目标相机位姿包括在SLAM世界坐标系中的三维坐标和旋转角度,该三维坐标可以用于指示相机在三维坐标系的位置,该旋转角度可以用于指示三维坐标系的朝向。根据目标相机位姿包含的具体参数项,在手机进行AR指引生成与渲染时,可以划分为下述几种实施方式:
实施方式一:
在这种实施方式中,相机在SLAM世界坐标系中的三维坐标不变,仅旋转角度发生变化。
下面以拍摄对象包括人物为例进行示例说明。图13示出了在世界坐标系中的虚拟相机图像和虚拟人物图像的示意图。图14示出了在手机屏幕渲染与图13对应的虚拟相机图像和虚拟人物图像的示意图。可以理解,在拍摄对象不包括人物的情况下,在世界坐标系中仅包括虚拟相机图像,相应地,在手机屏幕仅渲染虚拟相机图像。
如图13所示,假设世界坐标系Ow-XwYwZw的中心点为相机的初始位置,世界坐标系的Zw轴为相机在初始位置光轴的方向,世界坐标系的XwYw平面与相机的成像平面平行。当目标相机位姿仅包括旋转角度时,相机在世界坐标系中绕Xw轴旋转角度α,绕Yw轴旋转角度β,绕Zw轴旋转角度γ。另外,被拍摄者在世界坐标系的站位用点P1(X1,Y1,Z1)表示,被拍摄者的姿态在世界坐标系由多个点云组成,从而被拍摄者在世界坐标系的站位和拍摄对象的姿态构成了虚拟人物图像。
如图14所示,在拍摄预览画面上,可以以半透明方式渲染出虚拟相机和虚拟人物图像。需要说明的是,为了更清楚示意虚拟相机和虚拟人物图像,预览画面未示出拍摄预览画面。
针对虚拟相机图像:初始位姿可以用Ow-XwYwZw表示,当前位姿可以用Ow-X2Y2Z2表示,最终想要达到的目标相机位姿可以用Ow-X1Y1Z1表示。在转动相机的过程中,随着当前位姿的实时变化,Ow-X2Y2Z2也会实时发生变化。当Ow-X2Y2Z2与Ow-X1Y1Z1重合时,拍摄者可以据此确认已经将相机转动到目标相机位姿,此时预览画面处于最佳构图状态。
针对虚拟人物图像:被拍摄者的当前站位的坐标为P1(X1,Y1,Z1),被拍摄者的目标站位的坐标为P2(X2,Y2,Z2)。在提示被拍摄者向目标站位移动的过程中,手机通过摄像头实时采集被拍摄者的图像,以确定被拍摄者当前站位和姿态。如果当前站位的坐标P1(X1,Y1,Z1)与当前站位的坐标P2(X2,Y2,Z2)重合,且当前姿态与目标姿态相同,拍摄者可以据此确认被拍摄者已经完成人物位姿调整,此时预览画面处于最佳构图状态。
需要说明的是,拍摄者和被拍摄者可以为相同对象,也可以为不同对象。当拍摄者和被拍摄者为相同对象时,例如用户使用前置摄像头自拍的场景,用户可以直接根据屏幕提示,完成相机位姿和人物位姿调整。当拍摄者和被拍摄者为不同对象时,例如拍摄者使用后置摄像头为被拍摄者拍摄照片的场景,拍摄者可以完成相机位姿调整,同时告知被拍摄者是否完成人物位姿调整。
实施方式二:
在这种实施方式中,相机在SLAM世界坐标系中的旋转角度不变,仅三维坐标发生变化。
下面以拍摄对象包括人物为例进行示例说明。图15示出了在世界坐标系中的虚拟相机图像和虚拟人物图像的示意图。图16示出了在手机屏幕渲染与图15对应的虚拟相机图像和虚拟人物图像的示意图。可以理解,在拍摄对象不包括人物的情况下,在世界坐标系中仅包括虚拟相机图像,相应地,在手机屏幕仅渲染虚拟相机图像。
如图15所示,假设世界坐标系Ow-XwYwZw的中心点为相机的初始位置,世界坐标系的Zw轴为相机在初始位置光轴的方向,世界坐标系的XwYw与相机的成像平面平行。当目标相机位姿仅包括三维坐标时,相机的角度不变,仅需将相机从初始坐标(初始位置)移动到目标坐标P1(X1,Y1,Z1)。另外,被拍摄者在世界坐标系的站位用坐标P2(X2,Y2,Z2)表示,被拍摄者的姿态在世界坐标系由多个点云组成,从而被拍摄者在世界坐标系的站位和拍摄对象的姿态构成了虚拟人物图像。
如图16所示,在拍摄预览画面上,可以以半透明方式渲染出虚拟相机和虚拟人物图像。需要说明的是,为了更清楚示意虚拟相机图像和虚拟人物图像,预览画面未示出拍摄预览画面。
针对虚拟相机图像:初始位置在世界坐标系的原点,当前位置的坐标为P1(X1,Y1,Z1),目标位置的坐标为P2(X2,Y2,Z2)。在移动相机的过程中,随着当前位置的实时变化,坐标P1(X1,Y1,Z1)也会实时发生变化。当坐标P1(X1,Y1,Z1)与坐标P2(X2,Y2,Z2)重合时,拍摄者可以据此确认已经将相机转动到目标位置,此时预览画面处于最佳构图状态。
针对虚拟人物图像:被拍摄者的当前站位的坐标为P4(X4,Y4,Z4),被拍摄者的目标站位的坐标为P3(X3,Y3,Z3)。在提示被拍摄者向目标站位P3(X3,Y3,Z3)移动的过程中,手机通过摄像头实时采集被拍摄者的图像,以确定被拍摄者当前站位和姿态。如果当前站位的坐标P4(X4,Y4,Z4)与目标站位的坐标P3(X3,Y3,Z3)重合,且当前姿态与目标姿态相同,拍摄者可以据此确认被拍摄者已经完成人体姿态调整,此时预览画面处于最佳构图状态。
实施方式三:
在这种实施方式中,相机在SLAM世界坐标系中的三维坐标和旋转角度均发生变化。
下面以拍摄对象包括人物为例进行示例说明。图17示出了在世界坐标系中的虚拟相机和虚拟人物图像的示意图。图18示出了在手机屏幕渲染与图17对应的虚拟相机图像和虚拟人物图像的示意图。可以理解,在拍摄对象不包括人物的情况下,在世界坐标系中仅包括虚拟相机,相应地,在手机屏幕仅渲染虚拟相机图像。
如图17所示,假设世界坐标系Ow-XwYwZw的中心点为相机的初始位置,世界坐标系的Zw轴为相机在初始位置光轴的方向,世界坐标系的XwYw平面与相机的成像平面平行。当目标相机位姿包括三维坐标和旋转角度时,一方面,相机从初始坐标(初始位置)移动到目标坐标P1(X1,Y1,Z1);另一方面,相机在世界坐标系中绕Xw轴旋转角度α,绕Yw轴旋转角度β,绕Zw轴旋转角度γ。此外,被拍摄者在世界坐标系的站位用坐标P2(X2,Y2,Z2)表示,被拍摄者的姿态在世界坐标系由多个点云组成,从而被拍摄者在世界坐标系的站位和拍摄对象的姿态构成了虚拟人物图像。
如图18所示,在拍摄预览画面上,可以以半透明方式渲染出虚拟相机图像和虚拟人物图像。需要说明的是,为了更清楚示意虚拟相机图像和虚拟人物图像,预览画面未示出拍摄预览画面。
针对虚拟相机图像:初始位姿的位置坐标可以为世界坐标系Ow-XwYwZw的原点,当前位姿的位置坐标可以为世界坐标系的P5(X5,Y5,Z5),目标相机位姿的位置坐标可以为世界坐标系的P1(X1,Y1,Z1)。在移动及转动相机的过程中,随着当前位姿的实时变化。在当前位姿与目标相机位姿重合时,拍摄者可以据此确认已经将相机调整到目标相机位姿,此时预览画面处于最佳构图状态。
针对虚拟人物图像:被拍摄者的当前站位的坐标为P4(X4,Y4,Z4),被拍摄者的目标站位的坐标为P2(X2,Y2,Z2)。在提示被拍摄者向目标站位移动的过程中,手机通过摄像头实时采集被拍摄者的图像,以在世界坐标系中确定被拍摄者当前站位和姿态。如果当前站位的坐标P4(X4,Y4,Z4)与目标站位的坐标P2(X2,Y2,Z2)重合,且当前姿态与目标姿态相同,拍摄者可以据此确认被拍摄者已经完成人物位姿调整,此时预览画面处于最佳构图状态。
需要说明的是,为了更清楚简洁地示意人物位姿,上述图13至图18是以站位的坐标表示虚拟人物和被拍摄者在世界坐标系中的位置为例进行示例性说明的,其并不对本申请实施例形成限定。在实际实现时,可以采用如图12所示的18个人体关键点的三维坐标表示人物在世界坐标中的三维坐标和姿态,即在世界坐标中的位姿。
在上述几种实施方式中,通过在三维场景中渲染出被拍摄者的虚拟人物图像以及虚拟相机图像,使得拍摄者调整相机位姿,并使得被拍摄者调整人物位姿。另外,根据采集的图像,实时确定相机当前位姿以及被拍摄者的当前位姿,并显示虚拟箭头等指引标识,使得拍摄者确定是否完成相机位姿调整,使得被拍摄者确定是否完成人物位姿调整。
图19为本申请另一实施例提供的拍摄指引方案的总流程示意图。相应的,图20为与图19的拍摄指引方案对应的拍摄指引方法的示意图。下面以该方法的执行主体为如图1所示的电子设备为例进行说明。如图20所示,该方法可以包括下述的S101至S111。
S101、电子设备获取多帧图像。该多帧图像为从不同拍摄角度扫描目标拍摄场景得到的图像。
在一些实施例中,拍摄者可以根据拍摄经验,将摄像头从不同拍摄角度朝向目标拍摄场景,从而电子设备可以采集到由多帧图像组成的图像序列。
在另一些实施例中,拍摄者可以根据电子设备的扫描提示信息,将摄像头从不同拍摄角度朝向拍摄场景,从而电子设备可以采集到由多帧图像组成的图像序列。
具体地,电子设备可以响应于用户对“照片”或“视频”功能的选择操作,从目标角度采集目标拍摄场景的拍摄预览图像。之后,识别该拍摄预览图像的图像内容,并获取拍摄预览图像的景深信息。然后,根据拍摄预览图像的图像内容和景深信息,确定目标拍摄场景的场景类型。由于电子设备预先存储了与每种场景类型对应的扫描策略,因此电子设备可以确定与目标拍摄场景的场景类型对应的扫描策略,并输出扫描提示信息。其中,该扫描提示信息可以用于提示用户按照扫描策略从不同拍摄角度扫描目标拍摄场景。
S102、电子设备根据该多帧图像构建三维地图。该三维地图的坐标系为世界坐标系。
在一些实施例中,上述三维地图可以为稀疏三维地图。
在扫描到目标拍摄场景的前N帧图像之后,电子设备启动SLAM系统,N为大于或等于2的整数;然后,SLAM系统根据前N帧图像构建稀疏三维地图。在实时扫描到目标拍摄场景的其他帧图像后,SLAM系统根据该其他帧图像,更新该稀疏三维地图。
S103、电子设备将该多帧图像拼接为全景图像,并在全景图像中确定最佳构图区域。
在采集各帧图像时,手机会实时记录各帧图像的采集顺序。因此,电子设备可以根据多帧图像的采集顺序,按照递归方式依次进行图像拼接,得到全景图像。之后,将该全景图像输入第二神经网络模型,从而可以根据该第二神经网络模型的输出结果,计算得到该全景图像的最佳构图区域。
S104、电子设备根据该三维地图和该最佳构图区域,确定目标相机位姿。
上述目标相机位姿可以包括以下至少一项:
目标三维坐标,该目标三维坐标用于指示虚拟相机在世界坐标系中的位置;
目标旋转角度,该目标旋转角度用于指示虚拟相机在世界坐标系中的朝向。
在一些实施例中,电子设备可以采用预设算法从全景图像的最佳构图区域提取多个特征点。在世界坐标系中,确定与该多个特征点的每个特征点对应的三维坐标。然后,根据多个特征点以及与每个特征点对应的三维坐标,利用PnP算法确定从世界坐标系到相机坐标系变换的偏移向量和旋转矩阵,从而得到了目标三维坐标和目标旋转角度。
S105、电子设备识别该多帧图像的图像内容;并在多帧图像的图像内容包括人物图像的情况下,基于目标旋转角度确定目标人物位姿。
上述目标人物位姿可以包括:
虚拟人物图像在世界坐标系中的三维坐标;
虚拟人物图像在世界坐标系中的姿态。
在一些实施例中,上述多帧图像的图像内容还可以包括人物类型和人物数量。相应的,基于目标旋转角度确定目标人物位姿,具体可以包括:将目标旋转角度、人物类型和人物数量,输入第一神经网络模型;根据第一神经网络模型的输出结果,得到目标人物位姿。
S106、电子设备按照目标相机位姿,渲染第一虚拟相机图像;并按照目标人物位姿,渲染第一虚拟人物图像。
S107、电子设备根据三维地图和实时扫描目标拍摄场景得到的图像,获取在世界坐标系中的当前相机位姿以及被拍摄者的当前人物位姿。
上述当前相机位姿包括:
当前三维坐标,当前三维坐标用于指示电子设备在世界坐标系中的位置;
当前旋转角度,当前旋转角度用于指示电子设备在世界坐标系中的朝向。
上述当前人物位姿包括:
被拍摄者在世界坐标系中的三维坐标;
被拍摄者在世界坐标系中的姿态。
S108、判断当前相机位姿与目标相机位姿是否匹配。若不匹配,则执行下述S109。若匹配,则结束匹配过程。
S109、电子设备按照当前相机位姿,渲染第二虚拟相机图像,以及渲染从该第二虚拟相机图像向第一虚拟相机图像移动的第一指引标识。该第一指引标识用于指示拍摄者将电子设备从当前相机位姿调整为目标相机位姿。
S110、判断当前人物位姿与目标人物位姿是否匹配。若不匹配,则执行下述S111。若匹配,则结束匹配过程。
S111、电子设备按照当前人物位姿,渲染第二虚拟人物图像,以及渲染从该第二虚拟人物图像向该第一虚拟人物图像移动的第二指引标识。该第二指引标识用于指示被拍摄者由当前人物位姿调整为目标人物位姿。
需要说明的是,上述S108-S109、S110-S111可以同时执行。在另一些实施例中,也可以先执行S108-S109,再执行S110-S111;还可以先执行S110-S111,再执行S108-S109。
进一步地,在相机在世界坐标系中的当前位姿与目标相机位姿匹配,且人物在世界坐标系中的当前位姿与目标人物位姿匹配的情况下,电子设备可以在屏幕显示拍摄提示信息。该拍摄提示信息可以用于提示用户已完成最佳构图,能够进行照片或视频拍摄,从而用户可以拍摄照片和视频。
对于上述S101至S111的实现方式可以参照上述实施例的具体描述,此处不再赘述。
通过该方案,在扫描到拍摄场景的多帧图像之后,会构建三维地图并确定最佳构图区域,从而可以确定与最佳构图对应的目标相机位姿。通过在三维场景中渲染出与目标相机位姿对应的虚拟相机图像,使得拍摄者可以根据虚拟相机图像,将相机由当前位姿调整到目标相机位姿,使得拍摄者可基于虚拟相机图像移动或旋转相机(也可以指摄像头),改变相机位置和朝向。另外,通过在三维场景中渲染出与目标人物位姿对应的虚拟人物图像,使得被拍摄者可以根据虚拟人物图像,调整站位和姿态。这样使得取景框显示的画面为最佳构图画面,如此用户可以拍摄出效果更好的图像,提升了用户的拍摄体验。
本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
可以理解的是,上述各个方法实施例中由电子设备实现的方法和操作,也可以由可用于电子设备的部件(例如芯片或者电路)实现。
上文描述了本申请提供的方法实施例,下文将描述本申请提供的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
上文主要从方法步骤的角度对本申请实施例提供的方案进行了描述。可以理解的是,为了实现上述功能,实施该方法的电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的保护范围。
本申请实施例可以根据上述方法示例,对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有其它可行的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
图21为本申请实施例提供的拍摄指引装置的示意性框图。该装置200可以用于执行上文方法实施例中电子设备所执行的动作。该装置200包括采集模块201、处理模块202和显示模块203。
采集模块201,可以用于获取多帧图像,该多帧图像为从不同拍摄角度扫描目标拍摄场景得到的图像;
处理模块202,可以用于根据该多帧图像构建三维地图;将该多帧图像拼接为全景图像,并在全景图像中确定最佳构图区域;以及根据三维地图和最佳构图区域,确定目标相机位姿;
显示模块203,可以用于按照目标相机位姿,显示虚拟相机图像;
处理模块202,还可以用于根据该三维地图和实时扫描该目标拍摄场景得到的图像,获取电子设备的当前相机位姿;
显示模块203,还可以按照当前相机位姿,渲染向虚拟相机图像移动的第一指引标识,第一指引标识用于指示拍摄者将电子设备从当前相机位姿调整为目标相机位姿。
本申请实施例提供的拍摄指引装置,先获取拍摄场景的图像序列;再根据图像序列构建三维地图,并将图像序列拼接为全景图像,以获取最佳构图区域;然后,根据三维地图和最佳构图区域得到目标相机位姿,并渲染出与相机位姿对应的虚拟相机图像;再然后,根据实时扫描的图像获取当前相机位姿,并按照当前相机位姿,渲染向虚拟相机图像移动的指引标识。如此,拍摄者基于虚拟相机图像和指引标识,通过移动或旋转电子设备,将电子设备从当前相机位姿调整为目标相机位姿,从而提高了构图效果,进而使得拍摄出的图像效果更好。
根据本申请实施例的装置可对应于执行本申请实施例中描述的方法,并且装置的单元的上述和其它操作和/或功能分别为了实现方法的相应流程,为了简洁,在此不再赘述。
应理解,图1所示的电子设备可对应于图21所示的装置。其中,图1所示的电子设备中的摄像头11、处理器10、显示屏12,可以分别对应于图21中的装置200中的采集模块201、处理模块202和显示模块203。
在实际实现时,在电子设备运行时,处理器执行存储器中的计算机执行指令以通过电子设备执行上述方法的操作步骤。
可选地,在一些实施例中,本申请提供一种电子设备,包括处理器和摄像头,处理器与存储器耦合,处理器用于执行存储器中存储的计算机程序或指令,以使得电子设备实现上述各实施例中的方法。
可选地,在一些实施例中,本申请提供一种芯片系统,该芯片系统与存储器耦合,该芯片系统用于读取并执行存储器中存储的计算机程序或指令,以执行上述各实施例中的方法。
可选地,在一些实施例中,本申请提供一种电子设备,该电子设备包括芯片,该芯片用于读取并执行存储器存储的计算机程序或指令,使得各实施例中的方法被执行。
可选地,在一些实施例中,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
可选地,在一些实施例中,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
在本申请实施例中,电子设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。其中,硬件层可以包括中央处理器(central processingunit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。操作系统层的操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。应用层可以包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
本申请实施例并未对本申请实施例提供的方法的执行主体的具体结构进行特别限定,只要能够通过运行记录有本申请实施例提供的方法的代码的程序,以根据本申请实施例提供的方法进行通信即可。例如,本申请实施例提供的方法的执行主体可以是电子设备,或者,是电子设备中能够调用程序并执行程序的功能模块。
本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本文中使用的术语“制品”可以涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmableread-only memory,EPROM)、卡、棒或钥匙驱动器等)。
本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于:无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
应理解,本申请实施例中提及的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM)。例如,RAM可以用作外部高速缓存。作为示例而非限定,RAM可以包括如下多种形式:静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledata rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)可以集成在处理器中。
还需要说明的是,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的保护范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上,或者说对现有技术做出贡献的部分,或者该技术方案的部分,可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,该计算机软件产品包括若干指令,该指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。前述的存储介质可以包括但不限于:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种拍摄指引方法,其特征在于,所述方法包括:
根据多帧图像构建三维地图,所述多帧图像为电子设备从不同拍摄角度扫描目标拍摄场景得到的图像;
将所述多帧图像拼接为全景图像,并在所述全景图像中确定最佳构图区域;
根据所述最佳构图区域的多个特征点,以及所述三维地图中与所述多个特征点对应的三维坐标,确定与所述最佳构图区域对应的目标相机位姿;
按照所述目标相机位姿,渲染虚拟相机图像;
根据所述三维地图和实时扫描所述目标拍摄场景得到的图像,获取所述电子设备的当前相机位姿;
按照所述当前相机位姿,渲染向所述虚拟相机图像移动的第一指引标识,所述第一指引标识用于指示拍摄者将所述电子设备从所述当前相机位姿调整为所述目标相机位姿。
2.根据权利要求1所述的方法,其特征在于,所述三维地图的坐标系为世界坐标系;
所述目标相机位姿包括:
目标三维坐标,所述目标三维坐标用于指示虚拟相机在所述世界坐标系中的位置;
目标旋转角度,所述目标旋转角度用于指示虚拟相机在所述世界坐标系中的朝向;
所述当前相机位姿包括:
当前三维坐标,所述当前三维坐标用于指示所述电子设备在所述世界坐标系中的位置;
当前旋转角度,所述当前旋转角度用于指示所述电子设备在所述世界坐标系中的朝向。
3.根据权利要求2所述的方法,其特征在于,所述根据所述最佳构图区域的多个特征点,以及所述三维地图中与所述多个特征点对应的三维坐标,确定与所述最佳构图区域对应的目标相机位姿,包括:
从所述最佳构图区域提取所述多个特征点;
在所述世界坐标系中,确定与所述多个特征点的每个特征点对应的三维坐标;
根据所述每个特征点以及与所述每个特征点对应的三维坐标,确定所述目标三维坐标和所述目标旋转角度。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
识别所述多帧图像的图像内容;
在所述多帧图像的图像内容包括人物图像的情况下,基于所述目标旋转角度确定目标人物位姿;
按照所述目标人物位姿,渲染虚拟人物图像;
根据所述三维地图和实时扫描所述目标拍摄场景得到的图像,获取被拍摄者的当前人物位姿;
按照所述当前人物位姿,渲染向所述虚拟人物图像移动的第二指引标识,所述第二指引标识用于指示所述被拍摄者由所述当前人物位姿调整为所述目标人物位姿。
5.根据权利要求4所述的方法,其特征在于,所述目标人物位姿包括:
虚拟人物图像在所述世界坐标系中的三维坐标;
虚拟人物图像在所述世界坐标系中的姿态;
所述当前人物位姿包括:
所述被拍摄者在所述世界坐标系中的三维坐标;
所述被拍摄者在所述世界坐标系中的姿态。
6.根据权利要求4所述的方法,其特征在于,所述在所述多帧图像的图像内容包括人物图像的情况下,基于所述目标旋转角度确定目标人物位姿,包括:
在所述多帧图像的图像内容包括人物图像的情况下,基于所述人物图像确定人物类型和人物数量;
将所述目标旋转角度、所述人物类型和所述人物数量,输入第一神经网络模型;
根据所述第一神经网络模型的输出结果,得到所述目标人物位姿。
7.根据权利要求4所述的方法,其特征在于,所述虚拟人物图像为第一虚拟人物图像;
所述按照所述当前人物位姿,渲染向所述虚拟人物图像移动的第二指引标识,包括:
在所述当前人物位姿与所述目标人物位姿不匹配的情况下,渲染与所述当前人物位姿对应的第二虚拟人物图像,以及,渲染从所述第二虚拟人物图像向所述第一虚拟人物图像移动的所述第二指引标识。
8.根据权利要求1所述的方法,其特征在于,所述虚拟相机图像为第一虚拟相机图像;
所述按照所述当前相机位姿,渲染向所述虚拟相机图像移动的第一指引标识,包括:
在所述当前相机位姿与所述目标相机位姿不匹配的情况下,渲染与所述当前相机位姿对应的第二虚拟相机图像,以及,渲染从所述第二虚拟相机图像向所述第一虚拟相机图像移动的所述第一指引标识。
9.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述当前相机位姿与所述目标相机位姿匹配,且所述当前人物位姿与所述目标人物位姿匹配的情况下,显示拍摄提示信息,所述拍摄提示信息用于提示用户拍摄图像。
10.根据权利要求1所述的方法,其特征在于,所述三维地图为稀疏三维地图;所述根据多帧图像构建三维地图,包括:
在扫描到所述目标拍摄场景的前N帧图像之后,启动即时定位与地图构建系统;
所述即时定位与地图构建系统根据所述前N帧图像构建所述稀疏三维地图;
在实时扫描到所述目标拍摄场景的其他帧图像后,所述即时定位与地图构建系统根据所述其他帧图像,更新所述稀疏三维地图;
其中,N为大于或等于2的整数。
11.根据权利要求1所述的方法,其特征在于,所述将所述多帧图像拼接为全景图像,并在所述全景图像中确定最佳构图区域,包括:
根据所述多帧图像的采集顺序,按照递归方式依次拼接所述多帧图像,得到所述全景图像;
将所述全景图像输入第二神经网络模型;
根据所述第二神经网络模型的输出结果,得到所述最佳构图区域。
12.根据权利要求1所述的方法,其特征在于,所述根据多帧图像构建三维地图之前,所述方法还包括:
响应于目标操作,获取拍摄预览图像;
识别所述拍摄预览图像的图像内容;
根据所述拍摄预览图像的图像内容,确定所述目标拍摄场景的场景类型;
输出扫描提示信息,所述扫描提示信息用于提示拍摄者按照与所述场景类型对应的扫描策略,从不同拍摄角度扫描所述目标拍摄场景,得到所述多帧图像。
13.一种电子设备,其特征在于,包括处理器和摄像头,所述处理器与存储器耦合,所述处理器用于执行所述存储器中存储的计算机程序或指令,以使得所述电子设备实现如权利要求1至12中任一项所述的拍摄指引方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至12中任一项所述的拍摄指引方法。
CN202210065398.1A 2022-01-20 2022-01-20 拍摄指引方法及电子设备 Active CN114095662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210065398.1A CN114095662B (zh) 2022-01-20 2022-01-20 拍摄指引方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210065398.1A CN114095662B (zh) 2022-01-20 2022-01-20 拍摄指引方法及电子设备

Publications (2)

Publication Number Publication Date
CN114095662A CN114095662A (zh) 2022-02-25
CN114095662B true CN114095662B (zh) 2022-07-05

Family

ID=80308863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210065398.1A Active CN114095662B (zh) 2022-01-20 2022-01-20 拍摄指引方法及电子设备

Country Status (1)

Country Link
CN (1) CN114095662B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117036663B (zh) * 2022-04-18 2024-07-09 荣耀终端有限公司 视觉定位方法、设备和存储介质
CN117014651A (zh) * 2022-04-29 2023-11-07 北京字跳网络技术有限公司 一种视频生成方法及装置
CN115002345B (zh) * 2022-05-13 2024-02-13 北京字节跳动网络技术有限公司 一种图像校正方法、装置、电子设备及存储介质
CN115311360B (zh) * 2022-07-18 2023-06-16 北京城市网邻信息技术有限公司 在环拍中获取目标相机位姿的方法、装置及电子设备
CN115297315B (zh) * 2022-07-18 2024-07-26 北京城市网邻信息技术有限公司 用于环拍时拍摄中心点的矫正方法、装置及电子设备
CN115330936B (zh) * 2022-08-02 2024-07-12 荣耀终端有限公司 合成三维图像的方法、装置及电子设备
CN117119294B (zh) * 2023-08-24 2024-08-20 腾讯科技(深圳)有限公司 虚拟场景的拍摄方法、装置、设备、介质和程序

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226838A (zh) * 2013-04-10 2013-07-31 福州林景行信息技术有限公司 地理场景中移动监控目标的实时空间定位方法
EP3069100A2 (en) * 2013-11-12 2016-09-21 Smart Picture Technology, Inc. Collimation and homogenization system for an led luminaire
CN112927362A (zh) * 2021-04-07 2021-06-08 Oppo广东移动通信有限公司 地图重建方法及装置、计算机可读介质和电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106454074A (zh) * 2016-09-19 2017-02-22 努比亚技术有限公司 移动终端及拍摄处理方法
EP3825954A1 (en) * 2018-07-18 2021-05-26 SZ DJI Technology Co., Ltd. Photographing method and device and unmanned aerial vehicle
CN111640181A (zh) * 2020-05-14 2020-09-08 佳都新太科技股份有限公司 一种交互式视频投影方法、装置、设备及存储介质
CN113709441B (zh) * 2020-05-22 2023-05-02 杭州海康威视数字技术股份有限公司 一种扫描设备、相机的位姿确定方法、装置及电子设备
CN113674416B (zh) * 2021-08-26 2024-04-26 中国电子科技集团公司信息科学研究院 三维地图的构建方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226838A (zh) * 2013-04-10 2013-07-31 福州林景行信息技术有限公司 地理场景中移动监控目标的实时空间定位方法
EP3069100A2 (en) * 2013-11-12 2016-09-21 Smart Picture Technology, Inc. Collimation and homogenization system for an led luminaire
CN112927362A (zh) * 2021-04-07 2021-06-08 Oppo广东移动通信有限公司 地图重建方法及装置、计算机可读介质和电子设备

Also Published As

Publication number Publication date
CN114095662A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
CN114095662B (zh) 拍摄指引方法及电子设备
CN111462311B (zh) 全景图生成方法及装置、存储介质
US11870951B2 (en) Photographing method and terminal
WO2017088678A1 (zh) 长曝光全景图像拍摄装置和方法
WO2023011013A1 (zh) 视频图像的拼缝搜索方法、视频图像的拼接方法和装置
CN106412558B (zh) 一种立体虚拟现实直播方法、装置及设备
JP7023662B2 (ja) 画像処理装置、撮像装置、画像処理装置の制御方法およびプログラム
TW202203085A (zh) 自動相機指導和設置調整
CN111866523B (zh) 全景视频合成方法、装置、电子设备和计算机存储介质
CN110278366B (zh) 一种全景图像虚化方法、终端及计算机可读存储介质
CN107633497A (zh) 一种图像景深渲染方法、系统及终端
EP3991132B1 (en) Imaging system, image processing apparatus, imaging device, and recording medium
CN113454980A (zh) 全景拍摄方法、电子设备及存储介质
KR20150091064A (ko) 단일의 카메라를 이용하여 3d 이미지를 캡쳐하는 방법 및 시스템
US20160292842A1 (en) Method and Apparatus for Enhanced Digital Imaging
WO2022227752A1 (zh) 拍照方法及装置
US20090059018A1 (en) Navigation assisted mosaic photography
TWI696147B (zh) 全景圖形成方法及系統
CN114071009B (zh) 一种拍摄方法及设备
Ha et al. Embedded panoramic mosaic system using auto-shot interface
CN113747044A (zh) 一种全景拍摄方法及设备
Popovic et al. Design and implementation of real-time multi-sensor vision systems
CN114339029B (zh) 拍摄方法、装置及电子设备
KR102052725B1 (ko) 이미지 스티칭 기법을 이용한 차량 내부의 vr 이미지 생성 방법 및 장치
CN109191396B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230914

Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New Area, Pudong New Area, Shanghai

Patentee after: Shanghai Glory Smart Technology Development Co.,Ltd.

Address before: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee before: Honor Device Co.,Ltd.

TR01 Transfer of patent right