IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 关于SIoU的原理和代码实现(回顾IoU、GIoU、DIoU、CIoU) -> 正文阅读

[人工智能]关于SIoU的原理和代码实现(回顾IoU、GIoU、DIoU、CIoU)

论文:https://arxiv.org/pdf/2205.12740.pdf
代码实现(非官方):https://github.com/xialuxi/yolov5-car-plate/commit/aa41d1819b1fb03b4dc73e8a3e0000c46cfc370b
图片源自视频教程(这个大佬视频教程yyds):https://www.bilibili.com/video/BV1yi4y1g7ro?p=4

原理:

从最早的IoU到GIoU,再到DIoU和CIoU,现在出现了SIoU

L2损失与 IoU损失的比较请添加图片描述
GIoU损失

请添加图片描述
A代表蓝色的框,最大的矩形框。u代表GT和预测框的并集。

DIoU损失

在这里插入图片描述
图片一左侧的上面是GIoU,下面的是DIoU:其中黑色的代表anchor,蓝色的代表预测框,绿色的为GT框

在这里插入图片描述

CIoU损失

在这里插入图片描述
在这里插入图片描述

SIoU损失

再上面的基础上考虑了角度在这里插入图片描述
在论文中也重新定义了距离 cost和shape cost,
角度cost 定义如下:
在这里插入图片描述
这里我看的很奇怪的一点就是,这个α为啥带入到sin,又带入到反sin,这不是多此一举吗?σ就是两个框的中心距离呗。

距离cost 定义如下:
请添加图片描述
shape cost定义如下:
请添加图片描述
整的lost 定义:
请添加图片描述
还有很多细节没有分析、挖掘、探讨,这里只是草草的分享下,记录下。

代码实现:

!!!重要的事情说三遍,不是我实现的,不是我实现的,不是我实现的。来自于开头链接的大佬:

        if SIoU:    # SIoU Loss https://arxiv.org/pdf/2205.12740.pdf
            sigma = torch.pow(cw ** 2 + ch ** 2, 0.5)
            sin_alpha_1 = ch / sigma
            sin_alpha_2 = cw / sigma
            threshold = pow(2, 0.5) / 2
            sin_alpha = torch.where(sin_alpha_1 > threshold, sin_alpha_2, sin_alpha_1)
            # angle_cost = 1 - 2 * torch.pow( torch.sin(torch.arcsin(sin_alpha) - np.pi/4), 2)
            angle_cost = torch.cos(torch.arcsin(sin_alpha) * 2 - np.pi / 2)
            rho_x = ((b2_x1 + b2_x2 - b1_x1 - b1_x2) / cw) ** 2
            rho_y = ((b2_y1 + b2_y2 - b1_y1 - b1_y2) / ch) ** 2
            gamma = 2 - angle_cost
            distance_cost = 2 - torch.exp(-1 * gamma * rho_x) - torch.exp(-1 * gamma * rho_y)
            omiga_w = torch.abs(w1 - w2) / torch.max(w1, w2)
            omiga_h = torch.abs(h1 - h2) / torch.max(h1, h2)
            shape_cost = torch.pow(1 - torch.exp(-1 * omiga_w), 4) + torch.pow(1 - torch.exp(-1 * omiga_h), 4)
            return iou - 0.5 * (distance_cost + shape_cost)
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-08 19:03:35  更:2022-06-08 19:05:20 
 
开发: 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年12日历 -2024/12/30 1:46:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码