杨浩然,张雨晗
(1.福州大学物理与信息工程学院,福建福州,350000;2.福州大学计算机与大数据学院,福建福州,350000)
无人机是信息化时代的新型技术产物,它涉及数据采集、智能控制、信息处理、通信等相关技术。同时具有操作灵活、体积小巧、机动性高等优点,这些特点都有效的丰富了无人机多元化的使用场景[1]。随着无人机技术的不断成熟,无人机已经在相关领域被广泛使用。有别于载人航空设备,无人机要在弱人机交互环境下实现相关任务,就需要拥有场景智能解读和处理能力,对于场景的理解力的提升必然要基于目标检测。计算机视觉技术早在20世纪90年代就已经开始应用于无人机领域,早期受限于微处理器较差的运算能力,相关算法虽然有一定的优化但总体上发展缓慢。经过几十年的发展,目前随着处理器运算能力的显著提升,利用计算机视觉相关技术解决无人机应用中的问题显得更加得心应手。
此类算法的经典代表有R-CNN、Fast R-CNN、Faster R-CNN,从算法的整体结构来看,主要步骤为首先采用启发式候选区域生成算法生成多个潜在目标区域;然后通过深度神经网络提取目标候选区的特征;最后利用这些特征进行分类并且同时进行目标真实边界的回归。
由Ross Girshick[2]等人提出的R-CNN摒弃了传统的滑窗式的区域选择,利用Selective Search算法从检测图像中提取多个区域候选框,所有候选框被修正为固定大小,采用了227*227的固定大小,然后使用由5个卷积层和2个全连接层组成的CNN进行特征提取,得到固定长度的特征向量,最后将这些向量输入到SVM分类器判别输入类别,同时R-CNN为了保证定位的准确性采用了一种线性回归的模型对候选框坐标进行精确修正。这种模型使得其准确度在PASCALVOC的数据集上比传统方法高出20%左右。传统方法中滑动窗口作为候选区域导致了相近候选区域重复率高,从而导致了冗余计算使得检测速度慢。R-CNN采用了启发式的Selective Search,生成区域后再检测,在一定程度上提高了检测效率。同时手工提取的方法在实际使用过程中受限于复杂环境导致鲁棒性差,R-CNN利用CNN自动提取特征增强了鲁棒性。但是R-CNN也存在一些不足,候选区域在生成过程中依然有重叠会导致在卷积过程中对相同的区域进行反复的卷积,这样也会使得算力冗余;正如上文提到的图像在输入CNN中时需要固定尺寸,这就导致图片会在一定程度上出现畸形,检测的准确度下降;在训练测试过程中各个环节都是独立操作的,在操作过程中的临时数据需要额外的存储空间进行保存。
Faster R-CNN的出现诞生了RPN网络的概念[3],这种方法本质上类似R-CNN算法,但是,我们不再将区域建议提供给CNN,而是直接将输入图像提供给CNN生成卷积特征图。从特征图中识别出提议的区域并转化为正方形,通过ROI池化层将大小固定,以便可以将其送到全连接层。与此同时,Fast R-CNN加入了多任务损失函数,即为将边框回归直接加入CNN网络中,将其与分类合并成了一个多线程模型,从而使得多个任务的卷积特性可以共享,降低了R-CNN中多阶段分离和存储量大的缺点。提出了ROI pooling layer池化层,该层位于卷积之后,目的是将大小各有差异的候选区域所对应的特征划分为大小相同的区域块。这与SPP-Net做法类似,但却更加简洁高效。不难看出,由于不需要每次都向卷积神经网络中输入2000个左右的区域建议,故每个图像只需要进行一次卷积操作生成一个特征图,这便使得Fast R-CNN检测效率得到了明显提高。不论是R-CNN还是Fast R-CNN都基于选择性搜索来找到区域提议,在整个检测过程中正是因为选择性搜索的耗时多,这才影响了整体的系统性能。从整体上看Faster R-CNN实现了全神经网络共享卷积特征,真正提高了相关运算处理的速度,随着算法的不断优化检测速度已经取得了相当可观的突破,而且保证了整体处理的精确性和精简性,但是无人机这种对实时性要求较强的设备来说依然无法满足其需求。
图1 区域建议目标检测算法结构
提高实时检测性是无人机最重要的需求,在目标检测领域Redmon[4]等人提出了YOLO算法。YOLO算法不同于传统的Faster R-CNN的先进行场景识别再进行目标检测,该算法直接进行目标检测,舍去了候选区提取的流程。检测速度明显得到了提升,在目前已有文献中YOLO是最快的通用目的的目标检测器,因此可以用于实时目标检测的任务。在实际的算法实现中,YOLO会首先将图片转化为固定尺寸(一般为448*448),然后将图片进行网格化分割,分成S*S个网格并分别进行目标检测,而后输出Bbox Info和置信区间。虽然YOLO检测系统可以快速的进行目标检测,但是其很难精确定位小目标。
综合来看,得益于回归方法进行目标检测,检测速度明显加快,实时性也得到了保证。因此,在无人机领域基于目标回归的目标检测算法受到了广泛应用。
目标检测在不同的使用场景中需要针对不同的情况作出相应的调整和优化。因此针对在无人机应用中出现的实际问题,目前存在一些优化方案。
虽然无人机硬件目前处理速度得到了极大的提高,但检测速度仍旧是研究的重点方向之一,北京理工大学的算法论文SlimYOLOv3[5]提出了提出了一种对YOLOv3的改进版本,作者对原始模型的卷积层执行通道进行了修剪,在VisDrone2018-Det基准数据集上评估显示参数尺寸和浮点运算均产生了大幅度的下降,运行速度成功提高了两倍左右,且检测精确度和YOLOv3保持相当。
受到航拍过程中目标像素过低且环境复杂因素的影响,目标检测中的小目标检测一直都是研究中的难点。对于无人机图像中复杂背景下噪声信息过大的问题,Audebert等同过全卷积网络对检测目标进行严格分割,而后通过连通分量进行目标检测,从而证明了语义分割和目标检测的结合可以有效提高目标检测效率。Li[6]等在此基础上采用了RPN来对噪声信息进行抑制。此方法将集成后的新特征点进行空洞空间金字塔池化和卷积得到语义特征后,由RPN得到Region Proposal再根据概率值筛选后经过类似的标记过程被传入R-CNN子网络进更加准确的坐标回归。在小目标检测方面,为了提高检测的准确性,2016年Tsung-Yi Lin[7-8]等人提出了FPN算法,通常高层特征语义信息较为丰富而目标位置却不太准确底层特征语义虽然较少但是目标位置更加准确,作者利用深度卷积网络固有的多尺度金字塔层次结构来构建具有边际额外成本的特征金字塔。开发了具有横向连接的自顶向下架构,用于构建所有尺度的高级语义特征图。FPN算法将不同特征层独立进行预测,采用了顶层特征和低层特征做融合。作者在论文中引用了COCO比赛上的具体算法检测结果,可以清晰看到作者构建的算法在小目标物体检测上的提升。
图2 COCO比赛检测结果
无人机领域目标检测算法的相关研究目前受到了国内外的高度关注。虽然相关的算法优化已经取得了不错的效果,但是依然存在优化和改进的空间。从近年来的主要研究方向来看,主要集中在寻求检测准确度与检测速度之间的最佳契合点。基于YOLO算法的目标检测虽然提出的时间不长,但是研究趋势更加符合无人机的发展。
本文从基于计算机视觉的无人机检测技术角度出发,概括了目标检测在无人机中的具体问题,总结概况了目前主流的目标检测算法和各自算法的联系,同时结合无人机发展的具体需求,分析了目前对于无人机目标检测技术主流的改进优化方向。随着无人机应用需求的进一步提高,目标检测必然取得更加飞速的发展。