一、视觉的终极拷问:为什么视觉如此困难?
-
核心悖论:视觉对人类而言是“无意识”的本能(只需零点几秒),但对机器而言是极其复杂的计算过程。
-
本质定义:视觉不是“感知”,而是“推理”——从二维像素阵列中推导出构成该图像的三维世界物理属性(几何、材质、光照、语义)。
二、生物学的启蒙:从神经科学中汲取灵感
-
初级视觉皮层(V1)的特性(Hubel & Wiesel,1962):
-
V1区位于大脑后部,其神经元具有局部感受野(只响应视野中极小区域)。
-
神经元被组织成柱状结构,分别响应局部的简单模式,如特定方向的边缘、光栅条纹。
-
视觉处理的层级性:信息从V1流向V2(形状/轮廓)、V4(复杂物体/颜色)、IT区(面部/具体物体)。高层神经元的感受野更大,响应模式更抽象。
-
-
启示:优秀的视觉系统应当是层次化(Layer by layer)且局部连接(Local connectivity)的——这直接启发了卷积操作的诞生。
三、视觉作为计算问题:Marr 的三层次理论(1980s)
-
理论地位:计算神经科学的奠基理论,定义了视觉系统“到底在计算什么”。
-
三个表征阶段:
-
原始草图(Primal Sketch):提取图像中的物理基元(点、线段、边缘、端点)。
-
2.5维草图(2.5D Sketch):在以观察者为中心的坐标系中,初步恢复深度和表面朝向(遮挡关系初步显现,但未形成完整物体)。
-
三维表征(3D Representation):以物体为中心的坐标系,建立不随视角变化的完整三维形状与结构模型。
-
-
视觉的本质是“病态的反问题”(Ill-posed Inverse Problem):
-
正问题:已知三维世界 -> 生成二维图像(渲染,确定性强)。
-
反问题:已知二维图像 -> 反推三维世界(无穷多解,因为深度信息在投影中被丢弃了)。
-
解决途径:必须依赖先验知识(如物体结构常识、立体视觉提供的视差)来约束解空间。
-
四、计算机视觉的古典时代(深度学习之前):特征工程的巅峰
-
早期尝试:从数字图像(像素矩阵)入手。
-
边缘检测(如Sobel算子、Canny算子):寻找像素亮度剧烈变化的位置——这是早期“特征”的基础。
-
-
核心瓶颈:语义鸿沟:像素级别的数值变化与高层语义(“这是一只猫”)之间存在巨大鸿沟。
-
感知分组(Perceptual Grouping):如何将属于同一物体的边缘/区域连接起来,如何从背景中分割出前景(图-底分离)。
-
特征工程时代(手选特征):
-
为了识别物体,研究者设计了手工特征(如SIFT、HOG、LBP),试图将光照、旋转、尺度变化“编码”进特征中。
-
应用:人脸检测(Viola-Jones框架)和自动对焦技术实现了产业化落地。
-
-
转折伏笔:互联网的普及带来了海量图像数据(如Flickr),为后来的数据驱动范式埋下伏笔。
五、现代深度学习的进化史:三大要素的成熟
核心公式:深度学习成功 = 大规模数据 + 强大算力(GPU) + 可扩展的训练算法(反向传播)
-
开创者:Neocognitron(福岛邦彦,1980)
-
首次提出卷积和下采样(池化)结构。
-
局限:权重参数是人工手设的,没有自动学习机制(称为“无师自通”的模板匹配)。
-
-
算法灵魂:反向传播(Backpropagation,1986,Rumelhart等)
-
确立了神经网络严谨的数学训练范式:定义损失函数 -> 计算输出误差 -> 利用链式法则反向传播梯度 -> 自动更新所有卷积核参数。
-
意义:从此告别手调参数,权重从数据中自动涌现。
-
-
实战首秀:LeNet-5(Yann LeCun,1998)
-
成功将BP算法应用于CNN,用于手写数字识别(MNIST)。
-
实际部署于美国邮政和银行系统(识别支票上的手写数字)。
-
-
大规模时代的敲门砖:ImageNet数据集(Fei-Fei Li, 2009)
-
包含1400万张标注图像,覆盖2万多个类别。
-
补充:这是深度学习的“燃料”。此前算法在中小数据集上极易过拟合,无法体现高容量网络的潜力。
-
-
划时代的引爆点:AlexNet(2012,Krizhevsky等)
-
在ImageNet竞赛中,将Top-5错误率从26%骤降至15.3%(降低近一半)。
-
三要素时刻:
-
结构:深度卷积网络(8层)。
-
算法:反向传播 + ReLU激活函数 + Dropout正则化。
-
算力:使用GPU(英伟达)进行并行训练(这是最关键的物质基础,你的原文缺失)。
-
-
历史意义:宣告特征工程时代终结,端到端学习(Feature Learning)时代开启。
-
六、本课程关注的计算机视觉核心任务(由简到繁)
-
图像分类(Image Classification):输入单图,输出固定类别标签(基础任务)。
-
语义分割(Semantic Segmentation):像素级分类,不区分同类个体(如画面中三只猫都标为“猫”,像素一视同仁)。
-
目标检测(Object Detection):识别物体类别,并用边界框(Bounding Box)精准定位多个物体(区分实例位置,但框有冗余)。
-
实例分割(Instance Segmentation):像素级分类 + 区分个体(精确到每个独立物体的轮廓掩膜,最精细)。
-
图像描述/检索(次要提及):跨模态理解。
七、课程的核心方法论:从线性到非线性
-
图像的数字表示:图像本质是高维空间中的一个点(如32x32x3 = 3072维空间中的点)。
-
起点:线性分类器:
-
试图用一个超平面(决策边界)将不同类别的点分开(如猫 vs 狗)。
-
致命缺陷:大多数自然数据在原始像素空间中线性不可分(例如光线变化、背景混杂)。
-
-
引入非线性变换:通过堆叠多层神经网络(每层包含权重+激活函数ReLU/Sigmoid),将原始像素空间映射到特征空间,在特征空间中使数据变得线性可分。
-
训练准则(Loss Function):定义损失函数(如交叉熵损失、铰链损失/SVM损失)量化“预测值与真实标签的差距”。
-
泛化与正则化(Regularization):
-
高容量模型极易过拟合(死记硬背训练集)。
-
核心目标:不仅在训练集上表现好,更要在测试集(未见数据)上泛化良好。
-
正则化(如L2罚项、Dropout)用于惩罚复杂模型,迫使模型学到更简约、通用的特征。
-
-
最终公式:
最终模型 = 数据(Data) + 模型架构(Model) + 损失函数(Loss) + 反向传播优化(Optimization,如SGD/Adam)
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2501_94332508/article/details/163569986



