基于直线边缘特征的稳像方法、系统与流程

文档序号:15965403发布日期:2018-11-16 23:08阅读:123来源:国知局

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

背景技术

近年来,视频监控设备在海事监控领域应用得越来越广泛。高清的视频图像,为海事执法人员带来了极大的遍历。但是,由于海面的特殊性,安装在舰船上的监控设备,很容易随着舰船的上下、左右晃动而发生晃动,进而造成所拍摄的视频画面出现较大幅度的平移、旋转等现象。此时很容易造成执法人员在观看视频时发生眩晕的感觉,而且也很不利于操作。

传统的视频稳像方法,都是基于在相邻帧之间检测兴趣点,然后对兴趣点进行逐点匹配进而变换图像的策略。该策略的时间开销较大,很容易造成算法迟滞,影响整体效果。

专利文献申请号为201610704452.7,公布号为cn106331480a公开了一种基于图像拼接的视频稳像方法,包括:利用图像拼接技术将摄像机拍摄的视频拼接成广角视图的视频,对拼接后的视频的各个帧进行中心点检测,通过相邻帧中心点的累积位移矢量获得摄像机的原始运动路径;利用拟合曲线对所述原始运动路径进行拟合,得到平滑后的运动路径;根据所述平滑后的运动路径在所述广角视图的视频中截取图像,重新生成稳定视频。该专利文献公开的方法针对可以拼接为全景图的视频,将改进的曲线拟合法用于获取平滑的相机路径,可以有效地估计相机的原始运动趋势,解决了计算量大的缺点,提高算法效率;提出通过迭代运算调整相机自身运动趋势方向上的运动矢量,以提高轨迹点的平滑度,增强视觉流畅体验。该专利文献提供的模型使用性的二维运动模型相比于三维的运动模型,速度和鲁棒性更好;但由于该专利文献提供的模型不够灵活,在描述复杂的场景时力所不逮。当场景中存在深度变换、视差、物体移动等问题时,算法可能失效并产生低质量的视频输出。

专利文献申请号为201610704452.7,公布号为cn106331480a公开了一种视频稳像系统及方法,为解决现有稳像处理系统无法达到高帧率视频实时处理要求的问题,本系统包括:用于采集视频数据的摄像单元;用于获取所述摄像单元姿态变化并输出相应三维姿态数据的姿态获取单元;与所述姿态获取单元电连接,用于根据所述三维姿态数据计算并输出补偿所述摄像单元姿态变化所需变换矩阵的补偿计算单元;与所述补偿计算单元和所述摄像单元电连接,用于根据所述变换矩阵对所述摄像单元输出的视频数据进行姿态变化消除的视频处理单元。该稳像系统可实现实时输出1080p分辨率、每秒40帧的稳像效果,视频输出延迟低于100ms,采用rtsp视频流的输出方式可以很方便地进行播放观看,大大方便了产品化。该专利文献的光学防抖需要在相机中安装陀螺仪来获取相机抖动,然后通过高精度机械结构移动镜片或感光元件进行补偿,保证光路的稳定。这种方式所用的机械结构需要很高的工艺要求,成本昂贵。另外,该专利文献的云台稳像所需要的高性能机械云台结构比较复杂,产品成本较高;此外云台的体积一般都比较大,有一定的使用环境限制。现行电子稳像由于视觉算法的复杂度和精度问题以及摄像机抖动对画面曝光质量的影响,稳像效果和性能低于光学防抖和云台稳像。



技术实现要素:

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

根据本发明提供的一种基于直线边缘特征的稳像方法,包括获取直线边缘步骤,所述获取直线边缘步骤包括如下步骤:

步骤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为本发明提供的基于直线边缘特征的稳像方法的步骤1的流程图。

图2为本发明提供的基于直线边缘特征的稳像方法的步骤2的流程图。

图3为本发明提供的基于直线边缘特征的稳像方法的步骤3的流程图。

图4为本发明提供的基于直线边缘特征的稳像方法的步骤4的流程图。

图5为本发明提供的基于直线边缘特征的稳像方法的步骤5的流程图。

图6为本发明提供的基于直线边缘特征的稳像方法的直线边匹配的流程图。

图7为本发明提供的基于直线边缘特征的稳像方法的视频稳像的流程图。

具体实施方式

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

如图1至图7所示,本发明提供了一种基于直线边缘特征的稳像方法,包括获取直线边缘步骤,所述获取直线边缘步骤如下步骤:步骤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之前同行会对样本,即从摄像机获取的图像的尺寸进行归一化,需要提前对目标图像,即从摄像机获取的图像的尺寸进行归一化。这样方便后续对样本进行行切分,使得各行高度一致。

为了防止单独一种检测方法造成的特征遗漏,本专利采用多种方法进行边缘检测。其中基于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:获取剩余的边缘点的所有连通域,若当前连通域的高度小于第一预设像素数量,而当前连通域的高长度大于第二预设像素数量,则保留该边缘点作为第三直线边缘。具体地说,

本发明采用的第三种直线边缘检测方法,就是直接计算梯度值,然后二值化,然后找较长的边缘。具体如下: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个像素),进行融合,只保留其中一条即可。

在图像中,三角屋脊型边缘的垂直方向剖面图,与屋顶的形状类似,具有中间高,两侧低的特点。而阶跃型边缘则类似于台阶,一侧高,一侧低。由于屋脊型边缘与阶跃型边缘所具有的完全不同的外形,因此在检测边缘时,需要对其加以区分,以提高目标的描述能力。采用如下方法对前述检测到的边缘进行区分: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)依次对上述步骤进行循环,直到完成所有直线的匹配为止。

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

本发明还提供了一种基于直线边缘特征的稳像系统,包括获取直线边缘模块,所述获取直线边缘模块包括如下模块:模块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:根据水平距离和垂直距离,对当前图像进行平移,最终完成稳像操作。

本发明提供的基于直线边缘特征的稳像系统,还包括模块m6:所述模块m6:获取目标图像,并通过获取直线边缘模块来获取目标图像的所有直线边缘;在所有直线边缘中,找出目标本体中预设长度的边缘在当前目标图像所对应的位置作为对比直线边缘;将对比直线边缘与目标本体的预设长度的边缘进行匹配,若匹配度大于等于预设匹配度,则对比直线边缘在当前目标图像所对应的位置即为目标的新位置;所述获取直线边缘步骤包括模块m1至模块m5。

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

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

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

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

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