anchor-free : CornerNet 和 CenterNet 简要笔记
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 简要笔记的更多相关文章
- zz扔掉anchor!真正的CenterNet——Objects as Points论文解读
首发于深度学习那些事 已关注写文章 扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 关注他 JustDoIT 等 ...
- CenterNet算法笔记(目标检测论文)
论文名称:CenterNet: Keypoint Triplets for Object Detectiontection 论文链接:https://arxiv.org/abs/1904.08189 ...
- Linux device tree 简要笔记
第一.DTS简介 在嵌入式设备上,可能有不同的主板---它们之间差异表现在主板资源不尽相同,比如I2C.SPI.GPIO等接口定义有差别,或者是Timer不同,等等.于是这就产生了BSP的一个 ...
- 斯坦福大学CS231n简要笔记和课后作业
笔记目录: 1. CS231n--图像分类(KNN实现) 2. 待更新... 3. 4.
- CSS权威指南之css声明,伪类,文本处理--(简要笔记一)
1.css层叠的含义 后面的会覆盖前面的样式 2.每个元素生成一个框,也称盒. 3.替换元素和非替换元素. img如果不指定src的外部路径,该元素就没有意义.他由文档本身之外的一个图像文件来替换 ...
- 【转】CentOS上部署PPTP和L2TP over IPSec简要笔记
PPTP部署 安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ...
- Java Gson 简要笔记
Gson是Google开发的Java比较好用的 Json工具. 使用挺简单,假设有个类: class Runner { int attr; String name; public Runner(int ...
- sublime简要笔记
选中单词 [1]选中当前单词 ctrl+d [2]跳过当前单词 ctrl+k ctrl+d [3]选中相同的所有单词 alt+f3 [4]多行游标 按住shift,然后按住鼠标右键向下拖动 行操作 [ ...
- [Objective-C 面试简要笔记]
Obj-C: 1.消息机制 [shape draw] 向该对象发送消息,该对象查找并运行此函数 差不多就是shape.draw(); 2.中缀语法 [textThing setStringValue ...
随机推荐
- 一图读懂POLARDB Box数据库一体机的云原生力量!
2019杭州云栖大会上,阿里云宣布正式推出高性能数据库一体机——POLARDB Box,用户部署在自有数据中心即可享受云数据库的便捷体验,同时还为Oracle等传统数据库用户提供一键迁移功能,最多节省 ...
- python 毫秒时间戳转日期
import time import datetime timestamp = 1570774556514 # 转换成localtime time_local = time.localtime(tim ...
- iOS之SceneKit.h文件简介
1.SceneKit简介 SceneKit(SK)是WWDC12推出的OS X平台的Cocos 3D渲染引擎框架.支持粒子效果,物理模拟,脚本事件,多程渲染,支持iOS平台.SceneKit整合了Co ...
- C语言进阶学习第二章
本章重点记录指针的各种概念: 1.地址与内容 2.非法的赋值 3.NULL指针:NULL指针作为一个特殊的指针变量,表示不指向任何东西,在对指针进行解引用操作之前,首先必须 确保它并非NULL指针. ...
- Spring MVC(十四)--SpringMVC验证表单
在Spring MVC中提供了验证器可以进行服务端校验,所有的验证都必须先注册校验器,不过校验器也是Spring MVC自动加载的,在使用Spring MVC校验器之前首先要下载相关的jar包,下面是 ...
- 1.2_springboot2.x中redis缓存&原理介绍
1.整合redis作为缓存 说明这里springboot版本2.19 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构 ...
- 使用CEfSharp之旅(2) js前台事件执行后台方法
原文:使用CEfSharp之旅(2) js前台事件执行后台方法 版权声明:本文为博主原创文章,未经博主允许不得转载.可点击关注博主 ,不明白的进群191065815 我的群里问 https://blo ...
- selenium基础(控制浏览器)
python基础(控制浏览器) 控制浏览器 控制浏览器窗口大小 设置浏览器屏幕大小方法:set_window_size() 浏览器最大化:maximize_window() 浏览器最小化:minimi ...
- loj2513 治疗之雨
题意:你的英雄一开始血量为p,你还有m个队友,血量无穷.血量上限为n,下限为0.如果血量满了就不能加血.每次启动操作,随机给m+1个英雄加1点血,然后等概率随机k次每次对于英雄扣1点血.求期望操作几次 ...
- 廖雪峰Java12maven基础-1maven入门-3构建流程
maven是一个Java项目管理和构建工具: 标准化项目结构 标准化构建流程(编译.打包.发布) 依赖管理 Maven的构建流程 clean 删除所有编译生成的文件 compile 编译源码.编译测试 ...