YOLOv6 详解
YOLOv6: 工业级目标检测 论文: YOLOv6 v3.0: A Full-Scale Reloading作者: 美团视觉智能部代码: github.com/meituan/YOLOv6 定位 为工业部署而生。在美团自动配送机器人中实际使用,专注硬件效率。 网络架构整体结构12345678910111213141516171819输入 ↓┌──────────────────────────────┐│ Backbone: EfficientRep │ 硬件感知CNN│ ├─ RepBlock (S/M 模型) ││ └─ CSPStackRep (M/L 模型) │└──────────┬───────────────────┘ ↓┌──────────────────────────────┐│ Neck: Rep-PAN │ 增强PAN│ ├─ RepBlock/CSPStackRep ││ └─ BiC (双向连接) 模块 ...
YOLOv7 详解
YOLOv7: Trainable Bag-of-Freebies 论文: YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors (CVPR 2023)作者: Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao (同 v4 团队) 核心哲学 不追求全新架构,而是在训练策略和网络设计细节上做精细优化。 核心贡献:提出 可训练 BoF (Trainable Bag-of-Freebies) 概念。 关键创新1. 计划重参数化 (Planned Re-Parameterization) 不是所有层都适合重参数化!需要根据梯度传播路径有选择性地使用。 12串联网络层: 重参数化 ✅ (多分支融合收益大)残差连接层: 重参数化 ❌ (破坏恒等映射,梯度路径变差) 策略: 在无残差连接的层使用 RepConv,有残差的地方保持原始结构。 2. 由粗到细的引导标签分配问题: 多输出层时,如何为...
YOLOv8 详解
YOLOv8: 多任务统一新时代 代码: github.com/ultralytics/ultralytics作者: Ultralytics (2023年1月)特点: ❌ 无正式论文,但标志着 Anchor-Free + 多任务统一 时代 历史性转变 YOLOv5 YOLOv8 锚框 Anchor-Based Anchor-Free Head 耦合 Head 解耦 Head 任务 仅检测 检测 + 分割 + 分类 + 姿态 C3 模块 C3 (CSP Bottleneck) C2f (Fast CSP) 网络架构整体结构12345678910111213141516171819输入 640×640×3 ↓┌─────────────────────────────┐│ Backbone: CSPDarknet + C2f ││ P1→P2→P3→P4→P5 (5阶段) ││ SPPF (快速金字塔池化) │└──────────┬──────────────────┘ ...
YOLOv2 详解
YOLOv2 / YOLO9000: Better, Faster, Stronger 论文: YOLO9000: Better, Faster, Stronger (CVPR 2017)作者: Joseph Redmon, Ali Farhadi 一、核心思想 —— v1→v2 的范式升级 YOLOv2 的关键变革:从「直接预测坐标」→「基于锚框预测偏移量」,同时引入一系列工程改进,在速度不变甚至更快的前提下,大幅提升召回率和定位精度。 1234567YOLOv1: 输入 → CNN → FC → 直接输出 (x, y, w, h) ← 无先验,网络从零学坐标YOLOv2: 输入 → CNN(全卷积) → 基于Anchor预测偏移量 (tx, ty, tw, th) ↑ 锚框: 预先聚类好的 5 种典型宽高比,给网络一个"好起点" v1 的核心痛点 → v2 的解决: v1 痛点 v2 解决 效果 定位精度差,召回率低 Anchor Box 机制 召回率 81%→88% 训练收敛慢 Batch Norma...
YOLOv9 详解
YOLOv9: 用可编程梯度信息学习 论文: YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information (2024)作者: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao (同 v4/v7 团队) 核心问题 深度神经网络逐层处理时,信息会不可逆地丢失。这导致最终用于计算损失的梯度不够可靠,影响模型学习。 YOLOv9 的回答: 用 PGI (Programmable Gradient Information,可编程梯度信息) 来确保梯度可靠。 两大核心技术1. PGI (Programmable Gradient Information)123456789101112PGI 由三部分组成:┌─────────────────────────────────────┐│ (1) 主分支 (Main Branch) │ → 推理时使用│ 标准前馈网络 ...
交通信号灯检测与行人过马路策略
🚦 交通信号灯检测与行人过马路策略一、背景交通信号灯检测是自动驾驶汽车安全行驶的关键技术,但在复杂城市环境中检测精度仍不够高。 二、信号灯检测识别技术传统图像识别方案1输入图像 → 颜色分割 → ROI提取 → 区域判定 → 输出结果 步骤 技术细节 颜色分割 归一化 RGB 色彩空间,设置红/绿阈值 ROI 提取 连通区域标定,提取长度、宽度、长宽比、面积 区域判定 3 个先验特征:• 面积过滤(10-200)• 圆形度检测(阈值 0.5)• 黑色边框(SVM 分类器) 深度学习方案 模块 功能 Locate 定位交通灯区域 Detect 精确筛选 Recognize 颜色识别(红/黄/绿) 数据集: Bosch Small Traffic Lights Dataset 三、行人过马路问题问题核心无人车难以将驾驶意图传达给行人,可能降低安全性。 车企尝试的方案 ❌ 车企 方案 福特 车顶灯带示意 捷豹 地面投影文字 Drive.ai LED 灯带显示信息 问题: 缺乏统一标准...
transformer 模型随笔
随便记录自己想到的问题,自问自答,后续会整理整个transformer 模型的原理及其复现 问题: 在transformer中每个功能层添加add & norm 层的原因 batch norm, layer norm 原理及其区别,以及使用场景 为什么transformer中使用layer norm 而不是 batch norm 对于输入的句子长度不一,如何处理?
Unigram Language Model (ULM)
Ulm 分词算法(通常指 ULM, Unsupervised Language Modeling 分词,或与 SentencePiece 中的 Unigram 语言模型算法高度相关)是一种基于统计概率的子词(Subword)分词算法。 与传统的结巴分词(基于词典)或简单的 BPE(基于频次合并)不同,ULM 的核心逻辑是:从一个巨大的候选词表出发,通过概率模型不断“剔除”对整体语言模型贡献度低的词,直到达到目标词表大小。 1. 原理详解ULM 算法建立在假设:一个句子 $S$ 的分词序列 $x = (x_1, x_2, …, x_n)$ 的概率等于各子词概率的乘积: $$ P(x) = \prod_{i=1}^{n} P(x_i)$$ 核心步骤: 初始化:生成一个非常大的初始词表(例如:所有出现的字符 + 频繁出现的子串)。 期望最大化 (EM 训练): E-Step:在当前词表下,利用维特比算法 (Viterbi) 找到语料库中最优的分词路径。 M-Step:根据分词结果更新词表中每个词的出现概率 $P(x_i)$。 计算损失 (Loss):...
WordPiece 分词算法原理
WordPiece 分词算法 Google BERT 的核心分词技术 简介WordPiece 是 Google 在 2016 年为了解决神经机器翻译问题提出的分词算法,后来因为成为了 BERT 的默认分词方案而彻底走红。自此之后,很多基于 BERT 的 Transformer 模型都复用了这种方法,比如 DistilBERT、MobileBERT、Funnel Transformers 和 MPNET。 初识 WordPiece如果说 BPE 是单纯的统计学家(看数量),那么 WordPiece 就像是一个概率学家(看概率)。 核心思想 WordPiece 的核心目标:最大化训练数据的似然概率 与 BPE 的贪心合并策略不同,WordPiece 采用概率模型来选择如何合并子词。 WordPiece vs BPE:核心区别 维度 BPE WordPiece 合并逻辑 统计最频繁的字节对 最大化训练数据似然概率 选择标准 频率最高 最大化似然增量(PMI) 子词标记 词首加 Ġ (GPT 风格) 非词首加 ## 分词策略 贪心匹配 最长匹配 应用模...