本发明涉及增强现实技术领域,尤其是涉及一种在目标对象上显示增强现实效果的方法。
背景技术:
增强现实技术(augmentedrealitytechnique,简称ar)是在虚拟现实基础上发展起来的技术,它借助于可视化技术,将计算机生成的虚拟物体、场景或装置提示信息叠加到真实场景的目标对象上。
目前,在使用任何增强现实开发平台的平面图像追踪功能时,对于目标对象都有着严苛的要求,目标对象可以是一本书、一张名片、一副海报甚或是一面涂鸦墙这类具有平坦表面的物品或事物,但是,目标对象必须要具有丰富且不重复的纹理,这样目标对象才能有足够的锚点提供给增强现实应用,从而定位真实场景中目标对象相对于摄像头的位置和距离。
一般来讲,美术设计往往不会使用花哨、复杂的图案,而是使用更贴切场景、违和感较小的图案,因此,增强现实应用的目标对象在摄像头屏幕中往往是简单的几何图形,而这种简单的目标对象无法为增强现实应用提供足够的用于定位的锚点。
其次,在实际使用中,目标对象需要占屏幕大约60%才能被增强现实应用稳定识别。如果目标对象面积很小或者目标对象与摄像机距离较远,都会导致目标对象在摄像机中的占屏比不足,增强现实应用无法正确读取到目标对象上的锚点,只能通过放大摄像头或者拉近摄像头与目标对象的距离,用户体验感较差。而且在实际场景中,很多情况下用户与目标对象的距离在设计上是硬性需求,无法得到妥善解决。
技术实现要素:
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种在目标对象上显示增强现实效果的方法,对增强现实应用不能识别的较小的或简单的目标对象,添加标识点,并设置用于控制增强现实效果显示的触发器,不需要放大目标图片或拉近距离就可以识别较小的或简单的目标对象,用户体验感高。
本发明的目的可以通过以下技术方案来实现:
一种在目标对象上显示增强现实效果的方法,包括以下步骤:
s1:获取含有目标对象的目标图片并识别目标图片中的目标对象和背景;
s2:设计标识点并在目标图片中添加标识点,得到图片组;
s3:在模拟器中测试图片组的识别性能,若识别性能合格,则执行步骤s4,否则,执行步骤s2;
s4:在增强现实应用中,导入增强现实效果和图片组,获取图片组的特征参数,生成第一触发器并将其设于摄像头的前部,生成第二触发器并将其设于图片组的目标对象处;
s5:在增强现实应用中,将增强现实效果设为透明模式,并设置第一触发器与第二触发器接触时的接触效果为:当第一触发器与第二触发器接触时,增强现实效果调为不透明模式;
s6:增强现实应用中的摄像头扫描图片组。
进一步地,所述步骤s2中,标识点为与背景画面中色彩、纹理、形状中一者或多者不一致的点。
进一步地,所述步骤s2中,标识点位于目标图片中目标对像的周边区域。
进一步地,所述步骤s3中,模拟器用于模拟增强现实效果在图片组上的显示效果,步骤s3包括以下步骤:
s301:在模拟器中导入图片组和增强现实效果,图片组中的目标对象和标识点构成待测试目标对象;
s302:调节模拟器的参数,直至达到预设置的测试标准;
s303:模拟器中的模拟摄像头扫描图片组,若增强现实效果能在图片组上稳定显示,则图片组的识别性能合格,否则,图片组的识别性能不合格。
更进一步地,所述步骤s302中,预设置的测试标准为待测试目标对象占模拟器中模拟摄像头屏幕面积的60%以上。
进一步地,所述步骤s4中,图片组的特征参数包括:目标对象在图片组上的位置、目标对象的长度值、目标对象的宽度值。
进一步地,所述步骤s4中,所述第一触发器为3d触发器,第一触发器的长度值和宽度值均与目标对象的长度值和宽度值一致,第一触发器的高度值设置为最大高度值。
进一步地,所述步骤s4中,所述第二触发器为3d触发器,第二触发器的长度值和宽度值均与目标对象的长度值和宽度值一致。
进一步地,所述步骤s5中,透明模式为增强现实效果的透明度等于0。
进一步地,所述步骤s5中,不透明模式为增强现实效果的透明度等于255。
与现有技术相比,本发明具有以下有益效果:
(1)对增强现实应用不能识别的较小的或简单的目标对象,添加标识点,并设置用于控制增强现实效果显示的触发器,不需要放大目标图片或拉近距离就可以识别较小的或简单的目标对象,用户体验感高。
(2)根据目标图片的背景灵活设计标识点,并添加至目标对象的周边区域,不影响目标对象,标识点和目标对象构成了更易被识别的新的目标对象。
(3)在模拟器中模拟增强现实效果在图片组上的显示效果,能更直观的判断图片组的识别性能,确定标识点的设计与添加位置是否合理。
(4)根据目标对象的位置和大小在摄像头和目标对象处分别设置触发器,能控制增强现实效果在较小的或简单的目标对象上精确显示,通过设置触发器的高度,可以使用户扫描距离更远、更简单的目标对象,且增强现实效果的显示更加稳定、可靠。
附图说明
图1为本发明的流程图;
图2为实施例中的目标图片;
图3为实施例中的图片组。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1:
如图1所示,一种在目标对象上显示增强现实效果的方法,包括以下步骤:
s1:获取含有目标对象的目标图片并识别目标图片中的目标对象和背景;
s2:设计标识点并在目标图片中添加标识点,得到图片组;
s3:在模拟器中测试图片组的识别性能,若识别性能合格,则执行步骤s4,否则,执行步骤s2;
s301:在模拟器中导入图片组和增强现实效果,图片组中的目标对象和标识点构成待测试目标对象;
s302:调节模拟器的参数,直至达到预设置的测试标准;
s303:模拟器中的模拟摄像头扫描图片组,若增强现实效果能在图片组上稳定显示,则图片组的识别性能合格,否则,图片组的识别性能不合格。
s4:在增强现实应用中,导入增强现实效果和图片组,获取图片组的特征参数,生成第一触发器并将其设于摄像头的前部,生成第二触发器并将其设于图片组的目标对象处;
s5:在增强现实应用中,将增强现实效果设为透明模式,并设置第一触发器与第二触发器接触时的接触效果为:当第一触发器与第二触发器接触时,增强现实效果调为不透明模式;
s6:增强现实应用中的摄像头扫描图片组。
本实施例中,目标图片如图2所示,识别目标对象和背景,背景为白色,故添加黑色点作为标识点,在目标图片的基础上在距离目标对象合适距离处添加标识点。
如图3所示,标识点可以是一个难以被注意到的白点或黑点(主要是要与目标图片背景画面有所区分),而这些标识点和目标对象构成的新的目标对象可以为增强现实应用提供数量不等的锚点,并且这些锚点由于相对距离较远,位置固定成一定形状,在扫描时可以提升模型的稳定性。
这样,虽然目标图片没有放大,但是标识点与目标对象组成的图片组已经扩展到了较远处,可以类似的将其视为目标图片的放大,这一措施解决了目标对象过小以及目标对象过远导致的问题。
为了方便,本实施例中以unity引擎+easyar增强现实平台作为模拟器和增强现实应用的开发平台。
首先在unity引擎中测试图片组的识别性能。主要测试过程如下:
(1)先在unity中将easyar平台提供的unitypackage导入unity中,并为camera添加相关代码使之支持ar摄像头。
(2)再将制作的图片组以png格式导入streamingassets文件夹中。在场景中添加imagetarget并添加相关代码imagetargetcontroller,将代码中的targetpath更换为图片组。
(3)将测试模型或其他增强现实效果添加至imagetarget下,测试模型或其他增强现实效果可任选,本实施例以方块cube为例。
图片组中标识点和目标对象构成了待测试目标对象,若摄像头与图片组的距离为较远距离或规定距离,且扫描图片组后能在待测试目标对象上稳定显现方块cube,则认为图片组设计合理,图片组的识别性能合格,若无法稳定显现方块或靠近才能显示则认为图片组的识别性能不合格,重新制作图片组。
控制图片组与摄像头之间的距离为较远距离或规定距离具体表现为控制图片组中待测试目标对象占摄像头屏幕面积的60%以上。
若图片组的识别性能合格,则在unity引擎中为增强现实应用添加触发器并设置触发效果,主要过程如下:
(1)先在unity中将easyar平台提供的unitypackage导入unity中,并为camera添加相关代码使之支持ar摄像头。
(2)再将制作的图片组以png格式导入streamingassets文件夹中。在场景中添加imagetarget并添加相关代码imagetargetcontroller,将代码中的targetpath更换为图片组。
(3)获取图片组中目标对象的位置和大小,为camera和imagetarget分别添加第一触发器trigger1和第二触发器trigger2,第一触发器trigger1的长度值和宽度值与目标对象的长度值和宽度值相同,高度值设为最大值,从而保证即使摄像头与目标图片距离很远,两个触发器也能互相接触。第二触发器trigger2和图片组中的目标对象的大小位置保持一致,这样可以保证只有在摄像头扫描到图片组中的目标对象,也就是两个触发器接触时才会显示增强现实效果。
(4)选择模型或其他增强现实效果导入场景中,并置于imagetarget下,选择的模型或其他增强现实效果将在目标对象上显示。将模型或其他增强现实效果的透明度调至0,也就是透明模式,以避免扫描到图片组但尚未扫描到目标对象时误显示增强现实效果。为第一触发器trigger1和第二触发器trigger2添加接触效果代码,接触效果代码为在第一触发器trigger1和第二触发器trigger2接触时,模型或其他增强现实效果的透明度调至255,即不透明模式,达成显示增强现实效果的目的。而触发器离开时透明度调至0,即透明模式,达成不显示增强现实效果的目的。
完成上述操作后,用户可以在更远的距离扫描更加简洁的图片,得到的增强现实效果的显示效果是与扫描目标图片无异的,甚至是更稳定,更可靠的。