研究员提出无监督黑盒测试框架检测VR立体视觉不一致问题
无监督黑盒测试框架
(映维网Nweon 2024年12月11日)渲染质量对于VR体验而言至关重要,尤其是图形用户界面(GUI)。与传统的2D应用程序不同,VR需要为用户的左眼和右眼分别渲染两个不同的2D图像。然而,立体视觉不一致(Stereoscopic Visual Inconsistenc/SVI)问题破坏了用户大脑的呈现过程,并导致用户不适,甚至对健康产生不利影响。
香港中文大学,哈尔滨工业大学和南方科技大学团队对来自15个VR平台的282份SVI Bug报告进行了实证分析。结果表明,自动检测SVI问题具有一定的挑战性,主要原因在于:
-
缺乏训练数据;
-
SVI问题的表现形式多样、复杂,且往往具有应用特殊性;
-
大多数可访问的VR应用都是闭源商业软件。现有的基于模式的监督分类方法在检测SVI问题时可能不适用或无效。
为了应对所述挑战,团队提出了一个名为StereoID的无监督黑盒测试框架,它仅基于呈现的GUI状态来识别立体视觉不一致。StereoID根据实际左眼图像生成合成右眼图像,并计算合成右眼图像与实际右眼图像之间的距离,从而检测SVI问题。
另外,他们提出了一种深度感知条件立体图像转换器来驱动图像生成过程,并捕获左眼和右眼图像之间预期的视角变化。经过大量的实验,StereoID在检测SVI问题方面表现出了卓越的性能。
VR是一种通过创建交互式虚拟环境为用户提供身临其境体验的技术。在过去的数年里,VR经历了显著的普及和多样性的激增,包括数以万计的应用程序,及用于技能培训和医疗辅助等各种目的。
这种技术需要分别为用户的眼睛提供两种截然不同的2D图像。然后,用户的大脑根据这两幅图像构建相应的立体3D场景,并产生深度错觉。渲染问题会导致VR中的不适感觉,包括头痛、定向障碍、恶心等症状,并可能会影响用户的健康和安全,阻碍VR应用的发展和成长。
渲染引起晕动症问题的一个常见原因是,从2D到3D的过程中,左眼和右眼的视角不一致。这类问题可以称为立体视觉不一致性(SVI)。它不仅会给用户带来相互矛盾的信息误导,而且会造成用户失去兴趣。人工测试可能是缓解SVI问题的一种可能解决方案,但这既耗时又费力,而且可能会令测试人员面临健康和安全风险。
所以,研究人员正在积极开发自动化测试方法。团队首先从15个VR相关平台收集了282个SVI问题的Bug报告,并进行实证分析,手动分析其表现形式。结果表明,SVI问题在规模和表现方面都是多样化的,并且与VR应用的语义或逻辑的语义密切相关。
视图级别的不一致是全局的,包括视图位移、变形和视角差异。对象级别的不一致是局部的,与对象数量、渲染效果、位置等有关。在表现方面,研究人员总结了15种不同的类型,它们不会导致应用程序崩溃或运行时错误,只会影响用户体验,所以很难用常规的测试oracle检测到。
最近的研究利用深度学习技术在自动化GUI测试中解决传统测试预言机和测试方法在检测GUI显示问题方面的上述缺点。相关方法将GUI问题检测建模为分类问题,通过修改常规GUI屏幕截图或向代码中注入bug来生成异常屏幕截图,从而增强训练数据。这种监督解决方案允许深度学习分类器能够有效地检测故障,提高GUI测试效率。
尽管取得了进步,但它们在识别SVI问题方面仍然面临以下三个挑战:
-
缺乏标记的训练数据。很难收集到足够的标记数据用于模型训练,特别是具有SVI问题的数据。人工检查大量数据可能会导致晕动症,这并不适用。
-
语义相关的表现形式很难由预定义的模式捕获。SVI问题与特定于应用程序的语义密切相关,所以很难使用现有的基于模式的检测技术进行捕获。另外,目前的方法仅限于检测预定义的模式,很难处理未报告的症状。
-
闭源VR应用为问题检测提供的可访问信息有限。
所以,香港中文大学,哈尔滨工业大学和南方科技大学团队提出了一个自动测试框架StereoID,以识别VR应用程序中的立体视觉不一致性。
StereoID仅依赖于VR应用程序的外部渲染状态,不需要代码配置等额外信息。StereoID没有预先定义检测模式,而是将SVI问题识别问题重新表述为异常检测问题。StereoID根据实际的左眼图像生成合成的右眼图像,并计算合成图像与实际右眼图像之间的距离,以检测异常。
为了生成合成右眼图像,团队进一步提出了一种深度感知条件立体图像转换器Painter。Painter捕获左眼和右眼图像之间复杂但可预测的映射。为了处理由于场景中物体深度导致的左眼和右眼图像之间的空间偏移,Painter分别集成了左眼图像和右眼图像的单眼深度图作为额外输入。这种深度感知的方式赋予Painter生成准确右眼图像所需的关键空间背景。
总的来说,研究人员提出了一种无监督黑盒测试框架,并用于检测VR应用中的立体视觉不一致(SVI问题)。团队对来自15个VR平台的282个真实SVI问题bug报告进行了实证分析,揭示了SVI问题的复杂性和多样性。
StereoID利用深度感知条件立体图像转换器Painter从左眼图像生成合成右眼图像,将SVI问题检测作为异常检测问题。他们构建了几个数据集来验证StereoID的有效性和实用性,包括从288个现实世界的VR应用程序中收集的超过171K的VR立体图像截图的大型数据集。
广泛的评估表明,在用户报告的SVI问题和in the wild场景中,StereoID都能有效识别SVI问题,在像素级精度、结构一致性和SVI问题检测精度方面优于基线。团队相信,这一研究显著提高了VR应用的质量保证,增强了用户体验和安全性。未来的研究将集中在完善和增强框架,以进一步提高鲁棒性和适用性。