<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[生命在于折腾！]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kuweicai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kuweicai]]></copyright><item><title><![CDATA[Pytorch 混合精度训练（Automatic Mixed Precision）原理解析]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/126339584</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/126339584</guid><author>kuweicai</author><pubDate>Mon, 15 Aug 2022 08:08:05 +0800</pubDate><description><![CDATA[默认情况下，大多数深度学习框架（比如 pytorch）都采用 32 位浮点算法进行训练。Automatic Mixed Precision（AMP, 自动混合精度）可以在神经网络推理过程中，针对不同的层，采用不同的数据精度进行计算，从而实现节省显存和加快速度的目的。

Pytorch AMP 是从 1.6.0 版本开始的，在此之前借助 NVIDIA 的 apex 可以实现 amp 功能。Pytorch 的 AMP 其实是从 apex 简化而来的，和 apex 的 O1 相当。

AMP 里面的 Mixed ]]></description><category></category></item><item><title><![CDATA[目标检测中的数据类别不均衡问题总结]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/122256667</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/122256667</guid><author>kuweicai</author><pubDate>Fri, 31 Dec 2021 15:08:17 +0800</pubDate><description><![CDATA[目标检测中的数据类别不平衡问题
1. 问题概述
在目标检测任务中存在各种各样的不均衡问题（参考 目标检测领域中的数据不均衡问题综述），这里仅仅针对数据类别不均衡问题，就是下表的前景类别间不均衡问题，也是我们常说的长尾数据问题。当然这个问题并非是检测任务才有，其他的比如分类任务也是一样存在的，可能有区别的是，对于检测来说，是每个类别的 bbox 数量而不是图片数量。

2. 解决思路
2.1 从数据着手
从数据上来说，哪一类少就增加哪一类，但是如果要去收集代价可能又太大了，有时候甚至是不可能。


重采样（r]]></description><category></category></item><item><title><![CDATA[小目标检测常用解决方法]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/122256556</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/122256556</guid><author>kuweicai</author><pubDate>Fri, 31 Dec 2021 15:06:21 +0800</pubDate><description><![CDATA[小目标检测
1 定义
通用的定义来自 COCO 数据集，定义小于 32x32 pix 的为小目标。
2 小目标检测的难点

可利用特征少
现有数据集中小目标占比少
小目标聚集问题

首先小目标本身分辨率低，图像模糊，携带的信息少。由此所导致特征表达能力弱，也就是在提取特征的过程中，能提取到的特征非常少，这不利于我们对小目标的检测。
另外通常网络为了减少计算量，都使用到了下采样，而下采样过多，会导致小目标的信息在最后的特征图上只有几个像素（甚至更少），信息损失较多。
在 COCO 挑战赛上，小目标的检测精度(]]></description><category></category></item><item><title><![CDATA[模型推理速度与硬件算力]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/121587425</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/121587425</guid><author>kuweicai</author><pubDate>Sun, 28 Nov 2021 09:43:54 +0800</pubDate><description><![CDATA[模型推理速度与硬件算力
1. 模型大小衡量指标
参数量
这里的参数量就是指模型的权重，对于 CNN 网络而言，主要就集中在 Conv 和 FC 层。
参数量主要会体现在模型的物理大小（硬盘占用大小），在运行时也会体现在内存（显存）占用上，对运行速度没有直接的影响（间接的影响显然是存在的）。具体来说就是，如果模型硬盘占用很大，显然会影响最终软件的大小，如果模型内存占用很多，显然会影响一块显卡（或其他硬件）能同时加载模型的数量。
计算量


FLOPs（Floating Point Operations）浮点计]]></description><category></category></item><item><title><![CDATA[CV 经典主干网络 (Backbone) 系列: CSPNet]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/121303895</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/121303895</guid><author>kuweicai</author><pubDate>Sat, 13 Nov 2021 14:17:55 +0800</pubDate><description><![CDATA[CV 经典主干网络 (Backbone) 系列: CSPNet
作者：Chien-Yao Wang 等
发表时间：2019
Paper 原文： CSPNet: A New Backbone that can Enhance Learning Capability of CNN
开源代码：Cross Stage Partial Networks
该篇是  CV 经典主干网络 (Backbone) 系列 下的一篇文章。
作者认为目前的网络结构虽然效果好，但是都是建立在较大的计算量上的，这阻碍了算法应用 ，特别是]]></description><category></category></item><item><title><![CDATA[多目标跟踪（MOT）中的卡尔曼滤波（Kalman filter）和匈牙利(Hungarian)算法详解]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/120932036</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/120932036</guid><author>kuweicai</author><pubDate>Sun, 24 Oct 2021 12:08:14 +0800</pubDate><description><![CDATA[多目标跟踪（MOT）中的卡尔曼滤波（Kalman filter）和匈牙利(Hungarian)算法详解
1. 概览
在开始具体讨论卡尔曼滤波和匈牙利算法之前，首先我们来看一下基于检测的目标跟踪算法的大致流程。

2. 卡尔曼滤波（Kalman filter）
目标跟踪中使用的就是最基础的 Kalman filter 算法。这里也仅仅讨论最基础的 Kalman filter 算法。

卡尔曼滤波算法的过程很简单，如下图所示。最核心的两个步骤就是预测和更新（下图的 correct）。

在目标跟踪任务中，目标的]]></description><category></category></item><item><title><![CDATA[目标跟踪之 MOT 经典算法：ByteTrack 算法原理以及多类别跟踪]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/120873335</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/120873335</guid><author>kuweicai</author><pubDate>Wed, 20 Oct 2021 19:33:13 +0800</pubDate><description><![CDATA[目标跟踪之 MOT 经典算法：ByteTrack 算法原理以及多类别跟踪
作者：Yifu Zhang 等
发表时间：2021
Paper 原文：ByteTrack: Multi-Object Tracking by Associating Every Detection Box
开源代码：ByteTrack
1. 概述
ByteTrack 是基于 tracking-by-detection 范式的跟踪方法。作者提出了一种简单高效的数据关联方法 BYTE。它和之前跟踪算法的最大区别在于，并不是简单的去掉低分检]]></description><category></category></item><item><title><![CDATA[目标检测中目标框回归损失函数（IoU, GIoU, DIoU, CIoU）总结]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/120548988</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/120548988</guid><author>kuweicai</author><pubDate>Wed, 29 Sep 2021 15:08:39 +0800</pubDate><description><![CDATA[目标检测中目标框回归损失函数（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点处导数不唯一，可]]></description><category></category></item><item><title><![CDATA[Pytorch 并行训练（DP， DDP）的原理和应用]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/120516410</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/120516410</guid><author>kuweicai</author><pubDate>Mon, 27 Sep 2021 20:18:10 +0800</pubDate><description><![CDATA[Pytorch 并行训练（DP， DDP）的原理和应用
1. 前言
并行训练可以分为数据并行和模型并行。


模型并行
模型并行主要应用于模型相比显存来说更大，一块 device 无法加载的场景，通过把模型切割为几个部分，分别加载到不同的 device 上。比如早期的 AlexNet，当时限于显卡，模型就是分别加载在两块显卡上的。


数据并行
这个是日常会应用的比较多的情况。每一个 device 上会加载一份模型，然后把数据分发到每个 device 并行进行计算，加快训练速度。


如果要再细分，又可以分]]></description><category></category></item><item><title><![CDATA[3D 池化（MaxPool3D） 和 3D（Conv3d） 卷积详解]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/120233148</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/120233148</guid><author>kuweicai</author><pubDate>Sat, 11 Sep 2021 09:22:02 +0800</pubDate><description><![CDATA[3D 池化（MaxPool3D） 和 3D（Conv3d） 卷积详解
池化和卷积的过程是类似的，只是池化没有权重，相比起来更容易说明计算的过程。这里从 3D 池化开始详细接受 MaxPool3D 和 Conv3d 的过程，并尝试通过 2D 和 1D 的池化来实现 3D 池化的过程。
3D （池化或者卷积）相比 2D 增加了一个维度，但是大致过程依然和 2D 类似，所以在看 3D 之前应该确保已经清楚 2D 的过程了，如果对 2D 不熟悉的朋友，可以参考 动图详细讲解 LeNet-5 网络结构，里面有动图演示]]></description><category></category></item><item><title><![CDATA[python 中的模块、包以及搜索路径的问题]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/120179679</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/120179679</guid><author>kuweicai</author><pubDate>Wed, 08 Sep 2021 14:40:37 +0800</pubDate><description><![CDATA[Python
1. 模块（module）
1.1 什么是模块？
一个 .py 文件就是一个模块。
1.2 模块搜索路径
当你导入一个模块，Python 解析器对模块位置的搜索顺序是：

1、当前目录（入口的目录，比如 python main.py 是指 main.py 所在的目录）
2、如果不在当前目录，Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3、如果都找不到，Python 会察看默认路径。UNIX下，默认路径一般为 /usr/local/lib/python/。

]]></description><category></category></item><item><title><![CDATA[目标检测 YOLO 系列：你有我无 YOLOX]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/119712186</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/119712186</guid><author>kuweicai</author><pubDate>Sun, 15 Aug 2021 12:30:22 +0800</pubDate><description><![CDATA[目标检测 YOLO 系列：你有我无 YOLOX
作者：Zheng Ge
发表时间：2021
Paper 原文：YOLOX: Exceeding YOLO Series in 2021
1. 概览
那边 YOLOv5 还在不断更新，这边旷世 YOLOX 又开了新头了，真是一幅百舸争流啊。。。当然作为一名工业界的搬运工，还是很兴奋的，又有新的砖可以搬了。YOLOX 一出，各种公众号“吊打一切”，“秒天秒地” 的声音就出来了，真有这么神？作为一名搬运工，我觉得单从工业应用的角度，吸引力没有那么大，因为精度提升不大]]></description><category></category></item><item><title><![CDATA[目标检测 YOLO 系列：快速迭代 YOLO v5]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/119296670</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/119296670</guid><author>kuweicai</author><pubDate>Sun, 01 Aug 2021 12:21:21 +0800</pubDate><description><![CDATA[目标检测 YOLO 系列：快速迭代 YOLO v5
作者：Glenn Jocher
发表时间：2020
Paper 原文：没有发表论文，通过 github（yolov5） 发布。
1. 概览
YOLOv5 刚发布之初还颇有争议，有人觉得它能不能叫 YOLOv5，但是它凭借优秀的性能和完善的工程配套（移植到其他平台）能力，现在（2021年）YOLOv5 依然是检测领域最活跃的模型。YOLOv5 不仅生而不凡，更关键的是它还非常勤快，从发布至今，已经发布了 5 个大版本。所以在使用 YOLOv5 的时候需要注意]]></description><category></category></item><item><title><![CDATA[目标检测 YOLO 系列： 你有我有 YOLO v4]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/119296642</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/119296642</guid><author>kuweicai</author><pubDate>Sun, 01 Aug 2021 12:19:34 +0800</pubDate><description><![CDATA[目标检测 YOLO 系列： 你有我有 YOLO v4
作者：Alexey Bochkovskiy 等
发表时间：2020
Paper 原文： YOLOv4: Optimal Speed and Accuracy of Object Detection
2020 年 Alexey 从 Joseph 手中接棒，推出了 YOLO v4。只是仅仅两个月后 YOLO v5 就来了，所以工业界 v4 应用的可能不及 v5 广泛（不同的领域可能有不同）。YOLO v4 可以说是集大成者，把市面上各种目标检测的 trick]]></description><category></category></item><item><title><![CDATA[目标检测 YOLO 系列： 持续改进 YOLO v3]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/119296623</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/119296623</guid><author>kuweicai</author><pubDate>Sun, 01 Aug 2021 12:16:00 +0800</pubDate><description><![CDATA[目标检测 YOLO 系列： 持续改进 YOLO v3
作者：Joseph Redmon, Ali Farhadi
发表时间：2018
Paper 原文： YOLOv3: An Incremental Improvement（严格来说，这并非是一篇学术论文，因为没有正式发表，作者行文也比较潇洒）
YOLO v3 最大的特点是精度不错，但是速度飞快，并且对小目标的效果也有提升。320x320 YOLO v3 精度和 SSD321 差不多，但是速度是 SSD321 的三倍。凭借卓越的性能，YOLO v3 在工业界]]></description><category></category></item><item><title><![CDATA[目标检测 YOLO 系列： 更快更准 YOLO v2]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/119296591</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/119296591</guid><author>kuweicai</author><pubDate>Sun, 01 Aug 2021 12:12:35 +0800</pubDate><description><![CDATA[目标检测 YOLO 系列： 更快更准 YOLO v2
作者：Joseph Redmon, Ali Farhadi
发表时间：2016
Paper 原文： YOLO9000: Better, Faster, Stronger
Joseph Redmon 等于 2016 年在 YOLO9000: Better, Faster, Stronger 中提出了 YOLO 的改进版本 YOLO V2 和 YOLO9000，其中 YOLO9000 是在 YOLO V2 的基础上采用联合训练的方式，使其可以检测超过 900]]></description><category></category></item><item><title><![CDATA[目标检测 YOLO 系列： 开宗立派 YOLO v1]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/119296523</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/119296523</guid><author>kuweicai</author><pubDate>Sun, 01 Aug 2021 12:09:07 +0800</pubDate><description><![CDATA[目标检测 YOLO 系列： 开宗立派 YOLO v1
作者：Joseph Redmon,Santosh Divvala , Ross Girshick , Ali Farhadi
发表时间：2015
Paper 原文：You Only Look Once:Unified, Real-Time Object Detection
1 网络结构
先来看看 YOLO V1 的网络结构，如下图（来自目标检测 YOLO）所示。这里 backbone 是基于 GoogleNet 修改的。

具体来说，这里的 GoogLe]]></description><category></category></item><item><title><![CDATA[目标检测 YOLO 系列： 开篇]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/119296511</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/119296511</guid><author>kuweicai</author><pubDate>Sun, 01 Aug 2021 12:02:51 +0800</pubDate><description><![CDATA[目标检测 YOLO 系列： 开篇
该系列主要由以下几篇文章组成：


目标检测 YOLO 系列： 开篇


目标检测 YOLO 系列： 开宗立派 YOLO v1


目标检测 YOLO 系列： 更快更准 YOLO v2


目标检测 YOLO 系列： 持续改进 YOLO v3


目标检测 YOLO 系列： 你有我有 YOLO v4


目标检测 YOLO 系列：快速迭代 YOLO v5


1. 概览
1.1 V1 到 V4
YOLO 是 Joseph Redmon 和 Ross Girshick 等于 ]]></description><category></category></item><item><title><![CDATA[Pytorch LSTM 代码解读及自定义双向 LSTM 算子]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/118702575</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/118702575</guid><author>kuweicai</author><pubDate>Tue, 13 Jul 2021 16:02:21 +0800</pubDate><description><![CDATA[Pytorch LSTM 代码解读及自定义双向 LSTM 算子
1. 理论
关于 LSTM 的理论部分可以参考
Paper

Long Short-Term Memory Based Recurrent Neural Network Architectures for Large Vocabulary Speech Recognition

解析

Understanding LSTM Networks
人人都能看懂的LSTM

Pytorch LSTM 算子

LSTM 文档

2. 源代码
python]]></description><category></category></item><item><title><![CDATA[C/C++ 中的位运算及其典型应用]]></title><link>https://blog.youkuaiyun.com/kuweicai/article/details/117488071</link><guid>https://blog.youkuaiyun.com/kuweicai/article/details/117488071</guid><author>kuweicai</author><pubDate>Wed, 02 Jun 2021 23:21:52 +0800</pubDate><description><![CDATA[C/C++ 中的位运算及其典型应用
C/C++ 中提供了6种位运算，对于每一种都很好理解。位运算比较简单，但是如果能灵活应用往往能取得预想不到的效果。这里将不会一一介绍其定义，这里的重点是介绍一些比较经典的应用。如果对其定义还不是很熟悉的朋友可以参考位运算。需要注意的是负数按补码形式参加位运算。




操作符
标记




&amp;
按位与


|
按位或


~
取反


^
按位异或


&lt;&lt;
左移


&gt;&gt;
右移


1. 按位与
1.1 判断奇偶
    int x = ]]></description><category></category></item></channel></rss>