1)单目视觉
2011年,Gal提出了一种利用二维商用现货(commercial of the shelf,COTS)传感器,通过采集视频流,自动获取、识别和跟踪海洋环境中USV位置障碍物的方法。本文的研究方向是利用COTS传感器开发海洋环境下的实时自动识别和跟踪能力。该算法的输出障碍物在x-y坐标下的位置。
USV导航最困难的挑战之一是无须人为干预的识别和识别载具周围的障碍物。此任务称为自动目标监测(automatic target detection,ATD)。高效的ATD系统应该实现对目标的高监测率,并同时保证足够低的虚警率。这意味着它必须保持高监测率和低错误概率之间的平衡。但ATD算法对于不是目标但仍然是具有与目标类似特征的杂波元素场景非常敏感和不稳定。
ATD算法方法之一基于目标温度。通过目标温度的环境梯度,以及目标与环境的温度对比度来实现目标的识别。由于目标和环境相似性,这种方法存在较多的误报,通过引入启发式方法,通过局部的比较目标及环境背景确定阈值,可以提升算法的准确率。
算法的执行过程是:
①从设备读取图像视频。
②调整图像大小并转换为灰度图。
③初步处理,减小需要识别的空间。
⑤形态处理,尽可能分清海洋环境与目标图像。
⑥对已经识别的目标进行骨架化处理,使用简单结构对其进行描述。
⑦对已经骨架化的目标,根据其特征结构找到关键的点。
图像处理中的基本方法可以很容易地指示目标在特定帧的位置。常规的算法会立即报告目标的当前参数。最终决定每20帧进行一次采样处理,对输入帧进行计数,只处理当前的第20个输入帧,并将结果与上一个第20个输入帧进行比较和关联。这样做的原因是根据实际视频的帧数编号,海洋环境中目标变化最小的参数和CPU时间计算的结果,用第20个输入帧是处理的最佳帧数。这样做也使得该算法忽略了波浪和杂波干扰,并降低了误报警率。
在初步处理时,应用了许多图像模糊技术来获得更平滑的海洋纹理。输入图像可能包含许多噪声像素,这些像素会干扰减小需要识别空间过程。这对实时性能至关重要。通过自适应平滑滤镜,模糊图像并保存锐利的边缘。
运动规划和自主决策模型通常是实时完成的。为此,算法必须考虑计算时间约束并优化每个时间步的CPU时间。算法通过Canary边缘监测器,抽取图像的边缘。
图7.1左侧显示转换为灰度格式后的原始输入图像,右侧显示Canny边缘监测器的输出图像。
图7.1 图像的初步处理结果
对海洋模式的学习是算法的实际主要部分,假设在帧的每个边缘的10个像素内没有目标。这一假设是因为在航行过程中采用视频设备拍摄图像,目标会比较明显地调整在视频的中心位置。这一过程通过共生矩阵来完成,通过这一方法算法在图像中找到类似的纹理。学习区域可能因图像而异,下图展示了应用共生矩阵后出现的图像。如图7.2所示。
随后进行形态处理,第一个过滤器是“填充过滤器”。这个过滤器用缺失的像素填充目标,即每个黑色像素(海像素)。扫描每个像素的八个相邻像素。如果像素的八个相邻像素是白色的(目标像素),则将像素值更改为目标像素,这样可以明确目标,减少误差;第二个过滤器称为“清洗过滤器”。此过滤器执行与填充过滤器完全相反的操作。对于每个白色像素(目标像素),如果它的八个相邻像素都是黑色像素(海像素),将这个像素值更改为一个海像素;第三个过滤器称为“连接过滤器”。在某些情况下,如果问题出现在多个相邻像素中,则“填充”过滤器和“清洁”过滤器无法恢复损坏的像素。因此,“连接”过滤器会监测目标的两个独立部分并使之相连;第四滤波器基于每个像素值由其相邻像素值确定的假设。此过滤器称为“多数过滤器”。对于每个像素,计算八个相邻值并根据相邻的多数改变当前像素值。如图7.3所示为应用四个过滤器后的结果。
图7.2 形态处理的结果
图7.3 应用四个过滤器后的结果
对目标关键点的标记:假设在两个采样帧之间目标并不会有巨大的变化,通过骨架算法对目标进行表征,对图像进行细化处理,得到较简单的识别目标结构。该过程简化了下一帧的目标跟踪过程,减少了CPU计算时间。应用骨架算法后的结果如图7.4所示。
海洋环境可能不稳定,通常在框架中看不到薄的结构目标。因此,目标结构应该更灵活,即使并非所有目标都在帧中,也应当支持对目标识别。为此定义了关键点概念:
图7.4 应用骨架算法后的结果
在这一算法中,定义目标骨架轮廓的交点为关键点。对骨架结构进行关键点标记的结果如图7.5所示。
图7.5 对骨架结构进行关键点标记的结果
最后一步,对关键点进行识别,通过对关键点周围一定范围的目标进行搜索匹配的方式,完成目标的跟踪识别。实际视频的识别结果如图7.6所示。
最后,作者对实际USV拍摄的视频进行了处理分析,结果显示每一帧平均的运行时间测量为0.005 ms,最小值为0.003 ms,最大值为0.014 ms。基于这些结果,认为该算法可用于USV自主运动的实时应用,识别周围的目标。
图7.6 实际视频的识别结果
海雾下,大气颗粒散射导致严重图像劣化。由于近海图像中存在明显的海天线和较大的天空区域,因此首先进行图像分割获得天空区域,并通过对天空区域特征进行分析,估计天空亮度,然后简化建立了大气散射物理模型,最后完成了图像场景恢复。
从远距离看,近海图像的背景一般分为三个区域:天空区域、海域、海天线区域。靠近海天线区域,图像的灰度值变大。边界线上方部分的亮度较高,而边界线以下的亮度较低,因此边缘特征清晰。使用最长曲线法来监测海天线,第一步,使用单位3×3的中值滤波器对图像进行预处理以滤除噪声;第二步,基于Canny算法完成边缘监测;第三步,使用霍夫变换线监测将通过边缘监测获得的图像提取到直线段;第四步,通过计算所有直线段的长度找到最长的直线。
图7.7显示了USV视频帧的海天线监测的基本步骤和结果,图7.7a是原始图像;图7.7b是边缘监测后的图像;图7.7c显示了监测到海天线。
随后估计天空的亮度。如上所述,海天线上方的区域是天空区域,并且原始图像上的海天线上方的区域的最大像素值被选择为天空亮度A的估计值。
图7.7 USV视频帧的海天线监测的基本步骤和结果(www.xing528.com)
通过3个颜色通道分别进行处理估计大气耗散函数,再进行中值滤波,最后重建出图像。
在USV实际图像处理的过程中,因为其背景图像在一定时间内变化不大,图像并不会在每一帧都进行去雾,去雾的背景将会在许多帧直接应用,通过差分方法提取背景,在当前帧和背景的图像不同之后,如果在所获得的图像中,所有像素中的变化像素的百分比大于特定阈值(通常取80%),就需要再次使用帧差分方法提取背景。
图7.8演示了如何从视频序列中分离帧图像的背景。图7.8a为原始帧图像;图7.8b为另一帧图像;图7.8c为背景图像。
图7.8 从视频序列中分离帧图像的背景的过程
图7.9为对比去雾前及去雾后的结果,分析了图中对比的视频处理效果,无论是细节还是图像的颜色都恢复得比较自然清晰,所提出的算法都比较好;通过对视频处理时间的比较,可以提高视频处理速度。
2)立体视觉
美国海军开发了Hammerhead锤头系统,通过立体视觉从一个移动的船舶上监测和跟踪静态和动态物体。
图7.9 对比去雾前及去雾后的结果
锤头系统用于监测水中的几何危险,几何危险指的是突出在水线以上的物体。系统由硬件和软件两部分组成。硬件组件是包含四个摄像头的传感器头,这些摄像头布置在向左和向右的立体对中。所有的四个摄像头都位于同一基线上,这使得锤头相机可以在不增加传感器头部足迹的情况下获得更大的视野。软件组件是一个多级处理算法,它从摄像机中获取输入图像,并产生两个输出:一个概率危险图和一个估计速度和航向的水上目标列表。概率危险图是一个离散的网格单元,根据立体处理得到的模型将其标记为危害/目标和非危害。标签还包括从该地区的电子海图(electronic navigational charts,ENC)(例如浮标、航道标记)或从基于模型的物体分析得出的危险/水上目标的识别结果。按照目前的配置,锤头系统在Core2四轴处理器上以4 Hz的频率运行,在90°的视野范围内有效范围约为200 m。由于该系统独特的四摄像头设计,较长的前视距离有助于降低4 Hz的更新速度(相当于最高速度下约1/4艇长)。
图7.10为锤头系统框图。摄像机的图像由服务应用程序捕获、记录和处理,该应用程序输出一个本地危险地图和联系人列表。它们通过有线网络传输到R4SA系统进行导航处理。第二个低带宽的数据通道传输遥测数据、图像和映射到远程控制台。信道使用用户数据报协议(user datagram protocol,UDP)协议,该协议可以在较差的无线网络连接条件下应用,并允许岸上或船上的观测者远程监视和控制锤头系统。
可以将图像数据记录到可移动磁盘驱动器中,以便以后回放和分析。在“重放”模式下,服务器的运行方式与“实时”模式完全相同,但图像和INS数据是从日志而不是物理设备读取的。此模式有助于锤头系统的离线分析及与其他组件的集成测试工作。但因为USV船只在运动过程中有非常高的加速度,使得磁盘驱动器会有长时间无响应的过程。锤头系统会在将数据记录到磁盘之前在系统内存中缓冲几秒钟的图像数据。
图7.10 锤头系统框图
图7.11 两个立体对摄像头的分布方式
如图7.11所示,两个立体对摄像头的分布方式折中考虑的分辨率,视野和外形尺寸的影响。对于单个立体对,难以同时实现大视场(有效导航所需)和小角度分辨率(远程监测所需)。相比之下,多个立体对可以提供所需的视野和角度分辨率,但是当以传统方式安装在单独的固定装置上时难以集成。因此,使用安装在同一夹具上的两个立体对的设计。四台相机共享一个共同的基线,但一对面向左,另一对面向右。这种布置在提供了良好的分辨率和视野,其代价是立体测距能力不足。最终的传感器配置有两组摄像机安装在一个通用夹具上,具有1 m基线和100°组合视场。这些相机选择采用CCD,分辨率为1 280像素×960像素,单个视场约为60°。锤头系统的软件中包括曝光控制算法,通过自适应增益控制和快门速度来补偿低太阳角度和来自水面的镜面反射等环境因素造成的相机采集影响。
软件方面,锤头系统的软件处理方式为:
(1)图像处理过程。
①立体测距:从左/右立体对产生稠值域的图像。
②平面发现:找到水面并计算稳定的相机姿势。
(2)投影。
①投影:将范围数据投影到以船为中心的2D网格图中。
②滤波:对地图进行时空滤波。
③分类:计算每个地图单元的危险概率。
(3)跟踪。
①监测:监测二维网格图中的离散对象(水上目标)。
②分类:为每个水上目标分配一个类型。
③跟踪:将水上目标的运动融合成轨迹,估计速度和航向。
该过程产生两个输出:一个基于网格的危险地图,适合静态导航行为使用;一个离散的水上目标列表,适合动态导航行为使用。一些物体,如船,可能同时出现在两个输出结果中。过程也有两个分类阶段:第一个阶段为每个地图单元分配一个危险概率,第二个阶段为每个水上目标分配一个类型(例如,小船、游艇、导航标志或误报)。
将该算法应用到海洋环境中存在两个关键问题。第一,锤头的传感器上相机排列降低了有效分辨率。立体相机对的构造通常使两个相机的像平面近似对齐;这使得算法能够创建一对虚拟矫正相机,它们具有与真实相机非常相似的几何形状(因此也具有类似的视野和分辨率)。锤头上,虚拟校正相机相对于真实相机旋转了,导致校正后的图像分辨率不均匀。具体来说,校正后的图像在前向(相对于船)被压缩,并在两侧拉伸。这种压缩减少了对象的成像结果大小,降低了有效的监测范围。因此,为了在不牺牲侧面视野的前提下保持足够的正向分辨率,校正后的图像必须比原始图像大20%左右。
第二,必须对数据进行过滤,去除噪声,传统的数据处理方法在水面上应用会导致丢失所需要的数据,因此用一个简单的多尺度滤波器来增强标准的后处理技术:在多个尺度(下采样图像)上独立地进行立体测距,并删除不一致的结果。这种方法为水上图像提供了更好的信噪比,并且对总计算量的要求提升不大。
多尺度过滤结果可以获得以船为中心的相对干净的地图,可用于危险监测。该地图与来自INS的GPS信息进行地理校准,并且基于数字海图(digital nautical charts,DNC)标记静态危险。误差椭圆的大小反映了立体距离信息的不确定性,由于目标边界上混合距离像素的存在,立体距离信息在对齐深度方向上的相对距离比交叉轨迹方向上的相对距离增长得更多。网格图被传递到跟踪阶段,跟踪阶段监测,分类和跟踪水上目标,例如船只,通道标记和浮标。跟踪阶段的输出描述水上目标速度,位置和类型的结果。
图7.12为锤头系统生成的结果,(顶部)从左侧和右侧摄像头对输入图像。传感器范围内有三个物体:一个位于正北方的航道标志,一个位于西北方向的第二个航道标志,以及一艘位于北西北方向的游艇。为了清晰起见,已手动绘制边界框。(中间)后平均海拔图(红色阴影越亮表示海拔越高)。USV显示在地图的底部中心,朝向正北偏西。(底部)地图分类器的输出,以红色标记的障碍物。
在弗吉尼亚州的门罗堡对锤头系统进行了广泛测试,在测试中,锤头系统对水上目标的表现很好,但对水下目标的测试结果不佳,这与系统拍摄水面上的目标物有关,而在分类测试时,在未进行分类时系统的表现不佳,而在对水上目标进行分类后,获得了极好的分辨结果。
3)红外视觉
长波红外(IR)摄像机是克服各种光照条件(如夜间和雾)对环境感知影响的理想解决方案,可实现白天和夜间操作。是下一步提升USV性能工作工作的重要一环。
图7.12 锤头系统生成的结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。