◆常 川 刘科成
基于机载机器视觉的无人机自主目标跟踪研究
◆常 川1刘科成2
(1.武汉大学遥感信息工程学院 湖北 430072;2.上海交通大学电子信息与电气工程学院 上海 200052)
目标跟踪在军事、民用等多个领域得到了广泛的应用,通过无人机进行实时的目标跟踪是近几年研究的热点。文章研究了四旋翼无人机对地面动态目标实时的检测与跟踪问题,设计实现了基于机载计算机的无人机跟踪系统,使得无人机能够实时处理摄像头获取到的视频数据,并结合YOLO(You Only Look Once)目标检测算法和核相关滤波(Kernerlized Correlation Filter, KCF)目标跟踪算法,实现了快速稳定的目标跟踪。最后在室外环境中对行人进行了跟踪实验,验证了无人机目标跟踪系统的有效性。
无人机;YOLO目标检测算法;KCF目标跟踪算法;机器视觉
无人机通过自身搭载的摄像头进行动态的目标跟踪是计算机视觉领域和无人机领域的一个热点问题[1]。无人机通过目标检测算法[2]检测跟踪对象所在位置,并通过目标跟踪算法[3]对跟踪目标进行跟踪,无人机跟随跟踪对象进行飞行,从而实现对特定目标的动态跟踪[4]。
本文提出了基于机载计算机的无人机跟踪系统,实现了对跟踪场景的实时处理,并将目标检测算法与目标跟踪算法相结合,提升目标跟踪的稳定性,从而实现了无人机进行动态目标跟踪的自主化。
目标检测的常规方法是将每帧图像分割成区域,并根据特征判断每个区域中是否包含该对象[5]。英国杜伦大学采用卷积神经网络和迁移学习来实现目标检测,实验表明YOLO[6](You Only Look Once)、基于区域的快速卷积神经网络(Faster-RCNN)[7]和基于区域的完全卷积网络(R-FCN)经过迁移训练后,可以实现对行李箱中非法物体的检测[8]。YOLO是一种新的对象检测算法,它可以“一眼”就能预测出物体是什么以及物体所在的位置[9]。
目标跟踪旨在估计视频中预定义目标的位置或运动状态[10],其在视频监控、机器人技术和自动驾驶等方面有着广泛的应用。核相关滤波(Kernelized Correlation Filter, KCF)算法是目标跟踪中常用的算法[11]。中国科学院大学的研究人员提出了自适应学习率和遮挡检测机制,改进了KCF算法的跟踪效果和速度[12]。Henriques 和Caseiro提出了一种基于线性内核的快速多通道扩展的KCF算法,相比于Struck和TLD等跟踪器,具有更快的速度,并且所需代码数更少[13]。
基于机载计算机进行实时数据处理,并结合目标检测算法和目标跟踪算法,可以实现快速稳定的动态目标跟踪。
本文使用四旋翼无人机搭载单目摄像头和机载计算机,实现实时的动态目标跟踪。所使用的实验设备为DJI M100无人机、机载计算机(妙算 Manifold: NVIDIA Tegra K1处理器,四核ARM和GPU CUDA核心,最高主频2.2GHZ)、手持设备(普通智能手机)、遥控器、单目摄像头(禅思Z3云台相机,1080p分辨率),将各种设备进行系统集成后的结构图如图1(a)所示。在系统运行过程中,需要实现手持端和无人机机载端的通信,即将手持设备与遥控器进行连接,将机载计算机与无人机进行连接,即可通过数据透传通道实现端到端通信,设备通信示意图如图1(b)所示。
将无人机硬件系统与软件方案进行系统集成,需要分成两部分进行:
(1)无人机机载端:将无人机与机载计算机连接后,在机载计算机上安装ROS操作系统,并安装部署无人机控制模块、目标检测模块、目标跟踪模块,机载计算机基于消息通信机制实现各个模块的调用。
(2)手持设备端:手持设备上安装应用程序,完成无人机的手动控制、命令发布和结果显示。
如图2所示,在室外环境中实现无人机对特定目标的动态跟踪,需要分为以下步骤进行实现:
(1)通过手持设备发送目标跟踪指令,机载计算机接收并解析指令。
(2)机载计算机调用目标检测算法检测跟踪对象所在位置,并将检测结果回传至手持设备进行显示。
(3)通过手持设备对跟踪目标进行框选,机载计算机调用目标跟踪算法对框选的跟踪目标进行跟踪。
(4)无人机根据跟踪对象的位置变化,进行姿态调整和位置移动。
图2 方案流程图
实现无人机对特定目标的动态跟踪,需要两个模块的协同作用:目标检测模块和目标跟踪模块。其中目标检测模块负责检测跟踪对象所在位置,并将检测结果传输到目标跟踪模块,以辅助目标跟踪模块实现稳定的动态目标跟踪,目标跟踪模块用于实时更新跟踪对象的位置变化,并回传信息以便进行无人机的飞行控制,流程图如图3所示。
图3 流程图
目标检测算法基于YOLO v3[14],其主要功能是检测视频中的对象,并找到对象所在位置(即提取边界框)。目标检测算法接受2D图像作为输入,输出为检测到的边界框的坐标列表。
YOLO v3在进行对象类别预测时,使用独立的logistic分类器替代softmax分类器,使得YOLO v3在分类上具有更好的性能,logistic分类器公式:
本文在YOLO v3的基础上,进行了如下改进:
(1)使用Keras重新检测网络。
(2)输出检测到的对象所在包络矩形的坐标列表(,,,),用于目标跟踪算法的跟踪框,提高目标跟踪的鲁棒性。
(3)将多个对象的检测更改为单个对象的检测,使得目标检测算法只检测单个对象,增加了算法的执行速度,也减少了检测出的其他对象对目标监测的干扰。
目标跟踪采用了KCF算法,KCF目标跟踪算法通过线性脊回归模型实时更新被跟踪对象,使用循环矩阵和内核函数减少计算的次数,这使得KCF目标跟踪算法达到了较快的速度。
通过循环矩阵的定义可知,式(7)为循环矩阵。
在进行目标跟踪之前,需要手动选择感兴趣区域(Region of Interest, ROI),选定后,目标跟踪算法会对ROI中的对象进行跟踪。
KCF算法存在的一个问题是:在算法运行过程中目标框的大小是固定的,而跟踪的物体的大小可能发生变化,这会导致跟踪框的漂移。本文的改进方案是在进行目标跟踪之前,先进行目标检测,使用检测到的对象所在的矩形框坐标列表代替跟踪框坐标,从而减少跟踪框的漂移。
本文在学校篮球场中进行无人机的跟踪实验:
(1)启动无人机飞行至一定高度,通过手持设备向无人机发送目标检测的指令,无人机对操场上的人群进行目标检测,并回传至手持设备进行显示。
(2)在手持端框选出跟踪的对象,并发送跟踪命令至无人机。
(3)无人机跟随跟踪对象进行移动。
图4 实验场景
如图5所示,蓝色矩形框为目标检测的结果,黄色矩形框为跟踪对象所在的跟踪框,无人机飞行过程中,能够检测到特定对象所在位置,并能够将检测结果与目标跟踪算法相结合,实现对目标的动态跟踪。
图5 无人机目标跟踪结果
为了检验无人机在跟踪过程中的稳定性,在篮球场实验的基础上,分别又进行了道路和室外停车场中无人机跟踪实验,跟踪结果如表1所示,无人机在目标跟踪过程中出现了较少的目标丢失,实现了较为稳定的目标跟踪。
表1 跟踪目标丢失情况
最后,对目标检测模块和目标跟踪模块的改进效果进行了分析:
(1)目标检测模块改进效果与分析
图6 目标检测结果
目标检测模块与目标跟踪模块的改进效果如图6所示,图6(a)是多目标检测,使用Keras重写的YOLO网络进行目标检测的结果,检测评价结果如下:
①花费时间:2.88s。
②按从左到右、从上到下顺序蓝色包络矩形中对象的置信度如图7(a)所示。
图7 (b)更改为单目标检测,检测评价结果如下:
①花费时间:2.56s。
②按从左到右、从上到下顺序蓝色包络矩形中对象的置信度如图6(b)所示。
改进效果分析:如上所示,基于Keras重写的YOLO v3网络,可以实现对场景中物体的检测,得到检测出的对象是相应物体的置信度,以及该物体所在位置坐标;在实现YOLO v3目标检测功能的同时,也便于在研究过程中定制所需的功能,可以更方便的与目标跟踪算法进行结合;将多类别的识别更改为单个类别,即只对人的识别,在一定程度上提高了算法的速度,检测时间对比如图7所示。
图7 速度对比折线图
(2)目标跟踪模块改进效果与分析
本文对单独的KCF目标跟踪算法以及结合了目标检测的KCF目标跟踪算法分别进行了测试:
图8 动态目标跟踪结果
单独的KCF目标跟踪算法,结果图片如图8(a)所示。结合了YOLO目标检测算法的KCF目标跟踪算法,结果图片如图8(b)所示。为了更好的显示效果,采用把目标检测算法的结果框值(,,,)做变换(+,+5,-10,-10)后作为目标跟踪的跟踪框,因此左边蓝色矩形框为目标检测结果框,黄色矩形框即为目标跟踪框。
改进效果分析:相比于单独的KCF目标跟踪算法,结合了YOLO目标检测算法的KCF算法可以减少跟踪过程中跟踪框的漂移,使得跟踪框与跟踪对象大小同步变化,减少了负样本的干扰,而且在一定程度上增加了跟踪目标丢失时找回跟踪目标的概率,达到更加稳定的目标监测效果。
本文设计了基于视觉的无人机跟踪系统,完成了无人机硬件系统的搭建及核心算法的改进,并对室外场景中的行人进行了动态的跟踪实验。首先,基于机载计算机,实现了无人机实时处理和分析视频数据,并融合改进的目标检测算法和目标跟踪算法,增加了目标跟踪的稳定性,实现了室外场景中无人机目标跟踪的稳定性。所设计的目标检测与跟踪算法虽然能够实现对特定目标稳定、动态的跟踪,但仍存在一定的不足,在跟踪过程中如果发生目标丢失,系统缺少找回丢失目标的完备方案,后续的研究将进一步解决这个问题。
[1]刘亚伟, 李小民, 陈为元.基于改进CamShift融合Kalman滤波的无人机目标跟踪研究[J].电光与控制, 2017(8):33-37.
[2]Song K C , Yan Y H , Chen W H , et al. Research and Perspective on Local Binary Pattern[J]. Acta Automatica Sinica, 2013, 39(6):730-744.
[3]Vo B N , Vo B T , Phung D . Labeled random finite sets and the bayes multi-target tracking filter[J]. IEEE Transactions on Signal Processing, 2014, 62(24):6554-6567.
[4]基于视频图像动态目标检测与跟踪算法的硬件实现研究[D].电子科技大学, 2012.
[5]Dong H , Shaorong X , Chao L I , et al. Target Detection and Tracking Based on ABCshift Algorithm[J]. Computer Engineering, 2011, 37(4):203-205.
[6]You Only Look Once: Unified, Real-Time Object Detection[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society, 2016.
[7]王黎, 陆慧娟, 叶敏超,等. Faster-RCNN的癌症影像检测方法[J].中国计量学院学报, 2018, v.29;No.90(02):30-35.
[8]Akcay S , Kundegorski M E , Willcocks C G , et al. Using deep Convolutional Neural Network architectures for object classification and detection within X-ray baggage security imagery.[J]. IEEE Transactions on Information Forensics & Security, 2018, PP(99):1-1.
[9]Du Juan. Understanding of Object Detection Based on CNN Family and YOLO (J). Journal of Physics Conference Series, 1004, 2018.
[10]姚红革, 郝重阳, 雷松则,等.序列图像中彩色目标跟踪的加权颜色分布方法[J].中国图象图形学报, 2018, 14(1):99-105.
[11]Output Constraint Transfer for Kernelized Correlation Filter in Tracking[J]. IEEE Transactions on Systems Man & Cybernetics Systems, 2016, 47(4):693-703.
[12]Zhou T , Zhu M , Zeng D , et al. Scale Adaptive Kernelized Correlation Filter Tracker with Feature Fusion[J]. Mathematical Problems in Engineering, 2017, 2017:1-8.
[13]Henriques, João F, Caseiro R, Martins P , et al. High-Speed Tracking with Kernelized Correlation Filters[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(3):583-596.
[14] Redmon J , Farhadi A . YOLOv3: An Incremental Improvement[J]. 2018.