CenterNet 代码阅读笔记二(Keras版本)

CenterNet 代码阅读笔记二(Keras版本)

前言

大家好!上篇博文主要整理了一下代码架构以及运行方法,这篇文章将重点阐述该版本CenterNet所采用的backbone模型–Hourglass Network!主要分析Hourglass网络的代码实现,依据代码绘制功能模块图,希望能为大家理解代码提供帮助。目前已经有很多优秀的介绍Hourglass网络基本原理的博文,因此本篇博文将不进行重复介绍,请参看论文或者博文。

论文:HourglassNet论文

博文1:(https://blog.csdn.net/wangzi371312/article/details/81174452)
博文2:(https://blog.csdn.net/u013841196/article/details/81048237)
博文3:(https://blog.csdn.net/shenxiaolu1984/article/details/51428392)

代码结构

本系列博文主要以“ctdet_image.py”代码为核心,分析基于CenterNet实现图像目标检测过程。代码如下图所示:

在这里插入图片描述
本篇博文将重点分析Hourglass Network的建立过程,即“HourglassNetwork()”函数。

hourglass.py

“HourglassNetwork()”函数的作用是为CenterNet建立一个完整的backbone模型,其具体实现在“hourglass.py”代码文件中,其主体函数为“HourglassNetwork()”:

在这里插入图片描述
CenterNet的backbone采用两个Hourglass Network的级联结构,每个hourglass模型通过"hourglass_module()"子函数进行建立,并且,第一个hourglass的输入为"pre()"的输出,第二个hourglass的输入为第一个hourglass输出进行一些后处理后获得,其整体实现框图如图所示:

在这里插入图片描述
其中包含了许多功能子函数:
"pre()"函数:
在这里插入图片描述
该代码实现框图可表示为:
在这里插入图片描述
以上框图包括2个基本函数模块"convolution()“和"residual()”,这两部分代码及其框图为:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中除了已经介绍的基本模块外,还包含代码中两个重要的实现模块,即"left_features"和"right_features",这两部分的实现模块如下所示:
在这里插入图片描述
在这里插入图片描述
以上是backbone网络建立相关的所有实现框图,整个流程已结合程序调试反复检验,可保证正确性,请大家放心使用。另外,所有框图均为原创,使用请注明引用,谢谢。

总结

从代码中可以看出,该版本CenterNet只有测试程序,没有训练过程。因此,并没有loss function,optimization等函数,Hourglass Network的建立也只是为了建立一个与现有backbone结构一模一样的模型,从而可以直接载入现有模型weights进行使用。本篇博文所分析的代码实现了backbone模型的建立以及其weights载入,并且为每一段模块函数绘制了实现框图,希望为大家进行代码学习提供帮助,后续内容会尽快更新,敬请关注。

https://github.com/see--/keras-centernet

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值