ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

视觉大模型Vision Encoder全流程:图像预处理、Token化、位置编码、特殊Token、Backbone、多尺度、Neck、特征融合、特征聚合、Token压缩、归一化、输出投影与视觉语言对齐

视觉大模型Vision Encoder全流程:图像预处理、Token化、位置编码、特殊Token、Backbone、多尺度、Neck、特征融合、特征聚合、Token压缩、归一化、输出投影与视觉语言对齐 一、先建立一张完整地图对于初学者,可以先把完整视觉侧理解成:Input Image / Video输入图像或视频:视觉模型接收的原始数据Image Preprocessing图像预处理:缩放、裁剪、归一化、分块等Visual Tokenization视觉Token化:把像素转换成Patch或视觉TokenPositional Encoding位置编码:告诉模型每个Token在图像中的空间位置Special Tokens特殊Token:如CLS、Register、Query Token,用于汇总或辅助计算Vision Backbone视觉主干网络:提取核心视觉语义特征,如ViT、Swin、PVTHierarchical / Multi-scale Representation层次化/多尺度表示:生成不同分辨率和语义层级的视觉特征Neck颈部网络:整理和重构Backbone输出的多尺度特征,如FPN、BiFPNFeature Fusion特征融合:融合跨尺度、跨层级或跨分支的信息Feature Aggregation特征聚合:将大量局部特征汇总为更紧凑的高级表示Token Compression / ResamplingToken压缩/重采样:减少视觉Token数量,降低后续计算成本Output Normalization输出归一化:统一特征尺度并提高数值稳定性Visual Features视觉特征:Vision Encoder最终输出的视觉表示Projection / Connector投影/连接器:将视觉特征映射到LLM可接受的表示空间LLM / Task Head大语言模型/任务头:完成问答、描述、检测、分割等最终任务最重要的是理解:Vision Encoder 不是某一个 Transformer,而是一条“把像素变成高质量视觉表示”的流水线。其中真正的核心可以归成以下几层。层级模块最简单的理解①图像预处理(Image Preprocessing)先把图片整理好②视觉 Token 化(Visual Tokenization)把图片切成机器能处理的小块③位置编码(Positional Encoding)告诉模型每块在哪里④特殊 Token(Special Tokens)给模型增加特殊“记事本”⑤主干网络(Backbone)真正理解图片⑥多尺度表示(Multi-scale Representation)同时看大物体和小物体⑦颈部网络(Neck)整理 Backbone 的不同层特征⑧特征融合(Feature Fusion)让不同信息互相交流⑨特征聚合(Feature Aggregation)把很多局部信息总结起来⑩Token 压缩(Token Compression)减少 Token 数量⑪输出归一化(Output Normalization)把特征数值整理稳定⑫输出投影(Output Projection)改变特征维度⑬视觉-语言连接器(Vision-Language Connector)把视觉特征交给 LLM下面逐个来看。二、① 图像预处理(Image Preprocessing)这一层没有所谓“五大网络”,因为它不是神经网络主体,而是一组输入处理方法(Input Processing Methods)。1. Resize最简单:I∈RH×W×3→I′∈RH′×W′×3I\in\mathbb{R}^{H\times W\times3}\rightarrow I'\in\mathbb{R}^{H'\times W'\times3}I∈RH×W×3→I′∈RH′×W′×3例如:1920×1080→224×2241920\times1080\rightarrow224\times2241920×1080→224×224优点是简单。缺点也明显:一张包含很小文字的高清图片压成224×224224\times224224×224后,小文字可能直接看不清。经典 ViT 就主要工作在固定输入尺寸和固定 Patch 网格之上。2. Center Crop先缩放,再从中间裁剪。Original Image ↓ Resize ↓ Center Crop ↓ 224 × 224这是传统 ImageNet 分类模型中非常经典的处理方式。适合:图像分类(Image Classification)但不特别适合:OCR、文档、GUI、图表。原因很简单:裁掉的区域可能刚好包含重要信息。3. Random Resized Crop训练时随机:选择区域;裁剪;缩放。相当于告诉模型:“同一个东西大小、位置发生变化,你都应该认识。”这是经典的数据增强(Data Augmentation)。4. Image Tiling高分辨率视觉大模型常见思路:High Resolution ImageGlobal ViewTile 1Tile 2Tile 3Tile NVision Encoder例如一张:2048×20482048\times20482048×2048图片可以被切成多个:448×448448\times448448×448区域分别编码。优点是保留细节。缺点是:Ntokens↑N_{\text{tokens}}\uparrowNtokens​↑导致 LLM 计算成本增加。5. Dynamic / Native Resolution到了 2024–2026,这已经成为非常重要的一条路线。Qwen2-VL 引入动态分辨率(Dynamic Resolution),让不同尺寸图片产生不同数量的 Visual Tokens;Qwen2.5-VL 延续了这一设计。SigLIP 2 也训练了支持多分辨率并保留原始宽高比的模型。所以到 2026 年,你可以把输入方案理解为:固定 Resize → Tiling → Dynamic Resolution → Native Resolution这是一条明显的演进路线。三、② 视觉 Token 化(Visual Tokenization)这是第一个真正值得系统研究的模型模块。假设图片大小:H×WH\times WH×WPatch Size:P×PP\times PP×P那么 Token 数量大致为:N=HPWPN=\frac{H}{P}\frac{W}{P}N=PH​PW​例如:224×224,P=16224\times224,\quad P=16224×224,P=16得到:N=14×14=196N=14\times14=196N=14×14=196五个经典代表模型Tokenization 方法核心特点ViTLinear Patch Embedding最经典的 PatchifyT2T-ViTTokens-to-Token逐渐聚合邻域CvTConvolutional Token Embedding用卷积生成 TokenPVT v2Overlapping Patch EmbeddingPatch 相互重叠Swin TransformerPatch Partition + Linear Embedding为层次化 Transformer 准备 Token1. ViTViT 是最经典的方法。先切 Patch:xpi∈RP2Cx_p^i\in\mathbb{R}^{P^2C}xpi​∈RP2C然后线性变换:zi=xpiEz_i=x_p^iEzi​=xpi​E其中:E∈RP2C×DE\in\mathbb{R}^{P^2C\times D}E∈RP2C×D高中生可以把它理解成:把一张图片切成 196 张“小卡片”,然后把每张小卡片翻译成一个DDD维数字向量。ViT 证明了直接把图像 Patch 当成序列输入 Transformer 是可行的。2. T2T-ViTViT 的问题是:一刀切 Patch 太粗暴。例如一条猫耳朵的边缘可能刚好跨过两个 Patch。T2T-ViT 提出:Tokens-to-Token(Token 到 Token)不断让相邻 Token 先交流,再进行聚合:
返回列表