发明内容
鉴于上述问题,本发明实施例的目的在于提供一种彩色点云生成方法、装置及终端设备,以解决现有技术的不足。
根据本发明的一个实施方式,提供一种彩色点云生成方法,包括:
获取位置数据、影像数据及位置姿态数据,其中,所述位置姿态数据包括地理位置信息及旋转角度信息;
根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵;
根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵;
根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算所述位置数据对应的图像坐标;
根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。
在上述的彩色点云生成方法中,所述根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵包括:
根据所述地理位置信息计算投影点的子午线收敛角;
根据所述子午线收敛角确定所述第一旋转矩阵。
在上述的彩色点云生成方法中,所述根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵包括:
在标定过程中,根据所述影像数据中各影像之间的相对位置关系初步确定影像测量的第二旋转矩阵;
根据所述第二旋转矩阵、所述第一旋转矩阵、所述地理位置信息及所述旋转角度信息估算影像数据采集装置标定后的旋转参数;
在标定完成后,通过所述旋转参数重新计算第二旋转矩阵。
在上述的彩色点云生成方法中,所述根据所述影像数据中各影像之间的相对位置关系初步确定影像测量的第二旋转矩阵包括:
读取影像的基本信息;
在所述基本信息中提取出特征点;
将每一影像中的特征点与其余所有影像中的特征点进行匹配,根据匹配点建立该影像与所述其余所有影像之间的匹配关系,根据所述匹配关系计算所述第二旋转矩阵。
在上述的彩色点云生成方法中,所述根据所述第二旋转矩阵、所述第一旋转矩阵、所述地理位置信息及所述旋转角度信息估算影像数据采集装置标定后的旋转参数包括:
根据所述旋转角度信息计算影像数据采集装置到IMU之间的第三旋转矩阵;
根据所述地理位置信息计算地心到影像数据采集装置的第四旋转矩阵;
根据所述第一旋转矩阵、所述第二旋转矩阵、所述第三旋转矩阵及所述第四旋转矩阵估算所述旋转参数。
在上述的彩色点云生成方法中,所述属性参数包括影像数据采集装置的中心点坐标及焦距;
所述根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算与所述位置数据对应的图像坐标包括:
根据所述位置数据、所述第二旋转矩阵中的各参数及所述中心点坐标计算第一转接参数;
根据所述第一转接参数及所述焦距计算该位置数据对应的图像坐标。
在上述的彩色点云生成方法中,针对位置数据与图像坐标匹配不准确的情况,该方法还包括:
根据已经准确匹配的位置数据与所述图像坐标对所述第二旋转矩阵进行修正;
根据修正后的所述第二旋转矩阵重新计算匹配不准确的位置数据对应的图像坐标。
根据本发明的另一个实施方式,提供一种彩色点云生成装置,该装置包括:
获取模块,用于获取位置数据、影像数据及位置姿态数据,其中,所述位置姿态数据包括地理位置信息及旋转角度信息;
第一计算模块,用于根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵;
第二计算模块,用于根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵;
第三计算模块,用于根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算所述位置数据对应的图像坐标;
生成模块,用于根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。
根据本发明的再一个实施方式,提供一种终端设备,所述终端设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行上述的彩色点云生成方法。
根据本发明的又一个实施方式,提供一种计算机可读存储介质,其存储有所述终端设备中所用的所述计算机程序。
本公开的实施例提供的技术方案可以包括如下有益效果:
本发明中一种彩色点云生成方法、装置及终端设备,根据采集的所述地理位置信息计算因经线偏差导致的第一旋转矩阵,并根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵,该第二旋转矩阵即因相机安置偏差导致的错位和偏移的旋转矩阵,根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算所述位置数据对应的图像坐标,最终根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。该技术方案解决了传统方法生成彩色点云操作复杂的问题,自动化程度高,操作简便,能明显提高效率;计算得到彩色点云整体效果好,精度高,减少了因安置偏差导致的错位和偏移;具有良好的适应性,可以用于多种场景,对场景以及点云密度不敏感,生成的彩色点云整体效果较好。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出了本发明第一实施例提供的一种彩色点云生成方法的流程示意图。
该彩色点云生成方法包括以下步骤:
在步骤S110中,获取位置数据、影像数据及位置姿态数据,其中,所述位置姿态数据包括地理位置信息及旋转角度信息。
具体地,可以通过激光雷达采集地物的位置数据,通过成像装置(比如相机、摄像头等)采集地物的影像数据。
其中,可以通过GNSS天线采集地理位置信息,所述地理位置信息包括经度、纬度及大地高。
可以通过IMU惯性测量单元(以下简称IMU)采集某一时刻当前设备旋转角度信息,所述旋转角度信息可以包括俯仰角、横滚角及航向角。
在步骤S120中,根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵。
具体地,可以根据地理位置信息确定采集区域的投影经线偏差引起的旋转。
本实施例中,所述根据所述地理位置信息计算因投影经线偏差导致的第一旋转矩阵包括:
根据所述地理位置信息计算投影点的子午线收敛角;根据所述子午线收敛角确定所述第一旋转矩阵。
具体地,根据所述地理位置信息计算投影点的子午线收敛角:
其中,γ为子午线收敛角,l为投影点相对于中央经线的偏差,l=L-L0,L为投影点的经度,L0为中央经线的精度,B为投影点的纬度,t=tanB,η2=e′2cos2B,e'为第二偏心率。
那么,由投影经线偏差引起的旋转可通过以下方式表示:
其中,Rγ为第一旋转矩阵。
在步骤S130中,根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵。
具体地,根据影像数据可以得到影像测量的影像空间位置关系,结合影像空间位置关系与所述位置姿态数据,通过整体光束法平差,得到相机与IMU之间的安置标定参数,该安置标定参数包括XYZ方向的平移以及相机与IMU之间的旋转矩阵。
根据旋转角度信息及第一旋转矩阵计算影像数据中照片处的导航坐标系到IMU坐标系的旋转矩阵。
根据地理位置信息及第一旋转矩阵计算地心地固坐标系到影像数据中照片处的导航坐标系的旋转矩阵;
根据相机与IMU之间的旋转矩阵、影像数据中照片处的导航坐标系到IMU坐标系的旋转矩阵、地心地固坐标系到影像数据中照片处的导航坐标系的旋转矩阵计算投影坐标系与像空间坐标系的摄影测量系的旋转矩阵,并将该投影坐标系与像空间坐标系的摄影测量系的旋转矩阵作为第二旋转矩阵。
在步骤S140中,根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算所述位置数据对应的图像坐标。
具体地,将第二旋转矩阵中各参数与位置数据中XYZ的值进行加权,并结合影像数据采集装置的属性参数得到图像坐标。
在步骤S150中,根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。
具体地,根据图像坐标在影像数据中确定对应的颜色信息,并将颜色信息及位置数据结合,生成包含位置数据及颜色数据的彩色点云数据。
本实施例技术方案解决了彩色点云数据生成过程中操作复杂的问题,且得到的彩色点云数据整体效果好,精度高,减少了因投影安置偏差导致的错位和偏移,自动化程度高,生成效率高。
实施例2
图2示出了本发明第二实施例提供的一种彩色点云生成方法的流程示意图。
该彩色点云生成方法包括以下步骤:
在步骤S210中,获取位置数据、影像数据及位置姿态数据,其中,所述位置姿态数据包括地理位置信息及旋转角度信息。
此步骤与步骤S110相同,在此不再赘述。
在步骤S220中,根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵。
此步骤与步骤S120相同,在此不再赘述。
在步骤S230中,根据所述影像数据中各影像之间的相对位置关系初步确定影像测量的第二旋转矩阵。
具体地,由于第二旋转矩阵描述的是投影坐标系与像空间坐标系之间的角度旋转关系,计算第二旋转矩阵需要影像数据采集装置(具体可以为相机)与IMU坐标系x、y、z各轴的旋转参数(该旋转参数具体可为旋转角度);并且成像装置(具体可以为相机)、激光雷达、IMU等安装后就是固定的,相对位置及相对角度均不会发生改变。由于设备安装时,难免存在微小的角度偏差,因此,往往需要先执行标定的操作,该标定的操作是根据已知的第二旋转矩阵来估算旋转参数的值,在标定完成后,后续生成彩色点云时,可认为该旋转参数的值即为标定时估计出的值。
本实施例中,标定的过程中,该已知的第二旋转矩阵可以根据影像数据中各影像之间的相对位置关系得到,通过相对位置关系得到的第二旋转矩阵精度比较高,因此,在标定的操作中得到的旋转参数也具有较高的精度。
本实施例中,标定的操作可在步骤S220之后或者步骤S220之前的任意时刻执行,在此不作限定。
本实施例中,为了减少标定的过程的复杂性、减少标定硬件环境用到的硬件设备的成本及标定中各参数计算的复杂性,所述标定的操作可执行一次,即一次标定后,后续生成彩色点云时,均可根据该标定后的旋转参数的值计算第二旋转矩阵。当然,在一些其他的实施例中,该标定的操作还可以执行多次,在此不作限定。
本实施例中,所述根据所述影像数据中各影像之间的相对位置关系初步确定影像测量的第二旋转矩阵包括:
读取影像的基本信息;在所述基本信息中提取出特征点;将每一影像中的特征点与其余所有影像中的特征点进行匹配,根据匹配点建立该影像与所述其余所有影像之间的匹配关系,根据所述匹配关系计算所述第二旋转矩阵。
具体地,所述影像的基本信息可以包括数据入主点、焦距及像素大小等。
所述影像中的特征点可以包括orb特征点、sift(Scale Invariant FeatureTransform,尺度不变特征变换)特征点等。
在提取到每一张影像的特征点后,将每一张影像中的特征点与其余影像中的特征点进行匹配,将相似度最大的特征点作为匹配点。值得注意的是,匹配点在不同的影像中是相同的地物点。匹配所使用的算法可以包括暴力匹配、哈希匹配等。
将匹配点较多的两个影像作为目标影像,根据目标影像中的匹配后的各匹配点的进行平差计算,估计出像空间坐标系与世界坐标系之间的角度旋转关系对应的第二旋转矩阵。
在步骤S240中,根据所述第二旋转矩阵、所述第一旋转矩阵、所述地理位置信息及所述旋转角度信息估算影像数据采集装置标定后的旋转参数。
本实施例中,所述根据所述第二旋转矩阵、所述第一旋转矩阵、所述地理位置信息及所述旋转角度信息估算影像数据采集装置标定后的旋转参数包括:
根据所述旋转角度信息计算影像数据采集装置与IMU之间的第三旋转矩阵;根据所述地理位置信息计算地心到影像数据采集装置的第四旋转矩阵;根据所述第一旋转矩阵、所述第二旋转矩阵、所述第三旋转矩阵及所述第四旋转矩阵估算所述旋转参数。
具体地,假设IMU的坐标系统为b(x轴朝前,y轴朝右,z轴朝下),导航坐标系为n(x轴朝北,y轴朝东,z轴指向地心),地心地固坐标系为e(坐标原点在地心,z轴和地轴平行指向北极点,x轴指向本初子午线与赤道交点,y轴垂直于XOZ平面),投影坐标系为E(x朝东,y朝北,z朝上),像空间坐标系为B(原点在图像上方距像主点f(焦距长度)处(相机物镜中心位置)。X轴指向图像长轴方向,y轴垂直于XOZ面)。
所述旋转参数可以为旋转角度,由于相机安置偏差,假设相机与IMU坐标系x、y、z各轴的旋转角度分别Δα,Δβ,Δγ,相机到IMU坐标系的旋转矩阵为
投影坐标系与像空间坐标系的摄影测量系的旋转矩阵(上文所述的第二旋转矩阵)为
还可以根据旋转角度信息计算影像数据中第i张照片处导航坐标系到IMU的旋转矩阵
由于,
其中,
为IMU坐标系与像空间坐标系之间的转换,不同的系统定义的轴向有所差异,本实施例中,
为导航坐标系与投影坐标系之间的轴向转换,本实施例中,
λ
0为扫描区域内的平均纬度和平均经度,
将上述计算得到的各旋转矩阵代入到公式
中,由于通过步骤S230已经得到比较精确的第二旋转矩阵,因此,基于该公式,
通过非线性优化方式得到标定后的旋转参数Δα,Δβ,Δγ。
在步骤S250中,通过所述旋转参数重新计算第二旋转矩阵。
具体地,由于IMU测量的为原始的位置姿态,因此,在标定完成后,对点云数据进行赋色(即彩色点云生成)的时候,可以通过上述计算的旋转参数Δα,Δβ,Δγ及公式
计算出第二旋转矩阵。
本实施例中,步骤S230及步骤S240为标定的操作,步骤S250为对点云数据进行赋色(即彩色点云生成)的操作。标定的操作可以为一次,也可以为多次。
在步骤S260中,根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算所述位置数据对应的图像坐标。
此步骤与步骤S140相同,在此不再赘述。
在步骤S270中,根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。
此步骤与步骤S150相同,在此不再赘述。
实施例3
图3示出了本发明第三实施例提供的一种彩色点云生成方法的流程示意图。
该彩色点云生成方法包括以下步骤:
在步骤S310中,获取位置数据、影像数据及位置姿态数据,其中,所述位置姿态数据包括地理位置信息及旋转角度信息。
此步骤与步骤S110相同,在此不再赘述。
在步骤S320中,根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵。
此步骤与步骤S120相同,在此不再赘述。
在步骤S330中,根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵。
此步骤与步骤S130相同,在此不再赘述。
在步骤S340中,根据所述位置数据、所述第二旋转矩阵中的各参数及所述中心点坐标计算第一转接参数。
具体地,可以通过以下方式计算第一转接参数:
其中,Q1为影像数据中x方向上的第一转接参数,Q2为影像数据中y方向上的第一转接参数,X
s,Y
s,Z
s为相机中心的位置,X,Y,Z为位置数据,第二旋转矩阵
在步骤S350中,根据所述第一转接参数及所述焦距计算该位置数据对应的图像坐标。
具体地,通过摄影测量共线方程计算图像坐标:
其中,x,y为图像坐标,f为影像采集装置的焦距。
在步骤S360中,根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。
此步骤与步骤S150相同,在此不再赘述。
实施例4
图4示出了本发明第四实施例提供的一种彩色点云生成方法的流程示意图。
该彩色点云生成方法包括以下步骤:
在步骤S410中,获取位置数据、影像数据及位置姿态数据,其中,所述位置姿态数据包括地理位置信息及旋转角度信息。
此步骤与步骤S110相同,在此不再赘述。
在步骤S420中,根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵。
此步骤与步骤S120相同,在此不再赘述。
在步骤S430中,根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵。
此步骤与步骤S130相同,在此不再赘述。
在步骤S440中,根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算所述位置数据对应的图像坐标。
此步骤与步骤S140相同,在此不再赘述。
在步骤S450中,根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。
此步骤与步骤S150相同,在此不再赘述。
在步骤S460中,根据已经准确匹配的位置数据与所述图像坐标对所述第二旋转矩阵进行修正。
在大量的作业过程中,可能出现局部几个曝光位置的影像配准较差,此时利用交互方式,手动选择影像数据中与位置数据中存在的匹配点,建立单张影像与位置数据中点云的匹配关系。
具体地,首先在影像数据的图像中和位置数据的点云中找到若干对点,确保图像上的点和点云的点能够正确匹配。
然后利用匹配的点对构建出误差方程进行优化,估计出更为准确的姿态,确定第二旋转矩阵
在步骤S470中,根据修正后的所述第二旋转矩阵重新计算匹配不准确的位置数据对应的图像坐标。
具体地,根据修正后的第二旋转矩阵
代入摄影测量共线方程重新计算位置数据对应的图像坐标,进一步优化局部微小错位偏差,提高匹配精度。
实施例5
图5示出了本发明第五实施例提供的一种彩色点云生成装置的结构示意图。该彩色点云生成装置500对应于实施例1中的彩色点云生成方法,实施例1中的彩色点云生成方法同样也适用于该彩色点云生成装置500,在此不再赘述。
所述彩色点云生成装置500包括获取模块510、第一计算模块520、第二计算模块530、第三计算模块540及生成模块550。
获取模块510,用于获取位置数据、影像数据及位置姿态数据,其中,所述位置姿态数据包括地理位置信息及旋转角度信息。
第一计算模块520,用于根据所述地理位置信息计算因经线偏差导致的第一旋转矩阵。
第二计算模块530,用于根据所述第一旋转矩阵、所述影像数据、所述地理位置信息及所述旋转角度信息计算影像测量的第二旋转矩阵。
第三计算模块540,用于根据所述位置数据、所述第二旋转矩阵及影像数据采集装置的属性参数计算所述位置数据对应的图像坐标。
生成模块550,用于根据所述图像坐标确定所述影像数据中相应的颜色信息,根据所述颜色信息及对应位置数据生成彩色点云数据。
本发明另一实施例还提供了一种终端设备,所述终端设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行上述的彩色点云生成方法或上述的彩色点云生成装置中各模块的功能。
存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
该终端设备可以为计算机终端(台式电脑、服务器等),还可以为移动终端(手机、平板的电脑、笔记本电脑等)。
本实施例还提供了一种计算机存储介质,用于储存上述的终端设备中所使用的彩色点云生成方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。