| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> YOLOv5改进之十:损失函数改进为SIOU -> 正文阅读 |
|
[人工智能]YOLOv5改进之十:损失函数改进为SIOU |
?前 言:作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv5的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者搞工程项目的朋友需要达到更好的效果提供自己的微薄帮助和参考。之前改进为EIOU,有兴趣的朋友可以看看,YOLOv5改进之七:损失函数改进 - 知乎 解决问题:YOLOv5采用CIOU损失函数,传统的目标检测损失函数依赖于边界框回归指标的聚合,例如预测框和真实框(即 GIoU、CIoU、ICIoU 等)的距离、重叠区域和纵横比。然而,迄今为止提出和使用的方法都没有考虑到所需真实框与预测框之间不匹配的方向。这种不足导致收敛速度较慢且效率较低,因为预测框可能在训练过程中“四处游荡”并最终产生更差的模型。针对以上问题,采用SIOU损失函数替换原损失函数。 原理: 原文:SIoU Loss: More Powerful Learning for Bounding Box Regression 链接:https://doi.org/10.48550/arXiv.2205.12740?doi.org/10.48550/arXiv.2205.12740 SIoU损失函数由4个Cost函数组成:
2.1 Angle cost 添加这种角度感知 LF 组件背后的想法是最大限度地减少与距离相关的“奇妙”中的变量数量。基本上,模型将尝试首先将预测带到 X 或 Y 轴(以最接近者为准),然后沿着相关轴继续接近。 ? 编辑切换为居中 添加图片注释,不超过 140 字(可选) 2.2 Distance cost 考虑到上面定义的Angle cost,重新定义了Distance cost 2.3 Shape cost Shape cost的定义为: 2.4 IoU Cost IoU cost的定义为: 其中, 2.5 SIoU Loss 最后,回归损失函数为: 方 法: 第一步修改metrics.py,增加SIOU。
第二步:将loss.py中边框位置回归损失函数改为Siou。 iou = bbox_iou(pbox.T, tbox[i], x1y1x2y2=False, SIoU=True) # iou(prediction, target) 结 果: 不同模型与 mAP@0.5:0.95 的推理时间。显然,Scylla-Net 的 mAP 值较高,而模型推理时间远低于比较模型的推理时间。 预告一下:下一节将继续分享YOLOv5改进之十一——主干网络C3替换为轻量化网络MobileNetV3。有兴趣的朋友可以关注一下我,有问题可以留言或者私聊我哦 PS:损失函数的改进的方法不仅仅是适用改进YOLOv5,也可以改进其他的YOLO网络,比如YOLOv4、v3等。 最后,希望能互粉一下,做个朋友,一起学习交流。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:38:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |