centernet代码阅读笔记
Objects as Points
文章: https://arxiv.org/abs/1904.07850
代码: centernet
原理请看扔掉anchor!真正的CenterNet——Objects as Points论文解读
尊重原创,请读原文
1. 网络结构
1.1 主干网络
1.2 输出部分
- net.reg,???
Sequential((0): Conv2d(64, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(1): ReLU(inplace)(2): Conv2d(256, 2, kernel_size=(1, 1), stride=(1, 1))
)
输出为:batch×2×128×128
2. net.wh,目标检测中的偏移量
Sequential((0): Conv2d(64, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(1): ReLU(inplace)(2): Conv2d(256, 2, kernel_size=(1, 1), stride=(1, 1))
)
输出为:batch×2×128×128
3. net.hm,热力图的输出,就是目标的中心位置
Sequential((0): Conv2d(64, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(1): ReLU(inplace)(2): Conv2d(256, 1, kernel_size=(1, 1), stride=(1, 1))
)
输出为:batch×1×128×128
1.3 求loss
- 输入
loss, loss_stats = self.loss(outputs, batch) # 输入
网络输出
outputs = {'hm', 'reg', 'wh'}
[batch,80,128,128]、[batch,2,128,128]、[batch,2,128,128],也就是每个坐标点产生C+4个数据,分别是类别以及、长宽、以及偏置。目标值:
batch = dict_keys(['input', 'hm', 'reg', 'ind', 'wh', 'reg_mask'])
hm:batch*1*128*128,热力图的目标值——热力图损失,只有一个类,本人有修改源数据
reg:batch*50*2
ind:batch*50,目标中心点在128×128特征图中的索引
wh:batch*50*2,目标矩形框的宽高——目标尺寸损失
reg_mask:batch*50,有目标的位置的mask
50:应该是一个限制数,最多一张图片中50个目标,少于50个则补0
- 热力图损失——目标中心定位
主要是目标定位用,这是一个二分类问题,项目主要是用的focal loss
hm_loss += self.crit(output['hm'], batch['hm']) / opt.num_stacks
- WH损失——目标大小的回归
主要是做目标大小的wh的回归,用L1loss
流程:提取ind位置的wh,与目标wh做L1loss
wh_loss += self.crit_reg(output['wh'], batch['reg_mask'],batch['ind'], batch['wh']) / opt.num_stacks
- reg损失——目标中心的偏置
参考自扔掉anchor!真正的CenterNet——Objects as Points论文解读
尊重原创,请读原文
目标中心的偏置损失
因为上文中对图像进行了R=4R=4的下采样,这样的特征图重新映射到原始图像上的时候会带来精度误差,因此对于每一个中心点,额外采用了一个local offset去补偿它。所有类c的中心点共享同一个offset prediction,这个偏置值(offset)用L1 loss来训练:
但是在推断过程中,我们首先读入图像[640,320],然后变形成[512,512],然后下采样4倍成[128,128]。最终预测使用的图像大小是[128,128],而每个预测出来的热点中心(headmap center),假设我们预测出与实际标记的中心点[98.97667,2.3566666]对应的点是[98,2],坐标是(x,y),对应的类别是c,等同于这个点上hm =1,有物体存在,但是我们标记出的点是[98,2],直接映射为[512,512]的形式肯定会有精度损失,为了解决这个就引入了Loff 偏置损失。
和上面的wh一样采用同样的L1loss
off_loss += self.crit_reg(output['reg'], batch['reg_mask'],batch['ind'], batch['reg']) / opt.num_stacks
推理阶段
具体看
扔掉anchor!真正的CenterNet——Objects as Points论文解读
centernet代码阅读笔记相关推荐
- [置顶] Linux协议栈代码阅读笔记(一)
Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...
- linux 协议栈 位置,[置顶] Linux协议栈代码阅读笔记(一)
Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...
- BNN Pytorch代码阅读笔记
BNN Pytorch代码阅读笔记 这篇博客来写一下我对BNN(二值化神经网络)pytorch代码的理解,我是第一次阅读项目代码,所以想仔细的自己写一遍,把细节理解透彻,希望也能帮到大家! 论文链接: ...
- 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(八)—— 模型训练-训练
系列目录: 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(一)--数据 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(二)-- 介绍及分词 菜鸟笔记-DuReader阅读理解基线模 ...
- leveldb代码阅读笔记(一)
leveldb代码阅读笔记 above all leveldb是一个单机的键值存储的内存数据库,其内部使用了 LSM tree 作为底层存储结构,支持多版本数据控制,代码设计巧妙且简洁高效,十分值得作 ...
- C++ Primer Plus 6th代码阅读笔记
C++ Primer Plus 6th代码阅读笔记 第一章没什么代码 第二章代码 carrots.cpp : cout 可以拼接输出,cin.get()接受输入 convert.cpp 函数原型放在主 ...
- [原创]fetchmail代码阅读笔记---ESMTP的认证方式
fetchmail代码阅读笔记---ESMTP的认证方式 作者: 默难 ( monnand@gmail.com ) 0 引言 fetchmail是Eric S. Raymond组织编写的一款全功 ...
- CNN去马赛克代码阅读笔记
有的博客链接是之前几周写好的草稿,最近整理的时候才发布的 CNN去马赛克论文及代码下载地址 有torch,minimal torch和caffe三种版本 关于minimal torch版所做的努力,以 ...
- ORB-SLAM2代码阅读笔记(五):Tracking线程3——Track函数中单目相机初始化
Table of Contents 1.特征点匹配相关理论简介 2.ORB-SLAM2中特征匹配代码分析 (1)Tracking线程中的状态机 (2)单目相机初始化函数MonocularInitial ...
最新文章
- 如何更改linux文件目录拥有者及用户组
- 长沙黑梨路枪击抢劫案
- “奔三”了,程序员,你该怎么选择未来的路?
- mysql 短信发送情况检查
- 【Express】—路由配置
- 机器学习基石(1)--The Learning Problem
- 安装 Dubbo 管理控制台
- 在Windows上安装FFmpeg程序
- 4份简约实用自我介绍PPT模板,总有一份适合你
- 圣思园Spring精髓-Spring的底层设计思想
- ARP断网攻击与监听
- 微信企业号开发源码Java编写,懒人开发一键式部署项目,WeChatEnterprise框架你值得拥有
- python语言求球的体积,改进蒙特卡罗程序求高维球体体积。(Python)
- 数三退一问题||拉手成圈出圈问题
- sklearn机器学习:泰坦尼克号幸存者的预测
- MKS Robin nano V3.0 主板使用Klipper固件教程
- BAT批处理脚本实例学习(五)局域网共享批处理安装软件
- 著名EMORY大学logo翻新案例—跟高手学设计
- matlab 数组索引必须为正整数或逻辑值
- 笔记本外接显示器卡顿解决方案
热门文章
- java : 实现微信网页授权,超详细!
- win7计算机名怎么是感叹号,Win7系统wifi信号后出现感叹号怎么办 Win7连接wifi后出现感叹号三种原因和解决方法...
- html论坛发帖案例
- 数据库事务Transaction)那点事
- OpenTracing 详解
- 自己的第一份保险(均来自太平):“福禄康瑞2018重疾险” + “医无忧” + “爱无忧”(状态:已退,20190530)...
- Centos8安装Tomcat8.5.55
- Unsupported class file major version 55
- 『 云原生·Docker』Docker镜像分层与Docker镜像操作(二)
- 第七章 Java基础类库