CornerNet
hourglass network -> prediction module = corner pooling -> heatmaps + embedding + offsets

corner polling,获取角点信息
1、左上角的点和左边和上边的特征有关,因此角池化后会有这两个信息。
2、公式就是当前点到最左线和最上线的距离的和。
3、类似residual block形式,有skip connection

heatmaps,预测角点的位置
1、对负样本做欠采样以及focal loss: 重视困难(错分)样本 = 正样本损失值小,负样本损失值大。
2、改进focal loss, 对不同的负样本点的损失函数采取不同权重值。

offset, 取整计算丢失精度信息
1、像faster rcnn的ROI Pooling有精度丢失问题,引出该计算公式。

embedding,找出同一个目标的两个角点
1、两个损失函数,第一个公式用来缩小同一个目标距离,第二个公式用来扩大不属于同一个目标的距离
2、采用L1范数,大于0.5或者两点来自不同类别的目标都不能构成一对。

注意事项:
1、预测角点时,采用NMS来选择左上角前100个框和右下角前100个框。
2、0值填充作为网络的输入,而不是resize。
3、通过soft-nms 来去除冗余框,只保留前100个预测框

#################
CenterNet
改进CornerNet,提出关键点三元组。

anchor-base缺陷:anchor数量巨大,anchor人工设计,anchor与gt不对齐不利于分类。
anchor-free缺陷:CornerNet全局信息获取能力较弱,无法正确group同一物体的两个点。因为CornerNet的corner pooling仅依赖物体的边沿,并没有利用物体内部信息。这个问题可以通过互补信息解决--比如aspect ratio(anchor利用宽高比加速回归,对点没用)

1、center pooling
- 通过相加特征图水平和垂直方向上最大值获得。
- 首先提取物体边界最大值,然后在边界最大值处继续向内部(图中沿虚线方向)提取最大值,并与边界最大值相加,以此给角点特征提供更加丰富的关联物体语义信息
2、cascade corner pooling
类似corner pooling模块,只不过同时获取内部和边沿信息以增加稳定性。

注意事项:
1、中心区域的尺度会影响错误框去除效果。过小导致小尺度无法去除,过大导致多大尺度无法去除。因此引出尺度可调节的中心区域定义法:对大尺度减少中心域,对小尺度扩大中心域。

anchor-free : CornerNet 和 CenterNet 简要笔记的更多相关文章

  1. zz扔掉anchor!真正的CenterNet——Objects as Points论文解读

    首发于深度学习那些事 已关注写文章   扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 ​关注他 JustDoIT 等 ...

  2. CenterNet算法笔记(目标检测论文)

    论文名称:CenterNet: Keypoint Triplets for Object Detectiontection 论文链接:https://arxiv.org/abs/1904.08189 ...

  3. Linux device tree 简要笔记

    第一.DTS简介     在嵌入式设备上,可能有不同的主板---它们之间差异表现在主板资源不尽相同,比如I2C.SPI.GPIO等接口定义有差别,或者是Timer不同,等等.于是这就产生了BSP的一个 ...

  4. 斯坦福大学CS231n简要笔记和课后作业

    笔记目录: 1. CS231n--图像分类(KNN实现) 2. 待更新... 3. 4.

  5. CSS权威指南之css声明,伪类,文本处理--(简要笔记一)

    1.css层叠的含义 后面的会覆盖前面的样式 2.每个元素生成一个框,也称盒.   3.替换元素和非替换元素. img如果不指定src的外部路径,该元素就没有意义.他由文档本身之外的一个图像文件来替换 ...

  6. 【转】CentOS上部署PPTP和L2TP over IPSec简要笔记

    PPTP部署 安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ...

  7. Java Gson 简要笔记

    Gson是Google开发的Java比较好用的 Json工具. 使用挺简单,假设有个类: class Runner { int attr; String name; public Runner(int ...

  8. sublime简要笔记

    选中单词 [1]选中当前单词 ctrl+d [2]跳过当前单词 ctrl+k ctrl+d [3]选中相同的所有单词 alt+f3 [4]多行游标 按住shift,然后按住鼠标右键向下拖动 行操作 [ ...

  9. [Objective-C 面试简要笔记]

    Obj-C: 1.消息机制 [shape draw]  向该对象发送消息,该对象查找并运行此函数 差不多就是shape.draw(); 2.中缀语法 [textThing setStringValue ...

随机推荐

  1. luoguP1029 最大公约数和最小公倍数问题 [gcd][数论]

    题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为 ...

  2. str和byte的区别

    bytes 1.bytes对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定 2.bytes是Python 3中特有的,Pyt ...

  3. 最大流——poj1459

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> using ...

  4. overload和override二者之间的区别

    overload和override三者之间的区别 Overload是重载,是有相同的方法名,但参数类型或个数彼此不同Override是重写,是在子类与父类中,子类中的方法的方法名,参数个数.类型都与父 ...

  5. PAT甲级——A1112 Stucked Keyboard【20】

    On a broken keyboard, some of the keys are always stucked. So when you type some sentences, the char ...

  6. 20.multi_case05

    #coding:utf-8 # 通过gather方法 import asyncio async def a(t): print('-->', t) await asyncio.sleep(0.5 ...

  7. Post Office IOI 2000 /// 区间DP oj24077

    题目大意: 给定n个村庄的坐标,两个村庄之间的距离是其坐标之差的绝对值 最多能选m个村庄设立邮局,求设立邮局的地点使得各村庄与邮局距离总和最小 一, 所有的村庄看做在一条直线上 考虑三个因素:i 当前 ...

  8. jQuery链式编程时修复断开的链

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. memcache 使用手册

    Memcached 教程 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fit ...

  10. 四种JavaEE架构简介

    1. 传统三层架构 配图是一个基于MVC的三层架构, 大致可以分成表现层, 业务层和持久层 表现层负责接收请求和转发请求 业务层主要负责处理请求, 值得注意的是事务管理, 日志记录等操作通常也是封装在 ...