基于直线边缘特征的目标识别方法、系统与流程

文档序号:15800688发布日期:2018-11-02 21:25阅读:168来源:国知局
基于直线边缘特征的目标识别方法、系统与流程

本发明涉及目标识别领域,具体地,涉及一种基于直线边缘特征的目标识别方法、系统。

背景技术

随着计算机视觉技术和图像并行处理技术的飞速发展,目标识别与跟踪技术在移动机器人、战车与坦克、飞机、导弹、舰船等军事领域和航空航天、科学探测、天文观测以及视频监控等民用领域具有越来越广泛的应用,也成为自动控制、计算机视觉和模式识别等领域的研究热点。基于图像的目标识别与跟踪技术是利用成像系统所采集的图像,自动地提取或识别相应目标,并对其进行跟踪。即通过一系列图像数据实现对目标的识别与跟踪。实时性好、定位精度高和抗干扰能力强的目标识别与跟踪算法己成为图像目标识别与跟踪技术的攻关重点,具有重要的军事、经济和社会价值。基于图像的目标识别,是目前人工智能领域研究的最为热门的领域。在这个领域中,深度学习则是近年来兴起的新的方法。但是,深度学习需要大量的样本,并且神经网络的各种参数的调节,具有较高的技巧,不容易掌握。

本专利提出一种新的特征提取的方法,可以应用于一部分特殊目标的识别任务上。比如,在对印刷体文字、车辆、舰船等人造刚性物体进行识别时,可以充分利用目标上的直线边缘进行分类。这样,识别策略可以得到很大的简化。这一类人造物体,具有结构稳定、形变较少的特点。因此可以采用本专利的方法来进行高效的分类。

专利文献申请号为201110282436.0,公布号为cn103020577a公开了一种基于hog特征的运动目标识别方法及系统包括用于提取运动目标区域的码本建模目标检测模块,目标区域确认的目标关联模块,以及基于hog特征的运动目标分类识别模块。该方法和系统主要应用于智能安防平台,本发明实现了任意摄像头角度的运动目标分类识别,在不同光照条件影响下仍能准确识别运动目标类型。hog特征得到的描述子保持了几何和光学转化不变性,hog特征尤其适合人的检测,但是对于其他移动目标,例如导弹、坦克、战车和飞机等的目标识别效果就没那么理想了。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于直线边缘特征的目标识别方法、系统。

根据本发明提供的基于直线边缘特征的目标识别方法,包括获取直线边缘步骤,所述获取直线边缘步骤包括如下步骤:

步骤1:根据从摄像机获取到的图像,获取图像垂直边缘和水平边缘进行检测,获取第一直线边缘;

步骤2:根据从摄像机获取到的图像,通过比较图像的连通域中的像素数量和预设像素数量,保留第二直线边缘;

步骤3:根据从摄像机获取到的图像,获取梯度值,对梯度值进行二值化,将垂直边缘分割出来,保留第三直线边缘;

步骤4:将第一直线边缘、第二直线边缘以及第三直线边缘相融合,得到融合后的直线边缘;

步骤5:将融合后的直线边缘进行区分;

所述基于直线边缘特征的目标识别方法,还包括应用步骤:

所述应用步骤:将获取到的图像的尺寸进行归一化;获取图像中的所有直线边缘,并且进行描述;根据描述,获取子分类器得分;比较子分类器之间的得分,获取当前的图像分类;

其中,所述描述为直线的角度、长度以及直线中点相对于目标中心的位置。

优选地,所述步骤1包括如下子步骤:

步骤1.1:根据从摄像机获取到的图像,将图像的每一个像素进行遍历,获取每个像素的水平梯度;

步骤1.2:以预设像素数量为单位将图像分割为多个等高水平带,对所述多个等高水平带进行逐一检测,获取垂直边缘;

步骤1.3:对当前水平带进行逐列扫描,确定垂直边缘;

步骤1.4:提取当前列的所有像素对应的水平梯度值,获取平均水平梯度值;

步骤1.5:根据平均水平梯度值,确定当前列为垂直边缘;

所述步骤1.1包括如下子步骤:步骤1.1.1:提取当前像素左右两侧的像素的亮度值;

步骤1.1.2:根据两侧的像素的亮度值,获取平均亮度值;

所述步骤1还包括如下子步骤:步骤1.6:设定扫描窗口,对扫描窗口的所有平均水平梯度值进行遍历,若扫描窗口中心位置对应的梯度值大于或小于扫描窗口内的最大值,则将扫描窗口中心位置的梯度值记为0,否则,则保留扫描窗口中心位置的梯度值;

步骤1.7:设定预设阈值,若当前列的平均水平梯度值大于预设阈值,则此处为边缘并将此边缘标记出来,否则,则忽略此边缘;

步骤1.8:对相邻水平带的所有垂直边缘进行融合,若相邻行的垂直边缘的水平距离偏差在预设范围内,则记为同一条垂直边缘,即为第一直线边缘,否则,则返回步骤1.6继续执行;

所述步骤1.8包括如下子步骤:步骤1.8.1:将垂直边缘沿预设方向延伸,获取边缘结束位置,若垂直梯度值大于预设阈值,则继续延伸,否则,则该垂直边缘记为边缘结束位置;

所述步骤2包括如下子步骤:步骤2.1:根据从摄像机获取到的图像,获取图像中的所有边缘;

其中,所有边缘点记为白色像素,所有非边缘点记为黑色像素;

步骤2.2:在所有边缘中,获取并保留第二直线边缘;

所述步骤2.2包括如下子步骤:

步骤2.2.1:在所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;

步骤2.2.2:过滤t字形交叉位置和x形交叉位置上的边缘点;

步骤2.2.3:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;

步骤2.2.4:过滤拐角度数小于阈值角度的边缘点;

步骤2.2.5:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第二直线边缘;

所述步骤3包括如下子步骤:步骤3.1:根据从摄像机获取到的图像,获取图像的梯度值;

其中,所述梯度值为水平梯度值和垂直梯度值之和;

步骤3.2:对梯度值进行二值化,获取二值化图像;

所述步骤3.2包括如下子步骤:

步骤3.2.1:在二值化图像的所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;

步骤3.2.2:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;

步骤3.2.3:过滤拐角度数小于阈值角度的边缘点;

步骤3.2.4:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第三直线边缘;

所述步骤4包括如下子步骤:

步骤4.1:获取第一直线边缘、第二直线边缘以及第三直线边缘这三者的角度值;

步骤4.2:将角度值等分为预设数量,每次融合预设数量等分中的一个;

步骤4.3:将所有属于同一个角度等分范围的总直线边缘,都绘制到图像上;

步骤4.4:过滤绘制过程中的重叠的总直线边缘,获取过滤图像;

其中,所述总直线边缘为第一直线边缘、第二直线边缘第三直线边缘中的任一种或任多种边缘;

步骤4.5:将过滤图像重新进行连通域分析,提取直线;

步骤4.6:对所有的位置较近的直线,进行连接;

其中,所述位置较近的直线是指两直线之间的距离小于预设像素数量形成的距离;

步骤4.7:将相互平行的直线融合为一条直线,即为融合后的直线;

所述步骤5包括如下子步骤:步骤5.1:在融合后的直线的边缘上挑选预设数量的关键点;

步骤5.2:根据关键点的位置,选取参考点;

步骤5.3:记录关键点的平均像素亮度值;

步骤5.4:记录参考点的平均像素亮度值;

步骤5.5:若关键点的平均像素亮度值与参考点的平均像素亮度值之间的差值大于或小于预设值时,则所述融合后的直线的边缘为屋脊型边缘,否则,则为阶跃型边缘;

所述应用步骤包括如下子步骤:

子分类器架构获取步骤:每条直线记为一个子分类器;不同的子分类器具有不同的权重;,根据直线的角度、长度以及直线中点相对于目标中心的位置,获取子分类器的得分;根据子分类器的得分,获取分类器组件的得分;

其中,所述分类器组件包括子分类器;

子分类器选择步骤:每条直线记为一个子分类器;对每个类别的图像,进行遍历;对当前样本中的每条直线,进行遍历;针对当前直线,在其他图像中,找到能够匹配的直线;统计每条直线能够匹配的直线的数目;对所有图像、所有直线的匹配数目进行排序;根据排序前后,对直线进行遍历,去掉代表同一个子分类器的直线;过滤重复的直线,获取剩下的直线,记为子分类器;

子分类器权重获取步骤:每一个子分类器的权重,按照匹配直线的数目进行分配;

子分类器建模步骤:获取所有的子分类器,建立模型。基于直线边缘特征的目标识别方法。

本发明还提供了一种基于直线边缘特征的目标识别系统,包括获取直线边缘模块,

所述获取直线边缘模块包括如下模块:

模块m1:根据从摄像机获取到的图像,获取图像垂直边缘和水平边缘进行检测,获取第一直线边缘;

模块m2:根据从摄像机获取到的图像,通过比较图像的连通域中的像素数量和预设像素数量,保留第二直线边缘;

模块m3:根据从摄像机获取到的图像,获取梯度值,对梯度值进行二值化,将垂直边缘分割出来,保留第三直线边缘;

模块m4:将第一直线边缘、第二直线边缘以及第三直线边缘相融合,得到融合后的直线边缘;

模块m5:将融合后的直线边缘进行区分;

所述基于直线边缘特征的目标识别系统,还包括应用模块:

所述应用模块:将获取到的图像的尺寸进行归一化;获取图像中的所有直线边缘,并且进行描述;根据描述,获取子分类器得分;比较子分类器之间的得分,获取当前的图像分类;

其中,所述描述为直线的角度、长度以及直线中点相对于目标中心的位置。

优选地,所述模块m1包括如下子模块m:

模块m1.1:根据从摄像机获取到的图像,将图像的每一个像素进行遍历,获取每个像素的水平梯度;

模块m1.2:以预设像素数量为单位将图像分割为多个等高水平带,对所述多个等高水平带进行逐一检测,获取垂直边缘;

模块m1.3:对当前水平带进行逐列扫描,确定垂直边缘;

模块m1.4:提取当前列的所有像素对应的水平梯度值,获取平均水平梯度值;

模块m1.5:根据平均水平梯度值,确定当前列为垂直边缘;

模块m1.6:设定扫描窗口,对扫描窗口的所有平均水平梯度值进行遍历,若扫描窗口中心位置对应的梯度值大于或小于扫描窗口内的最大值,则将扫描窗口中心位置的梯度值记为0,否则,则保留扫描窗口中心位置的梯度值;

模块m1.7:设定预设阈值,若当前列的平均水平梯度值大于预设阈值,则此处为边缘并将此边缘标记出来,否则,则忽略此边缘;

模块m1.8:对相邻水平带的所有垂直边缘进行融合,若相邻行的垂直边缘的水平距离偏差在预设范围内,则记为同一条垂直边缘,即为第一直线边缘,否则,则返回模块m1.6继续执行。

优选地,所述模块m1.1包括如下子模块:

模块m1.1.1:提取当前像素左右两侧的像素的亮度值;

模块m1.1.2:根据两侧的像素的亮度值,获取平均亮度值;

所述模块m1.8包括如下子模块m:

模块m1.8.1:将垂直边缘沿预设方向延伸,获取边缘结束位置,若垂直梯度值大于预设阈值,则继续延伸,否则,则该垂直边缘记为边缘结束位置。

优选地,所述模块m2包括如下子模块:

模块m2.1:根据从摄像机获取到的图像,获取图像中的所有边缘;

其中,所有边缘点记为白色像素,所有非边缘点记为黑色像素;

模块m2.2:在所有边缘中,获取并保留第二直线边缘;

所述模块m2.2包括如下子模块m:

模块m2.2.1:在所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;

模块m2.2.2:过滤t字形交叉位置和x形交叉位置上的边缘点;

模块m2.2.3:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;

模块m2.2.4:过滤拐角度数小于阈值角度的边缘点;

模块m2.2.5:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第二直线边缘。

优选地,所述模块m3包括如下子模块:

模块m3.1:根据从摄像机获取到的图像,获取图像的梯度值;

其中,所述梯度值为水平梯度值和垂直梯度值之和;

模块m3.2:对梯度值进行二值化,获取二值化图像;

所述模块m3.2包括如下子模块m:

模块m3.2.1:在二值化图像的所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;

模块m3.2.2:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;

模块m3.2.3:过滤拐角度数小于阈值角度的边缘点;

模块m3.2.4:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第三直线边缘。

优选地,所述模块m4包括如下子模块:

模块m4.1:获取第一直线边缘、第二直线边缘以及第三直线边缘这三者的角度值;

模块m4.2:将角度值等分为预设数量,每次融合预设数量等分中的一个;

模块m4.3:将所有属于同一个角度等分范围的总直线边缘,都绘制到图像上;

模块m4.4:过滤绘制过程中的重叠的总直线边缘,获取过滤图像;

其中,所述总直线边缘为第一直线边缘、第二直线边缘第三直线边缘中的任一种或任多种边缘;

模块m4.5:将过滤图像重新进行连通域分析,提取直线;

模块m4.6:对所有的位置较近的直线,进行连接;

其中,所述位置较近的直线是指两直线之间的距离小于预设像素数量形成的距离;

模块m4.7:将相互平行的直线融合为一条直线,即为融合后的直线。

优选地,所述模块m5包括如下子模块:

模块m5.1:在融合后的直线的边缘上挑选预设数量的关键点;

模块m5.2:根据关键点的位置,选取参考点;

模块m5.3:记录关键点的平均像素亮度值;

模块m5.4:记录参考点的平均像素亮度值;

模块m5.5:若关键点的平均像素亮度值与参考点的平均像素亮度值之间的差值大于或小于预设值时,则所述融合后的直线的边缘为屋脊型边缘,否则,则为阶跃型边缘;

所述参考点的平均像素亮度值包括以关键点为基准的左右两侧的参考点。

优选地,所述应用模块包括如下子模块:

子分类器架构获取模块:每条直线记为一个子分类器;不同的子分类器具有不同的权重;,根据直线的角度、长度以及直线中点相对于目标中心的位置,获取子分类器的得分;根据子分类器的得分,获取分类器组件的得分;

其中,所述分类器组件包括子分类器;

子分类器选择模块:每条直线记为一个子分类器;对每个类别的图像,进行遍历;对当前样本中的每条直线,进行遍历;针对当前直线,在其他图像中,找到能够匹配的直线;统计每条直线能够匹配的直线的数目;对所有图像、所有直线的匹配数目进行排序;根据排序前后,对直线进行遍历,去掉代表同一个子分类器的直线;过滤重复的直线,获取剩下的直线,记为子分类器;

子分类器权重获取模块:每一个子分类器的权重,按照匹配直线的数目进行分配;

子分类器建模模块:获取所有的子分类器,建立模型。

与现有技术相比,本发明具有如下的有益效果:

本发明提供的基于直线边缘特征的目标识别方法为了给后续的跟踪识别任务提供足够数量的边缘特征,本发明专利采用三种边缘检测方法同时进行检测边缘,然后进行融合,去掉重复部分,连接断裂边缘。本发明所采用的三种边缘检测方法分别是:扫描法检测边缘、canny算子检测边缘以及、梯度法检测边缘。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明提供的基于直线边缘特征的目标识别方法的扫描法边缘检测流程图。

图2为本发明提供的基于直线边缘特征的目标识别方法扫描后的原图的界面图。

图3为本发明提供的基于直线边缘特征的目标识别方法高斯模糊后的的界面图。

图4为本发明提供的基于直线边缘特征的目标识别方法sobel边缘检测后的界面图。

图5为本发明提供的基于直线边缘特征的目标识别方法非极大值抑制后的界面图。

图6为本发明提供的基于直线边缘特征的目标识别方法的边缘检测界面图。

图7为本发明提供的基于直线边缘特征的目标识别方法的canny边缘检测的流程图。

图8为本发明提供的基于直线边缘特征的目标识别方法的三种算法检测结果融合流程图。

图9为本发明提供的基于直线边缘特征的目标识别方法的边缘区分流程图。

图10为本发明提供的基于直线边缘特征的目标识别方法的子分类器选择的流程图。

图11为本发明提供的基于直线边缘特征的目标识别方法的子分类器的高斯建模。

图12为本发明提供的基于直线边缘特征的目标识别方法的目标识别流程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

如图1至图11所示,本发明提供了一种基于直线边缘特征的目标识别方法,包括获取直线边缘步骤,所述获取直线边缘步骤如下步骤:步骤1:根据从摄像机获取到的图像,获取图像垂直边缘和水平边缘进行检测,获取第一直线边缘;步骤2:根据从摄像机获取到的图像,通过比较图像的连通域中的像素数量和预设像素数量,保留第二直线边缘;步骤3:根据从摄像机获取到的图像,获取梯度值,对梯度值进行二值化,将垂直边缘分割出来,保留第三直线边缘;步骤4:将第一直线边缘、第二直线边缘以及第三直线边缘相融合,得到融合后的直线边缘;步骤5:将融合后的直线边缘进行区分;所述基于直线边缘特征的目标识别方法,还包括应用步骤:所述应用步骤:将获取到的图像的尺寸进行归一化;获取图像中的所有直线边缘,并且进行描述;根据描述,获取子分类器得分;比较子分类器之间的得分,获取当前的图像分类;其中,所述描述为直线的角度、长度以及直线中点相对于目标中心的位置。

如图1所示,所述步骤1包括如下子步骤:步骤1.1:根据从摄像机获取到的图像,将图像的每一个像素进行遍历,获取每个像素的水平梯度;步骤1.2:以预设像素数量为单位将图像分割为多个等高水平带,对所述多个等高水平带进行逐一检测,获取垂直边缘;步骤1.3:对当前水平带进行逐列扫描,确定垂直边缘;具体地说,将图像分割成多个水平带以优选的为40个像素为单位,将目标图像分成多个等高的水平带。然后,从上往下对每一个水平带进行检测,找到其中的所有的垂直边缘;在当前水平带内,进行从左到右的逐列扫描,检测每一列是否为垂直边缘;在当前水平带内,进行从左到右的逐列扫描,检测每一列是否为垂直边缘。步骤1.4:提取当前列的所有像素对应的水平梯度值,获取平均水平梯度值;步骤1.5:根据平均水平梯度值,确定当前列为垂直边缘。具体地说,提取当前列所在位置的所有像素对应的水平梯度值,然后计算水平梯度值的平均值;本发明通过该平均值,来判断当前列是否具有垂直边缘。所述步骤1.1包括如下子步骤:步骤1.1.1:提取当前像素左右两侧的像素的亮度值;步骤1.1.2:根据两侧的像素的亮度值,获取平均亮度值;所述步骤1还包括如下子步骤:步骤1.6:设定扫描窗口,对扫描窗口的所有平均水平梯度值进行遍历,若扫描窗口中心位置对应的梯度值大于或小于扫描窗口内的最大值,则将扫描窗口中心位置的梯度值记为0,否则,则保留扫描窗口中心位置的梯度值;具体地说,考虑到在垂直梯度位置,相邻的几列,梯度值都比较大,因此需要进行非极值抑制,以降低重复检测的可能。非极值抑制的方法如下:设定一个扫描窗口,宽度根据经验值设定为9.从左到右用该扫描窗口遍历所有的平均水平梯度值。如果扫描窗口中心位置对应的梯度值,不是窗口内的最大值,则将中心位置的梯度值变成0;非极值抑制扫描完成之后,每9个像素范围之内,最多只会留下一列,其平均水平梯度值是大于0的;步骤1.7:设定预设阈值,若当前列的平均水平梯度值大于预设阈值,则此处为边缘并将此边缘标记出来,否则,则忽略此边缘;具体地说,设定阈值,挑选出满足要求的垂直边用于判断当前列是否为边缘的梯度阈值,根据经验值设定为40.如果当前列的平均梯度值大于此阈值,则说明该位置处有边缘的存在,需要标记出来。步骤1.8:对相邻水平带的所有垂直边缘进行融合,若相邻行的垂直边缘的水平距离偏差在预设范围内,则记为同一条垂直边缘,即为第一直线边缘,否则,则返回步骤1.6继续执行;所述步骤1.8包括如下子步骤:步骤1.8.1:将垂直边缘沿预设方向延伸,获取边缘结束位置,若垂直梯度值大于预设阈值,则继续延伸,否则,则该垂直边缘记为边缘结束位置。具体地说,在完成所有的水平带中的垂直边缘的检测之后,需要将它们进行融合,以得到最终的检测结果。具体方法如下:对相邻水平条带的所有的垂直边缘进行分析,如果相邻行之间的垂直边缘的水平距离偏差在3个像素以内时,都认为是同一条垂直边缘,可以进行融合。对已经提取到的垂直边缘,向两侧延伸为了得到更加精准的垂直边缘的首尾位置,还需要对融合结果进行进一步处理:1)将垂直边缘,向上、下两个方向进行延伸,检测精准的边缘结束位置。2)如果当前像素点位置,梯度值大于阈值(默认为40),则继续延伸。3)如果梯度值小于阈值,则停下来,该位置就是终点位置。

具体地说,在基于扫描法的边缘检测过程中,垂直边缘的检测与水平边缘的检测,方法完全相同。因此下面以垂直边缘的检测作为实例进行讲述。在步骤1.1之前同行会对样本,即从摄像机获取的图像的尺寸进行归一化,需要提前对目标图像,即从摄像机获取的图像的尺寸进行归一化。这样方便后续对样本进行行切分,使得各行高度一致。

为了防止单独一种检测方法造成的特征遗漏,本专利采用多种方法进行边缘检测。如图2至6所示,canny算子检测边缘的实质是求信号函数的极大值问题来判定图像边缘像素点。canny算子检测步骤主要有1.对原图像高斯平滑2.对高斯平滑后的图像进行sobel边缘检测。这里需要求横的和竖的还有联合的,所以一共三个需要sobel边缘检测图像。3.对联合的sobel检测图像进行非极大抑制4.连接边缘点并进行滞后阈值处理。其中,基于canny算法的边缘检测方法如下:如图2所示,所述步骤2包括如下子步骤:步骤2.1:根据从摄像机获取到的图像,获取图像中的所有边缘;其中,所有边缘点记为白色像素,所有非边缘点记为黑色像素;具体地说,对原始图像,进行canny边缘计算。得到该图像中的所有的canny边缘。需要说明的是此不停颜色像素标记为本领域图像处理的常见做法,对自己关心的像素,标记为白色,表示是前景。不关心的像素,变成黑色,作为背景。对白色像素,后续步骤会对其进行各种操作,以达到目的。在canny边缘图中,所有的边缘点都用白色像素表示,非边缘点都用黑色像素表示。步骤2.2:在所有边缘中,获取并保留第二直线边缘;所述步骤2.2包括如下子步骤:

步骤2.2.1:在所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;步骤2.2.2:过滤t字形交叉位置和x形交叉位置上的边缘点;具体地说,对所有的canny边缘点进行遍历和分析,将边缘图中的直线检测出来。具体方法如下:1)将所有的t字形交叉位置,以及x形交叉位置的边缘点检测出来。2)将交叉位置的边缘点滤除掉。3)遍历所有的边缘点,找到拐角度数小于150度的点的位置。4)打断拐角尖锐的边缘,将拐角位置的边缘点过滤掉。5)对剩余的边缘,按照连通域的方式进行分析。检测得到所有的连通域。如果当前连通域的高度小于3个像素,而长度大于10个像素,则可以作为直线边缘保留下来。步骤2.2.3:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;步骤2.2.4:过滤拐角度数小于阈值角度的边缘点;步骤2.2.5:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第二直线边缘。

如图3所示,所述步骤3包括如下子步骤:步骤3.1:根据从摄像机获取到的图像,获取图像的梯度值;其中,所述梯度值为水平梯度值和垂直梯度值之和;步骤3.2:对梯度值进行二值化,获取二值化图像;所述步骤3.2包括如下子步骤:步骤3.2.1:在二值化图像的所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;步骤3.2.2:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;步骤3.2.3:过滤拐角度数小于阈值角度的边缘点;步骤3.2.4:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第三直线边缘。具体地说,梯度对应一阶导数,对于一个连续图像函数f(x,y),它在点f(x,y)处的梯度是一个矢量,定义为

本发明采用的第三种直线边缘检测方法,就是直接计算梯度值,然后二值化,然后找较长的边缘。具体如下:1、对当前图像,计算梯度值(水平梯度与垂直梯度值之和);2、对梯度值图像进行二值化。(二值化阈值默认为30);3、对此时的二值化图像进行分析,将其中包含的垂直边缘分割出来。具体如下:1)对二值化图像提取骨架线。2)将所有的t字形交叉位置,以及x形交叉位置的边缘点检测出来。3)将交叉位置的边缘点滤除掉。4)遍历所有的边缘点,找到拐角度数小于150度的点的位置。5)打断拐角尖锐的边缘,将拐角位置的边缘点过滤掉。6)对剩余的边缘,按照连通域的方式进行分析。检测得到所有的连通域。如果当前连通域的高度小于3个像素,而长度大于10个像素,则可以作为直线边缘保留下来。

所述步骤4包括如下子步骤:步骤4.1:获取第一直线边缘、第二直线边缘以及第三直线边缘这三者的角度值;步骤4.2:将角度值等分为预设数量,每次融合预设数量等分中的一个;步骤4.3:将所有属于同一个角度等分范围的总直线边缘,都绘制到图像上;步骤4.4:过滤绘制过程中的重叠的总直线边缘,获取过滤图像;其中,所述总直线边缘为第一直线边缘、第二直线边缘第三直线边缘中的任一种或任多种边缘;步骤4.5:将过滤图像重新进行连通域分析,提取直线;步骤4.6:对所有的位置较近的直线,进行连接;其中,所述位置较近的直线是指两直线之间的距离小于预设像素数量形成的距离;步骤4.7:将相互平行的直线融合为一条直线,即为融合后的直线,其中所述相互平行的直线,即为所述位置较近的直线。

如图4所示,所述步骤5包括如下子步骤:步骤5.1:在融合后的直线的边缘上挑选预设数量的关键点;步骤5.2:根据关键点的位置,选取参考点;步骤5.3:记录关键点的平均像素亮度值;步骤5.4:记录参考点的平均像素亮度值;步骤5.5:若关键点的平均像素亮度值与参考点的平均像素亮度值之间的差值大于或小于预设值时,则所述融合后的直线的边缘为屋脊型边缘,否则,则为阶跃型边缘;所述应用步骤包括如下子步骤:子分类器架构获取步骤:每条直线记为一个子分类器;不同的子分类器具有不同的权重;,根据直线的角度、长度以及直线中点相对于目标中心的位置,获取子分类器的得分;根据子分类器的得分,获取分类器组件的得分;其中,所述分类器组件包括子分类器;子分类器选择步骤:每条直线记为一个子分类器;对每个类别的图像,进行遍历;对当前样本,即当前图像中的每条直线,进行遍历;针对当前直线,在其他图像中,找到能够匹配的直线;统计每条直线能够匹配的直线的数目;对所有图像、所有直线的匹配数目进行排序;根据排序前后,对直线进行遍历,去掉代表同一个子分类器的直线;过滤重复的直线,获取剩下的直线,记为子分类器;子分类器权重获取步骤:每一个子分类器的权重,按照匹配直线的数目进行分配;子分类器建模步骤:获取所有的子分类器,建立模型;具体地说,由于三种直线边缘检测方法,各有优缺点,因此需要将三种方法对应的结果进行融合,以提高检测效果。如图5所示,方法如下:1、计算所有直线的角度值。2、将角度值优选的等分成20个,每次融合20个等分中的一个。3、将所有的属于同一个角度等分范围的直线边缘,都绘制到图像上(每条直线只有1个像素宽)。4、不同方法检测到的直线边缘,在绘制过程中,发生重叠与连接。5、重新进行连通域分析,提取直线。6、对所有的位置较近的直线,进行连接。(直线端点的距离小于5个像素)对平行的直线(距离小于2个像素),进行融合,只保留其中一条即可。

边缘检测是图像处理领域中最基本的问题,也是经典的技术难题之一,它的解决对于进行高层次的特征提取、特征描述、目标识别和图像理解等有着重大的影响。因此,边缘检测在图像分割、模式识别、计算机视觉等众多方面都有着非常重要的地位。然而由于成像过程中的投影、混合、畸变和噪声等导致图像的模糊和变形,边缘往往难于检测,这使得人们一直致力于构造具有良好性质的边缘检测算子。边缘检测的研究有着久远的历史,其原因一方面是由于课题本身的重要性,另一方面也反映了这个课题的深度和难度。所以,边缘检测方面的研究具有非常重要的理论意义。

如图9所示,在图像中,屋脊型边缘的垂直方向剖面图,与屋顶的形状类似,具有中间高,两侧低的特点。而阶跃型边缘则类似于台阶,一侧高,一侧低。由于屋脊型边缘与阶跃型边缘所具有的完全不同的外形,因此在检测边缘时,需要对其加以区分,以提高目标的描述能力。采用如下方法对前述检测到的边缘进行区分:1、在每一条直线边缘上,挑选10个关键点。2、每个关键点的直线左右两侧,以5个像素的距离为标准,选择两个参考点。3、记录下10个关键点的平均像素亮度值。4、记录下左侧10个参考点的平均像素亮度值。5、记录下右侧10个参考点的平均像素亮度值。6、如果关键点平均亮度值,比左右两侧参考亮度值,都大或者都小超过阈值(比如20),则认为是屋脊型边缘,否则为阶跃型边缘。

如图6所示,所述基于直线边缘特征的目标识别方法,还包括应用步骤:所述应用步骤:获取视频图像,并通过获取直线边缘步骤来获取视频图像的所有直线边缘;通过直线边缘,获取直线的中点、角度以及长度;将所有直线边缘按照已获取的直线的长度进行排序;其中,所述视频图像包括上一帧视频图像和当前视频图像;将所述已获取的上一帧视频图像和当前视频图像这两者的直线的长度和/或角度进行匹配,若这两者的长度差和/或角度差大于预设值,则不进行匹配,否则,则进行匹配。基于直线边缘特征的目标识别方法具体地说,在利用直线边缘特征,对视频进行稳像操作时,可以按照如下的步骤进行:1、提取上一帧视频图像中,所有的直线边缘。2、计算所有直线边缘的三个维度的特征:直线中点、角度、长度。3、对所有的直线边缘,按照长度进行排序。4、提取当前帧视频图像中,所有的直线边缘。5、对所有的直线边缘,按照长度进行排序。6、对前后两帧图像中所有的直线边缘进行匹配。方法如下:

1)遍历前一帧图像中的所有直线边缘。

2)遍历当前图像中的所有直线边缘。

3)当前两条待匹配的直线边缘,如果长度差超过长的那条边缘的长度的30%,则不进行匹配。

4)两条直线的角度差大于20度,不进行匹配。

5)提取两条直线的所有的像素亮度值。

6)将两条直线在某一个端点位置处对齐,逐像素计算亮度差,然后计算平均值。如果平均亮度差小于10,则匹配成功。否则,沿着长边缘所在方向,移动较短的直线,使其错开一个像素。

7)继续计算平均亮度差值。如果匹配上,则停止,否则继续移动,直到终点位置。

8)依次对上述步骤进行循环,直到完成所有直线的匹配为止。

具体地说,将直线边缘特征应用于目标识别上,需要按照如下的方法进行:将所有的样本图像尺寸进行归一化;提取所有样本图像中的直线边缘,并且进行描述。包括如下方面:1)直线中点相对于目标中心的位置。2)直线的角度。3)直线的长度。分类器的整体架构如下:1)每条直线,作为一个子分类器。2)不同的子分类器具有不同的权重。3)子分类器的得分,根据终点位置、角度,以及长度的得分进行综合。4)最终的分类器打分,通过综合各个子分类器得分而完成。在训练过程中,子分类器挑选:本发明将每一条直线作为一个子分类器。子分类器的挑选方法如下:1)对每个类别的样本,进行遍历。2)对当前样本中的每条直线,进行遍历。3)针对当前直线,在其他样本中,找到能够匹配的直线。匹配的条件是:第一、角度差不超过10度。第二长度差不超过当前直线长度的20%。第三中心点偏差不超过3个像素。1)统计每条直线能够匹配的直线的数目。2)对所有样本、所有直线的匹配数目进行从大到小排序。3)根据排序前后,对直线进行遍历,去掉代表同一个子分类器的直线。排序靠后的直线,如果已经能够跟排序在前面的某条直线进行匹配,则需要过滤掉。1)对最终剩下的直线,挑选其中匹配数目最多的20条,建立子分类器。

在训练过程中,子分类器的权重获取:每一个子分类器的权重,按照匹配直线的数目进行分配。方法如下:1)将20个子分类器对应的匹配直线的数目,计算总和,记为s。2)当前子分类器的直线匹配数目为m,则其权重为w=m/s。

对子分类器每一维特征的高斯建模:在得到所有的子分类器之后,需要为其建立高斯模型。这样才能够在检测过程中,计算得到概率值,进而进行分类。具体方法如下:

1)收集当前子分类器的对应的所有的直线。

2)计算三个维度特征的平均值,作为高斯模型的中心。

3)计算每个维度特征的标准差。

所述应用步骤中,还包括目标识别步骤:将每一条直线,作为一个子分类器。在检测过程中,获取该子分类器的得分按照如下方式:

1)该直线的中点,到目标中心的距离,作为一个参考维度。检测时,某条直线到目标中心的距离,与训练结果进行比较,然后根据高斯概率进行打分。

2)该直线的角度,也作为一个参考维度。检测时,某条直线角度,与训练结果进行比较,然后根据高斯概率进行打分。

3)该直线的长度,也作为一个参考维度。检测时,某条直线长度,与训练结果进行比较,然后根据高斯概率进行打分。

4)上述三个维度的得分,进行综合,就是当前该子分类器的得分。

在得到每个子分类器的得分之后,根据子分类器对应的权重,将最终的得分计算出来。然后通过比较,当前样本分属于各个类的概率的最高值,得到当前样本的分类结果。

本发明还提供了一种基于直线边缘特征的目标识别系统,包括获取直线边缘模块,所述获取直线边缘模块包括如下模块:模块m1:根据从摄像机获取到的图像,获取图像垂直边缘和水平边缘进行检测,获取第一直线边缘;模块m2:根据从摄像机获取到的图像,通过比较图像的连通域中的像素数量和预设像素数量,保留第二直线边缘;模块m3:根据从摄像机获取到的图像,获取梯度值,对梯度值进行二值化,将垂直边缘分割出来,保留第三直线边缘;模块m4:将第一直线边缘、第二直线边缘以及第三直线边缘相融合,得到融合后的直线边缘;模块m5:将融合后的直线边缘进行区分;还包括应用模块:所述应用模块:将获取到的图像的尺寸进行归一化;获取图像中的所有直线边缘,并且进行描述;根据描述,获取子分类器得分;比较子分类器之间的得分,获取当前的图像分类;其中,所述描述为直线的角度、长度以及直线中点相对于目标中心的位置。

所述模块m1包括如下子模块m:模块m1.1:根据从摄像机获取到的图像,将图像的每一个像素进行遍历,获取每个像素的水平梯度;模块m1.2:以预设像素数量为单位将图像分割为多个等高水平带,对所述多个等高水平带进行逐一检测,获取垂直边缘;模块m1.3:对当前水平带进行逐列扫描,确定垂直边缘;模块m1.4:提取当前列的所有像素对应的水平梯度值,获取平均水平梯度值;模块m1.5:根据平均水平梯度值,确定当前列为垂直边缘;模块m1.6:设定扫描窗口,对扫描窗口的所有平均水平梯度值进行遍历,若扫描窗口中心位置对应的梯度值大于或小于扫描窗口内的最大值,则将扫描窗口中心位置的梯度值记为0,否则,则保留扫描窗口中心位置的梯度值;模块m1.7:设定预设阈值,若当前列的平均水平梯度值大于预设阈值,则此处为边缘并将此边缘标记出来,否则,则忽略此边缘;模块m1.8:对相邻水平带的所有垂直边缘进行融合,若相邻行的垂直边缘的水平距离偏差在预设范围内,则记为同一条垂直边缘,即为第一直线边缘,否则,则返回模块m1.6继续执行。

所述模块m1.1包括如下子模块:模块m1.1.1:提取当前像素左右两侧的像素的亮度值;模块m1.1.2:根据两侧的像素的亮度值,获取平均亮度值;所述模块m1.8包括如下子模块m:模块m1.8.1:将垂直边缘沿预设方向延伸,获取边缘结束位置,若垂直梯度值大于预设阈值,则继续延伸,否则,则该垂直边缘记为边缘结束位置;

所述模块m2包括如下子模块:模块m2.1:根据从摄像机获取到的图像,获取图像中的所有边缘;其中,所有边缘点记为白色像素,所有非边缘点记为黑色像素;模块m2.2:在所有边缘中,获取并保留第二直线边缘;所述模块m2.2包括如下子模块m:模块m2.2.1:在所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;模块m2.2.2:过滤t字形交叉位置和x形交叉位置上的边缘点;模块m2.2.3:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;模块m2.2.4:过滤拐角度数小于阈值角度的边缘点;模块m2.2.5:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第二直线边缘。

所述模块m3包括如下子模块:模块m3.1:根据从摄像机获取到的图像,获取图像的梯度值;其中,所述梯度值为水平梯度值和垂直梯度值之和;模块m3.2:对梯度值进行二值化,获取二值化图像;所述模块m3.2包括如下子模块m:模块m3.2.1:在二值化图像的所有边缘中,将所有的t字形交叉位置和x形交叉位置上的边缘点检测出来;模块m3.2.2:遍历所有的边缘点,获取拐角度数小于阈值角度的边缘点的位置;模块m3.2.3:过滤拐角度数小于阈值角度的边缘点;模块m3.2.4:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第三直线边缘。

所述模块m4包括如下子模块:模块m4.1:获取第一直线边缘、第二直线边缘以及第三直线边缘这三者的角度值;模块m4.2:将角度值等分为预设数量,每次融合预设数量等分中的一个;模块m4.3:将所有属于同一个角度等分范围的总直线边缘,都绘制到图像上;模块m4.4:过滤绘制过程中的重叠的总直线边缘,获取过滤图像;其中,所述总直线边缘为第一直线边缘、第二直线边缘第三直线边缘中的任一种或任多种边缘;模块m4.5:将过滤图像重新进行连通域分析,提取直线;模块m4.6:对所有的位置较近的直线,进行连接;其中,所述位置较近的直线是指两直线之间的距离小于预设像素数量形成的距离;模块m4.7:将相互平行的直线融合为一条直线,即为融合后的直线。

所述模块m5包括如下子模块:模块m5.1:在融合后的直线的边缘上挑选预设数量的关键点;模块m5.2:根据关键点的位置,选取参考点;模块m5.3:记录关键点的平均像素亮度值;模块m5.4:记录参考点的平均像素亮度值;模块m5.5:若关键点的平均像素亮度值与参考点的平均像素亮度值之间的差值大于或小于预设值时,则所述融合后的直线的边缘为屋脊型边缘,否则,则为阶跃型边缘;所述参考点的平均像素亮度值包括以关键点为基准的左右两侧的参考点。

所述基于直线边缘特征的目标识别系统还包括如下模块:模块7:对所有的已经配对成功的直线对进行分析,计算它们的角度差,然后计算平均角度差;模块8:根据配对直线之间的平均角度差,对当前图像进行旋转;模块9:计算旋转之后,配对直线之间的水平距离,以及垂直距离;模块10:根据水平距离和垂直距离,对当前图像进行平移,最终完成稳像操作。

本发明提供的基于直线边缘特征的目标识别系统,还包括所述应用模块包括如下子模块:子分类器架构获取模块:每条直线记为一个子分类器;不同的子分类器具有不同的权重;,根据直线的角度、长度以及直线中点相对于目标中心的位置,获取子分类器的得分;根据子分类器的得分,获取分类器组件的得分;其中,所述分类器组件包括子分类器;子分类器选择模块:每条直线记为一个子分类器;对每个类别的图像,进行遍历;对当前样本中的每条直线,进行遍历;针对当前直线,在其他图像中,找到能够匹配的直线;统计每条直线能够匹配的直线的数目;对所有图像、所有直线的匹配数目进行排序;根据排序前后,对直线进行遍历,去掉代表同一个子分类器的直线;过滤重复的直线,获取剩下的直线,记为子分类器;子分类器权重获取模块:每一个子分类器的权重,按照匹配直线的数目进行分配;子分类器建模模块:获取所有的子分类器,建立模型。

需要说明的是,本发明使用的序数形容词“第一”、“第二”及“第三”等用来描述共同的对象,仅表示指代相同对象的不同实例,而并不是要暗示这样描述的对象必须采用给定的顺序,无论是时间地、空间地、排序地或任何其它方式。

本发明还提供了一种信息处理系统,本领域技术人员可以将信息处理方法理解为所述信息处理系统的优选例,所述信息处理系统可以通过执行所述信息处理方法中的步骤流程予以实现。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1