CVPR26 Benchmark & Datasets

The SA-FARI Dataset: Segment Anything in Footage of Animals for Recognition and Identification 这篇论文提出了 SA-FARI——目前最大规模的开源野生动物多动物跟踪(Multi-Animal Tracking, MAT)数据集。 野生动物保护依赖自动视频分析,而多动物跟踪(MAT)是其中的基础任务——它支撑个体重识别(re-identification)和行为识别等下游应用。但领域内缺乏合适的基准:规模小、物种单一、时空多样性不足。 数据集核心指标: 11,609 个视频,2014–2024 年采集,覆盖 741 个地点、4 大洲; ~46 小时密集标注视频,99 个物种类别; 16,224 个 masklet 身份(单个个体动物的时空分割轨迹)和942,702 个边界框/分割掩码/物种标签。 masklet:由分割掩码(而非仅有边界框)构成的时序轨迹,是比普通 tracklet 信息量更丰富的标注形式;并且数据附带匿名化的相机陷阱位置。 Dataset Sites Species Videos Duration (h) Tracklets Segmentation Source AnimalTrack [51] — 10 58 0.23 2k ✕ YouTube GMOT [2] † — 4 16 0.03 1k ✕ YouTube TAO [17] / BURST [1] † — 51 429 3.60 1k ✕/√ Varied BuckTales [32] 1 1 12 0.21 0.7k ✕ UAV BaboonLand [18] 1 1 18 0.32 1k ✕ UAV KABR [26] 1 3 742 10.00 — ✕ UAV WildLive [16] 1 3 22 0.70 0.3k √ UAV CCR [4] 3 1 27 10.00 12k ✕ Video Camera MammAlps [20] 3 5 2,384 14.50 6k ✕ Camera Trap PanAf500 [8] 12 2 500 2.10 1.5k ✕ Camera Trap SA-FARI (ours) 741 99 11,609 45.78 16k √ Camera Trap 支持任务列表: ...

August 27, 2026 · 3 min

Residual Primitive Fitting of 3D Shapes with SuperFrusta

论文想解决的问题 这篇论文是针对primitive base的3d重建方法中的高保真和高效率的trade off问题。首先primitive base的3d重建方法是将复杂几何蒸馏为紧凑、可解释、可编辑的解析组件。论文分析这种trade off问题的原因有两个: 1.常用基元族(立方体、超二次曲面、椭球体)表达力有限,需要大量实例才能覆盖丰富的形状变化 2.推理过程本身有缺陷——依赖固定分割的方法(analysis-driven)对分割错误敏感,而纯优化方法(optimization-driven)必须穿越高度非凸的损失景观。 解决思路 没看过这个领域,所以介绍一下相关工作: 基元推理方式:论文把已有方法分为三类,第一类形状分析驱动-先用几何数据将形状分割为区域,再往每个区域里拟合图元。先分割再定图元,分割定死之后,导致和图元并不完全适配。第二类是优化驱动-直接优化整图的图元参数拟合误差,比较依赖好的初始化。第三类是学习驱动方法(deeplearning),学习驱动的问题就是泛化问题,关联性学习的问题。 基于的表示方式: 图元族 代表 优点 缺陷 立方体/圆柱 [8, 36] 可解释、易编辑 表达力太弱 超二次曲面 (Superquadrics) [2, 7, 26] 形状空间更广 牺牲可编辑性,且无法精确表示立方体、锥体等常见实体 代数曲面 (Algebraic surfaces) [43] 表达力强 不可编辑 广义圆柱 (Generalized cylinders) [31, 47] 更灵活 重建保真度仍不足 神经隐式部件 [8, 9, 27, 42] 表达力最高 黑箱、昂贵、难以控制与复用 论文建立了一个可微的八参数可变形的模型SuperFrustum,可变形针对常用基元簇表达力有限的问题,可微+ResFit针对的是先分割再拟合的误差累积。 核心方法 问题定义:任务的输出是一个 3D shape,比如生成模型的 SDF 网格,输出是一组解析基元,这些基于通过组合算子可以合成一个闭合曲面 $ E(z) $. 优化目标为: $$ z^∗=arg⁡max_⁡R(x,E(z))−α|z|$$第一项为重建误差,第二项为复杂度惩罚 ResFit:Residual Primitive Fitting 纯优化方法(自下而上)容易让图元纠缠在一起,而纯分析方法(自上而下)在分割形状时根本不考虑所用图元族到底能表达什么。分析派先做几何分割(分割对了,图元未必拟合得好;分割错了,误差就固化下来),优化派只盯着损失函数往下走(可能为了保真堆出大量重叠图元,却毫无结构可言)。ResFit 的解法是让这两者交替进行、互相喂信息。 ...

August 1, 2026 · 2 min

SAM 3D:3Dfy anything in Images

原本看这篇论文以为是一个比之前更接近真实世界的3d生成新任务,还想着水他一篇,但是看了之后发现数据集不公开,做的话也没那么多资源,但是meta的工作,所以主要从这里边学习大厂大规模研究的工程和技术细节:数据pipline怎么做,训练策略以及实验评测设计。 纯大厂风格的力大砖飞工作,鉴定完毕,又浪费一天,tmd。(没有看不起的意思,我觉得我的小作坊编故事风格的工作还不如这种,这种至少有用) 论文想解决的问题 这篇论文要解决的是三个层层递进的问题,一个是旧3d重建任务针对单个物体,但是真实世界中的物体通常有遮挡,远距离等各种影响。这篇论文要解决的是一整个真实场景的3d重建,在重建场景中每个物体的同时预测物体的具体位姿以重建整个场景。因此就会引出第二个问题,3d模型数据不像自然2d图像和语言数据,自然界存在很多,合成数据有sim2real的问题要解决。然后就是标注问题,分类任务普通人就能标注,极低成本获得大量数据,但是3d建模需要专业技术。 解决思路 三个问题是递进的,解决了标注和数据问题,设计迭代模型反而简单。所以先从标注成本入手,普通人不能进行3d建模,但是能区分3d建模质量的高低(Human in loop - HIL),设计了MITL pipline,让普通人从几个候选中挑选并且对齐位姿(怎么获得候选个问题,就是冷启动问题,核心方法会写)。用这个pipline收集大规模的数据,然后针对真实世界的复杂性设计了方法和仿LLM的训练策略,(合成预训练-半合成中期训练-真实数据后训练)。 核心方法 网络结构 每个部分的具体实现: Encoder:Encoder全都使用DINOv2,得到4组条件token,一组是裁剪物体:通过掩码M以及对应的裁剪二值Mask对裁剪的图像I进行编码,提供聚焦的高分辨率的物体视图。另一组是全图I以及全图二值掩码,提供全局上下文线索。点云Encoder可选可不选,可以选用硬件采集也可以用其他深度估计方法来得到。 Geometry Model:论文的问题定义中把这个任务定义成了一个条件分布估计 $q(S, T, R, t, s|I, M )$,在具体的实现中又把整个任务拆成了两个条件分布,几何模型负责 $p(O,R,t,s∣I,M)$,回答物体在什么地方,大概长什么样子。(O是粗形状,R是6d pose,t是物体在相机系中的3维位置,s是在三个轴上的缩放)。输入图像和掩码经过编码后,送入一个 12 亿参数的流匹配 Transformer(flow transformer),采用 Mixture-of-Transformers (MoT) 架构——一种多模态 Transformer 变体,通过精心设计的 attention mask(Fig. 2 右图所示)让不同模态(图像、掩码、形状、位姿)之间既共享信息又保持各自的处理流(two-stream approach)。MoT 的特点是稀疏高效:不同模态有各自的 Transformer 层,只在多模态自注意力层做信息交互。(本质双流加交叉注意力) Texture & Refinement Model:这部分负责 $p(S,T∣I,M,O)$,从粗形状 O 中只保留"被占据"的体素(active voxels),跳过空区域,一个 6 亿参数的稀疏潜流 Transformer(sparse latent flow transformer)在这些活跃体素上做两件事——把粗糙的几何细节补全(比如把 643643 的粗体素细化成更高分辨率的形状 S),同时合成物体的纹理 T。 3D Decoders:得到Texture & Refinement Model的隐空间的特征表示之后,使用两个独立的解码器解码,一个mesh解码器用于传统建模行业,另一个Gaussian解码器用于实时渲染和新视角合成,两个解码器共享一个隐编码空间。 训练 ...

July 28, 2026 · 2 min

TODO

一个索引+TODO CS336 NanoGPT:从零训练一个 LLM NanoVLM-LLaVA NanoVLM-AnyRes CodeByMySelf-Transformer CodeByMySelf-Diffusion Pytorch-Tricks TODO CodeByMySelf-RL(TODO) 并行训练实践(未完成) DINO系列(DINO、DINOv2、DINOv3) Flow Transformer(以及一些变体,如 rectified flow、FLUX 式架构等) DPO(以及后续的更新,如 KTO、SimPO 等) Shortcut Model 蒸馏(thinking-aware distillation)

July 2, 2026 · 1 min

Vision Transformers Need More Than Registers

ViT使用语义无关的背景块作为表示全局语义的捷径,在全局注意力和粗粒度语义监督的驱动下。这篇论文选择性地将补丁特征集成到CLS token中,减少了背景主导的快捷方式的影响,并在标签、文本和自监督的情况下,在12个基准测试中提高性能。 论文信息 标题:Vision Transformers Need More Than Registers 作者:Cheng Shi, Yizhou Yu, Sibei Yang (University of Hong Kong & Sun Yat-sen University) 会议/期刊:arXiv preprint (2602.22394) 链接:https://arxiv.org/abs/2602.22394 代码:https://github.com/ChengShiest/LAST-ViT 前置工作:Vision Transformers Need Registers (Darcet et al., ICLR 2024) 研究背景与动机 原始 ViT 中的 CLS token 用于聚合全局图像表示 Darcet et al. (ICLR 2024) 发现 ViT 的特征图中会出现异常的 high-norm artifact patches,提出添加额外的 register tokens 来吸收这些 artifacts 但这篇论文认为问题不仅仅是 artifact patches —— ViT 存在更根本的 lazy aggregation 行为,Lazy Aggregation:在图像级粗粒度监督下,ViT倾向于将前景语义"扩散"到大量背景patch中,利用背景token作为编码全局语义的捷径。 lazy aggregation是这篇论文贡献中提出的一个关键假设,但是我不认为应该这么局限于vit,我认为这是对于目前整个学习范式的问题,数据不可能做到面面俱到,模型在寻找最优解的时候可能会偏向于利用背景分析,比如dataset中所有bird类图片的background都是类似的,模型就会把背景作为一个主要判断依据,但是从另一个角度来看,又不能完全不考虑背景信息,例如一个像狗又像狼的生物,在野外会判断成狼,但是在农村院子里就是狗,虽然通过主体自身信息能做到百分之八十到九十的准确性,但是背景并非完全无用,就像我在我的论文中描述的一样。 ...

June 21, 2026 · 2 min

CS336 Lecture 5-6: GPUs & Kernels, Triton

为什么这两讲至关重要 在已经学过的课程中,L1-L4 讲的是"模型长什么样",L7-L8 讲的是"多卡怎么协作"。L5-L6 卡在两者之间——单卡内部到底在发生什么。 如果你不理解 GPU 的硬件结构,你就无法理解: 为什么 Flash Attention 是过去五年 LLM 领域最重要的系统优化 为什么大矩阵乘法是"compute-bound"而 Attention 是"memory-bound" 为什么你写的 PyTorch 代码有时 GPU 利用率只有 30% ZeRO-3 的通信开销到底卡在哪里(看懂 L7-8 那块没懂的) Percy 在 L6 的原话很直白:“You cannot optimize what you don’t measure, and you cannot measure what you don’t understand.” Lecture 5:GPU 架构解剖(Tatsu) 5.1 从一张 H100 说起 H100 的基本参数: HBM(显存):80GB,带宽 ~3.35 TB/s SRAM(片上共享内存):每 SM 约 256KB,总带宽 ~几十 TB/s(比 HBM 快一个数量级) 计算能力:BF16 下 ~990 TFLOPS 关键不在于这些数字有多大,而在于数字之间的比例。 ...

June 8, 2026 · 12 min

CV领域的多任务统一模型

改论文intro的时候突然想到,看到过有人问为什么CV领域没一个Scaling law,很明显的原因是CV领域不同的任务太多了,先不说图片的信息密度问题,单是把所有任务统一到一个模型里,都很费时间。但是又想到,大部分cv任务本质上可以通过完美的理解图片来解决,比如:模型知道每一块每一个像素具体是哪个类别的(或者有一些任务是某种属性)。这样就有一个想法: 假设有一个模型,在给定一个框(可以是像素,也可以是规则/不规则的块)和完整图片,模型需要知道这个框是什么类别的,这样的话分类任务可以通过最高占比来决定(一张蜜蜂的图片,大部分是空白蓝天会分类错误,但是这并不能证明这个方法的缺陷,只能说明预先定义了空白蓝天是无意义的类别(从平常摄影的角度来说,也可能是对焦问题));分割和定位任务可以通过对每一个像素点(或者说大patch,像素太小了)循环问是什么类别来得到,不过这个时候就会有一个问题,效率问题,很自然就想到一个办法,采样。 想到这里突然就联系起来了 ,SAM用的就是用的采样,但是依然很慢其实()。想法就到这里了,虽然没什么结果,但是让我知道了这个领域,这篇就用来记一下试图去统一CV任务的论文阅读了(可能论文本身没写,但是确是有这种趋势或者可能的也会在这里放) 2026/6/5 写完上边那些突然想到,超分、去雾、生成这些任务怎么统一啊,诶,看来还是论文看少了。最后感慨一下,如果放在以前,脑子里有这么一个奇怪的idea,我需要花费数周的时间查询阅读相关论文,但是现在只需要一个小时就能大概了解这个方向大家在做什么。 2026/6/5 GPT4RoI[ECCV WORKSHOPS 2024] GPT最推荐我读的论文。它用户 instruction 里的 RoI / box 替换成 RoI features,再送进 LLM,做 region-level image understanding。它还强调 region-text pairs 对细粒度理解的重要性。

June 5, 2026 · 1 min

NanoVLM-AnyRes

AnyRes(动态高分辨率)是 LLaVA-NeXT 1.6 的核心创新,解决了固定分辨率下细节丢失的问题:将图像按纵横比自适应切分为多个 tile,每个 tile 独立编码后和全局缩略图一起送入 LLM。NanoVLM 在保留原始单图模式的基础上新增了 AnyRes 能力,两个模式通过一个布尔值切换。 问题:固定分辨率的瓶颈 NanoVLM 的基础版本将每张图 resize 到 384×384,经 SigLIP 编码为 729 个 visual token。这对大多数自然图像够用——但遇到高分辨率图像(文档、OCR、大场景)时,细节会被压缩到不可辨认。 一个具体的例子: 原始图像: 1920×1080 的截图(包含文字) ↓ resize 到 384×384 丢失了 (1920×1080) / (384×384) = 14× 的像素信息 ↓ 文字模糊到 LLM 无法识别 AnyRes 的思路很直接——不要压缩整张图,而是把大图切成多个小图,每个小图保持清晰。 核心算法 处理流程 原图 (如 1200×800, AR=1.5) │ ├─ Step 1: 选 grid → 2×2(4 tiles) │ ├─ Step 2: 生成缩略图 │ resize → 384×384 → 729 tokens(全局上下文) │ └─ Step 3: 切分 + 编码 tiles 原图 → resize_to_fit(768×768) → 切成 4 个 384×384 tile tile[0,0] → SigLIP → 729 tokens tile[0,1] → SigLIP → 729 tokens tile[1,0] → SigLIP → 729 tokens tile[1,1] → SigLIP → 729 tokens ───────── 总计: 5 × 729 = 3645 tokens 关键细节:缩略图保留全局上下文,tiles 保留局部细节。两者互补——缩略图告诉 LLM"这是一张包含文字和图表的信息图",tiles 告诉 LLM 文字具体写了什么。 ...

May 31, 2026 · 7 min

NanoVLM-LLaVA

总结了NanoVLM(LLaVA格式)的背景、原理、核心代码、实现细节。最开始只是LLaVA思想的初步实现,即使用一个线性层(或MLP)将视觉特征转换为文本特征,或者说是将视觉特征和文本特征对齐,后边会慢慢加入LLaVA-1.5、LLaVA-NeXT、LLaVA-OneVision的思想。 LLaVA LLaVA 最初的结构如下: 其中, Xv为输入图像,而Xq为输入文本指令。 Xv经过冻结的预训练视觉编码器(例如CLIP的视觉编码器)转换为视觉特征, 又进一步经过一个简单的线性层W转换为文本特征,便可和文本指令特征Hq一起送入LLM进行处理。 LLaVA的训练目标为LM: $$ p(\mathbf{X}_{\mathrm{a}} \mid \mathbf{X}_{\mathrm{v}}, \mathbf{X}_{\mathrm{instruct}}) = \prod_{i=1}^{L} p_{\boldsymbol{\theta}}(x_i \mid \mathbf{X}_{\mathrm{v}}, \mathbf{X}_{\mathrm{instruct}}, \mathbf{X}_{\mathrm{a}, < i}) $$即基于当前图像、历史指令、历史答复预测新一轮的答复。整个训练过程包含两步: 步骤1: 固定Vision Encoder和LLM,预训练Projection 以实现图像和文本模态对齐; 步骤2: 放开LLM,进行端到端的训练。 原始 LLaVA 1.0 的具体配置 组件 配置 参数量 Vision Encoder CLIP ViT-L/14@224² ~300M Projector 单层 Linear (1024→4096) ~4.2M LLM Vicuna-7B/13B 7B/13B Vision Encoder:使用 OpenAI 预训练的 CLIP ViT-L/14,输入分辨率为 224×224。patch_size=14,因此每张图产生 $(224/14)^2 = 256$ 个 patch token + 1 个 CLS token,每个 token 维度为 1024。视觉编码器在整个训练过程中完全冻结。 ...

May 6, 2026 · 14 min

多卡并行训练和微调技术

这是使用 Google DeepResearch 生成的偏理论分析报告,内容基于2026/4/27之前的公开资料和技术文献,主要是方便自己学习,准确性和时效性可能无法完全保证。 第一章 深度学习分布式训练的底层基石:显存与通信的博弈 随着大语言模型(LLM)参数规模从十亿级别飙升至万亿级别,深度学习的训练与微调已经彻底演变为一项复杂的系统工程。在这一演进过程中,单张图形处理器(GPU)的显存容量与计算能力已无法满足动辄数千吉字节(GB)的内存需求,多卡并行架构成为必然选择。 在多卡分布式训练中,架构设计的核心挑战始终围绕着**“显存墙(Memory Wall)”与“通信墙(Communication Wall)”**的博弈展开。 [1].1 显存消耗模型解构 要深刻理解分布式训练的演进,必须首先解构模型在训练过程中的显存消耗。在采用混合精度训练(Mixed Precision Training)及 Adam 优化器的情况下,每个模型参数通常需要消耗约 20 字节的显存: 模型状态(Model States): 权重与梯度: 半精度(16-bit)各占用 [2] 字节(共 [4] 字节)。 权重与梯度副本: 全精度(32-bit)各占用 [4] 字节(共 [8] 字节)。 优化器状态: Adam 优化器的一阶与二阶矩估计状态各占用 [4] 字节(共 [8] 字节)。 剩余消耗: 前向传播过程中产生的**残差状态(Residual States,即激活值 Activations)**和各类临时缓冲区,会随着批次大小(Batch Size)和序列长度呈线性甚至二次方增长。 示例: 一个 [75] 亿参数的模型,仅静态模型状态就需要消耗约 150GB 显存,远超单张 H100(80GB)的物理极限。 [1].2 通信原语与同步机制 在多 GPU 协同计算时,节点间必须通过特定的**集体通信原语(Collective Communications)**进行数据交互: 基础原语: 包括广播(Broadcast)、收集(Gather)、分散(Scatter)以及规约(Reduce)。 核心同步机制: 全规约(All-Reduce)。它确保了所有 GPU 在反向传播后能够获得一致的梯度总和。 从底层实现来看,最优的 All-Reduce 操作通常被分解为两个连续步骤:Reduce-Scatter(规约-分散) 与 All-Gather(全收集)。理解这种分解机制是掌握高级状态切分策略(如 ZeRO 和 FSDP)的技术基石。 ...

April 27, 2026 · 9 min