本发明属于计算机技术领域,尤其涉及一种三维扫描方法及装置。
背景技术:
三维扫描是对目标区域空间中各个点位的三维坐标进行测绘的过程。传统的三维扫描,一种是通过激光雷达的多线激光对空间中的区域进行快速扫描,另外一种是通过双目或者移动的单目摄像头进行空间点位坐标的测算来实现空间扫描。单纯基于激光雷达的扫描,属于被动式扫描,无法实现目标对象的自动识别然后自主扫描,单纯基于单目或多目摄像头的识别,依赖于特征点在不同拍摄角度的像素差计算,计算复杂且稳定性不够,无法适应于光线条件复杂的工程现场。
技术实现要素:
本发明的目的在于提供一种三维扫描方法及装置,旨在解决现有技术中的被动式扫描问题。
一方面,本发明提供了一种三维扫描方法,所述方法包括下述步骤:
通过单目相机获取目标区域的图像,提取图像中的特征点像素坐标,对特征点发射单线激光,提取单线激光在图像中与特征点像素坐标所对应的激光点像素坐标;
根据特征点像素坐标及激光点像素坐标,得到激光点到特征点的方向向量;
根据方向向量,得到单线激光发射头的姿态值,根据姿态值,调整单线激光发射头的姿态,直到特征点像素坐标与激光点像素坐标重合;
测量特征点到单线激光发射头的空间距离,并结合特征点像素坐标,进行空间坐标转换,得到特征点对应单目相机的空间坐标。
另一方面,本发明提供了一种三维扫描装置,所述装置包括:
提取单元,用于通过单目相机获取目标区域的图像,提取图像中的特征点像素坐标,对特征点发射单线激光,提取单线激光在所述图像中与特征点像素坐标所对应的激光点像素坐标;
向量计算单元,用于根据特征点像素坐标及激光点像素坐标,得到激光点到特征点的方向向量;
姿态调整单元,用于根据方向向量,得到单线激光发射头的姿态值,根据姿态值,调整单线激光发射头的姿态,直到特征点像素坐标与激光点像素坐标重合;
坐标转换单元,用于测量特征点到单线激光发射头的空间距离,并结合特征点像素坐标,进行空间坐标转换,得到特征点对应单目相机的空间坐标。
本发明实施例通过单目相机与单线激光结合,由单目相机获取到的目标区域图像中的特征点,对特征点发射单线激光,以获取特征点的空间距离,从而得到空间坐标,无需对特征点多角度拍摄计算像素差值,避免了复杂计算导致数据精确性不够,同时能够以像素精度进行扫描测量,并能够主动控制测量位置,实现给定区域的精细化扫描。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的三维扫描方法的实现流程图;
图2是本发明实施例二提供的三维扫描装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的三维扫描方法的实现流程图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在步骤s101中,通过单目相机获取目标区域的图像,提取图像中的特征点像素坐标,对特征点发射单线激光,提取单线激光在图像中与特征点像素坐标所对应的激光点像素坐标。
在本发明实施例中,单目相机拍摄实时画面,获取目标区域的实时图像,以图像序列的形式输出,对t时刻采集的图像形成图像数据集为ft,ft为分辨率为w×h的rgb图像,w为宽,h为高。通过特征提取算法(orb算法,orientedfastandrotatedbrief),提取图像中的特征点像素坐标,p={(xi,yi)|xi∈[0,w],yi∈[0,h],i<n},其中,n为特征点数量。对每个特征点像素坐标(xi,yi),发射单线激光后,通过图像目标检测算法,提取单线激光红点在图像中的对应特征点像素坐标
进一步地,通过单目相机获取目标区域的图像,提取图像中的特征点像素坐标(xi,yi),i≤n,其中,n为特征点数量;
初始化单线激光发射头的姿态值为wh=0,wv=0,其中,wh为单线激光发射头水平方向旋转角度,wv为单线激光发射头垂直方向旋转角度;
对特征点发射单线激光,通过目标检测算法,提取图像中的激光点像素坐标
在本发明实施例中,单目相机拍摄实时画面,获取目标区域的实时图像,通过特征提取算法,提取图像中的特征点像素坐标,(xi,yi),i≤n,其中,n为特征点数量,只提取特定关注的目标区域的像素,对不相关区域进行过滤,提高扫描效率,尤其针对空间范围比较大的待扫描区域,避免长时间驻守。在提取图像特征点像素坐标之后,针对每个特征点像素坐标,发射单线激光。首先对单线激光发射头进行初始化设置,调整单线激光发射头的姿态值为wh=0,wv=0,其中,wh为单线激光发射头水平方向旋转角度,wv为单线激光发射头垂直方向旋转角度,对特征点发射单线激光,通过目标检测算法,提取图像中的激光点像素坐标
在步骤s102中,根据特征点像素坐标及激光点像素坐标,得到激光点到特征点的方向向量。
在本发明实施例中,在逐一对每个特征点发射单线激光时,针对每个特征点像素坐标,对单线激光发射头进行初始化设置,通过目标检测算法,提取图像中的激光点像素坐标,通过不断调整单线激光发射头的姿态值,以使得特征点像素坐标与激光点像素坐标重合。对特征点像素坐标(xi,yi),发射单线激光,找在目标区域的图像中对应的激光点像素坐标
在步骤s103中,根据方向向量,得到单线激光发射头的姿态值,根据姿态值,调整单线激光发射头的姿态,直到特征点像素坐标与激光点像素坐标重合。
在本发明实施例中,通过计算激光点到特征点的方向向量,可以得知在目标区域的图像中激光点与特征点的位置关系,根据该激光点到特征点的方向向量,进一步地,计算出单线激光发射头的姿态值,对单线激光发射头的姿态进行进一步地调整,在不断地更新调整过程中,使得特征点像素坐标与激光点像素坐标重合。
进一步地,根据方向向量,得到单线激光发射头的姿态值为
具体地,根据激光点到特征点的方向向量,可以得知在目标区域的图像中激光点与特征点的位置关系,根据该激光点到特征点的方向向量,计算出单线激光发射头的姿态值,得到单线激光发射头的姿态值为
在步骤s104中,测量特征点到单线激光发射头的空间距离,并结合特征点像素坐标,进行空间坐标转换,得到特征点对应单目相机的空间坐标。
在本发明实施例中,通过不断地更新单线激光发射头的姿态值,在目标区域的图像中找到激光点像素坐标
进一步地,测量特征点到单线激光发射头的空间距离di,结合特征点像素坐标,得到特征点三维数据(xi,yi,di);
对特征点三维数据(xi,yi,di),根据公式
具体地,在目标区域的图像中找到激光点像素坐标
在本发明实施例中,通过单目相机与单线激光结合,对由单目相机获取到的特征点,发射单线激光,单线激光发射头相对单目相机在水平方向和垂直方向可以自由旋转,使单线激光发射点可以遍布单目相机所采集目标区域图像中的任意位置,同时针对目标区域图像中的每个特征点,通过不断地调整单线激光发射头姿态,可以确保单线激光发射点与特征点重合,进而通过激光测距得到特征点到单线激光发射头的空间距离,得到包含特征点像素坐标及特征点到单线激光发射头的空间距离的特征点三维数据,进行空间坐标转换后得到特征点对应单目相机的空间坐标。利用单目相机与单线激光结合,对二者相对位置进行实时计算,又最大限度的保证了单线激光与单目相机的独立,且不互相干扰。而且相对于多线激光设备,单线激光控制精细且灵活,价格低,适用于针对特定区域或目标,执行长时间,低间隔下的持续监测。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘、光盘等。
实施例二:
图2示出了本发明实施例二提供的三维扫描装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。在本发明实施例中,三维扫描装置包括:提取单元21,向量计算单元22,姿态调整单元23及坐标转换单元24,其中:
提取单元21,用于通过单目相机获取目标区域的图像,提取图像中的特征点像素坐标,对特征点发射单线激光,提取单线激光在所述图像中与特征点像素坐标所对应的激光点像素坐标。
在本发明实施例中,单目相机拍摄实时画面,获取目标区域的实时图像,以图像序列的形式输出,对t时刻采集的图像形成图像数据集为ft,ft为分辨率为w×h的rgb图像,w为宽,h为高。通过特征提取算法(orb算法,orientedfastandrotatedbrief),提取图像中的特征点像素坐标,p={(xi,yi)|xi∈[0,w],yi∈[0,h],i<n},其中,n为特征点数量。对每个特征点像素坐标(xi,yi),发射单线激光后,通过图像目标检测算法,提取单线激光红点在图像中的对应特征点像素坐标
进一步地,提取单元21,包括:
第一提取单元,用于通过单目相机获取目标区域的图像,提取图像中的特征点像素坐标(xi,yi),i≤n,其中,n为特征点数量;
姿态值初始化单元,用于初始化单线激光发射头的姿态值为wh=0,wv=0,其中,wh为单线激光发射头水平方向旋转角度,wv为单线激光发射头垂直方向旋转角度;及
第二提取单元,用于对特征点发射单线激光,通过目标检测算法,提取图像中的激光点像素坐标
在本发明实施例中,单目相机拍摄实时画面,获取目标区域的实时图像,通过特征提取算法,提取图像中的特征点像素坐标,(xi,yi),i≤n,其中,n为特征点数量,只提取特定关注的目标区域的像素,对不相关区域进行过滤,提高扫描效率,尤其针对空间范围比较大的待扫描区域,避免长时间驻守。在提取图像特征点像素坐标之后,针对每个特征点像素坐标,发射单线激光。首先对单线激光发射头进行初始化设置,调整单线激光发射头的姿态值为wh=0,wv=0,其中,wh为单线激光发射头水平方向旋转角度,wv为单线激光发射头垂直方向旋转角度,对特征点发射单线激光,通过目标检测算法,提取图像中的激光点像素坐标
向量计算单元22,用于根据特征点像素坐标及激光点像素坐标,得到激光点到特征点的方向向量。
在本发明实施例中,在逐一对每个特征点发射单线激光时,针对每个特征点像素坐标,对单线激光发射头进行初始化设置,通过目标检测算法,提取图像中的激光点像素坐标,通过不断调整单线激光发射头的姿态值,以使得特征点像素坐标与激光点像素坐标重合。对特征点像素坐标(xi,yi),发射单线激光,找在目标区域的图像中对应的激光点像素坐标
姿态调整单元23,用于根据方向向量,得到单线激光发射头的姿态值,根据姿态值,调整单线激光发射头的姿态,直到特征点像素坐标与激光点像素坐标重合。
在本发明实施例中,通过计算激光点到特征点的方向向量,可以得知在目标区域的图像中激光点与特征点的位置关系,根据该激光点到特征点的方向向量,进一步地,计算出单线激光发射头的姿态值,对单线激光发射头的姿态进行进一步地调整,在不断地更新调整过程中,使得特征点像素坐标与激光点像素坐标重合。
进一步地,姿态调整单元23,包括:
姿态值计算单元,用于根据方向向量,得到单线激光发射头的姿态值为
具体地,根据激光点到特征点的方向向量,可以得知在目标区域的图像中激光点与特征点的位置关系,根据该激光点到特征点的方向向量,计算出单线激光发射头的姿态值,得到单线激光发射头的姿态值为
坐标转换单元24,用于测量特征到单线激光发射头的空间距离,并结合特征点像素坐标,进行空间坐标转换,得到特征点对应单目相机的空间坐标。
在本发明实施例中,通过不断地更新单线激光发射头的姿态值,在目标区域的图像中找到激光点像素坐标
进一步地,坐标转换单元,包括:
三维数据获取单元,用于测量特征点像素坐标对应所述单线激光发射头的空间距离di,结合特征点像素坐标,得到特征点三维数据(xi,yi,di);及
坐标转换子单元,用于对特征点三维数据(xi,yi,di),根据公式
具体地,在目标区域的图像中找到激光点像素坐标
在本发明实施例中,通过单目相机与单线激光结合,对由单目相机获取到的特征点,发射单线激光,单线激光发射头相对单目相机在水平方向和垂直方向可以自由旋转,使单线激光发射点可以遍布单目相机所采集目标区域图像中的任意位置,同时针对目标区域图像中的每个特征点,通过不断地调整单线激光发射头姿态,可以确保单线激光发射点与特征点重合,进而通过激光测距得到特征点像素坐标特征点到单线激光发射头的空间距离,得到包含特征点像素坐标及特征点到单线激光发射头的空间距离的特征点三维数据,进行空间坐标转换后得到特征点对应单目相机的空间坐标。利用单目相机与单线激光结合,对二者相对位置进行实时计算,又最大限度的保证了单线激光与单目相机的独立,且不互相干扰。而且相对于多线激光设备,单线激光控制精细且灵活,价格低,适用于针对特定区域或目标,执行长时间,低间隔下的持续监测。
在本发明实施例中,三维扫描装置各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。该装置各单元的实施方式具体可参考前述实施例一的描述,在此不再赘述。
以上所述实施例,仅为本发明具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改、替换和改进等等,这些修改、替换和改进都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种三维扫描方法,其特征在于,所述方法包括下述步骤:
通过单目相机获取目标区域的图像,提取所述图像中的特征点像素坐标,对所述特征点发射单线激光,提取所述单线激光在所述图像中与所述特征点像素坐标所对应的激光点像素坐标;
根据所述特征点像素坐标及所述激光点像素坐标,得到所述激光点到所述特征点的方向向量;
根据所述方向向量,得到单线激光发射头的姿态值,根据所述姿态值,调整所述单线激光发射头的姿态,直到所述特征点像素坐标与所述激光点像素坐标重合;
测量所述特征点到所述单线激光发射头的空间距离,并结合所述特征点像素坐标,进行空间坐标转换,得到所述特征点对应所述单目相机的空间坐标。
2.如权利要求1所述的方法,其特征在于,通过单目相机获取目标区域的图像,提取所述图像中的特征点像素坐标,对所述特征点发射单线激光,提取所述单线激光在所述图像中与所述特征点像素坐标所对应的激光点像素坐标的步骤,包括:
通过单目相机获取目标区域的图像,提取所述图像中的特征点像素坐标(xi,yi),i≤n,其中,n为特征点数量;
初始化单线激光发射头的姿态值为wh=0,wv=0,其中,wh为单线激光发射头水平方向旋转角度,wv为单线激光发射头垂直方向旋转角度;
对所述特征点发射单线激光,通过目标检测算法,提取所述图像中的激光点像素坐标
3.如权利要求2所述的方法,其特征在于,根据所述特征点像素坐标及所述激光点像素坐标,得到所述激光点到所述特征点的方向向量的步骤,包括:
所述激光点到所述特征点的方向向量为
4.如权利要求3所述的方法,其特征在于,根据所述方向向量,得到单线激光发射头的姿态值,根据所述姿态值,调整所述单线激光发射头的姿态,直到所述特征点像素坐标与所述激光点像素坐标重合的步骤,包括:
根据所述方向向量,得到单线激光发射头的姿态值为
5.如权利要求4所述的方法,其特征在于,测量所述特征点到所述单线激光发射头的空间距离,并结合所述特征点像素坐标,进行空间坐标转换,得到所述特征点对应所述单目相机的空间坐标的步骤,包括:
测量所述特征点到所述单线激光发射头的空间距离di,结合所述特征点像素坐标,得到所述特征点三维数据(xi,yi,di);
对所述特征点三维数据(xi,yi,di),根据公式
6.一种三维扫描装置,其特征在于,所述装置包括:
提取单元,用于通过单目相机获取目标区域的图像,提取所述图像中的特征点像素坐标,对所述特征点发射单线激光,提取所述单线激光在所述图像中与所述特征点像素坐标所对应的激光点像素坐标;
向量计算单元,用于根据所述特征点像素坐标及所述激光点像素坐标,得到所述激光点到所述特征点的方向向量;
姿态调整单元,用于根据所述方向向量,得到单线激光发射头的姿态值,根据所述姿态值,调整所述单线激光发射头的姿态,直到所述特征点像素坐标与所述激光点像素坐标重合;
坐标转换单元,用于测量所述特征点到所述单线激光发射头的空间距离,并结合所述特征点像素坐标,进行空间坐标转换,得到所述特征点对应所述单目相机的空间坐标。
7.如权利要求6所述的装置,其特征在于,所述提取单元,包括:
第一提取单元,用于通过单目相机获取目标区域的图像,提取所述图像中的特征点像素坐标(xi,yi),i≤n,其中,n为特征点数量;
姿态值初始化单元,用于初始化单线激光发射头的姿态值为wh=0,wv=0,其中,wh为单线激光发射头水平方向旋转角度,wv为单线激光发射头垂直方向旋转角度;
第二提取单元,用于对所述特征点发射单线激光,通过目标检测算法,提取所述图像中的激光点像素坐标
8.如权利要求7所述的装置,其特征在于,所述向量计算单元,包括:
所述激光点到所述特征点的方向向量为
9.如权利要求8所述的装置,其特征在于,所述姿态调整单元,包括:
姿态值计算单元,用于根据所述方向向量,得到单线激光发射头的姿态值为
10.如权利要求9所述的装置,其特征在于,所述坐标转换单元,包括:
三维数据获取单元,用于测量所述特征点到所述单线激光发射头的空间距离di,结合所述特征点像素坐标,得到所述特征点三维数据(xi,yi,di);
坐标转换子单元,用于对所述特征点三维数据(xi,yi,di),根据公式