CN117522963A - 棋盘格的角点定位方法、装置、存储介质及电子设备 - Google Patents
棋盘格的角点定位方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117522963A CN117522963A CN202311482960.1A CN202311482960A CN117522963A CN 117522963 A CN117522963 A CN 117522963A CN 202311482960 A CN202311482960 A CN 202311482960A CN 117522963 A CN117522963 A CN 117522963A
- Authority
- CN
- China
- Prior art keywords
- pixel
- points
- determining
- checkerboard
- point
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 239000011159 matrix material Substances 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005457 optimization Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 19
- 238000003384 imaging method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种棋盘格的角点定位方法、装置、存储介质及电子设备,该方法包括:获取棋盘格图像对应的二值化图像,棋盘格图像为利用相机对棋盘格进行拍摄得到;根据二值化图像中像素点的值,确定二值化图像中的多个连通域;根据二值化图像和每个连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;根据每个顶点集合中顶点的像素坐标,确定棋盘格中角点的世界坐标和像素坐标,从而无需通过像素梯度的计算来定位棋盘格各角点位置,避免梯度计算中因像素误差导致棋盘格边界像素点中棋盘格角点定位错误的问题,有效提高了棋盘格角点的定位准确性。
Description
技术领域
本申请属于相机标定技术领域,尤其涉及一种棋盘格的角点定位方法、装置、存储介质及电子设备。
背景技术
相机的成像过程实质上是坐标系的转换过程。首先是空间中的点由世界坐标系转换到相机坐标系,然后再将其投影到成像平面,获得图像坐标系,最后再将成像平面上的图像坐标系转换到像素坐标系。相机标定过程实质上是求解转换参数过程,转换参数主要包括内外参矩阵和畸变参数。
现有的相机标定大多是借助标定板完成,相机标定板有多种类型,棋盘格是其中最常用的标定板,但是现有的一些基于棋盘格的相机标定方法无法准确寻找棋盘格的各角点,角点定位误差较大,进而在基于角点位置进行相机标定时,标定准确度较低。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种棋盘格的角点定位方法、装置、存储介质及电子设备,能较准确地定位出棋盘格的各角点。
第一方面,本申请提供了一种棋盘格的角点定位方法,包括:
获取棋盘格图像对应的二值化图像,所述棋盘格图像为利用相机对棋盘格进行拍摄得到;
根据所述二值化图像中像素点的值,确定所述二值化图像中的多个连通域;
根据所述二值化图像和每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;
根据每个所述顶点集合中顶点的像素坐标,确定所述棋盘格中角点的世界坐标和像素坐标,以对所述角点进行定位。
在一些实施例中,所述获取棋盘格图像对应的二值化图像,包括:
对所述棋盘格图像进行二值化;
对二值化后的所述棋盘格图像进行膨胀。
在一些实施例中,所根据所述二值化图像和每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合,包括:
根据每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定起始像素点;
根据所述起始像素点和所述二值化图像,从相应连通域的像素点中搜索出多个边界点,得到边界点集合,每个所述连通域对应一个所述边界点集合;
根据所述边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合。
在一些实施例中,所述根据所述起始像素点和所述二值化图像,从相应连通域的像素点中搜索出多个边界点,包括:
确定所述二值化图像中与所述起始像素点相邻的八个第一像素点;
从所述八个第一像素点中的左上角开始,按照顺时针方向从所述八个第一像素点中搜索出第一个值为第一预设值的所述第一像素点,作为当前边界点;
确定所述二值化图像中与所述当前边界点相邻的八个第二像素点,并从前一搜索路径中确定所述八个第二像素点中,值为第二预设值且位于所述当前边界点前一邻近位置的所述第二像素点,作为更新后的当前边界点,并返回执行所述确定所述二值化图像中与所述当前边界点相邻的八个第二像素点的步骤,直至搜索到所述起始像素点为止。
在一些实施例中,所述根据所述边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合,包括:
根据所述边界点的像素坐标,从所述边界点集合中寻找距离最远的两个所述边界点,作为起始的两个顶点;
确定当前所有的所述顶点中任意两个相邻的所述顶点之间的连接线;
从所述边界点集合中,确定除所述顶点之外距离所述连接线最远的所述边界点,作为候选边界点,每条所述连接线对应一个所述候选边界点;
当所述候选边界点到相应连接线之间的距离大于预设阈值时,将所述候选边界点作为一个顶点,并返回执行所述确定当前所有的所述顶点中任意两个相邻的所述顶点之间的连接线的步骤;
当所述候选边界点到相应连接线之间的距离小于或等于所述预设阈值时,将当前的所有所述顶点作为相应连通域的顶点集合。
在一些实施例中,所述根据每个所述顶点集合中顶点的像素坐标,确定所述棋盘格中角点的世界坐标和像素坐标,包括:
根据每个所述顶点集合中顶点的像素坐标,从所有的所述连通域中确定多个目标连通域;
根据所述目标连通域对应的所述顶点集合中顶点的像素坐标,确定所述棋盘格的角点、所述角点的像素坐标、以及世界坐标系的原点;
根据所述原点和预设顶点间隔距离,确定所述角点的世界坐标。
在一些实施例中,所述根据每个所述顶点集合中顶点的像素坐标,从所有的所述连通域中确定多个目标连通域,包括:
按照顺时针或逆时针方向,将每个所述顶点集合中的顶点依次连接,得到相应连通域对应的多边形;
获取内角和为360°且形状为四边形的所述多边形,作为候选多边形,并获取存在多个所述顶点均与其它的所述候选多边形相邻的所述候选多边形,作为目标多边形;
将所述目标多边形对应的所述连通域作为目标连通域。
在一些实施例中,所述根据所述目标连通域对应的所述顶点集合中顶点的像素坐标,确定所述棋盘格的角点、所述角点的像素坐标、以及世界坐标系的原点,包括:
确定相邻的两个所述目标连通域之间间距最小的两个所述顶点之间的中间点,作为所述棋盘格的角点,并将相应的两个所述顶点的像素坐标的均值作为所述角点的像素坐标;
确定所有的所述目标连通域的所述顶点集合中位于左上角的所述顶点,作为世界坐标系的原点。
在一些实施例中,还包括:
根据所述角点的所述世界坐标和所述像素坐标,确定所述相机的内参矩阵和外参矩阵;
利用鱼眼相机模型和全局优化损失函数,根据所述角点的所述世界坐标、所述像素坐标、所述内参矩阵和所述外参矩阵,确定所述相机的畸变参数,以对所述相机进行标定。
第二方面,本申请提供了一种棋盘格的角点定位装置,包括:
获取模块,用于获取棋盘格图像对应的二值化图像,所述棋盘格图像为利用相机对棋盘格进行拍摄得到;
第一确定模块,用于根据所述二值化图像中像素点的值,确定所述二值化图像中的多个连通域;
第二确定模块,用于根据所述二值化图像和每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;
第三确定模块,用于根据每个所述顶点集合中顶点的像素坐标,确定所述棋盘格中角点的世界坐标和像素坐标,以对所述角点进行定位。
在一些实施例中,所述获取模块具体用于:
对所述棋盘格图像进行二值化;
对二值化后的所述棋盘格图像进行膨胀。
在一些实施例中,所述第二确定模块具体用于:
根据每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定起始像素点;
根据所述起始像素点和所述二值化图像,从相应连通域的像素点中搜索出多个边界点,得到边界点集合,每个所述连通域对应一个所述边界点集合;
根据所述边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合。
在一些实施例中,所述第二确定模块具体用于:
确定所述二值化图像中与所述起始像素点相邻的八个第一像素点;
从所述八个第一像素点中的左上角开始,按照顺时针方向从所述八个第一像素点中搜索出第一个值为第一预设值的所述第一像素点,作为当前边界点;
确定所述二值化图像中与所述当前边界点相邻的八个第二像素点,并从前一搜索路径中确定所述八个第二像素点中,值为第二预设值且位于所述当前边界点前一邻近位置的所述第二像素点,作为更新后的当前边界点,并返回执行所述确定所述二值化图像中与所述当前边界点相邻的八个第二像素点的步骤,直至搜索到所述起始像素点为止。
在一些实施例中,所述第二确定模块具体用于:
根据所述边界点的像素坐标,从所述边界点集合中寻找距离最远的两个所述边界点,作为起始的两个顶点;
确定当前所有的所述顶点中任意两个相邻的所述顶点之间的连接线;
从所述边界点集合中,确定除所述顶点之外距离所述连接线最远的所述边界点,作为候选边界点,每条所述连接线对应一个所述候选边界点;
当所述候选边界点到相应连接线之间的距离大于预设阈值时,将所述候选边界点作为一个顶点,并返回执行所述确定当前所有的所述顶点中任意两个相邻的所述顶点之间的连接线的步骤;
当所述候选边界点到相应连接线之间的距离小于或等于所述预设阈值时,将当前的所有所述顶点作为相应连通域的顶点集合。
在一些实施例中,所述第三确定模块具体用于:
根据每个所述顶点集合中顶点的像素坐标,从所有的所述连通域中确定多个目标连通域;
根据所述目标连通域对应的所述顶点集合中顶点的像素坐标,确定所述棋盘格的角点、所述角点的像素坐标、以及世界坐标系的原点;
根据所述原点和预设顶点间隔距离,确定所述角点的世界坐标。
在一些实施例中,所述第三确定模块具体用于:
按照顺时针或逆时针方向,将每个所述顶点集合中的顶点依次连接,得到相应连通域对应的多边形;
获取内角和为360°且形状为四边形的所述多边形,作为候选多边形,并获取存在多个所述顶点均与其它的所述候选多边形相邻的所述候选多边形,作为目标多边形;
将所述目标多边形对应的所述连通域作为目标连通域。
在一些实施例中,所述第三确定模块具体用于:
确定相邻的两个所述目标连通域之间间距最小的两个所述顶点之间的中间点,作为所述棋盘格的角点,并将相应的两个所述顶点的像素坐标的均值作为所述角点的像素坐标;
确定所有的所述目标连通域的所述顶点集合中位于左上角的所述顶点,作为世界坐标系的原点。
在一些实施例中,还包括标定模块,所述标定模块具体用于:
根据所述角点的所述世界坐标和所述像素坐标,确定所述相机的内参矩阵和外参矩阵;
利用鱼眼相机模型和全局优化损失函数,根据所述角点的所述世界坐标、所述像素坐标、所述内参矩阵和所述外参矩阵,确定所述相机的畸变参数,以对所述相机进行标定。
第三方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述的棋盘格的角点定位方法。
第四方面,本申请提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的棋盘格的角点定位方法。
本申请实施例提供的棋盘格的角点定位方法、装置、存储介质及电子设备,通过获取棋盘格图像对应的二值化图像,棋盘格图像为利用相机对棋盘格进行拍摄得到;根据二值化图像中像素点的值,确定二值化图像中的多个连通域;根据二值化图像和每个连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;根据每个顶点集合中顶点的像素坐标,确定棋盘格中角点的世界坐标和像素坐标,以对该角点进行定位,从而无需通过像素梯度的计算来定位棋盘格各角点位置,避免梯度计算中因像素误差导致检测出来的棋盘格边界比较粗、边界像素点中棋盘格角点定位错误的问题,有效提高了棋盘格角点的定位准确性,方法简单且容易实现,程序鲁棒性强。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例提供的棋盘格的角点定位方法的流程示意图;
图2是本申请实施例提供的棋盘格的展示示意图;
图3是本申请实施例提供的棋盘格的角点定位方法的另一流程示意图;
图4是本申请实施例提供的二值化图像中局部区域的展示示意图;
图5是本申请实施例提供的棋盘格的角点定位装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图;
图7是本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
本申请实施例提供了一种棋盘格的角点定位方法、装置、存储介质及电子设备。
请参见图1,图1是本申请实施例提供的棋盘格的角点定位方法的流程示意图,该棋盘格的角点定位方法应用于电子设备中,该电子设备包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机等,该方法包括以下步骤101-104,其中:
101.获取棋盘格图像对应的二值化图像,该棋盘格图像为利用相机对棋盘格进行拍摄得到。
其中,棋盘格由若干个黑色方块(正方形)和白色方块(正方形)组成,每个方块的边长相等,且相邻方块的边缘重合。在对棋盘格进行图像拍摄时,可以将棋盘格倾斜一定角度放置。当棋盘格被拍摄成图像时,由于相邻方块的边缘重合,会形成一些明显的角点,这些角点可以被用来计算相机的内参矩阵和外参矩阵,对相机进行标定,比如请参见图2,图2是本申请实施例提供的棋盘格的展示示意图,角点也即黑色方块之间或白色方块之间的交点。二值化图像中像素点的值可以包括表示黑色的第一预设值、以及表示白色的第二预设值,第一预设值和第二预设值人为设定,比如分别为1和0。棋盘格图像可以是彩色图像或灰度图像,当为彩色图像时,需要先将棋盘格图像转换为灰度图像,再对灰度图像进行二值化和膨胀,使整个图像呈现出明显的只有黑和白的视觉效果。
需要解释的是,当棋盘格被拍摄成图像时,整个图像处于同一个焦距下,拍摄所成的图像具有相同的弥散圆,因此在图像二值化时,棋盘格中方块的边缘会保持相同的变化,形状不会发生不同程度的变化,不会对角点之间的相对位置产生影响。
在一些实施例中,上述步骤101具体可以包括:
对该棋盘格图像进行二值化;
对二值化后的该棋盘格图像进行膨胀。
其中,可以采用简单二值法、平均值法、双峰法等进行图像二值化。二值化可以使图像数据量大大减少,凸显出目标(棋盘格)的轮廓。膨胀是图像处理中最基本的一种形态学操作,膨胀是对二值化物体边界点进行扩充,将与物体接触的所有背景点合并到该物体中,使边界向外部扩张,本方案中膨胀的作用是使相邻黑色正方形完全断开彼此之间的衔接,具体可以通过对二值化后的棋盘格图像进行两次膨胀来实现。
102.根据该二值化图像中像素点的值,确定该二值化图像中的多个连通域。
其中,连通域一般指二值化图像中相邻位置的前景像素点(像素点的值为1)组成的图像区域,可以通过Two-Pass算法确定二值化图像中的所有连通域,其只要对图像做两次遍历,就能对相同连通域内的点打上相同的标记。棋盘格图像对应的连通域,可以包括棋盘格中黑色方块的连通域,还包括拍摄背景中物体对应的连通域。在通过Two-Pass算法确定连通域的过程中,比如第一遍遍历,对每个像素点打上min(labeln(x,y)),即这个像素点邻域(比如8邻域)中像素点的最小label(标签),如果邻域中出现了不同的label,把这些label并到一个集合Si中,即同一个连通域Ci的label在同一个集合中,label(x,y)∈Si,(x,y)∈Ci,然后第二遍遍历对每个像素点的label进行更新,更新为相应集合中最小的label,label(x,y)=min(Si),(x,y)∈Ci,(x,y)为像素点,Ci为第i个连通域。
103.根据该二值化图像和每个连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合。
其中,像素坐标是像素坐标系下的坐标,像素坐标系与成像平面重合,是个二维坐标系,其以成像平面的左上角顶点为原点,x轴和y轴分别平行于成像平面的两条边,单位长度是单个像素的物理尺寸。
在一些实施例中,请参见图3,图3是本申请实施例提供的角点定位方法的另一流程示意图,上述步骤103具体可以包括以下步骤1031-1033,其中:
1031.根据每个连通域中像素点的像素坐标,从相应连通域的像素点中确定起始像素点。
例如,可以遵循从上至下,从左及右的规律寻找每个连通域的起始点,比如请参见图4,图4是本申请实施例提供的二值化图像中局部区域的展示示意图,图中值为1的像素点组成一个连通域,此时,可以将该连通域中顶部偏左侧的像素点作为起始像素点。
1032.根据该起始像素点和该二值化图像,从相应连通域的像素点中搜索出多个边界点,得到边界点集合,每个连通域对应一个该边界点集合。
其中,边界点集合是相应连通域的边界上的像素点的集合。可从起始像素点开始,逐个进行边界点搜索,且在搜索过程中,第一个边界点为起始像素点,后面的边界点都是基于前一边界点周围8个像素点搜索得到的,也即,上述步骤1032具体可以包括:
确定该二值化图像中与该起始像素点相邻的八个第一像素点;
从该八个第一像素点中的左上角开始,按照顺时针方向从该八个第一像素点中搜索出第一个值为第一预设值的该第一像素点,作为当前边界点;
确定该二值化图像中与该当前边界点相邻的八个第二像素点,并从前一搜索路径中确定该八个第二像素点中,值为第二预设值且位于该当前边界点前一邻近位置的该第二像素点,作为更新后的当前边界点,并返回执行该确定该二值化图像中与该当前边界点相邻的八个第二像素点的步骤,直至搜索到该起始像素点为止。
其中,在搜索边界点的过程中,起始像素点是第一个边界点,如果当前像素点是起始像素点(第一个边界点),则从该起始像素点周围8个像素点(也即上述第一像素点)的左上角开始,按照顺时针方向查找剩下的7个像素点,直到找到第一个值为第一预设值(比如1)的像素点,作为第二个边界点,比如若按照顺时针方向,ABCDEFGH为起始像素点周围的这8个像素点(8邻域),且A为左上角的那个,这8个像素点中A、B、E和H的值为第二预设值(比如0),其余的值为第一预设值(比如1),则从A开始,顺时针方向找到的第一个值为第一预设值的像素点为C,C即为第二个边界点。
例如,请继续参见图4,第一预设值为1,第二预设值为0,图4中从起始像素点周围8个像素点中找到的为连通域中顶部偏右侧的值为1的像素点,并将其作为搜索过程中找到的第二个边界点,接着确定该第二个边界点周围8个像素点(也即上述第二像素点),并找到上一搜索路径中第二个边界点的前一像素点,比如图4中找到的第二边界点正上方的值为0的像素点,以该像素点开始,顺时针查找这8个像素点中剩下的像素点,直到找到第一个值为1的像素点,比如图4中找到的为连通域中第二行最右侧的值为1的像素点,并将其作为搜索过程中找到的第三个边界点,之后重复上述第三个边界点的搜索步骤,直至找到连通域边界上的所有边界点,也即直至搜索到该起始像素点(也即第一个边界点),此时,可以结束当前连通域的边界点搜索,继续采用同样的方式进行下一个连通域的边界点搜索,直至完成所有连通域的搜索工作时结束。
1033.根据该边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合。
其中,道格拉斯-普克算法即Douglas-Peucker算法。顶点集合中包括多个顶点,这些顶点之间的连线可以确定连通域的轮廓形状,在对相机进行标定时,需要找到棋盘格对应的连通域。
在一些实施例中,上述步骤1033具体可以包括:
根据该边界点的像素坐标,从该边界点集合中寻找距离最远的两个该边界点,作为起始的两个顶点;
确定当前所有的顶点中任意两个相邻的该顶点之间的连接线;
从该边界点集合中,确定除该顶点之外距离该连接线最远的该边界点,作为候选边界点,每条该连接线对应一个该候选边界点;
当该候选边界点到相应连接线之间的距离大于预设阈值时,将该候选边界点作为一个顶点,并返回执行该确定当前所有的顶点中任意两个相邻的该顶点之间的连接线的步骤;
当该候选边界点到相应连接线之间的距离小于或等于该预设阈值时,将当前的所有顶点作为相应连通域的顶点集合。
其中,对于每一个连通域,都需要先确定其轮廓形状,首先,寻找边界点集合中距离最远的两个边界点作为起始的两个顶点,以此两点连接一条连接线,接着,计算边界点集合中除这两个顶点之外,其它边界点到该连接线的距离,并从中找出距离最远的那个边界点,将这个边界点的距离与预设阈值比较大小,如果大于预设阈值,则将这个边界点作为新的顶点,并重新绘制这个新顶点和已有的顶点之间的连接线作为新的连接线,并重复上述步骤,也即重新确定其它边界点到该新的连接线的距离,基于该距离又去确定新的连接点,直至所有边界点到相应线段的距离小于预设阈值为止。
104.根据每个顶点集合中顶点的像素坐标,确定该棋盘格中角点的世界坐标和像素坐标,以对角点进行定位。
其中,世界坐标和像素坐标具有不同的坐标系,它们的原点位置、单位长度和各个坐标轴的方向通常不同。世界坐标是世界坐标系下的坐标,世界坐标系是由用户定义的三维坐标系,用于描述物体和相机在真实世界中的位置。本方案中,世界坐标系是以棋盘格实物所在平面为xy平面,以垂直该平面的方向为z轴,其中x轴可以是棋盘格的长边所在方向,y轴可以是棋盘格的短边所在方向,世界坐标系的原点位置取决于棋盘格的顶点位置,单位长度取决于棋盘格中方块的尺寸。
在一些实施例中,请继续参见图3,上述步骤104具体可以包括1041-1043,其中:
1041.根据每个顶点集合中顶点的像素坐标,从所有的连通域中确定多个目标连通域。
在一些实施例中,上述步骤1041具体可以包括:
按照顺时针或逆时针方向,将每个顶点集合中的顶点依次连接,得到相应连通域对应的多边形;
获取内角和为360°且形状为四边形的该多边形,作为候选多边形,并获取存在多个顶点均与其它的候选多边形相邻的候选多边形,作为目标多边形;
将该目标多边形对应的连通域作为目标连通域。
其中,目标连通域也即棋盘格中黑色方块对应的连通域。由于棋盘格图像在进行膨胀前,其形状和棋盘格实物本身形状一致,方块和方块之间共边邻接,且每个方块是一个正方形,而对图像进行膨胀后,方块会发生形变,相邻方块间的间距增大,白色方块和黑色方块依然共边邻接,白色方块彼此间增大衔接,黑色方块彼此间会完全断开衔接,黑色方块呈现一个凸四边形的形状,且每个黑色方块周围均与其它黑色方块相邻,比如对于棋盘格非边缘处的黑色方块,其每个顶点均与另一个黑色方块相邻,而对于棋盘格边缘处的黑色方块,其存在两个顶点均与另一个黑色方块相邻。因此,若要筛选出棋盘格中黑色方块对应的目标连通域,需判断每个连通域的顶点围成的形状是否为凸四边形,且该凸四边形的多个顶点均与其它的凸四边形相邻,只有满足这两个条件,才会认为是目标连通域。通常,当四边形的内角和为360°时,该四边形为凸四边形。
1042.根据该目标连通域对应的顶点集合中顶点的像素坐标,确定该棋盘格的角点、该角点的像素坐标、以及世界坐标系的原点。
在一些实施例中,上述步骤1042具体可以包括:
确定相邻的两个该目标连通域之间间距最小的两个该顶点之间的中间点,作为该棋盘格的角点,并将相应的两个该顶点的像素坐标的均值作为该角点的像素坐标;
确定所有的目标连通域的该顶点集合中位于左上角的该顶点,作为世界坐标系的原点。
其中,由于棋盘格图像膨胀之前,相邻两个黑色方块之间存在一个公共的角点,而对棋盘格图像膨胀后,黑色方块对应的图像部分彼此间完全断开衔接,且每个黑色方块的图像部分发生相同的形变,故可以将膨胀后,相邻的两个黑色方块之间最接近的两个顶点的连线中间点作为棋盘格的角点,则该角点的像素坐标也即这两个顶点的像素坐标的算数平均值,并按照从上到下、从左及右的规律,将第一个目标连通域的第一个顶点(位于左上角的顶点)作为世界坐标系的原点。
1043.根据该原点和预设顶点间隔距离,确定该角点的世界坐标。
其中,预设顶点间隔距离也即世界坐标系的单位长度,其大小取决于棋盘格的尺寸,主要是取决于棋盘格的方块尺寸,比如若棋盘格本身方块尺寸为1×1cm,则预设顶点间隔距离为1cm,此时,从该原点开始,按照顺时针方向的若干顶点的世界坐标分别为(1,0),(1,1),(0,1),角点的世界坐标则按照相应顶点的世界坐标计算出。此外,在定位出棋盘格的角点位置之后,可以进一步对相机进行标定,也即根据该角点的该世界坐标和该像素坐标,对该相机进行标定。
其中,相机成像过程可以理解为坐标系空间的三次变换,在不考虑畸变的理想情况下,变换过程依次可以包括:世界坐标系转换到相机坐标系,相机坐标系转换到图像坐标系,图像坐标系转换到像素坐标系,世界坐标系和像素坐标系上面已经进行了介绍,图像坐标系和像素坐标系类似,也是一个二维坐标系,图像坐标系与成像平面重合,以成像平面的中心为坐标原点,x轴和y轴分别平行于成像平面的两条边。相机坐标系和世界坐标系类似,是一个三维坐标系,其以相机的光心为坐标原点,x轴和y轴平行于图像坐标系的x轴和y轴,z轴为相机的光轴。对相机进行标定主要指确定像素坐标系和世界坐标系之间的转换关系。通过标定,可以获得相机成像几何模型的参数,也就是三维空间中点与二维图像中点的对应关系。
在一些实施例中,请继续参见图3,该角点定位方法还可以包括以下步骤105和106,其中:
105.根据该角点的该世界坐标和该像素坐标,确定该相机的内参矩阵和外参矩阵。
其中,可以通过现有的一些世界坐标和像素坐标的转换方式,基于这些角点的世界坐标和像素坐标计算出内参矩阵A和外参矩阵(包括旋转矩阵R和平移矩阵T),内参矩阵取决于相机内部参数,外参矩阵取决于相机坐标系和世界坐标系的位置。
106.利用鱼眼相机模型和全局优化损失函数,根据该角点的该世界坐标、该像素坐标、该内参矩阵和该外参矩阵,确定该相机的畸变参数,以对该相机进行标定。
其中,考虑到相机透镜形状会导致拍出来的图像存在一定的畸变,比如使真实环境中的一条直线在图像中变成了曲线,故在标定时,还需确定畸变参数(比如k1和k2),比如可以通过现有的一些相机畸变参数的确定方式来实现,从而在相机标定过程中,需要确定(A,k1,k2,R,T)这些参数。
具体的,鱼眼相机模型即Kannala-Brandt模型,模型公式如下:
其中,是角点的畸变坐标,x,y是角点的无畸变坐标,r是点到光心的距离r2=x2+y2,
对上面的方程变形可得,
畸变坐标可以通过内参矩阵的逆矩阵与角点的像素坐标的乘得到,无畸变坐标x,y可以根据角点的世界坐标和外参矩阵的乘求得,此处求得畸变参数k1,k2是基于有畸变的坐标来估算无畸变的坐标,这样得到的初值有很大误差,如果采取分步优化效果较差,容易降低收敛速度且陷入局部最优解,所以定义全局优化损失函数J(θ),
其中,θ=(α,β,u0,v0,f,k1,k2,r11,r12,r21,r22,r31,r32,t1,t2,t3),u*,v*为像素坐标的实测值(也即上述步骤104得到的像素坐标),u0、v0是偏移量,u,v为像素坐标的计算值,f为成像平面的半径(焦距),r11,r12,r21,r22,r31,r32为外参矩阵R中的数值,t1,t2,t3为外参矩阵T中的数值。
梯度下降法的参数迭代公式为,
其中,为Jacobi矩阵,Jacobi矩阵中的每一项都是对参数求偏导,此时采用多元复合函数法则求偏导,将u,v展开成与世界坐标(Xw,Yw,Zw)T相关的复合函数,
以为例求偏导,
由上述可知,本申请实施例提供的棋盘格的角点定位方法,通过获取棋盘格图像对应的二值化图像,棋盘格图像为利用相机对棋盘格进行拍摄得到;根据二值化图像中像素点的值,确定二值化图像中的多个连通域;根据二值化图像和每个连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;根据每个顶点集合中顶点的像素坐标,确定棋盘格中角点的世界坐标和像素坐标,以对角点进行定位,从而无需通过像素梯度的计算来定位棋盘格各角点位置,避免梯度计算中因像素误差导致检测出来的棋盘格边界比较粗、边界像素点中棋盘格角点定位错误的问题,有效提高了棋盘格角点的定位准确性,进而有利于提高后续相机标定的准确性,方法简单且容易实现,程序鲁棒性强。
基于上述棋盘格的角点定位方法的实施例,本申请实施例还提供一种棋盘格的角点定位装置。请参见图5,图5是本申请实施例提供的棋盘格的角点定位装置的结构示意图,该相机标定装置200包括获取模块201、第一确定模块202、第二确定模块203和第三确定模块204,其中:
获取模块201,用于获取棋盘格图像对应的二值化图像,该棋盘格图像为利用相机对棋盘格进行拍摄得到;
第一确定模块202,用于根据该二值化图像中像素点的值,确定该二值化图像中的多个连通域;
第二确定模块203,用于根据该二值化图像和每个连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;
第三确定模块204,用于根据每个顶点集合中顶点的像素坐标,确定该棋盘格中角点的世界坐标和像素坐标,以对该角点进行定位。
在一些实施例中,该获取模块201具体用于:
对该棋盘格图像进行二值化;
对二值化后的该棋盘格图像进行膨胀。
在一些实施例中,该第二确定模块203具体用于:
根据每个连通域中像素点的像素坐标,从相应连通域的像素点中确定起始像素点;
根据该起始像素点和该二值化图像,从相应连通域的像素点中搜索出多个边界点,得到边界点集合,每个连通域对应一个该边界点集合;
根据该边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合。
在一些实施例中,该第二确定模块203具体用于:
确定该二值化图像中与该起始像素点相邻的八个第一像素点;
从该八个第一像素点中的左上角开始,按照顺时针方向从该八个第一像素点中搜索出第一个值为第一预设值的该第一像素点,作为当前边界点;
确定该二值化图像中与该当前边界点相邻的八个第二像素点,并从前一搜索路径中确定该八个第二像素点中,值为第二预设值且位于该当前边界点前一邻近位置的该第二像素点,作为更新后的当前边界点,并返回执行该确定该二值化图像中与该当前边界点相邻的八个第二像素点的步骤,直至搜索到该起始像素点为止。
在一些实施例中,该第二确定模块203具体用于:
根据该边界点的像素坐标,从该边界点集合中寻找距离最远的两个该边界点,作为起始的两个顶点;
确定当前所有的顶点中任意两个相邻的该顶点之间的连接线;
从该边界点集合中,确定除该顶点之外距离该连接线最远的该边界点,作为候选边界点,每条该连接线对应一个该候选边界点;
当该候选边界点到相应连接线之间的距离大于预设阈值时,将该候选边界点作为一个顶点,并返回执行该确定当前所有的顶点中任意两个相邻的该顶点之间的连接线的步骤;
当该候选边界点到相应连接线之间的距离小于或等于该预设阈值时,将当前的所有顶点作为相应连通域的顶点集合。
在一些实施例中,该第三确定模块204具体用于:
根据每个顶点集合中顶点的像素坐标,从所有的连通域中确定多个目标连通域;
根据该目标连通域对应的顶点集合中顶点的像素坐标,确定该棋盘格的角点、该角点的像素坐标、以及世界坐标系的原点;
根据该原点和预设顶点间隔距离,确定该角点的世界坐标。
在一些实施例中,该第三确定模块204具体用于:
按照顺时针或逆时针方向,将每个顶点集合中的顶点依次连接,得到相应连通域对应的多边形;
获取内角和为360°且形状为四边形的该多边形,作为候选多边形,并获取存在多个顶点均与其它的候选多边形相邻的候选多边形,作为目标多边形;
将该目标多边形对应的连通域作为目标连通域。
在一些实施例中,该第三确定模块204具体用于:
确定相邻的两个该目标连通域之间间距最小的两个该顶点之间的中间点,作为该棋盘格的角点,并将相应的两个该顶点的像素坐标的均值作为该角点的像素坐标;
确定所有的目标连通域的该顶点集合中位于左上角的该顶点,作为世界坐标系的原点。
在一些实施例中,还包括标定模块,该标定模块具体用于:
根据该角点的该世界坐标和该像素坐标,确定该相机的内参矩阵和外参矩阵;
利用鱼眼相机模型和全局优化损失函数,根据该角点的该世界坐标、该像素坐标、该内参矩阵和该外参矩阵,确定该相机的畸变参数,以对该相机进行标定。
需要说明的是,上述棋盘格的角点定位装置200中各模块单元的具体细节已经在上述棋盘格的角点定位的实施例中进行了详细描述,这里不再赘述。
在一些实施例中,本申请实施例中的连接关系更新装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(MobileInternet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
在一些实施例中,如图6所示,本申请实施例还提供一种电子设备300,包括处理器301、存储器302及存储在存储器302上并可在处理器301上运行的计算机程序,该程序被处理器301执行时实现上述棋盘格的角点定位实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图7为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409以及处理器410等部件。
本领域技术人员可以理解,电子设备400还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元404可以包括图形处理器(GraphicsProcessing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元406可包括显示面板4061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板4061。用户输入单元407包括触控面板4071以及其他输入设备4072中的至少一种。触控面板4071,也称为触摸屏。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器409可以包括易失性存储器或非易失性存储器,或者,存储器409可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器409包括但不限于这些和任意其它适合类型的存储器。
处理器410可包括一个或多个处理单元;处理器410集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
本申请实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述棋盘格的角点定位实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述棋盘格的角点定位。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施例中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施例。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施例,上述的具体实施例仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (16)
1.一种棋盘格的角点定位方法,其特征在于,包括:
获取棋盘格图像对应的二值化图像,所述棋盘格图像为利用相机对棋盘格进行拍摄得到;
根据所述二值化图像中像素点的值,确定所述二值化图像中的多个连通域;
根据所述二值化图像和每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;
根据每个所述顶点集合中顶点的像素坐标,确定所述棋盘格中角点的世界坐标和像素坐标,以对所述角点进行定位。
2.根据权利要求1所述的角点定位方法,其特征在于,所述获取棋盘格图像对应的二值化图像,包括:
对所述棋盘格图像进行二值化;
对二值化后的所述棋盘格图像进行膨胀。
3.根据权利要求1所述的角点定位方法,其特征在于,所根据所述二值化图像和每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合,包括:
根据每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定起始像素点;
根据所述起始像素点和所述二值化图像,从相应连通域的像素点中搜索出多个边界点,得到边界点集合,每个所述连通域对应一个所述边界点集合;
根据所述边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合。
4.根据权利要求3所述的角点定位方法,其特征在于,所述根据所述起始像素点和所述二值化图像,从相应连通域的像素点中搜索出多个边界点,包括:
确定所述二值化图像中与所述起始像素点相邻的八个第一像素点;
从所述八个第一像素点中的左上角开始,按照顺时针方向从所述八个第一像素点中搜索出第一个值为第一预设值的所述第一像素点,作为当前边界点;
确定所述二值化图像中与所述当前边界点相邻的八个第二像素点,并从前一搜索路径中确定所述八个第二像素点中,值为第二预设值且位于所述当前边界点前一邻近位置的所述第二像素点,作为更新后的当前边界点,并返回执行所述确定所述二值化图像中与所述当前边界点相邻的八个第二像素点的步骤,直至搜索到所述起始像素点为止。
5.根据权利要求3所述的角点定位方法,其特征在于,所述根据所述边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合,包括:
根据所述边界点的像素坐标,从所述边界点集合中寻找距离最远的两个所述边界点,作为起始的两个顶点;
确定当前所有的所述顶点中任意两个相邻的所述顶点之间的连接线;
从所述边界点集合中,确定除所述顶点之外距离所述连接线最远的所述边界点,作为候选边界点,每条所述连接线对应一个所述候选边界点;
当所述候选边界点到相应连接线之间的距离大于预设阈值时,将所述候选边界点作为一个顶点,并返回执行所述确定当前所有的所述顶点中任意两个相邻的所述顶点之间的连接线的步骤;
当所述候选边界点到相应连接线之间的距离小于或等于所述预设阈值时,将当前的所有所述顶点作为相应连通域的顶点集合。
6.根据权利要求1所述的角点定位方法,其特征在于,所述根据每个所述顶点集合中顶点的像素坐标,确定所述棋盘格中角点的世界坐标和像素坐标,包括:
根据每个所述顶点集合中顶点的像素坐标,从所有的所述连通域中确定多个目标连通域;
根据所述目标连通域对应的所述顶点集合中顶点的像素坐标,确定所述棋盘格的角点、所述角点的像素坐标、以及世界坐标系的原点;
根据所述原点和预设顶点间隔距离,确定所述角点的世界坐标。
7.根据权利要求6所述的角点定位方法,其特征在于,所述根据每个所述顶点集合中顶点的像素坐标,从所有的所述连通域中确定多个目标连通域,包括:
按照顺时针或逆时针方向,将每个所述顶点集合中的顶点依次连接,得到相应连通域对应的多边形;
获取内角和为360°且形状为四边形的所述多边形,作为候选多边形,并获取存在多个所述顶点均与其它的所述候选多边形相邻的所述候选多边形,作为目标多边形;
将所述目标多边形对应的所述连通域作为目标连通域。
8.根据权利要求6所述的方法,其特征在于,所述根据所述目标连通域对应的所述顶点集合中顶点的像素坐标,确定所述棋盘格的角点、所述角点的像素坐标、以及世界坐标系的原点,包括:
确定相邻的两个所述目标连通域之间间距最小的两个所述顶点之间的中间点,作为所述棋盘格的角点,并将相应的两个所述顶点的像素坐标的均值作为所述角点的像素坐标;
确定所有的所述目标连通域的所述顶点集合中位于左上角的所述顶点,作为世界坐标系的原点。
9.根据权利要求1所述的方法,其特征在于,还包括:
根据所述角点的所述世界坐标和所述像素坐标,确定所述相机的内参矩阵和外参矩阵;
利用鱼眼相机模型和全局优化损失函数,根据所述角点的所述世界坐标、所述像素坐标、所述内参矩阵和所述外参矩阵,确定所述相机的畸变参数,以对所述相机进行标定。
10.一种棋盘格的角点定位装置,其特征在于,包括:
获取模块,用于获取棋盘格图像对应的二值化图像,所述棋盘格图像为利用相机对棋盘格进行拍摄得到;
第一确定模块,用于根据所述二值化图像中像素点的值,确定所述二值化图像中的多个连通域;
第二确定模块,用于根据所述二值化图像和每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定顶点集合;
第三确定模块,用于根据每个所述顶点集合中顶点的像素坐标,确定所述棋盘格中角点的世界坐标和像素坐标,以对所述角点进行定位。
11.根据权利要求10所述的装置,其特征在于,所述第二确定模块具体用于:
根据每个所述连通域中像素点的像素坐标,从相应连通域的像素点中确定起始像素点;
根据所述起始像素点和所述二值化图像,从相应连通域的像素点中搜索出多个边界点,得到边界点集合,每个所述连通域对应一个所述边界点集合;
根据所述边界点集合中边界点的像素坐标,利用道格拉斯-普克算法从相应边界点集合中确定顶点集合。
12.根据权利要求11所述的装置,其特征在于,所述第二确定模块具体用于:
确定所述二值化图像中与所述起始像素点相邻的八个第一像素点;
从所述八个第一像素点中的左上角开始,按照顺时针方向从所述八个第一像素点中搜索出第一个值为第一预设值的所述第一像素点,作为当前边界点;
确定所述二值化图像中与所述当前边界点相邻的八个第二像素点,并从前一搜索路径中确定所述八个第二像素点中,值为第二预设值且位于所述当前边界点前一邻近位置的所述第二像素点,作为更新后的当前边界点,并返回执行所述确定所述二值化图像中与所述当前边界点相邻的八个第二像素点的步骤,直至搜索到所述起始像素点为止。
13.根据权利要求10所述的装置,其特征在于,所述第三确定模块具体用于:
根据每个所述顶点集合中顶点的像素坐标,从所有的所述连通域中确定多个目标连通域;
根据所述目标连通域对应的所述顶点集合中顶点的像素坐标,确定所述棋盘格的角点、所述角点的像素坐标、以及世界坐标系的原点;
根据所述原点和预设顶点间隔距离,确定所述角点的世界坐标。
14.根据权利要求13所述的装置,其特征在于,所述第三确定模块具体用于:
按照顺时针或逆时针方向,将每个所述顶点集合中的顶点依次连接,得到相应连通域对应的多边形;
获取内角和为360°且形状为四边形的所述多边形,作为候选多边形,并获取存在多个所述顶点均与其它的所述候选多边形相邻的所述候选多边形,作为目标多边形;
将所述目标多边形对应的所述连通域作为目标连通域。
15.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9中任一项所述的棋盘格的角点定位方法。
16.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-9中任一项所述的棋盘格的角点定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311482960.1A CN117522963A (zh) | 2023-11-08 | 2023-11-08 | 棋盘格的角点定位方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311482960.1A CN117522963A (zh) | 2023-11-08 | 2023-11-08 | 棋盘格的角点定位方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117522963A true CN117522963A (zh) | 2024-02-06 |
Family
ID=89743149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311482960.1A Pending CN117522963A (zh) | 2023-11-08 | 2023-11-08 | 棋盘格的角点定位方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117522963A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117830439A (zh) * | 2024-03-05 | 2024-04-05 | 南昌虚拟现实研究院股份有限公司 | 一种多相机系统位姿标定方法及装置 |
-
2023
- 2023-11-08 CN CN202311482960.1A patent/CN117522963A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117830439A (zh) * | 2024-03-05 | 2024-04-05 | 南昌虚拟现实研究院股份有限公司 | 一种多相机系统位姿标定方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111127655B (zh) | 房屋户型图的构建方法及构建装置、存储介质 | |
WO2021115071A1 (zh) | 单目内窥镜图像的三维重建方法、装置及终端设备 | |
US8818132B2 (en) | Camera calibration with lens distortion from low-rank textures | |
CN110300292B (zh) | 投影畸变校正方法、装置、系统及存储介质 | |
US10558881B2 (en) | Parallax minimization stitching method and apparatus using control points in overlapping region | |
CN110070564B (zh) | 一种特征点匹配方法、装置、设备及存储介质 | |
CN111127422A (zh) | 图像标注方法、装置、系统及主机 | |
CN113140036B (zh) | 一种三维建模方法、装置、设备及存储介质 | |
CN108629810B (zh) | 双目相机的标定方法、装置及终端 | |
CN105096317A (zh) | 一种复杂背景中的高性能相机全自动标定方法 | |
CN108305291B (zh) | 利用包含定位二维码的墙体广告的单目视觉定位定姿方法 | |
CN113643414B (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
CN114782646B (zh) | 房屋模型的建模方法、装置、电子设备和可读存储介质 | |
US20180211415A1 (en) | Texture Modeling of Image Data | |
US20080199083A1 (en) | Image filling methods | |
CN115439607A (zh) | 一种三维重建方法、装置、电子设备及存储介质 | |
CN116129037B (zh) | 视触觉传感器及其三维重建方法、系统、设备及存储介质 | |
CN117522963A (zh) | 棋盘格的角点定位方法、装置、存储介质及电子设备 | |
CN113793387A (zh) | 单目散斑结构光系统的标定方法、装置及终端 | |
CN116721230A (zh) | 一种三维实景模型的构建方法、装置、设备及存储介质 | |
CN116053549A (zh) | 电芯定位方法、装置及系统 | |
CN111462246A (zh) | 一种结构光测量系统的设备标定方法 | |
CN115830135A (zh) | 一种图像处理方法、装置及电子设备 | |
CN111882588B (zh) | 图像块配准方法及相关产品 |
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 |