一种3D球机的定位方法及装置与流程

文档序号:11154108
一种3D球机的定位方法及装置与制造工艺

本申请涉及视频监控领域,尤其涉及一种3D球机的定位方法及装置。



背景技术:

目前,随着安防市场的发展和需要,智能3D(three dimensional,三维)定位功能也越来越普及。特别是在交通、广场、机场等大面积监控中的应用,智能3D定位功能可以快速定位用户所选择的区域并根据所选择的区域的方向和大小进行合理的缩放,并且在经过缩放后可快速恢复到原先的监控状态。智能3D定位方便用户在大面积监控时,快速定位并放大局部细节画面,又能快速恢复原始的监控状态。在许多平安城市及交通监控项目中,智能3D定位功能起着十分重要的作用,因此,安防监控设备中是否具有3D定位功能已经成为安防布设的重要标准之一。

但是,发明人在对现有技术的研究与实践的过程中发现,现有的3D定位技术中还存在以下缺陷:一方面,现有3D定位技术的水平和垂直方向的走位仅仅单纯从水平和垂直角度进行,走位算法比较简单,难保证定位准确。另一方面,现有的定位技术,并且没有考虑到光学变倍带来的误差,导致监控变倍时不能跟着走位准确智能化缩放。



技术实现要素:

本申请提供一种3D球机的定位方法及装置,可以精确对目标进行定位。

根据本申请的第一方面,本申请提供一种3D球机的定位方法,包括:获取待定位的目标点在屏幕上的坐标值、宽度以及高度;计算所述目标点的水平移动角度;根据所述目标点在屏幕上的坐标值、宽度以及高度,结合所述目标点的水平移动角度,计算所述目标点的垂直移动角度;根据所述目标点的水平移动角度以及所述垂直移动角度,对所述目标点进行定位。

可选的,所述对所述目标点进行定位后还包括:对所述目标点进行放大或缩小。

可选的,所述对所述目标点进行放大或缩小包括:获取用户在球机视频区域划出的缩放框;将所述缩放框转换成以视频分辨率为参考的矩形,得到参考面积的大小;根据所述参考面积的大小,计算光学变倍的数值,根据所述光学变倍的数值控制球机放大或者缩小。

可选的,所述将所述缩放框转换成以视频分辨率为参考的矩形,得到参考面积的大小包括:根据所述缩放框的左上角的坐标点位置、宽度、高度,结合预设的参考矩形的宽度、高度以及视频的分辨率,计算转换后的参考矩形的宽度和高度;根据所述转换后的参考矩形的宽度和高度计算参考面积的大小。

可选的,所述计算所述目标点的水平移动角度包括:根据以下公式计算目标点的水平移动角度γ:

γ=atan(|x|*sin(atan(2*|y|*tan(α/2)/w))/(|y|*cos(&+atan(atan(2*|y|*tan(α/2)/w)))))

其中,x和y分别为所述目标点的坐标位置的横纵坐标值,α为球机机芯当前的水平视角,w为视频分辨率的宽度。

可选的,所述根据所述目标点在屏幕上的坐标值、宽度以及高度,结合所述目标点的水平移动角度,计算所述目标点的垂直移动角度包括:根据以下公式计算目标点的垂直移动角度θ:

θ=asin(2*|x|*sin(β/2)/(w*sin(γ)))-asin(cos(90-&)*sin(β/2)/w);

其中,γ为目标点的水平移动角度,β为球机机芯的当前水平视角,&为当机芯垂直角度,w为视频分辨率的宽度。

根据本申请的第二方面,本申请提供一种3D球机的定位装置,包括:获取单元,用于获取待定位的目标点在屏幕上的坐标值、宽度以及高度;水平计算单元,用于计算所述目标点的水平移动角度;垂直计算单元,用于根据所述目标点在屏幕上的坐标值、宽度以及高度,结合所述目标点的水平移动角度,计算所述目标点的垂直移动角度;定位单元,用于根据所述目标点的水平移动角度以及所述垂直移动角度,对所述目标点进行定位。

可选的,还包括:缩放单元,用于对所述目标点进行放大或缩小。

可选的,所述缩放单元包括:获取模块,用于获取用户在球机视频区域划出的缩放框;转换模块,用于将所述缩放框转换成以视频分辨率为参考的矩形,得到参考面积的大小;计算模块,用于根据所述参考面积的大小,计算光学变倍的数值;缩放模块,用于根据所述光学变倍的数值控制球机放大或者缩小。

可选的,所述水平计算单元具体用于:根据以下公式计算目标点的水平移动角度γ:

γ=atan(|x|*sin(atan(2*|y|*tan(α/2)/w))/(|y|*cos(&+atan(atan(2*|y|*tan(α/2)/w)))))

其中,x和y分别为所述目标点的坐标位置的横纵坐标值,α为球机机芯当前的水平视角,w为视频分辨率的宽度;

所述垂直计算单元具体用于:根据以下公式计算目标点的垂直移动角度θ:

θ=asin(2*|x|*sin(β/2)/(w*sin(γ)))-asin(cos(90-&)*sin(β/2)/w);

其中,γ为目标点的水平移动角度,β为球机机芯的当前水平视角,&为当机芯垂直角度,w为视频分辨率的宽度。

本申请的3D球机的定位方法及装置,获取待定位的目标点在屏幕上的坐标值、宽度以及高度,计算目标点的水平移动角度,再根据所述目标点在屏幕上的坐标值、宽度以及高度,结合目标点的水平移动角度,计算目标点的垂直移动角度。最后根据目标点的水平移动角度以及所述垂直移动角度,对目标点进行定位。由于结合了水平角度和垂直角度进行走位,因而定位准确,并且,本申请方案变倍可根据定位准确智能化缩放,减少了光学变倍带来的误差。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:

图1为本申请实施例的方法流程图;

图2为本申请实施例的水平移动的计算原理图;

图3为本申请实施例的垂直移动的计算原理图;

图4为本申请实施例的对目标点进行放大或缩小的流程图;

图5为本申请实施例的装置结构示意图;

图6为本申请实施例的另一种装置结构示意图;

图7为本申请实施例的又一种装置结构示意图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。本申请提供一种3D球机的定位方法及装置,可以精确对目标进行定位,并可恢复原始监控状态。

实施例一:

请参阅图1,图1为本申请实施例一的方法流程图,如图1所示,本申请实施例提供一种3D球机的定位方法,具体可以包括以下步骤:

S10、获取待定位的目标点在屏幕上的坐标值、宽度以及高度。

S20、计算目标点的水平移动角度。

S30、根据目标点在屏幕上的坐标值、宽度以及高度,结合目标点的水平移动角度,计算目标点的垂直移动角度。

S40、根据目标点的水平移动角度以及所述垂直移动角度,对目标点进行定位。

本实施例中,上述计算目标点的水平移动角度的步骤S20包括:

根据以下公式计算目标点的水平移动角度γ:

γ=atan(|x|*sin(atan(2*|y|*tan(α/2)/w))/(|y|*cos(&+atan(atan(2*|y|*tan(α/2)/w)))))

其中,x和y分别为所述目标点的坐标位置的横纵坐标值,α为球机机芯当前的水平视角,w为视频分辨率的宽度。

下面对本实施例步骤S20计算目标点的水平移动角度的具体过程及原理进行阐述:

如图2所示,水平走位原理是根据目标点所在屏幕的位置、当前机芯水平视角及当前编码分辨率,经过一系列几何运算得来。

步骤1.分析目标

当屏幕上的目标点A确定后,该点A的相关参数(目标点A的横坐标值x和纵坐标y)也就确定了。由于机芯采集的画面为球形,当机芯垂直角度不变水平转动时,屏幕上的每个目标点都会沿着相应的轨迹运行。如图2,目标点A确定后,在垂直视角不变水平转动时,A点在屏幕上的轨迹是一个固定的弧线。为了更准确的计算出水平移动角度,将屏幕上相应的点投影到水平面OZN上,由图2分析可知,∠EOM即为目标点A的水平走位角度,其中假设E为A点水平移动后的位置点。

步骤2.算法分析

由于视频分辨率、机芯当前水平视角是已知的,设视频分辨率PH宽为w,机芯当前水平视角∠HOK为α,屏幕中垂线OK为h,可得得到以下关系式:

h=w/(2*tan(α/2)) ①

由于目标点A坐标已知,即BK=y,设∠EOK为β,直线OE长为m,在垂直三角形BOK中有以下关系式:

β=atan(|y|/h) ②

m=|y|/sin(β) ③

对图2分析可知,机芯当前垂直角度为∠KOM,且直线OE和OK同在一平面内,设机芯当前垂直角度∠KOM为&,∠EOM为φ,则φ=β+&,在垂直三角形EOM和垂直三角形BOM中,设OM为s,目标角度∠BOM为γ,则

γ=atan(|x|/s) ⑤

综上所述,由公式①、②、③、④、⑤可得水平走位目标角度γ:

γ=atan(|x|*sin(atan(2*|y|*tan(α/2)/w))/(|y|*cos(&+atan(atan(2*|y|*tan(α/2)/w)))))

本实施例中,上述根据所述目标点在屏幕上的坐标值、宽度以及高度,结合所述目标点的水平移动角度,计算目标点的垂直移动角度的步骤S30具体包括:

根据以下公式计算目标点的垂直移动角度θ:

θ=asin(2*|x|*sin(β/2)/(w*sin(γ)))-asin(cos(90-&)*sin(β/2)/w);

其中,γ为目标点的水平移动角度,β为球机机芯的当前水平视角,&为当机芯垂直角度,w为视频分辨率的宽度。

下面对本实施例步骤S30中计算目标点的垂直移动角度的具体过程及原理进行阐述:

如图3所示,垂直走位原理是根据目标点所在屏幕的位置、当前机芯垂直角度、当前机芯水平和垂直视角,经过一系列几何运算得来。垂直走位并非独立的,它与水平走位相关,水平移动的角度是作为垂直走位算法的输入参数之一。

步骤10.分析目标点

当目标点A在屏幕上确定后,即目标点A在屏幕的坐标值、宽和高就确定了。系统会自动根据目标的相关参数经过运算后得到水平走位的角度,由于机芯采集的画面为球形,即屏幕中的每个点都会在相应的圆弧轨迹上运行,且机芯的垂直视角越大,圆弧所对应的半径越小。如图3中目标点A(x,y),当机芯垂直角度&不变时,点A在屏幕中将在以半径为r2的圆弧上运动,从俯视图可知,A点要移动到屏幕中心点,首先A点要水平移动γ角度,再进行垂直移动。从侧视图可知,A点水平的移动γ角度后,A的垂直位置(y)已经发生改变,即A点的垂直视角已经改变,变化到B点。因此,在计算垂直走位角度时不能以A点的y值来做为垂直走位算法的输入变量,这会导致垂直走位移动过多或过少。

步骤20.算法分析

由机芯的目标点分析、结合俯视图和侧视图可知,机芯垂直走位角度θ为:

θ=Φ-α

当目标点A确定之前,根据机芯的当前水平视角β,可求得球面的半径R:

R=w/(2*sin(β/2)) (1)

当目标点A确定之前,根据机芯的当前垂直角度&,可求得r1:

r1=R*cos(90-&) (2)

在计算垂直走位角度时,需要先确定目标点的水平移动角度,再以其度数作为垂直算法的输入量之一,如图3中的A点,A点确定后可通过水平走位算法运算出机芯水平移动角度γ,由此可求得r3如下式:

r3=|x|/sin(γ) (3)

由侧视图分析可知,

α=asin(r1/R),Φ=asin(r3/R) (4)

综上分析,由公式(1),(2),(3),(4)可得到点A的垂直移动角度θ:

θ=asin(2*|x|*sin(β/2)/(w*sin(γ)))-asin(cos(90-&)*sin(β/2)/w)

实施例二:

本申请实施例提供一种3D球机的定位方法,与实施例一的方法步骤类似,不同在于,本实施例的3D球机的定位方法在对目标点进行定位后还可以包括以下步骤:

S50、对目标点进行放大或缩小。

具体地,以上对目标点进行放大或缩小的步骤S50可以包括以下步骤:

S501、获取用户在球机视频区域划出的缩放框。

S502、将缩放框转换成以视频分辨率为参考的矩形,得到参考面积的大小。

S503、根据参考面积的大小,计算光学变倍的数值。

S504、根据光学变倍的数值控制球机放大或者缩小。

具体地,上述将所述缩放框转换成以视频分辨率为参考的矩形,得到参考面积的大小的步骤S502可以包括以下步骤:

S502A、根据缩放框的左上角的坐标点位置、宽度、高度,结合预设的参考矩形的宽度、高度以及视频的分辨率,计算转换后的参考矩形的宽度和高度。

S502B、根据转换后的参考矩形的宽度和高度计算参考面积的大小。

下面对本实施例中对目标点放大或缩小的原理进行阐述。

一种应用场景中,用户可以通过终端观看前端网络球机的视频,用户可以在球机视频区域内画矩形框具体定位。

如图4所示,当在图像上由右下角向左上角拖拽鼠标时,会缩小图像,反之则放大。

画框的矩形大小和方向,传递到球机设备里面,球机设备进行智能性的放大倍数或者缩减倍数。

为了便于进行计算,以及与内部参数进行匹配,因此需要先将用户划定的矩形参数和参考宽高需要换算成与视频分辨率相关的值。此处需要采用分辨率作为设备内部的参考宽高,将用户在屏幕上所画的矩形转换成分辨率的参考值。

本实施例步骤使用到的参数有:矩形左上角坐标、宽、高,参考矩形宽、高,按照以下所述进行转换:

假设矩形左上角坐标为:(x,y),宽高分别为w、h;参考矩形宽高为refw、refh;视频的分辨率为W、H。设矩形中心坐标分别为x1,y1,矩形的宽高分别为w1,h1,可以得知,转换后的用户所画矩形宽高及其中心点坐标为:

x1=x*W/refw+w*W/(2*refw)–W/2

y1=y*H/refh+h*H/(2*refh)–H/2

w1=w*W/refw

h1=h*H/refh

通过上述公式转换后,用户所画矩形变成以视频分辨率为参考的矩形。

终端上面显示的图像宽高分别是X,Y,最大值分别是预设的704.0,576.0。

参考面积S=(w1*h1);

将参考面积S的大小与最大矩形面积(704.0*576.0)比较,在最大矩形面积的1/4范围以上,光学变倍8倍,球机最大20倍。

在最大矩形面积的1/16范围以上,1/4范围以内,光学变倍7倍,球机最大20倍。

......

在最大矩形面积的1/(256*256)范围以上,1/(256*64)范围以内,光学变倍1倍,球机最大20倍。

以此类推。

实施例三:

请参阅图5,图5为本申请实施例的装置结构示意图,如图5所示,本申请实施例提供一种3D球机的定位装置,可以包括:

获取单元50,用于获取待定位的目标点在屏幕上的坐标值、宽度以及高度;

水平计算单元51,用于计算所述目标点的水平移动角度;

垂直计算单元52,用于根据所述目标点在屏幕上的坐标值、宽度以及高度,结合所述目标点的水平移动角度,计算所述目标点的垂直移动角度;

定位单元53,用于根据所述目标点的水平移动角度以及所述垂直移动角度,对所述目标点进行定位。

请参阅图6,一个实施例中,本申请的3D球机的定位装置还可以包括:

缩放单元54,用于对所述目标点进行放大或缩小。

请参阅图7,一个优选的实施例中,缩放单元54具体包括:

获取模块540,用于获取用户在球机视频区域划出的缩放框。

转换模块541,用于将所述缩放框转换成以视频分辨率为参考的矩形,得到参考面积的大小。

计算模块542,用于根据所述参考面积的大小,计算光学变倍的数值。

缩放模块543,用于根据所述光学变倍的数值控制球机放大或者缩小。

一个实施例中,上述水平计算单元51具体用于:

根据以下公式计算目标点的水平移动角度γ:

γ=atan(|x|*sin(atan(2*|y|*tan(α/2)/w))/(|y|*cos(&+atan(atan(2*|y|*tan(α/2)/w)))))

其中,x和y分别为所述目标点的坐标位置的横纵坐标值,α为球机机芯当前的水平视角,w为视频分辨率的宽度;

上述的垂直计算单元52具体用于:

根据以下公式计算目标点的垂直移动角度θ:

θ=asin(2*|x|*sin(β/2)/(w*sin(γ)))-asin(cos(90-&)*sin(β/2)/w);

其中,γ为目标点的水平移动角度,β为球机机芯的当前水平视角,&为当机芯垂直角度,w为视频分辨率的宽度。

本申请的3D球机的定位方法及装置,获取待定位的目标点在屏幕上的坐标值、宽度以及高度,计算目标点的水平移动角度,再根据所述目标点在屏幕上的坐标值、宽度以及高度,结合目标点的水平移动角度,计算目标点的垂直移动角度。最后根据目标点的水平移动角度以及所述垂直移动角度,对目标点进行定位。由于结合了水平角度和垂直角度进行走位,因而定位准确,并且,本申请方案变倍可根据定位准确智能化缩放,减少了光学变倍带来的误差。并且本实施例方案3D进行定位后,用户能立马恢复其定位前的原先的状态,包括水平,垂直和放大或缩减的倍数。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。

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