真实面经题目 · 原创解析
数据预处理一般用 OpenCV 做什么?
OpenCV 在数据预处理中常用于图像读取、格式转换、尺寸调整、归一化、去噪、增强、几何变换、颜色空间处理和基础标注清洗。回答要把训练数据处理和上线推理一致性一起讲清楚。
真实面经题目 · 原创解析
OpenCV 在数据预处理中常用于图像读取、格式转换、尺寸调整、归一化、去噪、增强、几何变换、颜色空间处理和基础标注清洗。回答要把训练数据处理和上线推理一致性一起讲清楚。
一般会用 OpenCV 做几类事:读取和解码图片、BGR/RGB 和灰度等颜色空间转换;resize、crop、padding、旋转、透视变换等几何处理;归一化、直方图均衡、滤波去噪、锐化、模糊等质量处理;训练阶段做数据增强,例如随机裁剪、翻转、颜色扰动、仿射变换;还可以做边缘、轮廓、阈值分割和标注检查。关键是训练和推理预处理口径要一致,否则模型效果会漂。
OpenCV 常用于图像解码、通道转换、灰度化、BGR/RGB 转换、数据类型转换和异常图片过滤。很多模型训练问题来自通道顺序或 dtype 处理错误。
模型通常要求固定输入尺寸,因此要 resize、center crop、random crop、padding 或 letterbox。检测和分割任务还要同步变换标注框、关键点或 mask。
可以做归一化、均值方差标准化、直方图均衡、CLAHE、滤波去噪、锐化和光照校正。这类处理要基于数据问题选择,不能为了处理而处理。
训练阶段常用翻转、旋转、缩放、仿射变换、颜色扰动、模糊和噪声模拟提升泛化。增强策略要符合真实业务分布,避免生成不合理样本。
上线推理必须复用同样的 resize、归一化、通道顺序和裁剪规则。批处理、缓存、并行解码和硬件加速会影响训练吞吐和线上延迟。
默认是 BGR,而很多深度学习模型或可视化库使用 RGB,因此经常需要显式转换。
图像缩放、padding 或裁剪后,bounding box、mask 和关键点坐标必须同步变换,否则标签会错位。
不是。增强要符合真实场景,过强或不合理增强会改变标签语义,导致模型学到错误分布。