CN116071694B - 船舶检测方法、装置及计算机可读存储介质 - Google Patents
船舶检测方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116071694B CN116071694B CN202310210036.1A CN202310210036A CN116071694B CN 116071694 B CN116071694 B CN 116071694B CN 202310210036 A CN202310210036 A CN 202310210036A CN 116071694 B CN116071694 B CN 116071694B
- Authority
- CN
- China
- Prior art keywords
- clustering
- class
- targets
- target
- point cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 78
- 230000009467 reduction Effects 0.000 claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims description 27
- 238000001914 filtration Methods 0.000 claims description 27
- 238000007781 pre-processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 32
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 abstract description 26
- 238000010586 diagram Methods 0.000 abstract description 11
- 239000013256 coordination polymer Substances 0.000 description 58
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000007123 defense Effects 0.000 description 4
- 241000272496 Galliformes Species 0.000 description 2
- 241000192710 Microcystis aeruginosa Species 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 239000007921 spray Substances 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
-
- G06T3/06—
-
- G06T3/08—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/255—Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Abstract
本发明实施例公开了一种船舶检测方法、装置及计算机可读存储介质,其中,该方法包括:对点云数据进行降维,并对Z=0平面及Y=0平面中的点云数据进行栅格化及聚类,根据聚类后的聚类目标确定点云数据中的三维聚类目标,以实现精度复原;对多个三维聚类目标进行连接后得到连通图,根据连通图中的每个三维聚类目标的连通关系确定属于同一船舶的三维聚类目标,并将这些三维聚类目标的连通范围确定为船舶的外切长方体,后续根据检测结果对船舶进行拍摄。本实施例以更低的耗时、更低的调试成本、更高的精度,完成对水上大范围船舶行驶检测。
Description
技术领域
本发明涉及船舶识别领域,尤其涉及一种船舶检测方法、装置及计算机可读存储介质。
背景技术
传统的点云目标检测算法通常采用降采样-滤波-聚类-目标跟踪。但应用于大范围、高精度的船舶行驶检测时,会有以下难点:
1、由于远处激光扫描在远处会发生精度衰减,则远处点间的间隔将远大于近处,从而无法对远处和近处采用统一参数下的滤波和聚类。
2、传统算法大多采用欧式聚类,欧式聚类的速度受距离阈值影响大,距离阈值小时速度快而不能很好的聚类远处的点,距离阈值大时可以聚类远处的点但速度慢,无法在0.5s/帧的速度要求下完成运算。
3、欧式聚类对噪点敏感,所以需要再计算时进行滤波以去除离散点,如常用的统计滤波,在防区内既有近处船只又有远处船只时,远处的船头或吃水较深的船只或受前方船只遮挡的船容易被过滤。
针对现有技术中存在的以上问题,目前还没有一个有效的解决方法。
发明内容
为解决上述问题,本发明提供一种船舶检测方法、装置及计算机可读存储介质,通过降维、降低精度来减少运算数据的数量,快速获得聚类所在的长方体范围(低精度)后,再对范围内点求外切长方体(复原精度),完成对聚类目标的提取,以提高数据处理速度,且在不进行滤波或滤波程度较小的情况下,快速的完成聚类并维持聚类的精度,以完成后续的目标跟踪。
为达到上述目的,本发明提供了一种船舶检测方法,包括:S1、获取当前帧的原始点云数据,对所述原始点云数据进行预处理得到目标点云数据;S2、将所述目标点云数据分别投影在坐标系的Z=0平面及Y=0平面,得到第一点云数据集及第二点云数据集;其中,所述坐标系以激光雷达所在位置为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向;S3、分别对所述第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集;S4、对于所述第一聚类目标集中的任一第一聚类目标,在第二聚类目标集中匹配与该第一聚类目标的x范围有交集的第二聚类目标,根据每个第一聚类目标的范围及匹配到的第二聚类目标的范围,在目标点云数据中切割对应的三维聚类目标;S5、将体积小于预设聚类体积阈值的三维聚类目标记为一类聚类目标,将体积大于或等于预设聚类体积阈值的三维聚类目标记为二类聚类目标,根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系;S6、为上一帧中的每个船舶的外切长方体匹配最近二类聚类目标,将最近二类聚类目标对应的连通关系中,符合预设条件的一类聚类目标及其他二类聚类目标归入对应船舶的最新外切长方体;S7、将未匹配成功的二类聚类目标的中心点分别作为新船舶的外切长方体的中心点,将对应连通关系中符合预设条件的一类聚类目标及其他二类聚类目标归入新船舶的外切长方体。
进一步可选的,所述分别对所述第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集,其中将任一点云数据集作为当前点云数据集进行栅格化及栅格密度聚类,包括:S301、对所述当前点云数据集进行栅格化得到多个栅格,对每个栅格再次进行栅格化得到多个子栅格,统计每个栅格中存在点云数据的子栅格的数量,记为子栅格数量值;S302、根据所述子栅格数量值、栅格密度阈值及基准半径计算得到每个栅格对应的给定半径;S303、统计给定半径内对应栅格的点云数据密度;S304、根据每个栅格的点云数据密度对所有栅格进行密度聚类,得到当前点云数据集对应的聚类目标集。
进一步可选的,所述根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系,包括:S501、对于任一二类聚类目标,统计距其小于预设距离阈值的匹配一类聚类目标及匹配二类聚类目标;S502、将当前二类聚类目标分别与其匹配一类聚类目标及匹配二类聚类目标进行连接;S503、重复步骤S501-S502直至所有二类聚类目标均完成连接,得到每个二类聚类目标对应的连通关系。
进一步可选的,所述为上一帧中的每个船舶的外切长方体匹配最近二类聚类目标,将最近二类聚类目标对应的连通关系中,符合预设条件的一类聚类目标及其他二类聚类目标归入对应船舶的最新外切长方体,包括:S601、对于上一帧中的任一船舶,提取其外切长方体的中心点,计算所有二类聚类目标与该中心点的距离,选取距离最小的二类聚类目标作为当前船舶对应的最近二类聚类目标;S602、按与最近二类聚类目标的距离从小到大的顺序,将所述最近二类聚类目标连接的一类聚类目标及其它二类聚类目标依次归入当前船舶的最新外切长方体,直至该最新外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时体积大于预设最小体积阈值;S603、当最近二类聚类目标对应的连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时,最新外切长方体的体积小于预设最小体积阈值,则释放最新外切长方体中所有的二类聚类目标及一类聚类目标。
进一步可选的,所述将未匹配成功的二类聚类目标分别作为新船舶的外切长方体的中心点,将对应连通关系中符合预设条件的一类聚类目标及其他二类聚类目标归入新船舶的外切长方体;S701、按未匹配成功的二类聚类目标的xmin由小到大的顺序,依次将未匹配成功的二类聚类目标的中心点作为新船舶的外切长方体的中心点;S702、对于任一未匹配成功的二类聚类目标,按与其距离从小到大的顺序,将对应连通关系中的一类聚类目标及其它二类聚类目标依次归入新船舶的外切长方体,直至该外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时体积大于预设最小体积阈值;S703、若连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时,新船舶的外切长方体的体积小于预设最小体积阈值,则释放该外切长方体中所有的二类聚类目标及一类聚类目标。
进一步可选的,所述对所述原始点云数据进行预处理得到目标点云数据,包括:S101、对所述原始点云数据进行体素网格降采样,得到所述目标点云数据;或,S102、对所述原始点云数据进行体素网格降采样后进行滤波,得到所述目标点云数据。
另一方面,本发明还提供了一种船舶检测装置,包括:数据预处理模块,用于获取当前帧的原始点云数据,对所述原始点云数据进行预处理得到目标点云数据;降维模块,用于将所述目标点云数据分别投影在坐标系的Z=0平面及Y=0平面,得到第一点云数据集及第二点云数据集;其中,所述坐标系以激光雷达所在位置为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向;聚类模块,用于分别对所述第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集;升维模块,用于对于所述第一聚类目标集中的任一第一聚类目标,在第二聚类目标集中匹配与该第一聚类目标的x范围有交集的第二聚类目标,根据每个第一聚类目标的范围及匹配到的第二聚类目标的范围,在目标点云数据中切割对应的三维聚类目标;连通关系计算模块,用于将体积小于预设聚类体积阈值的三维聚类目标记为一类聚类目标,将体积大于或等于预设聚类体积阈值的三维聚类目标记为二类聚类目标,根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系;第一船舶确定模块,用于为上一帧中的每个船舶的外切长方体匹配最近二类聚类目标,将最近二类聚类目标对应的连通关系中,符合预设条件的一类聚类目标及其他二类聚类目标归入对应船舶的最新外切长方体;第二船舶确定模块,用于将未匹配成功的二类聚类目标的中心点分别作为新船舶的外切长方体的中心点,将对应连通关系中符合预设条件的一类聚类目标及其他二类聚类目标归入新船舶的外切长方体。
进一步可选的,所述聚类模块包括:栅格化子模块,用于对所述当前点云数据集进行栅格化得到多个栅格,对每个栅格再次进行栅格化得到多个子栅格,统计每个栅格中存在点云数据的子栅格的数量,记为子栅格数量值;给定半径计算子模块,用于根据所述子栅格数量值、栅格密度阈值及基准半径计算得到每个栅格对应的给定半径;密度统计子模块,用于统计给定半径内对应栅格的点云数据密度;密度聚类子模块,用于根据每个栅格的点云数据密度对所有栅格进行密度聚类,得到当前点云数据集对应的聚类目标集。
进一步可选的,所述连通关系计算模块,包括:距离计算子模块,用于对于任一二类聚类目标,统计距其小于预设距离阈值的匹配一类聚类目标及匹配二类聚类目标;连接子模块,用于将当前二类聚类目标分别与其匹配一类聚类目标及匹配二类聚类目标进行连接;循环子模块,用于控制重复距离计算子模块、连接子模块的步骤,直至所有二类聚类目标均完成连接,得到每个二类聚类目标对应的连通关系。
进一步可选的,所述第一船舶确定模块包括:最近二类聚类目标选取子模块,用于对于上一帧中的任一船舶,提取其外切长方体的中心点,计算所有二类聚类目标与该中心点的距离,选取距离最小的二类聚类目标作为当前船舶对应的最近二类聚类目标;最新外切长方体更新子模块,用于按与最近二类聚类目标的距离从小到大的顺序,将所述最近二类聚类目标连接的一类聚类目标及其它二类聚类目标依次归入当前船舶的最新外切长方体,直至该最新外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时体积大于预设最小体积阈值;第一判定子模块,用于当最近二类聚类目标对应的连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时,最新外切长方体的体积小于预设最小体积阈值,则释放最新外切长方体中所有的二类聚类目标及一类聚类目标。
进一步可选的,所述第二船舶确定模块包括:中心点选取子模块,用于按未匹配成功的二类聚类目标的xmin由小到大的顺序,依次将未匹配成功的二类聚类目标的中心点作为新船舶的外切长方体的中心点;外切长方体确定子模块,用于对于任一未匹配成功的二类聚类目标,按与其距离从小到大的顺序,将对应连通关系中的一类聚类目标及其它二类聚类目标依次归入新船舶的外切长方体,直至该外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时体积大于预设最小体积阈值;第二判定子模块,用于若连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时,新船舶的外切长方体的体积小于预设最小体积阈值,则释放该外切长方体中所有的二类聚类目标及一类聚类目标。
另一方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的船舶检测方法。
上述技术方案具有如下有益效果:通过将点云数据降维后再还原的方式,得到每个船舶的外切长方体,在不进行滤波或滤波程度较小的前提下提高计算速度,并同时保证了船舶识别精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的船舶检测方法的流程图;
图2是本发明实施例提供的聚类过程的示意图;
图3是本发明实施例提供的连通关系的示意图;
图4是本发明实施例提供的栅格化方法的流程图;
图5是本发明实施例提供的聚类方法的流程图;
图6是本发明实施例提供的船舶更新方法的流程图;
图7是本发明实施例提供的新船舶确定方法的流程图;
图8是本发明实施例提供的点云数据预处理方法的流程图;
图9是本发明实施例提供的船舶检测装置的结构示意图;
图10是本发明实施例提供的聚类模块的结构示意图;
图11是本发明实施例提供的连通关系计算模块的结构示意图;
图12是本发明实施例提供的第一船舶确定模块的结构示意图;
图13是本发明实施例提供的第二船舶确定模块的结构示意图。
附图标记:100-数据预处理模块;200-降维模块;300-聚类模块;3001-栅格化子模块;3002-给定半径计算子模块;3003-密度统计子模块;3004-密度聚类子模块;400-升维模块;500-连通关系计算模块;5001-距离计算子模块;5002-连接子模块;5003-循环子模块;600-第一船舶确定模块;6001-最近二类聚类目标选取子模块;6002-最新外切长方体更新子模块;6003-第一判定子模块;700-第二船舶确定模块;7001-中心点选取子模块;7002-外切长方体确定子模块;7003-第二判定子模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术中存在的问题,本发明实施例提供了一种船舶检测方法,图1是本发明实施例提供的船舶检测方法的流程图,如图1所示,该方法包括:
S1、获取当前帧的原始点云数据,对原始点云数据进行预处理得到目标点云数据;
激光雷达进行扫描时,每一帧扫描数据由点云数据组成,点云数据是指在一个三维坐标系统中的一组向量的集合。
在当前时刻获取激光雷达的扫描数据,即当前帧,当前帧中的未处理的点云数据为原始点云数据。
作为一种选的实施方式,激光雷达扫描的速度为0.5s/帧-1s/帧,扫描范围为15°-1000米扇形区域,精度为0.01m-0.05m。
对原始点云数据进行数据预处理,例如降采样,或较小程度的滤波,得到目标点云数据,以降低数据量,提高数据处理效率。
S2、将目标点云数据分别投影在坐标系的Z=0平面及Y=0平面,得到第一点云数据集及第二点云数据集;其中,坐标系以激光雷达所在位置为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向;
本实施例中的三维坐标系以激光雷达所在点为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向。
在以上坐标系中对目标点云数据进行降维,具体的,分别计算目标点云数据在Z=0平面和Y=0平面的投影,得到第一点云数据集PflatZ和第二点云数据集PflatY。
在两个平面中的投影过程可进一步通过多线程加速以加快运算速度。
S3、分别对第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集;
对第一点云数据集进行栅格化及栅格密度聚类,得到的所有聚类结果(第一聚类目标objzn)组成第一聚类目标集ObjflatZ,其中objzn∈ObjflatZ。
对第二点云数据集进行相同的操作,得到所有第二聚类目标objym组成的第二聚类目标集ObjflatY,其中objym∈ObjflatY。
区别于通常的密度聚类,由于实际求取的是各个平面上的外接矩形,因此在某两个栅格加入聚类时,两个栅格之间的点也直接被归入聚类,因此,聚类完成后第一聚类目标集及第二聚类目标集中的每个聚类目标均为对应平面上的矩形范围。
例如,图2中栅格g1与栅格g2被归入聚类时,得到的最终聚类结果为矩形范围G。
分别从Y=0和Z=0平面进行栅格化,替代原有的离散点过滤,以及降低精度提高计算速度。
上述Z=0平面的聚类及Y=0平面的聚类可分别进行,也即在Z=0平面内的栅格聚类操作及在Y=0平面内的栅格聚类操作可在并行的两条线程上同时进行。S4、对于第一聚类目标集中的任一第一聚类目标,在第二聚类目标集中匹配与该第一聚类目标的x范围有交集的第二聚类目标,根据每个第一聚类目标的范围及匹配到的第二聚类目标的范围,在目标点云数据中切割对应的三维聚类目标;
对于每一个第一聚类目标objzn,匹配Obj’flatY={objy|objy的x范围与objzn的x范围有交集},得zmin=min(Rym.minz),zmax=min(Rym.maxz)。也即,匹配与当前第一聚类目标x范围有交集的多个第二聚类目标后,得到这些第二聚类目标中的最高点zmax及最低点zmin,最高点zmax及最低点zmin后续将分别作为对应三维聚类目标的最高点及最低点。
作为一种可选的实施方式,得到最高点zmax及最低点zmin之后,计算zmax-zmin的值,若该值小于预设高度阈值,则认为该目标为水花、漂浮物或其他异常目标,将该目标剔除不参与后续计算。
作为一种可选的实施方式,如果本次计算时存在实际水位数据zwater,则计算当前水位数据z’water=zwater+zoffset,其中zoffset表示人工设置的浮动值,通常取正值以过滤掉一些漂浮物、水花、水面反射;实际水位数据可通过水位计等获得。此时在当前水位数据及最低点zmin中选择更小的一个数据作为最终最低点zmin=min(z’water,zmin)。
根据第一聚类目标的端点坐标、匹配到的第二聚类目标的端点坐标、最高点zmax及最低点zmin确定三维聚类目标的范围Rn(p(xmin,ymin,zmin),p(xmax,ymax,zmax)),在目标点云数据集Psource中切割该范围内的点,将这些点组成三维聚类目标objn。
对每个第一聚类目标进行上述操作,得到三维聚类目标objn组成的集合Obj,即objn∈Obj。此处的每个三维聚类目标objn为长方体。
以上先聚类后切除水位的操作,区别于自动驾驶中常见的先剔除地面的操作,确保吃水深的船也能被检出。
根据降低精度后的坐标数据还原在目标点云数据中的三维聚类目标,实现精度再还原,减少聚类过程运算量的同时尽可能维持精度不变,本实施例中的求取目标由通常的求取点云聚类团转变为求取聚类所在的长方体。
上述匹配过程可进一步通过多线程加速以加快运算速度。
以上所有过程中原本最耗费时间的是聚类,而聚类难以通过多线程运算。本实施例通过降低候选点的数目来加快聚类的速度。而制作候选点PflatZ和PflatY虽然额外耗时,但是可以采用多线程加速,第一聚类目标集ObjflatZ和第二聚类目标objym也可以并行求取。
S5、将体积小于预设聚类体积阈值的三维聚类目标记为一类聚类目标,将体积大于或等于预设聚类体积阈值的三维聚类目标记为二类聚类目标,根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系;
将体积小于预设聚类体积阈值TargetSize(x,y,z)的三维聚类目标记为一类聚类目标LP,体积大于等于TargetSize(x,y,z)的三维聚类目标记为二类聚类目标CP。
对每一个二类聚类目标CP进行其它二类聚类目标CP及一类聚类目标LP的连接,通过距离的远近衡量一些聚类目标是否相关联(近似属于同一条船舶),将距离每个二类聚类目标CP较近的其它二类聚类目标CP与一类聚类目标LP进行连接,得到每个二类聚类目标CP的连通关系。
由于前述获得的聚类结果特化了对稀疏点的处理,所得的聚类结果会更加零碎。通过该预处理一方面过滤掉一些离散目标(如鸟、浮标等),一方面契合船头-船身-船尾的船型特点,即船头、船尾目标较大(CP),船中(LP)由于吃水可能体积较小并与船头发生了一定分离,可以通过该方法链接进CP(图3中的CP5和LP4)。
S6、为上一帧中的每个船舶的外切长方体匹配最近二类聚类目标,将最近二类聚类目标对应的连通关系中,符合预设条件的一类聚类目标及其他二类聚类目标归入对应船舶的最新外切长方体;
当激光雷达扫描的上一帧数据中的跟踪结果包括至少一个船舶目标时,获取每个船舶的外切长方体,对于任一船舶的外切长方体,计算与其距离最小的二类聚类目标CP,即最近二类聚类目标,并将连通关系中符合预设条件的一类聚类目标LP及其他二类聚类目标CP归入该船舶的最新外切长方体。例如,将距最近二类聚类目标预设范围内的LP与CP归入最新外切长方体中。此时,该最新外切长方体即为对应船舶在当前帧的外切长方体。
作为一种可选的实施方式,在某个船舶的位置更新后,可通过比较上一帧及当前帧中同一船舶外切长方体的位移,并结合两帧的采集时间间隔计算得到船舶的速度,根据上一帧及当前帧的点云数据变化计算船舶的方向。
S7、将未匹配成功的二类聚类目标的中心点分别作为新船舶的外切长方体的中心点,将对应连通关系中符合预设条件的一类聚类目标及其他二类聚类目标归入新船舶的外切长方体。
对于剩余的二类聚类目标,依次取其作为中心点,基于其连通关系将符合预设条件的一类聚类目标LP及其他二类聚类目标CP归入新船舶的外切长方体,说明该船舶在上一帧中未被检测出来,是一个新出现的船舶。
作为一种可选的实施方式,在进行目标跟踪后对当前帧中的船舶根据其驶离防区的剩余时间进行排序,对剩余时间较小的船舶进行优先拍摄。
例如,以激光雷达拍摄中心线为基准线,确定所有船舶距离该基准线的距离,驶向基准线的船舶中距离基准线最近的船舶赋予较高的权值,驶离基准线且未被拍摄的船舶赋予更高的权值,对权值较高的船舶进行优先拍摄。
由于算法最终增加了船只跟踪的精度,使得可以通过船只的位置进行云台拍摄——即使船只在激光防区外,仍可以进行拍摄,则对于江面多船只交汇时也有更多时间来逐一拍摄船舶。
作为一种可选的实施方式,图4是本发明实施例提供的栅格化方法的流程图,如图4所示,分别对第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集,其中将任一点云数据集作为当前点云数据集进行栅格化及栅格密度聚类,包括:
S301、对当前点云数据集进行栅格化得到多个栅格,对每个栅格再次进行栅格化得到多个子栅格,统计每个栅格中存在点云数据的子栅格的数量,记为子栅格数量值;
对于每个点云数据集均进行相同的操作,以第一点云数据集PflatZ为例,首先对PflatZ进行栅格化处理,将第一点云数据集PflatZ中的点云数据划入对应的栅格Grid(i,j)内,每个栅格Grid(i,j)的中心坐标p(i,j)(x,y,0)代表该栅格。
对PflatZ下位于每个栅格的点再次划分成的子栅格,统计PflatZ下在各子栅格是否有点,记有点的子栅格的数量Ngrid(i,j),即子栅格数量值。
记所有栅格组成栅格集Grid(i,j)∈GflatZ。
S302、根据子栅格数量值、栅格密度阈值及基准半径计算得到每个栅格对应的给定半径;
通过下式计算给定半径r(i,j):
其中,GDT表示栅格密度阈值,RD表示基准半径。
S303、统计给定半径内对应栅格的点云数据密度;
统计Grid(i,j)给定半径r(i,j)内的点云数据密度。
S304、根据每个栅格的点云数据密度对所有栅格进行密度聚类,得到当前点云数据集对应的聚类目标集。
对栅格集GflatZ中的栅格进行Ngrid(i,j)由大至小的排序,然后对栅格集GflatZ中的栅格进行密度聚类,每个聚类中最少含有MinPts个目标。
区别于通常的密度聚类,此时根据Ngrid(i,j)依次取点作为种子点。当Grid(i,j)的Ngrid(i,j)大于GDT时,则该栅格可以在后续聚类过程中作为种子点。
作为一种可选的实施方式,栅格大小、子栅格大小、栅格密度阈值GDT、基准半径RD会根据仪器在Z方向的精度和环境因素(海船船身上有部分涂料吸收激光,造成船只中部有裂隙,可视作Z方向的精度丢失)有所变化。
上述对每个平面中的子栅格划分及栅格密度的统计均可通过多线程加速以进一步提高运算速度。
作为一种可选的实施方式,图5是本发明实施例提供的聚类方法的流程图,如图5所示,根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系,包括:
S501、对于任一二类聚类目标,统计距其小于预设距离阈值的匹配一类聚类目标及匹配二类聚类目标;
S502、将当前二类聚类目标分别与其匹配一类聚类目标及匹配二类聚类目标进行连接;
S503、重复步骤S501-S502直至所有二类聚类目标均完成连接,得到每个二类聚类目标对应的连通关系。
每个二类聚类目标CP可以与x距离y距离均小于GapSize(x,y,z)的其它二类聚类目标CP或一类聚类目标LP直接连接,也可以通过x距离y距离均小于GapSize(x,y,z)的一类聚类目标LP连接到其他CP,以获得连通图CP∈Mapcp,连通图(图3)中包括多个连通关系。
作为一种可选的实施方式,图6是本发明实施例提供的船舶更新方法的流程图,如图6所示,为上一帧中的每个船舶的外切长方体匹配最近二类聚类目标,将最近二类聚类目标对应的连通关系中,符合预设条件的一类聚类目标及其他二类聚类目标归入对应船舶的最新外切长方体,包括:
S601、对于上一帧中的任一船舶,提取其外切长方体的中心点,计算所有二类聚类目标与该中心点的距离,选取距离最小的二类聚类目标作为当前船舶对应的最近二类聚类目标;
作为一种可选的实施方式,在该步骤之前,可对上一帧中的船舶进行排序,更新时间越近的越前,更新时间相同时,出现时间越早的越前,按该顺序依次取船舶进行匹配。
对任一船舶进行匹配时,首先获取距离船舶的外切长方体Rboatn的中心点最近的二类聚类目标CP,且该点为最新外切长方形的中心点。
S602、按与最近二类聚类目标的距离从小到大的顺序,将最近二类聚类目标连接的一类聚类目标及其它二类聚类目标依次归入当前船舶的最新外切长方体,直至该最新外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时体积大于预设最小体积阈值;
最近二类聚类目标CP可达的其它二类聚类目标CP或一类聚类目标LP,将根据欧式距离从小到大的顺序依次被归入该船舶的最新外切长方体Rboat’n,直到最新外切长方体Rboat’n大于预设单船体积阈值BoatSizeMax(x,y,z),或连通关系中所有聚类目标均归入最新外切长方体时最新外切长方体的体积大于预设最小体积阈值BoatSizeMin(x,y,z)。
由于实际检测过程中可能会出现两条船重叠的情况,此时若将最近二类聚类目标CP的连通关系中所有聚类目标均归入最新外切长方体中,会出现最新外切长方体囊括两条船的情况,从而造成误检。因此本实施例中船舶大小超过预设单船体积阈值后即停止其它聚类目标的归入,保证每个最新外切长方体均为单船的外切长方体。
S603、当最近二类聚类目标对应的连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时,最新外切长方体的体积小于预设最小体积阈值,则释放最新外切长方体中所有的二类聚类目标及一类聚类目标。
当最近二类聚类目标的连通关系中所有聚类目标均归入最新外切长方体中时,最新外切长方体Rboat’n仍然小于预设最小体积阈值BoatSizeMin(x,y,z)的,表示该最近二类聚类目标CP无效,释放所有已归入的CP或LP,该船只目标本次未发生更新。
作为一种可选的实施方式,图7是本发明实施例提供的新船舶确定方法的流程图,如图7所示,将未匹配成功的二类聚类目标分别作为新船舶的外切长方体的中心点,将对应连通关系中符合预设条件的一类聚类目标及其他二类聚类目标归入新船舶的外切长方体;
S701、按未匹配成功的二类聚类目标的xmin由小到大的顺序,依次将未匹配成功的二类聚类目标的中心点作为新船舶的外切长方体的中心点;
S702、对于任一未匹配成功的二类聚类目标,按与其距离从小到大的顺序,将对应连通关系中的一类聚类目标及其它二类聚类目标依次归入新船舶的外切长方体,直至该外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时体积大于预设最小体积阈值;
S703、若连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时,新船舶的外切长方体的体积小于预设最小体积阈值,则释放该外切长方体中所有的二类聚类目标及一类聚类目标。
作为一种可选的实施方式,预先对二类聚类目标CP使用xmin由小到大排序。
对于剩余的二类聚类目标CP,依次取其作为中心点,最近二类聚类目标CP可达的其它二类聚类目标CP或一类聚类目标LP,将根据欧式距离从小到大的顺序依次被归入新船舶的外切长方体,直到该新船舶的外切长方体的体积大于预设单船体积阈值BoatSizeMax(x,y,z),或是连通关系中所有聚类目标均归入新船舶的外切长方体时外切长方体的体积大于预设最小体积阈值BoatSizeMin(x,y,z)。
当作为中心点的二类聚类目标CP所属连通关系中所有聚类目标均归入外切长方体中时,外切长方体体积仍然小于预设最小体积阈值BoatSizeMin(x,y,z)的,表示该二类聚类目标CP无效,释放所有已归入的CP或LP。
作为一种可选的实施方式,图8是本发明实施例提供的点云数据预处理方法的流程图,如图8所示,对原始点云数据进行预处理得到目标点云数据,包括:
S101、对原始点云数据进行体素网格降采样,得到目标点云数据;
或,S102、对原始点云数据进行体素网格降采样后进行滤波,得到目标点云数据。
对原始点云数据进行体素网格降采样,体素网格的大小dgrid将决定最终结果的精度,一般会统一数据到0.02m,以避免近处数据过于密集。
若数据预处理时进行了体素网格降采样,那么后续进行栅格化时,栅格的大小通常在10×dgrid,仪器的精度衰减在最大处也将小于该大小;子栅格的大小通常为2×dgrid;基准半径RD通常为10×dgrid。
在检测范围较近(150米以内一定滤波,150-450米以内可选择是否滤波,450米以上不做滤波)或检测点有雨雪雾恶劣天气时,可以通过一定的滤波来过滤噪点,通常选择统计滤波。其他情况不进行滤波。
作为一种可选的实施方式,本发明实施例还提供了一种船舶检测装置,图9是本发明实施例提供的船舶检测装置的结构示意图,如图9所示,该装置包括:
数据预处理模块100,用于获取当前帧的原始点云数据,对原始点云数据进行预处理得到目标点云数据;
激光雷达进行扫描时,每一帧扫描数据由点云数据组成,点云数据是指在一个三维坐标系统中的一组向量的集合。
在当前时刻获取激光雷达的扫描数据,即当前帧,当前帧中的未处理的点云数据为原始点云数据。
作为一种选的实施方式,激光雷达扫描的速度为0.5s/帧-1s/帧,扫描范围为15°-1000米扇形区域,精度为0.01m-0.05m。
对原始点云数据进行数据预处理,例如降采样,或较小程度的滤波,得到目标点云数据,以降低数据量,提高数据处理效率。
降维模块200,用于将目标点云数据分别投影在坐标系的Z=0平面及Y=0平面,得到第一点云数据集及第二点云数据集;其中,坐标系以激光雷达所在位置为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向;
本实施例中的三维坐标系以激光雷达所在点为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向。
在以上坐标系中对目标点云数据进行降维,具体的,分别计算目标点云数据在Z=0平面和Y=0平面的投影,得到第一点云数据集PflatZ和第二点云数据集PflatY。
在两个平面中的投影过程可进一步通过多线程加速以加快运算速度。
聚类模块300,用于分别对第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集;
对第一点云数据集进行栅格化及栅格密度聚类,得到的所有聚类结果(第一聚类目标objzn)组成第一聚类目标集ObjflatZ,其中objzn∈ObjflatZ。
对第二点云数据集进行相同的操作,得到所有第二聚类目标objym组成的第二聚类目标集ObjflatY,其中objym∈ObjflatY。
区别于通常的密度聚类,由于实际求取的是各个平面上的外接矩形,因此在某两个栅格加入聚类时,两个栅格之间的点也直接被归入聚类,因此,聚类完成后第一聚类目标集及第二聚类目标集中的每个聚类目标均为对应平面上的矩形范围。
例如,图2中栅格g1与栅格g2被归入聚类时,得到的最终聚类结果为矩形范围G。
分别从Y=0和Z=0平面进行栅格化,替代原有的离散点过滤,以及降低精度提高计算速度。
上述Z=0平面的聚类及Y=0平面的聚类可分别进行,也即在Z=0平面内的栅格聚类操作及在Y=0平面内的栅格聚类操作可在并行的两条线程上同时进行。
升维模块400,用于对于第一聚类目标集中的任一第一聚类目标,在第二聚类目标集中匹配与该第一聚类目标的x范围有交集的第二聚类目标,根据每个第一聚类目标的范围及匹配到的第二聚类目标的范围,在目标点云数据中切割对应的三维聚类目标;
对于每一个第一聚类目标objzn,匹配Obj’flatY={objy|objy的x范围与objzn的x范围有交集},得zmin=min(Rym.minz),zmax=min(Rym.maxz)。也即,匹配与当前第一聚类目标x范围有交集的多个第二聚类目标后,得到这些第二聚类目标中的最高点zmax及最低点zmin,最高点zmax及最低点zmin后续将分别作为对应三维聚类目标的最高点及最低点。
作为一种可选的实施方式,得到最高点zmax及最低点zmin之后,计算zmax-zmin的值,若该值小于预设高度阈值,则认为该目标为水花、漂浮物或其他异常目标,将该目标剔除不参与后续计算。
作为一种可选的实施方式,如果本次计算时存在实际水位数据zwater,则计算当前水位数据z’water=zwater+zoffset,其中zoffset表示人工设置的浮动值,通常取正值以过滤掉一些漂浮物、水花、水面反射;实际水位数据可通过水位计等获得。此时在当前水位数据及最低点zmin中选择更小的一个数据作为最终最低点zmin=min(z’water,zmin)。
根据第一聚类目标的端点坐标、匹配到的第二聚类目标的端点坐标、最高点zmax及最低点zmin确定三维聚类目标的范围Rn(p(xmin,ymin,zmin),p(xmax,ymax,zmax)),在目标点云数据集Psource中切割该范围内的点,将这些点组成三维聚类目标objn。
对每个第一聚类目标进行上述操作,得到三维聚类目标objn组成的集合Obj,即objn∈Obj。此处的每个三维聚类目标objn为长方体。
以上先聚类后切除水位的操作,区别于自动驾驶中常见的先剔除地面的操作,确保吃水深的船也能被检出。
根据降低精度后的坐标数据还原在目标点云数据中的三维聚类目标,实现精度再还原,减少聚类过程运算量的同时尽可能维持精度不变,本实施例中的求取目标由通常的求取点云聚类团转变为求取聚类所在的长方体。
上述匹配过程可进一步通过多线程加速以加快运算速度。
以上所有过程中原本最耗费时间的是聚类,而聚类难以通过多线程运算。本实施例通过降低候选点的数目来加快聚类的速度。而制作候选点PflatZ和PflatY虽然额外耗时,但是可以采用多线程加速,第一聚类目标集ObjflatZ和第二聚类目标objym也可以并行求取。
连通关系计算模块500,用于将体积小于预设聚类体积阈值的三维聚类目标记为一类聚类目标,将体积大于或等于预设聚类体积阈值的三维聚类目标记为二类聚类目标,根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系;
将体积小于预设聚类体积阈值TargetSize(x,y,z)的三维聚类目标记为一类聚类目标LP,体积大于等于TargetSize(x,y,z)的三维聚类目标记为二类聚类目标CP。
对每一个二类聚类目标CP进行其它二类聚类目标CP及一类聚类目标LP的连接,通过距离的远近衡量一些聚类目标是否相关联(近似属于同一条船舶),将距离每个二类聚类目标CP较近的其它二类聚类目标CP与一类聚类目标LP进行连接,得到每个二类聚类目标CP的连通关系。
由于前述获得的聚类结果特化了对稀疏点的处理,所得的聚类结果会更加零碎。通过该预处理一方面过滤掉一些离散目标(如鸟、浮标等),一方面契合船头-船身-船尾的船型特点,即船头、船尾目标较大(CP),船中(LP)由于吃水可能体积较小并与船头发生了一定分离,可以通过该方法链接进CP(图3中的CP5和LP4)。
第一船舶确定模块600,用于为上一帧中的每个船舶的外切长方体匹配最近二类聚类目标,将最近二类聚类目标对应的连通关系中,符合预设条件的一类聚类目标及其他二类聚类目标归入对应船舶的最新外切长方体;
当激光雷达扫描的上一帧数据中的跟踪结果包括至少一个船舶目标时,获取每个船舶的外切长方体,对于任一船舶的外切长方体,计算与其距离最小的二类聚类目标CP,即最近二类聚类目标,并将连通关系中符合预设条件的一类聚类目标LP及其他二类聚类目标CP归入该船舶的最新外切长方体。例如,将距最近二类聚类目标预设范围内的LP与CP归入最新外切长方体中。此时,该最新外切长方体即为对应船舶在当前帧的外切长方体。
作为一种可选的实施方式,在某个船舶的位置更新后,可通过比较上一帧及当前帧中同一船舶外切长方体的位移,并结合两帧的采集时间间隔计算得到船舶的速度,根据上一帧及当前帧的点云数据变化计算船舶的方向。
第二船舶确定模块700,用于将未匹配成功的二类聚类目标的中心点分别作为新船舶的外切长方体的中心点,将对应连通关系中符合预设条件的一类聚类目标及其他二类聚类目标归入新船舶的外切长方体。
对于剩余的二类聚类目标,依次取其作为中心点,基于其连通关系将符合预设条件的一类聚类目标LP及其他二类聚类目标CP归入新船舶的外切长方体,说明该船舶在上一帧中未被检测出来,是一个新出现的船舶。
作为一种可选的实施方式,在进行目标跟踪后对当前帧中的船舶根据其驶离防区的剩余时间进行排序,对剩余时间较小的船舶进行优先拍摄。
例如,以激光雷达拍摄中心线为基准线,确定所有船舶距离该基准线的距离,驶向基准线的船舶中距离基准线最近的船舶赋予较高的权值,驶离基准线且未被拍摄的船舶赋予更高的权值,对权值较高的船舶进行优先拍摄。
由于算法最终增加了船只跟踪的精度,使得可以通过船只的位置进行云台拍摄——即使船只在激光防区外,仍可以进行拍摄,则对于江面多船只交汇时也有更多时间来逐一拍摄船舶。
作为一种可选的实施方式,图10是本发明实施例提供的聚类模块的结构示意图,如图10所示,聚类模块300包括:
栅格化子模块3001,用于对当前点云数据集进行栅格化得到多个栅格,对每个栅格再次进行栅格化得到多个子栅格,统计每个栅格中存在点云数据的子栅格的数量,记为子栅格数量值;
对于每个点云数据集均进行相同的操作,以第一点云数据集PflatZ为例,首先对PflatZ进行栅格化处理,将第一点云数据集PflatZ中的点云数据划入对应的栅格Grid(i,j)内,每个栅格Grid(i,j)的中心坐标p(i,j)(x,y,0)代表该栅格。
对PflatZ下位于每个栅格的点再次划分成的子栅格,统计PflatZ下在各子栅格是否有点,记有点的子栅格的数量Ngrid(i,j),即子栅格数量值。
记所有栅格组成栅格集Grid(i,j)∈GflatZ。
给定半径计算子模块3002,用于根据子栅格数量值、栅格密度阈值及基准半径计算得到每个栅格对应的给定半径;
通过下式计算给定半径r(i,j):
其中,GDT表示栅格密度阈值,RD表示基准半径。
密度统计子模块3003,用于统计给定半径内对应栅格的点云数据密度;
统计Grid(i,j)给定半径r(i,j)内的点云数据密度。
密度聚类子模块3004,用于根据每个栅格的点云数据密度对所有栅格进行密度聚类,得到当前点云数据集对应的聚类目标集。
对栅格集GflatZ中的栅格进行Ngrid(i,j)由大至小的排序,然后对栅格集GflatZ中的栅格进行密度聚类,每个聚类中最少含有MinPts个目标。
区别于通常的密度聚类,此时根据Ngrid(i,j)依次取点作为种子点。当Grid(i,j)的Ngrid(i,j)大于GDT时,则该栅格可以在后续聚类过程中作为种子点。
作为一种可选的实施方式,栅格大小、子栅格大小、栅格密度阈值GDT、基准半径RD会根据仪器在Z方向的精度和环境因素(海船船身上有部分涂料吸收激光,造成船只中部有裂隙,可视作Z方向的精度丢失)有所变化。
上述对每个平面中的子栅格划分及栅格密度的统计均可通过多线程加速以进一步提高运算速度。
作为一种可选的实施方式,图11是本发明实施例提供的连通关系计算模块的结构示意图,如图11所示,连通关系计算模块500包括:
距离计算子模块5001,用于对于任一二类聚类目标,统计距其小于预设距离阈值的匹配一类聚类目标及匹配二类聚类目标;
连接子模块5002,用于将当前二类聚类目标分别与其匹配一类聚类目标及匹配二类聚类目标进行连接;
循环子模块5003,用于控制重复距离计算子模块、连接子模块的步骤,直至所有二类聚类目标均完成连接,得到每个二类聚类目标对应的连通关系。
每个二类聚类目标CP可以与x距离y距离均小于GapSize(x,y,z)的其它二类聚类目标CP或一类聚类目标LP直接连接,也可以通过x距离y距离均小于GapSize(x,y,z)的一类聚类目标LP连接到其他CP,以获得连通图CP∈Mapcp,连通图(图3)中包括多个连通关系。
作为一种可选的实施方式,图12是本发明实施例提供的第一船舶确定模块的结构示意图,如图12所示,第一船舶确定模块600包括:
最近二类聚类目标选取子模块6001,用于对于上一帧中的任一船舶,提取其外切长方体的中心点,计算所有二类聚类目标与该中心点的距离,选取距离最小的二类聚类目标作为当前船舶对应的最近二类聚类目标;
作为一种可选的实施方式,在该步骤之前,可对上一帧中的船舶进行排序,更新时间越近的越前,更新时间相同时,出现时间越早的越前,按该顺序依次取船舶进行匹配。
对任一船舶进行匹配时,首先获取距离船舶的外切长方体Rboatn的中心点最近的二类聚类目标CP,且该点为最新外切长方形的中心点。
最新外切长方体更新子模块6002,用于按与最近二类聚类目标的距离从小到大的顺序,将最近二类聚类目标连接的一类聚类目标及其它二类聚类目标依次归入当前船舶的最新外切长方体,直至该最新外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时体积大于预设最小体积阈值;
最近二类聚类目标CP可达的其它二类聚类目标CP或一类聚类目标LP,将根据欧式距离从小到大的顺序依次被归入该船舶的最新外切长方体Rboat’n,直到最新外切长方体Rboat’n大于预设单船体积阈值BoatSizeMax(x,y,z),或连通关系中所有聚类目标均归入最新外切长方体时最新外切长方体的体积大于预设最小体积阈值BoatSizeMin(x,y,z)。
由于实际检测过程中可能会出现两条船重叠的情况,此时若将最近二类聚类目标CP的连通关系中所有聚类目标均归入最新外切长方体中,会出现最新外切长方体囊括两条船的情况,从而造成误检。因此本实施例中船舶大小超过预设单船体积阈值后即停止其它聚类目标的归入,保证每个最新外切长方体均为单船的外切长方体。
第一判定子模块6003,用于当最近二类聚类目标对应的连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时,最新外切长方体的体积小于预设最小体积阈值,则释放最新外切长方体中所有的二类聚类目标及一类聚类目标。
当最近二类聚类目标的连通关系中所有聚类目标均归入最新外切长方体中时,最新外切长方体Rboat’n仍然小于预设最小体积阈值BoatSizeMin(x,y,z)的,表示该最近二类聚类目标CP无效,释放所有已归入的CP或LP,该船只目标本次未发生更新。
作为一种可选的实施方式,图13是本发明实施例提供的第二船舶确定模块的结构示意图,如图13所示,第二船舶确定模块700包括:
中心点选取子模块7001,用于按未匹配成功的二类聚类目标的xmin由小到大的顺序,依次将未匹配成功的二类聚类目标的中心点作为新船舶的外切长方体的中心点;
外切长方体确定子模块7002,用于对于任一未匹配成功的二类聚类目标,按与其距离从小到大的顺序,将对应连通关系中的一类聚类目标及其它二类聚类目标依次归入新船舶的外切长方体,直至该外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时体积大于预设最小体积阈值;
第二判定子模块7003,用于若连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时,新船舶的外切长方体的体积小于预设最小体积阈值,则释放该外切长方体中所有的二类聚类目标及一类聚类目标。
作为一种可选的实施方式,预先对二类聚类目标CP使用xmin由小到大排序。
对于剩余的二类聚类目标CP,依次取其作为中心点,最近二类聚类目标CP可达的其它二类聚类目标CP或一类聚类目标LP,将根据欧式距离从小到大的顺序依次被归入新船舶的外切长方体,直到该新船舶的外切长方体的体积大于预设单船体积阈值BoatSizeMax(x,y,z),或是连通关系中所有聚类目标均归入新船舶的外切长方体时外切长方体的体积大于预设最小体积阈值BoatSizeMin(x,y,z)。
当作为中心点的二类聚类目标CP所属连通关系中所有聚类目标均归入外切长方体中时,外切长方体体积仍然小于预设最小体积阈值BoatSizeMin(x,y,z)的,表示该二类聚类目标CP无效,释放所有已归入的CP或LP。
作为一种可选的实施方式,数据预处理模块100包括:
第一数据处理子模块1001,用于对原始点云数据进行体素网格降采样,得到目标点云数据;
第二数据处理子模块1002,用于对原始点云数据进行体素网格降采样后进行滤波,得到目标点云数据。
对原始点云数据进行体素网格降采样,体素网格的大小dgrid将决定最终结果的精度,一般会统一数据到0.02m,以避免近处数据过于密集。
若数据预处理时进行了体素网格降采样,那么后续进行栅格化时,栅格的大小通常在10×dgrid,仪器的精度衰减在最大处也将小于该大小;子栅格的大小通常为2×dgrid;基准半径RD通常为10×dgrid。
在检测范围较近(150米以内一定滤波,150-450米以内可选择是否滤波,450米以上不做滤波)或检测点有雨雪雾恶劣天气时,可以通过一定的滤波来过滤噪点,通常选择统计滤波。其他情况不进行滤波。
作为一种可选的实施方式,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的船舶检测方法。
上述技术方案具有如下有益效果:
可在不进行滤波或滤波程度较小的情况下,快速的完成聚类,并维持聚类的精度,以完成后续的目标跟踪。
考虑最终计算的目标将以点云聚类外切长方体的形式表示,通过降维、降低精度来减少运算数据的数量,快速获得聚类所在的长方体范围(低精度)后,再对范围内点求外切长方体(复原精度),完成对聚类目标的提取,由于提取的目标精度实际没有降低,并且很好地保留了船头等细节部位,可以更好进行船舶的定位;又由于无论远近、仪器密度,计算均可以使用降低到同样的标准的数据,除了对不同检测点、仪器略微调整降低精度的程度外,原本最复杂的滤波-聚类过程的计算参数变化不大,不用再耗费大量的时间测试以获取不同环境下的具体参数,从而以更低的耗时、更低的调试成本、更高的精度,完成对水上大范围船舶行驶检测。
以上发明的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上内容仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种船舶检测方法,其特征在于,包括:
S1、获取当前帧的原始点云数据,对所述原始点云数据进行预处理得到目标点云数据;
S2、将所述目标点云数据分别投影在坐标系的Z=0平面及Y=0平面,得到第一点云数据集及第二点云数据集;其中,所述坐标系以激光雷达所在位置为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向;
S3、分别对所述第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集;
S4、对于所述第一聚类目标集中的任一第一聚类目标,在第二聚类目标集中匹配与该第一聚类目标的x范围有交集的第二聚类目标,根据每个第一聚类目标的范围及匹配到的第二聚类目标的范围,在目标点云数据中切割对应的三维聚类目标;
S5、将体积小于预设聚类体积阈值的三维聚类目标记为一类聚类目标,将体积大于或等于预设聚类体积阈值的三维聚类目标记为二类聚类目标,根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系;
S601、对于上一帧中的任一船舶,提取其外切长方体的中心点,计算所有二类聚类目标与该中心点的距离,选取距离最小的二类聚类目标作为当前船舶对应的最近二类聚类目标;
S602、按与最近二类聚类目标的距离从小到大的顺序,将所述最近二类聚类目标连接的一类聚类目标及其它二类聚类目标依次归入当前船舶的最新外切长方体,直至该最新外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时体积大于预设最小体积阈值;
S603、当最近二类聚类目标对应的连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时,最新外切长方体的体积小于预设最小体积阈值,则释放最新外切长方体中所有的二类聚类目标及一类聚类目标;
S701、按未匹配成功的二类聚类目标的xmin由小到大的顺序,依次将未匹配成功的二类聚类目标的中心点作为新船舶的外切长方体的中心点;
S702、对于任一未匹配成功的二类聚类目标,按与其距离从小到大的顺序,将对应连通关系中的一类聚类目标及其它二类聚类目标依次归入新船舶的外切长方体,直至该外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时体积大于预设最小体积阈值;
S703、若连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时,新船舶的外切长方体的体积小于预设最小体积阈值,则释放该外切长方体中所有的二类聚类目标及一类聚类目标。
2.根据权利要求1所述的船舶检测方法,其特征在于,所述分别对所述第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集,其中将任一点云数据集作为当前点云数据集进行栅格化及栅格密度聚类,包括:
S301、对所述当前点云数据集进行栅格化得到多个栅格,对每个栅格再次进行栅格化得到多个子栅格,统计每个栅格中存在点云数据的子栅格的数量,记为子栅格数量值;
S302、根据所述子栅格数量值、栅格密度阈值及基准半径计算得到每个栅格对应的给定半径;
S303、统计给定半径内对应栅格的点云数据密度;
S304、根据每个栅格的点云数据密度对所有栅格进行密度聚类,得到当前点云数据集对应的聚类目标集。
3.根据权利要求1所述的船舶检测方法,其特征在于,所述根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系,包括:
S501、对于任一二类聚类目标,统计距其小于预设距离阈值的匹配一类聚类目标及匹配二类聚类目标;
S502、将当前二类聚类目标分别与其匹配一类聚类目标及匹配二类聚类目标进行连接;
S503、重复步骤S501-S502直至所有二类聚类目标均完成连接,得到每个二类聚类目标对应的连通关系。
4.根据权利要求1所述的船舶检测方法,其特征在于,所述对所述原始点云数据进行预处理得到目标点云数据,包括:
S101、对所述原始点云数据进行体素网格降采样,得到所述目标点云数据;
或,S102、对所述原始点云数据进行体素网格降采样后进行滤波,得到所述目标点云数据。
5.一种船舶检测装置,其特征在于,包括:
数据预处理模块,用于获取当前帧的原始点云数据,对所述原始点云数据进行预处理得到目标点云数据;
降维模块,用于将所述目标点云数据分别投影在坐标系的Z=0平面及Y=0平面,得到第一点云数据集及第二点云数据集;其中,所述坐标系以激光雷达所在位置为原点,垂直于河岸向对岸为x轴正方向,平行于河岸向左为y轴正方向,垂直于河面向上为z轴正方向;
聚类模块,用于分别对所述第一点云数据集及第二点云数据集进行以下操作:栅格化及栅格密度聚类,得到第一聚类目标集及第二聚类目标集;
升维模块,用于对于所述第一聚类目标集中的任一第一聚类目标,在第二聚类目标集中匹配与该第一聚类目标的x范围有交集的第二聚类目标,根据每个第一聚类目标的范围及匹配到的第二聚类目标的范围,在目标点云数据中切割对应的三维聚类目标;
连通关系计算模块,用于将体积小于预设聚类体积阈值的三维聚类目标记为一类聚类目标,将体积大于或等于预设聚类体积阈值的三维聚类目标记为二类聚类目标,根据每个二类聚类目标与一类聚类目标及其他二类聚类目标的距离得到对应的连通关系;
第一船舶确定模块包括:最近二类聚类目标选取子模块,用于对于上一帧中的任一船舶,提取其外切长方体的中心点,计算所有二类聚类目标与该中心点的距离,选取距离最小的二类聚类目标作为当前船舶对应的最近二类聚类目标;
最新外切长方体更新子模块,用于按与最近二类聚类目标的距离从小到大的顺序,将所述最近二类聚类目标连接的一类聚类目标及其它二类聚类目标依次归入当前船舶的最新外切长方体,直至该最新外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时体积大于预设最小体积阈值;
第一判定子模块,用于当最近二类聚类目标对应的连通关系中所有二类聚类目标及一类聚类目标均归入最新外切长方体时,最新外切长方体的体积小于预设最小体积阈值,则释放最新外切长方体中所有的二类聚类目标及一类聚类目标;
第二船舶确定模块包括:
中心点选取子模块,用于按未匹配成功的二类聚类目标的xmin由小到大的顺序,依次将未匹配成功的二类聚类目标的中心点作为新船舶的外切长方体的中心点;
外切长方体确定子模块,用于对于任一未匹配成功的二类聚类目标,按与其距离从小到大的顺序,将对应连通关系中的一类聚类目标及其它二类聚类目标依次归入新船舶的外切长方体,直至该外切长方体的体积大于预设单船体积阈值,或连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时体积大于预设最小体积阈值;
第二判定子模块,用于若连通关系中所有二类聚类目标及一类聚类目标均归入该外切长方体时,新船舶的外切长方体的体积小于预设最小体积阈值,则释放该外切长方体中所有的二类聚类目标及一类聚类目标。
6.根据权利要求5所述的船舶检测装置,其特征在于,所述聚类模块包括:
栅格化子模块,用于对当前点云数据集进行栅格化得到多个栅格,对每个栅格再次进行栅格化得到多个子栅格,统计每个栅格中存在点云数据的子栅格的数量,记为子栅格数量值;
给定半径计算子模块,用于根据所述子栅格数量值、栅格密度阈值及基准半径计算得到每个栅格对应的给定半径;
密度统计子模块,用于统计给定半径内对应栅格的点云数据密度;
密度聚类子模块,用于根据每个栅格的点云数据密度对所有栅格进行密度聚类,得到当前点云数据集对应的聚类目标集。
7.根据权利要求5所述的船舶检测装置,其特征在于,所述连通关系计算模块,包括:
距离计算子模块,用于对于任一二类聚类目标,统计距其小于预设距离阈值的匹配一类聚类目标及匹配二类聚类目标;
连接子模块,用于将当前二类聚类目标分别与其匹配一类聚类目标及匹配二类聚类目标进行连接;
循环子模块,用于控制重复距离计算子模块、连接子模块的步骤,直至所有二类聚类目标均完成连接,得到每个二类聚类目标对应的连通关系。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4任一项所述的船舶检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210036.1A CN116071694B (zh) | 2023-03-07 | 2023-03-07 | 船舶检测方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210036.1A CN116071694B (zh) | 2023-03-07 | 2023-03-07 | 船舶检测方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116071694A CN116071694A (zh) | 2023-05-05 |
CN116071694B true CN116071694B (zh) | 2023-06-23 |
Family
ID=86175085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310210036.1A Active CN116071694B (zh) | 2023-03-07 | 2023-03-07 | 船舶检测方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116071694B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171693B (zh) * | 2023-10-30 | 2024-01-26 | 山东交通学院 | 一种木工打磨过程中的切割异常检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111289998A (zh) * | 2020-02-05 | 2020-06-16 | 北京汽车集团有限公司 | 障碍物检测方法、装置、存储介质以及车辆 |
CN113888589A (zh) * | 2021-09-09 | 2022-01-04 | 华中科技大学 | 一种基于激光雷达的水面障碍物检测与多目标跟踪方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7952583B2 (en) * | 2000-06-19 | 2011-05-31 | Mental Images Gmbh | Quasi-monte carlo light transport simulation by efficient ray tracing |
US9558564B1 (en) * | 2014-05-02 | 2017-01-31 | Hrl Laboratories, Llc | Method for finding important changes in 3D point clouds |
CN105513127B (zh) * | 2015-12-25 | 2018-01-26 | 武汉大学 | 基于密度峰值聚类的杆状物规则化三维建模方法及系统 |
GB2554633B (en) * | 2016-06-24 | 2020-01-22 | Imperial College Sci Tech & Medicine | Detecting objects in video data |
CN107292276B (zh) * | 2017-06-28 | 2020-01-07 | 武汉大学 | 一种车载点云聚类方法及系统 |
US10650531B2 (en) * | 2018-03-16 | 2020-05-12 | Honda Motor Co., Ltd. | Lidar noise removal using image pixel clusterings |
CN111260683B (zh) * | 2020-01-09 | 2023-08-08 | 合肥工业大学 | 一种三维点云数据的目标检测与跟踪方法及其装置 |
DE102020001346A1 (de) * | 2020-03-02 | 2020-10-01 | Daimler Ag | Verfahren zur Detektion stabförmiger Objekte mittels Lidardaten |
WO2022183500A1 (zh) * | 2021-03-05 | 2022-09-09 | 中国科学院深圳先进技术研究院 | 基于投影的点云质量评价方法、装置、设备和存储介质 |
WO2022226831A1 (zh) * | 2021-04-28 | 2022-11-03 | 深圳元戎启行科技有限公司 | 未定义类别障碍物的检测方法、装置和计算机设备 |
CN114419130A (zh) * | 2021-12-22 | 2022-04-29 | 中国水利水电第七工程局有限公司 | 一种基于图像特征和三维点云技术的散料体积测量方法 |
-
2023
- 2023-03-07 CN CN202310210036.1A patent/CN116071694B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111289998A (zh) * | 2020-02-05 | 2020-06-16 | 北京汽车集团有限公司 | 障碍物检测方法、装置、存储介质以及车辆 |
CN113888589A (zh) * | 2021-09-09 | 2022-01-04 | 华中科技大学 | 一种基于激光雷达的水面障碍物检测与多目标跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116071694A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111091105B (zh) | 基于新的边框回归损失函数的遥感图像目标检测方法 | |
CN111091095B (zh) | 一种遥感图像中船只目标的检测方法 | |
CN110969624A (zh) | 一种激光雷达三维点云分割方法 | |
CN112882059B (zh) | 一种基于激光雷达的无人船内河障碍物感知方法 | |
CN107392929B (zh) | 一种基于人眼视觉模型的智能化目标检测及尺寸测量方法 | |
CN116071694B (zh) | 船舶检测方法、装置及计算机可读存储介质 | |
CN115761550A (zh) | 一种基于激光雷达点云和相机图像融合的水面目标检测方法 | |
Cheng et al. | Building boundary extraction from high resolution imagery and lidar data | |
CN115372989A (zh) | 基于激光雷达的越野自动小车长距离实时定位系统及方法 | |
CN115456970B (zh) | 一种基于降维回归的干舷分割船舶载重线识别方法 | |
CN115187803B (zh) | 一种用于名优茶嫩芽采摘过程的定位方法 | |
CN111325138A (zh) | 一种基于点云局部凹凸特征的道路边界实时检测方法 | |
CN111783722B (zh) | 一种激光点云的车道线提取方法和电子设备 | |
CN114612665B (zh) | 基于法向量直方图特征的位姿估计及动态车辆检测方法 | |
CN108765403A (zh) | 一种多目标环境下的sar图像双参数cfar检测方法 | |
CN116148878B (zh) | 船舶干舷高度识别方法及系统 | |
CN111178193A (zh) | 一种车道线的检测方法、检测装置及计算机可读存储介质 | |
CN113034569A (zh) | 一种基于点云数据的船舶超限预警方法及系统 | |
CN108288268A (zh) | 基于投影分析的高分辨率遥感图像中靠岸舰船检测方法 | |
CN111354047B (zh) | 一种基于计算机视觉的摄像模组定位方法及系统 | |
CN112232248B (zh) | 一种多线LiDAR点云数据平面特征的提取方法及装置 | |
CN106815851B (zh) | 一种基于视觉测量的栅格圆形油位计自动读数方法 | |
CN106570835B (zh) | 一种点云简化滤波方法 | |
CN116597164A (zh) | 一种基于计算机视觉的港口船舶水线检测方法 | |
CN115909072A (zh) | 一种基于改进YOLOv4算法的弹着点水柱检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |