具体实施方式
下面将参考附图对本公开作进一步地详细描述。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路等未作详细描述,以便于凸显本公开的主旨。
在相关技术中,一个用户可能会在某一个空间内设置多个摄像机,这就需要用户分别对多个摄像机设置对应的监控范围以及监控角度,从而可以使得用户能够尽可能多的对空间进行最大范围的监控。上述处理过程中,通常由用户直接手动的对每个摄像机监控角度进行调整或配置,然而,这样的处理方式无法保证处理效率,并且无法保证多个摄像机尽可能的获得较大的监控范围。
针对上述问题,本公开实施例提供了一种摄像机自协商监控处理方法,实现该方法的处理逻辑可以部署在目标空间内的全部摄像机中,具体执行该方法的处理逻辑的可以为上述全部摄像机中的任意一个摄像机。
本公开实施例可以是应用于某一个目标空间内部署有2个或更多摄像机的场景。比如,图1示意的场景中,在目标空间内包含了4个摄像机,分别如图1所示为摄像机1~摄像机4。
其中,上述目标空间可以根据实际情况不同而不同,举例来说,所述目标空间可以为用户的家中的全部室内空间,或者,所述目标空间可以为被全部摄像机覆盖的街道。需要理解的是,上述目标空间的两种示例性说明不作为对本公开实施例的限定,实际上只要可以安装一个或多个摄像机的任意一种空间均在本实施例的保护范围内。
如图1所示,在所述目标空间内的每个摄像机均可以至少包含以下部件:拍摄部件101、卫星定位部件102、姿态传感器103、距离传感器104、通信部件105。也就是说,在所述目标空间内的任意一个摄像机除了上述5个部件之外,可能没有其他类型的部件,也可能还包含有其他类型的部件,均在本实施例的保护范围内。
其中,所述拍摄部件101指的是实现摄像机拍摄和录制的功能部件;所述拍摄部件101可以至少包括有:镜头(Lens)、系统级芯片(SOC,System on Chip)等等。
所述卫星定位部件102指的是可以借助对摄像机的安装位置进行定位,获取自身的经纬度坐标及高度信息。举例来说,所述卫星定位部件具体可以为GPS传感器、或者北斗卫星定位系统。
姿态传感器103:可以获取摄像机镜头的姿态信息,包括左右转向角度(或水平倾角)、上下倾角等信息。姿态传感器可以为陀螺仪,或者其他传感器,这里不做穷举。
距离传感器104:可以对镜头前的物体进行测距功能,构建图像的深度信息。例如障碍物的距离,大小等等。可选的距离传感器包括激光雷达、毫米波雷达、TOF(time-of-flight,飞行时间)相机等等。
通信部件105用于摄像机相互之间可以两两通讯。可以借助洪泛模式的通讯方式,相互之间信号受到阻隔的两个摄像机可以借助其他摄像机中继转发进行通讯,完成由全部摄像机组成的网络之间的信息交换。该通信部件可以为支持无线通信的部件,比如,可以为支持蓝牙通信的部件、支持WIFI(Wireless Fidelity)通信的部件;在此基础上,该通信部件还可以支持有线通信。
图2提供了本公开一实施例的摄像机自协商监控处理方法的流程图。该方法包括:
S201:在第一摄像机为第一类主控节点的情况下,所述第一摄像机基于目标点在地图信息中的位置以及M个摄像机的内参,确定所述M个摄像机中每个摄像机的至少一个可监控目标点集合;其中,所述每个摄像机的至少一个可监控目标点集合中不同的可监控目标点集合对应不同的可视角度,且每个可监控目标点集合中包含在当前可视角度下同时监控的目标点;所述M个摄像机中包含所述第一摄像机;所述地图信息为在世界坐标系下所述M个摄像机所在的目标空间的地图信息;M为大于等于2的整数;
S202:所述第一摄像机基于所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理,得到目标点覆盖集合;其中,所述目标点覆盖集合中包含所述每个摄像机的一个目标监控角度及其对应的目标点,且所述目标点覆盖集合中不同摄像机所对应的目标点至少部分不同;K为大于等于1的整数;
S203:所述第一摄像机基于所述目标点覆盖集合,生成所述每个摄像机对应的控制指令;其中,所述每个摄像机对应的控制指令用于指示所述每个摄像机调整至对应的目标监控角度;
S204:所述第一摄像机发送除所述第一摄像机之外的M-1个其他摄像机对应的控制指令,以及所述第一摄像机基于自身对应的控制指令调整至目标监控角度。
所述第一摄像机可以为全部摄像机中的任意之一。
在执行S201之前,所述第一摄像机还需要确定自身是否为第一类主控节点,以及所述第一摄像机在确定自身为第一类主控节点的情况下还会获取一个或多个目标点。
所述第一摄像机首先确定自身是否为第一类主控节点,只要第一摄像机一旦确定自身为主控节点,就会获取到一个或多个目标点,以执行S201~S204的处理,即第一摄像机作为第一类主控节点进行M个摄像机的监控角度的调整处理。换句话说,所述第一类主控节点即用于执行进行M个摄像机的监控角度的调整处理的节点,只有在所述第一摄像机确定自身为第一类主控节点的情况下,才会执行本实施例提供的S201~S204的处理逻辑。
首先针对第一摄像机确定自身是否为第一类主控节点进行说明,具体的:所述第一摄像机在确定自身满足第一预设条件的情况下,确定自身为第一类主控节点。
其中,所述第一预设条件,可以包括以下至少之一:
在所述M个摄像机中最早接收到目标点选取信息;
在所述M个摄像机中最早接收到目标点选取信息且序列号最小;
发送作为第一类主控节点的广播信息且接收到其他摄像机反馈的确认信息;
接收到终端设备发来的设置为第一类主控节点的控制指令。
针对上述第一预设条件分别进行说明:
上述第一种条件,在所述M个摄像机中最早接收到目标点选取信息,可以指的是:在所述系统中的M个摄像机中最早接收到终端设备发送的目标点选取信息。
这里,所述终端设备可以为用户使用的终端设备,该终端设备能够与整个系统中的任意一个或多个摄像机通过无线通信方式或有线通信方式建立连接。所述终端设备中可以安装并运行有用于与摄像机系统交互的应用(或可以称为摄像机应用)。该终端设备可以为智能手机、平板电脑、台式电脑中任意之一。
所述目标点选取信息具体可以为所述终端设备中的摄像机应用生成并发送的。
关于所述终端设备中的摄像机应用生成所述目标点选取信息的方式可以是:终端设备的摄像机应用通过连接至所述M个摄像机中的任意一个或多个摄像机的情况下,从任意一个摄像机下载地图信息;用户在所述地图信息中进行选取操作,基于所述选取操作确定一个或多个目标点;基于所述一个或多个目标点在地图信息中的位置信息生成所述目标点选取信息。
需要说明的是,所述地图信息为所述目标空间所对应的世界坐标系下的地图信息,上述地图信息可以为二维地图,也可以为三维地图。在所述地图信息中可以至少标识有:所述目标空间内M个摄像机中每个摄像机的位置、所述目标空间内每个物体的位置以及形状。其中,所述物体可以为目标空间内的相对静态的物体,比如,可以有冰箱、洗衣机、床、电视等等;又或者,可以有树、交通灯等等。
关于所述终端设备中的摄像机应用发送所述目标点选取信息的方式可以是:所述终端设备的摄像机应用将所述目标点选取信息作为广播信息发出。相应的,若在M个摄像机中的所述第一摄像机为最早接收到该目标点选取信息的摄像机,则可以作为执行本实施例的第一类主控节点。
上述第二种条件,在所述M个摄像机中最早接收到目标点选取信息且序列号最小,可以指的是:在所述系统中的M个摄像机中最早接收到终端设备发送的目标点选取信息的至少两个摄像机中序列号最小的一个摄像机。
这里,关于所述终端设备、目标点选取信息的生成以及发送的处理与前述实施例相同,不做重复说明。
与第一种条件不同之处在于,在第二种条件中,可能存在同时接收到终端设备发送的目标点选取信息的两个或更多个摄像机,此时若所述第一摄像机为两个或更多个摄像机中序列号最小的一个摄像机,则该第一摄像机可以作为第一类主控节点。
其中,所述序列号可以为任意一个摄像机在出厂时就写入摄像机的信息,且不同的摄像机序列号是不同的。
上述第三种条件,发送作为第一类主控节点的广播信息且接收到其他摄像机反馈的确认信息,可以指的是:用户并未进行目标点的选取,此时在系统中的任意一个摄像机均可以发起自身作为第一类主控节点的广播信息,若该摄像机接收到系统中的M-1个其他摄像机发来的确认信息,则该发起广播信息的摄像机作为主控节点。
这种情况下,可以是将系统的中心点作为目标点;其中,所述系统的中心点可以为多个摄像机所覆盖的范围的中心点。
上述第四种条件,接收到终端设备发来的设置为第一类主控节点的控制指令,可以指的是:若第一摄像机接收到用户通过终端设备的摄像机应用发来的指定该第一摄像机为第一类主控节点的指令,则第一摄像机确定自身成为第一类主控节点。此时,第一摄像机还可以向M-1个其他摄像机发送自身作为主控节点的通知。
针对上述第一预设条件中的多个条件需要说明的是,上述多个条件可以单独使用也可以结合使用,比如,第一种条件可以与第三种条件结合,也就是说,在所述M个摄像机中最早接收到目标点选取信息,发送作为第一类主控节点的广播信息且接收到其他摄像机反馈的确认信息的情况下,才算满足第一预设条件。当然,上述第一预设条件中的多个条件的结合方式可以不仅包含上述一种,还可以有其他结合方式,只是这里不做赘述。
在第一摄像机确定自身为主控节点之后,对目标点的获取方式进行说明,可以包括:
若所述第一摄像机接收到终端设备发送的目标点选取信息,则所述第一摄像机从所述目标点选取信息中获取在所述地图信息中的一个或多个目标点;其中,一个或多个目标点具体指的可以为所述一个或多个目标点在地图信息中的坐标位置,该坐标位置可以是二维坐标或三维坐标;
或者,若所述第一摄像机未接收到终端设备发送的目标点选取信息,则所述第一摄像机将在所述地图信息中所述M个摄像机的位置所组成的形状的中心点作为目标点。
上述终端设备发送的目标点选取信息可以是在终端设备侧生成的,可以包括:用户在终端设备侧展示的地图信息中选取一个或多个目标点,基于所述一个或多个目标点生成所述目标点选取信息。
其中,关于用户在终端设备侧展示的地图信息中选取一个或多个目标点的处理,可以为以下几种方式中之一:
用户可以在终端设备的摄像机应用所展示的地图信息中点击一个或多个点,将用户点击的一个或多个点作为上述一个或多个目标点;
用户可以在终端设备的摄像机应用所展示的地图信息中选取一个范围,将该范围内的全部物体均作为目标点,其中,关于范围的形状本实施例不做限定,可以为不规则形状,又或者可以为圆形;
用户可以在终端设备的摄像机应用所展示的地图信息中选取一个或多个范围,将该一个或多个范围分别对应的中心点作为一个或多个目标点,其中,关于每个范围的形状本实施例不做限定,可以为不规则形状,又或者可以为圆形;
用户可以在终端设备的摄像机应用所展示的地图信息中所包含的一个或多个原目标点的基础上进行添加或删除,得到一个或多个新目标点。
在所述第一摄像机在确定自身为第一类主控节点的情况下,可以执行本实施例提供的后续S201-S204的处理。需要说明的是,在所述第一摄像机在确定自身不是第一类主控节点的情况下,该第一摄像机不执行后续S201-S204的处理。进一步地,在第一摄像机不是第一类主控节点的情况下,所述第一摄像机可以在接收到自身对应的控制指令的情况下,基于所述控制指令调整至目标监控角度。
在所述第一摄像机确定自身为第一类主控节点之后,还可以通知整个系统中的其他摄像机。比如,所述第一摄像机可以基于自身安装的通信部件采用广播的形式向除所述第一摄像机之外的M-1个其他摄像机发送自身为第一类主控节点的通知。
完成上述处理之后,可以执行S201,在第一摄像机为第一类主控节点的情况下,所述第一摄像机基于目标点在地图信息中的位置以及M个摄像机的内参,确定所述M个摄像机中每个摄像机的至少一个可监控目标点集合;其中,所述每个摄像机的至少一个可监控目标点集合中不同的可监控目标点集合对应不同的可视角度,且每个可监控目标点集合中包含在当前可视角度下同时监控的目标点;所述M个摄像机中包含所述第一摄像机;所述地图信息为在世界坐标系下所述M个摄像机所在的目标空间的地图信息;M为大于等于2的整数。
上述目标点的数量可以为一个或多个。
所述第i个摄像机的内参可以包括有:第i个摄像机的候选可视角度,第i个摄像机的可视距离等。所述候选可视角度可以指的是在世界坐标系下的角度,比如,可以包含x轴方向的角度、y轴方向的角度以及z轴方向的角度;其中,世界坐标系下的x轴还可以表示为Xw,世界坐标系下的y轴还可以表示为Yw,世界坐标系下的z轴还可以表示为Zw。
所述第一摄像机基于目标点在地图信息中的位置以及M个摄像机的内参,确定所述M个摄像机中每个摄像机的至少一个可监控目标点集合,具体可以包括:
所述第一摄像机基于目标点在地图信息中的位置、所述M个摄像机中的每个摄像机的内参、所述每个摄像机在地图信息中的位置、障碍物在所述地图信息中的位置,确定所述每个摄像机在至少一个可视角度下分别对应的可监控目标点集合。
上述第一摄像机针对M个摄像机中每个摄像机的处理可以为并行也就是同时处理,也就是同时可以得到M个摄像机中每个摄像机在至少一个可视角度下分别对应的可监控目标点集合;或者,上述第一摄像机针对M个摄像机中每个摄像机的处理可以为依次处理,也就是依次分别得到M个摄像机中每个摄像机在至少一个可视角度下分别对应的可监控目标点集合。
所述第一摄像机基于目标点在地图信息中的位置、所述M个摄像机中的每个摄像机的内参、所述每个摄像机在地图信息中的位置、障碍物在所述地图信息中的位置,确定所述每个摄像机在至少一个可视角度下分别对应的可监控目标点集合,可以包括:
所述第一摄像机基于第i个摄像机的内参以及所述第i个摄像机在地图信息中的位置,确定所述第i个摄像机的至少一个候选可视角度中每个候选可视角度在地图信息中对应的覆盖范围;其中,i为大于等于1且小于等于M的整数;
所述第一摄像机基于所述第i个摄像机的所述每个候选可视角度在地图信息中的覆盖范围、所述目标点在地图信息中的位置以及所述障碍物在地图信息中的位置,确定所述第i个摄像机同时监控到一个或多个目标点的至少一个可视角度;
所述第一摄像机基于所述第i个摄像机在至少一个可视角度中每个可视角度下同时监控到的所述一个或多个目标点,生成所述第i个摄像机在至少一个可视角度下分别对应的可监控目标点集合。
其中,第i个摄像机为所述M个摄像机中的任意一个,比如,该第i个摄像机可以为所述第一摄像机,或者可以为除第一摄像机之外的任意一个其他摄像。由于针对M个摄像机的处理均为相同的,因此本实施例针对其中任意一个摄像机的处理进行说明,将该任意一个摄像机描述为第i个摄像机。
上述第i个摄像机的至少一个候选可视角度,可以为第i个摄像机的全部角度;上述第i个摄像机的至少一个可视角度的数量可以小于或等于至少一个候选可视角度的数量,也就是说,所述第i个摄像机的至少一个可视角度是所述第i个摄像机能够同时监控到至少一个目标点的全部角度。
所述第一摄像机基于第i个摄像机的内参以及所述第i个摄像机在地图信息中的位置,确定所述第i个摄像机的至少一个候选可视角度中每个候选可视角度在地图信息中对应的覆盖范围,可以包括:基于所述第i个摄像机的全部候选可视角度及可视距离,结合所述第i个摄像机在所述地图信息中的位置,确定在地图信息中该第i个摄像机的每个候选可视角度的覆盖范围。
进一步地,针对所述第一摄像机基于所述第i个摄像机的所述每个候选可视角度在地图信息中的覆盖范围、所述目标点在地图信息中的位置以及障碍物在地图信息中的位置,确定所述第i个摄像机能够监控到一个或多个目标点的至少一个可视角度的处理进行说明。由于第i个摄像机可以包含多个候选可视角度,这里将多个候选可视角度中的任意之一称为第w个候选可视角度(w为大于等于1的整数)进行说明,需要理解,针对第i个摄像机的全部候选可视角度可以并行的执行以下处理也可以依次执行以下处理:
判断第i个摄像机的第w个候选可视角度在地图信息中的覆盖范围中是否包含目标点在地图信息中的位置;若不包含目标点在地图信息中的位置,则将该第w个候选可视角度不作为能够监控到一个或多个目标点的一个可视角度;
若包含目标点在地图信息中的位置,则判断所述第i个摄像机的第w个候选可视角度下是否存在障碍物且障碍物遮挡全部目标点;若存在障碍物且障碍物遮挡全部目标点,则该第w个候选可视角度不为能够监控到一个或多个目标点的可视角度;若不存在障碍物,则该第w个候选可视角度为能够监控到一个或多个目标点的一个可视角度;若存在障碍物且障碍物不遮挡全部目标点,则该第w个候选可视角度为能够监控到一个或多个目标点的一个可视角度。
还需要指出的是,上述至少一个可视角度中不同可视角度所能够同时监控到的目标点至少部分不同。
完成上述处理之后,可以从第i个摄像机的全部候选可视角度中确定能够监控到一个或多个目标点的至少一个可视角度,同时也可以确定至少一个可视角度中每个可视角度所对应的一个或多个目标点,进而可以基于所述第i个摄像机在至少一个可视角度中每个可视角度下所能够监控到的一个或多个目标点,生成所述第i个摄像机在每个可视角度下对应的可监控目标点集合。
在上述确定至少一个可视角度中每个可视角度所对应的一个或多个目标点的处理中需要根据地图信息中障碍物的相关信息(比如位置、形状、大小、高度等)来确定每个可视角度下的一个或多个目标点,以更加准确的确定摄像机在某一个可视角度下能够拍摄到目标点。举例来说,如图3所示,摄像机C在可视角度302下,若没有障碍物301,则可能会同时拍摄到目标点1和目标点4,但是由于通过地图信息可以确定障碍物301遮挡了摄像机c的部分视角,因此不会将目标点4添加至该摄像机C的可视角度2下的可监控目标点集合中。
其中,所述第i个摄像机在任意一个可视角度下对应的可监控目标点集合的具体信息内容可以包括:第i个摄像机的标识,第i个摄像机的可视角度,以及该可视角度所对应的一个或多个目标点的相关信息;目标点的相关信息可以包括:目标点的位置、目标点的名称、目标点的编号中至少之一。所述目标点的位置可以指的是目标点在地图信息中的坐标(可以为二维坐标或三维坐标);所述目标点的标识可以指的是目标点的名称或编号。这里,由于针对第i个摄像机的各个可视角度所保存的可监控目标点集合的内容形式是相同的,因此这里不做一一赘述。
举例来说,摄像机A可以具备多个可视角度,比如图3中示出可视角度1以及该角度下同时监控或同时拍摄到的目标点包含了目标点1和目标点4;比如图3中示出可视角度2以及该角度下同时监控或拍摄的目标点包含目标点2;另外,虽然图3中未示意出,摄像机A还可以具备其他的可视角度,比如在可视角度3下,可以同时监控或同时拍摄到的目标点包含了目标点1;在可视角度4下,同时监控或同时拍摄到的目标点包含目标点4等等,这里仅作为示例性说明,不作为对摄像机能够具备的可视角度的穷举。
在所述主控节点确定了摄像机系统中M个摄像机中每个摄像机的至少一个可监控目标点集合之后,执行S202:所述第一摄像机基于所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理,得到目标点覆盖集合;其中,所述目标点覆盖集合中包含所述每个摄像机的一个目标监控角度及其对应的目标点,且所述目标点覆盖集合中不同摄像机所对应的目标点至少部分不同;K为大于等于1的整数。
所述第一摄像机基于所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理,得到目标点覆盖集合,可以包括以下几种处理方式:
第一种方式:
所述第一摄像机对所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理分别得到K个已覆盖集合;从所述K个已覆盖集合中选取覆盖目标点的数量最多的一个已覆盖集合作为所述目标点覆盖集合。
本方式中每一次遍历处理都会得到并保存一个已覆盖集合,在每次遍历处理的已覆盖集合中均可以包括:每个摄像机的标识、每个摄像机的一个备选角度、每个摄像机在其对应的备选角度下所同时监控到的一个或多个目标点的相关信息。其中,所述一个或多个目标点中每一个目标点的相关信息可以包括:目标点的位置、目标点的名称、目标点的编号中至少之一。
所述目标点覆盖集合中包含所述每个摄像机的一个目标监控角度及其对应的目标点,且所述目标点覆盖集合中不同摄像机所对应的目标点至少部分不同。
这种方式中,如果覆盖目标点数量最多的已覆盖集合有两个或更多,则从所述两个或更多的已覆盖集合中选取覆盖范围最大的一个已覆盖集合作为所述目标点覆盖集合。其中,所述覆盖范围可以指的是在地图信息中的覆盖面积。
确定覆盖范围的方式可以为:基于已覆盖集合中每个摄像机的内参以及地图信息,确定每个摄像机的子覆盖范围;将全部摄像机的子覆盖范围进行合并,得到所述覆盖范围。
第二种方式:
所述第一摄像机对所述每个摄像机的至少一个可监控目标点集合进行第q次遍历处理,得到第q个已覆盖集合;q为大于等于1且小于等于K的整数;
所述第一摄像机从所述第q个已覆盖集合以及历史已覆盖集合中选取一个作为新的历史已覆盖集合;
所述第一摄像机在确定第q次遍历处理为最后一次遍历处理的情况下,将所述新的历史已覆盖集合作为所述目标点覆盖集合。
其中,所述第一摄像机从所述第q个已覆盖集合以及历史已覆盖集合中选取一个作为新的历史已覆盖集合,可以包括:
在所述第一摄像机确定所述第q个已覆盖集合中包含的目标点的数量大于所述历史已覆盖集合中包含的目标点的数量的情况下,删除历史已覆盖集合,将所述第q个已覆盖集合作为所述新的历史已覆盖集合;
在所述第一摄像机确定所述第q个已覆盖集合中包含的目标点的数量小于所述历史已覆盖集合中包含的目标点的数量的情况下,删除所述第q个已覆盖集合,将所述历史已覆盖集合作为所述新的历史已覆盖集合;
在所述第一摄像机确定所述第q个已覆盖集合中包含的目标点的数量等于所述历史已覆盖集合中包含的目标点的数量的情况下,将所述第q个已覆盖集合以及历史已覆盖集合中之一作为所述新的历史已覆盖集合,且删除另外一个。
这种方式中,将所述第q个已覆盖集合以及历史已覆盖集合中之一作为所述新的历史已覆盖集合还可以包括:获取所述第q个已覆盖集合和历史已覆盖集合分别对应的覆盖范围,从所述第q个已覆盖集合以及历史已覆盖集合中选取覆盖范围最大的一个进行保存;又或者,获取所述第q个已覆盖集合和历史已覆盖集合分别对应的覆盖范围,若所述第q个已覆盖集合的覆盖范围以及历史已覆盖集合的覆盖范围相同,则保存当前已覆盖集合和历史已覆盖集合中任意之一并删除另外一个。
上述遍历处理的次数可以为至少一次,下面对所述K次遍历处理中的当前次遍历处理进行示例性说明,这里,所述当前次遍历处理可以指的是任意一次遍历处理,具体如图4所示,可以包括:
S401:所述第一摄像机从所述M个摄像机中的未选取的摄像机中选取当前摄像机;
S402:所述第一摄像机选取所述当前摄像机的未选取可监控目标点集合中之一作为当前可监控目标点集合;
S403:所述第一摄像机在所述当前可监控目标点集合的至少部分目标点不包含在当前已覆盖集合的情况下,将所述当前可监控目标点集合添加至所述当前已覆盖集合中;
S404:所述第一摄像机判断所述M个摄像机中是否存在未选取的摄像机,若不存在所述未选取的摄像机,则确定当前次遍历处理完成,将所述当前已覆盖集合作为本次遍历处理得到的已覆盖集合。
需要指出的是,本实施例以K次遍历处理中的当前次遍历处理也就是任意一次遍历处理及其得到已覆盖集合进行示例性说明,实际处理中K次遍历处理中的每一次遍历处理都会得到对应的已覆盖集合,只是不做重复说明。
前述S401,还可以包括:判断所述M个摄像机中是否存在未选取的剩余摄像机,若不存在,则确定当前次遍历处理完成,将所述当前已覆盖集合作为本次遍历处理得到的已覆盖集合;若存在,则执行S401。
这里,在确定当前次遍历处理完成,还可以判断是否需要进行下一次遍历处理,比如,可以判断遍历处理的次数是否达到预设次数阈值,若达到,则确定完成全部遍历处理,若未达到,则可以执行下一次遍历处理。
需要指出,不同次的遍历处理中,可以均设定同一个摄像机为每次遍历处理中第一个选取的摄像机。或者,可以将不同次遍历处理中,选取摄像机的顺序进行预设,以使得每次遍历处理采用同样的顺序依次选取摄像机作为当前摄像机,也就是前述S401中,所述从所述M个摄像机中的未选取的摄像机中选取当前摄像机,可以指的是:基于预设选取顺序,从所述M个摄像机中的未选取的摄像机中选取当前摄像机。
在执行S402的选取所述当前摄像机的未选取可监控目标点集合中之一作为当前可监控目标点集合处理中,需要注意的是,至少每次遍历处理中第一个选取的摄像机在不同次的遍历处理中所选取的可监控目标点集合是不同的,比如,在第一次遍历处理中,选取了摄像机A的可监控目标点集合1,则第二次遍历处理中选取摄像机A的除可监控目标点集合1之外的其他任意一个集合,以此类推,不做穷举。
在前述S403的处理中,如图5所示,还可以包括:
S501:判断所述当前可监控目标点集合的全部目标点是否包含在当前已覆盖集合中,若所述当前可监控目标点集合的全部目标点包含在当前已覆盖集合,则执行S502;否则,执行S403;
S502:判断所述当前摄像机是否有未选取可监控目标点集合,若有未选取可监控目标点集合,则从所述未选取可监控目标点集合中选取一个作为当前可监控目标点集合,然后再次执行S501;若没有未选取可监控目标点集合,则执行S404。
在完成上述S403之后,还可以将当前摄像机设置为已选取的摄像机,然后执行S404。在上述S404的处理中,还可以包括:若存在未选取的摄像机,则再次执行S401。
这里,在确定当前遍历处理完成的情况下,还可以判断是否需要进行下一次遍历处理,比如,可以判断遍历处理的次数是否达到预设次数阈值,若达到,则确定完成全部遍历处理,若未达到,则可以执行下一次遍历处理。
完成上述S202的处理之后可以得到一个目标点覆盖集合,所述目标点覆盖集合中包含所述每个摄像机的一个目标监控角度及其对应的一个或多个目标点的相关信息,且所述目标点覆盖集合中不同摄像机所对应的目标点至少部分不同;其中,目标点的相关信息可以包括目标点的位置、名称、编号中至少之一。
然后可以执行S203:所述第一摄像机基于所述目标点覆盖集合,生成所述每个摄像机对应的控制指令;其中,所述每个摄像机对应的控制指令用于指示所述每个摄像机调整至对应的目标监控角度,可以包括以下两种处理方式:
处理方式一、第一摄像机基于所述目标点覆盖集合中所述每个摄像机的目标监控角度,生成所述每个摄像机对应的控制指令。
本处理方式中,所述生成所述每个摄像机对应的控制指令可以包括:生成包含第一摄像机的目标监控角度的第一控制指令,以及生成包含M-1个其他摄像机分别对应的目标监控角度第二控制指令。相应的,在S204中,所述第一摄像机发送除所述第一摄像机之外的M-1个其他摄像机对应的控制指令具体可以是:发出包含M-1个其他摄像机分别对应的目标监控角度第二控制指令。
又或者,所述生成所述每个摄像机对应的控制指令可以包括:生成包含第一摄像机的目标监控角度的第一控制指令,以及生成分别包含所述M-1个其他摄像机对应的目标监控角度的M-1个第二控制指令。相应的,在S204的处理中,所述第一摄像机发送除所述第一摄像机之外的M-1个其他摄像机对应的控制指令具体可以是:将M-1个第二控制指令分别向M-1个其他摄像机发出。
本处理方式中,在S204的所述第一摄像机基于自身对应的控制指令调整至目标监控角度可以指的是:所述第一摄像机基于自身对应的第一控制指令中包含的目标监控角度,将自身从当前监控角度调整到目标监控角度。具体来说,所述第一摄像机通过姿态传感器获取自身在至少一个方向上的当前监控角度;基于所述目标监控角度以及所述至少一个方向上的当前监控角度,计算得到在至少一个方向上需要调整的角度;根据在至少一个方向上需要调整的角度,将自身从当前监控角度调整到目标监控角度。
处理方式二、所述第一摄像机根据所述每个摄像机的当前位姿信息确定所述每个摄像机的当前监控角度;基于所述每个摄像机的当前监控角度以及所述目标点覆盖集合中每个摄像机的目标监控角度,确定每个摄像机在至少一个方向的调整角度;基于所述每个摄像机在至少一个方向的调整角度,生成所述每个摄像机对应的控制指令。
上述在至少一个方向的调整角度可以包含以下至少之一:x轴的调整方向以及调整角度,y轴的调整方向以及调整角度,z轴的调整方向以及调整角度。
其中,所述每个摄像机的当前位姿信息的获取方式包括:所述第一摄像机基于自身安装的姿态传感器,获取自身当前位姿信息;以及,所述第一摄像机通过M-1个其他摄像机发送的包含各自当前位姿信息的广播信息。其中,所述当前位姿信息可以包括:各个摄像机自身x轴方向的当前角度、y轴方向的当前角度、z轴方向的当前角度。
本处理方式中,所述基于所述每个摄像机在至少一个方向的调整角度,生成所述每个摄像机对应的控制指令可以包括:生成包含第一摄像机在至少一个方向的调整角度的第三控制指令,以及生成包含M-1个其他摄像机分别对应在至少一个方向的调整角度的第四控制指令。相应的,在S204中,所述第一摄像机发送除所述第一摄像机之外的M-1个其他摄像机对应的控制指令具体可以是:发出包含M-1个其他摄像机分别对应的在至少一个方向的调整角度的第四控制指令。所述第一摄像机基于自身对应的控制指令调整至目标监控角度可以指的是:所述第一摄像机基于自身对应的第三控制指令中包含的在至少一个方向的调整角度,将自身从当前监控角度调整到目标监控角度。
又或者,所述生成所述每个摄像机对应的控制指令可以包括:生成包含第一摄像机在至少一个方向的调整角度的第三控制指令,以及生成分别包含所述M-1个其他摄像机对应的在至少一个方向的调整角度的M-1个第四控制指令。相应的,在S204的处理中,所述第一摄像机发送除所述第一摄像机之外的M-1个其他摄像机对应的控制指令具体可以是:将M-1个第四控制指令分别向M-1个其他摄像机发出。所述第一摄像机基于自身对应的控制指令调整至目标监控角度可以指的是:所述第一摄像机基于自身对应的第三控制指令中包含的在至少一个方向的调整角度,将自身从当前监控角度调整到目标监控角度。
结合图6对上述实施例提供的方案进行示例性说明:
S601:第一摄像机计算M个摄像机中每个摄像机的可监控目标点集合。
具体可以是:所述第一摄像机基于目标点在地图信息中的位置以及M个摄像机的内参, 计算M个摄像机中每个摄像机的可监控目标点集合。
所述可监控目标点集合的数量可以为一个或多个,所述每个摄像机的可监控目标点集合中不同的可监控目标点集合对应不同的可视角度。
S602:所述第一摄像机开始对每个摄像机的可监控目标点集合进行当前次遍历处理。
这里,第一摄像机可以判断是否已经完成全部遍历处理,若没有,则开始执行S602进行本次遍历处理。
S603:所述第一摄像机将当前摄像机的当前可监控目标点集合添加至所述当前已覆盖集合。
本步骤具体可以包括:所述第一摄像机从所述M个摄像机中的未选取的摄像机中选取当前摄像机;所述第一摄像机选取所述当前摄像机的未选取可监控目标点集合中之一作为当前可监控目标点集合;
所述第一摄像机在所述当前可监控目标点集合的至少部分目标点不包含在当前已覆盖集合的情况下,将所述当前可监控目标点集合添加至所述当前已覆盖集合;并且,所述第一摄像机在所述当前可监控目标点集合的全部目标点均包含在当前已覆盖集合的情况下,跳过所述当前可监控目标点集合,重新选取所述当前摄像机的未选取可监控目标点集合中之一作为新的当前可监控目标点集合,然后再次判断所述当前可监控目标点集合的至少部分目标点是否包含在当前已覆盖集合,如此循环处理,不做赘述。
S604:所述第一摄像机确定遍历完M个摄像机的情况下,得到当前已覆盖集合,从所述当前已覆盖集合以及历史已覆盖集合中选取一个保存为新的历史已覆盖集合。
也就是说,在所述第一摄像机确定所述当前已覆盖集合中包含的目标点的数量大于所述历史已覆盖集合中包含的目标点的数量的情况下,删除历史已覆盖集合,将所述当前已覆盖集合作为当前最优解,删除原历史已覆盖集合,保存该当前最优解作为所述新的历史已覆盖集合。
S605:判断是否完成全部K次遍历处理,若完成,则确定当前的历史已覆盖集合为最优解,基于该最优解生成控制指令;若未完成,则执行下一次遍历处理,返回执行S602。
通过采用以上实施例提供的方案,就可以在任意一个摄像机作为主控节点的时候,根据全部摄像机的内参以及目标点在地图信息中的位置来确定每个摄像机的至少一个可监控目标点集合,其中,每个可监控目标点集合对应一个可视角度;再根据每个摄像机的至少一个可监控目标点集合确定目标点覆盖集合,进而基于覆盖目标点几个生成针对每个摄像机的控制指令,以使得每个摄像机均可以调整自身的角度。这样,就可以结合多个摄像机各自的状态以及用户关注的目标点灵活且高效的调整多个摄像机的角度,以保证得到较大的监控区域范围;并且,本实施例提供的方案可以由全部摄像机中的任意一个摄像机自动实现,从而避免由用户通过人工对多个摄像机一一进行配置所带来的效率较低且配置结果不够精确,以及配置结果无法保证最大限度的覆盖目标空间等问题。
本公开另一实施例中还提供了在M个摄像机中任意一个摄像机发生故障的处理,如图7所示,可以包括:
S701:在第二摄像机出现故障的情况下,若所述第一摄像机满足第二预设条件,则所述第一摄像机作为第二类主控节点,基于目标点在地图信息中的位置以及L个摄像机的内参,生成所述L个摄像机中每个摄像机的调整指令;其中,L为大于等于2且小于M的整数;所述L个摄像机为所述M个摄像机中的部分摄像机,所述L个摄像机中包含所述第一摄像机且不包含第二摄像机;所述L个摄像机中每个摄像机的调整指令用于指示每个摄像机调整至对应的新的目标监控角度;
S702:所述第一摄像机发送L-1个摄像机对应的调整指令,以及所述第一摄像机基于自身对应的调整指令重新调整至新的目标监控角度;其中,所述L-1个摄像机中不包含所述第一摄像机且不包含第二摄像机。
这里,该方法还可以包括:若所述第一摄像机不满足第二预设条件,则所述第一摄像机作为被控节点,在接收到调整指令的情况下,基于所述调整指令将自身的监控角度由原目标监控角度调整到新的目标监控角度。
其中,确定第二摄像机出现故障的方式可以包括:在第二摄像机的心跳信息发送周期中,未接收到所述第二摄像机发来的心跳信息的情况下,确定所述第二摄像机出现故障。
这里,所述第二摄像机可以以广播的形式在每个心跳信息发送周期中向L个摄像机均发送心跳信息。同样的,M个摄像机或L个摄像机中的每个摄像机均可以在各自的心跳信息发送周期中以广播的形式发送各自的心跳信息。每个摄像机发送的心跳信息都是用于通知其他摄像机(或称为系统中的其他节点),自身运行状态正常。其中,心跳信息发送周期可以是每个摄像机均相同,又或者可以不同的摄像机不同,这里不对其进行限定。
在任意一个摄像机确定该第二摄像机出现故障的情况下,还会以广播的形式发送第二摄像机出现故障的消息。比如,在第一摄像机确定该第二摄像机出现故障的情况下,该第一摄像机还会以广播的形式发送第二摄像机出现故障的消息。
所述第二类主控节点即用于在M个摄像机中存在任意一个(或多个)摄像机发生故障的情况下,对剩余的摄像机(即前述L个摄像机)进行监控角度的调整的节点。所述第一摄像机在确定自身为所述第二类主控节点的情况下,才会执行前述S701~S702的处理。所述第一摄像机在自身满足所述第二预设条件的情况下,确定自身为第二类主控节点。
上述第二预设条件可以包括以下之一:
最先以广播的形式发送第二摄像机出现故障的消息;
在多个摄像机同时以广播的形式发送第二摄像机出现故障的消息的情况下,序列号最小的一个摄像机;
与所述第二摄像机之间的距离最近。
其中,所述最先以广播的形式发送第二摄像机出现故障的消息的确定方式可以为:由于在整个系统中发送每一个消息都会包含有时间戳(比如发送时间戳),任意一个摄像机都可以接收到其他摄像机发来的第二摄像机出现故障的消息,只要比较第二摄像机出现故障的消息中的时间戳即可确定哪个摄像机为最先发出的。
所述与所述第二摄像机之间的距离最近可以指的是:通过地图信息中每个摄像机的位置来确定与第二摄像机之间的距离最近的一个摄像机作为第二类主控节点。
前述S701中,基于目标点在地图信息中的位置以及L个摄像机的内参,生成所述L个摄像机中每个摄像机的调整指令,具体可以包括:
所述第一摄像机基于目标点在地图信息中的位置以及L个摄像机的内参,确定所述L个摄像机中每个摄像机的至少一个新可监控目标点集合;其中,所述L个摄像机中每个摄像机的至少一个新可监控目标点集合中不同的新可监控目标点集合对应不同的可视角度;
所述第一摄像机基于所述L个摄像机中每个摄像机的至少一个新可监控目标点集合进行至少一次遍历处理,得到新目标点覆盖集合;其中,所述新目标点覆盖集合中包含所述L个摄像机中每个摄像机的一个目标监控角度及其对应的目标点,且所述目标点覆盖集合中不同摄像机所对应的目标点至少部分不同;
所述第一摄像机基于所述新目标点覆盖集合,生成所述L个摄像机中每个摄像机的调整指令。
这里,关于第一摄像机如何确定所述L个摄像机中每个摄像机的至少一个新可监控目标点集合,与前述实施例中确定所述M个摄像机中每个摄像机的至少一个可监控目标点集合的处理方式相似,不做赘述。关于所述第一摄像机基于所述L个摄像机中每个摄像机的至少一个新可监控目标点集合进行至少一次遍历处理,得到新目标点覆盖集合的处理方式,与前述实施例中所述第一摄像机基于所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理,得到目标点覆盖集合的处理方式类似,也不做赘述。关于所述第一摄像机基于所述新目标点覆盖集合,生成所述L个摄像机中每个摄像机的调整指令的处理方式,与前述实施例中所述第一摄像机基于所述目标点覆盖集合,生成所述每个摄像机对应的控制指令的处理方式类似,不做重复说明。
如此,通过采用上述处理方式,可以在任意一个摄像机出现故障的情况下,由当前可以作为第二类主控节点的摄像机重新根据各个摄像机的内参以及目标点的位置确定调整指令,来对各个摄像机的监控角度进行调整。这样,一方面可以及时且高效的察觉系统中是否存在故障的摄像机,另一方面,可以在确定系统中有摄像机发生故障的情况下,快速且高效的重新协商剩余的各个摄像机的监控角度,以使得未出现故障的摄像机能够及时的调整监控角度,以尽可能的对故障摄像机的监控范围进行重新覆盖,以高效且准确的保证整个系统的监控效果;再一方面,整个过程中无需用户进行人工配置,只需系统中的摄像机自动协商即可完成,提升了处理效率以及处理结果的准确性。
另外,在上述实施例中涉及到了地图信息,下面针对如何得到该地图信息进行说明,需要指出,在建立目标空间的地图信息的处理中,M个摄像机的处理也是相同的,因此也不做一一赘述,本实施例仍然以第一摄像机为例进行说明,如图8所示,可以包括:
S801:所述第一摄像机获取至少一个候选可视角度下分别对应的世界坐标系下的分点云地图;
S802:所述第一摄像机将所述至少一个候选可视角度下分别对应的世界坐标系下的分点云地图进行合并,得到所述第一摄像机的子点云地图;
S803:在所述第一摄像机接收到M-1个其他摄像机分别发送的其他子点云地图的情况下,所述第一摄像机将自身的子点云地图以及所述M-1个其他摄像机对应的其他子点云地图分别进行合并得到所述地图信息。
其中,所述第一摄像机获取至少一个候选可视角度下分别对应的世界坐标系下的分点云地图,可以包括:
所述第一摄像机在第j个候选可视角度下拍摄得到二维图像,并获取所述二维图像中每个像素点的深度信息;j为大于等于1的整数;其中,所述二维图像为摄像机坐标系下的图像;
所述第一摄像机基于所述二维图像及所述二维图像中每个像素点的深度信息,生成所述第j个候选可视角度下的摄像机坐标系下的初始点云地图;
所述第一摄像机基于自身的姿态信息以及位置信息,将所述第j个候选可视角度下的摄像机坐标系下的初始点云地图转换为世界坐标系下的分点云地图。
这里,第j个候选可视角度为所述第一摄像机的全部候选可视角度中任意之一,由于针对每一个候选可视角度下的处理均为相同的,因此本实施例不做一一赘述。
所述获取所述二维图像中每个像素点的深度信息,具体可以包括:通过距离传感器获取所述二维图像中每个像素点的深度信息。其中,所述距离传感器可以对镜头前的物体进行测距功能,构建图像的深度信息;例如障碍物的距离、大小等等。可选的距离传感器包括激光雷达、毫米波雷达、TOF相机等等。
第一摄像机的自身的姿态信息以及位置信息的获取方式可以包括:所述第一摄像机基于自身安装的卫星定位部件获取自身的位置信息,以及基于自身安装的姿态传感器获取自身的姿态信息。其中,所述卫星定位部件可以具体为GPS或北斗卫星定位系统。所述姿态传感器可以获取摄像机镜头的姿态信息,包括左右转动角度、水平倾角等信息。
举例来说,当第一摄像机安装完成后,控制第一摄像机上下左右依次旋转,利用第一摄像机及其安装的距离传感器拍摄周边环境,获取不同视角(也就是不同候选可视角度)下的二维图像及其对应每个像素点的深度信息(可以将二维图像中每个像素点的深度信息称为深度图),进而第一摄像机可以根据各个候选可视角度二维图像及其对应每个像素点的深度信息构造还原出该相机点位附近的子点云地图(或可以称为点云子地图信息)。该子点云地图可以包含第一摄像机附近的道路、障碍物以及建筑等信息;或者,可以包含第一摄像机附近的其他物体,比如床、冰箱、电脑等等。
结合图9对第一摄像机在某个候选可视角度(比如第j个候选可视角度)的处理进行示例性说明,图9中,O点为摄像机的位置,Xc、Yc、Zc为摄像机坐标系(该摄像机坐标系下的三个坐标轴),其中,Zc可以为摄像机视角中心的坐标轴;O1为摄像机坐标系的圆心(或称为摄像机拍摄的某一个二维图像在摄像机坐标系下的中心点)。Ow为世界坐标系的中心点,Xw、Yw、Zw则为世界坐标系(或称为世界坐标系下的三个坐标轴)。P点则为远处实际点P(Xc,Yc, Zc)在图像(即摄像机拍摄的二维图像)上的投影点。当摄像机借助距离传感器获取P点的深度后,可以由相机的内参以及距离信息计算出P点的摄像机坐标系下的坐标值P(Xc,Yc, Zc)。
进一步地,所述第一摄像机基于自身的姿态信息以及位置信息,将所述第j个候选可视角度下的摄像机坐标系下的初始点云地图转换为世界坐标系下的分点云地图,也就是说,可以结合第一摄像机的方位传感器(或姿态传感器)以及卫星定位部件(比如GPS)获取到第一摄像机的姿态信息和位置信息,可以计算出第j个候选可视角度下的摄像机坐标系下的初始点云地图中每个点的世界坐标信息。具体可以包括:基于所述第一摄像机的所述位置信息在世界坐标系下的矢量构成平移矢量(或平移矢量矩阵);基于所述第一摄像机的姿态信息生成旋转矩阵;基于所述平移矢量(或平移矢量矩阵)、旋转矩阵以及第j个候选可视角度下的摄像机坐标系下的初始点云地图进行计算,得到所述第j个候选可视角度下的世界坐标系下的分点云地图。
上述基于所述平移矢量(或平移矢量矩阵)、旋转矩阵以及第j个候选可视角度下的摄像机坐标系下的初始点云地图进行计算,可以采用公式1来表示:
其中, t为3*1的平移矢量(或平移矢量矩阵),即第一摄像机的位置(或位置信息)在世界坐标系所构成的矢量。R为3*3的旋转矩阵,可以根据第一摄像机的姿态信息得到,比如若第一摄像机的第j个候选可视角度绕x, y, z轴旋转角度分别为ψ,φ和θ(可以是在世界坐标系下)时, 则旋转矩阵R=Rx(ψ),Ry(φ),Rz(θ)。其中,关于Rx(ψ),Ry(φ),Rz(θ)的具体计算方式,如公式2~公式4所示:
所述第一摄像机将所述至少一个候选可视角度下分别对应的世界坐标系下的分点云地图进行合并,得到所述第一摄像机的子点云地图,可以包括:
在所述第一摄像机的第q个候选可视角度以及第w个候选可视角度分别对应的分点云地图存在纹理特征相同的区域的情况下,所述第一摄像机计算第q个候选可视角度以及第w个候选可视角度分别对应的分点云地图中所述纹理特征相同的特征点的坐标之间的坐标差值;q和w均为大于等于1的整数,且q和w不同;
所述第一摄像机基于所述坐标差值计算得到子修正值,基于所述子修正值对所述第q个候选可视角度以及第w个候选可视角度分别对应的分点云地图进行合并,得到第一摄像机的当前子点云地图;
所述第一摄像机确定不存在未合并的分点云地图的情况下,将所述当前子点云地图作为所述第一摄像机的子点云地图。
所述第一摄像机将自身的子点云地图以及所述M-1个其他摄像机对应的其他子点云地图分别进行合并得到所述地图信息,可以包括:
在所述第一摄像机自身的子点云地图与所述M-1个其他摄像机中第r个其他摄像机对应的其他子点云地图存在纹理特征相同的区域的情况下,所述第一摄像机计算所述自身的子点云地图与所述第r个其他摄像机对应的其他子点云地图中所述纹理特征相同的特征点的坐标之间的坐标差值;r为大于等于1且小于M的整数;
所述第一摄像机基于所述坐标差值计算得到合并地图的修正值,基于所述合并地图的修正值对所述自身的子点云地图以及所述第r个其他摄像机对应的其他子点云地图进行合并,得到第一摄像机的更新后的自身的子点云地图;
所述第一摄像机确定所述M-1个其他摄像机中不存在未合并的其他子点云地图的情况下,将所述更新后的自身的子点云地图作为所述地图信息。
在整体系统中,由于摄像机之间通过信息交换,可以获取周边其他摄像机节点的位置;摄像机可以交换各自坐标以及对应的点云地图,通过地图合并,可以自动还原出周边地域的地图信息。在合并点云地图的过程中,考虑到距离传感器以及位置传感器的误差,相同的点在不同摄像机计算出来的点云地图中,坐标值可能会发生一定的误差。因此当某个摄像机节点收到相邻节点的点云地图时, 在进行点云地图的合并过程中,还需要进行对特征点定位,校正回归,消除其中的误差。结合图10对生成地图信息的主要过程说明如下:
S1001:在所述第一摄像机自身的子点云地图中提取纹理特征。
其中,提取纹理特征的方式可以包括:LBP(Local binary patterns)方法、灰度共生矩阵的方法等等,这里不进行穷举。
S1002:从所述M-1个其他摄像机中第r个其他摄像机对应的其他子点云地图中,查找是否存在与所述第一摄像机自身的子点云地图纹理特征匹配的区域,若不存在,则直接将所述第一摄像机自身的子点云地图与所述第r个其他摄像机对应的其他子点云地图进行合并,得到的更新后的自身的子点云地图;若存在,则执行S1003。
其中,直接将所述第一摄像机自身的子点云地图与所述第r个其他摄像机对应的其他子点云地图进行合并的处理完成之后,还可以包括:
判断是否还存在未合并的其他摄像机的其他子点云地图,若存在,则基于其他摄像机的其他子点云地图,返回执行上述S1001;若不存在,则直接将第一摄像机合并得到的更新后的自身的子点云地图作为最终的地图信息。
S1003:所述第一摄像机计算所述自身的子点云地图与所述第r个其他摄像机对应的其他子点云地图中所述纹理特征相同的特征点的坐标之间的坐标差值。
也就是说,所述第一摄像机的自身的子点云地图与所述第r个其他摄像机对应的其他子点云地图的纹理特征相同的区域中可以包含多个特征点(可以理解为纹理特征相同的区域中各自的像素点);
然后将相同特征点在所述第一摄像机的自身的子点云地图与所述第r个其他摄像机对应的其他子点云地图中的坐标提取出来,计算两者的坐标差值;
通过上述处理可以得到多个特征点分别对应的坐标差值。
S1004:所述第一摄像机基于所述坐标差值计算得到合并地图的修正值,基于所述合并地图的修正值对所述自身的子点云地图以及所述第r个其他摄像机对应的其他子点云地图进行合并,得到第一摄像机的更新后的自身的子点云地图。
其中,基于所述坐标差值计算得到合并地图的修正值可以是:将所述多个特征点分别对应的坐标差值进行平均,将得到的平均值作为所述合并地图的修正值。
另外,在S1004完成之后,还可以包括:判断是否还存在未合并的其他摄像机的其他子点云地图,若存在,则基于其他摄像机的其他子点云地图执行上述S1001;若不存在,则直接将S1004得到的第一摄像机的更新后的自身的子点云地图作为最终的地图信息。
S1005:将所述合并地图的修正值以广播的形式发送至M-1个其他摄像机。这样,可以使得其他摄像机可以采用相同的方式直接进行修正,减少其他摄像机的计算处理,提升整体的处理效率。
上述生成地图的处理可以是在每个摄像机安装完成之后就开始执行,或者,也可以是根据用户发出的指令进行更新的时候执行,或者,还可以是根据预设的更新周期确定达到本次更新周期的时候开始执行。
另外,在生成地图之后,用户还可以在连接到上述M个摄像机所组成的系统的时候,从任意一个摄像机中读取或下载该摄像机保存的地图信息,由于每个摄像机保存的地图信息都是在与其他摄像机协商或交互之后完成的,因此各个摄像机保存的地图信息为相同的,因此,用户可以从任意一个摄像机读取或下载的地图信息。进一步地,在用户获取到地图信息之后,可以在地图信息中进行目标点的选取,进而可以生成目标点选取信息,关于生成目标点选取信息的方式、任意一个摄像机接收到目标点选取信息的后续处理在前述实施例已经详述,这里不做重复说明。
上述处理方式可以通过每一个摄像机获取自身各个角度下采集的二维图像及其对应的深度信息(或称为深度图)来生成每一个摄像机自身对应的世界坐标系下的子点云地图;进而每一个摄像机均根据其他摄像机发来的其他子点云地图以及自身的子点云地图进行合并,如此循环处理,直至任意一个摄像机完成全部摄像机的子点云地图的合并之后就可以得到目标空间内的世界坐标系下的地图信息。这样,同一网络下的多个摄像机相互之间交换各自根据位置信息、姿态信息以及自身探测到的二维图像生成对应的子点云地图,进而自底向上的还原出所在目标空间内的各自周边的部分或完整的空域的地图信息,从而可以使得摄像机系统中的任意一个摄像机都可以生成地图信息,从而避免某一个摄像机故障且只有该摄像机具备当前目标空间内的地图信息的情况下,无法获取当前目标空间的地图的问题;另外,这样的处理方式每一个摄像机负责生成自身的世界坐标系下的子点云地图,从而可以将最基础的地图生成以及转换工作分发至各个摄像机来处理,避免由一个主控节点来进行地图生成所带来的处理数据量较大以及处理效率无法提升等问题。
需要指出,前述实施例中均提到第一摄像机接收信息或第一摄像机发送信息等处理,在M个摄像机中任意一个摄像机都会需要向其他摄像机发送信息或接收信息,关于上述任意一个摄像机发送或接收信息的处理进行说明如下:
任意一个摄像机向其他摄像机发送信息(或通知)的方式可以是以消息为通信的基本单位。每条消息都是以洪泛通信模式向周边节点设备发送,当某个摄像机节点收到消息之后,会将收到的消息再次广播出去,这样可以保证任意一个摄像机发送的任意一个消息或信息能够快速的传递至M个摄像机中的任意一个其他摄像机中。
每一条消息都带有唯一标识符(比如可以根据摄像机的序列号、消息类型、时间戳中的至少一种生成该位移标识符),如果某个摄像机节点收到重复的消息,只有第一次会对该消息进行处理(以及转发),后续再受到相同消息时则直接丢弃。这样可以防止一个消息在M个摄像机所组成的网络中无限传递。
通过消息在M个摄像机所组成的网络之间的广播和转发,任意两个摄像机节点如果相互之间由于距离较远或者由于信号阻隔而无法直接联系时,可以通过网络内的其他摄像机节点帮助转发消息而实现间接通讯。比如,图1示意出的场景中,摄像机1与摄像机4之间的距离较远,则可以通过摄像机2或摄像机3进行消息的转发。
上述消息可以分为以下几种类型:元信息以及通讯消息(或称为通讯信息)。
其中,所述元信息,用于摄像机节点之间维系系统运行所发布的信息,包括但不限于:节点自身的基本消息以及心跳信息(或心跳消息)。
所述节点自身的基本消息,例如节点的标识符,位置信息等等;通过这些信息,摄像机节点可以感知到系统中其他节点的存在以及相关信息。
所述心跳信息(或心跳消息),用于通知系统中其他摄像机(或摄像机节点),自身运行状态正常。在M个摄像机所组成的系统中,各个摄像机之间会定期广播发布自身状态及信息变更,当某个摄像机(或摄像机节点)超过一定时长(比如超过预设的时长阈值)后都没有发送心跳信息时,其余摄像机可以感知到或确定该摄像机出现了故障。
所述通讯消息(或通讯信息)为任意两个摄像机(或摄像机节点)节点之间相互通讯时发送的消息。
本公开实施例提供了一种第一摄像机,如图11所示,包括:
初始处理模块1101,用于在为第一类主控节点的情况下,基于目标点在地图信息中的位置以及M个摄像机的内参,确定所述M个摄像机中每个摄像机的至少一个可监控目标点集合;其中,所述每个摄像机的至少一个可监控目标点集合中不同的可监控目标点集合对应不同的可视角度,且每个可监控目标点集合中包含在当前可视角度下同时监控的目标点;所述M个摄像机中包含所述第一摄像机;所述地图信息为在世界坐标系下所述M个摄像机所在的目标空间的地图信息;M为大于等于2的整数;
遍历处理模块1102,用于基于所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理,得到目标点覆盖集合;其中,所述目标点覆盖集合中包含所述每个摄像机的一个目标监控角度及其对应的目标点,且所述目标点覆盖集合中不同摄像机所对应的目标点至少部分不同;K为大于等于1的整数;
指令生成模块1103,用于基于所述目标点覆盖集合,生成所述每个摄像机对应的控制指令;其中,所述每个摄像机对应的控制指令用于指示所述每个摄像机调整至对应的目标监控角度;
通信模块1104,用于发送除所述第一摄像机之外的M-1个其他摄像机对应的控制指令;
控制模块1105,用于基于自身对应的控制指令调整至目标监控角度。
在一种实施方式中,所述第一摄像机还包括:
判断模块1106,用于在确定自身满足第一预设条件的情况下,确定自身为第一类主控节点;
其中,所述第一预设条件,包括以下至少之一:
在所述M个摄像机中最早接收到目标点选取信息;
在所述M个摄像机中最早接收到目标点选取信息且序列号最小;
发送作为第一类主控节点的广播信息且接收到其他摄像机反馈的确认信息;
接收到终端设备发来的设置为第一类主控节点的控制指令。
在一种实施方式中,所述初始处理模块1101,用于执行以下之一:
若接收到终端设备发送的目标点选取信息,则从所述目标点选取信息中获取在所述地图信息中的一个或多个目标点;
若未接收到终端设备发送的目标点选取信息,则将在所述地图信息中所述M个摄像机的位置所组成的形状的中心点作为目标点。
在一种实施方式中,所述初始处理模块1101,用于基于目标点在地图信息中的位置、所述M个摄像机中的每个摄像机的内参、所述每个摄像机在地图信息中的位置、障碍物在所述地图信息中的位置,确定所述每个摄像机在至少一个可视角度下分别对应的可监控目标点集合。
在一种实施方式中,所述初始处理模块1101,用于基于第i个摄像机的内参以及所述第i个摄像机在地图信息中的位置,确定所述第i个摄像机的至少一个候选可视角度中每个候选可视角度在地图信息中对应的覆盖范围;其中,i为大于等于1且小于等于M的整数;
基于所述第i个摄像机的所述每个候选可视角度在地图信息中的覆盖范围、所述目标点在地图信息中的位置以及所述障碍物在地图信息中的位置,确定所述第i个摄像机同时监控到一个或多个目标点的至少一个可视角度;
基于所述第i个摄像机在至少一个可视角度中每个可视角度下同时监控到的所述一个或多个目标点,生成所述第i个摄像机在至少一个可视角度下分别对应的可监控目标点集合。
在一种实施方式中,所述遍历处理模块1102,用于对所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理分别得到K个已覆盖集合;从所述K个已覆盖集合中选取覆盖目标点的数量最多的一个已覆盖集合作为所述目标点覆盖集合。
在一种实施方式中,所述遍历处理模块1102,用于对所述每个摄像机的至少一个可监控目标点集合进行第q次遍历处理,得到第q个已覆盖集合;q为大于等于1且小于等于K的整数;从所述第q个已覆盖集合以及历史已覆盖集合中选取一个作为新的历史已覆盖集合;在确定第q次遍历处理为最后一次遍历处理的情况下,将所述新的历史已覆盖集合作为所述目标点覆盖集合。
在一种实施方式中,所述遍历处理模块1102,用于在所述第一摄像机确定所述第q个已覆盖集合中包含的目标点的数量大于所述历史已覆盖集合中包含的目标点的数量的情况下,删除历史已覆盖集合,将所述第q个已覆盖集合作为所述新的历史已覆盖集合;
在所述第一摄像机确定所述第q个已覆盖集合中包含的目标点的数量小于所述历史已覆盖集合中包含的目标点的数量的情况下,删除所述第q个已覆盖集合,将所述历史已覆盖集合作为所述新的历史已覆盖集合;
在所述第一摄像机确定所述第q个已覆盖集合中包含的目标点的数量等于所述历史已覆盖集合中包含的目标点的数量的情况下,将所述第q个已覆盖集合以及历史已覆盖集合中之一作为所述新的历史已覆盖集合。
在一种实施方式中,所述遍历处理模块1102,用于从所述M个摄像机中的未选取的摄像机中选取当前摄像机;
选取所述当前摄像机的未选取可监控目标点集合中之一作为当前可监控目标点集合;
在所述当前可监控目标点集合的至少部分目标点不包含在当前已覆盖集合的情况下,将所述当前可监控目标点集合添加至所述当前已覆盖集合中;
判断所述M个摄像机中是否存在未选取的摄像机,若不存在所述未选取的摄像机,则确定当前次遍历处理完成,将所述当前已覆盖集合作为本次遍历处理得到的已覆盖集合。
在一种实施方式中,所述指令生成模块1103,用于执行以下之一:
基于所述目标点覆盖集合中所述每个摄像机的目标监控角度,生成所述每个摄像机对应的控制指令;
根据所述每个摄像机的当前位姿信息确定所述每个摄像机的当前监控角度;基于所述每个摄像机的当前监控角度以及所述目标点覆盖集合中每个摄像机的目标监控角度,确定每个摄像机在至少一个方向的调整角度;基于所述每个摄像机在至少一个方向的调整角度,生成所述每个摄像机对应的控制指令。
在一种实施方式中,所述第一摄像机还包括:
故障处理模块1107,用于在第二摄像机出现故障的情况下,若自身满足第二预设条件,则作为第二类主控节点,基于目标点在地图信息中的位置以及L个摄像机的内参,生成所述L个摄像机中每个摄像机的调整指令;其中,L为大于等于2且小于M的整数;所述L个摄像机为所述M个摄像机中的部分摄像机,所述L个摄像机中包含所述第一摄像机且不包含第二摄像机;所述L个摄像机中每个摄像机的调整指令用于指示每个摄像机调整至对应的新的目标监控角度;
所述通信模块1104,用于发送L-1个摄像机对应的调整指令;
所述控制模块1105,用于基于自身对应的调整指令重新调整至新的目标监控角度;其中,所述L-1个摄像机中不包含所述第一摄像机且不包含第二摄像机。
在一种实施方式中,所述第二预设条件包括以下之一:
最先以广播的形式发送第二摄像机出现故障的消息;
在多个摄像机同时以广播的形式发送第二摄像机出现故障的消息的情况下,序列号最小的一个摄像机;
与所述第二摄像机之间的距离最近。
在一种实施方式中,所述第一摄像机还包括:
地图生成模块1108,用于获取至少一个候选可视角度下分别对应的世界坐标系下的分点云地图;将所述至少一个候选可视角度下分别对应的世界坐标系下的分点云地图进行合并,得到所述第一摄像机的子点云地图;在通过所述通信模块接收到M-1个其他摄像机分别发送的其他子点云地图的情况下,将自身的子点云地图以及所述M-1个其他摄像机对应的其他子点云地图分别进行合并得到所述地图信息。
在一种实施方式中,所述地图生成模块1108,用于在第j个候选可视角度下拍摄得到二维图像,并获取所述二维图像中每个像素点的深度信息;j为大于等于1的整数;其中,所述二维图像为摄像机坐标系下的图像;基于所述二维图像及所述二维图像中每个像素点的深度信息,生成所述第j个候选可视角度下的摄像机坐标系下的初始点云地图;基于自身的姿态信息以及位置信息,将所述第j个候选可视角度下的摄像机坐标系下的初始点云地图转换为世界坐标系下的分点云地图。
在一种实施方式中,所述地图生成模块1108,用于在自身的子点云地图与所述M-1个其他摄像机中第r个其他摄像机对应的其他子点云地图存在纹理特征相同的区域的情况下,计算所述自身的子点云地图与所述第r个其他摄像机对应的其他子点云地图中所述纹理特征相同的特征点的坐标之间的坐标差值;r为大于等于1且小于M的整数;
基于所述坐标差值计算得到合并地图的修正值,基于所述合并地图的修正值对所述自身的子点云地图以及所述第r个其他摄像机对应的其他子点云地图进行合并,得到更新后的自身的子点云地图;
确定所述M-1个其他摄像机中不存在未合并的其他子点云地图的情况下,将所述更新后的自身的子点云地图作为所述地图信息。
上述通信模块可以由图1中示意出的通信部件105来实现;初始处理模块、遍历处理模块、指令生成模块、控制模块、判断模块、故障处理模块、地图生成模块则可以由摄像机中的处理器来实现。
通过采用以上实施例提供的方案,就可以在任意一个摄像机作为主控节点的时候,根据全部摄像机的内参以及目标点在地图信息中的位置来确定每个摄像机的至少一个可监控目标点集合,其中,每个可监控目标点集合对应一个可视角度;再根据每个摄像机的至少一个可监控目标点集合确定目标点覆盖集合,进而基于覆盖目标点几个生成针对每个摄像机的控制指令,以使得每个摄像机均可以调整自身的角度。这样,就可以结合多个摄像机各自的状态以及用户关注的目标点灵活且高效的调整多个摄像机的角度,以保证得到最大限度的监控区域范围;并且,本实施例提供的方案可以由全部摄像机中的任意一个摄像机自动实现,从而避免由用户通过人工对多个摄像机一一进行配置所带来的效率较低且配置结果不够精确,以及配置结果无法保证最大限度的覆盖目标空间等问题。
本公开实施例还提供一种摄像机自协商监控处理系统,如图12所示,所述系统包括:M个摄像机;所述M个摄像机中包含第一摄像机1201以及M-1个其他摄像机1202;其中,
所述第一摄像机1201,用于在为第一类主控节点的情况下,基于目标点在地图信息中的位置以及M个摄像机的内参,确定所述M个摄像机中每个摄像机的至少一个可监控目标点集合;其中,所述每个摄像机的至少一个可监控目标点集合中不同的可监控目标点集合对应不同的可视角度,且每个可监控目标点集合中包含在当前可视角度下同时监控的目标点;所述M个摄像机中包含所述第一摄像机;所述地图信息为在世界坐标系下所述M个摄像机所在的目标空间的地图信息;M为大于等于2的整数;基于所述每个摄像机的至少一个可监控目标点集合进行K次遍历处理,得到目标点覆盖集合;其中,所述目标点覆盖集合中包含所述每个摄像机的一个目标监控角度及其对应的目标点,且所述目标点覆盖集合中不同摄像机所对应的目标点至少部分不同;K为大于等于1的整数;基于所述目标点覆盖集合,生成所述每个摄像机对应的控制指令;其中,所述每个摄像机对应的控制指令用于指示所述每个摄像机调整至对应的目标监控角度;发送除所述第一摄像机之外的M-1个其他摄像机对应的控制指令;基于自身对应的控制指令调整至目标监控角度;
所述M-1个其他摄像机1202,用于在接收到控制指令的情况下,基于所述控制指令将自身调整至对应的目标监控角度。
在一种实施方式中,所述系统还包括:
终端设备1203,用于所述M个摄像机中之一获取所述地图信息;在地图信息中选取一个或多个目标点,基于所述一个或多个目标点生成所述目标点选取信息;发送所述目标点选取信息;
所述第一摄像机1201,用于若接收到终端设备发送的目标点选取信息,则从所述目标点选取信息中获取在所述地图信息中的一个或多个目标点;若未接收到终端设备发送的目标点选取信息,则将在所述地图信息中所述M个摄像机的位置所组成的形状的中心点作为目标点。
另外,上述M个摄像机中的任意一个摄像机,比如第二摄像机,用于在心跳信息发送周期发送心跳信息;相应的,上述M个摄像机中的任意一个摄像机,比如除该第二摄像机之外的任意一个摄像机,还可以用于在预设时长内未检测到第二摄像机发送的心跳信息的情况下,确定第二摄像机发生故障。上述预设时长可以根据实际情况设置,比如可以大于心跳信息发送周期的时长。
通过采用以上实施例提供的方案,就可以在任意一个摄像机作为主控节点的时候,根据全部摄像机的内参以及目标点在地图信息中的位置来确定每个摄像机的至少一个可监控目标点集合,其中,每个可监控目标点集合对应一个可视角度;再根据每个摄像机的至少一个可监控目标点集合确定目标点覆盖集合,进而基于覆盖目标点几个生成针对每个摄像机的控制指令,以使得每个摄像机均可以调整自身的角度。这样,就可以结合多个摄像机各自的状态以及用户关注的目标点灵活且高效的调整多个摄像机的角度,以保证得到最大限度的监控区域范围;并且,本实施例提供的方案可以由全部摄像机中的任意一个摄像机自动实现,从而避免由用户通过人工对多个摄像机一一进行配置所带来的效率较低且配置结果不够精确,以及配置结果无法保证最大限度的覆盖目标空间等问题。
需要说明的是,本公开实施例中对各功能单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本公开的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本公开各个实施例提供的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
图13为根据本发明一实施例的摄像机的结构框图。如图13所示,该摄像机包括:存储器1310和处理器1320,存储器1310内存储有可在处理器1320上运行的计算机程序。存储器1310和处理器1320的数量可以为一个或多个。存储器1310可以存储一个或多个计算机程序,当该一个或多个计算机程序被该摄像机执行时,使得该摄像机执行上述方法实施例提供的方法。
该摄像机还包括:
通信接口1330,用于与外界设备进行通信,进行数据交互传输。
如果存储器1310、处理器1320和通信接口1330独立实现,则存储器1310、处理器1320和通信接口1330可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(PeripheralComponent Interconnect,PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture ,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1310、处理器1320及通信接口1330集成在一块芯片上,则存储器1310、处理器1320及通信接口1330可以通过内部接口完成相互间的通信。
本公开实施例还提供一种计算机可读存储介质,其存储有计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行上述方法实施例提供的摄像机自协商监控处理方法。
本公开实施例还提供一种计算机程序产品,所述计算机程序产品用于存储计算机程序,该计算机程序被计算机执行时,所述计算机可以实现上述方法实施例提供的摄像机自协商监控处理方法。
本公开实施例还提供一种芯片,所述芯片与存储器耦合,所述芯片用于实现上述方法实施例提供的摄像机自协商监控处理方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic Random Access Memory ,DRAM) 、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct RAMBUS RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、蓝牙、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。值得注意的是,本公开提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本公开实施例的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本公开的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本公开实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
在本公开实施例的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
以上所述仅为本公开的示例性实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。