龚晓蓉 白 玉
(1.山西省测绘地理信息院,山西 太原 030001;2.河南省测绘地理信息技术中心,河南 郑州 450003)
伴随着现代计算机科学技术的发展,云计算、大数据潮流的到来,对各类影像(卫星影像、航摄影像、照片等)的自动化处理需求也日趋旺盛,识别影像中各类目标成为AI算法、图像处理、神经网络等领域中较为热点的问题。
针对自动化、无人工干预的目标检测问题,传统的主流方法不需要预先训练,直接对每一帧视频图像处理得到运动目标的前景轮廓,类似于一种前景提取的方法,只能得到运动目标大致的区域轮廓,不能获取目标的属性信息。这类方法虽然实现起来较为简单,但容易出现漏检现象,且检测结果的好坏易受环境变化的影响。随着技术的不断进步,涌现了许多优质的目标检测方法,利用卷积神经网络可以自主地对目标进行学习,不需要过多的人工干预。
目前效果最好、应用最广泛的目标检测方法可分为两类:第一类是基于区域建议的方法,如,R-CNN等,这类方法在目标检测的精度指标上有着优越的表现,但检测速度相对较慢;另一类是基于回归学习的方法,如,SSD、YOLO、YOLO v2和YOLO v3等,这是一种端到端的学习方式,有高效的检测速度,具备较好的实时性。
本文以较易获取的城市交通场景车辆数据照片为例,总结了基于区域建议和基于回归学习的检测方法的优势及使用情况,并引入不同的目标检测算法模型,通过相关实验对比各自的优缺点。
基于区域建议的方法将整个检测与任务划分多个区域,通过分类训练,形成数据分析样本,是现阶段最成熟、应用最广泛的目标检测与识别算法,通过强大的自主学习能力和对复杂数据分类的优越性来提升检测精度。其中比较著名的是R-CNN、Fast R-CNN和Faster R-CNN三种方法。
R-CNN首先利用选择性搜索方法获得若干个候选区,通过卷积神经网络对其进行特征提取,然后将不同特征送至SVM分类器,最后通过边界框回归算法(Bounding-Box Regression)重新定位目标边界框并输出检测结果。整个算法的框架(如图1所示):
图1 R-CNN模型框架
R-CNN模型中首先要做的就是候选区提取,在以往的算法中,首先需要在窗口中进行候选区框选和提取,每一类分类都可能需要产生非常大量的候选区,人工工作量大,可能需要的选取或点击次数达到百万量级。但在R-CNN中,应用了先排除后搜索的方法,首先剔除掉与目标区域无关的冗余区域,随后对其余区域进行特征提取,判断剩余区域是否包含识别目标,这样能极大地提高算法效率。得到深度特征后利用SVM分类器输出为每个候选区的类别,最后根据边框回归定位最后的检测结果。
虽然相比于传统的目标检测方法,R-CNN取得了巨大的突破,但是它仍然存在运算效率不高、无法做到端对端处理等问题。为了解决这些问题,出现了Fast R-CNN模型,解决了R-CNN的三个问题:(1)目标检测流程分割为多个步骤,且各个环节之间相互孤立,影响了效率;(2)尽管剔除了无目标区域,但仍然需要人工处理大量候选区域;(3)区域训练速度慢,需要耗费大量时间。
Fast R-CNN仍旧采用选择性搜索方法生成目标候选区域,区别在于引入了感兴趣目标区域的策略,通过卷积神经网络的特征层与候选区进行映射,避免了冗余的特征提取操作,最后利用Softmax对提取的特征进行预测学习。Fast RCNN将R-CNN中孤立的特征提取、特征分类、边框回归整合到统一的模块中,提高了整个模型的运行效率。该模型的检测流程(如图2所示):
图2 Fast R-CNN模型框架
Fast R-CNN有两个平行的输出层:选择性搜索和特征提取,可以讲已提取的区域较为自动化地完成图像局部搜索,将类别判断和位置精度统一起来,不仅节省时间,而且不需要过多的磁盘存储。但是Fast R-CNN本质上还是需要大量人工来选取候选区域,需要识别的区域仍然很多,在一定程度上影响了算法的效率。
在R-CNN的基础上,Fast R-CNN虽然克服了冗余特征提取的问题,将特征提取、特征分类和边框回归整合了到统一的模块中,但是,仍然需要人工搜索提取目标区域,不能借助神经网络实现自动化,目标候选区提取就成了影响检测速度的新问题。为解决这一问题,提出了Faster R-CNN算法,通过区域生成网络(Region Proposal Networks,RPN)来进行目标候选区的提取。与Fast R-CNN和R-CNN不同的是,Faster R-CNN模型只需要获取目标和边界框对应的类别信息,通过基础的卷积神经网络对目标进行特征提取,然后将输出的特征用区域生成网络进行预测,再用预测到的候选边框对特征图进行ROI(Regions of Interest)池计算和筛选,最后通过全连接层实现目标分类和边框回归。整个过程(如图3所示):
图3 Faster R-CNN模型框架
Faster R-CNN采用了自动卷积算法和ROI池化操作,通过区域生成网络,并用RPN来生成候选区域,共用一个卷积神经网络提取的特征,将整个从输入—卷积计算—特征提取—分类—边框回归等算法流程封装到一个模型当中,迭代化地、大幅度地提升了目标检测速度。
YOLO(You Only Look Once)模型与上述几种模型截然不同,它摒弃了区域建议的特征提取的思想,将目标检测看成是一种回归问题,不再选取任何区域,直接将整幅图像输入神经网络,在输出时判别是否存在目标。检测流程图(如图4所示):
图4 YOLO模型检测流程图
整体检测流程大致如下:
(1)将整幅图像等分成个网格;
(2)将整幅图像输入深度神经网络,测试判别每一格是否有识别目标的存在,若预测为是,则该网络再预测出个检测边界框(Detected Bounding Box)和置信度(Confidence);
(3)设置合理的阈值,做非极大值抑制判断,从而计算筛选出最适合本次目标识别的结果。
YOLO算法和传统方法相比速度较快,整个模型的框架十分简单,且每次能够检测和识别整张图像的所有目标。但是由于YOLO算法是简单的回归算法,识别精度并不会比基于区域建议的算法更高,并且普适性不强,对小目标的检测效果不理想。
主流的目标检测模型通常由区域建议网络和多层特征提取网络共同完成对数据的抽象学习,能够获得较好的训练效果和测试精度,但模型的层次结果复杂,计算复杂度较高,实时性较差。因此提出了一种端到端的目标检测与识别方法SSD(Single Shot MultiBox Detector)。SSD也是一种基于回归学习的目标检测模型,使用VGG-16作为基础网络,将YOLO与Faster R-CNN机制特点有机结合,除了在最终特征图上进行边框回归和类别判断之外,还在前期的若干个特征图上进行多尺度的预测。SSD利用VGG-16网络中不同层级的抽象特征进行回归学习,通过多尺度学习的方式对目标进行多次判断,在保证模型收敛速度的同时进一步提高了检测的精度。模型结构(如图5所示):
图5 SSD模型检测流程图
SSD算法的核心步骤:
(1)通过VGG-16网络对输入的图片进行特征提取;
(2)根据提取到的不同级别的特征,定制不同大小的特征提取盒;
(3)以各个特征提取盒包含的特征信息分别对目标进行若干次判断和筛选,进行类别预测以及边框回归;
(4)利用非极大值抑制筛选最佳的预测结果。
YOLO v3是YOLO升级的第三代算法,参考SSD和残差神经网络的思想,设计了分类网络模型Darknet-53,一共包含53个卷积层,采用多尺度预测的方式提高对小目标物体检测的精度,同时加入了维度聚类思想,使得检测速度和精度再次提升,该算法性能基本代表目前业界的最先进水平。表1、表2表示的是YOLO v3的Darknet-53网络与Faster R-CNN、SSD、YOLO v2等网络各方面的性能对比。
表1 Darknet-53与Darknet-19、Resnet性能比较
表2 YOLO v3与各主流网络检测精度比较
选取不同类型的深度学习网络SSD、Faster R-CNN、YOLO v3,利用公开的目标检测数据集PASCAL VOC和UA-DETRAC进行对比实验,分别从检测精度和检测速度两个方面进行比较分析。网络初始学习率为0.01,最低学习率为0.0001,利用梯度下降法进行参数更新,整个训练过程迭代50000次。
选取不同的卷积神经网络Resnet、Mobilenet、Inception与SSD组 合,Resnet、Inception与Faster R-CNN组 合,Darknet53与YOLO v3组合进行实验。SSD、Faster R-CNN、YOLO v3的检测结果,以矩形包围框的形式显示,同时附带目标检测的置信度分数,数值范围为0~1,数值越大,说明目标被正确检测的概率越大。不同样本的检测结果统计(如表3、表4所示):
表3 PASCAL VOC数据集检测结果
表4 UA-DETRAC数据集检测结果
比较不同算法的检测结果,Faster R-CNN系列算法的检测精度最高,对于PASCAL VOC和UA-DETRAC数据集检测结果的精准率都能达到91%以上,召回率达到89%,F1值达到90%,这和Faster R-CNN的核心结构——区域生成网络(RPN)密不可分,结合特征金字塔和锚(anchor)定位的思想,通过共享一个特征提取的全卷积神经网络,融合各种算法优势封装至一个模型之中,极大地提高了检测速度和精度。YOLO v3在检测精度上也有着令人满意的表现,对比在PASCAL VOC和UA-DETRAC数据集上的检测结果,精准率、召回率、F1值分别达到90%、88%、89%,通过多标签分类预测盒跨尺度预测的手段,极大提高了对小目标的检测的精度。不同的卷积神经网络框架对SSD算法的精度影响并不是很大,在PASCAL VOC和UA-DETRAC数据集上检测结果的精准率、召回率、F1值达到88%、86%、87%,SSD对于常规尺寸目标的检测精度较好,但是对于小目标的检测精度较差,远离相机镜头的大部分小目标车辆会检测不到。因此从精度指标来看,基于区域建议的Faster R-CNN模型有着更优异的表现。
抽取50张图像,将SSD、Faster R-CNN、YOLO v3三种网络模型分别进行测试,将测试结果统计绘制成点状图(如图6所示):
图6 三种模型检测速度对比
根据统计的结果图可知,SSD模型有着最快的检测速度,特别是配合Mobilenet网络使用时,单张图像的检测时间在30~60ms;YOLO v3模型比SSD模型检测速度稍慢,单张图像的检测时间在45~85ms,也能达到实时要求,体现了端到端的深度学习检测模型在效率上的优势;Faster R-CNN的检测速度稍慢,单张图像的检测时间在150~185ms左右,在实际应用场合中难以达到实时性的要求。
通过选取不同网络模型进行测试实验,进一步验证了基于区域建议的Faster R-CNN系列的检测网络在检测精度上有着优异的表现,但在检测效率上稍逊一筹;而基于回归学习的SSD、YOLO网络有着较高的检测速度,能够满足实时性要求,同时具备不错的检测精度。
对,对于不同特征、不同目标复杂程度的影像识别和提取的模型适用性进行了探讨,并以城市交通场景的监控视频为例,对不同算法进行了对比实验。各种算法都有其适用领域,对各种算法的对比结果能够应用于航天航空影像自动解译、图斑自动提取、地热遥感、高光谱影像分级分层、地面绿化评价等领域算法编译、程序设计都有着极为重要的意义和作用。
本文对各类深度学习的目标检测方法优劣性进行了比