一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

角点检测方法、装置、计算机设备和存储介质与流程

2021-10-29 21:19:00 来源:中国专利 TAG:标定 设备 检测方法 装置 拍摄


1.本技术涉及拍摄设备标定技术领域,特别是涉及一种角点检测方法、装置、计算机设备和存储介质。


背景技术:

2.在相机生产过程的工艺中,相机成像传感器一定不是完美的,从而通过相机看到的画面和人眼看到的是不一样,也即图像有畸变。另外,相机安装的位置使得镜头所在平面与被成像平面不是水平的,而是有夹角的,从而通过相机看到的物体的位置与物体实际的位置像是不匹配的。因此,相机在使用之前,尤其是用作机器视觉应用及图像测量场景之前,进行标定是必要的。
3.在相机标定过程中,常常使用相机对一块具有特定角点图案的标定板进行拍摄,并从拍摄的每一帧图像中提取各个角点的图像坐标,将这些角点的图像坐标与标定板上的对应角点的三维空间坐标进行匹配,从而为后续标定过程提供数据基础。通常相机标定只需要拍摄十几张照片就可以了标定了,但是在相机

陀螺仪进行标定时一般会录一段视频用视频标定,这个时候就需要检测视频流中每一帧图像内的标定板角点。在相关技术中,主要是以全局检测的方式,也即是通过对视频流中每一图像帧进行全局检测,来获取角点坐标。由于对标定板在图像中可能只是占据一部分,而对整个图像进行检测,会同时对图像中非标定板的无角点区域进行检测,从而会耗费过多计算资源。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够节省计算资源的角点检测方法、装置、计算机设备和存储介质。
5.一种角点检测方法,该方法包括:
6.基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;
7.基于检测区域,检测得到目标图像帧中的角点。
8.在其中一个实施例中,基于角点集合,确定待检测的目标图像帧中的标定板区域,包括:
9.若角点集合满足第一预设条件,获取角点集合中每一角点在目标图像帧中的位置信息;
10.基于角点集合中每一角点在目标图像帧中的位置信息,确定标定板区域。
11.在其中一个实施例中,角点集合是在对前序图像帧中检测到的角点进行跟踪后,基于跟踪至目标图像帧时能够被跟踪到的角点所确定的;前序图像帧为目标图像帧在视频流中的前一图像帧。
12.在其中一个实施例中,获取角点集合中每一角点在目标图像帧中的位置信息,包
括:
13.获取姿态信息,姿态信息用于表示在拍摄目标图像帧时拍摄设备相对于标定板的位置关系;
14.根据姿态信息及基于目标图像帧所建立的图像坐标系,获取角点集合中每一角点在目标图像帧中的位置信息。
15.在其中一个实施例中,角点集合是由能够确定标定板轮廓的顶点所对应的角点所确定的,和/或,姿态信息是基于标定板所处的坐标系与在拍摄目标图像帧时拍摄设备所处的坐标系之间进行坐标系转换所确定的。
16.在其中一个实施例中,第一预设条件包括角点集合中角点的总数量大于预设阈值。
17.在其中一个实施例中,标定板区域满足第二预设条件,第二预设条件包括角点集合中每一角点均位于标定板区域内或者标定板区域内能够保留角点集合中每一角点的角点特征。
18.一种角点检测装置,该装置包括:
19.确定模块,用于基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;
20.检测模块,用于基于检测区域,检测得到目标图像帧中的角点。
21.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;基于检测区域,检测得到目标图像帧中的角点。
22.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;基于检测区域,检测得到目标图像帧中的角点。
23.上述角点检测方法、装置、计算机设备和存储介质,基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域。基于检测区域,检测得到目标图像帧中的角点。由于在进行角点检测时,不是对图像帧整个全部区域进行检测,也即不是全局角点检测,而是仅检测全部区域中的标定板区域,从而检测范围缩小了,进而可以降低耗费的计算资源。同时,由于检测范围缩小了,整体检测的工作量也相应减少了,从而也能提高检测效率,也有利于批量化标定作业,有利于提高标定产线产能。
附图说明
24.图1为一个实施例中相机标定的场景示意图;
25.图2为一个实施例中角点检测方法的流程示意图;
26.图3为一个实施例中相机不同姿态下拍摄的图像帧示意图;
27.图4为另一个实施例中角点检测方法的流程示意图;
28.图5为一个实施例中标定系统坐标系的示意图;
29.图6为另一个实施例中标定系统坐标系的示意图;
30.图7为一个实施例中角点检测方法的流程示意图;
31.图8为另一个实施例中角点检测方法的流程示意图;
32.图9为一个实施例中角点检测装置的结构框图;
33.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
34.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
35.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种专业名词,但除非特别说明,这些专业名词不受这些术语限制。这些术语仅用于将一个专业名词与另一个专业名词区分。举例来说,在不脱离本技术的范围的情况下,第三预设阈值与第四预设阈值可以相同可以不同。
36.在相机生产过程的工艺中,相机成像传感器一定不是完美的,从而通过相机看到的画面和人眼看到的是不一样,也即图像有畸变。另外,相机安装的位置使得镜头所在平面与被成像平面不是水平的,而是有夹角的,从而通过相机看到的物体的位置与物体实际的位置像是不匹配的。因此,相机在使用之前,尤其是用作机器视觉应用及图像测量场景之前,进行标定是必要的。
37.在相机标定过程中,常常使用相机对一块具有特定角点图案的标定板进行拍摄,并从拍摄的每一帧图像中提取各个角点的图像坐标,将这些角点的图像坐标与标定板上的对应角点的三维空间坐标进行匹配,从而为后续标定过程提供数据基础。由上述过程可知,需要获取每一帧图像中标定板的角点坐标。而在相关技术中,主要是以全局检测的方式,也即是通过对整个图像进行检测,来获取角点坐标。由于对标定板在图像中可能只是占据一部分,而对整个图像进行检测,会同时对图像中非标定板的无角点区域进行检测,从而会耗费过多计算资源。
38.针对上述相关技术中存在的问题,本发明实施例提供了一种角点检测方法,该方法可以应用于具有拍摄功能的设备上,该设备可以是相机、智能手机,有摄像头的个人计算机、笔记本电脑、平板电脑和便携式可穿戴设备等。需要说明的是,本技术各实施例中提及的“多个”等的数量均指代“至少两个”的数量,比如,“多个”指“至少两个”。
39.在对本技术的具体实施方式进行说明之前,先对本技术的主要应用场景进行说明。本技术中的角点检测方法主要用于对拍摄设备进行标定。具体地,如图1所示,标定板是放置在相机,也即拍摄设备前面的,而机械臂是用于放置相机的,而相机通过拍摄图像,并通过两者之间的数据传输通道,将图像传输至服务器,由服务器作标定处理,再由服务器将标定结果传输至相机,从而由相机根据标定结果对自身进行调整。
40.结合上述实施例的内容,在一个实施例中,参见图2,提供了一种角点检测方法。以该方法应用于服务器,且执行主体为服务器为例进行说明,可以理解的是,该方法也可以应
用于拍摄设备中且相应执行主体为拍摄设备,再或者根据实际需求及可行性,该方法可以同时应用于拍摄设备与服务器中,也即该方法中一部分步骤的执行主体可以为拍摄设备,而另一部分步骤的执行主体可以为服务器,本发明实施例对此不作具体限定。例如,图2对应方法流程中步骤201可以由拍摄设备执行,再由拍摄设备将标定板区域对应的数据发送至服务器,再由服务器执行步骤202。结合上述实施例的内容,在一个实施例中,该方法包括如下步骤:
41.201、基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;
42.202、基于检测区域,检测得到目标图像帧中的角点。
43.在上述步骤201中,拍摄设备在对标定板进行拍摄后,可以获取视频流,标定板会存在于视频流的每一图像帧中。而标定板中的角点会被拍摄进每一图像帧中,从而这些被拍摄进每一图像帧的角点,可以构成角点集合,也即角点集合是由图像帧中的角点所构成的,而图像帧中的角点包括对应标定板中的角点。在基于角点集合,确定待检测的目标图像帧中的标定板区域时,由于角点集合是由目标图像帧中的角点所构成的,从而可以对角点集合中的角点进行连线,从而基于连线框选出标定板区域,本发明实施例对此不作具体限定。
44.如图3所示,图3的左半部分是相机正对着标定板所拍摄的图像帧,图3中的右半部分是相机相对于标定板发生姿态变化后,相机所拍摄的图像帧,图3中右半部分中的虚线框是在标定板区域通过方框划定时的一种表示。无论是图3中左半部分,还是右半部分,均能很明显的看出图像帧中不仅拍摄有标定板,还把标定板周围的环境一起拍摄进去了,而这些部分在相关技术中也会进行角点检测。
45.由上述步骤201与步骤202的执行过程可知,上述执行过程可以适用于基于视频流的角点检测。具体地,视频是由一帧帧图像构成的,需要对每一图像帧进行角点检测。而对于某一图像帧,在对该图像帧进行角点检测之前,若能够在该图像帧中确定一块小于图像帧大于的检测区域,仅在该检测区域内检测角点,即可减少计算耗费资源。
46.实际实施过程中,如果是基于视频的角点检测,结合图1,实际标定过程可以为,相机安装在机械臂上对着标定板录像,录像过程中机械臂做出不同姿态,将录制视频传入服务器中使用下述算法检测标定板角点,从而进行批量化的标定生产。若实际标定工作量很大,比如视频很长,还可以将需要检测角点的视频流分为n段,对n段视频进行同样的操作,然后将每段视频检测到的角点按照时序组织起来进行后续标定工作。其中,分成n段可以分由服务器中的多个线程进行角点检测,如n个线程并行进行角点检测。
47.本发明实施例提供的方法,基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域。基于检测区域,检测得到目标图像帧中的角点。由于在进行角点检测时,不是对图像帧整个全部区域进行检测,也即不是全局角点检测,而是仅检测全部区域中的标定板区域,从而检测范围缩小了,进而可以降低耗费的计算资源。同时,由于检测范围缩小了,整体检测的工作量也相应减少了,从而也能提高检测效率,也有利于批量化标定作业,有利于提高标定产线产能。
48.结合上述实施例的内容,在一个实施例中,参见图4,本发明实施例还提供了一种
角点检测方法,包括以下步骤:
49.401、若角点集合满足第一预设条件,获取角点集合中每一角点在目标图像帧中的位置信息;
50.402、基于角点集合中每一角点在目标图像帧中的位置信息,确定标定板区域,并作为检测区域;
51.403、基于检测区域,检测得到目标图像帧中的角点。
52.在上述步骤401中,之所以要为角点集合设置第一预设条件是因为,本发明实施例是需要基于角点集合来确定标定板区域,而存在因角点集合不满足某些条件,而导致无法确定标定板区域或者所确定的标定板区域不够准确的情形。因此,针对这些情形,需要为角点集合提前预先设置第一预设条件,以使得基于满足该第一预设条件的前提下,在步骤402中,才能够确定标定板区域。
53.例如,假如角点集合中都是那些集中标定板某一部分区域的角点,如角点集合中都是挤在标定板中间那部分区域的角点,则很明显基于这样的角点集合,是不能够精准确定整个标定板区域的。由此,第一预设条件可以为角点集合中两两间距大于某一阈值的角点达到一定数量,之所以可以这样设置第一预设条件,主要是如下两点考量,其一是存在两两间距大于某一阈值的角点,才能说明角点集合中的角点不是都集中在标定板的某一部分区域中;其二是两两间距大于某一阈值的角点达到一定数量,才可以保证两两间距大于某一阈值的角点不是某些个例,而是在角点集合中广泛分布。综上,基于该两点考量才有可能保证确定出准确的标定板区域。当然,实际实施过程中还可以从不同的考量角度来为角点集合设置第一预设条件,本发明实施例对此不作具体限定。
54.在步骤401中,位置信息可以是角点在目标图像帧中的坐标。例如,可以在图像帧的左下角建立坐标系,由于角点在图像帧是通过像素表示的,也即都是由像素组成的,像素坐标是可以确定的,从而角点坐标也可以确定。需要说明的是,角点对应在图像帧中通常会包含多个像素,从而某一角点的位置信息,实际上可以是由该角点对应在图像帧中包含的多个像素的坐标所表示的。
55.需要说明的是,在上述步骤401之外,若角点集合不满足第一预设条件,则说明角点集合不适合用于确定标定板区域。在这样的情形下,可以对待检测的目标图像帧进行全局角点检测。
56.本发明实施例提供的方法,通过判定角点集合是否满足第一预设条件,在角点集合满足第一预设条件的情况下,才基于角点集合确定标定板区域。由于第一预设条件能够过滤掉基于角点集合,不能确定标定板区域或者确定的不够精准的情形,从而能够提高后续角点检测的成功率。
57.应该理解的是,虽然图1及图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1及图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
58.结合上述实施例的内容,在一个实施例中,角点集合是在对前序图像帧中检测到的角点进行跟踪后,基于跟踪至目标图像帧时能够被跟踪到的角点所确定的;前序图像帧为目标图像帧在视频流中的前一图像帧。
59.其中,对检测到的角点进行跟踪时可以采用目标跟踪的相关算法。目标跟踪的相关算法可以为相关滤波算法、尺度自适应算法及光流跟踪算法。为了便于理解,现以采用光流跟踪算法为例进行解释说明:光流是空间运动物体在观察成像平面上的像素运动的瞬时速度。光流跟踪是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。结合上述解释说明,光流跟踪需要两帧之间间距比较近,从而本发明实施例中前序图像帧为目标图像帧的前一图像帧。在确定角点集合中每一角点在前序图像帧中的位置信息后,基于光流跟踪,即可得到角点集合中每一角点在目标图像帧中的位置信息。
60.在得到角点集合中每一角点在目标图像帧中的位置信息后,也即角点集合中这些角点在目标图像帧的位置是确定的,基于此,可以确定标定板区域。相应地,本发明实施例不对基于角点集合中每一角点在目标图像帧中的位置信息,确定标定板区域的方式作具体限定,包括但不限于:基于角点集合中每一角点在目标图像帧中的位置信息,确定在目标图像帧中能够包围角点集合中每一角点的边框;基于边框,确定标定板区域。
61.需要说明的是,由于标定板一般是矩形的,从而上述过程中的边框可以是矩形的。当然,实际实施过程中,边框还可以为其它形状,如不规则的边框,只需满足能够包围住角点集合中每一角点,且其小于图像帧本身的大小即可。以边框为矩形为例,该边框可以进一步为能够包围住角点集合中每一角点的最小边框,从而减少后续角点检测需要检测的区域面积,进而减少耗费的计算资源并提高检测效率。需要说明的是,实际实施过程中,无论边框是否是上述最小边框,为了能够确保其能够包围角点集合中的每一角点,可以按照某些原则对边框进行扩大,比如统一对外扩大两个像素的距离,本发明实施例对此不做具体限定。
62.本发明实施例提供的方法,由于可以基于跟踪算法确定角点集合中每一角点在目标图像帧中的位置信息,而基于角点集合中每一角点在目标图像帧中的位置信息,可以确定标定板区域,也即检测区域,并基于检测区域,检测得到目标图像帧中的角点。由于后续在进行角点检测时,不是对图像帧整个全部区域进行检测,也即不是全局角点检测,而是仅检测全部区域中的标定板区域,从而检测范围缩小了,进而可以降低耗费的计算资源。同时,由于检测范围缩小了,整体检测的工作量也相应减少了,从而也能提高检测效率,也有利于批量化标定作业,有利于提高标定产线产能。
63.上述过程主要是基于跟踪实现角点检测,其主要思路是对前序图像帧中检测到的角点进行跟踪,从而预测出目标图像帧中这些角点的位置信息,进而基于这些角点的位置信息划定一块小于图像帧本身大小的区域,使得后续角点检测只在这块区域内进行。
64.而由上图1可知,标定过程是需要由机械臂带动相机运动且并由相机拍摄,从而基于拍摄得到的视频流进行标定的。另外,图1中机械臂底座所处的坐标系o
w
及标定板所处的坐标系o
b
是不变的。而机械臂会带动相机运动,也即相机是随着机械臂运动而运动的,具体运动方式可参考图5及图6,由图5及图6可知,机械臂所处的坐标系o
h
与相机所处的坐标系o
c
是相对不变的,但o
c
及o
h
这两个坐标系相对于o
w
及o
b
均发生了变化。其中,图5对应的机械臂
所示状态下,相机拍摄得到的图像可参考图3中的左半部分。图6对应的机械臂所示状态下,相机拍摄得到的图像可参考图3中的右半部分。
65.由于机械臂是由于系统控制的,其如何运动是可以获知的,而由上述实施例的内容可知,机械臂底座所处的坐标系o
w
及标定板所处的坐标系o
b
是不变的,而机械臂所处的坐标系o
h
与相机所处的坐标系o
c
是相对不变的。因此,只需要获知o
w
与o
b
之间的相对变换t
w_b
、o
h
与o
c
之间的相对变换t
h_c
以及再获知o
w
与o
h
之间的相对变换t
w_h
,即可确定o
c
与o
b
之间的相对变换t
c_b
。需要说明的是,上述相对变换指的均为坐标系之间的相对变换。在确定拍摄目标图像帧所处的时刻时o
c
与o
b
之间的相对变换t
c_b
,即可基于t
c_b
,计算得到角点集合中每一角点在目标图像帧中的位置信息。
66.结合上述说明可知,拍摄设备在拍摄视频流时,是在不断运动的,从而对于视频流中的每一图像帧,每次拍摄图像帧时拍摄设备相对于标定板的姿态都是不同的,也即视频流是在拍摄设备处于持续运动状态下拍摄得到的。基于上述原理,结合上述实施例的内容,在一个实施例中,本发明实施例不对获取角点集合中每一角点在目标图像帧中的位置信息的方式作具体限定,包括但不限于:获取姿态信息,姿态信息用于表示在拍摄目标图像帧时拍摄设备相对于标定板的位置关系;根据姿态信息及基于目标图像帧所建立的图像坐标系,获取角点集合中每一角点在目标图像帧中的位置信息。
67.结合上述提到的图5及图6中的各个坐标系,在拍摄目标图像帧时拍摄设备相对于标定板的位置关系,也即姿态信息,可以为上述内容提到的坐标系之间的相对变换,具体可通过坐标系之间的变换矩阵进行表示,也即上述提到的相对变换t
w_b
、t
h_c
、t
w_h
及t
c_b
均可以为变换矩阵,本发明实施例对此不作具体限定。
68.其中,变换矩阵之间的变换关系可参考如下公式(1)及公式(2):
[0069][0070][0071]
在上述公式(1)及公式(2)中,t
w_b
及t
h_c
是固定不变的,而t
w_h
及t
c_b
是会发生变化的。在图5及图6,机械臂是会运动且会带着相机一起运动,每次拍照间隔非常短,比如拍视频1秒可能是24帧,这样每次得到的t
w_h
及t
c_b
是按照一帧帧连续的。
[0072]
在上述公式中,中的上标1,可以指的是拍摄第1帧时o
w
与o
h
之间的变换矩阵,中的上标2,可以指的是拍摄第2帧时o
w
与o
h
之间的变换矩阵。需要说明的是,与的取值是不同的,这是因为拍摄至第2帧时,机械臂已经运动而使得自身所处的坐标系相对于机械臂底座所处的坐标系已经发生了变化。
[0073]
同理,中的上标1,可以指的是拍摄第1帧时o
c
与o
b
之间的变换矩阵,中的上标2,可以指的是拍摄第2帧时o
c
与o
b
之间的变换矩阵。需要说明的是,与的取值同样是不同的,这是因为拍摄至第2帧时,相机已经随着机械臂运动而运动,并使得自身所处的坐标系相对于标定板所处的坐标系已经发生了变化。
[0074]
需要说明的是,由于t
w_b
及t
h_c
是固定不变的,从而可以先求解出t
w_b
及t
h_c
。具体
地,就标定板中相同的角点,可以基于这些角点在前序图像帧所处坐标系中的坐标、这些角点在目标图像帧所处坐标系中的坐标以及这些角点在标定板所处坐标系中的坐标,求解出t
w_b
及t
h_c
。对于待检测的目标图像帧,若需要获取标点板中角点在目标图像帧中的坐标,可以结合t
w_b
及t
h_c
来获取。其中,标定板中角点在目标图像帧中的坐标,具体指的是角点在基于目标图像帧所建立的图像坐标系中的坐标,该图像坐标系是以目标图像帧左上角顶点为原点,所建立得到的。
[0075]
需要说明的是,不同于光流追踪的方式来求解角点在目标图像帧,假设前序图像帧为第1帧,而待检测的目标图像帧为第k帧,在求解t
w_b
及t
h_c
时,k取值需要尽量大,以使得前序图像帧与目标图像帧之间间隔尽量大,这是因为相邻两帧的拍摄间隔时间实在太短,若k不为2且取值较小,即使有几帧跨度,但前序图像帧与目标图像帧之间的间隔时间依然很短。这就导致,机械臂可能还没怎么运动,其运动基本无法被检测出来。相应地,会使得在第1帧时所确定的变换矩阵与第k帧时所确定的变换矩阵没有变化,这时确定第k帧,也即目标图像帧中角点的位置可能会与前序图像帧中一样,这样就无法精准地求解t
w_b
及t
h_c
。综上,前序图像帧与目标图像帧之间的拍摄时间间隔需要尽可能大,以保证机械臂的运动能够被检测出来。
[0076]
由上述过程可知,若需要获取角点在目标图像帧中的位置信息,则可以获取在拍摄目标图像帧时的t
c_b
。该t
c_b
可并作为即姿态信息。在根据t
c_b
及基于目标图像帧所建立的图像坐标系,获取角点集合中每一角点在目标图像帧中的位置信息时,具体可参考如下两个公式:
[0077][0078][0079]
在上述公式(3)及公式(4)中,s为缩放系数,p为角点在目标图像帧中的位置信息,也即坐标,k及为相机内参,为拍摄第k帧时o
c
与o
b
之间的变换矩阵,p为角点在标定板所处的坐标系o
b
中的坐标,是拍摄第k帧时o
w
与o
h
之间的变换矩阵。其中,第k帧即为目标图像帧。
[0080]
本发明实施例提供的方法,通过获取姿态信息,根据姿态信息及基于目标图像帧所建立的图像坐标系,获取角点集合中每一角点在目标图像帧中的位置信息。而基于角点集合中每一角点在目标图像帧中的位置信息,可以确定标定板区域,也即检测区域,并基于检测区域,检测得到目标图像帧中的角点。由于后续在进行角点检测时,不是对图像帧整个全部区域进行检测,也即不是全局角点检测,而是仅检测全部区域中的标定板区域,从而检测范围缩小了,进而可以降低耗费的计算资源。同时,由于检测范围缩小了,整体检测的工作量也相应减少了,从而也能提高检测效率,也有利于批量化标定作业,有利于提高标定产线产能。
[0081]
由上述实施例的内容可知,本发明实施例主要是基于标定板中的角点在图像帧中的位置,来确定标定板区域。除了上述通过确定能够包围这些角点的最小边框,来确定标定板区域的方式之外,若这些角点本身具有某些特性,则也能够标定板区域。基于该原理,结合上述实施例的内容,在一个实施例中,角点集合是由能够确定标定板轮廓的顶点所对应
的角点所确定的,和/或,姿态信息是基于标定板所处的坐标系与在拍摄目标图像帧时拍摄设备所处的坐标系之间进行坐标系转换所确定的。
[0082]
其中,这些角点集合可以为标定板的四个顶点,或者由于标定板为矩形,该角点集合还可以为标定板对角的两个顶点,本发明实施例对此不作具体限定。上述四个顶点或者对角的两个顶点均可以确定标定板的轮廓。另外,姿态信息可以基于标定板所处的坐标系与在拍摄目标图像帧时拍摄设备所处的坐标系之间进行坐标系转换所确定的,具体可以为上述实施例中的转换矩阵,本发明实施例对此不作具体限定。
[0083]
本发明实施例提供的方法,由于可以基于能够确定标定板轮廓的顶点所对应的角点,来确定标定板区域,而后续在进行角点检测时,不是对图像帧整个全部区域进行检测,也即不是全局角点检测,而是仅检测全部区域中的标定板区域,从而检测范围缩小了,进而可以降低耗费的计算资源。同时,由于检测范围缩小了,整体检测的工作量也相应减少了,从而也能提高检测效率,也有利于批量化标定作业,有利于提高标定产线产能。
[0084]
结合上述实施例的内容,在一个实施例中,第一预设条件包括角点集合中角点的总数量大于预设阈值。由于角点集合中角点的总数量大于某一阈值,才能保证角点集合中的角点足够多。如此,包围这些角点的包围框,才能够尽可能地还原标定板本身的轮廓。
[0085]
本发明实施例提供的方法,通过判定角点集合是否满足第一预设条件,在角点集合满足第一预设条件的情况下,才基于角点集合确定标定板区域。由于第一预设条件能够过滤掉基于角点集合,不能确定标定板区域或者确定的不够精准的情形,从而能够提高后续角点检测的成功率。
[0086]
结合上述实施例的内容,在一个实施例中,标定板区域满足第二预设条件,第二预设条件包括角点集合中每一角点均位于标定板区域内或者标定板区域内能够保留角点集合中每一角点的角点特征。
[0087]
结合上述实施例的内容可指,只有角点集合中的角点都在标定板区域内,才能保证后续在标定板区域内进行角点检测时,才能够检测到这些角点。再进一步地,若确定的标定板区域能够保留角点的角点特征,后续在标定板区域内进行角点检测时,则更确保能够检测到这些角点。其中,角点位于标定板区域内,可以指的是角点中n个像素位于标定板区域内,或者角点位于中心的像素位于标定板区域内,本发明实施例对此不作具体限定。
[0088]
本发明实施例提供的方法,由于能够限定标定板区域需满足第二预设条件,从而后续在标定板区域内进行角点检测时,能够确保检测到所有角点,进而能够保证后续标定过程可以顺利进行。
[0089]
为了便于理解,现结合上述实施例的内容,对本发明实施例提供的两种角点检测方式进行具体的解释说明。其中,第一种主要是基于光流跟踪确定视频流中图像帧内角点位置,基于角点位置确定检测区域,再基于检测区域进行角点检测的方式。第二种主要是基于机械臂运动确定视频流中图像帧内角点位置,基于角点位置确定检测区域,再基于检测区域进行角点检测的方式。上述第一种方式,其处理过程可以参考图7。
[0090]
在图7中,视频流可以分为n段,每一段可以交由服务器的一个线程处理。为了便于说明,以其中一个线程为例:可以先对视频流中第一帧图像进行全局检测,以检测出第一帧图像中的角点。对第一帧图像检测出的角点进行光流跟踪,在跟踪至第二帧图像后,确定能够追踪到的角点数量是否大于预设阈值,如果大于预设阈值,则可以基于跟踪到的角点确
定最佳包围框,也即选取合适区域,在第二帧图像中最佳包围框内进行局部角点检测。在对第二帧图像进行角点检测后,可以再对第二帧图像检测出的角点进行跟踪,重复上述过程,直至完成对最后一帧图像的角点检测。在完成视频流中图像帧的角点检测后,可以按照视频流中图像帧的时序,组织检测出的角点,从而完成外参标定。
[0091]
上述第二种方式,其处理过程可参考图8。在图8中,可以先计算t
w_b
及t
h_c
,具体计算方式可参考上述过程。之后,可同样将视频流分为n段,每一段可以交由服务器的一个线程处理。为了便于说明,以其中一个线程为例:对于视频流中的某一帧图像,可以基于t
w_b
及t
h_c
,获取该帧图像对应时刻时的t
c_b
。在得到t
c_b
后,根据t
c_b
及位于标定板四个角位置的角点在标定板坐标系下的坐标,可以得到标定板四个角位置的角点在该帧图像中的位置。根据标定板四个角位置的角点在该帧图像中的位置,即可在该帧图像内确定检测区域,并在检测区域内进行角点检测。
[0092]
其中,若在检测区域内检测出的角点数量小于预设阈值,则说明t
w_b
及t
h_c
之前可能计算的不够精准,从而可以再次求解。如果检测区域内检测出的角点数量不小于预设阈值,则可以按照上述方式继续对视频流中的图像帧进行角点检测,直至完成对最后一帧图像的角点检测。在完成视频流中图像帧的角点检测后,可以按照视频流中图像帧的时序,组织检测出的角点,从而完成外参标定。
[0093]
需要说明的是,上述阐述的技术方案在实际实施过程中可并作为独立实施例来实施,也可以彼此之间进行组合并作为组合实施例实施。另外,在对上述本发明实施例内容进行阐述时,仅基于方便阐述的思路,按照相应顺序对不同实施例进行阐述,如按照数据流流向的顺序,而并非是对不同实施例之间的执行顺序进行限定。相应地,在实际实施过程中,若需要实施本发明提供的多个实施例,则不一定需要按照本发明阐述实施例时所提供的执行顺序,而是可以根据需求安排不同实施例之间的执行顺序。
[0094]
结合上述实施例的内容,在一个实施例中,如图9所示,提供了一种角点检测装置,包括:确定模块901及检测模块902,其中:
[0095]
确定模块901,用于基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;
[0096]
检测模块902,用于基于检测区域,检测得到目标图像帧中的角点。
[0097]
在一个实施例中,确定模块901,包括:
[0098]
获取单元,用于当角点集合满足第一预设条件时,获取角点集合中每一角点在目标图像帧中的位置信息;
[0099]
确定单元,用于基于角点集合中每一角点在目标图像帧中的位置信息,确定标定板区域。
[0100]
在一个实施例中,角点集合是在对前序图像帧中检测到的角点进行跟踪后,基于跟踪至目标图像帧时能够被跟踪到的角点所确定的;前序图像帧为目标图像帧在视频流中的前一图像帧。
[0101]
在一个实施例中,获取单元,用于获取姿态信息,姿态信息用于表示在拍摄目标图像帧时拍摄设备相对于标定板的位置关系;根据姿态信息及基于目标图像帧所建立的图像坐标系,获取角点集合中每一角点在目标图像帧中的位置信息。
[0102]
在一个实施例中,角点集合是由能够确定标定板轮廓的顶点所对应的角点所确定的,和/或,姿态信息是基于标定板所处的坐标系与在拍摄目标图像帧时拍摄设备所处的坐标系之间进行坐标系转换所确定的。
[0103]
在一个实施例中,第一预设条件包括角点集合中角点的总数量大于预设阈值。
[0104]
在一个实施例中,标定板区域满足第二预设条件,第二预设条件包括角点集合中每一角点均位于标定板区域内或者标定板区域内能够保留角点集合中每一角点的角点特征。
[0105]
关于角点检测装置的具体限定可以参见上文中对于角点检测方法的限定,在此不再赘述。上述角点检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0106]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储角点相关的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种角点检测方法。
[0107]
本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0108]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0109]
基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;
[0110]
基于检测区域,检测得到目标图像帧中的角点。
[0111]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0112]
若角点集合满足第一预设条件,获取角点集合中每一角点在目标图像帧中的位置信息;
[0113]
基于角点集合中每一角点在目标图像帧中的位置信息,确定标定板区域。
[0114]
在一个实施例中,处理器在执行计算机程序时,角点集合是在对前序图像帧中检测到的角点进行跟踪后,基于跟踪至目标图像帧时能够被跟踪到的角点所确定的;前序图像帧为目标图像帧在视频流中的前一图像帧。
[0115]
在一个实施例中,处理器在执行计算机程序时,处理器执行计算机程序时还实现以下步骤:
[0116]
获取姿态信息,姿态信息用于表示在拍摄目标图像帧时拍摄设备相对于标定板的位置关系;
[0117]
根据姿态信息及基于目标图像帧所建立的图像坐标系,获取角点集合中每一角点
在目标图像帧中的位置信息。
[0118]
在一个实施例中,处理器在执行计算机程序时,角点集合是由能够确定标定板轮廓的顶点所对应的角点所确定的,和/或,姿态信息是基于标定板所处的坐标系与在拍摄目标图像帧时拍摄设备所处的坐标系之间进行坐标系转换所确定的。
[0119]
在一个实施例中,处理器在执行计算机程序时,第一预设条件包括角点集合中角点的总数量大于预设阈值。
[0120]
在一个实施例中,处理器在执行计算机程序时,标定板区域满足第二预设条件,第二预设条件包括角点集合中每一角点均位于标定板区域内或者标定板区域内能够保留角点集合中每一角点的角点特征。
[0121]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0122]
基于角点集合,确定待检测的目标图像帧中的标定板区域,并作为检测区域,角点集合是基于标定板中的角点所确定的,目标图像帧是为视频流中的图像帧,视频流是由处于运动状态下的拍摄设备对标定板进行拍摄得到的;
[0123]
基于检测区域,检测得到目标图像帧中的角点。
[0124]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若角点集合满足第一预设条件,获取角点集合中每一角点在目标图像帧中的位置信息;基于角点集合中每一角点在目标图像帧中的位置信息,确定标定板区域。
[0125]
在一个实施例中,计算机程序被处理器执行时,角点集合是在对前序图像帧中检测到的角点进行跟踪后,基于跟踪至目标图像帧时能够被跟踪到的角点所确定的;前序图像帧为目标图像帧在视频流中的前一图像帧。
[0126]
在一个实施例中,计算机程序被处理器执行时,计算机程序被处理器执行时还实现以下步骤:获取姿态信息,姿态信息用于表示在拍摄目标图像帧时拍摄设备相对于标定板的位置关系;根据姿态信息及基于目标图像帧所建立的图像坐标系,获取角点集合中每一角点在目标图像帧中的位置信息。
[0127]
在一个实施例中,计算机程序被处理器执行时,角点集合是由能够确定标定板轮廓的顶点所对应的角点所确定的,和/或,姿态信息是基于标定板所处的坐标系与在拍摄目标图像帧时拍摄设备所处的坐标系之间进行坐标系转换所确定的。
[0128]
在一个实施例中,计算机程序被处理器执行时,第一预设条件包括角点集合中角点的总数量大于预设阈值。
[0129]
在一个实施例中,计算机程序被处理器执行时,标定板区域满足第二预设条件,第二预设条件包括角点集合中每一角点均位于标定板区域内或者标定板区域内能够保留角点集合中每一角点的角点特征。
[0130]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器
(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0131]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0132]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜