陶磊等:基于YOLOv3的无人机识别与定位追踪 465 坐标定位提供必要的输入信息. 60 YOLOv3 YOLOv3用于检测每一帧图像中的无人机,预 ·Others 同 测包含无人机的边界框和每个边界框的置信度, 56 以此来获取无人机在图像中的位置.根据预测框 相对于图像中心的位置偏差,来调整摄像头的方 52 回 向,然后根据两个或多个摄像头的参数来进行坐 0 标解算获取无人机的相对坐标 48 46 2.1Y0L0v3 回 目前为止,YOLO总计发布了三代算法,第一代 20 406080100120140160180 Inference time/ms YOLO的性能是低于SSD算法的,第二代YOLOv22 图1 YOLOv3的运行速度明显快于其他可比的目标检测算法4 在第一代的基础上增加了Batch normalization(批 Fig.1 YOLOv3 runs significantly faster than other detection methods 量归一化)、Dimension clusters(维度聚类)、Multi-. with comparable performance Scale training(多尺度训练)等优化手段,速度与准 确度都有了较大的提升,第三代YOLOv3则在第 YOLOv3的网络结构进行修改,YOLOv3网络有 二代的基础上使用了残差模型和FPN(Feature 53个卷积层,图2是YOLOv3的网络结构示意图. pyramid networks,,特征金字塔网络)架构,性能上 基于检测的目标种类,需要修改三个yolo预 有了进一步的提升,YOLOv3是目前效果最好的 测层之前的卷积层的滤波器数量: 目标检测算法之一,其应用范围也比较广泛.图1 filters =3 x(classes+5) (1) 是YOLO系列算法与其它目标检测算法的性能比 本文中需检测三种不同类型的无人机,故 较,所有算法均在相同平台上测试,测试集为 classes为3,将三个YOLO层之前的卷积层的滤波 COCO数据集P叫,mAP(Mean average precision,平均 器数量均修改为24. 准确度)为算法性能的衡量指标 2.2PID控制二轴云台相机 YOLOv3在VOC2007数据集上的评测有着卓越 二轴云台相机,如图3(a)所示.该相机的作用 的表现,可实现80种物体的实时目标检测.在本 在于控制摄像头移动以保持目标在视频中央.控 文的应用中.所使用的YOLOv3模型基于tensorflow 制模块是一个二轴云台,具有两个舵机,一个舵机 (谷歌深度学习框架)实现,只要训练YOLOv3模 负责控制摄像头左右移动,另一个控制摄像头上 型使其实现对无人机的检测.训练之前,需要对 下移动,每个舵机都具有180°的调节范围,控制效 Type Filters Size Output Predict three Convolutional 32 3×3 416×416 Convolutional Convolutional Conv2d Convolutional 64 3×3/2 208×208 set 3×3 1×1 Convolutional 32 1×1 1× Convolutional 64 1×1 Concatenate Residual 208×208 Convolutional IxI Convolutional 128 3x3/2 104×104 Up sanpling Convolutional 64 1×1 2× Convolutional 128 3×3 Convolutional Convolutional Residual 104×104 3×3 1×1 Predict two Convolutional 256 3x3/2 52×52 Convolutional 128 1×1 Convolutional Convolutional Conv2d Convolutional set 1×1 8× 3×3 1×1 Convolutional 256 3×3 Residual 52×52 Concatenate Convolutional Convolutional 256 3x3/2 26×26 3×3 Convolutional 256 1×1 Up sanpling 8× Convolutional 512 3×3 Convolutional 26×26 1×1 Convolutional Convolutional 1024 3x3/2 13×13 1×1 Convolutional 512 IxI Predict one + Convolutional 1024 3×3 Convolutional Convolutional Conv2d 13×13 set 3×3 1×1 图2 YOLOv3网络结构 Fig.2 YOLOv3 network structure坐标定位提供必要的输入信息. YOLOv3 用于检测每一帧图像中的无人机,预 测包含无人机的边界框和每个边界框的置信度, 以此来获取无人机在图像中的位置. 根据预测框 相对于图像中心的位置偏差,来调整摄像头的方 向,然后根据两个或多个摄像头的参数来进行坐 标解算获取无人机的相对坐标. 2.1 YOLOv3 目前为止,YOLO 总计发布了三代算法,第一代 YOLO 的性能是低于 SSD 算法的,第二代 YOLOv2 在第一代的基础上增加了 Batch normalization(批 量归一化)、Dimension clusters(维度聚类)、MultiScale training(多尺度训练)等优化手段,速度与准 确度都有了较大的提升,第三代 YOLOv3 则在第 二代的基础上使用了残差模型 和 FPN( Feature pyramid networks,特征金字塔网络)架构,性能上 有了进一步的提升. YOLOv3 是目前效果最好的 目标检测算法之一,其应用范围也比较广泛. 图 1 是 YOLO 系列算法与其它目标检测算法的性能比 较 ,所有算法均在相同平台上测试 ,测试集 为 COCO 数据集[21] ,mAP(Mean average precision,平均 准确度) 为算法性能的衡量指标. YOLOv3 在 VOC2007 数据集上的评测有着卓越 的表现,可实现 80 种物体的实时目标检测. 在本 文的应用中,所使用的 YOLOv3 模型基于 tensorflow (谷歌深度学习框架)实现,只要训练 YOLOv3 模 型使其实现对无人机的检测. 训练之前,需要对 YOLOv3 的网络结构进行修改 , YOLOv3 网络有 53 个卷积层,图 2 是 YOLOv3 的网络结构示意图. 基于检测的目标种类,需要修改三个 yolo 预 测层之前的卷积层的滤波器数量: filters =3×(classes+5) (1) 本文中需检测三种不同类型的无人机 , 故 classes 为 3,将三个 YOLO 层之前的卷积层的滤波 器数量均修改为 24. 2.2 PID 控制二轴云台相机 二轴云台相机,如图 3(a)所示. 该相机的作用 在于控制摄像头移动以保持目标在视频中央. 控 制模块是一个二轴云台,具有两个舵机,一个舵机 负责控制摄像头左右移动,另一个控制摄像头上 下移动,每个舵机都具有 180°的调节范围,控制效 60 58 56 54 52 50 48 46 44 20 40 60 80 100 Inference time/ms mAP 120 140 160 180 YOLOv3 Others B C D E F G Method mAP-50 Time/ms [B]SSD32 I 45.4 61 [CIDSSD321 46.1 85 [D]R-FCN 51.9 85 [E1SSD513 50.4 125 [F]DSSD513 53.3 156 [G]FPN FRCN 59.1 172 YOLOv3-320 51.5 22 YOLOv3-416 55.3 29 YOLOv3-608 57.9 51 图 1 YOLOv3 的运行速度明显快于其他可比的目标检测算法[14] Fig.1 YOLOv3 runs significantly faster than other detection methods with comparable performance[14] Type Convolutional 32 3×3 416×416 Convolutional 64 3×3/2 208×208 1× Convolutional 32 1×1 Convolutional Residual 64 1×1 208×208 Filters Size Output Convolutional set Convolutional set Concatenate Convolutional 3×3 Convolutional 128 3×3/2 104×104 2× Convolutional 64 1×1 Convolutional Residual 128 3×3 104×104 Convolutional 256 3×3/2 52×52 8× Convolutional 128 1×1 Convolutional Residual 256 3×3 52×52 Convolutional 256 3×3/2 26×26 8× Convolutional 256 1×1 Convolutional 512 3×3 26×26 Convolutional 1024 3×3/2 13×13 4× Convolutional 512 1×1 Convolutional 1024 3×3 13×13 Up sanpling Convolutional 1×1 Predict three Conv2d 1×1 Convolutional set Concatenate Convolutional 3×3 Convolutional 1×1 Up sanpling Convolutional 1×1 Convolutional 3×3 Convolutional 1×1 Convolutional 3×3 Convolutional 1×1 Conv2d 1×1 Convolutional set Convolutional 3×3 Predict two Predict one Conv2d 1×1 图 2 YOLOv3 网络结构 Fig.2 YOLOv3 network structure 陶 磊等: 基于 YOLOv3 的无人机识别与定位追踪 · 465 ·