发明内容
为克服相关技术中存在的问题,本公开提供一种图像处理方法、装置及服务器,用于提高图像的清晰度。
根据本公开实施例的第一方面,提供一种图像处理方法,应用于服务器,所述方法包括:
确定终端发送的目标图像中包括的目标子图像;
从三维模型库中确定与所述目标子图像对应的目标对象相匹配的目标三维模型;
基于所述目标三维模型,在所述目标图像中对所述目标子图像进行图像替换;
向所述终端发送经图像替换后的目标图像。
根据本公开实施例的第二方面,提供一种图像处理方法,应用于终端,所述方法包括:
确定目标图像中包括的目标子图像;
从三维模型库中确定与所述目标子图像对应的目标对象相匹配的目标三维模型;
基于所述目标三维模型,在所述目标图像中对所述目标子图像进行图像替换。
根据本公开实施例的第三方面,提供一种图像处理装置,应用于服务器,所述装置包括:
第一确定模块,被配置为确定终端发送的目标图像中包括的目标子图像;
第二确定模块,被配置为从三维模型库中确定与所述目标子图像对应的目标对象相匹配的目标三维模型;
替换模块,被配置为基于所述目标三维模型,在所述目标图像中对所述目标子图像进行图像替换;
第一发送模块,被配置为向所述终端发送经图像替换后的目标图像。
根据本公开实施例的第四方面,提供一种图像处理装置,应用于终端,所述装置包括:
第一确定模块,被配置为确定目标图像中包括的目标子图像;
第二确定模块,被配置为从三维模型库中确定与所述目标子图像对应的目标对象相匹配的目标三维模型;
替换模块,被配置为基于所述目标三维模型,在所述目标图像中对所述目标子图像进行图像替换。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行第一方面或第二方面中任一项所述的方法的代码部分。
根据本公开实施例的第六方面,提供一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行第一方面或第二方面中任一项所述的方法。
根据本公开实施例的第七方面,提供一种服务器,包括:
非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序;所述非临时性计算机可读存储介质中存储有用于执行第一方面任一项所述的方法的指令。
根据本公开实施例的第八方面,提供一种终端,包括:
非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序;所述非临时性计算机可读存储介质中存储有用于执行第二方面所述的方法的指令。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开中,服务器在接收到终端发送的目标图像后,可以从三维模型库中找出匹配的目标三维模型,然后基于目标三维模型对目标图像中的目标子图像进行图像替换,进而将原目标图像中可能比较模糊的目标子图像替换为清晰的图像,将进行图像替换后的目标图像再发给终端,终端便能得到较为清晰的图像,服务器的图像处理能力较强。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的一种图像处理方法的流程图,如图1所示,该图像处理方法可以应用于服务器中,包括以下步骤。
步骤S11:确定终端发送的目标图像中包括的目标子图像。
步骤S12:从三维模型库中确定与目标子图像对应的目标对象相匹配的目标三维模型。
步骤S13:基于目标三维模型,在目标图像中对目标子图像进行图像替换。
步骤S14:向终端发送经图像替换后的目标图像。
本公开实施例中,服务器可以是一云端设备,那么终端可以通过网络实现与云端设备的图像互传;或者服务器也可以是与终端不同的另一设备,那么终端可以通过有线或无线的方式与该另一设备连接,进而实现图像的互传,等等。只要是能够接收终端的发送的目标图像,并对目标图像进行处理的设备均可以是本公开实施例中的服务器。
目标图像可以是终端通过摄像头进行拍摄时采集到的一帧帧预览图像中的某一帧图像,或者,目标图像也可以是存储在终端中的某一张图像,等等,本公开实施例对此不作限定。目标子图像可以是拍摄目标图像时针对的被拍摄对象在该目标图像中对应的部分图像。
三维模型库可以是预先建立的数据库,三维模型库中可以包含有世界各地的标识性的建筑、名胜古迹、物体,等等对象的三维模型。三维模型库可以存储在服务器自身的存储器中,或者也可以存储在另一能够与服务器通信的设备中。
服务器在接收到终端发送的目标图像后,可以对目标图像进行解析,进而确定出目标图像包括的目标子图像,当然,同一目标图像中可能包括一个或多个目标子图像,本公开实施例对此不作限定。然后可以从三维模型库中找出与目标子图像所对应的目标对象相匹配的目标三维模型,例如,目标图像中包括目标对象“赵州桥”所对应的子图像,那么可以从三维模型库中匹配地找出“赵州桥”的三维模型。
从三维模型库中确定与目标子图像对应的目标对象相匹配的目标三维模型,可以直接用目标子图像在整个三维模型库中去匹配,找出目标三维模型,或者也可以先确定一个范围相对小的三维模型集合,用目标子图像在三维模型集合中去匹配,找出目标三维模型。
可选的,还可以获取目标图像的位置信息,位置信息可以用于指示采集目标图像时的地理位置;然后根据位置信息确定包括该位置信息对应的位置的位置范围,再确定位置范围内包括的全部的标识对象,标识对象可以是在三维模型库中对应有三维模型的对象,那么目标三维模型可以在全部的标识对象对应的三维模型集合中来确定。
位置信息可以用来指示采集目标图像时的地理位置,对于获取目标图像的位置信息的方式,本公开实施例不作限定,根据目标图像的不同,获取位置信息的方式可能不同。目标图像可能是终端在拍摄时采集的连续预览图像中的某一帧图像,那么获取目标图像的位置信息可以是终端发送的当前终端所处的位置信息(比如可以通过终端的GPS(GlobalPositioning System,全球定位系统)模块来获取,等等);或者,目标图像可能是存储在终端中的一张图像,目标图像的图像信息中可以包括拍摄时的位置信息,服务器直接从目标图像携带的信息中获取位置信息即可。
获取了目标图像的位置信息后,可以根据位置信息确定位置范围,对于确定位置范围的方式本公开实施例不作限定,只要是确定包括位置信息所对应的地理位置的一个位置范围即可。例如,可以直接以位置信息所对应的地理位置为圆心,半径为一设定值(比如500米,等等),得到的圆形区域即为所需的位置范围。或者,还可以用位置信息与其他参数相结合来确定位置范围,以下将对结合确定位置范围的方式进行说明。
可选的,还可以获取目标图像的高度信息,高度信息可以用于指示采集目标图像时的海拔高度,那么可以根据述位置信息及高度信息来确定位置范围。
根据目标图像的不同,获取高度信息的方式可能不同。目标图像可能是终端在拍摄时采集的连续预览图像中的某一帧图像,那么获取目标图像的高度信息可以是终端发送的当前终端所处海拔高度的高度信息(比如可以通过终端的海拔仪获取);或者,目标图像可能是存储在终端中的一张图像,目标图像的图像信息中可以包括拍摄时的高度信息,服务器直接从目标图像携带的信息中获取高度信息即可。
在实际应用中,拍摄者所处的海拔高度不同,能够拍摄的景物的远近可能不同,通常,所处的位置越高,能看到更远的景物,能够拍摄的范围也更大,因此,可以通过高度信息来对位置信息确定的位置范围进行调整。例如,可以设定海拔高度为0时,位置范围为以位置信息所指示的位置为圆心,R为半径的圆形区域,海拔每上升10米,位置范围的半径增加R1,等等。这样,确定出的位置范围更加准确,避免遗漏目标图像可能拍到的对象,服务器的图像处理能力较强。
可选的,还可以获取目标图像的对焦距离,那么可以根据述位置信息及对焦距离,确定位置范围。
根据目标图像的不同,获取对焦距离的方式可能也不同。目标图像可能是终端在拍摄时采集的连续预览图像中的某一帧图像,那么获取目标图像的对焦距离可以是终端发送的当前拍摄所设置的对焦距离;或者,目标图像可能是存储在终端中的一张图像,目标图像的图像信息中可以包括拍摄时的对焦距离,服务器直接从目标图像携带的信息中获取对焦距离即可。
对于根据位置信息及对焦距离确定位置范围的方式,本公开实施例不作限定,例如,位置范围可以是以位置信息对应的地理位置为圆心,对焦距离f为半径所形成的圆形区域;或者例如,可以设置一个余量x,位置范围可以是以位置信息对应的地理位置为圆心,半径为f-x的圆与半径为f+x的圆构成的圆环区域,等等。通过以上方式可以确定出相对较小且能够较为准确地表征目标图像所对应的拍摄对象可能在的范围,进而减少在下个步骤中可能与目标子图像进行比对的三维模型的数量,减小了服务器的数据处理量,提高了服务器图像处理的速度。
当然,也可以通过位置信息、高度信息、以及对焦距离共同来确定位置范围,例如,可以先通过上述的位置信息与对焦距离确定位置范围的方式先确定一个位置范围,再通过高度信息来对确定出的位置范围进行调整,等等。
在确定位置范围后,可以在地图上找出该位置范围内所包含的全部的对应有三维模型的标识对象。例如,确定出的位置范围如图2所示,那么可以确定该位置范围内包括的在三维模型库中对应有三维模型的全部标识对象,比如包括“乐山大佛山门”、“大佛”、“海师洞”、“天王殿”、“大雄殿”、“沫若堂”,三维模型集合则可以包括上述全部标识对象的三维模型。
在确定与目标子图像对应的目标对象所匹配的目标三维模型时,可以用目标子图像在全部标识对象对应的各个三维模型中做比对,进而得出匹配的目标三维模型。可见,通过位置信息可以较为准确地找出目标子图像的比对的范围,进而可以较为快捷地找出目标子图像对应的目标对象所匹配的三维模型,提高了服务器的响应速度,也提升了服务器的图像处理能力。
在确定出目标三维模型后,可以基于目标三维模型对目标图像中的目标子图像进行图像替换,然后将进行图像替换后的目标图像发回给终端,终端的用户便能直接看到经服务器进行图像替换后的目标图像。当然,如果未找到匹配的目标三维模型,可以向终端发送指示匹配失败的信息,终端可以直接显示无法处理的图像。
可选的,图像替换的方式可以是先对目标三维模型进行截取,以得到与目标子图像匹配的二维图像,然后在目标图像中,用二维图像替换目标子图像。
也就是说,在找出目标三维模型后,可以用目标子图像与目标三维模型进行比对,通过目标三维模型,截取出与目标子图像拍摄角度、拍摄的目标对象的部位、目标子图像在目标图像中的大小等参数均相同的一个二维图像,再用截取的二维图像在目标图像中完全替换目标子图像。当然,在进行图像替换时,可以只对目标子图像的细节进行替换,而保留原有的拍摄效果,比如阳光反射,雨雾等等。
例如,请参见图3,目标图像在拍摄取景时,取景框所针对的是“埃菲尔铁塔”中间的一部分,因此,目标图像中的目标子图像是中间部分的“埃菲尔铁塔”所成的图像,那么在找出目标三维模型(即“埃菲尔铁塔”的三维模型)后,可以按照“埃菲尔铁塔”成像在目标图像中的角度、部位、成像的目标子图像的大小等等参数,对“埃菲尔铁塔”的三维模型进行截取,截取出与目标子图像匹配的二维图像,然后用截取的二维图像替换目标图像中的目标子图像。
由于目标三维模型可以是预先用计算机构建出的三维模型,因此从目标三维模型截取的二维图像为清晰度较高的图像,不管终端的用户对图像如何放大,只要目标三维模型够精细,处理后的目标图像中的目标对象的图像始终保持极致清晰的状态,变焦不再受限于终端能力。另一方面,因手抖或快门慢造成的图像模糊也可得到解决。利用截取的清晰度较高的二维图像替换原目标图像中可能相对模糊的目标子图像,可以提升目标图像中主体的清晰度,服务器的图像处理能力较强。
可选的,在对目标三维模型进行截取,以得到与目标子图像匹配的二维图像之后,还可以按照目标图像的图像参数,设置二维图像的图像参数。
图像参数可以包括图像的亮度、对比度、色温、颜色值,等等。目标图像的图像参数可以是由终端直接发送的,也可以是从目标图像携带的图像信息中获取的,本公开实施例对此不作限定。
在获取目标图像的图像参数后,可以将从目标三维模型截取的二维图像的图像参数设置成相同或相近的参数,这样可以使得进行图像替换后的目标图像更加匹配,服务器的图像处理能力较强。
可选的,服务器存储有根据另一图像确定的另一位置范围,确定目标图像的位置信息所对应的地理位置,与另一图像的位置信息所对应的地理位置之间的距离是否超过预设距离阈值;在距离超过预设距离阈值时,根据目标图像的位置信息,确定与目标图像对应的位置范围,及,更新服务器存储的位置范围;在距离未超过预设距离阈值时,将另一位置范围确定为位置范围。
预设距离阈值可以是预先设定的用来判断是否要重新确定位置范围的值,对于预设距离阈值究竟是多少,本公开实施例不作限定,例如,可以将预设距离阈值设为10米、15米,等等。
针对目标图像是终端通过摄像头进行拍摄时采集到的一帧帧预览图像中的某一帧图像的情况,终端可以实时地将采集的每一帧图像发送给服务器,服务器对每一帧图像处理后再发回给终端。这种情况下,可能连续的很多帧图像的位置信息是相同或者变化不大的,服务器不必针对每帧图像的位置信息都进行位置范围的计算,因此,服务器可以记录有上一次根据另一图像确定的位置范围,如果接收到的图像与记录的图像拍摄地理位置之间的距离没超过预设距离阈值,可以直接使用存储的位置范围来找目标三维模型;反之,如果接收到的图像与记录的图像拍摄地理位置之间的距离超过了预设距离阈值,可以再重新计算位置范围,并更新服务器记录的位置范围。这样,既能保证位置范围的准确性,也能减少服务器的计算量,提高了服务器的图像处理速度。
可选的,还可以获取目标对象的特征信息,特征信息包括历史信息、地理信息、及旅游信息中的至少一者;向终端发送特征信息。
例如,目标对象是“埃菲尔铁塔”,那么服务器可以从网络中获取“埃菲尔铁塔”的信息,比如,历史信息、票价信息、最佳拍照位置信息、附近餐厅信息、等等,将这些信息发送给终端,终端可以直接显示到屏幕上,提升了用户体验,也提高了服务器的信息处理能力。
图4是根据一示例性实施例示出的一种图像处理方法的流程图,如图4所示,该图像处理方法可以应用于终端中,包括以下步骤。
步骤S41:确定目标图像中包括的目标子图像。
步骤S42:从三维模型库中确定与目标子图像对应的目标对象相匹配的目标三维模型。
步骤S43:基于目标三维模型,在目标图像中对目标子图像进行图像替换。
也就是说,上述服务器侧执行的图像处理方法也可以由终端来执行,那么三维模型库可以存储在终端中,或者也可以存储在与终端连接的另一设备中,终端无需将要处理的目标图像发送给服务器,直接进行目标三维模型的查找、图像替换等步骤即可。对于终端侧的图像处理方法具体的实现方式请参见上述服务器侧相应部分的描述,在此不再赘述。
基于同一发明构思,本公开实施例提供一种图像处理装置,如图5所示,图5是根据一示例性实施例示出的一种图像处理装置500的框图,其中,该装置500可以应用于服务器,该装置500可以包括:
第一确定模块501,被配置为确定终端发送的目标图像中包括的目标子图像;
第二确定模块502,被配置为从三维模型库中确定与目标子图像对应的目标对象相匹配的目标三维模型;
替换模块503,被配置为基于目标三维模型,在目标图像中对目标子图像进行图像替换;
第一发送模块504,被配置为向终端发送经图像替换后的目标图像。
可选的,装置500还包括:
第一获取模块,被配置为获取目标图像的位置信息,位置信息用于指示采集目标图像时的地理位置;
第三确定模块,被配置为根据位置信息,确定位置范围,位置范围包括位置信息所指示的位置;
第四确定模块,被配置为确定位置范围内包括的全部的标识对象,标识对象为在三维模型库中对应有三维模型的对象;
第二确定模块包括502:
第一确定子模块,被配置为在全部的标识对象对应的三维模型集合中,确定目标三维模型。
可选的,装置500还包括:
第二获取模块,被配置为获取目标图像的高度信息,高度信息用于指示采集目标图像时的海拔高度;
第三确定模块包括:
第二确定子模块,被配置为根据述位置信息及高度信息,确定位置范围。
可选的,装置500还包括:
第三获取模块,被配置为获取目标图像的对焦距离;
第三确定模块还包括:
第三确定子模块,被配置为根据述位置信息及对焦距离,确定位置范围。
可选的,服务器存储有根据另一图像确定的另一位置范围,装置500还包括:
第五确定模块,被配置为确定目标图像的位置信息所对应的地理位置,与另一图像的位置信息所对应的地理位置之间的距离是否超过预设距离阈值;
第三确定模块还包括:
第四确定子模块,被配置为在距离超过预设距离阈值时,根据目标图像的位置信息,确定与目标图像对应的位置范围;及,
更新模块,被配置为更新服务器存储的位置范围;
第五确定子模块,被配置为在距离未超过预设距离阈值时,将另一位置范围确定为位置范围。
可选的,替换模块503包括:
截取模块,被配置为对目标三维模型进行截取,以得到与目标子图像匹配的二维图像;
替换子模块,被配置为在目标图像中,用二维图像替换目标子图像。
可选的,装置500还包括:
设置模块,被配置为在对目标三维模型进行截取,以得到与目标子图像匹配的二维图像之后,按照目标图像的图像参数,设置二维图像的图像参数。
可选的,装置500还包括:
第四获取模块,被配置为获取目标对象的特征信息,特征信息包括历史信息、地理信息、及旅游信息中的至少一者;
第二发送模块,被配置为向终端发送特征信息。
基于同一发明构思,本公开实施例提供一种图像处理装置,如图6所示,图6是根据一示例性实施例示出的一种图像处理装置600的框图,其中,该装置600可以应用于终端,该装置600可以包括:
第一确定模块601,被配置为确定目标图像中包括的目标子图像;
第二确定模块602,被配置为从三维模型库中确定与目标子图像对应的目标对象相匹配的目标三维模型;
替换模块603,被配置为基于目标三维模型,在目标图像中对目标子图像进行图像替换。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在本公开所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本公开的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本公开的方法及其核心思想,不应理解为对本公开的限制。本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。