【转载】CenterNet代码阅读笔记一(Keras版本)

<div class="blog-content-box">
    <div class="article-header-box">
        <div class="article-header">
            <div class="article-title-box">
                <span class="article-type type-1 float-left">原</span>                <h1 class="title-article">CenterNet 代码阅读笔记一(Keras版本)</h1>
            </div>
            <div class="article-info-box">
                <div class="article-bar-top">
                                                                                                                        <span class="time">2019年07月13日 00:59:33</span>
                    <a class="follow-nickName" href="https://me.csdn.net/caikw62" target="_blank">caikw62</a>
                    <span class="read-count">阅读数 17</span>
                                                                        <span class="tags-box artic-tag-box">
                <span class="label">标签:</span>
                                                                <a class="tag-link" href="https://so.csdn.net/so/search/s.do?q=目标检测&amp;t=blog" target="_blank" data-track-click='{"mod":"popu_626","con":"目标检测"}'>目标检测                                                                    </a><a class="tag-link" href="https://so.csdn.net/so/search/s.do?q=CenterNet&amp;t=blog" target="_blank" data-track-click='{"mod":"popu_626","con":"CenterNet"}'>CenterNet                                                                    </a><a class="tag-link" href="https://so.csdn.net/so/search/s.do?q=深度学习&amp;t=blog" target="_blank" data-track-click='{"mod":"popu_626","con":"深度学习"}'>深度学习                                                    </a>
              </span>
                                                                                                            </div>
                <div class="operating">
                                    </div>
            </div>
        </div>
    </div>
    <article class="baidu_pl">
        <div class="article_content clearfix" id="article_content" style="height: 2382px; overflow: hidden;" data-track-click='{"mod":"popu_307","con":",https://blog.csdn.net/caikw62/article/details/95673125"}' data-track-view='{"mod":"popu_307","con":",https://blog.csdn.net/caikw62/article/details/95673125,"}'>
                                    <link href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css" rel="stylesheet">
                                        <div class="markdown_views prism-atom-one-dark" id="content_views">
                    <!-- flowchart 箭头图标 勿删 -->
                    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                        <path id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" stroke-linecap="round" d="M 5 0 L 0 2.5 L 5 5 Z" />
                    </svg>
                                            <p></p><div class="toc"><h3><a name="t0"></a>CenterNet 代码阅读笔记一(Keras版本)</h3><ul><ul><li><a href="#_2" target="_self" rel="nofollow">前言</a></li><li><a href="#_12" target="_self" rel="nofollow">几点说明</a></li><li><a href="#_22" target="_self" rel="nofollow">代码架构</a></li><li><a href="#_36" target="_self" rel="nofollow">代码运行</a></li><li><a href="#_44" target="_self" rel="nofollow">总结</a></li></ul></ul></div><p></p>
<h2><a name="t1"></a><a id="_2"></a>前言</h2>
<p>大家好!这篇博文将记录近期学习CenterNet模型(Keras版本)代码的收获,主要用于自己将来需要时查看,若能够为大家提供微薄帮助,将是本人莫大荣幸。</p>
<p>CenterNet是2019.4月刚提出的目标检测模型,号称目前准确率最高的算法(远超Yolov3)。由于理论较新,目前相关开源代码只有源码的Pytorch版本和第三方的Keras版本(若大家发现其他版本烦请告知,万分感谢)。由于本人对Keras较为熟悉,就先学习了Keras版本的Code。现将学习心得记录如下,如有不正确的地方,请大家指出,我将及时改正。欢迎骚扰讨论,共同进步~~</p>
<p>原版:<a href="https://github.com/xingyizhou/CenterNet" rel="nofollow">Pytorch版本</a></p>
<p>第三方版:<a href="https://github.com/see--/keras-centernet" rel="nofollow">Keras版本</a></p>
<h2><a name="t2"></a><a id="_12"></a>几点说明</h2>
<p>目前,对Keras版本整体代码尚没有全部看完,只是将自认为重要的,跟代码运行相关的部分学习了一下。因此,本文是根据自身的学习脉络进行介绍,若学习了更多的相关内容,会不定期补充。下面将本文及代码范围进行简要说明:</p>
<ol>
<li>我目前主要研究图像的目标检测,因此也只重点的学习了代码图像目标检测的部分;</li>
<li>该版本CenterNet的代码<strong>只能够应用</strong>训练好的模型(基于COCO数据库)进行目标检测,<strong>不能够训练</strong>自己的图像数据;</li>
<li>该版本代码的<strong>backbone只采用Hourglass Network</strong>,没有包含其他网络。</li>
<li>本篇博文是CenterNet代码学习系列的第一篇文章,只介绍代码运行相关文件关系及作用,代码详细说明将在后续陆续更新,敬请关注。</li>
</ol>
<h2><a name="t3"></a><a id="_22"></a>代码架构</h2>
<p>代码架构如下图所示:<img alt="代码架构" src="https://img-blog.csdnimg.cn/20190712233914104.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
其中“assets”文件夹下,存放了标注结果时所需的字体文件(.ttf)以及所有待测试图片,如下图所示:<br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/20190712234337737.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
“keras-centernet”文件夹下,存放的是代码运行所需的功能函数(bin)、模型函数(models, 目前只有hourglass net)以及模块函数(utils),如下图所示:<br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/2019071223514974.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
“bin”文件夹下,共包含6个文件,其中“cedet”开头的文件用于目标检测,“hpdet”开头的文件用于人体姿态检测。本文使用的文件为“dtdet_image.py”,用于对图像进行目标检测。<br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/20190713000738131.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
“models”文件夹下,包含一个“networks”文件夹和一个“<a href="http://decode.py" rel="nofollow">decode.py</a>”文件,而“networks”文件加下,目前只有一个“<a href="http://hourglass.py" rel="nofollow">hourglass.py</a>”文件,这里建立文件夹也应该是作者为添加别的backbone模型做的准备(自己的猜想)。这两个文件是代码运行的重要文件,运行至均会调用文件中的函数,其具体原理将在以后的博文详细阐述。<br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/20190713001006258.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
“utils”文件夹下,包含两个模块代码文件,主要将一些模块化功能的函数封装起来,以方便调用,具体代码说明也将后续补充。<br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/20190713001800120.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
以上将整体代码架构进行了介绍,希望能够帮助大家更方便的理清思路,快速上手。</p>
<h2><a name="t4"></a><a id="_36"></a>代码运行</h2>
<p>代码的使用方式可参照作者官方的GitHub说明,图像目标检测的执行代码是“/bin/ctdet_image.py”。具体代码如下图所示:<br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/2019071300411313.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
本人运行环境为Ubuntu16.04,windows上尚未测试,不知是否需要修改代码。下面附几张基于Hourglass Network为backbone的CenterNet的运行结果:<br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/20190713004604137.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
<img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/20190713004651799.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWt3NjI=,size_16,color_FFFFFF,t_70"><br>
以上图片都是在网上随便找的,大家也可以多找些图进行测试。</p>
<h2><a name="t5"></a><a id="_44"></a>总结</h2>
<p>以上对CenterNet(Keras版本)代码做了简要介绍,代码的详细解析将在后续更新,敬请关注。若有帮助,不胜荣幸,欢迎搬文,请注引用。谢谢。</p>

                                    </div>
                <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
                    </div>
    </article>
</div>

https://blog.csdn.net/caikw62/article/details/95673125

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值