Object Detection in Foggy Conditions by Fusion of Saliency Map and YOLO

2022-09-03 20:57:38 浏览数 (1)

摘要

在有雾的情况下,能见度下降,造成许多问题。由于大雾天气,能见度降低会增加交通事故的风险。在这种情况下,对附近目标的检测和识别以及对碰撞距离的预测是非常重要的。有必要在有雾的情况下设计一个目标检测机制。针对这一问题,本文提出了一种VESY(Visibility Enhancement Saliency YOLO)传感器,该传感器将雾天图像帧的显著性映射与目标检测算法YOLO (You Only Look Once)的输出融合在一起。利用立体相机中的图像传感器对图像进行检测,利用雾传感器激活图像传感器,生成深度图来计算碰撞距离。采用去雾算法对基于区域协方差矩阵的显著性图像帧进行质量改进。在改进后的图像上实现了YOLO算法。提出的融合算法给出了Saliency Map和YOLO算法检测到的目标并集的边界框,为实时应用提供了一种可行的解决方案。

简介

YOLO架构是一个完全卷积的神经网络,它将图像像素转换为生成的边界框的坐标和类[7]的概率。它在全图像上训练,以优化检测。该网络在Titan X GPU上的速度为每秒150帧。因此,YOLO可以用于实时流媒体视频。YOLO在预测边界框方面有一些限制,因为每个矩阵元素只能预测两个框,并且可以有一个类,这样就限制了附近可以预测的对象的数量。此外,YOLO算法在严重影响图像质量(如雾天)的条件下无法给出理想的解决方案。雾天使图像失真,因此算法无法检测到雾天。如图1 (a)和(b)所示,YOLO算法在雾天条件下无法检测到所有的目标。在图1 (a)中,常规的YOLO算法没有检测到一辆车。同样,在图1 (b)中有许多车辆不明。这指出了一个事实,即有必要增强现有的图像检测算法YOLO,使其能够在雾天条件下使用。对于一个扭曲的帧,比如图1 (a)中的图像,识别每个像素的独特质量是很重要的。因此,生成显著性映射以更有意义的方式表示图像。该工具从图像中提取轮廓,并对图像帧中不清晰的物体进行更好的高亮处理。可以清楚地看出,图1 (a)和(b)中未被YOLO检测和识别的物体在各自的显著性图中边界清晰明显。图像的显著性映射如图2 (a)和(b)所示。每个像素的白色阴影区域的强度,显著性映射指向一个对象存在的事实。这些强度包含在显著性矩阵中。

因此,图2 (a)和(b)中的结果为我们使用显著性映射来检测YOLO算法没有检测到的目标的想法提供了额外的证明。本文利用YOLO实现的结果和雾环境下目标检测与识别的显著性映射,提出了一种用于雾环境下目标检测与识别的VESY传感器算法。

相关工作

参考[1]提出了一种快速的图像去雾算法。为了获得清晰的图像帧,我们加入了这个算法。参考[2]设计了一种最近的方法,用于对能见度较低的图像进行显著目标检测。在本算法中,我们根据带雾图像的属性使用了协方差特征矩阵。该方法在雾天条件下的准确性和适应性,有利于我们在此条件下更好地实现YOLO的融合。参考[3]提出了一种从立体传感器创建深度图来计算碰撞距离的方法。参考[7]提供了一个你只看一次的详细洞察:统一的、实时的目标检测机制。在不利的条件下,YOLO的实现并没有得到想要的结果,因此我们的融合算法对结果进行了优化,使YOLO在本质上更具适应性,在使用上更加广泛,从而得到想要的结果。

提出的工作

A、总览

提出了一种在雾天条件下对遥感图像进行目标检测的方法,并给出了目标与观察者之间距离的计算方法。我们使用雾传感器来激活系统,一旦我们提出的算法检测到一个目标的存在,就会在该目标周围创建一个包围框,并且显示该目标的类型,类似于YOLO算法。有时,在有雾的情况下——肉眼看不清障碍物,但显著性地图以独特的方式显示障碍物。利用预先训练好的模型实现YOLO目标检测算法。数据集包括在道路上,特别是在驾驶车辆时遇到的障碍物。将锐RGB图像帧与图像帧的显著映射融合在一起。我们提出了融合过程的算法,该算法考虑了在YOLO中显著性地图预测到目标时生成的边界框,以及在YOLO预测到的区域中显著性地图中高于阈值的边界框的平均置信度。最后,对所有的边界框进行合并,得到最优结果。解决方案的原型如图3所示。

B、光学烟雾传感器

光学雾传感器的工作原理是基于后向散射技术。如果传感器给出正的输出,即在附近环境中感知到雾,则激活了stereo camera中的图像传感器。因此,雾传感器在整个VESY传感器中起激活信号的作用。传感器测量空气中水粒子的数量。如图4所示,一束激光从传感器中发出。有一个探测器,它是敏感的传入光在一个狭窄的区域,重叠的发射机光束。如果有雾粒子在重叠区,那么光将被散射回来。光将到达探测器并向图像传感器发送激活信号。周围的小雾足以分散光线并激活图像传感器。图像的左右传感器给出了一个清晰的图像框架以及图像的深度图。在实现我们的算法之前,对图像帧和深度图进行了进一步的处理。

C、深度映射

利用立体传感器,可以在被测图像中通过相同的投影,推断出空间中深度不同的两点之间的距离。从图5可以看出,目标图像中的坐标位置不同。根据点与点之间的三角形关系,可以推断出点与点之间的距离。图5中包含等效三角形,因此由它们的等效方程可以得到如下结果:

text { Disparity Value }=mathrm{x}-mathrm{x}^{prime}=frac{mathrm{Bf}}{mathrm{Z}}

式(1)中的x '和x为场景点3D对应的像面上点与其相机中心之间的距离。f为摄像机的焦距,两台摄像机之间的距离用b表示。由式(1)可知,场景中一个坐标的深度与对应的图像坐标与其中心的距离差成反比。利用这些数据,我们得到了图像中所有像素的深度。

D、去雾算法

将去雾算法应用于立体传感器得到的每一帧图像,对得到的增强帧进行进一步处理,得到显著性图。该算法是一个三步过程。它首先通过搜索被测图像的畸变来估计大气光的强度。然后通过从精细图描述粗糙图来计算透射图。最后,利用估计的强度值和透射图,从我们传递的雾天图像中生成清晰的图像。结果如图6所示,应用去雾算法对雾天图像进行增强处理。首先,从图像I(x)估计大气光A的强度。我们根据他们在暗通道中的亮度来找到最顶端的0.1%像素。选择强度最高的像素作为大气光的代表。然后使用A和I(x)估计传输映射t(x)。我们首先在局部区域(粗糙地图)上找到一个暗通道,然后通过:

t(x)=1 text { - defoggingParam*darkPixelFromCoarseMap }/ text { AtmosphericLightIntensity }

(2)中的defoggingParam是0到1之间的值。数值越高,远处物体的雾量越少。我们可以利用下面的方程来澄清图像:

mathrm{K}(mathrm{x})=(mathrm{I}(mathrm{x})-mathrm{A}) / max (mathrm{t}(mathrm{x}), mathrm{t}(0)) mathrm{A}

式(3)使用如下变量:K(x)为输出,I(x)为输入,t(x)为透射图,A为大气光,t(0)设为特定值以避免除以0。

E、显著映射

大量的信息,尤其是被感知到的视觉信息是如此之大,以至于人们利用各种机制来选择正在考虑的视觉数据中最合适的部分,而该部分的其余部分常常被丢弃。参考[10]使用了两种最先进的静态显著性机制,该机制依赖于基于区域的协方差来处理额外的信息,这些信息与RGB-D图像中可用的深度相关。RGB-D图像是由4个通道组成的图像。RGB- d的前3个通道形成一般的RGB图像,而最后一个通道或第4个通道表示与RGB组件对齐的深度通道。我们扩展了CovSal显著性模型[16],并将其应用于RGB- D图像。这些模型已在RGB图像数据集上实现,RGB图像数据集在一阶和二阶特征统计的基础上,通过准确猜测中心周围的差异来预测显著性。在我们的工作中,这些模型被用来估计两种不同类型的显著性地图,一种是来自一般的RGB图像,另一种是来自深度图像。然后将RGB和深度显著性映射相结合,从而为给定的RGB- d输出一个显著性图像。与其他方法相比,区域协方差矩阵技术在雾天目标显著性检测方面具有较好的通用性和准确性。图7显示了在我们的一个图像帧上生成的显著性映射。该结果是对应用去雾算法得到的图像进行处理得到的。

F、YOLO实时目标检测

输入图像由YOLO分割成S×S框。物体中心所在的单元格将导致对该物体的检测。网格中的每个元素估计边界框的数量和与每个框关联的置信值。置信值显示假设如何确定边界框包含该项。信心被给出了一个合适的定义,作为Pr(Object)*IOU(Intersection Over Union)。如果盒子里没有可识别的物体,那么自信心得分应该为零。否则,我们的目标是使信心值等于预测的盒子和假定的基本事实之间的IOU。每一个有界的盒子包含五个预测:x, y, w, h,以及置信度。框的中点通常用(x,y)坐标表示。(w,h)参数用作图像宽度和高度的别名。在被预测的盒子和代表地面真实的盒子之间实现的IOU给出最终的置信度预测。网格的每个单元预测类Pr(class i | Object)的条件概率。概率是由网格中包含目标物体的单元决定的。类的一部分概率是在网格的每个单元中被定义的,不过是在盒的计数中。在测试期间,对条件类概率进行乘法运算,并对每个箱子分别进行置信度预测。

operatorname{Pr}(text { Classi } mid text { Object })^{*} operatorname{Pr}(text { Object })^{*} mathrm{IOU}=operatorname{Pr}(text { Classi })^{*} mathrm{IOU}

公式(4)给出了每个箱子的每个类的具体置信值。这些特定类的概率显示在方框中,并描述了如何很好地预测考虑中的目标的方框位置。该神经网络有9个卷积层。在这些层之后,添加3个完全连接的层,使其更快。YOLO进行了优化,因为它可以预测网格中每个单元格的边界框。一个边界框预测器在训练时负责每个目标。该算法将检测目标的任务分配给一个预测器。预测器通过找出与假定地面真值联合的当前交点最高的预测来做到这一点。因此,在边界框预测器之间进行专门化。整体召回率得到了改善,因为每个预测器的性能都得到了提高,可以预测特定的尺寸或高宽比。图8显示了我们实现中使用的9个卷积层和3个全连接层。YOLO检测算法在雾天图像上的实现如图1所示。实验结果表明,该算法只检测到一些较近、较清晰的目标。对于不清楚的物体没有形成包围盒。其他物体在图像的显著性映射中表现得很明显,因此显著性映射可以用来为剩下的未检测到的物体形成边界框。

G、VESY算法

将生成的显著性映射与YOLO算法的结果进行融合。使用了以下术语:P(Yolo|Saliency):在Saliency Map预测的区域内,Yolo发现目标的概率。P(Saliency|Yolo): Yolo预测区域内Saliency Map像素值的均值。

提出的算法

变量的使用:µ_s(阈值显著地图),u_y (阈值为YOLO的置信值标记边界框),A_{s[n m s]} (辅助数组的维度显著地图),S [nxm](凸起矩阵),Y (YOLO产生的矩阵),Y ' (在一个低阈值时YOLO产生的矩阵),Rs (lt、rt、lb,rb)(代表平方子矩阵)的角落,mu_{y s} (阈值寻找边界框的目标中发现YOLO显著地图)在该地区的预测了意思,mu_{y s} 寻找目标边界框(寻找具有像素值的对象的边界框的阈值> =mu_s 在YOLO预测的区域显著性图中)的意思。

结果和讨论

阈值mu_{sy} 保持固定的价值和结果计算通过改变阈值的值mu_{ys} 各种图像。结果被保持的价值计算阈值mu_{ys} 为0.60,0.70,0.80和0.90。前一节中提出的算法在几幅图像上进行了测试,三幅图像的结果如图9所示。图9 (a)为算法实现所用的原始图像。图9 (b)显示了边界框mu_{ys} = 0.60,图9 (c)显示了边界框mu_{ys} = 0.70,图9 (d)显示了边界框mu_{ys} = 0.80,图9 (e)显示了边界框mu_{ys} = 0.90和图9 (f)显示了最终的输出在输入图像。可以观察到,当阈值保持在一个较低的值时,即使在YOLO目标检测或显著性映射中它们的存在不明显,所有的对象都会被检测到并生成它们的边界框。

mu_{ys}= 0.70给出了优化结果产生边界框的目标在所有三个图像。这些边界框是由YOLO对象检测和saliency map生成的边界框结合的结果。因此,mu_{ys} = 0.70是一个合适的阈值。结果还表明,并不是所有目标都能够跨越高阈值,因此在这种情况下只生成少数不同的边界框。因此,mu_{ys} = 0.80不是一个合适的阈值。同样,mu_{ys} = 0.90甚至更高的阈值,从而产生不良结果的价值。因此,mu_{ys}= 0.90不是一个合适的阈值。

结论

将YOLO算法生成的边界框与显著性映射在期望的阈值处进行合并。最后的输出检测一个模糊图像帧中的所有目标。提出的VESY(Visibility Enhancement Saliency YOLO)算法能够检测到YOLO算法无法检测到的额外目标。此外,距离可以通过深度地图计算,并且可以显示在实时系统中应用程序的目标周围的边框之外。

0 人点赞