全景图像的网络发布方法和系统及设备的制造方法
【专利摘要】本发明公开了一种全景图像的网络发布方法和系统及设备。其方法包括步骤:根据预设的3D全景模型,生成全景模型的全景数组;根据预设的水印模型,生成水印模型的水印数组,其中,所述水印模型的模型数据结构与所述全景模型的模型数据结构相同;将水印数组插入到全景数组中,形成混合模型数据数组;使用随机数生成的钥匙对混合模型数据数组进行重排列,生成随机模型数组。保证了全景图像的网络分享的体验不受影响,同时又使全景图像具有很好的安全性。
【专利说明】
全景图像的网络发布方法和系统及设备
技术领域
[0001] 本发明涉及网络发布技术,特别是一种全景图像的网络发布方法和系统及设备, 应用于移动APP、软件客户端、服务器、网站等互联网应用领域。
【背景技术】
[0002] 网络图片和视频很容易被他人盗用和非法传播,因此在媒体文件中常常加入水印 技术,为了明示版权,网络发布内容常使用鲁棒水印(Robust Watermarking)技术。这种技 术往往是在图像中直接嵌入能够观察到版权信息,但却在观赏体验方面有所欠缺。
[0003] 全景图像,如鱼眼全景图像的有效区域是一个圆形,可以通过纹理贴图的方法贴 在3D模型上,进行立体观看。但上传或者推送到网络的全景图像需要在web页面上进行3D显 示,受限于脚本编程语言导致实现方法公开化,实现的技术易被盗用。
【发明内容】
[0004] 本发明针对现有技术中存在的上述问题,提出一种全景图像的网络发布方法和系 统及设备。其保证了全景图像的网络分享的体验不受影响,同时又使全景图像具有很好的 安全性。
[0005] 本发明的技术方案为:
[0006] 提供一种分享全景图像的网络发布方法,包括如下步骤:
[0007] 根据预设的3D全景模型,生成全景模型的全景数组;
[0008] 根据预设的水印模型,生成水印模型的水印数组,其中,所述水印模型的模型数据 结构与所述全景模型的模型数据结构相同;
[0009] 将水印数组插入到全景数组中,形成混合模型数据数组;
[0010] 使用随机数生成的钥匙对混合模型数据数组进行重排列,生成随机模型数组。
[0011] 为实现本发明目的,还相应提供一种分享全景图像的网络发布系统及设备。
[0012] 本发明具有如下的有益效果:
[0013] 本发明的全景图像的网络发布方法和系统及设备,通过在3D全景数组中加入不同 样式的3D水印数组,如Logo、产品名称、厂商名称等,可在上传或者推送的全景图像中非鱼 眼像素区域加入不同的产品Logo、产品名称、厂商名称等效果,使得全景图像网络分享能够 结合水印技术,却不会直接看到水印,从而保证了全景图像的网络分享的体验不受影响,同 时又使全景图像具有很好的安全性。
【附图说明】
[0014] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要的附 图做简单的介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普 通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015] 图1为本发明实施例的显示图像的网络发布系统的结构示意图。
[0016] 图2为本发明实施例的网络分享发布端发布数据生成示意图。
[0017] 图3为本发明实施例的发布时含水印的鱼眼图像的示意图。
[0018]图4为本发明实施例的半球全景模型、半球Logo模型的3D显示示意图。
【具体实施方式】
[0019] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明 实施例中的附图1-4,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅 是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在 没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020] 本发明实施例的全景图像的网络发布方法,如图1所示,包括如下步骤:
[0021] 步骤S100:根据预设的3D全景模型,生成全景模型的模型数组。
[0022]根据用户选择的3D全景模型,生成全景模型数组;对全景模型数组进行变换,生成 鱼眼纹理数组;用全景模型数组和鱼眼纹理数组构成基本绘制单元;由一系列基本绘制单 元组成完整模型数组。
[0023]所述全景模型的模型数组是一系列的顶点和纹理数据。作为一种可实施方式,在 本发明实施例中,可以根据用户从多种预设的3D全景模型中选择的一种预设的3D全景模 型,生成(x,y,z)全景模型数组,数组元素个数为模型采样点数,采样点即为模型的几何顶 点,其中,x、y、z分别为模型点的空间坐标。根据空间坐标与全景图像的映射关系,对全景模 型的模型数组进行变换,生成一一对应的(u,v)鱼眼纹理数组,其中,u、v分别是在鱼眼图像 x、y方向上的纹理坐标,这样,鱼眼纹理数组与全景模型数组的元素个数相同。
[0024]将模型中的每个顶点和纹理以(x,y,z,u,v)顺序组成一个结构,每个结构为一个 顶点,如下: struct Vertex {
[0025] float x,y,z,u,v; };
[0026]作为一种可实施方式,如每三个几何顶点(Vertex)构成一个三角形区域,这个三 角形作为一个基本的图像绘制单元(Unit),定义结构如下: struct Unit
[0027] { Vertex v[3];
[0028] };
[0029]全景模型数组即可以记录为一组由所述图像绘制单元(Unit)数据类型组成的数 组。
[0030]步骤S200:根据预设的水印模型,生成水印模型的水印数组,其中,所述水印模型 的模型数据结构与所述全景模型的模型数据结构相同。
[0031] 根据用户选择的3D水印模型,生成水印模型数组;将水印模型数组进行变换,生成 水印纹理数组;用水印模型数组和水印纹理数组构成水印绘制单元;由一系列水印绘制单 元组成完整水印数组。
[0032] 构建由基本绘制单元组成的水印模型数组,水印模型数组的元素个数是水印模型 的顶点数,与全景模型数组可以相同或者不同,即水印完整模型中的xl,yl, Zl,ul,vlW& 元素个数都可以与全景模型数组相同或者不同。
[0033] 同样地,水印模型数组和水印纹理数组的元素个数相同。
[0034]水印模型数组与全景模型数组的构建步骤是一样的。但是,3D模型、纹理图像和纹 理映射关系的选择可以是不同的。例如,选择空间Logo字样或者图4中的下半球作为水印的 3D模型,选择logo图像作为纹理图像等等。
[0035]当水印模型与全景模型不同时,空间坐标(x,y,z)不同。当纹理图像和纹理映射关 系不同时,(U,v)不同。当采样点数不同时,数组的元素个数不同。
[0036] 作为一种可实施方案,在本发明实施例中,所述步骤S200包括如下步骤:
[0037] 步骤S210,设定水印模型为一个注册商标的立体模型;
[0038]步骤S220,将构成水印模型的图像的几何元素的顶点结构中,u 1、v 1坐标指向纹理 图像的非鱼眼像素区域。
[0039] ul、vl坐标指向纹理图像的非鱼眼像素区域,因此可以在后期发布过程中决定是 否在发布图像中加入水印图像,如果加入水印图像则绘制时会在水印模型区域显示出水印 图像,反之水印区域则根据实际场景显示为黑色或透明。
[0040] 步骤S300:将水印数组插入到模型数组中,形成混合模型数据数组。
[0041] 水印数组可以插入到模型数组的前面、后面或者中间的任意位置,较佳地,插入到 全景数组的后面,形成混合模型数据数组。
[0042]步骤S400:使用随机数生成的钥匙(KEY)对混合模型数据数组进行重排列,生成随 机模型数组。
[0043]将水印数组插入到全景数组中,形成混合模型数组。对混合模型数组使用钥匙 (KEY)进行重排列,生成随机模型数组。生成随机模型数组时并不改变基本绘制单元内的顶 点顺序,仅调整基本绘制单元之间的排序,因此并不影响最终的渲染结果。
[0044] 设混合前,全景数组Unit个数为M,混合后数组的Unit个数为N,数组定义为A[N], 作为一种可实施方式,所述步骤S400包括如下步骤:
[0045]步骤S410:获取当前时间为随机种子,通过系统API获取0~1之间的随机浮点数作 为计算KEY;
[0046]步骤S420:从第M个元素开始,依次交换第i个和第(int) (KEY*(N-i))个元素。
[0047] 示例代码如下: for (int i = M; i <N-M; i++) { Swap (A [ i ], A [ (i nt) ((f I oat) KEY * (N - i))]); }
[0048]
[0049] 这样即可得到一个乱序的混合数据数组作为随机数据数组。
[0050] 如图2中所示:左图是一个混合后的数据数组,其中前80个元素是全景模型的几何 顶点,后20个是水印模型的几何顶点,总计100个元素。设随机KEY值为0.5。首先i=M即从第 80个元素开始计算,判断需要交换元素 A[80]和A[10]。然后计算i = 81得到A[81]和A[9]交 换数据。接着计算i = 82得到A[82]也需要和A[9]交换数据,而此时A[9]中的数据已经是A
[81],所以A[9]存储的数据变成了 A[82],A[82]的数据变成了 A[81]。依次类推当计算到最 后一个数据时A[99]和A[0]交换数据。
[0051 ]较佳地,作为另一种可实施方式,为增加复杂度,还可以在步骤S400中增加一个扰 动范围系数,用于设置交换元素的范围,作为一种可实施方式,使用系统API函数randO,计 算随机数1^^ = 1+(1-1')*((;^〇31:)(^11(1()%100)/100),其中1'为扰动系数,为0到1之间的 浮点数,rand 〇返回一个正整数。
[0052]步骤S500:输入发布的随机模型数组和对应的发布全景图像,显示出模型和水印 结合的3D场景。
[0053]如图3中所示,作为一种可实施方案,可以在全景图像的非鱼眼区域加入产品Logo 图像,作为用于显示水印模型的纹理图像。Logo图像也可以分布在全景图像的多个区域,而 不仅局限于单一位置。
[0054]由于各种PC系统和智能手机系统都提供基本web访问接口,且互联网社交软件也 大多支持直接访问web地址,因此选择web技术来进行分享展示。而为了显示3D模型,较佳 地,使用WebGL是比较直接的方法,另一种方法是使用浏览器插件,但开发浏览器插件比较 复杂,且兼容性不佳,浏览器插件也需要跟据浏览器和操作系统单独设计开发。
[0055] 在web显示时,通过WebGL方法输入发布的随机数组和对应的发布图像,显示出模 型和水印结合的3D场景,由于只在特定的角度和方位才可以看到水印图像,一般情况下,只 看到鱼眼视频拍摄的图像,从而不影响体验。
[0056]网络发布保护的是鱼眼图像产生的3D全景模型,如图4所示,上半球是全景数据, 下半球中使用logo作为水印数据填充模型。在步骤S300中全景模型数据和水印模型数据都 是按序排列的,而在步骤S400中使用随机数打乱,导致很难分离出全景模型数据和水印模 型数据,从而实现了不影响正常体验的条件下加入水印内容的目的。
[0057] 实施例二:
[0058] 为实现本发明目的,本发明实施例还提供一种分享全景图像的网络发布系统和设 备,所述系统包括网络分享发布端和网络分享显示端;
[0059] 其中:
[0060]所述网络分享发布端,包括模型生成模块,水印生成模块,混合模块,发布模块; [0061]所述模型生成模块,用于根据用户选择的3D全景模型,生成全景模型数组;对全景 模型数组进行变换,生成鱼眼纹理数组;用全景模型数组和鱼眼纹理数组构成基本绘制单 元;由一系列基本绘制单元组成完整模型数组;
[0062]所述水印生成模块,用于根据用户选择的3D水印模型,生成水印模型数组;将水印 模型数组进行变换,生成水印纹理数组;用水印模型数组和水印纹理数组构成水印绘制单 元;由一系列水印绘制单元组成完整水印数组;
[0063]所述混合模块,用于将水印模型数组追加到全景模型数组后面,形成混合模型数 组;并对混合模型数组使用钥匙和算法进行重排列,生成随机模型数组。
[0064]所述发布模块,用于将生成的随机模型数组、全景鱼眼图像或/和带水印的全景鱼 眼图像一起上传或者推送到互联网络。
[0065] 在Web页面端,对随机模型数组采用3D Web渲染技术,例如WebGL,进行渲染,显示 出模型和水印结合的立体场景。当通过交互手段变换视角进行观察时,通过限定视角的变 化范围,使得水印不会被观察到,从而使分享体验不受影响。交互手段包括但不局限于:手 指在手机、ipad等移动设备上进行滑动,晃动移动设备利用其自身的重力感应,或者鼠标、 键盘的移动等。
[0066] 发布模块将生成的随机模型数组、全景鱼眼图像或/和带水印的全景鱼眼图像一 起上传或者推送到互联网络,包括局域网、城域网、互联网等,保证了全景模型、算法、数据 的私密性。
[0067] 发布内容里将全景模型、水印模型、全景图像或鱼眼与水印的合成图像相结合,而 不影响正常的全景显示交互和体验。即使在能够查看到执行脚本代码的Web环境里,仍可以 一定程度上保证3D全景分享模型的保密特性,使得分享模型不易被非法使用。
[0068]本发明实施例的全景图像的网络发布方法和系统及设备,通过在3D全景数组中加 入不同样式的3D水印数组,如Logo、产品名称、厂商名称等,可在上传或者推送的全景图像 中非鱼眼像素区域加入不同的产品Logo、产品名称、厂商名称等效果,使得全景图像网络分 享能够结合水印技术,却不会直接看到水印,从而保证了全景图像的网络分享的体验不受 影响,同时又使全景图像具有很好的安全性。
[0069] 本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述 的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清 楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组 成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计 约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功 能,但是这种实现不应认为超出本发明的范围。
[0070] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道 的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储 器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领 域内所公知的任意其它形式的存储介质中。
[0071]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进轨道了进一 步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发 明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包 含在本发明的保护范围之内。
【主权项】
1. 一种分享全景图像的网络发布方法,包括如下步骤: 根据预设的3D全景模型,生成全景模型的全景数组; 根据预设的水印模型,生成水印模型的水印数组,其中,所述水印模型的模型数据结构 与所述全景模型的模型数据结构相同; 将水印数组插入到全景数组中,形成混合模型数据数组; 使用随机数生成的钥匙对混合模型数据数组进行重排列,生成随机模型数组。2. 根据权利要求1所述的分享全景图像的网络发布方法,其特征在于,还包括如下步 骤: 输入发布的随机模型数组和对应的发布全景图像,显示出模型和水印结合的3D场景。3. 根据权利要求1或2所述的分享全景图像的网络发布方法,其特征在于,所述生成水 印模型的水印数组,包括如下步骤: 设定水印模型为一个注册商标的立体模型; 将构成水印模型的图像的几何元素的顶点结构中,ul、vl坐标指向纹理图像的非鱼眼 像素区域。4. 根据权利要求1或2所述的分享全景图像的网络发布方法,其特征在于,设混合前全 景数组Unit个数为M,混合后数组的Unit个数为N,数组定义为A[N],所述生成随机模型数 组,包括如下步骤: 获取当前时间为随机种子,获取〇~1之间的随机浮点数作为计算KEY; 从第M个元素开始,依次交换第i个和第(int) (KEY* (N-i))个元素。5. 根据权利要求1或2所述的分享全景图像的网络发布方法,其特征在于,所述生成随 机模型数组,包括如下步骤: 增加一个扰动范围系数,用于设置交换元素的范围; 使用系统八?1函数^11(1(),计算随机数1^¥ = 1+(1-1')*((;1^1〇31:)(^311(1()%100)/ I 〇〇 ),其中r为扰动系数,为O到1之间的浮点数,rand ()返回一个正整数。6. 根据权利要求2所述的分享全景图像的网络发布方法,其特征在于,所述分享为使用 WebGL方法进行分享。7. -种分享全景图像的网络发布系统,其特征在于,所述系统包括网络分享发布端和 网络分享显示端; 其中: 所述网络分享发布端,包括模型生成模块,水印生成模块,混合模块; 所述模型生成模块,用于根据用户选择的3D全景模型,生成全景模型数组;对全景模型 数组进行变换,生成鱼眼纹理数组;用全景模型数组和鱼眼纹理数组构成基本绘制单元;由 一系列基本绘制单元组成完整模型数组; 所述水印生成模块,用于根据用户选择的3D水印模型,生成水印模型数组;将水印模型 数组进行变换,生成水印纹理数组;用水印模型数组和水印纹理数组构成水印绘制单元;由 一系列水印绘制单元组成完整水印数组; 所述混合模块,用于将水印模型数组追加到全景模型数组后面,形成混合模型数组;并 对混合模型数组使用钥匙和算法进行重排列,生成随机模型数组。8. 根据权利要求7所述的分享全景图像的网络发布系统,其特征在于,还包括发布模 块,用于将生成的随机模型数组、全景鱼眼图像或/和带水印的全景鱼眼图像一起上传或者 推送到互联网络。9.一种分享全景图像的网络发布设备,其特征在于,包括模型生成模块,水印生成模 块,混合模块; 所述模型生成模块,用于根据用户选择的3D全景模型,生成全景模型数组;对全景模型 数组进行变换,生成鱼眼纹理数组;用全景模型数组和鱼眼纹理数组构成基本绘制单元;由 一系列基本绘制单元组成完整模型数组; 所述水印生成模块,用于根据用户选择的3D水印模型,生成水印模型数组;将水印模型 数组进行变换,生成水印纹理数组;用水印模型数组和水印纹理数组构成水印绘制单元;由 一系列水印绘制单元组成完整水印数组; 所述混合模块,用于将水印模型数组追加到全景模型数组后面,形成混合模型数组;并 对混合模型数组使用钥匙和算法进行重排列,生成随机模型数组。
【文档编号】G06T17/00GK105912561SQ201610105526
【公开日】2016年8月31日
【申请日】2016年2月26日
【发明人】许为, 李伟, 范治江
【申请人】优势拓展(北京)科技有限公司