安徽师范大学物理与电子信息学院 王 鑫
安徽师范大学物理与电子信息学院 安徽华通电缆集团有限公司 陈 浩
安徽华通电缆集团有限公司 陶天宝
无人机体积小、视野广、灵活性好,在事故处理、交通疏导、流量监测等方面具有巨大优势。本文设计了一种基于无人机图像的车辆识别系统,设计开发实时图像传输模块,用于将无人机采集的图像同步传输到PC端,利用YOLO v4目标检测算法对车辆进行实时检测,设计用户界面显示数据信息、基本操作以及检测结果。测试结果表明,该车辆识别系统具有较好的检测精度和实时性。
利用无人机图像的车辆识别系统,具有视野好、时效性强、灵活采集等优点,对于道路监管,尤其是春运、大型集会(如运动比赛、演唱会)等时段的道路监管尤其重要。相对于传统的道路监控,无人机高度机动、布点灵活,在事故处理、交通疏导、流量检测等方面具有巨大应用优势,特别是在一些监控盲区,无人机高空监测可以发挥重要作用。
目前,很多学者开展了基于无人机无人机图像的的车辆目标识别研究,使用无人机可以增大检测道路的灵活性,但处理图像处理的速度影响了系统的实时性。许多算法对于高空图像下的小目标识别精确度有待提高。赵凯迪等采用了改进后的SSD目标检测算法,其优点在于网络架构小、速度快,可直接用在便携式计算板卡上搭载到无人机上。但其对小目标和大分辨率图像的识别不够完善,这限制了无人机的飞行高度和机载相机的性能。文中等测试了多种目标检测算法对车辆的识别,并对其进行改进,但系统的可操作性不佳。
本文研究通过无人机实地拍摄获取车辆目标高空图像进行训练;得到模型后对图像进行预测处理,图像处理部分运用到以神经网络的YOLO4目标检测算法;设计系统地面站界面显示图像信息;最后设计无人机图像无线传输硬件实现系统软硬件结合。经系统测试,及空地联调,该车辆识别系统具有较好的检测精度和运算速度。
系统由无人机和地面站(电脑)组成,其中无人机负责高空拍摄图像并传回,地面站负责处理传回的数据。由于无人机未实现智能自动飞行,需要专业操作人员进行控制。数据传回地面站后,通过智能预测、GUI显示等功能使用户获取道路上车辆的分布情况更加便捷。从高空俯瞰,可以获取更多人类不方便获取的信息;无人机飞行器可以灵活地在可控范围内高空飞行和采集信息,因此使用无人机侦察就成了车辆目标检测系统需求的关键。系统概要设计如图1所示。
图1 系统概要设计图
根据无人机车辆检测系统要求,本系统包括三个功能:图像检测功能、数据显示功能、图像无线传输功能,其中数据显示功能又包括图像展示和数据分析。
1.2.1 目标检测
目标检测功能通过无人机高空飞行获取图像传回地面站,地面站(电脑端)对获取到的每一帧图像中道路车辆目标进行检测,获取到道路车辆的位置以及类别信息。本文通过大疆无人机在一定区域内飞行采集获取目标识别网络训练图片,利用YOLO v4算法对无人机传回来的道路车辆图像进行检测。
1.2.2 数据显示
数据显示功能通过构建一个用户界面;设置按键、输出数字(包括坐标、loss值等数据)区、图像区方便人机交互。其中数据区是显示图像中道路车辆的位置、类别等信息的区域,图像区将数据区的信息映射到原图中方便用户通过视觉直接获得信息。
1.2.3 图像无线传输
图像无线传输功能主要是数字无线图传的软硬件结合设计。设计利用树莓派采集摄像头图像,利用无线网卡将图像传输到另外一张树莓派上,然后利用HDMI采集卡将视频流传输到地面站(电脑)。
图像无线功能模块设计分为接收端和发射端,如图2所示。图2(a)是无线图传接收端,由一张树莓派3B+、一张AC8812网卡、两个5.3G天线和一块树莓派供电板组成。树莓派供电板将锂电池转化成5V3A的稳压电源为接收端供电。AC8812网卡通过usb与树莓派相连,用于接收发射端传回的数据。最终图像从树莓派的HDMI接口输出。
图2 无线图传模块实物图
图2(b)是无线图传发射端,包括一张树莓派3Bmini、一张AC8812网卡、一个摄像头、两个5.3G天线和稳压电源。AC8812网卡与树莓派相连用于发送摄像头采集的图像。
本实验中无人机高空飞行采集的图像分辨率为5472x3648。因为图片过大,需要进行预处理才能作为YOLO v4网络的输入。
2.2.1 高分辨率图像处理
数据预处理实验表明,剪裁后拼接耗时是直接输入的54倍,且两者预测的准确度相当。因此,本文设计的系统将原图resize处理后直接送入模型进行预测。将原图通过resize的方式缩小到608x608大小,每幅原图只需要进行一次预测。
2.2.2 Mosaic数据增强
数据增强可以使图片数据变得更加多样,放入模型训练中可以提高模型的鲁棒性,降低额外因素对预测结果的影响,比如:亮度和形态等。
YOLO v4的Mosaic数据增强参考了CutMix数据增强方式,因此两者在原理上有一定的相似性。CutMix数据增强将两张图片进行拼接,而Mosaic则是拼接四张图片。YOLO v4在读取四张图片后进行翻转、扭曲、色域变化等,并且按照不同方向依次摆放进行图片的组合和框的组合。
2.2.3 车辆目标检测
训练数据为960张大疆无人机在学校周边高空拍摄的图片。在图片中标注出有用信息,将车辆框出来并标注类型,生成.xml文件;运行数据训练程序,输入预训练框架。将图片和标签文件输入YOLO v4模型中,利用预训练框架训练模型。多次训练改善模型。系统的图像处理部分流程如图3所示,训练集图像经过resize处理后尺寸变为608x608,输入到YOLO v4框架中加载预训练权重文件进行训练,经过数据增强算法、学习率退火算法的处理,输出训练结果。YOLO v4权重文件;测试集图像经过resize处理后输入到上述训练好的YOLO v4权重文件进行预测,对输出结果进行解码:将预测框、类别、置信度等信息映射到原图中。
根据计算机显卡性能将模型的batch_size设置为8,学习率初始化为0.001,采用余弦退火算法,在经过280个epoch后,loss值低至16.8。
训练用的图片分为训练集和测试集,训练集图片800张,总共含有不同样式的车辆10000多辆,测试集图片160张,总共含有车辆2500多辆。根据图片中车辆的类别信息,将网络输入类别更改为car、truck、buugy、bus四类。在训练进行14500次迭代后,模型达到饱和,loss不再继续下降,训练自动停止。
本文设计的系统是面向用户的,因此,为目标识别系统最外层设计一个GUI界面是必要的,GUI界面中,车辆目标识别结果如图3所示。
图3 GUI界面演示图
2.3.1 图像显示
利用tkinter工具创建菜单、创建画布、创建label。菜单用来选取图像,当未检测时,在画布上显示原图,label显示状态为“原图”;检测后画布显示处理后的图片,label显示状态为“预测后”。
2.3.2 检测结果显示
创建文本框,读取模型输出后分辨出要显示的信息并打印。
本文中代码运行的硬件环境:CPU为酷睿处理器10代i5,GPU为英伟达gtx1660ti
本文中代码运行的软件环境:windows10+python 3.6.12+tensorflow-gpu 1.13.1+keras==2.1.5。
无人机配置:大疆精灵
图像检测功能测试:利用opencv观察模型的输出情况。
数据显示功能测试:上述GUI界面创建完毕后,进行测试。
图像无线传输功能测试:测试图传的距离、抗干扰能力与传输延时情况。经过实验,测得图传在空中5km以内可以稳定传输,传输延时在200ms以内。
本文目标检测的精度用准确率、漏检率、虚检率指标进行评价。经过多次训练预测,系统的精度评价如表1所示,达到目标效果。
表1 车辆检测精度评价
准确率=准确检测车辆数/车辆总数
虚检率=错误检测车辆数/检测到车辆数
漏检率=漏掉检测目标数/车辆总数
本文研究一种基于无人机的车辆识别系统的设计。根据中无人机性能和应用场景,利用了YOLO v4算法进行车辆目标检测,结合数据增强算法、学习率退火衰减算法等,使得基于无人机图像的车辆检测可以达到预期效果。同时,选取树莓派自制了一款无线数字图传模块,自主开发了图像无线传输模块和系统控制界面。经联调测试,该系统操作便捷,可搭载大多数无人机平台,且具有较好的运算速度和识别精度。