章节摘要:计算机视觉让机器"看懂"图像和视频。本章从图像的数值表示出发,先讲传统图像处理(滤波、边缘、特征)让你建立"图像是数字矩阵"的直觉,再深入 CNN 驱动的现代 CV:从图像分类的经典 backbone 演进,到目标检测的两阶段与单阶段之争,到语义分割的编码器-解码器结构,最后落到工程实践——迁移学习、模型压缩、部署优化。读完你会理解每个 CV 任务的本质是什么、为什么用这种网络结构、以及面试官追问"换个数据集怎么办"时该怎么答。
阅读完本章,你应当能够:
CV 的核心矛盾是"空间结构 vs 计算成本":图像是高维稠密信号,全连接层参数量爆炸,CNN 用参数共享解决;但不同任务需要的感受野和输出粒度不同,于是演化出分类、检测、分割这些不同网络头部。
先建立"图像是数字矩阵"的直觉。讲卷积、池化的数学操作,以及高斯滤波、Sobel、Canny、HOG、SIFT 这些传统方法——它们在面试里常被问,也是理解深度特征的基础。
CNN 的演进史和四大核心任务(分类、检测、分割、实例分割)。重点讲架构设计的动机:为什么 VGG 用小卷积核、为什么 ResNet 加残差、为什么 YOLO 用单阶段。
从论文到生产的鸿沟。迁移学习怎么用、模型怎么压缩部署、数据增强和长尾分布怎么处理。这些是工程岗面试的高频追问。
先认图像的数值本质和传统特征(2.1),再看 CNN 如何自动学特征并演化出各任务模型(2.2),最后把模型从论文落到生产(2.3)。三者层层递进——2.1 是直觉,2.2 是模型,2.3 是工程。
2.1 图像基础 ──► 2.2 核心模型 ──► 2.3 工程实践 (卷积/池化/特征) (分类/检测/分割) (迁移/压缩/部署)
CV 面试的考点分布相对稳定:检测(NMS、IoU、anchor 机制、两阶段与单阶段对比)是绝对的头部,几乎每场 CV 面试都会出现;分割(语义与实例的区别、FPN 的作用)紧随其后;图像分类的经典网络演进是暖场题,用来判断候选人的基础是否扎实;传统图像处理近年占比下降,但 Sobel、高斯滤波、直方图均衡这几个名字仍会以快问快答的形式出现;部署与压缩则是区分"做过项目"和"跑过 demo"的分水岭,量化、剪枝、蒸馏三件套至少要能讲清各自的精度损失来源。
结合岗位类型看侧重:自动驾驶和安防类岗位加重检测与小目标;医疗影像类岗位加重分割与数据不均衡;消费级 App 的端侧 AI 岗位加重压缩部署与实时性权衡。投递前花半小时研究目标公司的业务方向,把对应小节的追问链多练两遍,性价比极高。
其一,只背网络结构不看数据。CV 是强数据驱动的领域,面试官问"小目标检测怎么办"时,答"用 FPN"只是及格,答"小目标在下采样后剩余像素少、anchor 正样本稀缺,所以要提高输入分辨率、加高分辨率检测头、配合小目标复制粘贴增强"才是优秀。后者需要对数据流有真实体感。其二,忽视可视化能力。能把卷积过程、NMS 流程画在白板上讲清楚,是通过 CV 面试的基本功,平时读代码时顺手画数据流图是低成本训练法。其三,把 OpenCV API 当知识。面试官问"腐蚀和膨胀",期待的是形态学操作对二值图的集合解释,不是函数名。API 会查文档就行,原理才是你的资产。
一个提醒:本章的每一节都建议配一次动手验证——用十行代码把 HOG 或 NMS 实现一遍,比读十遍文字更能抵御面试现场的紧张。
线性代数里矩阵乘法、转置、形状变换要达到条件反射(卷积就是这点的特训);概率里条件概率和贝叶斯(分类器的后验解释);微积分里链式法则(反向传播的语言)。编程上 Python 加 NumPy 的向量化思维是底线,会写循环但不会写广播的代码在 CV 面试里直接扣分。准备时间因基础而异,理工科背景通常两周够。
图像模型的泛化瓶颈常常在数据的多样性而非数量:同一只猫换个角度、光照、背景,像素层面天差地别。增强用几何变换(翻转、裁剪、旋转)和色彩扰动(亮度、对比度、饱和度)低成本扩充多样性,等价于把"不变的语义"这个先验注入训练。进阶考点是增强策略的自动化搜索和针对任务的定制(检测要同步变换框,分割要同步变换掩码)——增强不是免费的,错误的增强会引入标签噪声,比如把数字图片上下翻转就是灾难。
有效答案的结构是"信息源加消化方式加产出":信息源列举论文名字而非泛泛的网站;消化方式是读代码复现关键实验而非只读摘要;产出是能把前沿方法用自己的话讲清楚并判断它在业务里的适用性。一个小技巧:面试前重读两篇近期顶会论文的引言和相关工作部分,它们是压缩的技术演进史,聊起来自然带出你的知识坐标系。