浅析交通标牌的识别方法

2021-05-28 06:18马朝帅
科学技术创新 2021年14期
关键词:角点标牌聚类

王 哲 马朝帅

( 1、北京四维远见信息技术有限公司,北京100070 2、北京四维图新科技股份有限公司,北京100094)

1 概述

交通标牌是一种重要的交通设施, 对交通安全有重要的警示以及提示作用, 标牌信息的获取与更新异常重要。 由于采集环境以及传感器的各种误差导致了上下行同一地物的点云存在较大的误差, 因此需要进行点云数据的融合。 而标牌作为一种独立的地物,具有规则的形状可以为点云配准提供大量的同名点。 因此,研究了一种标牌点云数据同名点自动识别的算法。首先交互获取包含标牌的上下行点云数据,通过轨迹过滤地面点;然后通过统计滤波器剔除离群点,然后进行聚类分割,得到若干个类似平面的点集,根据法向量以及牌子的面积、点云反射强度等筛选出标牌所在的点集;然后进行旋转,接着提取平面点集的凸包点,并进行形状的判断,分别拟合直线和圆,根据拟合的误差,判断是圆还是直线,最后进行角点的提取,如果是圆,提取四个顶点,如果是直线,进行直线拟合并进行直线求交,得到四个角点。 对上下行点云分别进行上述操作, 然后得到两组角点,对这两组角点进行匹配,从而得到同名点。 对上述算法进行了实验验证,结果表明本文方法准确度、效率都能满足地图数据生成环节的要求。

2 交通标牌识别算法论述

现有的交通标牌识别算法主要是基于计算机视觉的方法,未考虑三维空间中距离、视角和障碍物遮挡等因素对交通标志牌可见性的影响,适用性有限。 文献[2]根据标牌的高强度值特点以及平面特性,采用了反射强度和主成分分析来检测交通标志牌,由于标牌具有一定的厚度而且有正反面,同时反面的反射强度很小,因此只适合于正面扫描到的标牌数据。 文献[3]采用了点云结合影像的方法进行标牌的语义识别, 过程过于繁琐,适用性有限, 很难用于实际的生产作业环节。 现有的标牌识别算法效率不高,大多数还要基于轨迹信息,并且涉及到额外的点云信息( 扫描角度等),不同的设备获取的信息不一样,因此适用性有限,为此我们研究了一种新的标牌识别算法。

3 一种交通标牌的识别方法

本文提出了一种交通标牌的识别算法, 首先交互选取包含标牌点云的区域,然后通过聚类分割,得到标牌对应的点云数据;然后通过拟合算法得到平面的相关参数,并把平面旋转到一个标准方向上( Z 轴);接着提取平面的凸包点,对凸包点进行加密处理;然后进行形状的判断,根据判断的结果,求取标牌的角点。 算法的流程图如图1 所示。

3.1 标牌数据的获取

考虑到数据的实际生产环节,我们采用的是半自动的方式,获取标牌数据。作业员通过数据生产软件可以很方便地得到标牌对应的数据。由于原始数据存在大量的杂点( 地面、树木、草等),而且地面点在原始数据中占据很大的比例,因此我们通过高度信息,过滤掉高度较低的点,以达到减少数据量的目的,大大提高了算法的运行效率。由于原始数据存在噪声点,因此需要进行滤波操作,我们采用的是统计滤波器将离群点从数据中去除。

3.2 聚类分割

我们采用的是结合了距离和法向量的方法进行聚类,提高了分割的成功率。 由于聚类的结果通常会得到若干类, 因此我们需要对聚类结果进行筛选。聚类结果如图2 所示。定义的筛选原则为:( 1)分类结果按个数从大到小排列( 感兴趣的占多数,不一定是最多)。( 2)反射强度优先,统计高强度的点的个数。( 3)计算平均高度。

3.3 坐标旋转

其中:

图1 算法流程图

图2 聚类分割效果图

3.4 凸包点提取

通过3.3 环节,我们将平面旋转到一个标准方向上(Z 轴),进而提取凸包点。采用的是Convex Hull 算法,利用一个的凸多边形围住所有的点。提取结果如图3 所示。

3.5 提取角点

根据3.4 环节得到的凸包点进行加密,然后进行形状的判断。如果判断结果为直线,则要进行分段直线拟合[5],然后进行直线求交;如果是圆则提取四个顶点位置,进而得到标牌角点的初始位置。

3.6 真实的角点

由于原始扫描数据存在噪点以及中间计算过程会产生各种误差,因此我们得到的角点跟真实的标牌角点会存在一定的偏差,因此需要根据角点推荐真实的角点。

我们的原则如下:(1)距离优先;(2)考虑反射强度。

首先根据初始得到的角点,进行K 邻域搜索,找到近邻点。其中的搜索阈值K 不能太小,否则容易出现杆子上的点,我们采用的值为5。然后根据这些邻近点选择反射强度大的点,作为标牌的角点。根据上下行分别找到的角点,便可以组成同名点对。

4 实验分析

为了验证上述算法的性能,基于团队开发的软件进行了验证。系统开发环境为Visual Studio 2013 软件,采用C++语言与DirectX 11 相结合,渲染架构为微软的DXUT 架构,后台数据库为Postgresql。实验结果如图4 所示。

5 结论与展望

本文详细介绍了一种交通标牌识别的算法并进行了实验验证,证明了该算法的鲁棒性以及高效性。该方法可用于地图数据的生成环节,解决精度检查过程中效率低下的问题,通过较少的人工交互解决特征点提取的问题。

本算法的关键技术改进点:

(1)半自动结合轨迹高度排除地面等杂点。(2)采用了改进的聚类分割算法,根据点对的连通关系并结合距离和法向量进行聚类。(3)采用了点云反射率、平面的法向量以及面积和边长等约束去筛选标牌所在的类别。(4)对得到的标牌点云进行形状的判断,得到标牌的角点,并在原始数据中根据距离和强度去得到真实的角点。

通过以上改进,算法执行效率大大提高,同时提高了标牌分割的成功率,能适用于多种复杂的场景,保证角点的正确性。

针对本文的研究内容,由于时间以及能力的局限,还需要下面的完善:(1)该算法涉及到少量人工交互,如何全自动识别角点,还需深入研究。(2)本论文仅仅是实现了相关的算法,并进行了初步的优化,并未涉及到算法的并行加速,以后的重点将放在算法的并行加速上,并进行深入的优化。

猜你喜欢
角点标牌聚类
一种傅里叶域海量数据高速谱聚类方法
暑假打工记
多支撑区域模式化融合角点检测算法仿真
暑假打工记
打工记
角点检测技术综述①
基于灰度差预处理的改进Harris角点检测算法
面向WSN的聚类头选举与维护协议的研究综述
基于FAST角点检测算法上对Y型与X型角点的检测
改进K均值聚类算法