图像处理方法、设备和存储介质
技术领域
本申请涉及图像处理技术领域,特别是涉及一种图像处理方法、设备及存储介质。
背景技术
AR(Augmented Reality,增强现实)是指将三维虚拟物体与摄像头实时采集到的图像做合成处理,使得三维虚拟物体与真实场景叠加呈现。
目前的AR技术可以在一定程度上实现三维虚拟物体与真实场景的互动。例如,在摄像头实时采集到的图像中显示有桌面,待合成的三维虚拟物体为苹果,在合成三维虚拟物体和实时采集图像时,会识别图像中的桌面,并将三维虚拟的苹果合成在桌面上,呈现出桌子上摆放有苹果的显示效果。
虽然目前的AR技术能够实现如上所述的显示效果,其渲染方式仍然有待提高,以便呈现更为生动的显示效果。
发明内容
为改进AR技术的渲染效果,本申请实施例提出一种图像处理方法、设备和存储介质。
第一方面,本申请实施例提供一种图像处理方法,该方法包括:
从图像采集模块实时采集到的图像中识别目标物体;
获取所述目标物体的预设三维模型;
确定所述预设三维模型的反射面;
绘制目标三维虚拟物体在所述反射面的镜面反射图像;
在所述图像采集模块实时采集到的图像中合成所述目标三维虚拟物体、所述预设三维模型和所述镜面反射图像,所述目标物体和所述预设三维模型在所述图像中对齐。
本申请实施例提供的方法可以在真实场景中拍摄到的目标物体上呈现目标三维虚拟物体的镜面反射图像,为AR场景提供了更为生动的显示效果。为了达到这一目的,为目标物体预先创建三维模型,渲染过程中,在三维模型的反射面上绘制目标三维虚拟物体的镜面反射图像。
可选的,预设三维模型为目标物体的遮罩模型,遮罩模型是根据目标物体的点云模型创建的。
由于遮罩模型的结构较之点云模型更为简单,因此在渲染过程中使用遮罩模型可减少运算量,提高运算效率。
可选的,所述绘制目标三维虚拟物体在所述反射面的镜面反射图像,其实现方式可以包括:
在相机空间中确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置,以及所述目标三维虚拟物体的法线与所述反射面的交点;
以所述镜面反射成像位置作为取景位置,以所述反射面在所述交点处的法线方向作为取景方向,按照所述取景位置和取景方向,在所述反射面上绘制所述目标三维虚拟物体的图像作为所述镜面反射图像。
实际应用中,可利用镜面成像原理,在相机空间中确定出镜像反射成像位置,以该位置作为取景位置,以反射面在上述交点处的法线方向为取景朝向,对目标三维虚拟物体进行取景截图,并将该截图绘制到反射面的对应位置,从而实现镜面反射图像的绘制,其实现方式简单、且处理速度较快。
在一个实现方式中,可以根据所述图像采集模块的朝向,所述图像采集模块的位置,所述目标三维虚拟物体的位置,和所述反射面的位置,确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置。
在另一个实现方式中,可以根据前一帧确定的所述的镜面反射成像位置,确定当前帧的所述镜面反射成像位置。
第二方面,本申请实施例提供一种电子设备,包括:
目标物体识别模块,用于从图像采集模块实时采集到的图像中识别目标物体;
三维模型获取模块,用于获取所述目标物体的预设三维模型;
反射面确定模块,用于确定所述预设三维模型的反射面;
镜面反射图像绘制模块,用于绘制目标三维虚拟物体在所述反射面的镜面反射图像;
图像合成模块,用于在所述图像采集模块实时采集到的图像中合成所述目标三维虚拟物体、所述预设三维模型和所述镜面反射图像,所述目标物体和所述预设三维模型在所述图像中对齐。
本申请实施例提供的电子设备可以在真实场景中拍摄到的目标物体上呈现目标三维虚拟物体的镜面反射图像,为AR场景提供了更为生动的显示效果。为了达到这一目的,为目标物体预先创建三维模型,渲染过程中,在三维模型的反射面上绘制目标三维虚拟物体的镜面反射图像。
可选的,所述预设三维模型为所述目标物体的遮罩模型,所述遮罩模型是根据所述目标物体的点云模型创建的。
由于遮罩模型的结构较之点云模型更为简单,因此在渲染过程中使用遮罩模型可减少运算量,提高运算效率。
可选的,所述镜面反射图像绘制模块用于:
在相机空间中确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置,以及所述目标三维虚拟物体的法线与所述反射面的交点;
以所述镜面反射成像位置作为取景位置,以所述反射面在所述交点处的法线方向作为取景方向,按照所述取景位置和取景方向,在所述反射面上绘制所述目标三维虚拟物体的图像作为所述镜面反射图像。
实际应用中,可利用镜面成像原理,在相机空间中确定出镜像反射成像位置,以该位置作为取景位置,以反射面在上述交点处的法线方向为取景朝向,对目标三维虚拟物体进行取景截图,并将该截图绘制到反射面的对应位置,从而实现镜面反射图像的绘制,其实现方式简单、且处理速度较快。
可选的,所述镜面反射图像绘制模块用于:
根据所述图像采集模块的朝向,所述图像采集模块的位置,所述目标三维虚拟物体的位置,和所述反射面的位置,确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置;或者,
根据前一帧确定的所述的镜面反射成像位置,确定当前帧的所述镜面反射成像位置。
第三方面,本发明实施例提供一种电子设备,包括处理器和存储器;
存储器用于存储执行上述第一方面任意方法实施例的程序;
处理器被配置为执行存储器中存储的程序。
本申请实施例提供的电子设备可以在真实场景中拍摄到的目标物体上呈现目标三维虚拟物体的镜面反射图像,为AR场景提供了更为生动的显示效果。为了达到这一目的,为目标物体预先创建三维模型,渲染过程中,在三维模型的反射面上绘制目标三维虚拟物体的镜面反射图像。
第四方面,本发明实施例提供一种计算机可读存储介质,存储有实现上述第一方面任意方法实施例的程序。
本申请实施例提供的计算机可读存储介质中存储的程序可以在真实场景中拍摄到的目标物体上呈现目标三维虚拟物体的镜面反射图像,为AR场景提供了更为生动的显示效果。为了达到这一目的,为目标物体预先创建三维模型,渲染过程中,在三维模型的反射面上绘制目标三维虚拟物体的镜面反射图像。
附图说明
图1为本申请一个实施例提供的图像处理方法流程图;
图2为本申请一个实施例提供的电子设备的框图;
图3为本申请一个实施例提供的移动终端的结构示意图;
图4为本申请一个实施例提供的服务端设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
本申请实施例提供一种图像处理方法,该方法既可以应用于终端设备,也可以应用于服务端设备,如图1所示,该方法包括:
步骤101、从图像采集模块实时采集到的图像中识别目标物体。
若在服务端设备上实现本方法,服务端设备从终端设备上获取该图像,并对图像中的目标物体进行识别。
实际应用中,可以根据需要定义目标物体。例如,目标物体为指定的建筑物。
步骤102、获取所述目标物体的预设三维模型。
本申请实施例不对目标物体的三维模型的创建方式、模型类型进行限定。既可以将该目标物体的点云模型作为其三维模型,也可以利用点云模型创建遮罩模型,将遮罩模型作为目标物体的预设三维模型。
若本方法在终端设备上实现,终端设备可以从本地获取预设三维模型,也可以从服务端设备获取预设三维模型。
步骤103、确定所述预设三维模型的反射面。
一种实现方式中,预先确定三维模型的反射面,在步骤103中,从预设的反射面中选择与图像采集模块的当前视角匹配的反射面。另一种实现方式中,进一步对目标物体进行图像识别,识别目标物体的反射区域(若目标物体是建筑,识别出建筑的玻璃墙为反射区域),在三维模型中查找该反射区域对应的面作为反射面。
步骤104、绘制目标三维虚拟物体在所述反射面的镜面反射图像。
步骤105、在所述图像采集模块实时采集到的图像中合成所述目标三维虚拟物体、所述预设三维模型和所述镜面反射图像,所述目标物体和所述预设三维模型在所述图像中对齐。
若本方法应用在服务端设备上,那么,服务端设备将合成之后的图像发送给终端设备,以便终端设备在其显示屏上显示合成后的图像。
即在合成的图像中同时呈现目标物体和目标三维虚拟物体,且呈现出目标三维虚拟物体在目标物体上的镜面反射效果。
本申请实施例提供的方法可以在真实场景中拍摄到的目标物体上呈现目标三维虚拟物体的镜面反射图像,为AR场景提供了更为生动的显示效果。为了达到这一目的,为目标物体预先创建三维模型,渲染过程中,在三维模型的反射面上绘制目标三维虚拟物体的镜面反射图像。
由于遮罩模型的结构较之点云模型更为简单,因此在渲染过程中使用遮罩模型可减少运算量,提高运算效率。
可选的,所述绘制目标三维虚拟物体在所述反射面的镜面反射图像,其实现方式可以包括:
在相机空间中确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置,以及所述目标三维虚拟物体的法线与所述反射面的交点;
以所述镜面反射成像位置作为取景位置,以所述反射面在所述交点处的法线方向作为取景方向,按照所述取景位置和取景方向,在所述反射面上绘制所述目标三维虚拟物体的图像作为所述镜面反射图像。
实际应用中,可利用镜面成像原理,在相机空间中确定出镜像反射成像位置,以该位置作为取景位置,以反射面在上述交点处的法线方向为取景朝向,对目标三维虚拟物体进行取景截图,并将该截图绘制到反射面的对应位置,从而实现镜面反射图像的绘制,其实现方式简单、且处理速度较快。
在一个实现方式中,可以根据所述图像采集模块的朝向,所述图像采集模块的位置,所述目标三维虚拟物体的位置,和所述反射面的位置,确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置。
在另一个实现方式中,可以根据前一帧确定的所述的镜面反射成像位置,确定当前帧的所述镜面反射成像位置。
下面结合具体应用场景,对本申请实施例提供的方法进行详细说明。
终端设备的AR应用程序启动后,调用摄像头(即图像采集模块)实时采集图像,AR应用程序获取摄像头实时采集到的图像,对于每一帧图像,进行如下处理:
从当前帧图像中识别目标物体,若未识别出目标物体,按照预定的渲染策略对当前帧图像进行渲染后,在显示屏上显示当前帧图像。该预定的渲染策略至少包括:在当前帧图像中合成目标三维虚拟物体。
若识别出目标物体,AR应用程序从服务端设备获取该目标物体的遮罩模型。
其中,服务端设备预先创建目标物体的点云模型,并基于点云模型创建遮罩模型,在遮罩模型中确定出反射面,该反射面还能够体现出反射特性,该反射特性是根据目标物体的表面材质确定的,例如,玻璃对应的反射特性与金属对应的反射特性不同。其中,反射区域根据目标物体的表面材质确定,以建筑物为例,若建筑物的某一面外墙为玻璃幕墙,那么,遮罩模型中与该玻璃幕墙对应的区域即为反射区域。
AR应用程序在相机空间中,根据摄像头的位置、朝向,遮罩模型的法线确定反射向量,进而利用反射向量和反射面确定目标三维虚拟物体在反射面上的镜面反射成像位置和朝向,该位置和朝向作为取景位置和取景方向,对目标三维虚拟物体进行拍摄,将拍摄得到的图像渲染到反射面上,最终通过图像合成在目标物体的反射面上呈现目标三维虚拟物体的反射效果。
基于方法同样的发明构思,本申请实施例还提供一种电子设备,如图2所示,包括:
目标物体识别模块201,用于从图像采集模块实时采集到的图像中识别目标物体;
三维模型获取模块202,用于获取所述目标物体的预设三维模型;
反射面确定模块203,用于确定所述预设三维模型的反射面;
镜面反射图像绘制模块204,用于绘制目标三维虚拟物体在所述反射面的镜面反射图像;
图像合成模块205,用于在所述图像采集模块实时采集到的图像中合成所述目标三维虚拟物体、所述预设三维模型和所述镜面反射图像,所述目标物体和所述预设三维模型在所述图像中对齐。
本申请实施例提供的电子设备可以在真实场景中拍摄到的目标物体上呈现目标三维虚拟物体的镜面反射图像,为AR场景提供了更为生动的显示效果。为了达到这一目的,为目标物体预先创建三维模型,渲染过程中,在三维模型的反射面上绘制目标三维虚拟物体的镜面反射图像。
可选的,所述预设三维模型为所述目标物体的遮罩模型,所述遮罩模型是根据所述目标物体的点云模型创建的。
由于遮罩模型的结构较之点云模型更为简单,因此在渲染过程中使用遮罩模型可减少运算量,提高运算效率。
可选的,所述镜面反射图像绘制模块用于:
在相机空间中确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置,以及所述目标三维虚拟物体的法线与所述反射面的交点;
以所述镜面反射成像位置作为取景位置,以所述反射面在所述交点处的法线方向作为取景方向,按照所述取景位置和取景方向,在所述反射面上绘制所述目标三维虚拟物体的图像作为所述镜面反射图像。
实际应用中,可利用镜面成像原理,在相机空间中确定出镜像反射成像位置,以该位置作为取景位置,以反射面在上述交点处的法线方向为取景朝向,对目标三维虚拟物体进行取景截图,并将该截图绘制到反射面的对应位置,从而实现镜面反射图像的绘制,其实现方式简单、且处理速度较快。
可选的,所述镜面反射图像绘制模块用于:
根据所述图像采集模块的朝向,所述图像采集模块的位置,所述目标三维虚拟物体的位置,和所述反射面的位置,确定所述目标三维虚拟物体在所述反射面的镜面反射成像位置;或者,
根据前一帧确定的所述的镜面反射成像位置,确定当前帧的所述镜面反射成像位置。
基于与方法同样的发明构思,本申请实施例提供一种电子设备,包括处理器和存储器;
存储器用于存储执行上述任意方法实施例的程序;
处理器被配置为执行存储器中存储的程序。
该电子设备可以为智能手机、头戴式设备等等移动终端,相应的,如图3所示,本申请实施例提供的移动终端不仅包括处理器和存储器,还包括输入设备(例如触摸屏、摄像头、传声器等)、输出设备(例如显示屏、扬声器等)、通信模块、电源模块。
其中,存储器、输入设备、输出设备、通信模块、电源模块通过串口、总线或USB接口与处理器连接。其中,对于单处理器移动终端,处理器即CPU(中央处理器);对于双处理器移动终端,处理器包括主处理器和从处理器,由其主处理器执行应用程序实现本发明实施例提供的方法,若其中需要与外界进行通信,则由从处理器控制通信模块配合实现;对于包含GPU(图形处理器)和CPU的终端设备,处理器是指GPU和CPU,由GPU和CPU配合或由CPU单独实现本申请实施例提供的方法。
其中,移动终端的存储器可以但不仅限于包括:Flash(闪存)存储器、RAM(随机存取存储器)、ROM(只读存储器)等。RAM主要用于存储移动终端运行时的程序和数据,需要执行的程序或者需要处理的数据都必须先装入RAM内。ROM主要用于检查终端设备操作系统的配置情况,并提供最基本的输入输出(I/O)程序。Flash存储器是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)存储器,数据删除不是以单个的字节为单位,而是以固定的区块为单位。由于Flash存储器断电时仍能保存数据,它通常被用来保存设置信息,如用户对移动终端的设置信息等。
应当指出的是,针对不同的移动终端(单处理器智能手机、双处理器智能手机、智能穿戴设备、平板电脑等等),其可能包括比图3所示的移动终端更多或更少的硬件结构,但只要包括存储器和处理器,且能够实现上述方法实施例的功能,均在本公开的保护范围内。
该电子设备还可以是服务端设备。如图4所示,该服务端设备至少包括:电源,通过电源管理系统与中央处理器逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能;主板,提供部件之间的电连接通路,各个部件通过主板进行电信号传输,各个部件通过插接、焊接等方式安装在主板上;中央处理器,主要包括算术逻辑运算单元(ALU,Arithmetic Logic Unit)、程序计数器(PC,Program Counter)、寄存器组、高速缓冲存储器(Cache)以及用于传输数据、控制及状态的总线(Bus)接口;内存储器、磁盘(即上述保存有执行各个方法实施例所述方法的程序的存储器)、输入单元(包括鼠标、键盘、触控面板等)、显示单元(包括显示屏和显卡)和网卡通过总线与中央处理器进行数据交换。
基于与方法同样的发明构思,本申请实施例提供一种计算机可读存储介质,存储有实现上述任意方法实施例的程序。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
上述所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。