基于SSD神经网络的图像目标物体检测
2021-11-02王君洋叶传奇朱炳旭
王君洋,叶传奇,朱炳旭
(河南科技大学 软件学院,河南 洛阳 471003)
0 引言
目标检测为我们的生活提供了极大的便利,受到越来越多人的重视。目标检测算法主要分三类,第一类是传统的目标检测算法:Cascade+HOG,DPM+Haar,SVM。第二类是候选框+深度学习分类:R-CNN,Fast R-CNN,Faster R-CNN等。第三类则是基于深度学习的回归方法:YOLO,SSD,DenseBox等。其中SSD算法在保留了速度和精度的同时还有比较好的准确率和性能。SSD包含大量的网络模型,其不同点主要在于被检测图像的大小不一样。本文主要研究图像识别领域TensorFlow的应用。
1 TensorFlow框架
TensorFlow是一个用于数值计算的开源框架,主要采用数据流图。TensorFlow是人工智能领域处理分析的主要工具,同时也是一个用于机器学习和深度学习的开源平台。在深度学习领域,TensorFlow经常被用于自然语言处理、语音识别以及图像识别等。
1.1 TensorFlow的特点
TensorFlow具有极大的灵动性、移植性,能够自动求取微分、支持多语言、性能高度改良。
1.2 TensorFlow Object Detection API库
TensorFlow Object Detection API库的目的是创建一个在单个图像中精确定位和识别多个事物的机器学习模型。这个API是基于Tensorflow构造的开源框架,不仅有利于在目标检测的模型中构建、训练和部署,同时在处理物体检测问题中也可以使用。而在一个画面帧中检测许多不同物体的过程就是物体检测过程,因此可以将其运用在熊猫这个数据模型中。
2 SSD算法
YOLO回归的概念和Faster-RCNN中的Anchor机制被结合在SSD中。为了维持YOLO快速的特性,同时确保保留在窗口预测过程中Faster-RCNN算法比较精准的性能,可以利用全图多尺度区域在各个地方进行回归满足需求。SSD主要被用于不同尺度的特征图中,预测一些Default Bounding Boxes的类别和坐标的偏移量等,通过采用卷积核的方式来实现。
2.1 SSD结构模型
以VGG-16为基础,使用VGG的前5个卷积,后面增加从CONV6开始的5个卷积结构,输入图片规格为300×300。
2.2 SSD流程
Faster R-CNN的anchorbox和被引入SSD中的Defalut Box的预设目标预选框机制十分相似。不同点主要在于使用PriorBox层在不同尺度featuremap所有特征点上,过程如图1所示。
图1 SSD原理过程
2.3 选取默认框
通常多尺度的方式被SSD在实现目标检测中使用。如果n层特征图在模型检测中使用,那么就可以确定第k个特征图默认框的占比是:;特征层默认框占输入图像的最小比重是Smin,通常取0.2;占输入图像的最大比重则是Smax,通常取0.9[1]。
2.4 损失
网络输出预测的predict box与ground truth回归变换之间的损失计算,置信度采用Softmax,位置回归则采用Smooth L1。训练中,为了提高预测框类别的置信度,可以通过减小损失函数值来实现,同时提高预测框位置可信度。每次迭代都将迭代的结果返回给模型,模型接收返回的信息后,通过返回的信息进行修改继续训练。通过提升模型的目标检测能力,训练出所需要的最佳的图像识别模型。
3 实验准备及过程
3.1 数据集的创建与处理
从网络中下载500张中等大小的熊猫照片保存在“images”目录下。下载的不同角度和形状的熊猫照片可以被用来训练所需要的预测模型。经过一段时间的大量训练,模型预测结果的精确度得到了提高。为了让系统知道学习训练和识别的实际物体是边界框内的物体,可以在获取图像数据后,沿着模型后期将要预测的物体画边界框,用Labelme进行标记。在标记完成之后,会得到一个目录和存储每张图面边界框的xml文件[2]。
3.2 划分和创建新的数据集
将从网络中下载的数据集划分为训练集和测试集两大类。模型向训练部分添加大约80%的图片和它的描述图像边界框的xml文件,向测试部分添加大约20%的图片和它的xml文件[3]。为了使TensorFlow可以顺利读取xml文件中的数据,将xml文件的格式修改为Tfrecord格式,存放在新的数据集中。
3.3 运用SSD识别物体过程
读取本地测试图片,preprocess_input以及保存图像像素值(显示需要);模型预测结果,得到7 308个priorbox;进行非最大抑制算法处理;SSD300模型输入以及加载参数。
4 结语
物体检测改善了人们日常生活的体验,已经成为当今社会研究的一个热点技术。本文基于SSD算法,设计实现了图像神经网络检测模型,并且将其应用到熊猫的图片识别中。多次实验中的一个预测结果如图2所示,成功标记出熊猫的概率为87.3%。在20测试数据集的测试中,18测试集的测试结果准确率在90%以上,表明该模型检测结果的准确率较高。
图2 识别熊猫