BoF and Bos
Bag of freebies
采用一些方法使模型有更高的准确度但是不增加模型的复杂度和模型的推理代价
PS:数据增强应该在图像标准化(normalization)之前完成;
Library:
- Albumentations arxiv github docs
- Augmentor arxiv github docs
- Biomedical image augmentation using Augmentor
数据增强 [awesome data augmentation]
Photometric distortion (色泽扭曲)
亮度、对比度、色调、饱和度、噪声
Geometric distortion (几何扭曲)
- 随机缩放、剪切、翻转、旋转
模拟遮挡 (information dropping) (focus model to learn less discriminative object part)
random erase [AAAl 2020] [arxiv] [github] [blog]
在原图 / 目标区域中随机选择一个矩形区域,使用随机数填充
提高模型的鲁棒性
涉及三个参数:1. erasing probability §; 2. erasing area ratio (sl and sh);(决定了模拟的遮挡程度) 3. erasing aspect ratio;
论文中给出的参数建议:
IRE, ORE, I+ORE
CutOut [arxiv] [github] [blog]
论文中作者尝试遮挡训练所得激活图中的高激活部分(most discriminative)(adversarial erasing method),但实际效果和随机选择区域遮挡相近;
随机选择一个固定大小的正方形区域,然后采用全0填充
如果选择的区域越界,仅保留区域内的部分,变相地实现了任意面积的遮挡;但是RE保障了选择的必然是规则矩形
RE和CutOut的效果需要在实际任务中尝试,可以二者兼而有之
hide-and-seek [arxiv] [github]
将原图划分为若干份(grids of size s * s),然后对划分的每一份依概率进行隐藏**(采用整个数据集的均值来填充,也就是在标准化后这部分为0,code中是以0表示)**,可以模拟出RE和CutOut的效果;
对于video而言,以一定帧数为单位划分并以一定概率隐藏;
GridMask [arxiv] [github] [blog]
Key: 避免连续区域的过度删除和保留
- ~~控制被删除区域的密度和大小主要靠上面r, d, x, y四个参数控制,其中r是保留区域比率,在论文中是一个固定值。d决定了删除区域的大小,在论文中是一个区间的random值。x, y是删除区域的边长,在论文中是random(0,d-1)的一个值。~~cifar10中r=0.4。
**(code 此处的random均对于mini-batch内的不同图片而言,同一图片(grid mask)中是相同的)**d表示一个单元的大小,是一个区间内的random值,mini-batch中的每一层均不同;删除部分在该单元内的位置是random的,st_w, st_h表示左上角位置;
(emmmm, 感觉github上的代码有点问题,与文中叙述不太相符)
l = d * self.ratio # grid的删除区域大小 for i in range(0, hh//d):lu = d*i + st_hld = lu+self.llu = np.clip(lu, d*i, d*(i+1))ld = np.clip(ld, d*i, d*(i+1))for j in range(0, hh//d):ru = d*j + st_wrd = ru+self.lru = np.clip(ru, d*j, d*(j+1))rd = np.clip(rd, d*j, d*(j+1))mask[lu:ld:, ru:rd] *= 0
使用GridMask的策略主要有两种,作者通过实验发现,第二种更有效(code使用策略2):
1.设置一个恒定的概率p,这样我们就有机会对每个输入图像应用gridmask
2.使gridmask的概率随训练时间线性增加,直到达到一个上界P。grid的最小单元一般不要大于最小目标框太多,否则效果可能不理想。
Feature map (特征图上进行数据增强) (Regularization method)
- Dropout
- DropConnect
- DropBlock
- Spatial Dropout
- DropPath
结合多图像
[blog: Mixup, Cutout, CutMix]
Mix-Up [arxiv] [ICLR 2018]
- Image = 0.9X + 0.1Y, label = [0.9, 0.1]
CutMix [arxiv] [github] [ICCV 2019 oral talk]
将一部分区域随机填充训练集中的其他数据的区域像素值
CutMix和CutOut是填充区域像素值的区别
Mixup和CutMix是混合两种样本方式上的区别,mixup是将两张图按比例进行插值来混合样本,cutmix是采用cut部分区域再补丁的形式去混合图像,不会有图像混合后不自然的情形
Lambda ~ beta distribution
AugMix [arxiv] [github] [ICLR 2020]
RandAugment [arxiv] [github] [ICLR 2020]
Mosaic [blog]
将四张图片进行随机剪裁,再拼接到一张图上作为训练数据,吩咐了图片的背景,并且变相得提高了batch size;
Bilateral bluring
[ ]
activation function
ReLU, leaky-ReLU
Parametric-ReLU
ReLU6
SELU
Swish
Wish
Normalization of the network activations
- Batch Normalization
- Cross-gpu Batch Normalization (CGBN or SyncBN)
- Filter Response normalization (FRN)
- Cross-Iteration Batch Normalization (CBN)
Skip-connections
- Residual connections
- Weighted residual connections
- Multi-input weighted residual connections
- Cross stage partial connections (CSP)
Data imbalance between differnt classes
- hard negative example mining (two-stage)
- online hard example mining (two-stage)
- focal loss (one / two stage) [arxiv]
- label smoothing (used to one-hot representation)
Objective function bounding bbox regression
zhihu: IoU, GIoU, DIoU, CIoU
IoU loss
考虑预测的边界框和 ground truth 间的IoU
loss = -ln(IoU) / loss = 1 - IoU
如果两个框没有相交,则 IoU=0,没有梯度回传,无法进行学习训练且无法度量两个不相交的bbox之间的距离;
IoU无法精准地反应两者的重合度;
GIoU (Generalized Intersection over Union) loss [arxiv] [CVPR 2019]
先计算两个框的最小闭包区域面积Ac,再计算闭包区域中不属于两个框的区域占闭包区域的比重;
GIoU也是一种距离度量,作为损失函数的话,,满足损失函数的基本要求(backpropagated);1. 当两框完全不相交时,预测框会不断向目标框移动;2. 当两框出现覆盖情况时,GIoU退化为IoU;
IoU取值[0,1],但GIoU有对称区间,取值范围[-1,1]
DIoU loss (distance iou) [arxiv] (AAAI2020)[zhihu: DIoU + CIoU]
- CIoU, DIoU在同一文章中提出,该文强调框回归三要素:重合面积,中心点距离,长宽比
- IoU and GIoU
- 收敛速度缓慢;2. 回归不准确
- 惩罚项:度量目标框和预测框之间中心点的归一化距离
- b 和 bgt 分别表示预测框和ground truth 的中心点,p(.)表示欧式距离,c 表示覆盖两个边界框的最小矩形的对角线长度
- 特性和优越性
- DIoU直接最小化两框之间的距离,收敛速度更快
- DIoU在两框出现包含情况时,仍可以快速回归,不会像GIoU一样退化为IoU loss;
- 该文提出DIoU应用于NMS (IoU - distance penalization <= theta)
CIoU loss
- DIoU + 长宽比的一致性(惩罚项)
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9741Ry8y-1596531232099)(https://github.com/ganjf/object-detection/blob/master/picture/IoU%20loss%20exp.png?raw=true)]
- DIoU + 长宽比的一致性(惩罚项)
Bags of specials [blog]
指 plugin module 或后置方法以些许推理代价的增加换取模型准确率的提升。比如扩大感受野,引入注意力机制,或者增加特征融合容量
常用的用于增大感受野的结构
SPP (spatial pyramid pooling)(SPM)
- 输出一维特征向量,不适用于FCN
ASPP
- dilated convolution operation
RFB
注意力机制
- Squeeze-and-Excitation (SE) (channel-wise attention)
- Spatial Attention Module (SAM) (point-wise attention)
- 不影响模型在GPU上的推理速度
特征融合
- skip connection
- hyper-column
- FPN
- SFAM
- Use SE module to execute channel-wise level re-weighting on multi-scale concatenated feature maps.
- ASFF
- Use softmax as point-wise level re-weighting and then add feature maps of different scales.
- BiFPN
- Multi-input weighted residual connections to execute scale-wise level re-weighting.
Post-processing method’
NMS
soft NMS
- 解决对象遮挡问题
DIoU NMS
- add the information of the center point distance to the BBox screening process on the basis of soft NMS.
BoF and Bos相关推荐
- YOLOv4全文阅读(全文中文翻译)
YOLOv4全文阅读(全文中文翻译) YOLOv4: Optimal Speed and Accuracy of Object Detection 论文链接: https://arxiv.org/pd ...
- 吊打一切:YOLOv4的tricks汇总
来源 | AI算法与图像处理(ID:AI_study) 即使是目标检测在过去几年开始成熟,竞争仍然很激烈.如下所示,YOLOv4声称拥有最先进的精度,同时保持高处理帧速率.它在 MS COCO数据集上 ...
- YOLOv4来了,大型调优现场,速度和准确率俱佳
作者 | VincentLee 来源 | 晓飞的算法工程笔记 简介 论文提出YOLOv4,从图1的结果来看,相对于YOLOv3在准确率上提升了近10个点,然而速度并几乎没有下降,论文主要贡献如下: 提 ...
- 细节解密:当前最佳的YOLOv4是如何炼成火眼金睛的?
点击上方"视学算法",选择"星标" 快速获得最新干货 本文转自机器之心 前段时间,突然发布的 YOLOv4 成了计算机视觉领域一大热点新闻.这个目标检测任务的 ...
- 当前最佳的YOLOv4是如何炼成的?细数那些小细节
选自medium 作者:Jonathan Hu 机器之心编译 参与:Panda.Racoon X 前段时间,突然发布的 YOLOv4 成了计算机视觉领域一大热点新闻.这个目标检测任务的 SOTA 模型 ...
- YOLOv4 论文翻译
整理:我爱计算机视觉 本文源自知乎,已获作者授权转载,请勿二次转载. https://zhuanlan.zhihu.com/p/136183555 本文是YOLO系列的一个继承篇,由俄罗斯开发者Ale ...
- YOLO v4它来了:接棒者出现,速度效果双提升
来源:机器之心 本文约2188字,建议阅读7分钟. 本文介绍YOLO 的官方 Github 账号更新了 YOLO v4 的 arXiv 链接与开源代码链接,迅速引起了 CV 社区的关注. 两个月前,Y ...
- 吊打一切的YOLOv4的tricks汇总!附参考论文下载
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 即使是目标检测在过去几年开始成熟,竞争仍然很激烈.如下所示,YOLOv4声称拥有最先进的精度,同时保持 ...
- 当前最佳的YOLOv4是如何炼成的?细数那些Tricks
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要20分钟 Follow小博主,每天更新前沿干货 目标检测在近几年开始发展成熟,但即便如此,竞争依旧激烈.如下所示,YOLOv4 宣称已经实现了 ...
- 吊打一切的YOLOv4的tricks汇总!
即使是目标检测在过去几年开始成熟,竞争仍然很激烈.如下所示,YOLOv4声称拥有最先进的精度,同时保持高处理帧速率.它在 MS COCO数据集上,使用Tesla V100以接近65 FPS推理速度获得 ...
最新文章
- boost::intrusive::pointer_traits用法的测试程序
- 暴露的全局方法_面试刷题36:线程池的原理和使用方法?
- 如何利用数据分析找到女朋友?
- 广西民族博物馆真好玩
- 菜鸟电子面单ISV云打印组件一致性改造心得
- MATLAB常用画图命令汇总【已坑】
- Internet Explorer无法打开internet站点文件.....操作终止
- 科学计算IED--Anaconda软件基础操作
- SQLServer下载安装详细图解
- java 记账本_Java项目之家庭收支记账软件
- 【pwn】长安杯baigei
- android 滑动标签框架,Android实现网易严选标签栏滑动效果
- java使用aspose将word,excel,ppt转pdf
- 推动计算机革命的幕后黑手
- linux修改用户名命令6,linux用命令改用户名
- maplesim matlab,maple
- python迭代廖雪峰_廖雪峰python教程:迭代
- xampp 配置php版本,XAMPP各个版本配置
- NB模组(BC28/NB86-G)使用域名接入华为云方法
- XPS如何在线批量转换成PDF
热门文章
- uniapp 总结篇 (小程序)
- 【有源汇上下界可行流】ACM-ICPC 2018 沈阳赛区网络预赛 - F - Fantastic Graph
- Fantastic Blog CMS SQL注入漏洞(CVE-2022-28512)
- 树莓派CM4封装AD底座使用分享
- MVC+knockoutjs知识点总结
- 会唱歌的程序员为何如此受欢迎?
- DIY智能家居语音助理——语音智控万物
- 类和结构体的内存空间占有问题
- ElementUI ===> 表单 rules 规则
- Meta 将使用微软 Azure 最新虚拟机 (VM) 系列,多达 5400 个 GPU