暖夏少年|CFan科学院:3D感应超越像素平面

当下越来越火的自动驾驶汽车 , 它们获取的地图信息大多是通过汽车上的相机捕获的 。 相机捕获的一般是2D平面图像 , 然后将其转化为3D , 只是这样转化后会导致数据的丢失 , 比如无法精准识别汽车周围的路障等 。 不过现在很多驾驶系统已经实现了对3D信息的采集和处理 , 其中的点云技术备受关注 。
3D信息捕捉——没你想的那么简单
大家知道3D信息是立体数据 , 这样捕捉到的信息符合我们双眼在正常世界看到的景象 。 显然如果自动驾驶系统捕捉到的周边环境如果也是3D信息 , 那么在人工驾驶基础上发展起来的自动驾驶系统就可以更好实现对周围路障如周边人、其他汽车等进行更精准的识别和避让 , 从而让驾驶系统更安全 。
不过3D信息的捕捉并不是一件简单的事情 , 传统的3D数据捕捉是借助“Stereo”(双目视觉)方式获取的 。 这种方式是通过布置两个或者多个相机对同一个场景进行多角度的捕捉 , 然后通过不同图像、匹配对应的像素 , 并计算每个像素的位置在图像之间不同 , 从而计算出这个像素在3D空间中的位置 , 通过这种方式来获得特定物体的3D数据(图1) 。
暖夏少年|CFan科学院:3D感应超越像素平面
文章图片
【暖夏少年|CFan科学院:3D感应超越像素平面】图1 双目视觉方式图解
不过这个方式有个很大的不足 , 因为驾驶系统经常处在一个快速运行的环境中 , 并且需要很精准地对对象进行识别 。 但是使用这个方法获得数据 , 我们需要使用视觉细节来匹配相机图像之间的对应点 , 这种计算方法数据量非常庞大 , 而且在缺乏纹理或视觉结构重复的环境中容易出错 。 在自动驾驶系统中 , 现在很多厂商使用的是LiDAR(激光雷达)方式来捕捉3D数据 。 在这些自动驾驶车顶上配备了激光雷达相机 , 它会向周围发射高频激光脉冲 , 如果遇到物体的遮挡 , 这些激光脉冲就会反射返回 , 系统通过计算返回的时间来测量出物体和汽车的实际距离 。 比如探测到前方的信号灯 , 通过返回光束就可以探测车辆和红绿灯之间的实际距离了(图2) 。
暖夏少年|CFan科学院:3D感应超越像素平面
文章图片
图2 LiDAR(激光雷达)探测图解
一台自动驾驶汽车配别多个3D LiDAR传感器 , 它们能快速旋转以观察传感器周围的所有方向 , 这些雷达通过每秒发送数百万光束 , 然后通过返回的光束时间就可以推断出与周围任何物体的精确测量值(最大约60米) , 从而实现驾驶系统对周边物体的精准探测(图3) 。
暖夏少年|CFan科学院:3D感应超越像素平面
文章图片
图3 自动驾驶汽车配备的多个3D LiDAR传感器
3D信息识别和处理——点云模式和深度学习
通过上述方法 , 自动驾驶系统捕捉到3D数据后如何让驾驶系统进行3D物体的识别?这里驾驶系统使用的是“点云模式”方法进行识别 。 驾驶系统根据3D LiDAR得到的三维数据 , 包括物体的三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB) 。 这样系统在获取物体表面每个采样点的空间坐标后 , 得到物体在空间坐标上的一个个数据点 , 这些点组成点集合 , 整个集合形成一个3D物体 , 从而让系统可以实现对物体的精准识别 。
暖夏少年|CFan科学院:3D感应超越像素平面
文章图片
图4 点云模式图解
比如激光探测到前方路障 , 通过返回的信息集合点就可以在驾驶系统中形成一个周边环境的3D地图 。 3D LiDAR绘制的地图不仅可以让系统准确了解自己在世界的哪个位置进而帮助您进行导航 。 同时它还可以识别和跟踪汽车 , 行人等障碍物 , 随着识别技术的发展 , 现代LIDAR使你可以识别一个骑自行车的人和一个行走的人 , 甚至可以测量他们改变方向和行进的速度 。 这样对于自动驾驶系统 , 它就像在驾驶室里坐着很多个视力极好的驾驶员 , 他们分别对汽车的前后、上下、左右进行全向观察 , 从而实现又快又安全的自动驾驶(图5) 。