一种目标跟踪控制的方法和装置与流程

文档序号:13935286
一种目标跟踪控制的方法和装置与流程

本发明涉及计算机技术领域,具体涉及一种目标跟踪控制的方法和装置。



背景技术:

Unity3D是由Unity Technologies公司开发的一个让用户轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型开发。现有技术中,Unity3D提供了一种实现物体定位跟踪的机制,即,跟踪物体赋为被跟踪物体的子对象,这样,当被跟踪物体移动或旋转时,由于跟踪物体是被跟踪物体的子对象,所以被跟踪物体也会跟随被跟踪物体进行移动或旋转。但是,在基于Unity3D进行目标定位跟踪中,现有方案至少存在如下缺陷:

缺陷一,由于执行定位操作时,摄像头视点位置不固定,有可能会被场景中存在物品所遮挡,无法明确标识出所定位的目标所处的位置。

缺陷二,随着目标移动转身主视角也会跟随其移动旋转,视角不固定并且会随着移动旋转产生角度偏移。



技术实现要素:

本发明提供了一种目标跟踪控制的方法和装置,以解决现有技术方案存在的无法明确标识出所定位的人员所处位置以及视角不固定并且会产生角度偏移的问题。

根据本发明的一个方面,提供了一种目标跟踪控制的方法,该方法包括:

在被跟踪目标的目标对象中添加用于实时获取被跟踪目标的位置信息,并跟随所述目标对象的位置移动的指令;

根据获取到的所述目标的位置信息,控制调整拍摄设备的位置,使得当所述目标发生位置移动时所述拍摄设备的焦点跟踪所述目标移动并实时拍摄所述目标,且当所述目标转动时所述拍摄设备的焦点不跟踪所述目标转动。

可选地,所述在被跟踪目标的目标对象中添加用于获取被跟踪目标当前的位置信息并跟随所述目标对象的位置移动的指令包括:

查找被跟踪目标所在的类,并实例化所述被跟踪目标类,得到被跟踪目标对象;

创建中间对象,利用所述中间对象从所述被跟踪目标对象中实时获取被跟踪目标移动的位置坐标值,并保持中间对象的位置移动与所述目标对象的位置移动相一致。

可选地,所述根据获取到的所述目标对象的位置信息,控制调整拍摄设备的位置包括:

将所述拍摄设备赋值为所述中间对象的子对象,根据所述中间对象实时获取的被跟踪目标的位置坐标值,调整所述拍摄设备的位置坐标,使得所述拍摄设备焦点的移动与所述被跟踪目标的移动保持同步。

可选地,所述调整所述拍摄设备的位置坐标,使得所述拍摄设备焦点的移动与所述被跟踪目标的移动保持同步包括:

在所述被跟踪目标移动过程中保持所述拍摄设备的高度不变,并根据被跟踪目标移动后的位置坐标值以及预设的拍摄设备与被跟踪目标的相对位置,计算拍摄设备移动量,根据计算得到的移动量控制所述拍摄设备移动,使得所述拍摄设备焦点的移动与所述被跟踪目标的移动保持同步。

可选地,所述预设的拍摄设备与被跟踪目标的相对位置为:拍摄设备在所述被跟踪目标的斜上方位置,且倾斜角为45度。

根据本发明的另一个方面,提供了一种目标跟踪控制的装置,装置包括:

位置信息获取单元,用于在被跟踪目标的目标对象中添加用于实时获取被跟踪目标的位置信息并跟随所述目标对象的位置移动的指令;

跟踪控制单元,用于根据获取到的所述目标的位置信息,控制调整拍摄设备的位置,使得当所述目标发生位置移动时所述拍摄设备的焦点跟踪所述目标移动并实时拍摄所述目标,且当所述目标转动时所述拍摄设备的焦点不跟踪所述目标转动。

可选地,所述位置信息获取单元,具体用于查找被跟踪目标所在的类,并实例化所述被跟踪目标类,得到被跟踪目标对象;

创建中间对象,利用所述中间对象从所述被跟踪目标对象中实时获取被跟踪目标移动的位置坐标值,并保持中间对象的位置移动与所述目标对象的位置移动相一致。

可选地,所述跟踪控制单元,具体用于将所述拍摄设备赋值为所述中间对象的子对象,根据所述中间对象实时获取的被跟踪目标的位置坐标值,调整所述拍摄设备的位置坐标,使得所述拍摄设备焦点的移动与所述被跟踪目标的移动保持同步。

可选地,所述跟踪控制单元,具体用于在所述被跟踪目标移动过程中保持所述拍摄设备的高度不变,并根据被跟踪目标移动后的位置坐标值以及预设的拍摄设备与被跟踪目标的相对位置,计算拍摄设备移动量,根据计算得到的移动量控制所述拍摄设备移动,使得所述拍摄设备焦点的移动与所述被跟踪目标的移动保持同步。

可选地,所述跟踪控制单元,具体用于将拍摄设备和被跟踪目标的相对位置预设为:拍摄设备在所述被跟踪目标的斜上方位置,且倾斜角为45度。

本发明的有益效果是:本发明的这种目标跟踪控制的技术方案,应用在Unity3D中进行目标跟踪,通过在被跟踪目标的目标对象中添加用于获取被跟踪目标当前的位置信息并跟随目标对象的位置移动的指令,然后利用待跟踪目标的位置信息,控制调整拍摄设备的位置,如此,一方面,通过在目标对象中添加获取目标对象位置并跟随目标对象移动的指令,保证了目标对象发生任何移动时,都可以获取移动后的位置,从而根据目标对象移动后的位置调整拍摄设备的位置。另一方面,由于本实施例中没有将拍摄设备赋为目标对象的子对象,而是通过在目标对象中添加指令获取目标对象的移动信息,这样可以实现当目标对象旋转时不跟随目标对象旋转的效果。与现有技术中,将拍摄设备赋为目标对象的子对象这种目标定位跟踪的方式相比,避免了随着目标转身拍摄设备视角也会跟随其移动旋转,导致的视角不固定、角度偏移的问题,满足了用户的设计需求,提升了用户使用体验。

附图说明

图1是本发明一个实施例的一种目标跟踪控制的方法流程示意图;

图2是本发明另一个实施例的一种目标跟踪控制的装置的结构框图。

具体实施方式

Unity3D提供了一种实现人员定位跟踪的机制,即在Unity3D中操作主视角摄像头对象使摄像头成为需要定位跟踪目标(例如,某一人员)对象的子对象,并把视点指向该对象(人员),摄像头就会跟随关注对象(人员)移动而产生位置变化。但是,现有Unity3D在进行人物定位跟踪时,是直接将摄像头对象成为需要定位跟踪人员对象的子对象,这样被跟踪人员位置移动或转动时,由于摄像头是被跟踪人员对象的子对象,所以摄像头的视角也会跟随人员的转动而转动,但是,摄像头的视角转动会导致视角不固定并且会随着移动旋转产生角度偏移,无法满足设计需求。

本发明的设计构思在于:在被跟踪的人员对象中添加用于实时获取被跟踪人员对象的位置信息并跟随人员对象的位置移动的指令,而不是将拍摄设备赋为被跟踪人员对象的子对象的方式,这样,一方面,由于通过该指令可以实时获取被跟踪人员对象的位置信息并跟随人员对象的位置移动,从而当人员对象移动时,根据获取人员对象的位置信息调整拍摄设备的位置,实现了跟踪人员对象移动的有益效果,另一方面,由于没有将拍摄设备赋为被跟踪人员对象的子对象,从而可以根据人员对象的移动或旋转区分处理,当判断出人员对象当前进行了旋转时,不跟踪被跟踪人员对象的旋转而旋转的有益效果,提升了用户体验。

实施例一

图1是本发明一个实施例的一种目标跟踪控制的方法流程示意图,参见图1,包括如下步骤:

步骤S101,在被跟踪目标的目标对象中添加用于实时获取被跟踪目标的位置信息并跟随所述目标对象的位置移动的指令;

步骤S102,根据获取到的目标的位置信息,控制调整拍摄设备的位置,使得当目标发生位置移动时拍摄设备的焦点跟踪目标移动并实时拍摄目标,且当目标转动时拍摄设备的焦点不跟踪目标转动。

由图1所示的方法可知,本实施例中,在被跟踪目标的目标对象中添加用于实时获取被跟踪目标的位置信息并跟随目标的位置移动的指令,然后根据目标对象的移动调整拍摄设备的位置,从而实现了当目标发生位置移动时拍摄设备的焦点跟踪目标移动并实时拍摄目标,且当目标转动时拍摄设备的焦点不跟踪目标转动的有益效果,如此,在跟踪目标移动时由于摄像头可以跟踪目标并进行移动解决了现有技术方案存在的由于视野中物体遮挡无法明确标识出所定位的人员所处位置的问题,并且,在跟踪目标发生旋转时,摄像头不跟踪目标的旋转而旋转,也解决了现有技术中摄像头跟踪目标的旋转而旋转导致的视角不固定并且会产生角度偏移的问题。

实施例二

本实施例中重点对本发明的这种目标跟踪控制的方法的实现细节进行说明。

在Unity3D中,为了清晰展示定位跟踪目标的位置,首先,要移动摄像头的视点到一个合适观察的角度与位置,之后,再定位跟踪被观察目标。由于视角移动是一个过渡效果存在一定动画过渡时间,并且在视角移动过程中,目标也有可能会进行移动导致视角移动后无法定位观察到目标,因此,需要在移动摄像头视角过程中进行相应处理,以保证准确定位目标后跟随目标位置移动且摄像头视角不跟随目标转动。

本发明实施例的目标跟踪控制的整体的实现流程:首先是不改变摄像头高度,摄像头根据与被跟踪目标的相对位置,移动摄像头到目标的斜上方位置,摄像头转向朝向被跟踪目标。实现移动动作过程中保持摄像头与目标的相对位置,并且,移动的过程中创建一个中间对象,在目标对应的对象中控制这个中间对象跟随被跟踪目标的位置移动并且控制这个中间对象不进行转动,时刻使摄像头的移动偏移量与这个中间对象保持一致,即可实现摄像头焦点跟踪观察目标的有益效果。

具体的,本实施例的目标跟踪方法包括如下步骤:

步骤2.1,获取被跟踪目标的位置信息。

查找被跟踪目标所在的类,并实例化被跟踪目标类,得到被跟踪目标对象;创建中间对象,利用中间对象从被跟踪目标对象中实时获取被跟踪目标移动的位置坐标值。需要说明的是,中间对象中的中间不代表位置关系,可以将其理解为对象的名称。

具体的,在人员(即本实施例中的一个被跟踪的目标)对象加入用于实时获取被跟踪目标的位置信息并跟随目标对象的位置移动的指令代码,控制赋值物体(赋值物体即拍摄设备,如摄像头)坐标与人员本身坐标保持一致,部分代码示意如下:

步骤2.2,执行人物定位跟踪时,控制摄像头移动。

具体的,创建一个中间对象,把该中间对象赋给定位人员对象,触发如上所述的程序代码,实现中间对象和定位人员对象的同步移动。部分实现代码示意如下:

步骤2.3,在获取到目标对象的位置信息后控制调整拍摄设备的位置。

具体的,将拍摄设备赋值为中间对象的子对象,根据中间对象实时获取被跟踪目标的位置坐标值后,调整拍摄设备的位置坐标,使得拍摄设备焦点跟踪目标的移动。

即,在实际应用过程中,是将摄像头赋为中间对象的子对象,来实现摄像头跟随中间对象一起移动,不跟随人员对象旋转,部分实现代码示意如下:

gameObject.transform.parent=tarObj.transform;

步骤2.4,根据摄像头与人员相对位置计算移动摄像头,并旋转朝向定位人员方向。

注:这里的旋转朝向定位人员方向不同于现有技术中摄像头焦点跟踪定位人员的转动而旋转,步骤2.4中的控制旋转摄像头是由于人员的位置移动后,摄像头的角度可能无法准确对准人员对象而控制调整摄像头的角度。举例而言,在人员对象移动之前,摄像头在定位并观察人员对象时,处于仰视角度,人员对象移动过程中,摄像头跟踪人员移动,这可能出现摄像头的位置移动后(即位于定位人员斜上方位置)焦点不能准确对准人员对象,例如,摄像头位置移动后,处于仰视状态,无法准确观察被跟踪人员对象,那么此时,可以在摄像头移动后位于定位人员斜上方的位置,调节摄像头的视角为俯视,以便更好地观察被跟踪的人员对象。很明显,这种选中朝向定位人员不会导致视角不固定和角度偏移。

现有技术中摄像头焦点跟踪定位人员的转动而旋转是指,当人员发生旋转时,摄像头也会跟踪其旋转。举例而言,在一个具体应用场景中,初始时,摄像头位于被跟踪人员的后方观察被跟踪人员对象(此时,观察的是被跟踪人员的背面),被跟踪人员对象向前方移动时,摄像头跟踪人员对象向前移动,当被跟踪人员走到过道的尽头,前方没有路时,被跟踪人员转身,往回走,按照现有技术,此时,摄像头会跟踪人员的转身而发生180度的旋转,从而摄像头旋转后依然位于人员对象的后方,观察人员对象的背面。而在摄像头跟踪人员的转身而进行旋转时视角不固定并且往往会在旋转时产生角度偏移。

而上述步骤2.4中的调整摄像头的角度,由于不会跟踪目标人员的旋转,所以观察视角是固定的,接上例,被跟踪人员对象向前方移动时,摄像头跟踪人员对象向前移动,当被跟踪人员走到过道的尽头,前方没有路时,被跟踪人员转身,往回走,按照本发明实施例的技术方案后,摄像头不会跟踪人员的转身而发生旋转,摄像头的视角是固定的,当人员对象转身之前,摄像头从人员对象的后面观察该人员对象,当人员对象转身之后,摄像头从人员对象的前面观察该人员对象,由于摄像头的观察视角固定不发生旋转,从而也避免了旋转过程中的角度偏移问题。

本实施例在被跟踪目标移动过程中,保持摄像头的高度不变,并根据被跟踪人员移动的位置坐标值以及预设的摄像头与被跟踪人员的相对位置,计算摄像头的移动量,根据计算得到的移动量控制摄像头移动,使得摄像头焦点与被跟踪目标的移动保持同步。

需要说明的是,本实施例中是通过一个中间对象来获取人员对象的位置坐标值,然后根据获取的人员对象的位置坐标值,将位置坐标值赋值给中间对象的子对象即摄像头对象的位置移动参数,从而实现摄像头的位置移动与中间对象的移动保持一致。并且,由于中间对象只是根据人员对象的位置移动而移动,并不跟随人员对象旋转,从而保证了摄像头对象也跟随人员对象进行旋转。

另外,这里的预设相对位置为:拍摄设备在被跟踪目标的斜上方位置,且倾斜角为45度。需要说明的是,由于人员位置随时可能发生变动,所以,这里的斜上方位置不是指固定的一个位置,而指的是相对位置。例如,被跟踪的人员当前时刻在A位置,下一时刻移动到了B位置,摄像头将根据人员的位置移动,在保持摄像头的高度以及摄像头与被跟踪人员的相对位置不变的前提下进行移动,以实现人员移动过程中的视点跟踪。

另外,在被跟踪人员对象移动过程中,通过将拍摄设备始终保持在被跟踪人员对象的斜上方位置,避免了现有技术中由于被跟踪人员对象移动到物体的后面而被物体遮挡导致的观察不到被跟踪人员对象的问题。

实现代码部分示意如下:

实施例三

本实施例中提供了一种目标跟踪控制的装置,该目标跟踪控制的装置20包括:

位置信息获取单元201,用于在被跟踪目标的目标对象中添加用于实时获取被跟踪目标的位置信息并跟随目标对象的位置移动的指令;

跟踪控制单元202,用于根据获取到的目标的位置信息,控制调整拍摄设备的位置,使得当目标发生位置移动时拍摄设备的焦点跟踪目标移动并实时拍摄目标,且当目标转动时拍摄设备的焦点不跟踪目标转动。

在本发明的一个实施例中,位置信息获取单元201,具体用于查找被跟踪目标所在的类,并实例化被跟踪目标类,得到被跟踪目标对象;

创建中间对象,利用中间对象从被跟踪目标对象中实时获取被跟踪目标移动的位置坐标值,并保持中间对象的位置移动与目标对象的位置移动相一致。

在本发明的一个实施例中,跟踪控制单元202,具体用于将拍摄设备赋值为中间对象的子对象,根据中间对象实时获取的被跟踪目标的位置坐标值,调整拍摄设备的位置坐标,使得拍摄设备焦点的移动与被跟踪目标的移动保持同步。

在本发明的一个实施例中,跟踪控制单元202,具体用于在被跟踪目标移动过程中保持拍摄设备的高度不变,并根据被跟踪目标移动后的位置坐标值以及预设的拍摄设备与被跟踪目标的相对位置,计算拍摄设备移动量,根据计算得到的移动量控制拍摄设备移动,使得拍摄设备焦点的移动与被跟踪目标的移动保持同步。

在本发明的一个实施例中,跟踪控制单元202,具体用于将拍摄设备和被跟踪目标的相对位置预设为:拍摄设备在被跟踪目标的斜上方位置,且倾斜角为45度。

需要说明的是,本实施例的这种目标跟踪控制的装置是和前述目标跟踪控制的方法相对应的,因而本实施例的目标跟踪控制的装置的工作过程的更多细节可以参见前述实施例中对目标跟踪控制的方法实现步骤的说明,在此不再赘述。

综上所述,本发明的这种目标跟踪控制的技术方案,应用在Unity3D中进行目标跟踪,通过在被跟踪目标的目标对象中添加用于获取被跟踪目标当前的位置信息并跟随目标对象的位置移动的指令,然后利用待跟踪目标的位置信息,控制调整拍摄设备的位置,如此,一方面,通过在目标对象中添加获取目标对象位置并跟随目标对象移动的指令,保证了目标对象发生任何移动时,都可以获取移动后的位置,从而根据目标对象移动后的位置调整拍摄设备的位置。另一方面,由于本实施例中没有将拍摄设备赋为目标对象的子对象,而是通过在目标对象中添加指令获取目标对象的移动信息,这样可以实现当目标对象旋转时不跟随目标对象旋转的效果。与现有技术中,将拍摄设备赋为目标对象的子对象这种目标定位跟踪的方式相比,避免了随着目标转身拍摄设备视角也会跟随其移动旋转,导致的视角不固定、角度偏移的问题,满足了用户的设计需求,提升了用户使用体验。

以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围以权利要求的保护范围为准。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1