乐趣区

关于目标检测:无人机巡检场景小目标检测与量化加速部署方案详解

明天为大家带来的剖析是有对于如何利用基于 PP-YOLOE-SOD 的小指标检测计划,实现无人机巡检疾速精确地检测出小指标的利用案例~

在社会活动和社会生产中,巡检是一个必不可少的环节。然而,传统的人工巡检形式存在效率低下、老本昂扬、平安危险大等问题,限度了巡检的成果和范畴。无人机巡检因其高效、灵便、平安的特点被越来越多的企业采纳。然而,如何在无人机巡检中疾速精确地检测出小指标 ,成为了该技术的重要难点之一。本文将介绍一种 基于 PP-YOLOE-SOD 的小指标检测计划, 并分享 应用 PaddleSlim 模型压缩工具和 OpenVINO 在 Intel x86 平台上部署减速 PP-YOLOE+ 系列模型。

  • 我的项目链接

https://aistudio.baidu.com/aistudio/projectdetail/5036782

无人机视角指标物示意

场景难点

  • 数据量和品质有余

在无人机巡检场景下,要获取大量的高质量数据是十分艰难的。此外,场景的复杂性和多变性也给数据采集和标注带来了很大的挑战。

  • 小指标检测难度大

无人机巡检场景中的小指标往往尺寸较小、形态简单,容易被周围环境烦扰而导致检测误差。

  • 模型精度受量化误差的影响大

指标检测交融了指标定位和指标分类两种工作,工作复杂度高,精度受量化的影响更大。

  • 部署效率较低

在理论利用中,模型的部署效率往往是一个重要的思考因素,特地是在无人机巡检等场景中,须要实时检测并及时反馈后果,而浮点模型因为计算量较大,推理性能不佳。

方案设计

如上剖析,无人机巡检场景下因为其视角较高、画面较大、指标物较小,故比拟适宜 小指标检测算法 。针对小指标检测难点,百度飞桨团队基于 PP-YOLOE+ 通用检测模型,从流程和算法上进行了改良,提出了一套 小指标专属检测器 PP-YOLOE-SOD (Small Object Detection)。

  • 点击文末 浏览原文 疾速体验

https://github.com/PaddlePaddle/PaddleDetection

对于 PaddleDetection 的技术问题欢送大家在 Github 提 issue,也欢送大家点 Star 反对咱们的工作!

PP-YOLOE-SOD 针对小指标有两种检测计划,别离是基于 切图拼图流程优化的小指标检测计划 以及基于 原图模型算法优化的小指标检测计划 。同时提供了数据集主动剖析脚本,只需输出数据集标注文件,便可失去数据集统计后果,辅助判断数据集是否是小指标数据集以及是否须要采纳切图策略,同时给出网络超参数参考值。综合思考 精确和时延 ,最终抉择 速度和精度较为均衡的基于原图的小指标检测计划。 如下图标红门路,整体算法时延以及算力要求更低。

小指标检测计划

性能调优

模型调优:

PP-YOLOE-SOD
基于原图的小指标检测计划 相比 PP-YOLOE 模型,PP-YOLOE-SOD 改良点次要包含 在 neck 中引入 Transformer 全局注意力机制 以及 在回归分支中应用基于向量的 DFL。

引入 Transformer 全局注意力机制

Transformer 在 CV 中的利用是目前钻研较为炽热的一个方向。最早的 ViT 间接将图像分为多个 Patch 并退出地位 Embedding 送入 Transformer Encoder 中,加上相应的分类或者检测头即可实现较好的成果。

ViT 结构图

咱们这里相似,次要退出了 Position Embedding 和 Encoder 两个模块,不同的是输出是最初一层特色图。

PP-YOLOE-SOD 的改良构造

基于向量的 DFL 回归算法

PP-YOLOE 将回归看作是一个散布预测工作,并在回归分支中应用 DFL。解决边界框不确定性问题,让网络疾速地聚焦到指标地位的邻近区域的散布中去。现有的 DFL 把回归范畴划分成 n 等份,预测后果落在每个小地位的概率,对后果求冀望作为最终回归的 box 坐标。在回归间隔时,用 softmax 将网络输入转换为概率,计算在 [0, … , reg_max] 上的概率和,示意在以后特色图上中心点到指标框四边间隔,其最大值应为 reg_max,后果乘以步长就能够映射回输出图尺寸上。然而该办法将 reg_max 视为标量,针对指标散布不同的数据集采纳的回归范畴是固定的,这就导致无奈兼顾大指标和小指标的检测精度。因为小指标的 box 框绝对较小,会呈现小指标框内没有检测到相应指标然而左近点可能满足需要的状况。

DFL 示意

因而,如上图,咱们将 DFL 回归范畴向量化,引入回归负半轴,依据不同数据集调整回归下限,缩小回归小指标时的噪声。同时用半径为 center_radius,以 gt 框的中心点为核心的先验框来辅助回归小指标检测框,通过 gt 框与先验框的并集来匹配指标,当指标中心点在 box 框内部但在先验框外部时,则能够用先验框进行回归,进步了对小指标的预测成果。最终在数据集上的测试精度如下所示:

数据集上的测试精度

量化策略:

模型主动压缩工具

针对 PP-YOLOE-SOD 模型,本文应用了 PaddleSlim 的主动压缩工具 ACT(Auto Compression Toolkit)。ACT 中的量化技术蕴含 离线量化 量化训练 两种量化策略。在对 PP-YOLOE-SOD 模型进行量化的时候会对具体的量化策略进行主动抉择。先运行离线量化,如果输入差别和原始模型差异较大,则转为应用量化训练对模型进行量化压缩。如果输入差别和原始模型差异不大,则应用离线量化超参搜寻进行量化精度调优。具体量化细节和过程欢送大家关注直播课。

ACT 中的量化策略

推理部署

OpenVINO 介绍

OpenVINO 作为 Intel 原生的深度学习推理框架,能够最大化地晋升神经网络在 Intel 平台上的执行性能,实现一次编写,任意部署的开发体验。OpenVINO 在 2022.1 版本后,就能够间接反对飞桨模型,大大晋升了模型在 Intel 硬件上的推理性能与部署便捷性,带来更高的生产效率,更广大的兼容性以及推理性能的优化。

OpenVINO 反对状况

OpenVINO 减速飞桨量化模型

从 OpenVINO 2022.1 发行版开始,OpenVINO 接口也能够间接读取加载飞桨模型到指定的硬件设施,省去了离线转换的过程,大大晋升了飞桨开发者在 Intel 平台上部署的效率。最新版 OpenVINO 集成了对飞桨的量化模型的反对,能够成倍进步飞桨量化模型的推理性能。

OpenVINO 减速飞桨量化模型

OpenVINO 性能调优

OpenVINO 2022.1 发行版中引入了全新的 PERFORMANCE_HINT 性能。用户只需指定推理工作需要即提早优先还是吞吐优先,compile_model 便能够主动进行相应的硬件参数配置,达到绝对较优的性能指标。

本我的项目的最终部署环境为 Intel x86 硬件平台设施。思考开发便捷性,本次示例应用 Python 部署开发环境。为了进一步提高模型的部署效率,咱们采纳了 OpenVINO 工具包对模型进行了部署。目前,OpenVINO 最新版曾经原生反对 PaddleSlim 生成的量化模型。通过应用该性能,咱们能够将 PP-YOLOE-SOD 量化模型转换为 OpenVINO 可用的 IR 格局。凭借 OpenVINO 对量化模型的高度交融和优化,能够将模型在 Intel 处理器上的推理速度进步 3 倍以上。在 AI Studio 中也提供了残缺的应用示例与开发阐明,可参考该教程疾速学习,并针对实际我的项目进行开发和集成。

部署 Demo 计划

退出移动版