首页| 行业资讯| 企业名录| 周边产品| 数字城市| 增强现实| 工业仿真| 解决方案| 虚拟医疗| 行业仿真| 图形处理| 军事战场
用户登录/注册 ×
资讯首页
行业资讯 >> 专业文献
基于Unity3D的可变视点数裸眼立体图像合成算法
时间:2019-11-14    评论:0
    来源:第三维度
    作者:李春江,赵悟翔,王琼华
    单位:四川大学电子信息学院

    摘要:针对当前自由立体3D显示器的最佳观看距离固定和无法灵活调的等问题,本文在 Unity3D 平台上采用 Cg语言编程,提出了可变视点数立体图像合成算法.该算法根据最佳观看距离与视点数之间的关系,调整光栅截距对应的像素点,实现了通过灵活改变视点数来改变自由立体3D显示的最佳观看距离.实验结果表明,通过此算法合成的立体图像可以调整显示的最佳观看距离,并且实验测得的视点数与计算所得的视点数误差较小.图像串扰较低、合成效率高,使观看者能在不同距离都能舒适观看立体图像.

    1 引 言

    自由立体3D显示技术是未来显示技术发展的趋势,将在3D广告、游戏、教育以及军事仿真、电子地图等领域发挥重要作用[1G3].目前,一些企业相继推出了自由立体3D 显示器,无须佩戴任何辅助设备便可以看到立体图像,赢得了广大消费者的青睐.

    自由立体3D显示技术是目前应用较多的裸眼3D显示技术[4],但是自由立体3D 显示器的最佳观看距离比较固定,当观看者向前或者向后移动时,会产生比较严重的图像串扰,使观看者产生眩晕、视觉疲劳等症状[5],从而限制了自由立体技术的发展.针对此问题,研究人员提出裸眼跟踪3D显示技术,典型的有非可见光技术、单摄像侦测系统技术、多摄像侦测系统技术[6],而这些技术的实现往往需要多个摄像机或者探测设备,结构复杂.后来,研究人员提出了改进的人眼跟踪算法,基于 ASM(ActiveShapeModel)模型的人脸检测,判断人眼位置,从而调整立体图像融合算法[7],然而该算法对于观看者的最佳观看距离还有较大的局限.另外,也有研究人员提出使用基于人眼追踪的立体内容融合显示技术,有效地解决了“伪立体”问题[8],但该技术的实现采用的是狭缝照明式立体显示结构,对显示亮度有一定的影响.

    本文提出基于 Unity3D 的可变视点数立体图像合成算法,其实现结构简单.当观看者观看距离变化时,我们通过本文提出的图像合成算法改变光栅截距对应的像素点,从而调整视点数,实现最佳观看距离随着观看者的观看距离变化进行调整.

    2 可变视点数立体图像合成算法

    传统图像合成算法是通过取整数视点来进行像素渲染,每幅视差图在合成图像中所占比例相同,视点数无法灵活调整.本文的可变视点数立体图像合成算法是将视区边缘的视点像素进行合理取舍,从而使得视点在相邻整数之间合理变化,使得光栅截距与视点数之间实现良好匹配.下面分为算法原理和算法实现两部分来进行阐述.

    2.1 算法原理

    自由立体3D显示器的二维显示器与光栅装配时[9],容易存在一定偏差,因此会出现平均视点数为小数的情况,并且最佳观看距离受自由立体3D显示器的视点数影响,其原理如图1所示.

图1 自由立体3D显示器的原理示意图

    根据图1,我们可以得出最佳观看距离与视点数的关系式:


    其中:k 表示每个视点下对应的像素点,s 表示柱透镜光栅与显示屏之间的间距,p 表示柱透镜光栅截距,t表示显示屏上像素点的大小,当观看距离l变化时,每个视点对应的像素点也会发生变化,可能使得k 为小数,在每个视区边缘上容易发生视差图像重叠,增加串扰.

    为了使得最佳观看距离随着观看者的观看距离变化,能够调整视点数,当观看距离变化时,每个视点下覆盖的合成图像子像素会发生变化,在像素排布上,我们对视区的最后一个视点像素进行一定的取舍,以实现柱透镜光栅截距与像素点之间的匹配,降低视区边缘的图像重叠.如图2所示,虚线框中的第8视点像素被舍弃掉了,因此当观看距离变化时,柱透镜光栅截距下覆盖的像素点发生了变化,我们通过舍弃像素点,从而使得视差 图 的 子 像 素 发 生 变 化,从 而 调 整 最 佳 观 看距离.

    为了更好地阐述像素点的取舍关系,根据像素点的排布,当不舍弃像素时,定义像素总量为T,总视点数为 N,当舍弃像素后,定义舍弃掉的像素为T0,则整个显示器的实际视点数 N0可表示为:


    设 A(x,y)为 合 成 图 像 中 子 像 素 坐 标,Ai(x,y)为第i幅视差图中子像素坐标,合成图像是通过 N 幅视差图像的子像素周期性叠加而生成的,设光栅倾斜角度为θ,p 表示视点数的小数部分,可以表示为:


    对视点数的小数部分对应的子像素进行重新排列组合,排列后的子像素可表示为:


    得到新的视差图像子像素后,将 N 个视点的视差图像子像素进行叠加融合,便可以得到新的合成图像.

    根据上述方法,当观看者距离变化时,使得柱透镜光栅截距与显示屏像素之间能呈现正确的映射关系,从而实现视点数的调节,适应观看者的观看距离变化.

图2 自由立体3D显示器合成图像像素结构示意图

    2.2 基于 GPU的图像合成算法

    合成图像时使用的视点数和斜率会影响显示时的视区分布,另外,多幅视差图在合成的过程中,子像素需要重新组合,每一帧合成图像都需要千万次的计算,因此通过采用 GPU(图形处理器)的并行计算特点[10G11],提高了算法的运算速度.

    2.2.1 算法分析

    为了使视差图的子像素与柱透镜光栅相匹配,并且当观看者距离变化时,每个柱透镜光栅截距下覆盖的子像素随之变化,我们需要对各部分视差图按照不同取值规则进行像素取舍,然后将取舍后的视差图像进行融合得到合成图像,其合成过程原理如图3所示.

图3 立体图像合成原理图

    视差图子像素进行重新排列的过程是合成立体图像的重要步骤,在进行子像素排列的过程中,子像素的排列具有一定的周期,其一个周期内所有像素的尺寸等于柱透镜光栅截距,设视点数为N0,s 表示柱透镜光栅倾斜的斜率,factors表示合成图像的一个视点下所包含的像素值,factor表示需要进行取舍的子像素,其满足:


    根据上式,当观看距离变化时,调整 N0 的大小,计算出此时合成图像的factors,再算出视差图像子像素小数部分的值factor,然后对小数部分的像素进行重新排列,舍去一些多余的像素点,然后将其进行融合成新的立体图像.

    2.2.2 GPU 编程实现

    在图像合成过程中,我们通过着色器语言进行实时渲染,过程中需要处理大量的数据,并行计算是十分有效的处理方法,我们在 GPU 中编译相应的着色器语言,使用着色器语言开发的渲染程序称之为shader.每个像素是由R、G、B子像素构成的,因此我们在编写shader程序时,需要进行相应的三基色选取,每个像素可分为4种情况,即:


    我们依次对视差图像的子像素进行相应的合理取舍,便可以得到新的子像素.在获取新的子像素的过程中,每幅视差图是独立进行的.因此,按照上述方法,依次获取每幅视差图的子像素,然后叠加融合,将获得合成图像在 GPU 上渲染并显示在自由立体3D显示器上,其合成过程如图4所示.

图4 基于 GPU 的立体图像合成过程图

    3 实 验

    本文的实验过程主要是基于 Unity3D 环境下,我们将上述的灵活视点立体图像合成算法写入shader程序,导入模型,设置虚拟的多视点相机,获得具有连续水平视差的八幅视差图像.然后测量观看距离,通过合图算法,改变视点数,使得最佳观看距离随之改变,从而降低图像串扰.图5为实验装置示意图.

图5 实验装置示意图

    本实验使用的自由立体3D 显示器的参数如表1所示.

表1 自由立体3D显示器的相关参数

图6 不同观看距离下拍摄的视差图

    为验证所 提 算 法 的 可 行 性,我 们 分 别 在 不同位置拍 摄 了 立 体 图 像 的 显 示 效 果,如 图 6 所示.图6(a)、(b)分别表示观看距离为2 m、1.2m 时的 实 验 场 景,图 6(a)为 8.0 个 视 点,图 6(b)为8.705个视点,可以看出,当观 看 距 离 变化时,“人物的左手”和“石头”的间距发生变换,视点数也 会 相 应 变 化,并 且 合 成 图 像 的 串 扰 也较低.

    根据显示器的参数和式(1),我们绘出了在1m到2m 的观看距离与视点数的曲线关系图,并且根据实验结果,分别对观看距离为1.2m,1.4m,1.6m,2m 时的视点数进行了15次测量,其平均值分别为8.705,8.412,8.221,8.0,如图 7 所示.可以看出,当观看距离在1m~2m 变化时,测量值与曲线之间的误差小,与实验结果相符合.

图7 观看距离与视点数的关系

    4 结 论

    本文提出了基于 Unity3D 的可变视点数立体图像合成算法,详细介绍了该算法的实现原理,并采用 GPU 执行程序,最后通过实验论证了该算法的可行性.可根据观看者的位置调整视点数,进而改变最佳观看距离,拓展了自由立体3D显示器的最佳观看区域,并且立体效果良好.该算法实现效率高,可根据需要的最佳观看距离自由调整视点数,有利于自由立体3D 显示器的应用推广.

    参考文献(略)

    作者简介:李春江 (1992-),男,四川南充人,硕士研究生,主要从事自由立体3D显示技术方面的研究,EGmail:153128193@qq.com
标签:unity裸眼
上一篇:三维GIS及其在智慧城市中的应用下一篇:基于EON的灌装生产线仿真系统的设计与实现
网友评论:基于Unity3D的可变视点数裸眼立体图像合成算法
留名: 验证码:
最新评论
查看全部评论0
暂无评论
您可能还需要关注一下内容:
·裸眼3D胸腔镜与2D胸腔镜在微创食管癌根治术中的临床对比研究
·王连云:裸眼3D技术现状及产业推进六大建议
·裸眼3D显示终端关键技术及建议
·微纳加工技术:无视疲劳裸眼3D显示助推器
·智能裸眼3D显示技术与产业刍议
·戴琼海:未来10年,裸眼三维显示将获得大发展
·基于Unity3D的气相色谱仪虚拟仿真实验系统的构建
·基于Unity3D的火炮外弹道虚拟视景仿真系统
·裸眼3D技术突破 VR眼镜或成昨日黄花?
·Unity 3D HoloLens 2开发初窥
☏ 推荐产品

小宅 Z5 2018青春版
商家:小宅

杰瑞特运动平台
商家:杰瑞特智能

Dikalis眼动追踪
商家:赢富仪器

魔神 Hawk
商家:魔神运动分析

5DT Binoculars
商家:四维宇宙

Christie DS+750
商家:四维宇宙

Zalman M220W
商家:四维宇宙

全息360°
商家:四维宇宙

PD F10 AS3D
商家:四维宇宙

PHANTOM系列
商家:四维宇宙
☞ 外设导航
☏ 企业名录
【宁波】宁波维真显示科技股份有限公司
【潍坊】歌尔股份有限公司
【上海】霍尼韦尔(中国)有限公司
【北京】科视Christie-中国
【北京】北京华如科技股份有限公司
【北京】北京乐卡仕技术有限公司
【广州】广州弥德科技有限公司
【上海】刃之砺信息科技(上海)有限公司
【北京】北京度量科技有限公司
【北京】北京小鸟看看科技有限公司
关于本站联系我们融资计划免责声明网站建设广告服务咨询策划行业推广
北京第三维度科技有限公司 版权所有 京ICP备15051154号-3
2008-2020 Beijing The third dimension Inc. All Rights Reserved.
Email:d3dweb@163.com  QQ:496466882
Mob:13371637112(24小时)
关注虚拟现实
关注第三维度