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

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

    • 前言
    • 代码结构
    • decode.py
    • 总结

前言

大家好!上篇博文中主要介绍了CenterNet的backbone的建立与架构,这篇博文将介绍获得基于Hourglass Network的backbone模型后,运用CenterNet实现目标检测的原理。由于该代码只提供了检测部分,没有提供训练部分,因此,本篇博文的内容也只包含CenterNet检测实现部分。

代码结构

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

CenterNet 代码阅读笔记三(Keras版本)_第1张图片

本篇博文将重点分析CenterNet检测的实现过程,即“CtDetDecode()”函数。

decode.py

“CtDetDecode()”函数的具体实现在“decode.py”代码文件中,其主体函数为“CtDetDecode()”:

CenterNet 代码阅读笔记三(Keras版本)_第2张图片
该函数分别调用"_ctdet_decode()“函数,结合backbone模型的输出,最终获得目标检测结果及其模型,最终检测结果输出为左上角坐标”(_x1, _y1)",右下角坐标"(_x2, _y2)",分类结果概率"_scores"以及目标所属类别"_classes"。"_ctdet_decode()"函数代码说明如下所示:

CenterNet 代码阅读笔记三(Keras版本)_第3张图片
上述过程中如何获得目标的中心点坐标、目标的范围以及矫正偏移量是难点,作者也设计的非常的巧妙,充分利用了张量变化及运算。这部分详细推导过程将在CenterNet源码(pytorch版本)中进行介绍,这里不再展开。

总结

至此,CenterNet 代码阅读笔记(Keras版本)已全部更新完毕(这篇好像有点水~~)。下一阶段,我将对CenterNet源码进行学习,详细剖析CenterNet的训练过程,该过程才是整个算法的核心。同时,也会将学习心得记录下来,敬请期待。

代码原作者GitHub链接: https://github.com/see--/keras-centernet

你可能感兴趣的:(CenterNet 代码阅读笔记三(Keras版本))