地图对于无人驾驶来说作用是什么？可以没有地图吗？
10月18日，Momenta联合猿圈带来了Momenta Paper Reading第二季第六期：追溯视觉高精度地图的源头——获取曝光合理的图像。  在视觉高精度地图的生产过程中，图像的质量至关重要的，不合理的曝光会对SLAM、感知、跟踪等算法带来更多的困难。同时，相机曝光在自动驾驶、机器人等领域都有广泛的应用。  本次分享的论文是《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》。为了评价相机的曝光质量，该论文设置了一个可以量化的指标，通过这个指标来优化曝光时间，并通过实验来证明这种控制曝光策略的优越性。  分享嘉宾为 Momenta研发工程师、视觉高精度地图采集设备的技术专家李晓东，他从相机的曝光过程引出目前高精度地图的图像数据所存在的问题，并分享论文所提出的评价图片曝光水平的指标和控制相机曝光的策略。   视觉高精度地图 视觉高精度地图的主要传感器是相机。在构建高精度地图时，需要选取大量的语义特征点，换言之，高精度地图由大量的语义特征点组合得到。因为高精度地图的一个重要的作用是用于视觉定位，一般来说，越是固定的标志，越有利于定位，也是越好的语义特征点，例如，车道线、交通标志、红绿灯等。  传统的SLAM或者SFM算法都基于SIFT、ORB等人工设计的特征点。在光照、视角发生变化的情况下，无法准确的检测匹配原有特征点。换句话说，光照视角发生变化后，原来构建的地图就无法使用了。  地标的定义现在还没有明确的标准，不同厂商从自己产品和技术需求出发，有不同的定义方式。  △高精度地图  高精度地图的“高精度”体现在两个方面：  一是地图的高精度。这个除了依靠高精度的建图算法以外，传感器的作用也不可小觑。以相机为例，在工业相机的参数中，经常会看到全局快门（global shutter）和卷帘快门（rolling shutter）这两种快门的相机。全局快门是让整个传感器每行像素全部在同一时间进行曝光，也就是所有像元同时曝光。卷帘快门是传感器开始曝光的时候，感光元件是从第一行、第二行、第三行... 这样按照顺序进行光线感测，一直到整片感光组件从上到下每一行都曝光完成为止，也就是不同行像元的曝光时间不同，这会给地图的精度带来一定的误差。  二是定位的高精度，这部分主要是通过卫星定位、积分定位和匹配定位结合实现。  卫星定位普遍被称为GPS定位，差分GPS是首先利用已知精确三维坐标的差分GPS基准台，求得伪距修正量或位置修正量，再将这个修正量实时或事后发送给用户（GPS导航仪），对用户的测量数据进行修正，以提高GPS定位精度。差分GPS在开阔区域可以做到厘米级精度，但是城市中因为多路径效应，会存在较大误差。  积分定位是通过IMU或者视觉里程计实现的，这种方式在短时间内是精确的，但长时间的情况下也存在累积误差。  匹配定位这种方式和人的定位方式很像，比如你走到一个曾经到过的地方，通过观察周围环境或者地标，在记忆地图中搜索，匹配得出目前的定位。通过GPS的结合限定搜索范围，可以做到快速准确匹配。  这三种方式各有优缺点，结合起来可以做到低成本、高精度、高可靠性，也是目前定位的发展方向。  困难与挑战 目前，在构建高精度地图的过程中遇到的主要困难与挑战是数据的有效性不高和数据的精度不够两个方面。  一般来说，图片质量、相机所在环境和天气好坏状况等都会对数据有效性产生影响，比如低分辨率的图片、雾雪雨等恶劣天气会给识别带来影响，或者传感器周围的高压电线会对GPS定位精度产生影响。  而相机快门类型、动态模糊情况以及数据的传输延时等都会对数据精度产生影响，本次的论文解读主要介绍相机曝光带来的误差以及如何解决。  相机曝光有一个动态范围，动态范围（Dynamic Range）是可变化信号（例如声音或光）最大值和最小值的比值。也可以用以10为底的对数（分贝）或以2为底的对数表示；在实际应用中，相机无论是过曝光还是欠曝光（两者均属于曝光的动态范围之外），都会导致图像的信息被损失。  曝光决定了一张图片的亮度，不论它的色彩是否鲜艳又或者是否符合真值。无论是对SLAM还是感知，图片的亮度都是非常关键的因素，因为这两项技术绝大部分使用的都是灰度图。图片的亮度主要受相机的三个参数影响；光圈、快门和ISO（相机感光度）。  光圈，即相机镜头的进光孔径，它与进光量成正比，与图像清晰程度成反比，如下图所示，这类现象在摄影中叫景深。第一幅图的光圈非常大，其进光量会相应的变大，景深也会相应变小，因此图片中比较清晰的部分只有前部的一朵花，后部就比较模糊。通常来讲，一般情景中很难有机会使用如此大的光圈，因为相机大光圈的主要用途是在人像或者静物的摄影上，地图采集则需要保证图片的清晰度，通常是使用小光圈来获得更清晰的图像，所以这可能对整个图片的亮度带来一些限制。 △光圈变化对比  当图片亮度受限时，需要增大快门来进行调整。快门相当于相机的进光时间，也可以理解为整个图片曝光的时间，快门时间越长，其进光量也会越大。如下图对比所示，左侧是短曝光图片，右侧是长曝光图片，因为右侧图片拍摄时间很长且整个车流在运动，使它产生了比较漂亮的光轨，当然，为了保证两张图片的亮度基本相同，左图采用了更大的光圈。若在我们相机上进行长时间曝光只会使图片变得更加模糊，因为相机固定在在运动的车上，因此，过长的快门在实际应用中也是不可取的。  △曝光时间变化对比  ISO是指图片的增益，ISO越高说明图片对光的感应也越敏感，对于噪点的感应也会越强。因此，当增大ISO的时候，虽然图片会变亮但是它的噪点也会变多，如下图所示。 △ISO变化对比  因此光圈、快门和ISO这三个值的均衡是很关键的，通常会使用自动曝光来平衡这三个值。自动曝光，其实就是不断的调整光圈、快门和ISO的大小，直到亮度满足要求。  一般来说，相机在高动态范围曝光（即相机的HDR模式）得到图像的质量会更高。高动态范围曝光是用来实现比普通数字图像技术更大曝光动态范围（即更大的明暗差别）的一组技术。  举个例子，同样的角度多拍几张照片，2张，3张……甚至几十张，这些照片的曝光依次增大，照片会依次变亮，也就是说，照片所表示的细节会由亮处向暗处改变。将拍摄的很多张图片合成后，能够保留更多的细节。 亮度如何才算满足要求呢？  相机的测光算法会默认物体为18%的反射率进行曝光参数的调节，若灰度范围是从0到255，18%反射率的灰度值就是128，这个灰度也被称为中性灰，18%的反射率能给曝光提供一个合理的亮度，相对简单粗暴的确定方法是平均亮度，若设定整个图片的平均亮度是128，这能使整个图像看起来亮度算是均匀的，但事实上这种方法有很大缺陷，其明亮部位并不明确。  为了能让图片更加的清晰，在实际使用中可以将光圈调小并固定，同时需要限制快门时间。因为快门时间过长也会导致图片模糊，因此在地图采集时，限制最大曝光时间为20毫秒，这样即使曝光时间达到最大上限，图片的模糊程度也不会太过明显。在这种前提下利用自动曝光也是有局限的，它在高动态、光照快速变化的场景中表现情况不佳，类似过桥洞或摄像头突然看向窗户、光源之类的场景。在SLAM中，对特征点法、直接法、全景拼接以及视觉感知都会产生较大影响。  如何寻找一个更合适的曝光是《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》这篇论文最主要的贡献。下图中的曲线是描述整个图像信息量的，如果能使图像信息量达到最大，那这就是想要找的最合适曝光。这个曲线表明，图片从暗到亮，对应信息在逐渐增加，但当亮度继续增大到一定值时，对应信息又会逐渐变少，因此中间这一幅图它的亮度是最适中的，对应的曝光也就是我们想要的最佳曝光。 △图像信息量  最主要的问题是，如何找到这个曲线以及用哪种指标来具体评价它，图五是在采集高清图像时遇到的典型场景，描述的是过隧道时的情况，在刚进入或驶出隧道时，曝光都是不理想的，无论是隧道里面过亮还是隧道口过暗，对建图都有一定的影响。因此，之前采用的自动曝光方式面对类似场景时应对不佳，目前采用HDR方式是连续拍摄四幅曝光不同的图像，这相当于一直采用这四个固定的曝光，可以获得较好曝光结果的场景。但遇到一些光线变化剧烈的状况，HDR的表现可能就不会那么令人满意了。 △隧道实拍图像  因此，我们需要找到合理控制曝光的方案。这篇文章中提供了一些思路，下图所示是它的整体思路框架图，从最初获取图像，再到基于熵和梯度进行融合。 △整体思路框架图  这篇文章中借鉴了前人经历过的一些场景，首先思考的是解决这种困境的方法，方法一是采用多张不同曝光值的多幅图像融合，目前手机应用的就是这种方案，如果选择HDR模式进行拍摄，就会拍摄出多组不同曝光值的图片，再经过融合过程后，把亮一点的地方变暗，暗一点的地方变亮，就会使图片整体动态范围达到较高的效果。但隧道实拍这种情况不适合用这种方法进行采集，因为拍摄车辆一直在运动，不可能在某一个地点同时拍出四幅曝光不同的图像，这就需要采用多个相机进行拍摄，无疑又增加了拍摄成本处理难度。  方法二是自动调整曝光时间，其研究分为三个方面，包括基于图像亮度的研究、基于图像熵的研究以及基于图像梯度的研究。图像的熵用来描述整个图像的信息，如果能够最大化图像的熵，也可以在一定程度上认为其信息量达到最大，即其曝光达到了最合适的状态。图像梯度也比较类似，若能使图片整体梯度达到最大化，认为像素间变化比较明显，那就可以归为比较优良的方案。但以上方法本身都具有一定缺陷，例如图像在过曝过程中，其呈现一团白色而周围则呈现黑色，白与黑之间的梯度是很大的，所以类似的这种情况是该方法解决不了的。  熵加权梯度公式 只有判断出一幅图像在何种参数设置时达到最佳，才能得到其最合理的曝光，熵加权梯度公式（见公式1）是这篇论文中提到的最关键的公式，主要由三个部分组成，其目的就是定义图片包含的信息量。 公式1：熵加权梯度公式  第一部分是权重，权重是用该图像的熵来组成的，公式2是比较经典的图像熵公式，通过信息论中相关理论延展到二维图像上，公式3表明，如果它与周围的点都不相同则该点的熵就越大，如果它与周围的点全部都相同，则它的熵便非常小。公式4对熵进行权值的运算，进而对权值进行归一化处理，就能够得到像素上每个点对应的权。  公式2 公式3 公式4 公式5 公式6  公式5所示的激活（π）函数，是通过某一个像素点的熵来计算的，得到激活函数的值应在-1到1的区间范围内，利用α来控制曲线形状，而τ是控制曲线左移右移的范围，计算激活函数的目的是压低过曝或者欠曝的区域，也就是压低图片中的饱和区域。如下图所示，图片饱和区域越大，其熵也就越小，因为饱和区域它的熵为零，如果它的熵为负，相当于对整个图像的信息起到损失作用，因此最后计算得到的激活函数值也会越小。  公式6是评价饱和区域的一个公式，这个公式可以设置熵的阈值，例如熵在0.05以下便可以认为是饱和区域，一旦判断为饱和，就会将值设为1，反之则设为0。只有设为1后面的值才有意义，若值为0则其后面值就会被抹去。因此，公式5和6大幅的降低饱和区域的信息量。 △图像熵和激活函数曲线  公式1的值也就是图像的梯度，通过梯度加权它的熵进而得到整个图像的metric，再减去后面对曝光的影响，整个过程可以分为两个步骤，第一步首先计算图像梯度，第二步计算图像的熵，进而通过熵加权梯度，再通过得到的熵获取饱和区域，即饱和区域的一个MASK。通过该MASK以及激活函数进行判断，若饱和则其值为-1，否则其值为1，这样获得了其metric，对其进行求和得到整幅图片的metric。采用其他方法，例如采取梯度作为metric来评价这幅图像，进行几组对比实验，以及该论文提出的方法进行一个评测，对比实验的结果进行比较。  评估 如下图，在一幅走廊的场景中，相机是固定的，逐渐调整相机的曝光，从暗到亮，能够得到它的metric曲线，按照其它方案所选取的最佳点是在图中的这个位置（如下图所示），纵轴代表图像中信息的丰富程度，最高点代表该点取得的最佳曝光值，取得的最佳曝光就是图中的这种效果，后面两幅显然是过曝的。  文章所提出得到metric在第三幅图取得最大值，以肉眼来辨别这一张是比较合理的曝光，但能观察到这条曲线在最佳位置后是比较水平的，所以无法确定它能否完全应对类似场景。 △走廊场景评估实验  下图所示是在室外的场景，该方法在室外场景中表现相对较好，在得到室外场景的最佳曝光时也取得了图示位置的峰值，在过曝时曲线又会下降，因此这时是很容易取到最佳值的。 △室内场景评估实验  曝光控制方法 根据前面提到过的metric进行曝光控制，曝光控制指的是假设整个曝光空间与metric只符合一个高斯分布（如公式7），然后通过贝叶斯优化来获得这个值。贝叶斯优化是指在函数曲线不明确的情况下，根据已有的一些值来判断这个函数的最大值，也就是所要求的信息量最大时对应的曝光时间。input x和y表示输入，x为输入的曝光时间，y为对应的metric值。 公式7  根据一些初始化训练这个模型，得到一些具体参数，便于后面进行预测，能够较快速的达到最佳曝光点，这就是它收敛的过程。如下图所示，蓝色线表示ground truth，红色线表示训练和预测的结果。最初的时候没有进行点的选择，之后算法自行选择了一个点，使得这个曲线发生改变，在第一行选择5个点后趋于收敛，进而在第二行选择7个点后趋于收敛。在这之间选择不同acquisition function作为贝叶斯优化里的一个获取函数，作用是判断下一次取值，只要能达到最优，则函数的下一次取值即是下一次的曝光值，这就是该方法进行预测的方式。 △模型收敛过程 结论 本文提出了测量曝光时间的一种新方法，可以最大限度地减少相机信息的丢失，向我们介绍了一种基于机器学习的控制系统，快速学习真实数据，精准高效地找到最优值的新方法。   【自动驾驶公司Momenta2019校园招聘正式启动！点击查看详情】与我们一同打造更好的人工智能，创造更好的生活，成就更好的你！ ------------------------------------------------知乎机构号：Momenta，打造自动驾驶大脑。基于深度学习的环境感知、高精度地图、驾驶决策技术，让无人驾驶成为可能。 知乎专栏：Paper Reading，集聚自动驾驶知名大咖的前沿知识分享平台，欢迎申请加入或直接投稿。  