2.最平均的特征图按照下层的特征图尺寸进行放大。使用去卷积完成扩展。用来去卷积的参数(过滤大小和步幅)与用于生成特征图的卷积层相同。去卷积的权重设置为 1.0,偏差设为 0.0。 3.然后将来自较高级别的高尺度平均特征图与来自下层的平均特征图相乘(两者现在都是相同的大小)。结果是一个中间掩码。 4.中间掩码以与步骤 2 所述相同的方式放大到下层特征图的大小。 5.高尺度的中间特征图再次乘以下层的平均图(现在两者都是相同大小)。因此获得了新的中间掩码。 6.重复上述步骤 4 和5,直到达到输入。将输入图像大小的最后一个掩码归一化到从0.0 到1.0 的范围,并成为最终的可视化掩码。
图3 识别显著物体的可视化方法的算法示意图 该可视化掩码显示了输入图像的哪些区域对网络的输出贡献最大。这些区域识别显著物体。算法示意图如图2所示。
图3 (左)网络各层的平均特征图;(右)网络各层的中间可视化掩码。 创建可视化掩码的过程如图 3 所示。可视化掩码覆盖在输入图像上,以突出显示原始摄像头图像中的像素以说明显著物体。
图4 用于各种图像输入的显著物体的示例 各种输入图像的结果如图 4 所示。注意在最上面的图像中,汽车底盘以及指示车道的线(虚线和实线)被突出显示,而人行横道上几乎水平的线被忽略。在中间的图像中,道路上没有车道,但是突出显示了道路边缘的停放汽车。在底部的图像中,道路边缘的草被突出显示。没有任何手工编码,这些检测显示了 PilotNet 如何模拟人类驾驶员使用这些视觉线索的方式。
图5 测试车内部 图5 显示了我们的测试车内的一个视图。在图像的顶部,我们看到的是通过挡风玻璃的实际视图。 PilotNet 监视器位于图像底部正中,显示诊断信息。
图6 PilotNet 监视器画面 图6是 PilotNet 监视器画面的放大图。上面的图像由前置摄像头捕获。绿色矩形圈出了馈送到神经网络的摄像头图像的部分。下面图像显示了显著区域。请注意,PilotNet 将道路右侧部分遮挡的建筑车辆识别为显著物体。据我们所知,这样的车辆,特别我们这里看到的这辆,绝非PilotNet 训练数据的一部分。 分析 虽然我们的方法发现的显著物体显然是影响转向的物体,但我们进行了一系列实验来验证这些物体实际上确实控制了转向。为了进行测试,我们将提供给 PilotNet 的输入图像分为两类。 第一类旨在包括对PilotNet 的转向角输出有显著影响的所有区域。这些区域包括对应于可视化掩码高于阈值的位置的所有像素。然后将这些区域扩大 30 个像素,以抵消相对于输入图像的较高级别特征图层的增加的跨度。确切的扩张量由实践确定。第二类是包括原始图像中的所有像素减去第一类中的像素。如果我们的方法找到的物体确实主导了转向角的输出控制,我们会期待:如果我们创建一个图像,其中我们只统一转换第一类中的像素,同时保持第二类中像素的位置,并将该新图像用作 PilotNet 的输入,我们预计转向角输出会发生显著变化。但是,如果我们在第二类中转换像素,同时保持第一类中的像素固定,并将该图像提供给 PilotNet,那么我们预计 PilotNet 输出的变化将是最小的。
图7 实验图像显示了转向角度图像位移的效果 (责任编辑:本港台直播) |