单摄像头平移系统及单摄像头测距方法与流程

文档序号:20782128发布日期:2020-05-19 21:20阅读:437来源:国知局

本发明涉及测距技术领域,尤其涉及一种单摄像头平移系统及单摄像头测距方法。



背景技术:

计算机视觉测距在机器人、监控、体感游戏中有广泛的应用前景。目前市面上已经存在了几种较为成熟的计算机视觉测距产品,主要分为rgb双目测距、红外结构光测距和红外tof测距。其中,rgb测距的成本最低,只需要两个rgb摄像头;结构光测距和tof测距则需要红外发射器与红外接收器,前者利用三角测距原理(同rgb双目测距),后者利用光的飞行时间来计算物体距离。

其中,对于双目测距的原理,如图1所示,q是待测物体上的某一点,or与ot分别是两个相机的光心,点q在两个相机感光器上的成像点分别为p和p’,相应的横坐标分别为xr和xt,f为相机焦距(所述相机焦距f为固定参数,可以要求相机厂商给出,或者利用现有技术标定得到),b为两相机中心距,z为待测的深度信息,设点p到点p’的距离为dis,则dis=b-(xr-xt);并且,由于三角形qpp’与三角形qorot相似,因此可得dis/b=(z-f)/z;结合上述两个公式,可得z=fb/(xr-xt)。

虽然rgb双目测距的成本最低,但其计算物体距离需要经过特征点提取与图像匹配的必需步骤,算法复杂度较高。



技术实现要素:

本发明所要解决的技术问题是:提供一种单摄像头平移系统及单摄像头测距方法,可降低测距的成本。

为了解决上述技术问题,本发明采用的技术方案为:一种单摄像头平移系统,所述单摄像头平移系统包括摄像头、导体轴、恒压电源、电流采集器、拉动装置和上位机;所述导体轴上设有滑片,所述滑片可滑动地设置在所述导体轴上;所述摄像头设置在所述滑片上;所述导体轴的一端设有导电接线点,所述导电接线点通过导线与所述恒压电源的一端连接,所述滑片通过导线与所述恒压电源的另一端连接;所述导电接线点和滑片分别通过导线与所述电流采集器连接;所述上位机分别与摄像头、拉动装置和电流采集器连接;所述拉动装置与摄像头连接,用于拉动所述摄像头在所述导体轴上匀速滑动。

本发明还提出一种基于如上所述的单摄像头平移系统的单摄像头测距方法,包括:

上位机控制摄像头在导体轴上预设的初始位置进行拍照,得到第一图像,并根据所述初始位置与导体轴设有导电接线点的一端之间的距离,得到第一图像对应的第一距离;

上位机在所述第一图像中确定待测距的点,得到指定点;

上位机通过控制所述拉动装置驱动所述摄像头在所述导体轴上匀速平移;

上位机在摄像头匀速平移的过程中根据预设的采样率控制摄像头进行拍照,并记录拍照时电流采集器采集的电流数据,得到一帧以上的第二图像及其对应的电流数据;

上位机分别根据各第二图像对应的电流数据以及预设的恒压电源的电压、导体轴的总长度和最大电阻,计算各第二图像对应的第一距离;

上位机根据拍照时间,依序在所述各第二图像中对所述第一图像中的指定点或其前一帧第二图像中的跟踪点进行跟踪,得到各第二图像中的跟踪点;

上位机随机选取两帧图像,所述图像包括第一图像和第二图像,并根据所述摄像头的焦距、所述两帧图像中的指定点或跟踪点的横坐标取值以及所述两帧图像对应的第一距离的差值绝对值,计算待测目标与所述摄像头之间的距离。

本发明的有益效果在于:通过让导电接线点和滑片分别与恒压电源的两端连接,使其形成一个回路,同时导电接线点和滑片还分别连接电流采集器,使得电流采集器可采集导电接线点和滑片之间的导体轴的电流数据,同时,由于恒压电源的电压固定,因此即可根据电阻计算公式计算得到导电接线点和滑片之间的导体轴的电阻,再结合导体轴的总长度和最大电阻,即可计算得到导电接线点和滑片之间的距离,从而可得到摄像头在移动过程中的图像拍摄位置与导电接线点之间的距离,进而可得到任意两帧图像之间的拍摄位置距离;通过特征点的跟踪算法在各图像中确定出跟踪点作为成像点,避免了双目测距特征点提取、图像匹配的计算开销,降低了对运行设备的性能要求;最后根据双目测距原理的公式即可计算出待测的深度信息。

本发明基于单摄像头实现测距,相比双摄像头测距的方案减少了一个摄像头,降低了视觉测距的设备成本;基于点的跟踪算法确定各图像中的成像点,,降低了对运行设备的性能要求。

附图说明

图1为双目测距原理示意图;

图2为本发明实施例一的一种单摄像头平移系统的结构示意图;

图3为本发明实施例二的单摄像头测距方法的流程图。

标号说明:

1、摄像头;2、导体轴;3、恒压电源;4、电流采集器;5、拉动装置;6、上位机;

21、滑片。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:基于单摄像头实现测距;控制摄像头在水平方向上进行匀速运动,并在图像的水平方向上的相邻范围内实现特征点的跟踪。

请参阅图2,一种单摄像头平移系统,所述单摄像头平移系统包括摄像头、导体轴、恒压电源、电流采集器、拉动装置和上位机;所述导体轴上设有滑片,所述滑片可滑动地设置在所述导体轴上;所述摄像头设置在所述滑片上;所述导体轴的一端设有导电接线点,所述导电接线点通过导线与所述恒压电源的一端连接,所述滑片通过导线与所述恒压电源的另一端连接;所述导电接线点和滑片分别通过导线与所述电流采集器连接;所述上位机分别与摄像头、拉动装置和电流采集器连接;所述拉动装置与摄像头连接,用于拉动所述摄像头在所述导体轴上匀速滑动。

从上述描述可知,本发明的有益效果在于:使得摄像头可以进行匀速平移,且在摄像头平移的过程中可准确地得到摄像头的位置与导电接线点之间的距离,便于后续进行测距。

请参阅图3,本发明还提出一种基于如上所述的单摄像头平移系统的单摄像头测距方法,包括:

上位机控制摄像头在导体轴上预设的初始位置进行拍照,得到第一图像,并根据所述初始位置与导体轴设有导电接线点的一端之间的距离,得到第一图像对应的第一距离;

上位机在所述第一图像中确定待测距的点,得到指定点;

上位机通过控制所述拉动装置驱动所述摄像头在所述导体轴上匀速平移;

上位机在摄像头匀速平移的过程中根据预设的采样率控制摄像头进行拍照,并记录拍照时电流采集器采集的电流数据,得到一帧以上的第二图像及其对应的电流数据;

上位机分别根据各第二图像对应的电流数据以及预设的恒压电源的电压、导体轴的总长度和最大电阻,计算各第二图像对应的第一距离;

上位机根据拍照时间,依序在所述各第二图像中对所述第一图像中的指定点或其前一帧第二图像中的跟踪点进行跟踪,得到各第二图像中的跟踪点;

上位机随机选取两帧图像,所述图像包括第一图像和第二图像,并根据所述摄像头的焦距、所述两帧图像中的指定点或跟踪点的横坐标取值以及所述两帧图像对应的第一距离的差值绝对值,计算待测目标与所述摄像头之间的距离。

由上述描述可知,可降低视觉测距的设备成本和对运行设备的性能要求。

进一步地,多次执行所述上位机随机选取两帧图像,并根据所述摄像头的焦距、所述两帧图像中的指定点或跟踪点的横坐标取值以及所述两帧图像对应的第一距离的差值绝对值,计算待测目标与所述摄像头之间的距离的步骤,并根据多次计算得到待测目标与摄像头之间的距离,计算优选距离。

由上述描述可知,通过多次测距再进行择优,提高了测距的准确性。

进一步地,所述预设的初始位置为导体轴设置导电接线点的一端。

进一步地,所述上位机分别根据各第二图像对应的电流数据以及预设的恒压电源的电压、导体轴的总长度和最大电阻,计算各第二图像对应的第一距离具体为:

上位机分别根据各第二图像对应的电流数据以及预设的恒压电源的电压,计算各第二图像对应的电阻;

根据导体轴的总长度和最大电阻以及各第二图像对应的电阻,分别计算各第二图像对应的第一距离。

由上述描述可知,基于导体电阻与长度成正比的原理,实现对各第二图像在导体轴上的拍摄位置与导体轴设有导电接线点的一端的距离的计算,便于后续计算任意两帧图像之间的拍摄间隔距离。

进一步地,所述上位机根据拍照时间,依序在所述各第二图像中对所述第一图像中的指定点或其前一帧第二图像中的跟踪点进行跟踪,得到各第二图像中的跟踪点具体为:

根据拍照时间,对所述第一图像和各第二图像进行排序,得到图像序列;

依序从所述图像序列中获取相邻的两帧图像,所述相邻的两帧图像包括前一帧图像和后一帧图像;

在所述后一帧图像中对所述前一帧图像中的指定点或跟踪点进行跟踪,得到后一帧图像中的跟踪点。

由上述描述可知,基于特征点的跟踪,在各图像中确定待测目标对应的成像点,相比双目测距中的特征点提取、图像匹配等算法,计算开销更少,从而降低了对运行设备的性能要求。

进一步地,所述在所述后一帧图像中对所述前一帧图像中的指定点或跟踪点进行跟踪,得到后一帧图像中的跟踪点具体为:

记录所述前一帧图像中的指定点或跟踪点在所述前一帧图像中的位置,得到第一坐标值;

记录所述前一帧图像中的指定点或跟踪点的预设大小的邻域对应的灰度矩阵和/或梯度矩阵,得到第一灰度矩阵和/或第一梯度矩阵;

根据摄像头的平移方向,确定候选点寻找方向;

在所述后一帧图像中所述第一坐标值对应的像素点的所述候选点寻找方向上获取连续的预设个数的候选点;

分别获取各候选点的预设大小的邻域对应的灰度矩阵和/或梯度矩阵;

分别计算所述第一灰度矩阵和/或第一梯度矩阵与各候选点对应的灰度矩阵和/或梯度矩阵的欧式距离,得到各候选点对应的欧式距离;

将欧式距离最小值对应的候选点作为所述后一帧图像中的跟踪点。

进一步地,所述候选点寻找方向与摄像头的平移方向相反,所述候选点寻找方向为水平向左方向或水平向右方向。

进一步地,所述分别计算所述第一灰度矩阵和/或第一梯度矩阵与各候选点对应的灰度矩阵和/或梯度矩阵的欧式距离,得到各候选点对应的欧式距离具体为:

计算所述第一灰度矩阵与一候选点对应的灰度矩阵的欧式距离,作为所述一候选点对应的欧式距离;

或计算所述第一梯度矩阵与一候选点对应的梯度矩阵的欧式距离,作为所述一候选点对应的欧式距离;

或计算所述第一灰度矩阵与一候选点对应的灰度矩阵的欧式距离,得到所述一候选点的第一欧式距离;计算所述第一梯度矩阵与一候选点对应的梯度矩阵的欧式距离,得到所述一候选点的第二欧式距离;对所述一候选点的第一欧式距离和第二欧式距离进行加求和,得到所述一候选点对应的欧式距离。

由上述描述可知,基于摄像头在水平方向上匀速平移的特点,在图像的水平方向上的相邻范围内选取候选点,再基于邻域矩阵间的欧氏距离,选取差异度最小的候选点作为跟踪结果,可快速、准确地确定出跟踪点。

实施例一

请参照图2,本发明的实施例一为:一种单摄像头平移系统,包括摄像头1、导体轴2、恒压电源3、电流采集器4、拉动装置5和上位机6;所述导体轴2上设有滑片21,所述滑片21可滑动地设置在所述导体轴2上;所述摄像头1设置在所述滑片21上,使得摄像头1通过所述滑片21可滑动地设置在所述导体轴2上;所述导体轴2的一端设有导电接线点a,所述导电接线点a通过导线与所述恒压电源3的一端连接,所述滑片与导体轴的触点b通过导线与所述恒压电源3的另一端连接;所述导电接线点a和触点b分别通过导线与所述电流采集器4连接;所述拉动装置5与摄像头1连接,用于拉动所述摄像头1在所述导体轴2上匀速滑动;所述上位机6分别与摄像头1、拉动装置5和电流采集器4连接。

其中,所述拉动装置即为动力装置,摄像头由所述拉动装置驱动,可在所述导体轴上作匀速运动。

通过让导电接线点和滑片分别与恒压电源的两端连接,使其形成一个回路,同时导电接线点和滑片还分别连接电流采集器,使得电流采集器可采集导电接线点和滑片之间的导体轴的电流数据。同时,由于恒压电源的电压固定,因此即可根据电阻计算公式计算得到导电接线点和滑片之间的导体轴的电阻,再结合导体轴的总长度和最大电阻,即可计算得到导电接线点和滑片之间的距离。

进一步地,图2中未示出,所述上位机还可以与恒压电源连接,从而可控制恒压电源的开启和关闭,恒压电源也可为上位机供电。

优选地,所述导体轴的长度方向与待测目标平行,且在俯视平面中与摄像头的拍摄方向垂直。

优选地,所述导体轴为滑动变阻器或滑线变阻器;所述电流采集器为支持usb协议的电流采集板,通过上位机的usb接口与上位机连接,将采集到的电流数据发送给上位机。

本实施例可让摄像头在水平方向上进行匀速平移,且在摄像头平移的过程中可准确地得到摄像头的位置与导电接线点之间的距离,便于后续进行基于单摄像头的测距。

实施例二

请参照图3,本发明的实施例二为:一种单摄像头测距方法,所述方法基于实施例一的单摄像头平移系统,包括如下步骤:

s1:上位机控制摄像头在导体轴上预设的初始位置进行拍照,得到第一图像,并根据所述初始位置与导体轴设有导电接线点的一端之间的距离,得到第一图像对应的第一距离。进一步地,可对待测目标进行拍照,也可无需待测目标直接拍照。

本实施例中,所述预设的初始位置为导体轴设置导电接线点的一端,此时,第一图像对应的第一距离即为0。

s2:上位机在所述第一图像中确定待测距的点,得到指定点。所述指定点可以仅有一个,也可以有多个。当步骤s1中对待测目标进行拍照,则指定点可以用物体检测算法检测得到,后续摄像头平移的过程中,需保证摄像头始终能拍摄到待测目标;当步骤s1中没有对待测目标进行拍照,则指定点可以是图像中的固定点,如中心点,此时即为对图像中的点进行测距。

s3:上位机通过控制拉动装置驱动所述摄像头在所述导体轴上匀速平移。

s4:上位机在摄像头匀速平移的过程中根据预设的采样率控制摄像头进行拍照,并记录拍照时电流采集器采集的电流数据,得到一帧以上的第二图像及其对应的电流数据。例如,可以控制摄像头以每秒30帧的采样率进行连续拍照。

s5:上位机分别根据各第二图像对应的电流数据以及预设的恒压电源的电压、导体轴的总长度和最大电阻,计算各第二图像对应的第一距离,所述第一距离即各第二图像在导体轴上的拍摄位置与导体轴设有导电接线点的一端的距离。

具体地,根据预设的恒压电源的电压和一第二图像对应的电流数据,计算得到所述一第二图像对应的电阻,即根据ri=u/ii进行计算,其中,u为恒压电源的电压,ii为所述一第二图像对应的电流,ri为所述一第二图像对应的电阻;然后基于导体电阻与长度成正比的原理,根据公式li1=ri×(l总/rmax)计算所述一第二图像在导体轴上的拍摄位置与导体轴设有导电接线点的一端的距离,其中,l总为导体轴的总长度,rmax为导体轴的最大电阻,li1为所述一第二图像对应的第一距离。

s6:上位机根据拍照时间,依序在所述各第二图像中对所述第一图像中的指定点或其前一帧第二图像中的跟踪点进行跟踪,得到各第二图像中的跟踪点。

具体地,根据拍照时间,对所述第一图像和各第二图像进行排序,得到图像序列;依序从所述图像序列中获取相邻的两帧图像,所述相邻的两帧图像包括前一帧图像和后一帧图像;在所述后一帧图像中对所述前一帧图像中的指定点或跟踪点进行跟踪,得到后一帧图像中的跟踪点。即在第一帧第二图像中对第一图像中的指定点进行跟踪,得到第一帧第二图像中的跟踪点,然后依序在其他第二图像中对其前一帧的第二图像中的跟踪点进行跟踪,得到其他第二图像中的跟踪点。

进一步地,由于第二图像是由同一摄像头平移过程中拍摄的,因此指定点在图像中只能左右移动,跟踪点的坐标值中的y值与指定点的坐标值中的y值一致(本实施例中,均以图像的左上角为原点,水平向右为x轴正方向,竖直向下为y轴正方向,建立图像中的二维直角坐标系),即极线一定是水平线。因此可基于该特点对跟踪算法进行优化,以简化跟踪任务。

具体地,本实施例的跟踪算法包括如下步骤:

s601:记录所述前一帧图像中的指定点或跟踪点在所述前一帧图像中的位置,得到第一坐标值。

s602:记录所述前一帧图像中的指定点或跟踪点的预设大小的邻域对应的灰度矩阵和梯度矩阵,得到第一灰度矩阵和第一梯度矩阵;优选地,可选取4邻域或8领域对应的灰度矩阵和梯度矩阵。

s603:根据摄像头的平移方向,确定候选点寻找方向;具体地,所述候选点寻找方向与摄像头的平移方向相反。进一步地,由于摄像头是在水平方向移动的,则摄像头的平移方向为水平向左方向或水平向右方向,因此所述候选点寻找方向为水平向右方向或水平向左方向。

s604:在所述后一帧图像中所述第一坐标值对应的像素点的所述候选点寻找方向上获取连续的预设个数的候选点。

例如,假设第一坐标值为(x,y),候选点寻找方向为水平向左方向,预设个数为10个,则后一帧图像中的候选点即为坐标为(x,y)的像素点左边的第一个至第十个像素点。

s605:分别获取各候选点的预设大小的邻域对应的灰度矩阵和梯度矩阵。此处的邻域大小与步骤s602中的一致。

s606:根据所述第一灰度矩阵和第一梯度矩阵与各候选点对应的灰度矩阵和梯度矩阵,分别计算各候选点对应的欧式距离。

具体地,可分别计算第一灰度矩阵与各候选点对应的灰度矩阵的欧式距离,作为各候选点对应的欧式距离;也可分别计算第一梯度矩阵与各候选点对应的梯度矩阵的欧式距离,作为各候选点对应的欧式距离;还可通过对上述两种方式计算出的同一候选点的欧式距离进行加权求和,作为所述同一候选点最终的欧式距离。

s607:将欧式距离最小值对应的候选点作为所述后一帧图像中的跟踪点。也即选取差异度最小的候选点作为跟踪结果。

进一步地,从双目测距原理和图1可知,dis/b=(z-f)/z。在本实施例中,由于导体轴的长度方向和待测目标平行,因此,z是固定的,同时摄像头的焦距f是固定,并且由于摄像头是按照固定的采样率进行连续拍照,因此相邻两帧第二图像之间的拍摄时间间隔是一样的,那么当摄像头处于匀速平移状态时,所拍摄的相邻两帧第二图像之间的拍摄间隔距离(b)也是一样的,则跟踪点在相邻两帧第二图像中的偏移量(dis,也即xr-xt)也是一样的。

而上位机通过对拉动装置的功率、摄像头匀速平移时的速度等参数进行分析,可分析出摄像头在开始运动后的多长时间后达到匀速状态,或分析出在拍摄第几帧第二图像时摄像头开始处于匀速状态,从而可从各第二图像中确定出摄像头处于匀速平移状态时所拍摄的第二图像。对于这些所确定出的第二图像,只需对其中前两帧第二图像进行上述跟踪算法,并根据这两帧第二图像中的跟踪点的横坐标取值,计算出匀速状态中相邻两帧图像的跟踪点的偏移量。

因此,在步骤s604中,当上位机判定摄像头应该处于匀速状态时,根据上述的偏移量先在后一帧图像中预估跟踪点的位置,然后以该位置为中心点,获取连续的预设个数的候选点。此时,预设个数的取值可相对较小。

例如,假设计算出的匀速状态中相邻两帧图像的跟踪点的偏移量为5个像素点,第一坐标值为(x,y),候选点寻找方向为水平向左方向,预设个数为6个,则在后一帧图像中以坐标为(x,y)的像素点左边第5个像素点为中心点,在坐标为(x,y)的像素点的左边获取连续6个的像素点作为候选点,最后获取的候选点即为坐标为(x,y)的像素点左边的第2个至第7个像素点,或坐标为(x,y)的像素点左边第3个至第8个的像素点。

进一步地,基于上述方法进行进一步拓展,对于摄像头处于非匀速状态时(即加速状态时),上位机可在确定了图像序列中第二帧图像中的跟踪点之后,根据其与第一帧图像中的指定点的位置偏移量,在第三帧图像中预估跟踪点的位置,并根据预估的位置选取候选点;然后根据第二帧和第三帧图像中跟踪点的偏移量,在第四帧图像中预估跟踪点的位置,以此类推。从而可进一步简化跟踪任务,提高效率。

进一步地,当连续预设次数的相邻两帧图像的跟踪点的偏移量一致时,则认为测距已稳定,可提前停止后续测距。

s7:上位机随机选取两帧图像,即从第一图像和各第二图像中随机选取两帧图像,并根据所述摄像头的焦距、所述两帧图像中的指定点或跟踪点的横坐标取值以及所述两帧图像对应的第一距离的差值绝对值,计算待测目标与所述摄像头之间的距离。

具体地,根据双目测距原理可得公式z=fb/(xr-xt),其中,z为待测的深度信息,f为摄像头的焦距,b为两次拍摄时的摄像头中心距,xr和xt分别为成像点在两帧图像中的横坐标取值。因此,根据该公式即可计算出待测目标与所述摄像头之间的距离,其中,所述两帧图像中的指定点或跟踪点的横坐标取值,即相当于公式中的xr和xt;通过计算所述两帧图像对应的第一距离的差值绝对值,即可计算得到所述两帧图像的拍照间隔距离,相当于公式中的b。

进一步地,多次执行所述步骤s7,并且保证每次选取的两帧图像的组合与之前选取的两帧图像的组合至少有一帧图像不一致,得到多个测距结果,然后对这些测距结果进行择优,例如取众数或取平均数等,将择优结果作为最后的测距结果。

本实施例基于单摄像头实现测距,相比双摄像头测距的方案减少了一个摄像头,降低了视觉测距的设备成本,也无需进行双目立体标定,减少算法复杂度;基于摄像头平移的特点,在图像的水平方向上的相邻范围内实现特征点的跟踪,大大简化了跟踪任务,且可避免双目测距特征点提取、图像匹配的计算开销,降低了对运行设备的性能要求,可以在低端的处理器或者芯片上运行;通过多次测距再择优,提高了测距的准确性。

综上所述,本发明提供的一种单摄像头平移系统及单摄像头测距方法,基于单摄像头实现测距,相比双摄像头测距的方案减少了一个摄像头,降低了视觉测距的设备成本;基于摄像头在水平方向上匀速平移的特点,在图像的水平方向上的相邻范围内选取候选点,再基于邻域矩阵间的欧氏距离,选取差异度最小的候选点作为跟踪结果,可快速、准确地确定出跟踪点;基于点的跟踪算法确定各图像中的成像点,降低了对运行设备的性能要求;通过多次测距再进行择优,提高了测距的准确性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

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