MMDetection的FCOS算法fcos_head注释
由于不知道如何发布代码,复制粘贴不太好看(起码我不喜欢看,哈哈),所以笔者再次便采取截图的形式。
---------------------------------------------------------------------------------------------------------------------------
首先进行各种包的导入,这里也不能忽视,得稍微看一眼。
-----------------------------------------------------------------------------------------------------------------------
随后进行head头的注册,不了解注册机制的去看看mmdetection官网哈!在初始化阶段进行各种形参的设置。
---------------------------------------------------------------------------------------------------------------------------
这里注意下_init_layers()函数,在这里便进行调用,进行一些卷积的初始化。
---------------------------------------------------------------------------------------------------------------------
卷积初始化便是构造各种卷积,这种写法大家可以进行模仿。
------------------------------------------------------------------------------------------------------------------------
然后便是前向传播阶段,其实前向传播很简单,就是分类、回归分支,用前面构造好的卷积,一次性进行计算就好了。对了,multi_apply机制也是mmdetection很常用的,大家可以自行百度一下。
---------------------------------------------------------------------------------------------------------------------------
最复杂的loss终于来了!这里featmap_size能得到 (H W),后面会用到。-2表示最后两个。
--------------------------------------------------------------------------------------------------------------------------
因为时anchor free,所以这里不会调用get_anchor,转而调用get_points了,为的就是得到featmap上的每一个点,其实原理和anchor base一样,这里得到了很多个点。
------------------------------------------------------------------------------------------------------------------
这里我把get_points的函数拿出来,最终返回的是每个点的坐标。
-------------------------------------------------------------------------------------------------------------------------
随后进行fcos_target得到gt_bbox的标签(这里的标签也都加了索引,代表正负样本)和bbox_targets(这个表示中心点到四条边的距离)!其实这里是文中的创新点,大家一定要仔细看。
------------------------------------------------------这里单独拿出来, 主要算法在self.fcos_target_single。
-------------------------------------------------------------------------------------------------------------
返回的是前面提到过的label和targets!这里可能注释的不是很仔细,以后有时间我再搞搞啦,哈哈哈哈哈哈。大家有问题也可以评论。
-------------------------------------------------------------------------------------------------------------------
最难的地方已经过去了,接下来就是要计算损失了。计算损失,需要把预测的和gt均permute到相同的维度(要计算的部分维度一定要相同)
---------------------------------------------------------------------------------------------------------------
把前面的量处理好了之后,这里就是进行损失计算 。没什么好说的。
--------------------------------------------------------------------------------------------------------------------
以上,讲的主要是训练部分的代码,有空我再完善一下!大家有什么疑惑可以评论,反正是一起学习!
MMDetection的FCOS算法fcos_head注释相关推荐
- 粒子群算法(PSO)——Java实现PSO算法(详细注释) 优化算法
粒子群算法原理: https://blog.csdn.net/daaikuaichuan/article/details/81382794 代码||注释||结果 package PSO;/** Tar ...
- 目标检测论文阅读:FCOS算法笔记
标题:FCOS: Fully Convolutional One-Stage Object Detection 会议:ICCV2019 论文地址:https://ieeexplore.ieee.org ...
- 中国象棋程序的设计与实现(十二)--棋盘绘制算法(尽管注释非常详细,完全理解仍有难度)
上几篇中,我们详细介绍了,棋盘类的定义和关键属性,简要介绍了棋盘绘制算法的骨架. 本篇,我们将详细解读棋盘绘制算法的每一个细节. 强烈建议,大家结合文章末尾的"棋盘截图"来思考绘制 ...
- 4012最长的最短路径的求解(C++,迪杰斯特拉算法,注释全,附迪杰斯特拉算法详解文章)
描述 设计一个算法,求图G中距离顶点v的最短路径长度最大的一个顶点. 输入 多组数据,每组数据m+2行.每组数据第一行为两个整数n和m,代表有n个顶点m条路.顶点编号为1到n.第二行到第m+1行每行有 ...
- java象棋代码注释_中国象棋程序的设计与实现(十一)--棋盘绘制算法(尽管注释非常详细,完全理解仍有难度)...
上几篇中,我们详细介绍了,棋盘类的定义和关键属性,简要介绍了棋盘绘制算法的骨架. 本篇,我们将详细解读棋盘绘制算法的每一个细节. 强烈建议,大家结合文章末尾的"棋盘截图"来思考绘制 ...
- 【JAVA】经典排序算法,注释详细+可直接运行
package com.example.demo.server;import org.junit.Test;import java.util.Arrays;/*** 十大排序算法*/ public c ...
- 很容易理解的C语言快速排序算法(完整注释+完整输出)
#include <stdio.h>void quickSort(int arr[], int low, int high)//arr是传进来的数组,low和high是两个指针的预定值 { ...
- C/C++实现如下 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++)...
from:http://www.cnblogs.com/architect/archive/2009/05/06/1450489.html //归并排序中之并 //Updated by zivsoft ...
- 二分查找算法实例注释
/** bs.cpp** Created on: 2015年4月14日* Author: judyge*/#include <stdio.h> #include <iostream& ...
最新文章
- SQL 利用merge 同步数据库之间表的数据
- 查看Linux系统中某目录的大小
- Python实现微信防撤回
- torch中tensor的普通索引以及index_select()
- 怎么打断点_搞笑段子: 有次相亲, 双方父母都在, 我坐下就给自己点了支烟
- (数据结构与算法)数组模拟队列和环形队列
- CF1066F Yet another 2D Walking
- WPF DataGrid 在Header中显示行号
- LeetCode Longest Common Prefix
- Linux Tomcat9 控制界面及管理配置
- 那款软件可以测试平板电脑性能,性能测试和应用体验
- mysql添加字段语句_mysql增加字段 mysql数据库更新字段语句
- 阻焊机器人系统_点焊机器人
- 5+API实现微信分享功能
- 由于找不到MSVCR100.dll,无法继续执行代码解决方法
- JS中利用AJAX调用淘宝API获取网络时间的方法
- HTC Desire Z刷recovery刷机教程
- 2019烟台计算机副高职称报名时间,烟台市公共企事业单位信息公开 政策文件 2019年度职称评审工作日程安排...
- 全球CORS网 部分站点数据下载链接
- 【数据结构】图1——图的基本概念和术语、类型定义