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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> yolox的正负样本分配策略mmdet代码详解 -> 正文阅读

[人工智能]yolox的正负样本分配策略mmdet代码详解

以mmdet为例,正负样本分配的核心代码在YOLOXHead中的MlvlPointGenerator,SimOTTAssigner,PseudoSampler,_bbox_decode中,其中核心代码在SimOTTAssigner.

yolox是解耦头,输入fpn之后给出的是cls_score:(8,2,80,80),(8,2,40,40),(8,2,20,20),bbox_pred:(80,4,80,80),(80,4,40,40),(80,4,20,20),objectness:(80,1,80,80),(80,1,40,40),(80,1,20,20),3个特征图,每个特征图都有3个head,不再组装成一个长head。

1.MlvlPointGenerator.grid_prior

这里面不存在对每个网格生成anchor的操作,yolox是anchor-free的,这里面anchor的生成实际上是点的生成,一共生成了80*80+40*40+20*20=8400个网格点,或者叫大小为1的anchor,同fcos。

2._bbox_decode

对预测分支的预测值和前面生成的点做了组合。

3.YOLOXHead.SimOTTAssigner

yolox的核心,如何给8400个特征图上的点,原图上的框进行正负样本的分配

1.计算所有在gt bbox内部的anchor点的掩码is_in_gts_all;

2.利用center_radius阈值重新计算在gt bbox中心center_radius范围内的anchor点掩码is_in_centers_all;

3.两个掩码取并集得到在gt bbox内部或处于center_radius范围内的anchor点的掩码is_in_boxes_anchor,同时可以取交集得到每个gt bbox和哪些anchor点符合gt bbox内部和处于center_radius范围内的is_in_boxes_and_centers

若此时获取到is_in_gts_or_center:8400,is_In_boxes_and_center:1596,58

1.valid_mask是前面计算出的is_in_boxes_anchor,如果某个位置是True代表anchor点是前景即落在gt bbox内部或者在距离gt bbox中心center_radius半径范围内,这些True位置就是正样本候选点

2.利用valid_mask提取对应的预测信息,num_gt是58,一共提取了1596个候选预测位置,则每个gt bbox都会提取1596个候选位置

3.计算候选预测框和gt bbox的配对iou,然后加log和负数,变成iou的代价函数

4.计算候选框和gt bbox的配对分类代价,同时考虑了objectness预测分支,并且其分类cost在binary_cross_entropy前有开根号的训练trick,

5.is_in_boxes_and_center是(1596,58),如果某个位置是True表示anchor点落在gt bbox内部并且在距离gt bbox中心center radius半径范围内。在计算代价函数时,如果改预测点是False,表示不在交集内部,那么不太可能是候选点,所以给予一个非常大的权重100000,该操作可以保证每个gt bbox最终选择的候选点不会在交集外部

SimOTTAssigner.dynamic_k_matching

4.PseudoSampler.sample

5.loss

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:31:54  更:2022-03-15 22:33:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 15:31:49-

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