论文部分内容阅读
随着对河道、湖泊及海洋更深入的开发利用,水面设备的数量和船舶使用量也随之增加,加上现在环保意识不强,进而伴随着水面垃圾增多而导致污染、水面设备和船舶过多而导致航行事故等情况频繁发生。船舶识别、常见垃圾和海洋设备的识别可以为垃圾清理和船舶交通监测等应用提供研究基础。因此如何识别出垃圾、水面设备和行驶船只,对环境和水面交通的治理有着很重要的意义,因此有非常大的研究价值。基于深度学习的相关机器视觉技术在自动驾驶汽车或者无人机领域取得很大进步。然而,在水面目标识别方面的相关研究还是较少,现在仍旧停留在利用传统机器视觉方法进行目标提取,场景比较单一,算法难以工程化。目前在水面目标识别领域中对深度卷积神经网络的研究较少,将何种深度学习算法应用于水面目标识别还有待进一步的研究,因此本文对深度学习相关知识进行了研究,选取工程化使用率很高的三种深度卷积神经网络算法faster R-CNN、SSD和yolov3作对比实验。即对于同样的水面目标训练集和水面目标测试集用不同的算法作对比,选取最适合的水面目标识别的深度学习算法。经过水面目标的识别率和识别速度的结果对比,得出yolov3算法优于前两者的结论。然后通过对yolov3算法的网络结构和损失函数等的进一步研究,更深度优化该算法,使其在水面目标识别中识别效果更好。同样,本文将改进前后的yolov3算法也进行一个对比实验,得出改进后的yolov3算法识别率更高,训练时的收敛速度也更好的结论。在选定yolov3算法后,需要对水面数据集进行数据增强处理,使后面算法研究的效果更好。通过采集大量的可训练数据构建水面目标训练集和测试集,采用随机旋转、随机亮度和对比度、添加噪声等数据增强技术模拟出不同天气条件,比如强光或者傍晚等,既增加训练数据的多样性又增加数据的数量,同时也可以增强算法的泛化性,提高识别率。此外在构建更为丰富的水面目标数据集时,采集不同角度、不同场景的数据,增强训练结果的有效性。为了增加水面目标识别的速度,研究了在多种水域情况下进行水域分割的算法。由于水面目标识别的特殊性,一般情况下水域区域并不占据识别图像的整个画面。但是在常规算法推理的时候,是需要在整个画面进行候选框筛选。其筛选候选框占用算法运行时的很大一部分目标检测时间,因此本文提出的水域分割算法可以大致分割出水域区域,让目标物底框不在水域区域内的所有候选框都排除掉,这样可以在很大程度上减少候选框的个数,提高算法的推理速度,有助于算法的工程化应用。本文基于此现象,提出三种水域分割算法。首先基于海天线识别的水域分割算法可以适应于海天线比较明显的海域中,此时画面比较开阔,可以利用此算法通过提取海天线的算法来获取水域区域。针对比较清澈的湖泊,提出基于相位相关性算法的水域分割算法。因为此水域中有明显的倒影,可以利用倒影与实物的相位相关性求出水岸线,进而获取水域区域。前两种算法在特殊水域中,可以快速反应,获取水域区域。但是在一般性水域的识别性较低,因此本文提出第三种水域分割算法,基于区域分割的水域提取算法,此算法利用基于标记的分水岭算法将水域提取出来,对待复杂水域情况下识别效果优于前两者。本文除了对算法本身进行研究,在算法进行有效性验证方面和工程化应用方面做了一定的研究。首先利用算法对经过数据增强的自制水面目标数据集进行训练,记录训练过程中的loss值和IOU变化率等训练中间结果,然后对其进行分析,进而分析算法训练的有效性和观察收敛的程度是否和理论预测相同。最后用训练后的权重文件进行测试集验证,对比不同情况的识别结果。最后将训练后的权重文件在无人船上进行工程化应用。首先改造无人船系统,进行无人船控制。无人船上搭载海康摄像头、激光雷达、esp8266等设备,进而搭建出一个局域网,进行无人船与上位机的通信链路。随后将算法应用到该无人船中,进行水面目标识别应用。通过实验证明,本文所设计的目标识别算法在水面目标识别方面有比较好的识别效果。