CN110133625B - 一种快速球坐标激光雷达仿真方法 - Google Patents

一种快速球坐标激光雷达仿真方法 Download PDF

Info

Publication number
CN110133625B
CN110133625B CN201910420113.XA CN201910420113A CN110133625B CN 110133625 B CN110133625 B CN 110133625B CN 201910420113 A CN201910420113 A CN 201910420113A CN 110133625 B CN110133625 B CN 110133625B
Authority
CN
China
Prior art keywords
coordinates
point
coordinate
vertex
output
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.)
Active
Application number
CN201910420113.XA
Other languages
English (en)
Other versions
CN110133625A (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.)
Beijing Auto Brain Technology Co ltd
Original Assignee
Beijing Auto Brain Technology Co ltd
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 Beijing Auto Brain Technology Co ltd filed Critical Beijing Auto Brain Technology Co ltd
Priority to CN201910420113.XA priority Critical patent/CN110133625B/zh
Publication of CN110133625A publication Critical patent/CN110133625A/zh
Application granted granted Critical
Publication of CN110133625B publication Critical patent/CN110133625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/497Means for monitoring or calibrating

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Image Generation (AREA)
  • Optical Radar Systems And Details Thereof (AREA)

Abstract

一种快速球坐标激光雷达仿真方法。本发明公开了一种对于激光雷达的快速仿真方法,由CPU与GPU进行协同运算,CPU进行部分初始化工作,GPU在顶点着色器中对三角面的顶点坐标进行坐标转换,在几何着色器中,将每个三角面变成两个三角形组成的长方形,挂载原三角面的三个顶点ABC的坐标并输出,在片元着色器中,对三角面进行射线检测,并计算碰撞点坐标,计算激光雷达的输出并映射到(R,G,B,A)空间中。本发明使用传统的渲染管线,兼容绝大多数型号的显卡,并可获得现代显卡的加速性能,同时,本发明解决了激光雷达仿真中等距采样的问题,实现了高速高精确率的等角采样。

Description

一种快速球坐标激光雷达仿真方法
技术领域
本发明属于仿真技术领域,特别是涉及到一种快速球坐标激光雷达仿真方法。
背景技术
目前,激光雷达广泛应用于自动驾驶、机器人、船舶、航空等领域。然而,目前主流仿真系统中,对于激光雷达的仿真还停留在使用深度摄像机或者是使用CPU计算Raycast(射线检测)的阶段。
如微软的AirSim仿真系统及LG的LG Simulator仿真系统中,均使用了深度摄像机作为激光雷达仿真手段。
这种仿真方式存在一个严重的问题:虚拟摄像机进行采样时,是按照屏幕像素进行等距采样,如图1所示,摄像机的光束实际上是从原点发射,方向为从摄像机原点到每个像素在NearClip上的位置,因此,传统渲染方式实际上是等距采样而非等角采样。然而,实际的激光雷达(如Velodyne)为等角采样。哪怕是采用了超采样之后,在屏幕边缘处的采样点,其误差在50米距离上依然可达100毫米。
LG公司的LG Simulator在处理此问题时,采用的方法是令摄像机高速旋转,每次对一个小角度进行采样。这样不仅浪费了大量计算资源,还导致采样出现了延迟。
发明内容
有鉴于此,本发明提出一种对于激光雷达的快速仿真方法,依然使用传统的渲染管线,兼容绝大多数型号的显卡,并可获得现代显卡的加速性能,同时解决了激光雷达仿真中等距采样的问题,实现了高速高精确率的等角采样。
为达到上述目的,本发明的技术方案是这样实现的:
一种快速球坐标激光雷达仿真方法,由CPU与GPU进行协同运算,包括:
S1、CPU进行部分初始化工作,包括:
定义直角坐标系为左手坐标系;即物体前向为Z轴,右侧为X轴,上方为Y轴;
定义球坐标系为:ψ为空间中某点P在XZ平面上的投影与Z轴的夹角;θ为空间中某点P与Y轴的夹角;R为空间中某点P距离原点的距离;
定义激光雷达的总线数height;
定义激光雷达每次扫描的次数width;
定义每次扫描沿Y轴扫描的角度范围的一半ψrange;
定义每次扫描沿X轴扫描的角度范围的一半θrange;
定义每次扫描的最大感知范围Lmax;
绘制一个width*height像素的噪声图,要求RGBA四个通道均为独立噪声;
定义每个材质的平滑度smoothness;
定义每个材质的反射率reflection;
定义每个材质的贴图Tex;
在每次扫描前,定义摄像机的Transform Matrix Tcam;
S2、GPU在顶点着色器中对三角面的顶点坐标进行坐标转换;转换后的顶点输出为{Psphere,Pworld,uv},其中Psphere为球坐标,Pworld为摄像机坐标系坐标,uv为该顶点的UV坐标;
S3、GPU在几何着色器中,将每个三角面变成两个三角形组成的长方形,令两个三角形的每个顶点依次挂载原三角面的三个顶点ABC的坐标并输出,三角形每个顶点的输出为{Psphere,Pworld,A,B,C,uv};
S4、GPU在片元着色器中,由几何着色器的输出获取原三角面三个顶点;同时,由屏幕像素位置获取射线方向,对三角面进行射线检测,并计算碰撞点坐标;然后计算此碰撞点的贴图是否为透明,若光线无法继续穿透,计算激光雷达的输出并映射到(R,G,B,A)空间中。
进一步的,步骤S2中,坐标转换的过程包括:
将顶点在ObjectSpace目标空间坐标系的坐标转换为世界坐标系坐标,然后再转换为摄像机坐标系下的坐标;
摄像机坐标系的定义为:摄像机位置为原点,摄像机前向为z轴正向,摄像机右侧为X轴正向,摄像机正上方为Y轴正向;
顶点(x,y,z)转化为球坐标:
Figure BDA0002065743590000021
Figure BDA0002065743590000022
其中,ψ为该点在XZ平面上的投影与Z轴的夹角,θ为该点与Y轴的夹角;
输出的球坐标Psphere为(ψ,θ,z);
将该顶点的摄像机坐标系坐标Pworld(x,y,z)输出;
同时,输出此顶点的UV坐标uv;
顶点着色器的输出为{Psphere,Pworld,uv}。
进一步的,步骤S3中,所述将每个三角面变成两个新三角面组成的长方形的方法包括:
S301、获得三角面三个顶点A、B、C的顶点着色器输出信息,根据三个顶点的球坐标Psphere,求出:
ψ的最小值ψmin和最大值ψmax,
θ的最小值θmin和最大值θmax;
S302、构建矩形包络框,其左上角坐标为(ψmin,θmax),右下坐标为(ψmax,θmin);
S303、对包络框进行三角化,由矩形A1B1C1D1变为两个新三角形A1B1C1和A2B2C2;其中,A1、B1、C1坐标不变;A2坐标等于A1,B2坐标等于C1,C2坐标等于D1;
S304、令输出的两个三角形A1B1C1和A2B2C2的每个顶点依次挂载此三角面的三个顶点ABC的坐标;
A1点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B1点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);。
C1点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
A2点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B2点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);
C2点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
每个顶点的输出为{Psphere,Pworld,A,B,C,uv}。
更进一步的,步骤S302中,如三角面的ψmin、ψmax、θmin、θmax的值在范围[-1,1]之外,则需扩大矩形的范围,根据(ψmin,θmax),(ψmax,ψmin)求出此矩形的包络圆,再构建能够包络此圆的正方形作为包络框。
进一步的,步骤S4中,所述射线检测及计算碰撞点坐标的步骤包括:
S401、根据屏幕像素点坐标Pixel(x,y)计算此像素对应的ψ、θ;
Figure BDA0002065743590000041
θ=(y-0.5)*2*θrange
其中,ψrange、θrange分别为激光雷达每次扫描的范围的一半;
根据ψ、θ确定射线方向,并进行归一化,获得入射光的单位向量Dir;
Figure BDA0002065743590000042
y=sin(θ)
Figure BDA0002065743590000043
S402、利用在几何着色器中输出的ABC坐标进行计算;令坐标为(x,y,z,w),则根据下面公式重新获得三角面ABC坐标;
Figure BDA0002065743590000044
Figure BDA0002065743590000045
Figure BDA0002065743590000046
S403、获得三角面ABC坐标及射线方向Dir后,进行射线与三角面碰撞检测;如射线与三角面有交点,返回交点的摄像机空间坐标Pc及长度t;
S404、由ABC算出三角面的法线Nrm;
Nrm=(B-A)×(C-A)
由Pc求得碰撞点的世界坐标P;
P=Pc+Pcam
其中Pcam为摄像机的世界坐标。
进一步的,步骤S4中,所述计算碰撞点的贴图是否为透明的方法包括:
使用从几何着色器获得的uv坐标对贴图进行采样,获取该点的颜色Col(R,G,B,A);如A小于材质的AlphaCullOff值,则认为光线穿透了此点,将此点的depth深度设为极小值以允许光线继续穿透。
进一步的,步骤S4中,所述计算激光雷达的输出并映射到(R,G,B,A)空间包括:
S411、取得碰撞点的世界坐标P对噪声图TXnoise的采样UV坐标Puv;
Puv(u,v)=Fraction((Px,Py)*Pz*100)
其中,Fraction()为获取输入值的小数点后的部分;
S412、使用Puv获得一个4阶向量Pnoise,将其从[0,1)区间映射到[-0.5,0.5),获得噪声向量err;
err=Pnoise-(0.5,0.5,0.5,0.5)
S413、计算加噪后的法线Nnoise;
Nnoise=Nrm+err*(1-Smoothness)*RoughScale
Nrm为由三角面ABC坐标计算出的三角面的法线;
S414、计算加噪法线Nnoise与入射光夹角的余弦值lambert;
Figure BDA0002065743590000051
如lambert大于smoothness,则激光雷达接收到的信号为从该点返回的光线;
S415、计算三角形表面材质对激光波段的吸收率Absorption;
S416、激光在反射后的反射能量energy为:
Figure BDA0002065743590000052
S417、由于实际激光雷达仪器仅计算发射和返回的时间差,实际上激光雷达输出的距离Len应为:
Figure BDA0002065743590000053
更进一步的,步骤S416中,如lambert小于smoothness,则认为激光雷达收到的信号为二次反射后的位置;
反射长度L可由噪声向量近似求得:
L=(errx,erry,errz)*errw*reflection3
而二次反射后的反射点的位置Pr为:
Pr=P+Reflect(Dir,Nrm)
其中,Reflect为计算Dir方向的光线在法线为Nrm的面上的反射方向的函数;
则反射后的能量energy为:
Figure BDA0002065743590000054
优选的,步骤S4中,激光雷达的输出映射到(R,G,B,A)空间中的方法为:
根据长度t或Len,计算激光雷达认为的反射点P0(x,y,z)的坐标:
P0=Dir*Len
由于RGB颜色的范围为[0,1],因此需将P0映射到[0,1]空间。
Figure BDA0002065743590000062
Figure BDA0002065743590000063
Figure BDA0002065743590000064
A=energy
此像素的depth深度为:
Figure BDA0002065743590000065
与现有技术相比,本发明具有如下的有益效果:
(1)本发明在不改变传统渲染管线的基础上,充分利用了当代GPU的渲染加速性能,实现了高性能、高精确率的激光雷达仿真;
(2)本发明可极大的加速激光雷达相关算法的研发和训练;
(3)本发明可同步输出标准答案和点云数据,形成训练数据集,极大缩短深度学习算法的训练时间;本发明可将激光雷达神经网络的训练时间由300小时缩短至100小时。
(4)本发明可应用于但不限于自动驾驶仿真、机器人仿真、航空航天仿真、军事仿真等领域;
(5)本发明的采样角度误差为0.00005弧度,采样精度误差为0.001米。
附图说明
图1为传统方法中摄像机的等距采样图示;
图2为本发明实施例中直角坐标系与球坐标系的定义的示意图;
图3为本发明实施例中根据三角面构建长方形包络框的示意图;
图4为本发明实施例中扩大范围构建包络框的示意图;
图5为本发明实施例中包络框三角化的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明需要CPU与GPU进行协同运算。
本发明中,定义直角坐标系为左手坐标系。即物体前向为Z轴,右侧为X轴,上方为Y轴。
定义球坐标系为:
ψ为空间中某点P在XZ平面上的投影与Z轴的夹角。
θ为空间中某点P与Y轴的夹角。
R为空间中某点P距离原点的距离。
定义如图2所示。
CPU需要进行一部分初始化工作:
定义激光雷达的总线数height。
定义激光雷达每次扫描的次数width。
定义每次扫描沿Y轴扫描的角度范围的一半ψrange
定义每次扫描沿X轴扫描的角度范围的一半θrange
定义每次扫描的最大感知范围Lmax。
绘制一个width*height像素的噪声图,要求RGBA四个通道均为独立噪声。
定义每个材质的平滑度smoothness。
定义每个材质的反射率reflection。
定义每个材质的贴图Tex。
注:以上初始化参数均可在运行中实时更改。
在实时运行中,在每次扫描前,需定义:
摄像机的Transform Matrix(旋转矩阵)Tcam。
GPU计算部分分为三个步骤:
一、Vertex Shader(顶点着色器):
在顶点着色器中进行坐标转换。
本发明将顶点在ObjectSpace(目标空间坐标系)的坐标转换为世界坐标系坐标,然后再转换为摄像机坐标系下的坐标。
摄像机坐标系的定义为:摄像机位置为原点,摄像机前向为z轴正向。摄像机右侧为X轴正向。摄像机正上方为Y轴正向。
本发明把顶点(x,y,z)转化为球坐标。
Figure BDA0002065743590000081
Figure BDA0002065743590000082
其中,ψ为该点在XZ平面上的投影与Z轴的夹角,θ为该点与Y轴的夹角。
输出的球坐标Psphere为(ψ,θ,z)。
将该顶点的摄像机坐标系坐标Pworld(x,y,z)输出。
同时,输出此顶点的UV坐标uv。
因此,顶点着色器的输出为{Psphere,Pworld,uv}
二、Geometry Shader(几何着色器)
在几何着色器中,将每个三角面变成两个三角面组成的长方形,以抵消后续Raster(晶格化)及Barycentric Interpolation(质心插值法)对于顶点信息的压缩。
在此着色器阶段,可获得三角形三个顶点A、B、C的顶点着色器输出信息。
根据三个顶点的球坐标Psphere,求出:
ψ的最小值ψmin和最大值ψmax。
θ的最小值θmin和最大值θmax。
构建包络框,其左上角坐标为(ψmin,θmax),右下坐标为(ψmax,θmin),如图3所示。
如三角形的ψmin、ψmax、θmin、θmax的值在范围[-1,1]之外,则需扩大长方形的范围。根据(ψmin,θmax),(ψmax,ψmin)求出此长方形的包络圆,再构建能够包络此圆的正方形包络框,如图4所示。
对包络框进行三角化,如图5所示。
由矩形A1B1C1D1变为两个新三角形A1B1C1和A2B2C2。其中,A1、B1、C1坐标不变。A2坐标等于A1,B2坐标等于C1,C2坐标等于D1;
令输出的两个三角形A1B1C1和A2B2C2的每个顶点依次挂载此三角面的三个顶点ABC的坐标;
A1点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0)。
B1点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0)。
C1点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1)。
A2点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0)。
B2点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0)。
C2点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1)。
几何着色器每个顶点的输出为:
{Psphere,Pworld,A,B,C,uv}
三、Fragment Shader(片元着色器)
在片元着色器中,可由几何着色器的输出获取三角形三个顶点。同时,由屏幕像素位置获取射线方向,对三角形进行射线检测,并计算碰撞点坐标。
由于顶点坐标已转化为球坐标,因此,根据屏幕像素点坐标Pixel(x,y)可计算此像素对应的ψ、θ。
Figure BDA0002065743590000091
θ=(y-0.5)*2*θrange
其中,ψrange、θrange分别为激光雷达每次扫描的范围的一半。
根据ψ、θ确定射线方向,并进行归一化,获得入射光的单位向量Dir。
Figure BDA0002065743590000092
y=sin(θ)
Figure BDA0002065743590000093
在几何着色器中,本发明输出了三角形的三个顶点ABC的坐标。因此,在片元着色器中,此坐标经由质心插值法之后发生了变化。为在质心插值法之后求得原始三角形的坐标ABC,本发明可利用之前在几何着色器中输出的ABC坐标进行计算。令坐标为(x,y,z,w),则可有此公式重新获得ABC坐标。
Figure BDA0002065743590000094
Figure BDA0002065743590000095
Figure BDA0002065743590000101
获得三角形ABC坐标及射线方向Dir后,进行射线与三角面碰撞检测。
如射线与三角面有交点,返回交点的摄像机空间坐标Pc及长度t。
由ABC算出三角形的法线Nrm。
Nrm=(B-A)×(C-A)
由Pc求得碰撞点的世界坐标P。
P=Pc+Pcam
其中Pcam为摄像机的世界坐标。
若激光雷达所扫描的表面使用了带Alpha通道的透明贴图,则需计算此点的贴图是否为透明。如透明则光线应穿过此三角面。
使用从几何着色器获得的uv坐标对贴图进行采样,获取该点的颜色Col(R,G,B,A)。如A小于材质的AlphaCullOff值,则认为光线穿透了此点,将此点的depth(深度)设为极小值以允许光线继续穿透。
如光线无法继续穿透,则进行后续计算:
由P对噪声图TXnoise的采样UV坐标Puv。
Puv(u,v)=Fraction((Px,Py)*Pz*100)
其中,Fraction()为获取输入值的小数点后的部分。
使用Puv获得一个4阶向量Pnoise,将其从[0,1)区间映射到[-0.5,0.5),获得噪声向量err。
err=Pnoise-(0.5,0.5,0.5,0.5)
计算加噪后的法线Nnoise。
Nnoise=Nrm+err*(1-Smoothness)*RoughScale
计算加噪法线Nnoise与入射光夹角的余弦值lambert。
Figure BDA0002065743590000102
如lambert大于smoothness,则激光雷达接收到的信号为从该点返回的光线。
计算三角形表面材质对激光波段的吸收率Absorption。以Velodyne品牌为例,其激光雷达的波长为790nm。而红色的波长范围为650~750nm。因此可近似认为此贴图的红色通道R的值为激光在材质上的反射率。
Figure BDA0002065743590000111
由于激光具有良好的指向性,因此激光在稀薄空气中传播时能量无衰减。但激光在反射后失去了其指向性,变为了球形散射。因此其反射能量energy为:
Figure BDA0002065743590000112
如lambert小于smoothness,则认为激光雷达收到的信号为二次反射后的位置。
反射长度L可由噪声向量近似求得:
L=(errx,erry,errz)*errw*reflection3
而二次反射后的反射点的位置Pr为:
Pr=P+Reflect(Dir,Nrm)
其中,Reflect为计算Dir方向的光线在法线为Nrm的面上的反射方向的函数。
则反射后的能量energy为:
Figure BDA0002065743590000113
由于实际激光雷达仪器仅计算发射和返回的时间差。因此实际上,激光雷达输出的距离Len应为:
Figure BDA0002065743590000114
由于渲染管线仅能输出图像,因此需要将激光雷达的输出映射到(R,G,B,A)空间中。在此仅提供一种思路。【如使用其他方式映射或编码,依然纳入此权利声明中】
根据长度t或Len,计算激光雷达认为的反射点P0(x,y,z)的坐标:
P0=Dir*Len
由于RGB颜色的范围为[0,1],因此需将P0映射到[0,1]空间。
Figure BDA0002065743590000115
Figure BDA0002065743590000116
Figure BDA0002065743590000117
A=energy
此像素的depth(深度)为:
Figure BDA0002065743590000121
输出数据的解析方法:
以上述输出格式标准为例。
需要将图像上的像素进行一些处理,以便进行后续的显示或处理。
首先将RGB变换到[-Lmax,Lmax]范围内:
x=(2R-1)*Lmax
y=(2G-1)*Lmax
z=B*Lmax
其中,RGB为图像某点的颜色值。Lmax为激光雷达扫描最大距离。
使用摄像机的逆变化矩阵乘以该坐标,得到该点的世界坐标Pworld。
Pworld=Tcam -1*(x,y,z,0)
本发明测试环境如下:
CPU:i7 8700K
GPU:GTX 1080ti
操作系统:Windows 10
在仿真64线激光雷达时,实现了每秒300Hz的工作频率。远超激光雷达本身的20Hz最大工作频率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种快速球坐标激光雷达仿真方法,其特征在于,由CPU与GPU进行协同运算,包括:
S1、CPU进行部分初始化工作,包括:
定义直角坐标系为左手坐标系;物体前向为Z轴,右侧为X轴,上方为Y轴;
定义球坐标系为:
Figure FDA0002407963240000011
为空间中某点P在XZ平面上的投影与Z轴的夹角;θ为空间中某点P与Y轴的夹角;R为空间中某点P距离原点的距离;
定义激光雷达的总线数height;
定义激光雷达每次扫描的次数width;
定义每次扫描沿Y轴扫描的角度范围的一半
Figure FDA0002407963240000012
定义每次扫描沿X轴扫描的角度范围的一半θrange
定义每次扫描的最大感知范围Lmax;
绘制一个width*height像素的噪声图,要求RGBA四个通道均为独立噪声;
定义每个材质的平滑度smoothness;
定义每个材质的反射率reflection;
定义每个材质的贴图Tex;
在每次扫描前,定义摄像机的物体的旋转矩阵TransformMatrixTcam;
S2、GPU在顶点着色器中对三角面的顶点坐标进行坐标转换;转换后的顶点输出为{Psphere,Pworld,uv},其中Psphere为球坐标,Pworld为摄像机坐标系坐标,uv为该顶点的UV坐标;
S3、GPU在几何着色器中,将每个三角面变成两个三角面组成的长方形,令两个三角面的每个顶点依次挂载原三角面的三个顶点A、B、C的坐标并输出,三角面每个顶点的输出为{Psphere,Pworld,A,B,C,uv};
S4、GPU在片元着色器中,由几何着色器的输出获取原三角面三个顶点;同时,由屏幕像素位置获取射线方向,对三角面进行射线检测,并计算碰撞点坐标;然后计算此碰撞点的贴图是否为透明,若光线无法继续穿透,计算激光雷达的输出并映射到(R,G,B,A)空间中。
2.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S2中,坐标转换的过程包括:
将顶点在ObjectSpace目标空间坐标系的坐标转换为世界坐标系坐标,然后再转换为摄像机坐标系下的坐标;
摄像机坐标系的定义为:摄像机位置为原点,摄像机前向为Z轴正向,摄像机右侧为X轴正向,摄像机正上方为Y轴正向;
顶点(x,y,z)转化为球坐标:
Figure FDA0002407963240000021
Figure FDA0002407963240000022
其中,
Figure FDA0002407963240000023
为该顶点在XZ平面上的投影与Z轴的夹角,θ为该顶点与Y轴的夹角;
输出的球坐标Psphere为
Figure FDA0002407963240000024
将该顶点的摄像机坐标系坐标Pworld(x,y,z)输出;
其中,Psphere和Pworld中的“z”,均为顶点(x,y,z)中的z;
同时,输出此顶点的UV坐标uv;
顶点着色器的输出为{Psphere,Pworld,uv}。
3.根据权利要求2所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S3中,所述将每个三角面变成两个三角面组成的长方形的方法包括:
S301、获得三角面三个顶点A、B、C的顶点着色器输出信息,根据三个顶点的球坐标Psphere,求出:
Figure FDA0002407963240000025
的最小值
Figure FDA0002407963240000026
和最大值
Figure FDA0002407963240000027
θ的最小值θmin和最大值θmax;
S302、构建矩形包络框,其左上角坐标为
Figure FDA0002407963240000028
右下坐标为
Figure FDA0002407963240000029
Figure FDA00024079632400000210
S303、对包络框进行三角化,由四边面A1B1C1D1变为两个新三角面A1B1C1和A2B2C2;其中,A1、B1、C1坐标不变;A2坐标等于A1,B2坐标等于C1,C2坐标等于D1;
S304、令输出的两个三角形A1B1C1和A2B2C2的每个顶点依次挂载此三角面的三个顶点ABC的坐标;
A1点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B1点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);
C1点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
A2点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B2点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);
C2点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
上述每个顶点的输出为{Psphere,Pworld,A,B,C,uv}。
4.根据权利要求3所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S302中,如三角面的
Figure FDA0002407963240000031
θmin、θmax的值在范围[-1,1]之外,则需扩大矩形的范围,根据
Figure FDA0002407963240000032
求出此矩形的包络圆,再构建能够包络此圆的正方形作为包络框。
5.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,所述射线检测及计算碰撞点坐标的步骤包括:
S401、根据屏幕像素点坐标Pixel(x,y)计算此像素对应的
Figure FDA0002407963240000033
θ;
Figure FDA0002407963240000034
θ=(y-0.5)*2*θrange
其中,
Figure FDA00024079632400000310
为每次扫描沿Y轴扫描的角度范围的一半;θrange为每次扫描沿X轴扫描的角度范围的一半;
根据φ、θ确定射线方向,并进行归一化,获得入射光的单位向量Dir;
Figure FDA0002407963240000035
y=sin(θ)
Figure FDA0002407963240000036
S402、利用在几何着色器中输出的顶点坐标进行计算,其中,A、B、C三点坐标分别为A(Ax,Ay,Az,Aw),B(Bx,By,Bz,Bw),C(Cx,Cy,Cz,Cw);则根据下面公式重新获得S3中三角面三个顶点A、B、C的坐标;
Figure FDA0002407963240000037
Figure FDA0002407963240000038
Figure FDA0002407963240000039
其中:Ax、Ay、Az、Aw为几何着色器输出的A点坐标;
其中:Bx、By、Bz、Bw为几何着色器输出的B点坐标;
其中:Cx、Cy、Cz、Cw为几何着色器输出的C点坐标;
S403、获得三角面ABC坐标及入射光的单位向量Dir,进行射线与三角面碰撞检测;如射线与三角面有交点,返回交点的摄像机空间坐标Pc及长度t;
S404、由ABC算出三角面的法线Nrm;
Nrm=(B-A)×(C-A)
由Pc求得碰撞点的世界坐标P;
P=Pc+Pcam
其中Pcam为摄像机的世界坐标。
6.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,所述计算碰撞点的贴图是否为透明的方法是:
使用从几何着色器获得的UV坐标对贴图进行采样,获取该点的颜色Col(R,G,B,A),其中,R为红色光分量、G为绿色光分量、B为蓝色光分量、A为alpha值,当A小于材质的AlphaCullOff值,则认为光线穿透了此点,其中,AlphaCullOff值的定义为,贴图上某点的颜色Col(R,G,B,A)中的A分量,将此点的depth深度设为极小值以允许光线继续穿透。
7.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,所述计算激光雷达的输出包括:
S411、取得碰撞点的世界坐标P对噪声图TXnoise的采样UV坐标Puv
Puv=Fraction((Px,Py)*Pz*100)
其中,Fraction()为获取输入值的小数点后的部分,Px、Py、Pz分别为世界坐标P的X、Y、Z轴的值;
S412、使用Puv获得一个4阶向量Pnoise,将其从[0,1)区间映射到[-0.5,0.5),获得噪声向量err;
err=Pnoise-(0.5,0.5,0.5,0.5)
S413、计算加噪后的法线Nnoise
Nnoise=Nrm+err*(1-smoothness)*RoughScale
其中,Nrm为由三角面ABC坐标计算出的三角面的法线;
smoothness为物体表面平滑度,RoughScale为物体表面颗粒度;
S414、计算加噪法线Nnoise与入射光夹角的余弦值lambert;
Figure FDA0002407963240000051
其中,Dir为入射光的单位向量;
如lambert大于smoothness,则激光雷达接收到的信号为从该点返回的光线;
S415、计算三角形表面材质对激光波段的吸收率Absorption;
S416、激光在反射后的反射能量energy为:
Figure FDA0002407963240000052
其中,t为激光从发生到第一次碰撞的行程长度;
S417、由于实际激光雷达仪器仅计算发射和返回的时间差,激光雷达输出的距离Len应为:
Figure FDA0002407963240000053
P为激光第一次发生碰撞的碰撞点的世界坐标;
Pr为二次反射后反射点的世界坐标;
Pcam为摄像机的世界坐标。
8.根据权利要求7所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S416中,如lambert小于smoothness,则认为激光雷达收到的信号为二次反射后的位置;
反射长度L可由噪声向量近似求得:
L=(errx,erry,errz)*errw*reflection3
其中,errx、erry、errz、errw为S412中四维噪声向量err的四个参数;
而二次反射后的反射点的位置Pr为:
Pr=P+Reflect(Dir,Nrm)
其中,Reflect(X,Y)为计算入射光的光线在法线为Nrm的面上的反射方向的函数:
则反射后的能量energy为:
Figure FDA0002407963240000054
9.根据权利要求8所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,激光雷达的输出映射到(R,G,B,A)空间中的方法为:
根据长度t或距离Len,计算激光雷达认为的反射点P0(x,y,z)的坐标:
P0=Dir*Len
由于RGB颜色的范围为[0,1],因此需将P0映射到[0,1]空间;
Figure FDA0002407963240000061
Figure FDA0002407963240000062
Figure FDA0002407963240000063
A=energy
energy为反射后的能量;
Lmax为最大探测距离;
此像素的depth深度为:
Figure FDA0002407963240000064
CN201910420113.XA 2019-05-20 2019-05-20 一种快速球坐标激光雷达仿真方法 Active CN110133625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910420113.XA CN110133625B (zh) 2019-05-20 2019-05-20 一种快速球坐标激光雷达仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910420113.XA CN110133625B (zh) 2019-05-20 2019-05-20 一种快速球坐标激光雷达仿真方法

Publications (2)

Publication Number Publication Date
CN110133625A CN110133625A (zh) 2019-08-16
CN110133625B true CN110133625B (zh) 2020-05-08

Family

ID=67571608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910420113.XA Active CN110133625B (zh) 2019-05-20 2019-05-20 一种快速球坐标激光雷达仿真方法

Country Status (1)

Country Link
CN (1) CN110133625B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113820694B (zh) * 2021-11-24 2022-03-01 腾讯科技(深圳)有限公司 一种仿真测距的方法、相关装置、设备以及存储介质
CN114895316B (zh) * 2022-07-11 2022-10-28 之江实验室 一种多激光雷达测距的快速数值仿真方法和装置
CN115393496B (zh) * 2022-10-25 2023-03-24 之江实验室 一种多激光雷达仿真点云的快速绘制方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8704837B2 (en) * 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US7880671B2 (en) * 2008-09-18 2011-02-01 Raytheon Company Electromagnetic (EM) solver using a shooting bouncing ray (SBR) technique
US8355601B2 (en) * 2010-01-15 2013-01-15 Seiko Epson Corporation Real-time geometry aware projection and fast re-calibration
CN103885040A (zh) * 2014-03-29 2014-06-25 江西理工大学 一种基于cpu-gpu异构计算的圆迹合成孔径雷达回波生成方法
JP2018514748A (ja) * 2015-02-06 2018-06-07 ザ ユニバーシティ オブ アクロンThe University of Akron 光学撮像システムおよびその方法
US10332320B2 (en) * 2017-04-17 2019-06-25 Intel Corporation Autonomous vehicle advanced sensing and response

Also Published As

Publication number Publication date
CN110133625A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110133625B (zh) 一种快速球坐标激光雷达仿真方法
US11328472B2 (en) Watertight ray triangle intersection
US6876362B1 (en) Omnidirectional shadow texture mapping
CN1317666C (zh) 适于创建透明对象的实时阴影的系统和方法
US7812837B2 (en) Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method
US6621925B1 (en) Image processing apparatus and method and information providing medium
JPH06231275A (ja) 画像シミュレーション方法
CN110276791B (zh) 一种参数可配置的深度相机仿真方法
CN109859271B (zh) 一种水下摄像机与前视声纳的联合标定方法
CN113345063A (zh) 基于深度学习的pbr三维重建方法、系统与计算机存储介质
CN112446943A (zh) 图像渲染的方法、装置及计算机可读存储介质
CN114002701A (zh) 一种实时渲染点云的方法、装置、电子设备及系统
CN113034660B (zh) 一种基于pbr反射模型的激光雷达仿真方法
JP2002352254A (ja) グラフィックスモデルを表す複数のポリゴンを含むメッシュをレンダリングする方法
US20230162442A1 (en) Image processing apparatus, image processing method, and storage medium
CN1661632A (zh) 在绘图系统中执行除以w 运算的装置与方法
CN111860328B (zh) 一种基于双向反射函数和森林场景光照效果建模的生物量估算方法
US20230206567A1 (en) Geometry-aware augmented reality effects with real-time depth map
Knyaz Automated calibration technique for photogrammetric system based on a multi-media projector and a CCD camera
WO2023109582A1 (zh) 处理光线数据的方法、装置、设备和存储介质
WO2023029424A1 (zh) 一种对应用进行渲染的方法及相关装置
TW201502466A (zh) 三維模型重建方法及其系統
Kuhnert et al. Sensor-fusion based real-time 3D outdoor scene reconstruction and analysis on a moving mobile outdoor robot
WO2023197689A1 (zh) 一种数据处理的方法、系统和设备
US20230090732A1 (en) System and method for real-time ray tracing in a 3d environment

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