核心要点
列举 resize、crop、normalize、色彩空间转换
说明与训练/推理一致性
区分分类、检测、分割的不同预处理
提及去噪、直方图均衡等可选步骤
简要回答
CV 流水线常见预处理:读取解码 → 尺寸调整(resize/crop)→ 颜色空间转换 → 去噪/增强 → 归一化(mean/std)→ 转 Tensor。训练与推理必须用同一套参数,否则分布偏移导致精度骤降。
标准回答
一、通用步骤
- 读取与解码:JPEG/PNG → ndarray(OpenCV、PIL)
- 几何变换:resize 到固定输入(224×224)、center/random crop、letterbox(检测保持比例)
- 色彩:BGR↔RGB;可选 HSV/LAB
- 去噪:高斯滤波、bilateral(保边去噪)
- 归一化:像素缩放到 [0,1] 或 ImageNet mean/std = $(x-mu)/sigma$
- 数据增强(训练):翻转、旋转、ColorJitter(PyTorch transforms)
- 格式:HWC → CHW float32 tensor,必要时 batch 维
二、任务差异
- 分类:固定 resize + center crop
- 检测:多尺度、mosaic、保持长宽比 pad
- 分割:同步变换图像与 mask(最近邻插值 mask)
三、工程要点
面试里可以补一个视觉任务例子:计算机视觉流水线中有哪些常见图像预处理步骤 在分类、检测、分割或多模态理解里分别会影响数据增强、模型结构、指标选择和误检漏检分析。这样回答会比单独讲概念更像真实项目经验。
回答思路
【定义】用一句话说清「计算机视觉流水线中有哪些常见图像预处理步骤」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:训练用 random crop、推理用另一套尺寸;mask 用双线性插值(应 nearest);忘记 BGR/RGB 通道顺序。
追问
追问 1:ImageNet 归一化参数为何通用?
大量预训练模型用 ImageNet mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225]。迁移学习时应保持一致;全自训练可用自己数据集的统计量。
追问 2:resize 用双线性还是最近邻?
照片用 bilinear/bicubic;标签图/深度图/分割 mask 用 nearest 避免产生新类别。检测 letterbox 常用 bilinear。
追问 3:预处理放在 CPU 还是 GPU?
轻量变换可在 GPU(DALI、nvJPEG);重 I/O 与增强常 CPU 多进程 DataLoader 预取,避免 GPU 饿死。瓶颈用 profiling 定位。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
