CN107369181A - 基于双处理器结构的点云数据采集及处理方法 - Google Patents

基于双处理器结构的点云数据采集及处理方法 Download PDF

Info

Publication number
CN107369181A
CN107369181A CN201710441574.6A CN201710441574A CN107369181A CN 107369181 A CN107369181 A CN 107369181A CN 201710441574 A CN201710441574 A CN 201710441574A CN 107369181 A CN107369181 A CN 107369181A
Authority
CN
China
Prior art keywords
msub
data
mrow
msup
coprocessor
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.)
Granted
Application number
CN201710441574.6A
Other languages
English (en)
Other versions
CN107369181B (zh
Inventor
裴海龙
黄荣恩
庄兆殿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201710441574.6A priority Critical patent/CN107369181B/zh
Publication of CN107369181A publication Critical patent/CN107369181A/zh
Application granted granted Critical
Publication of CN107369181B publication Critical patent/CN107369181B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0635Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies
    • H03H17/065Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer
    • H03H17/0657Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer where the output-delivery frequency is higher than the input sampling frequency, i.e. interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30181Earth observation
    • G06T2207/30184Infrastructure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0202Two or more dimensional filters; Filters for complex signals
    • H03H2017/0205Kalman filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Navigation (AREA)

Abstract

本发明公开了一种基于双处理器结构的点云数据采集及处理方法,步骤如下:协处理器初始化后开启串口中断采集GPS的定位数据,并以阻塞等待的方式等待扫描仪数据包;协处理器接收到扫描仪数据包后开启定时中断分布采集当前时刻的姿态数据;协处理器在网口空闲时把采集数据通过以太网模块发送到主处理器;主处理器的主线程以阻塞等待的方式采集协处理器发送的数据包并存储,同时进行数据预处理;主处理器开启图像采集线程,进行高清图像的采集并进行畸变校正和特征点提取;主处理器开启数据处理线程,采用扩展卡尔曼滤波方法对数据进行处理;解析扫描仪数据,结合准确的姿态、定位数据得到扫描点的三维坐标,构建三维点云图并实行体素栅格采样。

Description

基于双处理器结构的点云数据采集及处理方法
技术领域
本发明涉及地形测绘和嵌入式系统设计领域,具体涉及一种基于双处理器结构的点云数据采集及处理方法。
背景技术
点云数据包括激光测距的距离信息、发射源的姿态信息、发射源的位置信息,甚至还可能有颜色信息。在地形测绘等测绘领域要求测绘精度达到厘米级,甚至在精细装备的测绘上要求达到微米级,这就要求点云数据有足够高的精度。高精度的点云数据的前提必须是大数据量的数据,其次就是对于点云数据的精确处理。随着测绘技术的发展,倾斜摄影等技术的成熟,测绘设备除了获取点云数据外往往会加入高清图像的获取,正因为以上三点,对采集与处理大数据量的点云数据以及图像数据的处理器以及传输链路就有了很高的性能要求。同时,数据的处理,特别是图像数据的处理需要占用较大的CPU内存资源,往往会影响到数据的采集工作,造成数据的间断缺失,对高性能的处理器要求明显较高。然而,性能强大的处理器往往意味着价格比较昂贵,并且目前性能强大的处理器往往从国外进口,维修、开发等极为不方便。采集的原始数据中不可避免地存在噪声以及误差,如何选择合适的数据处理算法对于高精度的三维点云图来说至关重要。由于原始数据涉及到多种传感器,所以数据处理算法应以数据融合算法为主,目前主流的数据融合算法包括特征融合、神经网络和概率统计方法等。但这些方法计算较为繁琐,影响实时性,并不是特别合适。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于双处理器结构的点云数据采集及处理方法。
本发明的目的可以通过采取如下技术方案达到:
一种基于双处理器结构的点云数据采集及处理方法,包括以下步骤:
S1、协处理器初始化后开启串口中断采集GPS的定位数据,并以阻塞等待的方式等待扫描仪数据包;
S2、协处理器接收到扫描仪数据包后,立刻开启定时中断分布采集当前时刻惯性测量单元的姿态数据;
S3、协处理器在网口空闲时期,即无扫描仪数据到来时期把采集到的扫描仪数据包和相应的姿态数据、定位数据打包,通过以太网模块发送到主处理器;
S4、主处理器的主线程以阻塞等待的方式采集协处理器发送而来的数据包并存储,同时进行数据的预处理;
S5、主处理器通过人为输入信号控制图像采集线程的开启,进行高清图像的采集并进行畸变校正和特征点提取;
S6、主处理器在图像采集线程完成后发送信号量开启数据处理线程,采用扩展卡尔曼滤波方法对所有数据进行处理;
S7、解析扫描仪数据,结合准确的姿态、定位数据得到扫描点的三维坐标,构建三维点云图并实行体素栅格采样,减少点云数据量,提高后续点云数据处理的效率。
进一步地,步骤S1和步骤S4中,阻塞等待方式指程序停留在某一指令,直到特殊的信号(扫描仪数据包到达协处理器的以太网口)来触发,结束等待,程序往下继续进行;串口中断过程如下:设定的串口缓冲区一旦有数据发送中断请求,协处理器响应中断请求,触发数据采集程序采集GPS模块的定位数据;步骤S2中的定时中断过程如下:(1)协处理器开启定时器计数,(2)计数器计数达到设定的值发送中断请求,协处理器响应中断请求,触发数据采集程序,采集惯性测量单元的数据。
进一步地,步骤S3、S4、S5中所述的主处理器采用的是多线程技术,主要分为数据接收线程(主线程)、图像采集线程和数据处理线程。线程之间的共享变量通过互斥锁来锁定,线程之间采用信号量的方式进行触发。多线程技术保证了主处理器多项处理任务能够有序、并行地执行,提高了实时性,且保障了系统代码的拓展性。
进一步地,步骤S4中主线程的数据预处理方法包括一阶低通滤波、窗口滑动滤波和线性插值滤波。数据预处理的过程如下:
(1)对惯性测量单元的加速度计、磁力计都进行一阶低通滤波,代码实现公式如下:
xi=xi-1+k*(xi-xi-1)
其中,xi为当前时刻的数据,xi-1为前一时刻的数据,k为可调参数,根据实际的惯性测量单元而定。
(2)惯性测量单元的角速度数据采用窗口滑动滤波,实现公式如下:
xi=1/n*(xi-n+1+…+xi)
xi为当前时刻的数据,xi-n+1为xi前n时刻的数据,n为可调窗口大小参数。
(3)对GPS的定位数据进行线性插值滤波,在两组变化的定位数据之间的时间段插入若干组新的数据,新的数据生成公式如下:
其中,yi表示新插入的定位数据,xi代表新插入定位数据的时间,x2,x1代表两组变化的定位数据的时间,y2,y1代表两组变化的定位数据。一阶低通滤波有效地减少了加速度和磁力的高频噪声,滑动窗口滤波提高了角速度数据的平滑性,减少数据突变带来的影响,线性插值滤波弥补了GPS模块更新数据频率慢的缺陷,提高了原始数据的精度,使数据变化更平滑。
进一步地,步骤S5中对高清图像数据进行畸变校正,并通过ORB特征提取进行图像之间的姿态位置变换的估计。畸变校正根据相机实际成像模型:
(xi,yi)为理想成像模型中理想投影点在图像坐标系下的坐标,而(xr,yr)为实际成像模型中实际投影点在图像坐标系下的坐标,(u0,v0)表示图像坐标系原点在像素坐标系中的坐标,sx,sy是图像水平轴和垂直轴的尺度因子,k1,k2为径向畸变系数,为该像素点到像面中心的距离,p1,p2为切向畸变系数。ORB特征提取得到一系列对应的特征点,进而得到姿态位置变换的估计,方法采用八点法,以一对匹配点在两幅图像中的像素坐标(u1,v1,1),(u2,v2,1)为例,公式如下:
(u1,v1,1)*E=(u2,v2,1)
选取至少8组匹配点即可解出本质矩阵E。然后E的SVD分解E=U∑VT,对于任意一个E,都有一种可能的平移矩阵t,旋转矩阵R,并且使得该匹配点在两幅图像中都具有正的深度,求解公式为:
其中代表沿Z轴旋转九十度得到的旋转矩阵。
进一步地,步骤S6中使用扩展卡尔曼滤波方法,把惯性测量单元中加速度和磁力计估计的姿态数据使用角速度以及通过图像估计的变换矩阵进行修正,得到更加精确的姿态定位数据,实现公式如下:
Pk/k-1=Φk,k-1Pk-1Φk,k-1 Tk-1Qk-1Γk-1 T
Kk=Pk/k-1Hk T(HkPk/k-1Hk T+Rk)-1
Pk=(I-KkHk)Pk/k-1
其中Φk,k-1,Hk是过程函数和观测函数的雅可比矩阵,Qk是系统的过程噪声向量序列的方差阵,Rk是系统的观测噪声向量序列的方差阵,tk时刻的被估计状态为Xk,Xk的测量值为Zk。Xk包括角速度解算的姿态以及定位数据,Zk包括加速度磁力计解算的姿态数据、GPS解算的定位数据以及图像变换估计的变换矩阵。
进一步地,步骤S7中得到的三维点云图进行体素栅格采样,减少点云数据量。体素栅格采样指在已设定大小的小长方体内只取中心点,而删去在该长方体内的其余点,有效地减少了点云数据量,提高了点云处理的速度,减轻处理器的负担。
本发明相对于现有技术具有如下的优点及效果:
1)主、协处理器中的采集机制(即:多线程采集方式与中断采集方式)使数据的采集和处理任务的分离,充分发挥了两个处理器的性能,使得对高性能处理器的需求降低,使用简单便宜的处理器也可保证工作性能,降低了成本;也使系统在维护、可拓展性方面也更加方便。
2)数据处理方法(包括滤波、融合修正)弥补了数据采集频率不统一带来的某时间段的数据空缺问题,有效地减少了数据的噪声并提高了数据精度。
附图说明
图1是本发明公开的基于双处理器结构的点云数据采集系统的采集机制图;
图2是本发明公开的数据处理方法(扩展卡尔曼滤波)数据流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例公开了一种双处理器结构的点云数据采集与处理方法,主、协处理器分别采用多线程和中断采集的机制,步骤如下:(1)协处理器以阻塞等待的方式等待三维扫描仪数据,开启串口中断采集定位数据;(2)协处理器接收到扫描仪数据包后,马上开启定时中断,分别采集姿态数据和定位数据,完成后关闭中断;(3)协处理器在网口空闲时期把数据打包并发送到主处理器;(4)主处理器采用多线程技术,分为数据接收线程(采集协处理器发送的数据)、图像采集线程和数据处理线程。这种采集机制的优点在于确保数据的同步性、实时性以及程序代码的可拓展性;点云数据处理方法主要为扩展卡尔曼滤波方法,在主处理器中进行,步骤如下:(1)主处理器对姿态数据、定位数据进行预处理,估计出姿态和位置信息;(2)对高清图像数据进行畸变校正,并通过特征提取对图像之间的姿态位置变换进行估计;(3)使用扩展卡尔曼滤波,对估计的姿态、定位数据进行修正,使其更加精确;(4)解析三维扫描仪数据并根据姿态定位数据得到扫描点的三维坐标,然后进行体素栅格采样得到三维点云图。该数据处理方法使点云数据精度大大提高,测绘范围可以达到100米,测绘精度在±3cm,满足测绘要求。
点云数据的庞大性在一定程度上提高了对处理器的要求,双处理器的结构以及本实施例公开的采集与处理方法,就是为了处理器不会因为处理数据消耗的大量的内存而使得点云数据的采集变得不可靠,提高了系统采集和处理数据的效率,提高了处理器的工作效率。
完整的点云数据采集系统所需要的数据包括:点云数据、姿态数据、定位数据和图像数据。由于图像数据是为了突出地物要素的特征所需要的以及其本身所占存储量较大,数据处理工作较为复杂,需要占用很大的CPU内存资源,所以把采集图像数据以及数据处理的任务分配给主处理器,其他的点云数据、姿态数据、定位数据对于呈现一幅完整的点云图是必不可少的,所以这几类数据采集的任务都分配给协处理器,通过协处理器的采集、处理并统一打包传送回主处理器;移动端与PC端的数据交换统一交给主处理器完成。这样分工的话,协处理器的任务就是采集点云数据等基础数据,不会受主处理器处理数据的效率影响,保证了数据采集的连续性和可靠性。
点云数据采集系统的设计难点就在于各数据的发送频率不一致,如何保证数据的同步性。双处理器的结构使得采集机制可以多样化并且同时保证数据采集大致的同步性,同时降低对高性能处理器的要求。本发明采用的采集机制如图1所示。
协处理器主要负责采集点云数据、姿态数据、定位数据。这些数据的同步性由采集的机制决定。本发明的设计思想是采用中断的机制。该机制在协处理器中的具体实现步骤如下:
(1)协处理器初始化成功后开启串口中断采集GPS的定位数据,同时协处理器的以太网模块等待激光扫描仪的数据,由于扫描仪的数据发送频率比其他的传感器的数据发送频率高很多,所以协处理器的采集程序以采集扫描仪数据为主,采用阻塞等待的方式。目前大多数的定位系统都是靠GPS导航定位系统,数据更新的频率基本都是10至20赫兹,所以从频率上说很难做到和发射源的发送频率同步,所以只能从数据处理的角度进行同步化。本发明在协处理器上采用串口中断的形式接收导航定位系统发送的定位数据,协处理器上电初始化完成后便打开串口中断,监视串口缓冲区,一旦有数据到来便采集,并更新在协处理器的内存中。
(2)协处理器一发现有扫描仪数据包到达以太网口,马上采集,同时马上开启定时中断的方式采集姿态数据。协处理器在成功采集到扫描仪数据包后便立即开启频率高达几万赫兹的定时中断采集惯性测量单元的数据,每个周期对数据进行更新。定时中断的过程就是协处理器的定时计数器达到设定值的时候,协处理器会响应中断,执行相应的中断程序,即采集姿态数据程序。由于这个定时中断的频率比发射源的发送频率(约1kHZ)高很多,所以从时序上认为两者基本是同步的。
(3)当协处理器采集到扫描仪数据和姿态数据后,取出当前最新的定位数据,并进行打包并通过以太网模块发送给主处理器。所以,中断采集的机制就可以满足点云数据的采集需要,协处理器的选择也因此多样化,普通的嵌入式芯片便可以满足要求,大大地降低了成本。
主处理器的任务是处理协处理器传送来的数据以及采集图像数据。为了方便进行嵌入式的开发以及保证系统的可拓展性,本发明采用的主处理器为搭配了LINUX系统的处理器。主处理器的程序设计思想是多线程技术,主要原因在于保证图像数据和点云数据的独立性,不相互影响以及为了保持系统的可拓展性,如有需要加入新功能只需使用新线程即可,不影响原有的线程。主处理器的主线程是点云数据包的获取、保存以及少许简单的预处理工作,本发明还加入了图像采集线程、数据处理线程。图像采集线程负责采集高清摄像头的图像数据并进行畸变校正,然后保存在主处理器中;数据处理线程主要负责数据的处理(扩展卡尔曼滤波)以及主处理器与PC端的数据通信(包括点云数据和图像数据的发送)。本发明把数据的获取和发送分成两个不同的线程主要是为了在远距离控制的时候,点云数据的远距离传输对于传输的平台有很高的要求,很容易造成数据丢失,两个线程可以保证即使数据在传输途中丢失了,也能在主处理器中找到备份,而图像数据属于辅助数据,也单独放在一个线程中,减少对主线程的干扰。不同的线程之间共享的变量需要用到互斥锁技术,保证线程之间不受干扰。线程之间的有序、并行进行通过信号量机制来实现。主处理器中多线程技术的具体实现方式如下:
(1)主处理器的主线程以阻塞等待的方式采集协处理器发送而来的数据包并存储,同时进行数据的预处理;
(2)主处理器通过人为输入信号控制图像采集线程的开启,进行高清图像的采集。
(3)图像采集线程完成后发送信号量开启数据处理线程,采用扩展卡尔曼滤波方法对所有数据进行处理。
(4)解析扫描仪数据,结合准确的姿态、定位数据得到扫描点的三维坐标,构建三维点云图并实行体素栅格采样。
实施例二
本实施例采用基于扩展卡尔曼滤波(EKF)融合的数据处理方法,对采集得到的姿态、位置信息进行处理。数据处理主要分为预处理和EKF阶段。
预处理阶段包括对各种原始数据的预处理工作,如图1所示,包括(1)加速度、磁分量的一阶低通滤波,(2)角速度的窗口滑动滤波,(3)定位数据的线性插值滤波,(4)图像的畸变矫正以及估计变换矩阵。
(1)由于加速度、磁分量等数据高频噪声较大,为了减少噪声,本发明采用一阶低通滤波对加速度、磁分量进行滤波处理,代码实现公式如下:
xi=xi-1+k*(xi-xi-1)
其中,xi为当前时刻的数据,xi-1为前一时刻的数据,k为可调参数,根据实际的惯性测量单元而定。
(2)角速度高频噪声相对较少,但为了排除异变数据,本发明采用滑动窗口滤波,实现公式如下:
xi=1/n*(xi-n+1+…+xi)
xi为当前时刻的数据,xi-n+1为xi前n时刻的数据,n为可调窗口大小参数;
(3)由于GPS更新定位数据的频率远低于扫描仪以及惯性测量单元,所以本发明对定位数据进行线性插值滤波的处理,减少了定位数据更新期间数据缺失的影响,新的数据生成公式如下:
其中,yi表示新插入的定位数据,xi代表新插入定位数据的时间,x2,x1代表两组变化的定位数据的时间,y2,y1代表两组变化的定位数据。一阶低通滤波有效地减少了加速度和磁力的高频噪声,滑动窗口滤波提高了角速度数据的平滑性,减少数据突变带来的影响,线性插值滤波弥补了GPS模块更新数据频率慢的缺陷,提高了原始数据的精度,使数据变化更平滑。
(4)对于高清摄像头采集的图像数据,由于采用的是大广角镜头,图像畸变较为严重,所以需要进行图像的畸变校正。由于畸变的原因,图像中的像素点会发生几何位置上的偏移,例如空间中的一条直线在图像中会变成曲线,对图像进行畸变校准就是使各个像素点的几何关系能够回到相对正确的状态下。根据相机实际成像模型进行畸变校正:
(xi,yi)为理想成像模型中理想投影点在图像坐标系下的坐标,而(xr,yr)为实际成像模型中实际投影点在图像坐标系下的坐标,(u0,v0)表示图像坐标系原点在像素坐标系中的坐标,sx,sy是图像水平轴和垂直轴的尺度因子,k1,k2为径向畸变系数,为该像素点到像面中心的距离,p1,p2为切向畸变系数,在相机焦距不变的情况下,将相机标定获得的内参数和畸变系数代入上式中,便可求得校正后图像像素点的理想坐标位置。
每两幅图像之间存在相同的场景,因此也存在相同的特征点,根据这些点在图像中的位置可以估计出相机在两幅图像之间的变换矩阵。本实施例对两幅经过畸变校正的图像进行ORB特征提取匹配,从几组匹配好的特征点的像素坐标估计出相机的变换矩阵,也等同于扫描仪的变换矩阵。ORB特征包括FAST关键点和BRIEF描述子,FAST关键点主要检测局部像素灰度变化明显的地方,检测速度较快,而BRIEF描述符是一种二进制描述符,由一个特征向量组成。
特征提取具体步骤为:
(1)在图像中选取像素点,假设其亮度为I,人为设定一个阈值T;
(2)以该像素点为中心一定半径的圆内选取若干个像素点,这些点里面有12个点的亮度大于I+T或小于I-T,则该中心像素点被认为是FAST关键点;
(3)在FAST关键点附近随机选取两个像素点p,q,若p大于q则取1,反之取0,由此取128组点比较,组成128位的BRIEF描述符;
(4)根据两幅图像特征点BRIEF描述符的汉明距离(即不同的位的个数)来进行匹配,形成匹配点对。
由匹配点对估计变换矩阵步骤为:
(1)选取8组匹配点对,以一组为例说明,该组在两幅图像中的像素坐标(u1,v1,1),(u2,v2,1)为例,公式如下:
(u1,v1,1)*E=(u2,v2,1)
选取至少8组匹配点组成方程组可求解出本质矩阵E。
(2)E的SVD分解为E=U∑VT,对于任意一个E,都有一种可能的平移矩阵t,旋转矩阵R,并且使得该匹配点在两幅图像中都具有正的深度,求解公式为:
其中代表沿Z轴旋转九十度得到的旋转矩阵。
EKF阶段涉及估计与校正两部分,如图2所示。扩展卡尔曼滤波融合的基本公式如下所示:
Pk/k-1=Φk,k-1Pk-1Φk,k-1 Tk-1Qk-1Γk-1 T
Kk=Pk/k-1Hk T(HkPk/k-1Hk T+Rk)-1
Pk=(I-KkHk)Pk/k-1
其中Φk,k-1,Hk是过程函数和观测函数的雅可比矩阵,Qk是系统的过程噪声向量序列的方差阵,Rk是系统的观测噪声向量序列的方差阵,tk时刻的被估计状态为Xk,Xk的测量值为Zk。Xk包括步骤3中角速度解算的姿态以及定位数据,Zk包括步骤3加速度磁力计解算的姿态数据、GPS解算的定位数据以及图像变换估计的变换矩阵。具体实现包括以下两个方面:
(1)首先从惯性测量单元中的角速度数据进行姿态估计,然后用加速度以及磁力数据对估计姿态进行校正。这是因为角速度数据由于陀螺仪的漂移而造成比较大的姿态误差,而加速度以及磁力数据不存在漂移但高频噪声较大,于是我们采用扩展卡尔曼滤波综合角速度、加速度和磁分量的优点,得到较高精度的姿态数据。然后再用相应的姿态数据对位置、速度信息进行一定的修正,提高精度。
(2)每两帧高清图像之间有重合的部分,通过特征点的提取匹配可以得出特征点对的位移以及旋转关系,从而大致得出系统的位移和姿态变化信息,把这些信息加入到扩展卡尔曼滤波器中,对位置速度信息起到一定的修正作用。
扩展卡尔曼滤波对数据处理有平滑和插值的作用,因此也能得到在部分数据未更新的时间段的一些数据,也提高了数据的同步性以及精度。
综上所述,本发明公开的双处理器结构的点云数据采集处理系统设计方法可适应绝大多数点云与图像采集处理系统的要求,并且有效地降低对处理器性能的要求,保证数据采集与处理的同步性,有效地提高数据的精度。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (8)

1.一种基于双处理器结构的点云数据采集及处理方法,其特征在于,所述方法包括下列步骤:
S1、协处理器初始化后开启串口中断采集GPS的定位数据,并以阻塞等待的方式等待扫描仪数据包;
S2、协处理器接收到扫描仪数据包后,立刻开启定时中断分布采集当前时刻惯性测量单元的姿态数据;
S3、协处理器在网口空闲时期把采集到的扫描仪数据包和相应的姿态数据、定位数据打包,通过以太网模块发送到主处理器;
S4、主处理器的主线程以阻塞等待的方式采集协处理器发送而来的数据包并存储,同时进行数据的预处理;
S5、主处理器通过人为输入信号控制图像采集线程的开启,进行高清图像的采集并进行畸变校正和特征点提取;
S6、主处理器在图像采集线程完成后发送信号量开启数据处理线程,采用扩展卡尔曼滤波方法对所有数据进行处理;
S7、解析扫描仪数据,结合准确的姿态、定位数据得到扫描点的三维坐标,构建三维点云图并实行体素栅格采样。
2.根据权利要求1所述的基于双处理器结构的点云数据采集及处理方法,其特征在于,所述阻塞等待的方式过程如下:程序停留在某一指令,直到扫描仪数据包到达协处理器的以太网口来触发,结束等待,程序往下继续进行;所述串口中断过程如下:设定的串口缓冲区一旦有数据发送中断请求,协处理器响应中断请求,触发数据采集程序采集GPS模块的定位数据;所述定时中断过程如下:协处理器开启定时器计数,计数器计数达到设定的值发送中断请求,协处理器响应中断请求,触发数据采集程序,采集惯性测量单元的数据。
3.根据权利要求1所述的基于双处理器结构的点云数据采集及处理方法,其特征在于,所述步骤S4、步骤S5和步骤S6分别对应数据接收线程、图像采集线程和数据处理线程,主处理器采用多线程技术,线程之间的共享变量通过互斥锁来锁定,线程之间采用信号量的方式进行触发。
4.根据权利要求1所述的基于双处理器结构的点云数据采集及处理方法,其特征在于,所述步骤S4中主线程的数据预处理方法包括一阶低通滤波、窗口滑动滤波和线性插值滤波,具体过程如下:
S401、对惯性测量单元的加速度计、磁力计都进行一阶低通滤波,代码实现公式如下:
xi=xi-1+k*(xi-xi-1)
其中,xi为当前时刻的数据,xi-1为前一时刻的数据,k为可调参数,根据实际的惯性测量单元而定;
S402、对惯性测量单元的角速度数据采用窗口滑动滤波,实现公式如下:
xi=1/n*(xi-n+1+…+xi)
xi为当前时刻的数据,xi-n+1为xi前n时刻的数据,n为可调窗口大小参数;
S403、对GPS的定位数据进行线性插值滤波,在两组变化的定位数据之间的时间段插入若干组新的数据,新的数据生成公式如下:
<mrow> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>y</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> <mrow> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> </mrow> </mfrac> <mo>*</mo> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow>
其中,yi表示新插入的定位数据,xi代表新插入定位数据的时间,x2,x1代表两组变化的定位数据的时间,y2,y1代表两组变化的定位数据。
5.根据权利要求1所述的基于双处理器结构的点云数据采集及处理方法,其特征在于,所述步骤S5中对高清图像数据进行畸变校正,并通过ORB特征提取进行图像之间的姿态位置变换的估计,
其中,畸变校正根据相机实际成像模型:
<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>s</mi> <mi>x</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>r</mi> </msub> <mo>+</mo> <msub> <mi>x</mi> <mi>r</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>k</mi> <mn>1</mn> </msub> <msup> <mi>r</mi> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>k</mi> <mn>2</mn> </msub> <msup> <mi>r</mi> <mn>4</mn> </msup> </mrow> <mo>)</mo> <mo>+</mo> <msub> <mi>p</mi> <mn>1</mn> </msub> <msub> <mi>x</mi> <mi>r</mi> </msub> <mo>(</mo> <mrow> <mn>3</mn> <msup> <msub> <mi>x</mi> <mi>r</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>y</mi> <mi>r</mi> </msub> <mn>2</mn> </msup> </mrow> <mo>)</mo> <mo>+</mo> <mn>2</mn> <msub> <mi>p</mi> <mn>2</mn> </msub> <msub> <mi>x</mi> <mi>r</mi> </msub> <msub> <mi>y</mi> <mi>r</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>s</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>r</mi> </msub> <mo>+</mo> <msub> <mi>y</mi> <mi>r</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>k</mi> <mn>1</mn> </msub> <msup> <mi>r</mi> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>k</mi> <mn>2</mn> </msub> <msup> <mi>r</mi> <mn>4</mn> </msup> </mrow> <mo>)</mo> <mo>+</mo> <msub> <mi>p</mi> <mn>2</mn> </msub> <msub> <mi>x</mi> <mi>r</mi> </msub> <mo>(</mo> <mrow> <mn>3</mn> <msup> <msub> <mi>x</mi> <mi>r</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>y</mi> <mi>r</mi> </msub> <mn>2</mn> </msup> </mrow> <mo>)</mo> <mo>+</mo> <mn>2</mn> <msub> <mi>p</mi> <mn>1</mn> </msub> <msub> <mi>x</mi> <mi>r</mi> </msub> <msub> <mi>y</mi> <mi>r</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced>
(xi,yi)为理想成像模型中理想投影点在图像坐标系下的坐标,而(xr,yr)为实际成像模型中实际投影点在图像坐标系下的坐标,(u0,v0)表示图像坐标系原点在像素坐标系中的坐标,sx,sy是图像水平轴和垂直轴的尺度因子,k1,k2为径向畸变系数,为该像素点到像面中心的距离,p1,p2为切向畸变系数;
其中,ORB特征提取得到一系列对应的特征点的匹配点对,由匹配点估计变换矩阵,进而得到姿态位置变换的估计,方法采用八点法,以一对匹配点在两幅图像中的像素坐标(u1,v1,1),(u2,v2,1)为例,公式如下:
(u1,v1,1)*E=(u2,v2,1)
选取至少8组匹配点即可解出本质矩阵E,然后本质矩阵E的SVD分解E=U∑VT,对于任意一个E,都有一种可能的平移矩阵t,旋转矩阵R,并且使得该匹配点在两幅图像中都具有正的深度,求解公式为:
<mrow> <msubsup> <mi>t</mi> <mn>1</mn> <mo>^</mo> </msubsup> <mo>=</mo> <msub> <mi>UR</mi> <mrow> <mi>Z</mi> <mrow> <mo>(</mo> <mfrac> <mi>&amp;pi;</mi> <mn>2</mn> </mfrac> <mo>)</mo> </mrow> </mrow> </msub> <mo>&amp;Sigma;</mo> <msup> <mi>U</mi> <mi>T</mi> </msup> </mrow>
<mrow> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>=</mo> <msubsup> <mi>UR</mi> <mrow> <mi>Z</mi> <mrow> <mo>(</mo> <mfrac> <mi>&amp;pi;</mi> <mn>2</mn> </mfrac> <mo>)</mo> </mrow> </mrow> <mi>T</mi> </msubsup> <msup> <mi>V</mi> <mi>T</mi> </msup> </mrow>
其中代表沿Z轴旋转九十度得到的旋转矩阵。
6.根据权利要求5所述的基于双处理器结构的点云数据采集及处理方法,其特征在于,所述ORB特征包括FAST关键点和BRIEF描述子,FAST关键点主要检测局部像素灰度变化明显的地方,检测速度较快,而BRIEF描述符是一种二进制描述符,由一个特征向量组成,其中,ORB特征提取过程如下:
(1)在图像中选取像素点,假设其亮度为I,人为设定一个阈值T;
(2)以该像素点为中心一定半径的圆内选取若干个像素点,这些点里面有12个点的亮度大于I+T或小于I-T,则该中心像素点被认为是FAST关键点;
(3)在FAST关键点附近随机选取两个像素点p,q,若p大于q则取1,反之取0,由此取128组点比较,组成128位的BRIEF描述符;
(4)根据两幅图像特征点BRIEF描述符的汉明距离来进行匹配,形成匹配点对。
7.根据权利要求1所述的基于双处理器结构的点云数据采集及处理方法,其特征在于,所述步骤S6中采用扩展卡尔曼滤波方法把惯性测量单元中加速度和磁力计估计的姿态数据使用角速度以及通过图像估计的变换矩阵进行修正,得到精确的姿态定位数据,实现公式如下:
<mrow> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <mi>f</mi> <mo>&amp;lsqb;</mo> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>&amp;rsqb;</mo> </mrow>
Pk/k-1=Φk,k-1Pk-1Φk,k-1 Tk-1Qk-1Γk-1 T
Kk=Pk/k-1Hk T(HkPk/k-1Hk T+Rk)-1
<mrow> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mi>k</mi> </msub> <mo>=</mo> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>K</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>Z</mi> <mi>k</mi> </msub> <mo>-</mo> <mi>h</mi> <mo>&amp;lsqb;</mo> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <mi>k</mi> <mo>&amp;rsqb;</mo> <mo>)</mo> </mrow> </mrow>
Pk=(I-KkHk)Pk/k-1
其中Φk,k-1,Hk是过程函数和观测函数的雅可比矩阵,Qk是系统的过程噪声向量序列的方差阵,Rk是系统的观测噪声向量序列的方差阵,tk时刻的被估计状态为Xk,Xk的测量值为Zk,Xk包括角速度解算的姿态以及定位数据,Zk包括加速度磁力计解算的姿态数据、GPS解算的定位数据以及图像变换估计的变换矩阵。
8.据权利要求1所述的基于双处理器结构的点云数据采集及处理方法,其特征在于,所述步骤S7中对构建的三维点云图实行体素栅格采样指在已设定大小的小长方体内只取中心点,而删去在该长方体内的其余点。
CN201710441574.6A 2017-06-13 2017-06-13 基于双处理器结构的点云数据采集及处理方法 Active CN107369181B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710441574.6A CN107369181B (zh) 2017-06-13 2017-06-13 基于双处理器结构的点云数据采集及处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710441574.6A CN107369181B (zh) 2017-06-13 2017-06-13 基于双处理器结构的点云数据采集及处理方法

Publications (2)

Publication Number Publication Date
CN107369181A true CN107369181A (zh) 2017-11-21
CN107369181B CN107369181B (zh) 2020-12-22

Family

ID=60304822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710441574.6A Active CN107369181B (zh) 2017-06-13 2017-06-13 基于双处理器结构的点云数据采集及处理方法

Country Status (1)

Country Link
CN (1) CN107369181B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009429A (zh) * 2017-12-11 2018-05-08 北京奇虎科技有限公司 一种补丁函数生成方法及装置
CN108259709A (zh) * 2018-01-19 2018-07-06 长沙全度影像科技有限公司 一种用于子弹时间拍摄的视频图像防抖方法及系统
CN108961340A (zh) * 2018-08-09 2018-12-07 中央民族大学 一种目标物体的自动射击方法及装置
CN109813305A (zh) * 2018-12-29 2019-05-28 广州蓝海机器人系统有限公司 基于激光slam的无人叉车
CN111338804A (zh) * 2020-05-19 2020-06-26 北京数字绿土科技有限公司 激光雷达点云数据的解算方法、装置及多线程处理系统
CN111951303A (zh) * 2020-08-12 2020-11-17 南京师范大学 一种机器人运动姿态视觉估计方法
CN112505718A (zh) * 2020-11-10 2021-03-16 奥特酷智能科技(南京)有限公司 用于自动驾驶车辆的定位方法、系统及计算机可读介质
CN112775931A (zh) * 2019-11-05 2021-05-11 深圳市优必选科技股份有限公司 机械臂控制方法、装置、计算机可读存储介质及机器人

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104132663A (zh) * 2014-05-27 2014-11-05 北京遥测技术研究所 一种基于fpga的导航计算机协处理器
CN106556395A (zh) * 2016-11-17 2017-04-05 北京联合大学 一种基于四元数的单目视觉系统的导航方法
CN106679648A (zh) * 2016-12-08 2017-05-17 东南大学 一种基于遗传算法的视觉惯性组合的slam方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104132663A (zh) * 2014-05-27 2014-11-05 北京遥测技术研究所 一种基于fpga的导航计算机协处理器
CN106556395A (zh) * 2016-11-17 2017-04-05 北京联合大学 一种基于四元数的单目视觉系统的导航方法
CN106679648A (zh) * 2016-12-08 2017-05-17 东南大学 一种基于遗传算法的视觉惯性组合的slam方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
党梦林 等: "《基于QT的机载三维激光地形测绘软件构建》", 《计算机测量与控制》 *
刘洋 等: "《高精度激光扫描系统的设计及数据融合》", 《计算机测量与控制》 *
吴文升 等: "《机载激光雷达系统高精度点云生成研究》", 《计算机测量与控制》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009429A (zh) * 2017-12-11 2018-05-08 北京奇虎科技有限公司 一种补丁函数生成方法及装置
CN108259709A (zh) * 2018-01-19 2018-07-06 长沙全度影像科技有限公司 一种用于子弹时间拍摄的视频图像防抖方法及系统
CN108961340A (zh) * 2018-08-09 2018-12-07 中央民族大学 一种目标物体的自动射击方法及装置
CN109813305A (zh) * 2018-12-29 2019-05-28 广州蓝海机器人系统有限公司 基于激光slam的无人叉车
CN109813305B (zh) * 2018-12-29 2021-01-26 广州蓝海机器人系统有限公司 基于激光slam的无人叉车
CN112775931A (zh) * 2019-11-05 2021-05-11 深圳市优必选科技股份有限公司 机械臂控制方法、装置、计算机可读存储介质及机器人
CN111338804A (zh) * 2020-05-19 2020-06-26 北京数字绿土科技有限公司 激光雷达点云数据的解算方法、装置及多线程处理系统
CN111338804B (zh) * 2020-05-19 2020-11-24 北京数字绿土科技有限公司 激光雷达点云数据的解算方法、装置及多线程处理系统
CN111951303A (zh) * 2020-08-12 2020-11-17 南京师范大学 一种机器人运动姿态视觉估计方法
CN112505718A (zh) * 2020-11-10 2021-03-16 奥特酷智能科技(南京)有限公司 用于自动驾驶车辆的定位方法、系统及计算机可读介质
CN112505718B (zh) * 2020-11-10 2022-03-01 奥特酷智能科技(南京)有限公司 用于自动驾驶车辆的定位方法、系统及计算机可读介质

Also Published As

Publication number Publication date
CN107369181B (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN107369181A (zh) 基于双处理器结构的点云数据采集及处理方法
CN109974712A (zh) 一种基于图优化的变电站巡检机器人建图方法
CN109993113B (zh) 一种基于rgb-d和imu信息融合的位姿估计方法
CN108986037A (zh) 基于半直接法的单目视觉里程计定位方法及定位系统
Rehder et al. A general approach to spatiotemporal calibration in multisensor systems
CN104501814B (zh) 一种基于视觉和惯性信息的姿态与位置估计方法
CN104658012B (zh) 一种基于惯性与光学测量融合的运动捕捉方法
CN100428805C (zh) 仅用一幅平面标定物图像的摄像机标定方法
Oskiper et al. Multi-sensor navigation algorithm using monocular camera, IMU and GPS for large scale augmented reality
CN106373141B (zh) 空间慢旋碎片相对运动角度和角速度的跟踪系统和跟踪方法
CN106910217A (zh) 视觉地图建立方法、计算装置、计算机存储介质和智能车辆
CN111091587B (zh) 一种基于视觉标志物的低成本动作捕捉方法
CN105913435B (zh) 一种适用于大区域的多尺度遥感影像匹配方法及系统
CN112649016A (zh) 一种基于点线初始化的视觉惯性里程计方法
WO2011120141A1 (en) Dynamic network adjustment for rigorous integration of passive and active imaging observations into trajectory determination
CN107909614A (zh) 一种gps失效环境下巡检机器人定位方法
CN109872350A (zh) 一种新的点云自动配准方法
CN106295512A (zh) 基于标识的多纠正线室内视觉数据库构建方法以及室内定位方法
CN108876828A (zh) 一种无人机图像批处理三维重建方法
CN110031879A (zh) 模糊度域信息整合的高精度后处理定位方法及系统
CN110533766A (zh) 一种基于免像控ppk数据的倾斜摄影影像智能写入方法
CN113744308B (zh) 位姿优化方法、装置、电子设备、介质及程序产品
Liu et al. Botanicgarden: A high-quality dataset for robot navigation in unstructured natural environments
CN110070577A (zh) 基于特征点分布的视觉slam关键帧与特征点选取方法
CN109443355A (zh) 基于自适应高斯pf的视觉-惯性紧耦合组合导航方法

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
GR01 Patent grant
GR01 Patent grant