MMDetection的FCOS算法fcos_head注释

由于不知道如何发布代码,复制粘贴不太好看(起码我不喜欢看,哈哈),所以笔者再次便采取截图的形式。

 

---------------------------------------------------------------------------------------------------------------------------

MMDetection的FCOS算法fcos_head注释_第1张图片

首先进行各种包的导入,这里也不能忽视,得稍微看一眼。

-----------------------------------------------------------------------------------------------------------------------

MMDetection的FCOS算法fcos_head注释_第2张图片

 随后进行head头的注册,不了解注册机制的去看看mmdetection官网哈!在初始化阶段进行各种形参的设置。

---------------------------------------------------------------------------------------------------------------------------

MMDetection的FCOS算法fcos_head注释_第3张图片

这里注意下_init_layers()函数,在这里便进行调用,进行一些卷积的初始化。

---------------------------------------------------------------------------------------------------------------------

 MMDetection的FCOS算法fcos_head注释_第4张图片

卷积初始化便是构造各种卷积,这种写法大家可以进行模仿。

------------------------------------------------------------------------------------------------------------------------

 MMDetection的FCOS算法fcos_head注释_第5张图片

然后便是前向传播阶段,其实前向传播很简单,就是分类、回归分支,用前面构造好的卷积,一次性进行计算就好了。对了,multi_apply机制也是mmdetection很常用的,大家可以自行百度一下。

---------------------------------------------------------------------------------------------------------------------------

MMDetection的FCOS算法fcos_head注释_第6张图片 

最复杂的loss终于来了!这里featmap_size能得到 (H W),后面会用到。-2表示最后两个。

--------------------------------------------------------------------------------------------------------------------------

 

 因为时anchor free,所以这里不会调用get_anchor,转而调用get_points了,为的就是得到featmap上的每一个点,其实原理和anchor base一样,这里得到了很多个点。

------------------------------------------------------------------------------------------------------------------

MMDetection的FCOS算法fcos_head注释_第7张图片

这里我把get_points的函数拿出来,最终返回的是每个点的坐标。

-------------------------------------------------------------------------------------------------------------------------

 随后进行fcos_target得到gt_bbox的标签(这里的标签也都加了索引,代表正负样本)和bbox_targets(这个表示中心点到四条边的距离)!其实这里是文中的创新点,大家一定要仔细看。

------------------------------------------------------MMDetection的FCOS算法fcos_head注释_第8张图片这里单独拿出来, 主要算法在self.fcos_target_single。

-------------------------------------------------------------------------------------------------------------

MMDetection的FCOS算法fcos_head注释_第9张图片

 

返回的是前面提到过的label和targets!这里可能注释的不是很仔细,以后有时间我再搞搞啦,哈哈哈哈哈哈。大家有问题也可以评论。

-------------------------------------------------------------------------------------------------------------------

MMDetection的FCOS算法fcos_head注释_第10张图片

最难的地方已经过去了,接下来就是要计算损失了。计算损失,需要把预测的和gt均permute到相同的维度(要计算的部分维度一定要相同)

---------------------------------------------------------------------------------------------------------------

 MMDetection的FCOS算法fcos_head注释_第11张图片

把前面的量处理好了之后,这里就是进行损失计算 。没什么好说的。

--------------------------------------------------------------------------------------------------------------------

以上,讲的主要是训练部分的代码,有空我再完善一下!大家有什么疑惑可以评论,反正是一起学习!

 

 

 

你可能感兴趣的:(mmdetection,深度学习,人工智能)