大畸变棋盘格图像角点检测方法及装置
技术领域
本发明涉及数字图像处理领域,尤其涉及一种大畸变棋盘格图像角点检测方法及装置。
背景技术
360°环视全景辅助驾驶系统是当今的热点研究问题,其使用的鱼眼摄像机虽然获得大视野图像,但也引入了严重的畸变,这些严重畸变的图像难以满足人的正常视觉需求。为增强图像的视觉效果,需对鱼眼畸变图像进行标定,检测角点信息,从而构建其与真实世界坐标系的空间对应关系。在鱼眼摄像机标定中常使用棋盘格图像,大畸变棋盘格图像角点检测的方法主要有SIFT(Scale-invariant feature transform,尺度不变特征变换)和Martin(Flajolet-Martin)两种算法。SIFT算法是对原始图像建立多尺度的图像,并在每个尺度下计算对应的特征点构成金字塔,利用LOG(Laplacian of Gaussian,拉普拉斯算子)近似DOG(Difference of Gaussian,差分算子)找到角点。而Martin算法是对二值化的图像提取轮廓并逼近四边形,将相邻的四边形连接在一起匹配以寻找角点对。其中,SIFT算法计算量大,计算得到的角点冗余度大需要筛选,对于鱼眼相机标定并不是十分可取。Martin算法原理简单,但是在单个连通区域中寻找角点时并不能实现计算。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种大畸变棋盘格图像角点检测方法、装置及计算机存储介质,旨在解决现有大畸变棋盘格图像角点检测算法计算量大、无法检测单个连通区域角点的问题。
为实现上述目的,本发明提供一种大畸变棋盘格图像角点检测方法,所述大畸变棋盘格图像角点检测方法包括:
确认待处理的棋盘格图像中连通区域的中心点,并以所述中心点为原点建立直角坐标系;
确认所述连通区域的轮廓点的坐标数值,根据所述坐标数值选取符合预设条件的轮廓点,并将选取的所述轮廓点定义为当前直角坐标系中的角点候选点;
以所述中心点为原点,按照预设旋转方式旋转所述直角坐标系,并在每次旋转停止后重新选取符合预设条件的轮廓点定义为当前所述直角坐标系中的角点候选点;
在所述直角坐标系的旋转次数达到预设旋转次数后,获取各个轮廓点被定义为角点候选点的次数,将预设数量的角点候选点作为所述连通区域的角点,其中,所述连通区域的角点被定义为角点候选点的次数大于其它轮廓点被定义为角点候选点的次数。
优选地,所述确认所述连通区域的轮廓点的坐标数值的步骤包括:
对所述连通区域进行轮廓点求取,并将已求取的各个轮廓点聚类为轮廓点集;其中,所述轮廓点为构成所述连通区域的像素点;
对所述连通区域求取轮廓点,按照预设方向确认所述轮廓点集中各轮廓点的坐标数值。
优选地,所述确认所述连通区域的轮廓点的坐标数值,根据所述坐标数值选取符合预设条件的轮廓点,并将选取的所述轮廓点定义为当前直角坐标系中的角点候选点的步骤包括:
比较所述轮廓点的坐标数值,分别选取所述轮廓点中横坐标值为最小负数、最大正数的轮廓点,以及纵坐标值为最小负数、最大正数的轮廓点,定义为当前所述直角坐标系中的角点候选点。
优选地,所述预设旋转方式包括,以所述中心点为原点,根据预设旋转角度和预设旋转方向使所述直角坐标系旋转预设次数。
优选地,所述确认待处理的棋盘格图像中连通区域的中心点,并以所述中心点为原点建立直角坐标系的步骤之前,还包括:
根据待检测棋盘格图像中各个像素点的预设邻接关系,对彼此邻接的所述像素点按照预设算法连接并进行筛选操作,得到所述连通区域。
优选地,所述根据待检测棋盘格图像中各个像素点的预设邻接关系,对彼此邻接的所述像素点按照预设算法连接并进行筛选操作,得到所述连通区域的步骤之前,包括:
获取原始图像,在所述原始图像上选取检测区域;
对已选取的所述检测区域进行二值化处理,以得到待检测棋盘格图像。
本发明还提供一种大畸变棋盘格图像角点检测装置,所述大畸变棋盘格图像角点检测装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的大畸变棋盘格图像角点检测程序,其中:所述大畸变棋盘格图像角点检测程序被所述处理器执行时实现如上所述的大畸变棋盘格图像角点检测方法的步骤。
本发明提供一种大畸变棋盘格图像角点检测方法、装置及计算机存储介质,通过确认待处理的大畸变棋盘格图像中连通区域的中心点,并以所述中心点为原点建立直角坐标系;确认所述连通区域的轮廓点的坐标数值,根据所述坐标数值选取符合预设条件的轮廓点,并将选取的所述轮廓点定义为当前直角坐标系中的角点候选点;以所述中心点为原点,按照预设旋转方式旋转所述直角坐标系,并在每次旋转停止后重新选取符合预设条件的轮廓点定义为当前所述直角坐标系中的角点候选点;在所述直角坐标系的旋转次数达到预设旋转次数后,获取各个轮廓点被定义为角点候选点的次数,将预设数量的角点候选点作为所述连通区域的角点,其中,所述连通区域的角点被定义为角点候选点的次数大于其它轮廓点被定义为角点候选点的次数。
本发明公开的大畸变棋盘格图像角点检测方法简便快捷、可检测单个连通区域角点。
附图说明
图1为本发明一种大畸变棋盘格图像角点检测方法第一实施例的流程示意图;
图2为本发明一种大畸变棋盘格图像角点检测方法第二实施例的流程示意图;
图3为本发明一种大畸变棋盘格图像角点检测方法第三实施例的流程示意图的流程示意图;
图4为本发明大畸变棋盘格图像示意图;
图5为本发明大畸变棋盘格图像角点检测方法建立直角坐标系的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:确认待处理的大畸变棋盘格图像中连通区域的中心点,并以所述中心点为原点建立直角坐标系;确认所述连通区域的轮廓点的坐标数值,根据所述坐标数值选取符合预设条件的轮廓点,并将选取的所述轮廓点定义为当前直角坐标系中的角点候选点;以所述中心点为原点,按照预设旋转方式旋转所述直角坐标系,并在每次旋转停止后重新选取符合预设条件的轮廓点定义为当前所述直角坐标系中的角点候选点;在所述直角坐标系的旋转次数达到预设旋转次数后,获取各个轮廓点被定义为角点候选点的次数,将预设数量的角点候选点作为所述连通区域的角点,其中,所述连通区域的角点被定义为角点候选点的次数大于其它轮廓点被定义为角点候选点的次数。
由于现有大畸变棋盘格图像角点检测Martin算法无法检测单个连通区域角点,本发明提供本发明的主要目的在于提供一种大畸变棋盘格图像角点检测方法、装置,用以检测大畸变棋盘格图像角点,特别针对性地检测单个连通区域角点。
在本发明大畸变棋盘格图像角点检测方法的具体应用时,可参考图1,图1为本发明大畸变棋盘格图像角点检测方法第一实施例的流程示意图,所述大畸变棋盘格图像角点检测方法包括:
步骤S10,确认待处理的大畸变棋盘格图像中连通区域的中心点,并以所述中心点为原点建立直角坐标系;
步骤S20,确认所述连通区域的轮廓点的坐标数值,根据所述坐标数值选取符合预设条件的轮廓点,并将选取的所述轮廓点定义为当前直角坐标系中的角点候选点;
棋盘格图像是进行摄像机标定时最常用的图像,由黑白相间的四边形组成,并以角点作为特征点。上述四边形并非严格意义上的四边形,尤其是对于鱼眼摄像机拍摄的棋盘格图像,往往是大畸变棋盘格,如图4所示。基于角点的特性,通常一个棋盘格的角点到棋盘格中心点的距离会大于其它轮廓点到棋盘格中心的距离。根据勾股定理可知,相比于其它轮廓点,角点一般会在直角坐标系的某一条数轴上对应的坐标值有最大正数值或者最小负数值。比较棋盘格连通区域中各轮廓点的坐标值,从而确定连通区域的角点。
具体地,所述连通区域的轮廓点为构成所述连通区域的像素点;对所述连通区域进行轮廓点求取,并将已求取的各个轮廓点聚类为轮廓点集。对所述连通区域求取轮廓点,按照预设方向确认所述轮廓点集的各轮廓点的坐标数值。预设方向可以是顺时针方向或者逆时针方向。比较所述轮廓点的坐标数值,分别选取所述轮廓点中横坐标值为最小负数、最大正数的轮廓点,以及纵坐标值为最小负数、最大正数的轮廓点,定义为当前所述直角坐标系中的角点候选点。
步骤S30,以所述中心点为原点,按照预设旋转方式旋转所述直角坐标系,并在每次旋转停止后重新选取符合预设条件的轮廓点定义为当前所述直角坐标系中的角点候选点;
步骤S40,在所述直角坐标系的旋转次数达到预设旋转次数后,获取各个轮廓点被定义为角点候选点的次数,将预设数量的角点候选点作为所述连通区域的角点,其中,所述连通区域的角点被定义为角点候选点的次数大于其它轮廓点被定义为角点候选点的次数。
在一具体实施中,所述连通区域的中心点可以是连通区域的质心,计算连通区域的质心方法也有很多,例如几何距算法,这里不做限制。计算出质心后,在连通区域中进行标记并绘制出质心以便于识别。对获取到的棋盘格图像进行二值化等处理后,可以筛选出黑白像素点组成的多个连通区域;根据连通区域轮廓上的黑白像素点及像素点之间的位置关系,可以对连通区域进行轮廓点识别和标记,并经聚类得到轮廓点集。
在另一具体实施中,为使角点的检测结果更加准确,可在新的直角坐标系下继续重复定义角点候选点,以进一步验证和确认角点候选点。所述预设旋转方式包括,以所述中心点为原点,根据预设旋转角度和预设旋转方向将所述直角坐标系旋转。具体地,以连通区域的中心点为原点,将直角坐标系以预设角度进行旋转,用以建立新的直角坐标系;重复执行步骤S10至S30的操作,最终判定被确定为角点候选点次数最多的四个轮廓点为某一个连通区域的角点。其中,预设角度为0°至90°之间的任一角度值,为增强本发明的角点检测方法的鲁棒性,预设角度可设置得小些,包括但不限:10°、20°、30°等角度,第二次及往后旋转直角坐标系时,预设角度可以改变。预设方向可以是顺时针或者逆时针方向。例如,以固定步长改变预设角度θ大小,重新旋转直角坐标系,多次计算,对得到的角点候选点进行投票,对出现次数最多的四个候选点定义为四个角点。一般来说,旋转直角坐标系的次数越多,角点的检测结果会越准确。通过实际测试表明,在多次随意改变鱼眼镜头的安装条件下,仍然可以有效对棋盘格角点进行检测。
在本实施例中,通过在连通区域中心的建立直角坐标系,用于确定角点候选点;并重复执行确定角点候选点的步骤,将确定为角点候选点次数最多的四个轮廓点判定为角点,从而实现对大畸变棋盘格图像的角点检测。本实施例中的大畸变棋盘格图像角点检测方法简便快捷、可检测大畸变棋盘格图像单个连通区域角点,大大提升了角点检测的准确性,对复杂环境有较高的实用性和鲁棒性。该方法可高效地对棋盘格的角点进行检测,是360°环视全景辅助驾驶系统鱼眼摄像机标定的关键部分。
进一步的,参考图2,图2为本发明大畸变棋盘格图像角点检测方法第二实施例的流程示意图,基于上述图1所示的第一实施例,所述确认所述连通区域的轮廓点的坐标数值,根据所述坐标数值选取符合预设条件的轮廓点,并将选取的所述轮廓点定义为当前直角坐标系中的角点候选点的步骤包括:
步骤S21,对所述连通区域进行轮廓点求取,并将已求取的各个轮廓点聚类为轮廓点集;其中,所述轮廓点为构成所述连通区域的像素点;
对连通区域的轮廓点求取,并将各个轮廓点聚类为轮廓点集是本领域的常规技术手段,这里不再赘述。
步骤S22,对所述连通区域求取轮廓点,按照预设方向确认所述轮廓点集的各轮廓点的坐标数值。
步骤S23,比较所述轮廓点的坐标数值,分别选取所述轮廓点中横坐标值为最小负数、最大正数的轮廓点,以及纵坐标值为最小负数、最大正数的轮廓点,定义为当前所述直角坐标系中的角点候选点。
在计算连通区域的中心点、轮廓点集之后,将N个连通区域中的第k个连通区域的中心点记为Gk,轮廓集中轮廓点记为Dki,其中k≤N,且i、k、N均为正整数。如图5所示,以连通区域的中心点Gk作为原点,建立直角坐标系,设置第一数轴为X轴,第二数轴为Y轴,则该连通区域的某一轮廓点Dki的坐标值为(xki,yki)。由此,通过比较各轮廓点坐标值,得出X轴的轴向坐标值为最小负数、最大正数对应的两个轮廓点,以及得出Y轴的轴向坐标值为最小负数、最大正数对应的两个轮廓点。将上述四个轮廓点确定为角点候选点。对每一个连通域进行上述操作,即可求得每个连通域的四个角点候选点。需要说明的是,上述已确定为角点候选点的轮廓点也可以直接确定为角点,并进行输出。
本实施例通过对大畸变棋盘格的连通区域进行轮廓点求取,并得到轮廓点在构造的直角坐标系中坐标值,从而通过轮廓点的坐标值,确认坐标值中含有极大/极小轴向坐标值的轮廓点为角点候选点,从而实现对大畸变棋盘格图像的角点检测。上述方法简便快捷,可检测大畸变棋盘格图像单个连通区域角点,大大提升了角点检测的准确性。
进一步的,参照图3,本发明第三实施例提供一种大畸变棋盘格图像角点检测方法,基于上述图1及图2所示的实施例,所述确认已获取到的棋盘格图像中连通区域的中心点,并以所述中心点为原点建立直角坐标系的步骤之前的步骤之前,还包括:
步骤S50,获取原始图像,在所述原始图像上选取检测区域;
步骤S60,对已选取的所述检测区域进行二值化处理,以得到待检测棋盘格图像。
获取棋盘格原始图像可以使用常见的各种数字图像获取方式,例如利用数码相机拍摄的黑白棋盘格标定板。将棋盘格原始图像按照使用者实际需要或者实验经验数据选取某部分区域,并将得到的区域图像进行去噪、畸形校正等预处理后,进行二值化处理。二值化是图像处理基本操作,一般可以在Matlab、Opencv等软件上采用阈值法或其它二值化方法即可实现。经过灰度化、二值化处理后,图像变为只有黑、白像素点的待检测图像,其中黑、白像素点的灰度值分别为0、255。得到待检测棋盘格图像后,需要继续执行以下步骤以选取用于角点检测的连通区域。
步骤S70,根据待检测棋盘格图像中各个像素点的预设邻接关系,对彼此邻接的所述像素点按照预设算法连接并进行筛选操作,得到所述连通区域。
经过二值化处理后的待检测棋盘格图像只有灰度值分别为0或255的黑、白像素点,相同灰度值的像素点之间若相互接触,则像素点可进行相互邻接;所有彼此邻接的像素点构成的一个封闭集合区域就是一个连通区域。在本实施例中,将待检测图像中的白色像素点根据预设的邻接关系进行连接,并按照预设算法构成所述连通区域。其中,邻接关系可以是4-邻接、8-邻接、m-邻接中的一种,构成连通区域的算法有很多种,例如Matlab中连通区域构造函数bwlabel使用的遍历算法、开源库Cvblob中的轮廓搜索算法等,这里就不再赘述。
将上述构造得出的连通区域一一进行标记,并根据预设条件筛选出用于检测角点的连通区域。具体地,将每个连通区域标识成块,及/或对每个连通区域赋予一个统一的数字标号,以使得每个连通区域都有一个唯一的数字标号以作标记。此外,所述预设条件可以是根据连通区域的面积大小、宽高比等条件进行连通区域筛选,也可以由用户指定特殊连通区域。具体地,可以选取面积大于某一数值或者在所有连通区域中面积较大的连通区域。筛选后可以得到N个棋盘格的连通区域,其中N为正整数。根据预设条件筛选出用于进行检测角点的连通区域之后,需要进一步计算连通区域的中心点和轮廓点,以进行后续的角点检测。
在本实施例中,通过对获取的棋盘格原始图像进行区域选取、二值化、构造标记和筛选等处理,从而得到用于角点检测的连通区域。根据所得到的连通区域进一步获取中心点、轮廓点等几何参数,以便于进一步角点判别检测。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。