1.FastPolarMask:使用YOLO系列技巧的打造PolarMask
2.[AI达人特训营第三期] 基于PP-YOLOE-SOD实现遥感场景下的小目标检测
3.PPYOLOE解析第三弹——什么是anchor free
4.RT-DETR:又快又好的ViT系列模型,拉开ViT实时化的序幕!
5.综述一文看懂YOLO系列:YOLOV6、YOLOX、PPYOLO、PPYOLOE、winrar源码编译YOLOV5
6.代码用PP-Yoloe跟踪水下游动的鱼类,实现智慧渔业!
FastPolarMask:使用YOLO系列技巧的打造PolarMask
本文探讨了将实例分割算法应用至边缘设备并实现实时运行与可接受精度的可行性。首先,我们回顾了目标检测模型在边缘设备上的卓越表现,并指出YOLO系列已经发展至V8,性能与实时性几乎达到极致。
在探讨不同流派中,我们选择了单阶段算法,如Yolact、SOLO等,以及使用动态卷积和PolarMask等轮廓方法。经过分析,发现Yolact系列难以满足实时性和精度需求。因此,我们转向基于轮廓的方法,并最终选择了PolarMask。
PolarMask通过转换至极坐标系,回归固定角度下中心与mask边缘的距离,简化了后处理过程。尽管其生成的mask边缘可能不够精细,但对于大多数任务,只需要mask的坐标点即可。因此,facenet 源码解读针对特定任务优化实例分割算法,使其在边缘设备上达到与目标检测相似的性能,具有一定的价值。
为了实现这一目标,我们选择了MMDetection作为开发框架,并复现了PolarMask算法。在检测算法方面,我们选择了PPYOLOE作为基础,并结合MMDetection复现了YOLOX,以适应PolarMask的需求。为了优化整个流程,我们调整了label assignment部分,适应了基于轮廓的方法。
我们提出了两种初步方案以判断anchor point与多边形的关系,并选择了一种更高效的方法计算mask iou。在数据处理过程中,我们通过优化算法实现,减少了对循环的依赖,提高了效率。
Head部分,我们替换原有目标检测分支为mask reg分支,以适应PolarMask的算法需求。在性能方面,我们的模型在mask AP上达到了.1,与PPYOLOE-s相当,且纯网络推理速度相近。训练时间较长,但速度与精度的权衡使其在特定场景下具有实用性。
本文总结了该实例分割算法的上号源码实现过程,包括选择框架、复现实例分割算法、调整检测算法与label assignment,以及优化数据处理流程。尽管训练时间较长,但该方法提供了一种简单且高效的途径,将任意目标检测网络转换为实例分割算法,同时保持与原目标检测模型相近的性能。
[AI达人特训营第三期] 基于PP-YOLOE-SOD实现遥感场景下的小目标检测
AI达人特训营第三期在遥感场景下,小目标检测成为了研究的重点,PP-YOLOE-SOD技术为此提供了有效的解决方案。小目标检测在如视频监控、自动驾驶等领域具有广泛应用,且在遥感图像中由于物体大小和分辨率差异,检测难度增大。飞桨团队针对这一挑战,开发了PP-YOLOE-SOD,通过引入Transformer的全局注意力机制和基于向量的DFL算法,优化了模型对小目标的识别能力。
PP-YOLOE-SOD在模型设计上,与基础的PP-YOLOE相比,提升了在小目标检测(APsmall)上的性能。以COCO模型为例,训练和评估使用原图,输入尺度为x,通过8卡训练得到显著提升。数据预处理上,NWPU VHR-数据集是一个重要的资源,包含个高分辨率卫星图像,snappy源码 编译共标注了个对象实例,展示了模型训练所需的数据集介绍和配置调整。
模型训练和评估过程中,通过VisualDL进行可视化监控,确保模型性能。最后,模型导出和部署也提供了详细的指导,使得技术得以实际应用。吉康毅学员在导师周军的指导下,完成了这个基于PP-YOLOE-SOD的小目标检测项目,展示了AI在遥感场景中解决实际问题的能力。
PPYOLOE解析第三弹——什么是anchor free
经过YOLO系列的变迁,从最初的anchor-free到anchor-based,再到如今PP-YOLOE回归anchor-free,YOLOX和PP-YOLOE的路径似乎回到了起点。anchor-free的核心在于直接将目标框与特征图上的cell关联,避免了anchor带来的参数困扰。本文将详细介绍anchor-free的工作原理,并以PPYOLOE为例进行解析。
首先,理解anchor-free的基本概念。它在目标检测中,无需预先设定固定大小的anchor,而是直接在特征图上预测每个位置的物体位置和类别信息。这种方式与YOLOv1类似,但预测更加直观,类似于语义分割的像素级预测。
FCOS和YOLOX是两种代表性的anchor-free方法。FCOS通过密集预测,objdump 汇编 源码回归目标物体的长宽和类别信息,而YOLOX则是旷视科技基于YOLOv3的改进,其位置预测参数是中心点偏移和高宽预测。PP-YOLOE作为PP-YOLOv2的进化,同样采用anchor-free,其Head层输出左、右、上、下四个参数,用于计算最终的预测框。
以PPYOLOE为例,其预测过程涉及Head层的输出,包括类别预测(cls_score)和位置预测(reg_dist)。类别预测通过通道注意力和Sigmoid操作得出,位置预测则经过通道调整、reshape、sigmoid和Conv运算。然后,通过post_process函数,结合输入尺寸和缩放因子,将特征图尺寸的预测框调整回原始尺寸,并进行非极大值抑制,得到最终的检测结果。
通过实践,PPYOLOE展示了anchor-free方法的有效性和优势。后续的内容将探讨正负样本匹配等细节,逐步揭示PPYOLOE的完整架构。
RT-DETR:又快又好的ViT系列模型,拉开ViT实时化的序幕!
★★★ 本文源自AlStudio社区精品项目,点击此处查看更多精品内容 >>>
在本项目之前,我发布过一个项目名为 [AI达人特训营第三期]PPYOLOE遇上ViT助力铁路工人安全作业,感兴趣的小伙伴可以直接点进该链接去查看。在之前的项目中使用的是以 ViT-base 为 backbone 的 PPYOLOE 模型,mAP(0., point) 能够达到 .%,效果还是不错的,但是众所周知,ViT系列模型存在一个问题就是推理时延高,这极大地影响了ViT系列模型的落地应用,这也是我在该项目中提到的需要改进的点。
最近关注到了PaddleDetection新出的RT-DETR模型,根据论文给出的数据,能够达到实时检测的效果,在速度和精度上都超越了YOLO系列模型,我也是迫不及待地实践了一下。
整体情况如下:
单从本项目来看,mAP(0., point) 提升了 8. 的百分点,average FPS 提升了 4.4 个点,是一个非常喜人的提升。可以看出RT-DETR在精度和速度上都是有着显著的提升,因此大家也可以在自己的项目中尝试使用这个模型,看看是否能够达到更好的效果。
学习本项目过程中,你可能感兴趣的链接地址:
一、模型简介
RT-DETR由BackBone、混合编码器和带有辅助预测头的Transformer编码器组成。整体结构如下所示(来自原论文):
具体来说:
官方数据如下:
以上段落有部分摘自于官方发布的 超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!。
二、数据集简介
该数据集用于正确检测工人、他们的反光背心和安全帽。该数据集有张,其中包含三个标签:工人、反光背心和安全帽。 AI Studio链接
用途举例:
部分数据集如下:
三、数据预处理
Step: 解压数据集
Step: 将 txt 格式标注文件转换成 xml 格式标注文件,代码如下所示。
Step: 可视化转换结果,判断转换是否正确,代码如下所示。
部分可视化结果如下:
四、代码实现4.1 检测数据分析
该数据集总共包含 3 个标签,各类标签的数量分别为:
图像尺寸分析: 通过图像尺寸分析,我们可以看到该数据集的尺寸,均为 [, ]。
4.2 安装PaddleDetection4.3 数据集划分
首先安装PaddleX。
然后,我们通过 paddlex 中的 split_dataset 命令按照 0.9:0.1 的比例划分训练集和验证集。
4.4 模型训练
损失函数如图所示:
4.5 模型评估
通过如下命令在单个GPU上评估我们的验证集。
指标如下:
相比 [AI达人特训营第三期]PPYOLOE遇上ViT助力铁路工人安全作业使用的以 ViT-base 为 backbone 的 PPYOLOE 模型,mAP(0., point) 提升了 8. 的百分点,average FPS 提升了 4.4 个点。
4.6 模型推理
我们可以通过以下命令在单张GPU上推理文件中的所有。
部分可视化结果如下:
4.7 模型导出
Step. 导出模型
Step: 转换模型至ONNX
首先安装 Paddle2ONNX 和 ONNX。
然后转换模型。
五、ONNXRUNTIME部署示例
首先安装 ONNXRUNTIME。
接下来是我用 ONNXRUNTIME 写的一个 demo,案例比较简单,大家可以自行了解。在这我就不多赘述了。
可视化结果如下:
六、总结与提高
本项目是使用飞桨团队最新推出的 RT-DETR 模型来实现的。根据论文描述,模型可以达到实时检测的效果,个人认为该模型是 ViT 系列模型所取得的一个重大突破,揭开了 ViT 实时化的序幕。
相比 [AI达人特训营第三期]PPYOLOE遇上ViT助力铁路工人安全作业使用的以 ViT-base 为 backbone 的 PPYOLOE 模型,mAP(0., point) 提升了 8. 的百分点,average FPS 提升了 4.4 个点。
大家快来 GitHub 给 PaddleDetection 点个 Star 叭!
如果需要在你的研究中使用RT-DETR,请通过以下方式引用我们的论文:
此文章为搬运 原项目链接
综述一文看懂YOLO系列:YOLOV6、YOLOX、PPYOLO、PPYOLOE、YOLOV5
本文对比分析了国内大厂在YOLO系列中影响显著的实现方案,包括YOLOV6、YOLOX、PPYOLO、PPYOLOE、YOLOV5。以下是这些框架的关键技术点。
精度对比方面,从COCO验证集和测试开发集的AP值来看,YOLOV6的精度最高,接着是PPYOLOE、YOLOX和YOLOV5。这些精度的差异,反映了每个框架在优化和创新方面的差异。
在消融实验中,我们研究了每个项目中起作用的特技方案,有助于理解各个框架的改进之处。
具体技术对比如下:
对于YOLOX,改进包括解耦分类和回归头(+1.1)、数据增广(+2.4)、anchor-free(+0.9)、改进label assignment(+2.1+2.3)。
在YOLOV6的改进中,关键点包括解耦分类和回归头(+1.4)、anchor-free+simOTA(+1.3)、更强大的骨干模型(+3.6)、Efficient Decouled Head(+0.2)和训练个epoch(+0.5)。
PP-YOLOE基于PP-YOLOv2改进,虽然其改进细节未详述,但可以看出它继承了PP-YOLOv1和PP-YOLOv2的优化策略,包括基于YOLOV3的改进。
本文未深入探讨PP-YOLOE的具体改进,但可参阅相关代码和文档以获取更详细信息。每个框架都有其独特的创新点和技术贡献,这些对比为理解YOLO系列的发展提供了参考。
代码用PP-Yoloe跟踪水下游动的鱼类,实现智慧渔业!
本文源自AlStudio社区精品项目,点击此处查看更多精品内容 >>>
基于飞桨的智慧渔业捕捞计数装置,本文将详细介绍使用PP-Yoloe算法实现对水下游动鱼类的跟踪,提升渔业智慧化水平。
首先,我们引入了FishDataset作为数据集,其路径位于/home/aistudio/work/FishTracking/dataset/FishDataset。
接下来,正式开始训练过程。在准备工作完成后,我们将专注于模型训练。使用预测模型输出结果在work/FishTracking/output/ppyoloe_plus_crn_s_e_voc/。
特别注意,ReID模型训练在Paddle2.1上存在测试报错,当前仅支持使用动态图模式在Paddle2.0上进行训练。
配置文件fish_detection.yml中,包含了训练所需参数,如base_lr, schedulers, PPYOLOEHead配置等。训练指令为:python train.py --config /home/aistudio/work/FishTracking/configs/ppyoloe/voc/ppyoloe_plus_crn_s_e_voc.yml
对于ReID模型的训练,使用指令:python train_embedding_model.py --data-dir [reid数据集根目录] --lr [学习率,默认为0.] --epochs [训练轮数] --batch-size [批次大小] --save-dir [模型保存路径,默认为/output/reid_model]
在模型预测阶段,确保生成的视频路径为mp4格式,并进行可视化,以检验模型效果。指令如下:[预测结果可视化指令]
至此,智慧渔业中使用PP-Yoloe跟踪鱼类的全过程结束,期待这一技术为渔业管理带来实质性的改进。