法律状态公告日
法律状态信息
法律状态
2020-07-10
授权
授权
2019-05-07
实质审查的生效 IPC(主分类):G08G3/00 申请日:20181017
实质审查的生效
2019-04-12
公开
公开
技术领域
本发明涉及一种基于外接圆检测的船舶常见锚泊区边界自动提取方法。
背景技术
船舶交通管理系统Vessel Traffic System是用于管理船舶交通、保障船舶安全航行的信息管理系统。随着人类商业生产活动的增加,进行水面作业航行的船舶数量越来越多,如何针对越来越多的水面船舶利用VTS系统进行有效服务与监管,是各类海事部门面临的问题。在水上作业的船舶往往因为不同作业类型锚泊在某地,例如水面正常锚泊、打鱼、盗取海沙等等。如果可以对这些常见船舶锚泊区进行分类、监控,可以有效地保障水上船舶正常作业、打击违法行为、减少事故发生的风险。例如,货船在远离岸边的非锚泊区域停泊,该区域可能为自发锚泊区,系统标记后,如果有货船在非官方锚泊区和自发锚泊区静止,则可能是一个异常行为;渔船经常锚泊的区域可能是传统的打鱼区,如果有货船在该区域异常停泊,则可能是仿冒货船的渔船在进行违规打鱼作业。
但是不同类型的船舶,锚泊区往往也并不相同,辖区范围内的常见船舶锚泊区数量众多,且相同类型船舶的锚泊区也会随季节、时间发生变化。海事值班员依靠历史经验,想要手动提取船舶锚泊区,再根据时间不同进行人工更新会非常繁琐。
现在海事部门使用的VTS系统基本都可以接入AIS数据,利用VTS系统累积的船舶AIS历史数据,对船舶航行速度小于一定阈值的点,进行基于密度聚类的方法,可以得到锚泊的船舶锚泊点集,但是根据这些点集,并不能直接获得船舶锚泊区边界,从而对实时船舶进行有效地异常行为监测。本发明需要解决的问题就是根据这些船舶锚泊点集训练得到较为精细的船舶锚泊区边界。
常见的根据点集计算外接多边形边界的方法很多,但是都只适用于凸形外接多边形,例如Graham方法,Jarvis方法,极角旋转法等,这些方法算法简单训练速度快,但是对于一些凹形点集,往往会将凹形部分也包围进多边形内。而在VTS系统中,基于粗糙的边界进行的实时船舶监测会出现大量误判和漏判的问题,无法支持在海事系统中的应用。
发明内容
针对现有技术的不足,本发明提供了一种基于外接圆检测的船舶常见锚泊区边界自动提取方法,包括如下步骤:
步骤1,获取船舶锚泊点总集;
步骤2,对步骤1中得到的船舶锚泊点总集进行基于位置的密度聚类,得到船舶锚泊点点集;
步骤3,确定一个外接圆半径R,利用外接圆法自动提取步骤2得到的船舶锚泊点点集的边界线段集;
步骤4,判断边界线段集中所有的边界线段是否能够组成一个闭合的多边形,如果是,则该多边形为一个船舶锚泊点集的锚泊区边界;
步骤5,如果提取船舶锚泊区的边界失败,调整外接圆半径R,重复步骤3至步骤4,直到成功提取船舶锚泊区边界。
步骤1包括如下步骤:
步骤1-1,从数据库中导出目标船舶类型一段时间内,所有速度小于一定阈值的非连续锚泊点;
步骤1-2,将船舶位置点经纬度位置数据转换成球面墨卡托投影的位置数据。
步骤2中,使用DBSCAN的密度聚类方法,对船舶锚泊点总集中的点进行聚类。
步骤3包括如下步骤:
步骤3-1,对船舶锚泊点点集中的点两两取一个线段,并过滤掉长度大于2*R的线段,R表示外接圆半径;该外接圆是两个点在圆上,半径为R的外接圆,如果两点距离大于2R,则该外接圆不存在,无需计算其外接圆圆心位置。
步骤3-2,如果线段距离小于2*R,求出该线段的两个外接圆圆心C1、C2,遍历船舶锚泊点点集中除该线段两个端点外的所有点,计算其到这两个圆心C1、C2的距离,如果两个外接圆中有任意一个外接圆不包含其他任何点,则该线段就是该船舶锚泊点点集的外接多边形的边界。
步骤3-2中,采用如下方法两个外接圆圆心C1、C2:
求出该线段P1P2的方向向量v1,v1为该线段两个端点坐标之差,v1=p1-p2,p1和p2分别表示线段端点P1的坐标和端点P2的坐标,同时线段P1P2的中点坐标为Pmid=0.5*(p1+p2);
根据向量垂直时点积为0的性质,求出线段P1P2的垂直向量v2;
已知线段P1P2的长度和外接圆半径,根据勾股定理求出圆心到线段的距离dist;最后计算出两个外接圆圆心,圆心C1=Pmid+dist*v2;圆心C2=Pmid-dist*v2。
步骤3-2中,如果船舶锚泊点点集内除线段端点外所有点到外接圆圆心C1的距离都大于外接圆半径R,则该线段为外接多边形边界;如果到C1的距离不全大于R,再计算除端点外所有点到外接圆圆心C2的距离,如果都大于外接圆半径R,则该线段同样为外接多边形边界;如果到C2的距离也不全大于R,则该线段不是外接多边形的边界,将外接多边形边界线段组成边界线段集。
步骤4包括:从边界线段集中取出一条线段,将其两个端点作为多边形边界的第一点和第二点;然后在其余线段中寻找以第二点为一个端点的线段,该线段的另一个点,作为多边形边界的第三个点;再在其余线段中寻找以第三点为一个端点的线段,该线段的另一个点,作为多边形边界的第四个点;依次类推,直到最后一条线段的第二个端点正好为多边形边界的第一个点,形成一个闭合的多边形,则该多边形为船舶锚泊区的边界;在此过程中,如果在剩余线段中,找不到以多边形边界点为端点的线段,则提取船舶锚泊区的边界失败;如果多边形闭合,但边界线段集中还剩余其他线段待检测,则提取船舶锚泊区的边界失败。
有益效果:
海事辖区范围内,及时发现船舶的事故隐患和违章行为是海事监管人员的重要工作,其中有些种类的异常行为的标志是在非习惯锚泊区锚泊。而习惯船舶锚泊区数量众多,且相同类型船舶的锚泊区也会随季节、时间发生变化,海事值班员依靠历史经验,想要手动提取船舶锚泊区,再根据时间不同进行人工更新会非常繁琐。利用本发明可以自动提取近期辖区内船舶习惯锚泊区,以支撑系统自动发现在习惯锚泊区外停泊的船舶,并进行告警提示,帮助值班员及时高效地发现船舶异常行为,降低因事故导致的航行隐患。而普通点集边界提取方法往往精度不高,不支持凹多边形点集边界的提取,本发明采用的方法在平衡算法复杂度的情况下,支持凹多边形点集边界的提取,更适合该海事使用场景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1是外接圆法求点集外接多边形示意图。
图2是自动提取船舶锚泊区边界方法流程图。
图3是外接圆检测法边界提取效果对比图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本发明提出了一种基于外接圆检测的方法来进行船舶常见锚泊区边界提取的方法,利用该方法可以得到较为精细的船舶锚泊区边界。该方法通过计算锚泊点两两间,指定半径的外接圆是否包含其他点的方法,判断两点是否为边界点,从而确定锚泊点边界,如图1所示。该方法关键在于外接圆半径R不好确定,半径R若取大了,则外接多边形边界不够精细;而半径R取小了,则外接多边形边界可能无法闭合。本发明通过反向训练半径的方法,自动训练合适的外接圆半径参数R,取得了一个较好的船舶锚泊区边界的效果。
本发明的目的在于提供一种基于外接圆检测的船舶常见锚泊区边界自动提取的方法。从数据库中导出辖区内一段时间的某一类型船舶的AIS航迹动态点,并对这些点进行位置投影变换后进行基于密度的聚类。然后初设一个半径值R,对得到的点集中的点进行两两计算,先判断两点连成的线段长度是否大于一个阈值,该值为2倍的R,如果大于就跳过,如果小于该阈值就求这条线段半径值为R的两个外接圆圆心,再遍历点集中其他点,判断点集中的其他点是否在圆内。如果这线段的外接圆中有任意一个内不包含任何其他点,那么这条线段作为船舶锚泊区边界上的线段,存入边界线段集中。遍历边界线段集中所有线段,检验是否能形成一个闭合多边形,如果可以则获取到了船舶锚泊点集的边界;如果不能,那么调整外接圆半径R,为其增加一个步长,继续训练检验,直到符合的线段集可以形成闭合多边形,则获得船舶锚泊区边界。
如图2所示,本发明方法步骤如下:
步骤1,获取船舶锚泊点总集。
1-1从数据库中导出目标船舶类型一段时间内,所有速度小于一定阈值的非连续锚泊点;
VTS系统将船舶AIS中的船舶静态信息和动态信息存入数据库中,根据需要,如需分析货船常见锚泊区就导出货船类型,渔船常见锚泊区就导出渔船类型,从数据库中过滤出辖区内一段时间内,一般分析周期不超过1个月,航行速度小于0.05节的船舶动态点数据作为船舶锚泊总集中的点。同一艘船舶,按时间排序,若有连续多个点都是锚泊点,则只取第一个点作为船舶锚泊点总集中的点。船舶锚泊点数据包含锚泊点的经纬度位置信息。
1-2船舶位置点经纬度位置数据转换成球面墨卡托投影的位置数据。
AIS上报的船舶位置信息一般以经纬度坐标的方式记录,该数值在水平和垂直方向代表的单位距离并不相同,离赤道越远差别越大。利用锚泊点位置进行平面几何计算前需要转换为水平投影的方式进行数据计算。一般海事领域使用墨卡托投影,再考虑到计算效率,本发明采用球面墨卡托投影的方式,将锚泊点总集中的位置信息由经纬度数据转换为单位为米的位置数据。锚泊点横、纵坐标分别为到0度经度和0度纬度相交点的距离。
步骤2,对步骤1中得到的船舶锚泊点总集进行基于位置的密度聚类,得到若干个船舶锚泊点点集。
本发明使用DBSCAN的密度聚类方法,对船舶锚泊点总集中的点进行聚类,该方法计算可以对任意形状的稠密数据集进行聚类,不是只适用于凸数据集,并且可以在聚类的同时发现异常点,对数据集中的异常点不敏感。根据经验,本发明中使用的最小领域参数与船舶类型有关,货船为100米,渔船为50米,最小领域点数为50。
步骤3,确定一个外接圆半径R,利用外接圆法自动提取步骤2中每一个锚泊点点集的边界线段集。
3-1对点集中的点两两取一个线段,并过滤掉长度大于2*R的线段;
若点集内的锚泊点个数为N,则可组成N*(N-1)个线段,遍历这些线段并过滤线段长度,如果线段长度大于或等于外接圆直径2R,那么直接跳过这条线段检测下一个线段,这样可以大量减少待检测的线段,有效提高边界提取效率。外接圆半径R的初始值为步骤2中最小领域参数的一半,即货船为50米,渔船未25米,之后以步骤5中,调整后的值为准。
3-2如果线段长度小于2*R,求出该线段的两个外接圆圆心C1、C2;
首先求出该线段P1P2的方向向量v1,v1为该线段两个端点坐标之差,v1=p1-p2,同时线段P1P2的中点坐标为Pmid=0.5*(p1+p2);然后根据向量垂直时点积为0的性质,求出线段P1P2的垂直向量v2;接着已知线段P1P2的长度和外接圆半径,根据勾股定理,可求出圆心到线段的距离dist;最后计算出两个外接圆圆心,圆心C1=Pmid+dist*v2;圆心C2=Pmid-dist*v2。
3-3遍历点集中除该线段两个端点外的所有点,计算其到这两个圆心C1、C2的距离;
3-4如果两个外接圆中有任意一个外接圆不包含其他任何点,那么该线段就是该点集的外接多边形的边界。
如果点集内除线段端点外所有点到外接圆圆心C1的距离都大于外接圆半径R,那么该线段为外接多边形边界;如果到C1的距离不全大于R,那么再计算除端点外所有点到外接圆圆心C2的距离,如果都大于外接圆半径R,那么该线段同样为外接多边形边界;如果到C2的距离也不全大于R,那么该线段不是外接多边形的边界。
步骤4,判断步骤3中边界线段集中所有的边界线段是否可组成一个闭合的多边形,如果可以那么该多边形为一个船舶锚泊点集的锚泊区边界。
一个闭合多边形中每一个端点,必是两个边界线段的共同端点,利用该特性,从步骤3得到的边界线段集中取出一条线段,将其两个端点作为多边形边界的第一点和第二点;然后在其余线段中寻找以第二点为一个端点的线段,该线段的另一个点,作为多边形边界的第三个点;再在其余线段中寻找以第三点为一个端点的线段,该线段的另一个点,作为多边形边界的第四个点;依次类推,直到最后一条线段的第二个端点正好为多边形边界的第一个点,形成一个闭合的多边形。那么该多边形为船舶锚泊区的边界。在此过程中,如果在剩余线段中,找不到以多边形边界点为端点的线段,则提取船舶锚泊区的边界失败;如果多边形闭合,但边界线段集中还剩余其他线段待检测,那么同样提取船舶锚泊区的边界失败。
步骤5,如果提取船舶锚泊区的边界失败,那么调整外接圆半径R,重复步骤3至步骤4,直到成功提取船舶锚泊区边界。
如果提取船舶锚泊区的边界失败,那么调整外接圆半径R,令新的半径R’等于原半径R加上步长D,本发明中,步长D为步骤2中最小领域参数的五分之一,即货船为20米,渔船为10米,然后重复步骤3至步骤4,直到成功提取船舶锚泊区边界。
如图3所示为外接圆法所提取的船舶凹形锚泊区边界线与Graham法提取的边界线效果对比图。
通过本发明方法获取船舶锚泊区边界后,可以VTS系统通过对货船的状态进行判定,例如,货船在远离岸边的非锚泊区域停泊,该区域可能为自发锚泊区,系统标记后,如果有货船在非官方锚泊区和自发锚泊区静止,则可能是一个异常行为;渔船经常锚泊的区域可能是传统的打鱼区,如果有货船在该区域异常停泊,则可能是仿冒货船的渔船在进行违规打鱼作业。
本发明提供了一种基于外接圆检测的船舶常见锚泊区边界自动提取方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
机译: 红外接收机具有一个自动增益控制电路,用于选择性地对噪声和输入信号进行充电/放电,以及一种输入信号和一种自动增益控制方法,特别是针对选择性地控制充电电流和放电电流以及放电电流的方法
机译: 一种针对零排放区的混合动力船舶故障的自动鲁棒电气系统及其方法
机译: 自动压载装置,一种自动压载方法以及一种具有能够减少船舶燃料消耗的自动压载装置的船舶