用于控制相机的方法和装置与流程

文档序号:30576769发布日期:2022-06-29 09:41阅读:176来源:国知局
用于控制相机的方法和装置与流程

1.本技术涉及信息技术领域,尤其涉及一种用于控制相机的方法和装置。


背景技术:

2.在海事监管系统中,通常建设海事数字电视(maritime digital closed circle television,mdcctv,cctv)系统以获取实时或历史的船舶航行状态,从而观测和保障船舶行驶安全。传统的观测手段主要通过手动控制球机的转动角度与放大倍率进行人工观测,工作效率较低且容易造成观测目标丢失。船舶自动识别系统(automatic identification system,ais)能够实时获取船舶的船名、位置、航向、航速等状态信息,因此,海事监管场景中通常将ais的定位数据与cctv观测进行联动,并通过控制多个观测相机联动,实现对船舶的持续跟踪。
3.现有的基于ais的联动跟踪方案通常需要实际采集每个相机的经纬度、高度等数据,然后利用理论数学模型计算偏转角度。但是现实情况中的很多不理想因素并未考虑进去,例如,相机安装倾角、相机控制链路的网络延迟、测量误差等因素会导致控制精度降低。相机可能存在遮挡,或者安装位置特殊导致的视角盲区的问题。因此,业界正致力于研究控制精度更高的相机联动方案。


技术实现要素:

4.本技术提供一种用于控制相机的方法和装置,用以提高相机控制的精度。
5.第一方面,提供了一种用于控制相机的方法,包括:获取待观测船舶的ais数据;根据所述ais数据,预测所述待观测船舶在目标时刻t2的位置信息,其中,所述目标时刻t2符合以下条件:t2=t1+td+t
t
;其中,t1表示当前时刻,t2表示所述目标时刻,td表示相机控制链路的网络延迟时间,t
t
表示相机完成转动的时间;根据所述位置信息,从第一候选相机集合中选择目标相机,所述目标相机用于观测所述待观测船舶;根据所述位置信息,输出所述目标相机的ptz控制参数。
6.第二方面,提供了一种用于控制相机的装置,包括:通信模块,用于获取待观测船舶的船舶自动识别系统ais数据;处理模块,用于根据所述ais数据,预测所述待观测船舶在目标时刻t2的位置信息,其中,所述目标时刻t2符合以下条件:t2=t1+td+t
t
;其中,t1表示当前时刻,t2表示所述目标时刻,td表示相机控制链路的网络延迟时间,t
t
表示相机完成转动的时间;所述处理模块还用于根据所述位置信息,从第一候选相机集合中选择目标相机,所述目标相机用于观测所述待观测船舶;所述处理模块还用于根据所述位置信息,输出所述目标相机的ptz控制参数。
7.第三方面,提供了一种计算机设备,包括处理器,该处理器用于从存储器调用计算机程序,当所述计算机程序被执行时,该处理器用于执行上述第一方面的方法。
8.第四方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述第一方面的方法的代码。
9.第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序包括用于执行上述第一方面的方法的代码。
10.在本技术实施例中,基于待观测船舶的ais数据,同时统计相机控制链路网络延迟和相机转动所需的时间,预测目标时刻相机转向待观测船舶时的船舶的位置,能够在预测船舶位置时考虑网络延迟和相机转动等复杂的现实因素,从而提高了相机观测和控制的精度。
附图说明
11.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
12.图1是本技术一实施例的vts系统的场景示意图;
13.图2是本技术一实施例的cctv系统的场景示意图;
14.图3是本技术又一实施例的应用场景的示意图;
15.图4是本技术一实施例的计算设备100内部的结构示意图;
16.图5是本技术一实施例的用于控制相机的方法的流程示意图;
17.图6是本技术一实施例的相机控制系统600内部的结构示意图;
18.图7是本技术一实施例的相机位姿的场景示意图;
19.图8是本技术一实施例的相机位姿的场景示意图;
20.图9是本技术一实施例的装置900的结构示意图;
21.图10是本技术一实施例的装置1000的结构示意图。
具体实施方式
22.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
23.首先对本技术所涉及的名词进行解释。
24.船舶交通服务(vessel traffic services,vts)系统:是指利用ais基站、雷达系统、cctv系统、无线电话以及船载终端等通信设施观测航行在港湾和进出港口的船舶,并给船舶提供航行中所需的安全信息的系统。
25.船舶自动识别系统(automatic identification system,ais):是指应用于船和岸、船和船之间的海事安全与通信的助航系统。由岸基设施和船载设备共同组成,可以配合全球定位系统(global positioning system,gps)将船舶的动态信息及静态信息通过甚高频(very high frequency,vhf)频道向附近水域船舶及岸台广播。其中,上述船舶的动态信息可包括但不限于:船位、船速、改变航向率及航向等。上述船舶的静态信息可包括但不限于:船名、呼号、吃水信息及危险货物信息等。
26.跨境跟踪:相机跟踪船舶过程中,能够根据船舶当前位置与轨迹自动切换到下一个相机进行跟踪。
27.海事数字电视(maritime digital closed circle television,mdcctv,cctv)系
统:是指以视频摄像为信息采集手段的现场监管方式,可通过cctv系统了解现场船舶的航线状况和船舶类型等信息。
28.水上移动通信服务标识码(maritime mobile service identify,mmsi)是船舶无线电通信系统在其无线电信道上发送的,能识别各类台站和成组呼叫台站的一列数字码。
29.六自由度位姿:物体在三维坐标系中具有六个自由度,包括:x、y、z三个直角坐标轴方向的移动自由度和绕三个轴的转动自由度。
30.相机标定:构建世界坐标系到像素坐标系的映射模型,并获取模型中所需要参数的过程。
31.ptz:在安防监测应用中是pan/tilt/zoom的缩写,分别代表相机云台的左右、上下移动与镜头放大倍数。
32.云台:是指安装、固定手机、相机、摄像机的支撑设备。云台可以进行上下或者左右旋转,以适用应用场景。
33.世界坐标系:是指系统的绝对坐标系,世界坐标系可以是地理坐标系,例如,世界大地测量系统(world geodetic system,wgs84),也可以是任何被固定定义的世界坐标系。
34.相机坐标系:相机坐标系以相机的光心作为原点,x轴指向相机的左右方向,y轴指向相机的上下方向,z轴指向相机所观察的方向,其随相机的移动而变化,所以为相对坐标系。
35.像素坐标系:图像像素坐标系为固定在图像上的以像素为单位的平面直角坐标系,其原点位于图像左上角,x轴与y轴平行于相机坐标系的x和y轴,其依托于相机坐标系,是相对坐标系。
36.相机的体坐标系:以相机的光心作为原点,x轴指向相机所观察方向,y轴为相机的左右方向,z轴为相机的上下方向。
37.图1是本技术一实施例的vts系统的场景示意图。如图1所示,vts系统可包括但限于以下各项:雷达系统、vhf系统、ais系统、cctv系统、数据库系统、气象水文系统等。雷达系统通过雷达扫描对雷达所覆盖区域的船舶位置和航行状况进行预测。vhf系统用于通过vhf通信系统对船舶进行监管提示,并发布提示信息。ais系统用于通过安装ais船台发送船舶的mmsi、经纬度、航速、航向、航艏向、船舶尺寸、船舶吃水等信息,由岸基ais台站接收船舶的ais信息,实现对ais船舶的跟踪。cctv系统用于通过观测相机获取视频数据,以获取船舶的航行状况、船舶类型等信息,并实现对船舶的联动跟踪。数据库系统用于保存船舶的基本信息。气象水文系统用于实时监测各处的气象情况,辅助观测船舶航行。
38.图2是本技术一实施例的cctv系统的场景示意图。如图2所示,在cctv系统中,通常包括观测相机、交换机系统以及监管中心。其中,观测相机广泛布置在港口、河道等位置,以获取船舶的图像或视频,并通过交换机系统将获取的图像或视频传输至监管中心。监管中心中通常包括显示设备、存储设备以及计算设备。其中,存储设备可用于存储获取的图像或视频信息,显示设备用于显示摄录图像,计算设备可以对获取的图像或视频进行解析和处理。在一些示例中,上述计算设备可以包括服务器。
39.可选地,如图2所示,上述观测相机通常可包括球机和枪机两种类型,枪机即枪式摄像机,其安装位置固定,只能正对某观察位置,所以监测方位有限。球机即球形摄像机,其集摄像机系统、变焦镜头、电子云台于一体,球机可以根据现场情况和用户需求设置预置位
巡航,并在重要点位设置停留时间和镜头拉近放大,以进行重点观测。
40.应理解,图1或图2中的应用场景的说明仅仅作为示例而非限定,在实践中,可以在上述场景的基础上作适当的变形和增减,仍然适用于本技术实施例的方案。
41.为了解决现有技术的如上技术问题,本技术实施例提供了一种用于相机联动的方案,利用船舶ais定位数据对船舶的未来轨迹进行预测,并且在并对相机占用情况进行分配管理,然后基于距离、高度、盲区等相机参数设计规则以搜索出观测相机,并基于六自由度相机位姿估计模型解算相机的转动角度与变倍系数,最终实现了多相机船舶跨境跟踪。
42.下面以具体的实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
43.图3是本技术又一实施例的应用场景的示意图。如图3所示,计算设备100可以通过ais系统获取待观测船舶的ais数据,并根据ais数据预测待观测船舶在目标时刻的位置信息。在获取预测的位置信息之后,预测的位置确定相机联动过程中的下一个观测相机,向该相机发送ptz控制参数,以实现多相机船舶跨境跟踪方案。
44.需要说明的是,本技术实施例中的相机200可以包括球机、半球机、或者其它安装有云台的任何类型的相机。
45.图4是本技术一实施例的计算设备100内部的结构示意图。如图4所示,计算设备100包括:船舶定位预测模块110、相机注册管理模块120、相机搜索模块130、相机联动模块140,计算设备100的输入信息包括ais数据以及相机参数库的信息。计算设备100的输出信息包括相机的ptz控制参数。上述ptz控制参数可包括控制相机云台的角度参数(例如,pan和tilt)和相机镜头的倍率参数(zoom)。其中,上述相机参数库用于存储所有相机的参数信息,例如,相机的位姿参数、相机的可观测角度、相机的连接控制参数等。上述相机参数库可以位于计算设备100中,也可以与计算设备100分开设置,例如,相机参数库可设置于数据库或者云数据库中,本技术实施例对此不作限定。
46.接下来将结合图4,详细描述计算设备100中的各模块的功能。
47.a1.船舶定位预测模块110
48.船舶定位预测模块110用获取待观测船舶的最新ais数据,并根据ais数据对待观测船舶进行定位预测。作为示例,船舶定位预测模块110可以获取待观测船舶的身份识别信息,并根据船舶的身份识别信息获取对应的ais数据。
49.作为示例,ais数据可包括:船舶的经纬度坐标、速度、方向、ais数据的产生时间等。
50.其中,为了提高相机的控制精度,在对船舶进行定位预测时,可将相机控制链路的网络延迟、相机转动时间考虑在内,从而预测出相机完成转动动作的目标时刻的船舶位置。
51.假设当前时刻为t1,ais数据的产生时刻为ta,相机控制链路的网络延迟时间为td,相机完成转动的时间为t
t
,则预测船舶位置的目标时刻t2可表示为:
52.t2=t1+td+t
t
;(1)
53.预测的总时长δt可表示为:
54.δt=t
2-ta=t1+td+t
t-ta;(2)
55.例如,假设船舶以ais数据的速度与方向进行匀速直线移动,则可以根据ais数据
计算出t2时刻的船舶的位置信息。
56.可选地,为了保证预测效果,计算设备100应与ais系统采用同一时钟授时,例如,采用北斗卫星时间。
57.作为示例,考虑到ais数据频率较低,查询ais数据的接口调用频率也不宜过快,例如,可以每隔10s查询一次ais数据,并以1hz左右的频率进行定位预测结果的输出以保证后续相机控制的连续性。
58.a2.相机注册管理模块120
59.相机注册管理模块120用于对完成标定的相机进行参数注册和设备管理,并向其它模块提供相机参数或设备管理的信息。其中,在参数注册方面,相机注册管理模块120可通过相机参数库获取相机参数。需注册的相机参数包括但不限于以下至少一项:相机的位姿参数、相机的可观测角度、相机的连接控制参数。
60.相机的位姿参数是指根据相机位姿估计模型得到的六自由度的位姿参数,上述位姿参数包括:相机的体坐标系原点ob相对世界坐标系的原点ow的平移向量(x0,y0,z0),以及相机的体坐标系相对于世界坐标系的三轴旋转的角度向量(roll0,pitch0,yaw0)。关于相机位姿估计模型的相关内容,可参考后文中图6至图8的相关描述。
61.相机的可观测角度:指相机安装在墙壁或者附近存在遮挡的情况下,导致相机横向转到部分角度范围内时无法观测到任何物体。在横向无法观测物体的角度范围被称为相机角度盲区,在横向可以观测到物体的角度被称为相机的可观测角度。
62.相机的连接控制参数可指与相机的连接控制有关的参数,例如,相机的身份标识(identifier,id)相机的互联网协议(internet protocol,ip)地址、用户名、密码等信息。
63.在设备管理方面,相册注册管理模块120用于管理和记录各相机是否处于被占用状态。作为示例,相机是否被占用的逻辑如下所述。
64.i.在初始化状态下,相机处于未占用状态。
65.ii.在从相机搜索模块130接收到待控制相机的id之后,查询待控制相机是否被占用;若相机未被占用,则向相机搜索模块130反馈可正常控制相机转动,并将相机状态修改为被占用;若相机已被占用,则向相机搜索模块130反馈需更换相机控制。
66.iii.相机切换或跟踪停止时将停止跟踪的相机状态修改为未占用。
67.a3.相机搜索模块130
68.相机搜索模块130用于根据船舶定位预测模块110输出的待观测船舶的定位预测结果,从相机参数库中的候选相机中搜索目标相机进行持续跟踪。
69.作为示例,若将所有待选的相机作为第一候选相机集合,则搜索目标相机的逻辑可包括以下内容。
70.i.从第一候选相机集合中选择第二候选相机集合,计算待观测船舶的预测位置与所有相机位置之间的距离,并根据每个相机的最远观测距离参数,过滤掉不符合距离要求的相机,得到第二候选相机集合。
71.ii.根据相机与船舶的预测位置之间的距离,对第二候选相机集合中的相机进行由近及远的排序。
72.iii.从距离最近的相机开始,利用相机联动模块140计算该相机观测船舶所需的横向偏转角度(即pan值),判断该横向偏转角度是否属于相机角度盲区中。若属于相机角度
盲区,则放弃该相机,进行下一个相机的角度盲区判断;若该横向偏转角度不属于相机角度盲区中,则将该相机确定为第三候选相机。
73.iv.将第三候选相机的id发送至相机注册模块,通过相机注册模块判断该相机是否被占用。若未被占用,则将该第三候选相机确定为目标相机,并向相机联动模块140输出该目标相机的id,由相机联动模块140控制目标相机执行观测任务。若被占用,则继续对剩余的相机执行第iii步骤。
74.v.若没有相机满足i~iv的要求,则可以向外输出控制异常信息或者“没有目标相机”的信息。
75.需要说明的是,上述i~iv之间的的步骤的顺序也可以进行调换,例如,可以先执行第iv部分,筛选掉被占用的候选相机,然后再执行第i至第iii部分。
76.可选地,本技术实施例还提出了一套相机跨境的切换方法,即在跟踪目标过程中进行相机切换的方法。该方法中,假设当前使用第一目标相机对船舶进行跟踪,在通过相机搜索模块130的相机选定方法确定第二目标相机,在第二目标相机与船舶之间的距离小于第一目标相机与船舶之间的距离的a倍的情况下,切换第二目标相机进行跟踪。其中,a的大小可以根据实际情况设置,例如,a∈[0.9,1.1],或者,a∈[0.9,1.0]。
[0077]
a4.相机联动模块140
[0078]
相机联动模块140可根据船舶的坐标(x,y)以及位姿参数,得到目标相机的ptz控制参数,即相机云台的转动角度pan值和tilt值,以及相机的变倍系数zoom值。船舶的坐标(x,y)可通过ais数据获取,位姿参数可通过相机注册管理模块从相机参数库获取。其中,可根据以下公式(1)~(3)获取目标相机的ptz控制参数。
[0079][0080][0081][0082]
其中,x0、y0、z0、roll0、pitch0、yaw0为相机的六自由度位姿参数,其可以根据相机标定方法获得。
[0083]
(xw,yw)表示待观测船舶的坐标,(xw,yw)可以是世界坐标系中的坐标,例如经纬度坐标;(tiltw,panw)表示待观测船舶位于相机图像中心时相机的pan值和tilt值;(rollw',tiltw',panw')表示待观测船舶位于相机图像中心时相机的体坐标系相对于世界坐标系的旋转角度,l表示待观测船舶的高度。
[0084]
在本技术实施例中,基于待观测船舶的ais数据,同时统计相机控制链路网络延迟和相机转动所需的时间,预测目标时刻相机转向待观测船舶时的船舶的位置,能够在预测船舶位置时考虑网络延迟和相机转动等复杂的现实因素,从而提高了相机观测和控制的精度。
[0085]
在本技术实施例中,在搜索用于观测船舶的目标相机时充分考虑每个相机的观测距离、高度、观测角度盲区等信息,从而保障了观测质量。另外,本技术实施例中还设计了适用于多船舶同时跟踪任务的相机分配与占用管理模块,以及设计一套鲁棒的相机跨境切换
方法,以解决船舶在临界位置时相机来回切换的问题,提高了相机观测系统的管理效率。
[0086]
在本技术实施例中,可以利用相机位姿估计模型获取六自由度的相机位姿参数,进而根据船舶位置确定相机的ptz控制参数,该方案无需对每个相机进行经纬度与高度的实际采集,提高了相机标定效率与控制精度。
[0087]
图5是本技术一实施例的用于控制相机的方法的流程示意图。该方法可以由图2至图3中的计算设备执行。如图5所示,该方法包括以下内容。
[0088]
s501、获取待观测船舶的ais数据。
[0089]
作为示例,ais数据可包括:船舶的经纬度坐标、速度、方向、ais数据的产生时间等。
[0090]
作为示例,船舶定位预测模块110可以获取待观测船舶的身份识别信息,并根据船舶的身份识别信息获取对应的ais数据。
[0091]
s502、根据ais数据,预测待观测船舶在目标时刻t2的位置信息,其中,目标时刻t2符合以下条件:
[0092]
t2=t1+td+t
t
;(1)
[0093]
其中,t1表示当前时刻,t2表示目标时刻,td表示相机控制链路的网络延迟时间,t
t
表示相机完成转动的时间。
[0094]
为了提高相机的控制精度,在对船舶进行定位预测时,可将相机控制链路的网络延迟、相机转动时间考虑在内,从而预测出相机完成转动动作的目标时刻的船舶位置。
[0095]
例如,假设船舶以ais数据的速度与方向进行匀速直线移动,则可以根据ais数据计算出t2时刻的船舶的位置信息。
[0096]
可选地,为了保证预测效果,计算设备100应与ais系统采用同一时钟授时,例如,采用北斗卫星时间。
[0097]
作为示例,考虑到ais数据频率较低,查询ais数据的接口调用频率也不宜过快,例如,可以每隔10s查询一次ais数据,并以1hz左右的频率进行定位预测结果的输出以保证后续相机控制的连续性。
[0098]
s503、根据位置信息,从第一候选相机集合中选择目标相机,目标相机用于观测待观测船舶。
[0099]
可选地,在s503部分,根据位置信息,从第一候选相机集合中选择目标相机,包括:根据位置信息,确定第一候选相机集合中的每个候选相机与待观测船舶的预测位置之间的距离;从第一候选相机集合中选择第二候选相机集合,第二候选相机集合中的候选相机与待观测船舶的预测位置之间的距离小于预设的距离阈值;从第二候选相机集合中选择目标相机,目标相机符合以下条件中的至少一项:目标相机未被占用;待观测船舶不属于目标相机的相机角度盲区内。
[0100]
在本技术实施例中,在搜索用于观测船舶的目标相机时充分考虑每个相机的观测距离、高度、观测角度盲区等信息,从而保障了观测质量。
[0101]
作为示例,在s503部分,从第二候选相机集合中选择目标相机,包括:执行至少一轮候选相机选择流程,以确定目标相机,每轮候选相机选择流程包括:从第二候选相机集合中选择第三候选相机,第三候选相机是第二候选相机集合中与待观测船舶的预测位置之间的距离最近的相机;计算第三候选相机观测待观测船舶所需的横向偏转角度;在横向偏转
角度不属于第三候选相机的相机角度盲区且未被占用的情况下,将第三候选相机确定为目标相机;在第三候选相机符合以下至少一项的情况下,将第三候选相机排除出第二候选相机集合;第三候选相机的横向偏转角度属于相机角度盲区;第三候选相机被占用。
[0102]
s504、根据位置信息,输出目标相机的ptz控制参数。
[0103]
可选地,本技术实施例对确定目标相机的ptz参数的方式不作限定。例如,可以是基于枪球联动方案,基于外部传感器进行空间建模,并计算目标相机的ptz控制参数。或者,也可以利用本技术实施例提出的相机位姿估计模型和位姿参数,计算目标相机的ptz控制参数
[0104]
可选地,在s504部分,根据位置信息,输出目标相机的ptz控制参数,包括:获取所述目标相机的六自由度的位姿参数,所述位姿参数是对相机位姿估计模型求解得到的,所述相机位姿模型用于获取相机的体坐标系转换到世界坐标系的位姿参数;根据所述位置信息和所述位姿参数,获取所述目标相机的ptz控制参数。
[0105]
作为示例,可根据以下公式,获取目标相机的pan值和tilt值:
[0106][0107][0108]
q(rollw',tiltw,panw)=q-1
(roll0,pitch0,yaw0)*q(0,tiltw',panw');(3)
[0109]
其中,(xw,yw)表示待观测船舶的位置坐标,(tiltw,panw)表示待观测船舶对应的相机的pan值和tilt值;(rollw',tiltw',panw')表示待观测船舶位于相机图像中心时目标相机的体坐标系相对于世界坐标系的旋转角度。
[0110]
以及,根据以下公式,获取待观测船舶对应的相机的zoom值:
[0111][0112]
其中,zoom表示待观测船舶对应的相机的zoom值,(xw,yw)表示待观测船舶的位置坐标,s表示卫星地图的比例尺,l表示船舶的高度,k表示放大倍率经验系数。
[0113]
最终,计算设备可以根据预设的相机控制协议,将相机的ptz控制参数(panw、tiltw、zoom)发送给目标相机,以控制相机完成转向、缩放等功能,实现相机联动跟踪方案。
[0114]
在本技术实施例中,可以利用相机位姿估计模型获取六自由度的相机位姿参数,进而根据船舶位置确定相机的ptz控制参数,该方案无需对每个相机进行经纬度与高度的实际采集,提高了相机标定效率与控制精度。
[0115]
在本技术实施例中,基于待观测船舶的ais数据,同时统计相机控制链路网络延迟和相机转动所需的时间,预测目标时刻相机转向待观测船舶时的船舶的位置,能够在预测船舶位置时考虑网络延迟和相机转动等复杂的现实因素,从而提高了相机观测和控制的精度。
[0116]
可选地,假设目标相机为第二目标相机,方法还包括:在第二目标相机与待观测船舶之间的距离小于第一目标相机与待观测船舶之间的距离的a倍的情况下,切换第二目标相机对待观测船舶进行跟踪观测,其中,第一目标相机为当前使用的观测相机,a为实数,a∈[0.9,1.1]。
[0117]
本技术实施例中,还设计了一套相机跨境切换方法,以解决船舶在临界位置时相机来回切换的问题,提高了相机观测系统的管理效率。
[0118]
接下来将结合图6至图8描述本技术实施例中涉及的六自由度的相机位姿估计模型和位姿参数的求解方法和原理。
[0119]
图6是本技术一实施例的相机控制系统600内部的结构示意图。如图6所示,系统600包括:标定数据采集模块610、标定模型求解模块620、角度计算模块630、倍率计算模块640。系统600的输入信息包括卫星地图数据和相机100采集的标定数据。系统600的输出信息包括相机的ptz控制参数。上述ptz控制参数可包括控制相机云台的角度参数(例如,pan和tilt)和相机镜头的倍率参数(zoom)。
[0120]
该控制相机的方案主要包括相机标定与相机联动两部分。其中相机标定部分的输入包括相机的ptz值以及卫星地图数据。相机标定的核心模块包括标定数据采集模块610与标定模型求解模块620,相机标定部分的输出为位姿参数。
[0121]
相机联动部分的输入为待观测目标在卫星地图的坐标信息与位姿参数,核心模块包括角度计算模块630与倍率计算模块640。其中,选择卫星地图坐标作为输入可以实现稳定、便捷地获取。作为示例,卫星地图坐标的获取方式包括车辆gps信息、船舶ais数据或是在卫星地图的截图中选择某点像素坐标并转化为经纬度。最终系统600的输出为相机的ptz控制参数,并可以通过预设的相机控制协议完成对相机的角度、倍率控制操作。
[0122]
上述待观测目标可以包括车辆、船舶或者其它任何需要观测的物体。
[0123]
接下来将结合图6,详细描述系统600中的各模块的功能。
[0124]
a1.标定数据采集模块610
[0125]
用于获取相机标定所需标定数据。为后续的标定模型求解模块620提供输入信息。每个相机可采集多组标定数据,每组标定数据包括特征点对应的相机的ptz值以及特征点的在卫星地图的坐标信息。其中,上述相机ptz值包括相机的pan值和tilt值。作为示例,每个相机可至少采集3组及3组以上的数据。
[0126]
作为示例,可以将相机的变倍系数(zoom)值设置为1,调节相机100的角度,直到显示图像中出现一个可在卫星地图中找到具体位置的特征点。例如,上述特征点可以是标识物、建筑物边缘等,并且该特征点处于地平面之上。找到特征点之后,为了标定数据更加准确,可以将相机的zoom值放大(例如,放大10倍及以上),微调相机云台的角度,直至该特征点处于显示图像的中心,截图并记录相机云台此时的pan、tilt值,以及该特征点在卫星地图的坐标(x,y)。
[0127]
其中,上述卫星地图的坐标(x,y)可以指世界坐标系中的坐标,在一些示例中,卫星地图的坐标(x,y)可以是经纬度坐标。
[0128]
a2.标定模型求解模块620
[0129]
标定模型求解模块620用于建立六自由度的相机位姿估计模型,并根据标定数据采集模块610获取的多组标定数据进行优化求解,以得到位姿参数。
[0130]
图7和图8是本技术一实施例的相机位姿的场景示意图。其中,图7中为相机云台未转动的示意图,图8中为相机云台产生转动的示意图。其中,相机转动角度表示为(pan,tilt)。
[0131]
参考图7和图8,标定模型求解模块620的目的是获取相机的体坐标系转换到世界
坐标系的位姿参数,包括:相机的体坐标系原点ob相对世界坐标系的原点ow的平移向量(x0,y0,z0),以及相机的体坐标系相对于世界坐标系的三轴旋转的角度向量(roll0,pitch0,yaw0)。其中,roll0是指绕xw轴转动的角度,pitch0是指绕yw轴转动的角度,yaw0是指绕zw轴转动的角度。
[0132]
标定模型求解模块620的功能包括两部分,第一部分为建立相机位姿估计模型,第二部分为对模型进行优化求解,接下来将对这两部分内容进行描述。
[0133]
1).建立相机位姿估计模型
[0134]
在建立相机位姿估计模型之前,可以根据相机安装时是否存在倾斜情况,选择不同的建模方案。
[0135]
a).相机在安装时不存在倾斜情况
[0136]
继续参见图7,图7示出了相机在安装时不存在倾斜的示意图,假设相机在安装时不存在倾斜情况,即相机在前后方向和上下方向均未发生倾斜,则roll0和pitch0为0,在求解模型时只需要获取x0,y0,z0,yaw0的值即可,可以根据符合公式(5)和公式(6)建立相机位姿估计模型。
[0137]
x=x0+z0*tan(tilt)*cos(yaw0+pan);(5)
[0138]
y=y0+z0*tan(tilt)*sin(yaw0+pan);(6)
[0139]
其中,(x,y)表示特征点在世界坐标系的坐标,(tilt,pan)表示特征点位于相机图像中心时对应的相机的pan值和tilt值。
[0140]
b).相机在安装时存在倾斜情况
[0141]
若相机在安装时存在倾斜情况,则roll0和pitch0不为零,可以使用坐标系变换的方法,将当前体坐标系旋转至无倾斜的体坐标系,具体地,可根据公式(7)获取相对于无倾斜体坐标系的旋转角度:
[0142]
q(roll',tilt',pan')=q(roll0,pitch0,yaw0)*q(0,tilt,pan);(7)
[0143]
其中,(roll',tilt',pan')表示特征点位于相机图像中心时相机的体坐标系相对于世界坐标系的旋转角度,(roll0,pitc0h,ya0w)表示倾斜的相机的体坐标系相对于世界坐标系的三轴旋转的角度向量,(0,tilt,pan)表示特征点位于相机图像中心时对应的相机的pan值和tilt值,同时也表示特征点位于相机图像中心时的相机的体坐标系相对于倾斜的相机坐标系的旋转角度。
[0144]
q(m,n,l)表示由三轴旋转角所构建的四元数(w,x,y,z),其可以由公式(8)表示。
[0145][0146]
在旋转体坐标系之后,可以将公式(3)得到的tilt',pan'代入公式(9)和(10),以建立相机位姿估计模型。
[0147]
x=x0+z0*tan(tilt')*cos(pan');(9)
[0148]
y=y0+z0*tan(tilt')*sin(pan');(10)
[0149]
2).对模型进行优化求解
[0150]
在建立相机位姿估计模型之后,可以利用相机位姿估计模型进行求解,以得到位姿参数(x0,y0,z0)以及(roll0,pitch0,yaw0)。本技术实施例对模型求解的方式不作限定。例如,相机位姿估计模型求解的是非线性方程组,可以采用区间迭代法或者不动点法等方式求解。
[0151]
在一些示例中,可以利用相机位姿估计模型构建最小二乘法的待优化函数,并通过高斯牛顿迭代方法进行求解。
[0152]
例如,对于相机在安装时未出现倾斜的情况,即根据公式(5)和(6)建立的模型,可以采用以下公式(11)和(12)来求解模型。
[0153][0154][0155]
又例如,对于相机在安装时出现倾斜的情况,即根据公式(9)和(10)建立的模型,可以采用以下公式(13)和(14)来求解模型。
[0156]
e3=∑(x-x
0-z0*tan(tilt')*cos(pan'))2+(y-y
0-z0*tan(tilt')*sin(pan'))2;(13)
[0157][0158]
又例如,对于仅考虑相机的pan值改变的场景,即相机只在左右方向移动的场景,只需计算x0、y0与yaw0三个自由度参数,无论相机在安装时是否出现倾斜,均可以采用以下公式(15)来求解模型。
[0159][0160]
其中,(x,y)表示特征点在世界坐标系的坐标,(tilt,pan)表示特征点对应的相机的pan值和tilt值;(tilt',pan')表示特征点位于相机图像中心时相机的体坐标系相对于世界坐标系的旋转角度。
[0161]
其中,函数e1、e3适用于相机安装位置较高,数据采集时tilt度数较大的场景。作为示例,可以适用于tilt度数大于1度的场景。函数e2、e4适用于相机安装位置较低或倾斜较为严重,或者数据采集时tilt值较小的场景,例如,可以适用于较多tilt值小于1度的场景。函数e5适用于球机安装位置很低,数据采集时所有tilt值都处于0度左右的场景,或是tilt值固定,只需要控制pan值的平面场景,或是作为e1、e3、e3、e4函数的初值获取方法。
[0162]
a3.角度计算模块630
[0163]
用于获取待观测目标在世界坐标系的坐标(xw,yw),并利用标定模型求解模块620得到的相机位姿估计模型及位姿参数,输出控制相机云台的pan、tilt角度参数。
[0164]
作为示例,可以根据以下公式(16)~(18),获取控制相机云台的pan值和tilt值。
[0165][0166]
[0167]
q(rollw',tiltw,panw)=q-1
(roll0,pitch0,yaw0)*q(0,tiltw',panw');(18)
[0168]
其中,(xw,yw)表示待观测目标在世界坐标系的坐标;(tiltw,panw)表示待观测目标对应的相机的pan值和tilt值,即待观测目标位于相机图像中心时相机的pan值和tilt值;(rollw',tiltw',panw')表示待观测目标位于相机图像中心时相机的体坐标系相对于世界坐标系的旋转角度。
[0169]
a4.倍率计算模块640
[0170]
用于获取待观测目标的坐标(x,y),并根据坐标(x,y)与标定求解的相机位置(x0,y0)之间的距离,计算控制相机的变倍系数zoom。
[0171]
作为示例,可以根据以下公式(19),获取控制相机的变倍系数zoom。
[0172][0173]
其中,(xw,yw)表示待观测目标在世界坐标系的坐标,s表示卫星地图的比例尺,用于将卫星地图所使用的坐标系转为米制尺度,k表示放大倍率经验系数,可根据待观测目标的大小进行调整。例如,可以默认每100米距离放大一倍。
[0174]
最终,系统600可以根据预设的相机控制协议,将相机的ptz控制参数(panw、tiltw、zoom)发送给相机,以控制相机完成转向、缩放等功能,实现对待观测目标的相机联动。
[0175]
在本技术实施例中,提供了一种用于控制相机的方案,该方案不依赖外部的传感器作为相机联动的输入,而是依赖卫星地图进行相机联动,成本较低,并且可以保障相机横向和纵向的全覆盖角度控制,根据待观测目标与相机的距离实现最大倍率范围的变倍控制。本方案充分考虑了相机的安装状态,对其进行了六自由度位姿的建模,只需获取少量的标定数据便可以完成标定过程,例如,最少只需3组标定数据,提高了相机标定效率与控制的精度。
[0176]
另外,本技术实施例中还设计了多种应用于标定过程的优化函数,可灵活适配不同高度、姿态的相机架设场景,提高了标定效率和应用灵活度。
[0177]
图9是本技术一实施例的装置900的结构示意图。装置900用于执行上文中由计算设备100执行的方法。
[0178]
该装置900包括通信模块910和处理模块920。该装置900用于实现上文各个方法实施例中由计算设备100执行的操作。
[0179]
例如,通信模块910用于获取待观测船舶的船舶自动识别系统ais数据;处理模块920用于根据ais数据,预测待观测船舶在目标时刻t2的位置信息,其中,目标时刻t2符合以下条件:t2=t1+td+t
t
;其中,t1表示当前时刻,t2表示目标时刻,td表示相机控制链路的网络延迟时间,t
t
表示相机完成转动的时间;处理模块920还用于根据位置信息,从第一候选相机集合中选择目标相机,目标相机用于观测待观测船舶;处理模块920还用于根据位置信息,输出目标相机的ptz控制参数。
[0180]
图10是本技术一实施例的装置1000的结构示意图。装置1000用于执行上文中由计算设备100执行的方法。
[0181]
该装置1000包括处理器1010,处理器1010用于执行存储器1020存储的计算机程序或指令,或读取存储器1020存储的数据,以执行上文各方法实施例中的方法。可选地,处理器1010为一个或多个。
[0182]
可选地,如图10所示,该装置1000还包括存储器1020,存储器1020用于存储计算机程序或指令和/或数据。该存储器1020可以与处理器1010集成在一起,或者也可以分离设置。可选地,存储器1020为一个或多个。
[0183]
可选地,如图10所示,该装置1000还包括通信接口1030,通信接口1030用于信号的接收和/或发送。例如,处理器1010用于控制通信接口1030进行信号的接收和/或发送。
[0184]
可选地,该装置1000用于实现上文各个方法实施例中由计算设备100执行的操作。
[0185]
例如,处理器1010用于执行存储器1020存储的计算机程序或指令,以实现上文各个方法实施例的计算设备100的相关操作。
[0186]
需要指出的是,图10中的装置1000可以是前述实施例中的计算设备100,也可以是计算设备100组成部件(如芯片),在此不做限定。
[0187]
在本技术实施例中,处理器是一种具有信号的处理能力的电路,在一种实现中,处理器可以是具有指令读取与运行能力的电路,例如cpu、微处理器、gpu(可以理解为一种微处理器)、或dsp等;在另一种实现中,处理器可以通过硬件电路的逻辑关系实现一定功能,该硬件电路的逻辑关系是固定的或可以重构的,例如处理器为asic或pld实现的硬件电路,例如fpga。在可重构的硬件电路中,处理器加载配置文档,实现硬件电路配置的过程,可以理解为处理器加载指令,以实现以上部分或全部单元的功能的过程。此外,还可以是针对人工智能设计的硬件电路,其可以理解为一种asic,例如npu、tpu、dpu等。
[0188]
可见,以上装置中的各单元可以是被配置成实施以上方法的一个或多个处理器(或处理电路),例如:cpu、gpu、npu、tpu、dpu、微处理器、dsp、asic、fpga,或这些处理器形式中至少两种的组合。
[0189]
此外,以上装置中的各单元可以全部或部分可以集成在一起,或者可以独立实现。在一种实现中,这些单元集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。该soc中可以包括至少一个处理器,用于实现以上任一种方法或实现该装置各单元的功能,该至少一个处理器的种类可以不同,例如包括cpu和fpga,cpu和人工智能处理器,cpu和gpu等。
[0190]
相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序/指令被处理器执行时,致使处理器实现图2至图5中计算设备100所执行的方法中的步骤。
[0191]
相应地,本技术实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器实现图2至图5中计算设备100所执行的方法中的步骤。
[0192]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0193]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0194]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0195]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0196]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0197]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0198]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0199]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0200]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1