一种基于yolov3-tiny的航拍车辆检测方法
文献发布时间:2023-06-19 09:46:20
技术领域
本发明属于图像处理领域,具体涉及一种基于yolov3-tiny的航拍车辆检测方法。
背景技术
随着经济技术的发展,基于高空图像的目标检测技术已经越来越受到人们的关注。
目前,目标检测主要分为基于传统机器学习的算法和基于深度学习的算法,而基于深度学习的目标检测在近些年突飞猛进,并取得了不错的效果。基于深度学习的目标检测算法主要分为两类:One-stage算法和Two-stage算法。Two-stage目标检测算法先进行区域生成(region proposal,RP)(一个有可能包含待检物体的预选框),再通过卷积神经网络进行样本分类。常见的Two-stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。One-stage算法支持端到端的训练,不用RP,直接在网络中提取特征来预测物体分类和位置。常见的One-stage目标检测算法有:OverFeat、YOLO、SSD等。
One-stage算法中,YOLO系列的目标检测算法性能较好,而yolov3和yolov3-tiny分别在精度和速度上有着极佳的表现。yolov3的主干网使用了darknet53,其具有53层卷积层且引入了残差块,同时还引入了FPN架构实现多尺度检测。而yolov3-tiny为了提高速度,在yolov3算法的基础上去掉了一些特征层,并且只保留了13x13和26x26两个尺度的预测分支,在精度上有一定的损失但是速度提升很大。
经典的yolov3-tiny算法的结构如图1所示。Yolov3-tiny采用轻量级主干网:8个卷积层以及5个下采样层组合而成。通过主干网对输入图像进行特征提取,再通过两个不同的预测分支再不同尺度(分辨率)上对提取到的特征进行再卷积,最后得到预测用的特征图,在图上预测出目标的位置与类别。其中,26x26分辨率的特征图融合了来自13x13分辨率的深层次特征,加强了其高维抽象语义。
yolov3算法虽然比two-stage算法快很多,但是其backbone darknet-53仍然较为庞大,包含53层网络且需要在3个尺度上进行结果预测,检测速度仍然难以达到实际运用的需求;而yolov3-tiny算法的backbone只包含了较少的conv层和pool层,且只在2个尺度上进行结果预测,因此检测速度极快,在实际运用领域具有较高的优先权。但是,航拍图像中的车辆往往是小目标,在图像中占据很小的面积,无论是yolov3还是yolov3-tiny针对小目标的检测都存在精度较低的问题,尤其是yolov3-tiny为了速度牺牲了较多的精度。因此,目前尚没有一种可靠性高、实用性好且精度较高的算法,能够实现较好的航拍车辆检测。
发明内容
本发明的目的在于提供一种可靠性高、实用性好且精度较高的基于yolov3-tiny的航拍车辆检测方法。
本发明提供的这种基于yolov3-tiny的航拍车辆检测方法,包括如下步骤:
S1.获取原始的航拍图像数据;
S2.将步骤S1获取的原始的航拍图像数据转换为xml文件数据;
S3.构建改进型yolov3-tiny航拍车辆检测网络;
S4.采用步骤S2得到的xml文件数据,对步骤S3构建的改进型yolov3-tiny航拍车辆检测网络进行训练,从而得到航拍车辆检测模型;
S5.采用步骤S4训练得到的航拍车辆检测模型,对实际获取的航拍图像进行车辆检测,从而完成航拍车辆检测。
步骤S1所述的原始的航拍图像数据,具体为采用Tesla100数据集。
步骤S2所述的将步骤S1获取的原始的航拍图像数据转换为xml文件数据,具体为选择原始航拍图像的vedai数据集的彩色图像部分,把图片对应的标签从txt文本中浮点比例格式转换为voc2007数据集格式要求的xml文件。
步骤S2所述的将步骤S1获取的原始的航拍图像数据转换为xml文件数据,具体为采用如下步骤进行转换:
A.创建xml文件,并创建根标签
B.在
C.在
D.在
E.根据检测需要,将代号x1~x4中取最大值写入
其中原始txt文件格式为:
(x y o c e oc x1 x2 x3 x4 y1 y2 y3 y4);
xml文件格式为:
(width height depth name xmin ymin xmax ymax);
其中x为目标中心横坐标;y为目标中心纵坐标;o为目标方向;c为目标类别;e为目标完整标志;oc为目标遮挡标志;x1~x4为目标4个角的横坐标;y1~y4中为目标4个角的纵坐标。
步骤S3所述的构建改进型yolov3-tiny航拍车辆检测网络,具体为采用如下步骤构建改进型yolov3-tiny航拍车辆检测网络:
针对原始的yolov3-tiny检测网络:
将第4个、第5个和第8个卷积层输出的通道数压缩至128;
将网络的初始分辨率从416*416提升至512*512;
在yolov3-tiny检测网络的主干网上加入Bifpn特征金字塔;
在64*64分辨率的特征图上增加新的预测分支;
采用upsample-block上采样结构作为新的上采样层;
采用如下算式作为置信度模型:
式中λ
所述的在64*64分辨率的特征图上增加新的预测分支,具体为在BiFPN结构最顶部的最后一层网络添加一个卷积核尺度为1、步长为1、卷积核数量为18的卷积层进行通道压缩,使得输出变为64*64*18后再进行输出。
本发明提供的这种基于yolov3-tiny的航拍车辆检测方法,通过对现有的yolov3-tiny检测网络进行改进和优化,实现了航拍车辆的精准检测,而且可靠性高、实用性好。
附图说明
图1为现有的yolov3-tiny算法的结构示意图。
图2为本发明方法的方法流程示意图。
图3为本发明方法的改进型yolov3-tiny航拍车辆检测网络的网络示意图。
图4为本发明方法的改进型yolov3-tiny航拍车辆检测网络的Bifpn特征金字塔的结构示意图。
图5为本发明方法的改进型yolov3-tiny航拍车辆检测网络中的上采样结构的结果示意图。
图6为本发明方法的检测效果示意图。
具体实施方式
如图2所示为本发明方法的方法流程示意图:本发明提供的这种基于yolov3-tiny的航拍车辆检测方法,包括如下步骤:
S1.获取原始的航拍图像数据;具体为采用Tesla100数据集;
S2.将步骤S1获取的原始的航拍图像数据转换为xml文件数据;具体为选择原始航拍图像的vedai数据集的彩色图像部分,把图片对应的标签从txt文本中浮点比例格式转换为voc2007数据集格式要求的xml文件;
在具体实施时,可以采用如下步骤进行转换:
A.创建xml文件,并创建根标签
B.在
C.在
D.在
E.根据检测需要,将代号x1~x4中取最大值写入
其中原始txt文件格式为:
(x y o c e oc x1 x2 x3 x4 y1 y2 y3 y4);
xml文件格式为:
(width height depth name xmin ymin xmax ymax);
其中x为目标中心横坐标;y为目标中心纵坐标;o为目标方向;c为目标类别;e为目标完整标志;oc为目标遮挡标志;x1~x4为目标4个角的横坐标;y1~y4中为目标4个角的纵坐标;
S3.构建改进型yolov3-tiny航拍车辆检测网络(如图3所示);具体为采用如下步骤构建改进型yolov3-tiny航拍车辆检测网络:
针对原始的yolov3-tiny检测网络:
将第4个、第5个和第8个卷积层输出的通道数压缩至128,从而减少计算量;
将网络的初始分辨率从416*416提升至512*512;
在yolov3-tiny检测网络的主干网上加入Bifpn特征金字塔;Bifpn特征金字塔的原理为:通过从主干网的不同特征层提取特征,并对其进行从上到下(分辨率从大到小)再从下到上(分辨率从小到大)的融合与特征提取;Bifpn特征金字塔如图4所示:图中P
基于小目标检测的需求与Bifpn的结构特征,在64*64分辨率的特征图上增加新的预测分支;具体为在BiFPN结构最顶部的最后一层网络添加一个卷积核尺度为1、步长为1、卷积核数量为18的卷积层进行通道压缩,使得输出变为64*64*18后再进行输出;采用upsample-block上采样结构作为新的上采样层;upsample-block上采样结构如图5所示(图3中的ub模块):其中conv为卷积层,upsample为nearest上采样层;deconv为反卷积层;
采用如下算式作为置信度模型:
式中λ
S4.采用步骤S2得到的xml文件数据,对步骤S3构建的改进型yolov3-tiny航拍车辆检测网络进行训练,从而得到航拍车辆检测模型;
S5.采用步骤S4训练得到的航拍车辆检测模型,对实际获取的航拍图像进行车辆检测,从而完成航拍车辆检测。
通过图6可以看到,本发明方法能够较好的、精确的对航拍图像中的车辆进行检测,而且效果较好。
本发明方法在Tesla100上进行训练和测试,其效果如下表1所示:
表1测试对比效果示意表
通过表1可以看到,本发明网络无论是在map(平均精准度)、速度(帧/s)还是参数体量大小上都明显优于yolov3,同时在速度近乎相同的情况下比yolov3-tiny的map高出9.7%,参数体量约减小11%。
- 一种基于yolov3-tiny的航拍车辆检测方法
- 一种基于改进的yolov3-tiny网络的交通标识检测方法