深度总结
文章平均质量分 89
kuweicai
这个作者很懒,什么都没留下…
展开
-
目标检测中的数据类别不均衡问题总结
目标检测中的数据类别不平衡问题1. 问题概述在目标检测任务中存在各种各样的不均衡问题(参考 目标检测领域中的数据不均衡问题综述),这里仅仅针对数据类别不均衡问题,就是下表的前景类别间不均衡问题,也是我们常说的长尾数据问题。当然这个问题并非是检测任务才有,其他的比如分类任务也是一样存在的,可能有区别的是,对于检测来说,是每个类别的 bbox 数量而不是图片数量。2. 解决思路2.1 从数据着手从数据上来说,哪一类少就增加哪一类,但是如果要去收集代价可能又太大了,有时候甚至是不可能。重采样(r原创 2021-12-31 15:08:17 · 6310 阅读 · 2 评论 -
小目标检测常用解决方法
小目标检测1 定义通用的定义来自 COCO 数据集,定义小于 32x32 pix 的为小目标。2 小目标检测的难点可利用特征少现有数据集中小目标占比少小目标聚集问题首先小目标本身分辨率低,图像模糊,携带的信息少。由此所导致特征表达能力弱,也就是在提取特征的过程中,能提取到的特征非常少,这不利于我们对小目标的检测。另外通常网络为了减少计算量,都使用到了下采样,而下采样过多,会导致小目标的信息在最后的特征图上只有几个像素(甚至更少),信息损失较多。在 COCO 挑战赛上,小目标的检测精度(原创 2021-12-31 15:06:21 · 13247 阅读 · 1 评论 -
多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解
多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解1. 概览在开始具体讨论卡尔曼滤波和匈牙利算法之前,首先我们来看一下基于检测的目标跟踪算法的大致流程。2. 卡尔曼滤波(Kalman filter)目标跟踪中使用的就是最基础的 Kalman filter 算法。这里也仅仅讨论最基础的 Kalman filter 算法。卡尔曼滤波算法的过程很简单,如下图所示。最核心的两个步骤就是预测和更新(下图的 correct)。在目标跟踪任务中,目标的原创 2021-10-24 12:08:14 · 21064 阅读 · 4 评论 -
目标跟踪之 MOT 经典算法:ByteTrack 算法原理以及多类别跟踪
目标跟踪之 MOT 经典算法:ByteTrack 算法原理以及多类别跟踪作者:Yifu Zhang 等发表时间:2021Paper 原文:ByteTrack: Multi-Object Tracking by Associating Every Detection Box开源代码:ByteTrack1. 概述ByteTrack 是基于 tracking-by-detection 范式的跟踪方法。作者提出了一种简单高效的数据关联方法 BYTE。它和之前跟踪算法的最大区别在于,并不是简单的去掉低分检原创 2021-10-20 19:33:13 · 74655 阅读 · 34 评论 -
目标检测中目标框回归损失函数(IoU, GIoU, DIoU, CIoU)总结
目标检测中目标框回归损失函数(IoU, GIoU, DIoU, CIoU)总结1. Smooth L1 Loss这个是 Faster-RCNN 中的损失函数。具体可以参考深度学习目标检测之 R-CNN 系列:Faster R-CNN 网络详解 中相应介绍。Smooth L1 Loss 相比 L1 和 L2 的优势可以参考 损失函数:L1 loss, L2 loss, smooth L1 loss。总结其优势就是:smooth L1和L1-loss函数的区别在于,L1-loss在0点处导数不唯一,可原创 2021-09-29 15:08:39 · 2870 阅读 · 0 评论 -
Pytorch 并行训练(DP, DDP)的原理和应用
Pytorch 并行训练(DP, DDP)的原理和应用1. 前言并行训练可以分为数据并行和模型并行。模型并行模型并行主要应用于模型相比显存来说更大,一块 device 无法加载的场景,通过把模型切割为几个部分,分别加载到不同的 device 上。比如早期的 AlexNet,当时限于显卡,模型就是分别加载在两块显卡上的。数据并行这个是日常会应用的比较多的情况。每一个 device 上会加载一份模型,然后把数据分发到每个 device 并行进行计算,加快训练速度。如果要再细分,又可以分原创 2021-09-27 20:18:10 · 19508 阅读 · 7 评论 -
目标检测 YOLO 系列:你有我无 YOLOX
目标检测 YOLO 系列:你有我无 YOLOX作者:Zheng Ge发表时间:2021Paper 原文:YOLOX: Exceeding YOLO Series in 20211. 概览那边 YOLOv5 还在不断更新,这边旷世 YOLOX 又开了新头了,真是一幅百舸争流啊。。。当然作为一名工业界的搬运工,还是很兴奋的,又有新的砖可以搬了。YOLOX 一出,各种公众号“吊打一切”,“秒天秒地” 的声音就出来了,真有这么神?作为一名搬运工,我觉得单从工业应用的角度,吸引力没有那么大,因为精度提升不大原创 2021-08-15 12:30:22 · 1367 阅读 · 0 评论 -
目标检测 YOLO 系列:快速迭代 YOLO v5
目标检测 YOLO 系列:快速迭代 YOLO v5作者:Glenn Jocher发表时间:2020Paper 原文:没有发表论文,通过 github(yolov5) 发布。1. 概览YOLOv5 刚发布之初还颇有争议,有人觉得它能不能叫 YOLOv5,但是它凭借优秀的性能和完善的工程配套(移植到其他平台)能力,现在(2021年)YOLOv5 依然是检测领域最活跃的模型。YOLOv5 不仅生而不凡,更关键的是它还非常勤快,从发布至今,已经发布了 5 个大版本。所以在使用 YOLOv5 的时候需要注意原创 2021-08-01 12:21:21 · 2489 阅读 · 0 评论 -
目标检测 YOLO 系列: 你有我有 YOLO v4
目标检测 YOLO 系列: 你有我有 YOLO v4作者:Alexey Bochkovskiy 等发表时间:2020Paper 原文: YOLOv4: Optimal Speed and Accuracy of Object Detection2020 年 Alexey 从 Joseph 手中接棒,推出了 YOLO v4。只是仅仅两个月后 YOLO v5 就来了,所以工业界 v4 应用的可能不及 v5 广泛(不同的领域可能有不同)。YOLO v4 可以说是集大成者,把市面上各种目标检测的 trick原创 2021-08-01 12:19:34 · 438 阅读 · 0 评论 -
目标检测 YOLO 系列: 持续改进 YOLO v3
目标检测 YOLO 系列: 持续改进 YOLO v3作者:Joseph Redmon, Ali Farhadi发表时间:2018Paper 原文: YOLOv3: An Incremental Improvement(严格来说,这并非是一篇学术论文,因为没有正式发表,作者行文也比较潇洒)YOLO v3 最大的特点是精度不错,但是速度飞快,并且对小目标的效果也有提升。320x320 YOLO v3 精度和 SSD321 差不多,但是速度是 SSD321 的三倍。凭借卓越的性能,YOLO v3 在工业界原创 2021-08-01 12:16:00 · 963 阅读 · 0 评论 -
目标检测 YOLO 系列: 更快更准 YOLO v2
目标检测 YOLO 系列: 更快更准 YOLO v2作者:Joseph Redmon, Ali Farhadi发表时间:2016Paper 原文: YOLO9000: Better, Faster, StrongerJoseph Redmon 等于 2016 年在 YOLO9000: Better, Faster, Stronger 中提出了 YOLO 的改进版本 YOLO V2 和 YOLO9000,其中 YOLO9000 是在 YOLO V2 的基础上采用联合训练的方式,使其可以检测超过 900原创 2021-08-01 12:12:35 · 741 阅读 · 0 评论 -
目标检测 YOLO 系列: 开宗立派 YOLO v1
目标检测 YOLO 系列: 开宗立派 YOLO v1作者:Joseph Redmon,Santosh Divvala , Ross Girshick , Ali Farhadi发表时间:2015Paper 原文:You Only Look Once:Unified, Real-Time Object Detection1 网络结构先来看看 YOLO V1 的网络结构,如下图(来自目标检测 YOLO)所示。这里 backbone 是基于 GoogleNet 修改的。具体来说,这里的 GoogLe原创 2021-08-01 12:09:07 · 713 阅读 · 0 评论 -
目标检测 YOLO 系列: 开篇
目标检测 YOLO 系列: 开篇该系列主要由以下几篇文章组成:目标检测 YOLO 系列: 开篇目标检测 YOLO 系列: 开宗立派 YOLO v1目标检测 YOLO 系列: 更快更准 YOLO v2目标检测 YOLO 系列: 持续改进 YOLO v3目标检测 YOLO 系列: 你有我有 YOLO v4目标检测 YOLO 系列:快速迭代 YOLO v51. 概览1.1 V1 到 V4YOLO 是 Joseph Redmon 和 Ross Girshick 等于原创 2021-08-01 12:02:51 · 707 阅读 · 0 评论 -
数据增强(Data Augmentation)系列: SnapMix 原理及应用
数据增强(Data Augmentation)系列: SnapMix作者:Shaoli Huang发表时间:2020Paper 原文: SnapMix: Semantically Proportional Mixing for Augmenting Fine-grained Data、官方开源代码:https://github.com/Shaoli-Huang/SnapMixSnapMix 是由 Shaoli Huang 等人提出的一种针对细粒度数据增强的方法。论文于 2020 年 12 月 9原创 2020-12-28 23:55:47 · 2856 阅读 · 1 评论 -
pytorch 中的 transforms.TenCrop 和 transforms.FiveCrop 讲解
pytorch 中的 transforms.TenCrop 和 transforms.FiveCrop 讲解1. transforms.TenCrop 和 transforms.FiveCrop 在干什么?这一点官方文档写的很清楚。transforms.FiveCrop 就是在原图片的四个角和中心各截取一幅大小为 size 的图片, 而 transforms.TenCrop 就是在 transforms.FiveCrop 基础上再进行水平或者竖直翻转(Flip),默认为水平翻转。torchvisio原创 2020-06-13 16:40:12 · 9523 阅读 · 2 评论 -
深度学习中的图像数据扩增(Data Augmentations)方法总结:常用传统扩增方法及应用
深度学习中的图像数据扩增(Data Augmentations)方法总结:传统扩增方法及应用1. 前言这篇文章主要参考 A survey on Image Data Augmentation for Deep Learning, 结合 pytorch 和总结了常用的传统扩增方法及其应用时的注意事项。这里的传统方法指不包括基于深度学习(比如 GAN)等新的扩增方法。另外需要注意的是,虽然对于不同的任务,比如对于分类,检测任务,不同的任务在采用某一个具体的扩增方法的时候会有所不同,比如对于检测任务需要考虑原创 2020-06-06 17:04:05 · 29338 阅读 · 3 评论 -
交叉熵损失函数总结: 定义、应用及求导
交叉熵损失函数总结: 定义、应用及求导先说熵(entropie),熵最早出现在热力学中,用于度量一个热力学系统的无序程度。后来熵被引入到信息论里面,表示对不确定性的测量。为了弄清楚交叉熵,首先需要弄清楚交叉熵相关的几个概念。1.1 信息量信息量用于刻画消除随机变量X在x处的不确定性所需的信息量的大小。也就是说不确定性越高,信息量越大。信息量的数学表达式如下,其中 ppp 为随机变量 XXX 的概率分布,即 p(x)p(x)p(x) 为随机变量 XXX 在 X=xX=xX=x 处的概率密度函数值。I原创 2020-05-28 21:48:33 · 2397 阅读 · 1 评论 -
MobileNet 进化史: 从 V1 到 V3(V3篇)
MobileNet 进化史: 从 V1 到 V3(V3篇)这部分内容总共由如下 3 篇文章构成。MobileNet 进化史: 从 V1 到 V3(V1篇)MobileNet 进化史: 从 V1 到 V3(V2篇)MobileNet 进化史: 从 V1 到 V3(V3篇)1. 前言V3 保持了一年一更的节奏,Andrew G. Howard 等于 2019 年又提出了 MobileN...原创 2019-11-26 23:34:43 · 3069 阅读 · 0 评论 -
MobileNet 进化史: 从 V1 到 V3(V2篇)
MobileNet 进化史: 从 V1 到 V3(V2篇)这部分内容总共由如下 3 篇文章构成。MobileNet 进化史: 从 V1 到 V3(V1篇)MobileNet 进化史: 从 V1 到 V3(V2篇)MobileNet 进化史: 从 V1 到 V3(V3篇)1. 前言Andrew G. Howard 等于 2018 年在 MobileNet V1 的基础上又提出了改进版...原创 2019-11-26 23:25:51 · 2965 阅读 · 0 评论 -
MobileNet 进化史: 从 V1 到 V3(V1篇)
MobileNet 进化史: 从 V1 到 V3(V1篇)这部分内容总共由如下 3 篇文章构成。MobileNet 进化史: 从 V1 到 V3(V1篇)MobileNet 进化史: 从 V1 到 V3(V2篇)MobileNet 进化史: 从 V1 到 V3(V3篇)1. 前言MobileNet V1 是 Andrew G. Howard(Google Inc.) 等人于 201...原创 2019-11-26 23:22:15 · 4081 阅读 · 0 评论 -
详说Normalization(Batch Normalization,Layer Normalization,Instance Normalization,Group Normalization)
详说各种 NormalizationBatch Normalization 是 Sergey 等人于2015年在 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中提出的一种归一化方法。在开始讨论之前, 我们需要先探讨一个问题, 对于深度神经网络而言, 什么...原创 2019-08-27 23:40:06 · 2467 阅读 · 0 评论 -
深度学习中常用的参数初始化方法及caffe中的初始化方法介绍
深度学习中常用的参数初始化方法及caffe中的初始化方法介绍本文首先介绍了深度学习中常用的权重初始化方法,然后介绍 caffe 中的初始化方法的使用。1. 深度学习中常用的权重初始化方法1.1 随机初始化(Gaussian)顾名思义就是将权重在符合某一分布 (通常是高斯分布) 的情况下进行随机始化。 操作非常的简单, 但是也有它自身的一些问题。当网络的层数比较深时,输出会快速的趋向于零,从...原创 2019-08-07 22:17:36 · 1845 阅读 · 0 评论 -
深度神经网络中常用的激活函数的优缺点分析
深度神经网络中常用的激活函数的优缺点分析本文主要总结了深度神经网络中常用的激活函数,根据其数学特性分析它的优缺点。在开始之前,我们先讨论一下什么是激活函数(激活函数的作用)?如果将一个神经元的输出通过一个非线性函数,那么整个神经网络的模型也就不在是线性的了,这个非线性函数就是激活函数。 显然非线性函数具有更强的表达能力。引入非线性函数作为激励函数,这样深层神经网络表达能力(泛化能力)就更加强...原创 2019-06-27 23:32:36 · 14905 阅读 · 5 评论 -
深度学习中的经典基础网络结构(backbone)总结
深度学习中的经典基础网络结构总结1. 深度学习发展历史回顾在开始正式内容之前,首先回顾下深度学习发展史,这将使整体内容更为连贯。上图主要展示了深度学习的 “史前文明”(这里仅仅是开玩笑的说法)。从图中可以看到整个历史始于1943年,有三个发展繁荣期和两个低谷。1943年,心理学家麦卡洛克和数学逻辑学家皮兹发表论文《神经活动中内在思想的逻辑演算》,提出了MP模型。1960年,...原创 2019-10-28 21:57:04 · 37801 阅读 · 4 评论 -
深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结
深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结1. 引言在深度学习中我们定义了损失函数以后,会采取各种各样的方法来降低损失函数,从而使模型参数不断的逼近于真实数据的表达。不过损失函数的数值只是我们用来优化模型中参数的一个参考量,我们是通过优化损失函数来间接地优化模型参数,并提高模型的度量指标。而优化算法的作用就是加快模型的收敛,取得最优值。...原创 2019-11-10 15:14:58 · 5145 阅读 · 1 评论