尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

滴滴CV岗笔试复盘:图像处理与深度学习考点全解析

滴滴CV岗笔试复盘:图像处理与深度学习考点全解析 每年秋招季计算机视觉方向的同学总绕不开一个问题公司的笔试到底怎么出题。尤其是滴滴这种以“出行”为底色的公司它的CV岗笔试和互联网大厂通用AI岗差别很大。我有几个学弟学妹在准备2018校招时拿“滴滴出行2018校园招聘网申笔试-计算机视觉研发工程师第二批”的真题信息来找我复盘我帮他们把题型、考点、答题逻辑全部过了一遍。今天把这套复盘思路整理出来不光是给当年参加这批笔试的同学做个纪念更是给以后想投出行场景CV岗位的同学一份可以直接参考的备考地图。1. 先搞清楚一件事滴滴的CV工程师到底在解决什么问题1.1 从“人、车、路”三个维度理解业务场景投简历之前我建议你先把目标公司的业务模式和技术落点想明白。滴滴的核心业务是出行它的计算机视觉工程师不太可能像安防公司那样去做大规模静态人脸检索也不会像自动驾驶公司那样扑在纯感知方案上。滴滴的CV岗重点围绕三件事人司机与乘客的身份核验、状态监控、车车载设备采集的画面分析、行车记录、路道路环境感知辅助、事件检测。这个定位直接影响了笔试的出题风格。它不是考你最新的顶会论文复现而是更愿意考“图像处理基础 经典深度学习结构 工程落地思维”这类组合。说白了滴滴需要的是能进业务线干活的人笔试自然会往这个方向倾斜。1.2 真实业务中的边缘Case才是岗位的核心门槛滴滴这个场景有一个天然难点视觉数据来源极端复杂。白天强光、夜晚弱光、雨天玻璃反光、车辆颠簸导致的运动模糊、司机戴墨镜、口罩遮挡这些不是实验室数据集里能充分覆盖的。再加上车载设备算力有限模型不能铺得太大。所以笔试里出现的很多题目表面上看是基础题实际上都在暗示一个信息你能不能处理真实世界的退化输入。举个例子滤波、边缘检测、图像增强这些经典考点如果只背公式而不理解“噪声类型”和“算子的适用场景”遇到同一道题换个问法就挂了。这种出题逻辑是我在帮学弟复盘时反复强调的核心。1.3 岗位能力模型对笔试内容的映射用一张表格把滴滴CV岗的能力模型和笔试考点对应起来能力维度具体表现对应笔试考点图像信号处理基础能理解噪声、滤波、边缘、几何变换高斯滤波、Canny边缘检测、仿射变换经典机器学习功底明白损失函数、过拟合、特征工程正则化、交叉验证、PCA降维深度学习网络认知熟悉CNN基础结构与训练技巧卷积尺寸计算、感受野、BN、经典网络目标检测/分割落地能力了解检测框架的流程与评估指标NMS流程、IoU计算、mAP含义、分割基础工程与算法综合设计能针对实际问题设计方案系统设计题、场景题这个表格基本就是笔试的“考纲地图”。你拿着它去对照自己在哪个环节薄弱比盲目刷题高效得多。2. 笔试的整体结构与答题节奏别在选择题上恋战2.1 题型分布与分值逻辑从近几届滴滴CV岗笔试的风格来看第二批和第一批在模块上保持了较高一致性整体大致分为四块基础知识选择题约25-35道覆盖图像处理、机器学习、深度学习、概率统计、线性代数。这部分单题分值不高但总量大。简答/论述题约3-5道重点考察经典算法原理、模型对比、某个模块的设计思路。编程题约2-3道通常包含一道图像处理相关的实现一道数据结构/算法题。综合设计题约1-2道给出一个业务场景让你设计完整的视觉解决方案。有人可能会问为什么要有选择题我做过几次校招笔试题后体会是选择题能以最低成本快速筛选候选人的知识宽度。图像处理的知识点非常庞杂面试中不可能逐一追问笔试正好承担了“广撒网”的功能。2.2 时间分配是一切策略的前提整套笔试的时长一般是90到120分钟。我强烈建议你按这个节奏来分配选择题控制在35分钟以内。遇到不会的先标记不要耗。这类题往往是会就会、不会就蒙的效率题。简答题控制在30分钟左右。每道题控制在8分钟以内写核心点、画流程、列公式不要长篇大论。编程题留足30-40分钟。不要一上来就写代码先在草稿纸上把思路和边界条件写清楚。综合设计题放到最后。这题最考验系统性思维答得完整比答得多重要留15-20分钟。这个时间结构的核心原则是“先拿稳分再冲高分”。编程题如果卡住可以果断放弃一部分回头把简答题的步骤分拿到手。2.3 我踩过的答题顺序坑第一次参加这种类型笔试时我的习惯是从头到尾按顺序做结果在选择题里被几道概率题卡了将近二十分钟后面编程题只剩十五分钟写得非常仓促直接影响了整体分数。后来再复盘就明白了**笔试不是考试竞赛是人才筛选。**你的目标是“在有限时间内最大化得分”而不是“完美解答每一道题”。正确的打开方式是先整体扫一遍试卷把简单题、中档题、难题快速归类然后按性价比排序来作答。3. 高频考点逐项拆解从图像处理到深度学习的考察脉络3.1 图像处理基础不是考公式而是考“为什么选它”图像处理是滴滴CV岗笔试的重头戏它通常不会直接问你“高斯滤波的公式是什么”而是换一种方式给你一张带噪声的图问该用均值滤波还是中值滤波或者给你一个图像的直方图问你它偏暗还是偏亮该做哪种增强。复习这块时我的建议是把几个核心知识点按“问题→方案→原因”的结构吃透噪声类型与滤波器选择高斯噪声适合用高斯滤波或均值滤波脉冲噪声椒盐噪声适合用中值滤波。原因是中值滤波对离群点不敏感能在去噪的同时保住边缘。边缘检测流程Canny边缘检测的五个步骤必须背熟练熟——高斯滤波平滑、Sobel算子算梯度幅值与方向、非极大值抑制、双阈值检测、滞后连接。每一步的目的都要能说清楚。图像几何变换仿射变换平移、旋转、缩放和透视变换的区别要能讲明白。仿射是线性变换加平移保持平行性透视能改变视野角度不保证平行性。图像金字塔与特征高斯金字塔、拉普拉斯金字塔的用途SIFT、ORB特征的基本思想和适用场景尤其是“尺度不变性”和“旋转不变性”是靠什么实现的。这些内容看起来基础但恰恰是区分“真会”和“背过”的分水岭。我在辅导学弟时会故意让他们用一句话解释“为什么中值滤波能保边缘”很多人答不上来。这就是考场上常见的扣分点。3.2 机器学习基础概率题与模型评估是重灾区机器学习的考察范围其实很固定。从往年情况看几个高频方向基本锁定在损失函数与优化交叉熵损失和二分类交叉熵的表达式为什么不适合用MSE做分类。本质原因是MSE在Softmax输出层上梯度容易饱和收敛极慢。过拟合与正则化L1和L2正则化的区别。L1产生稀疏解L2限制权重幅度一般会结合“加上正则项后的损失函数表达式”来考。偏差与方差高偏差对应欠拟合高方差对应过拟合。结合Bagging和Boosting来理解Bagging降低方差Boosting降低偏差。模型评估准确率、精确率、召回率、F1、ROC曲线和AUC。尤其是正负样本不均衡时该用什么指标为什么。经典降维算法PCA的求解步骤以及主成分的物理含义。偶尔会要求写PCA的目标函数。再有一个小考点是概率统计比如贝叶斯公式、朴素贝叶斯原理、期望和方差的计算、简单的高斯分布性质。这些题分值不高但错一道很可惜复习时花一天把公式过一遍就够了。3.3 深度学习与CNN必考的“计算题”与“概念题”深度学习部分通常分两类一类是给网络结构算输出尺寸、参数量、感受野另一类是问经典网络的改进点和设计动机。输出尺寸计算是送分题公式必须形成肌肉记忆out (input - kernel 2 * padding) / stride 1卷积、池化、转置卷积的尺寸变化都要熟练掌握。转置卷积的输出out (input - 1) * stride - 2 * padding kernel感受野计算是高频中档题。从最后一层往前递归R_{L-1} (R_L - 1) * stride_L kernel_L注意是从后往前算初始感受野为1。多来几层就熟练了。经典网络结构方面VGG的“小卷积核堆叠”思路、ResNet的残差学习、GoogLeNet的Inception模块、BN层的作用都属于必背内容。答题时不能只背名字要说出要解决的问题。比如ResNet是为了解决深层网络退化问题残差结构让网络层数可以堆到上百层而不掉点。BN层的作用通常从四个维度回答加速收敛、允许更大学习率、减弱对初始化的敏感、有一定的正则化效果。背后的原因是它把每层输入分布拉到均值为0、方差为1缓解了内部协变量偏移。3.4 目标检测与图像分割读懂主干框架即可这部分是滴滴笔试中的“拔高题”。不会考太细的论文公式但会考察你对经典框架的整体理解。两阶段检测器Faster R-CNN的流程RPN是什么ROI Pooling做了什么为什么比Selective Search快。单阶段检测器YOLO和SSD的核心思想直接回归边界框和类别为什么速度更快但精度略低。重点说清楚“锚点Anchor”机制。评估指标IoU定义、mAP的计算过程。AP是Precision-Recall曲线下的面积mAP是所有类别AP的均值。NMS非极大值抑制这是简答题常客流程要能写出来按置信度排序选最高框删除与其IoU超过阈值的框重复直到结束。Soft-NMS改进的思路是降低而非删除重叠框的分数。图像分割FCN用转置卷积恢复分辨率U-Net的编码器-解码器结构和跳跃连接语义分割常用指标mIoU的计算方式。我在复盘时把这部分总结成“框架流程 核心组件 评价指标”三位一体的记忆法考试时按这个结构答基本能覆盖到80%的踩分点。4. 模拟真题与解题思路示例手把手教你拿步骤分4.1 选择题示例中值滤波的适用场景题目一张图片受到脉冲噪声椒盐噪声污染以下哪种滤波器最合适 A. 均值滤波 B. 高斯滤波 C. 中值滤波 D. 拉普拉斯滤波正确答案是C。脉冲噪声的特点是随机出现极亮或极暗的像素点均值滤波和高斯滤波会把这种离群点的影响扩散到周围像素导致图像整体被污染。中值滤波取邻域像素的中位数可以精确剔除这类离群值同时保留边缘。这类题想得分不难但要注意错选项的迷惑性。如果你只记得“中值滤波去椒盐噪声”这个结论而没有理解它为什么有效换一个场景比如高斯噪声环境就容易选错。复习时把噪声类型、滤波器类型的对应关系做成表格比反复刷题更高效。4.2 简答题示例NMS的流程与为什么要用NMS题目请简述NMS非极大值抑制的算法流程并说明它在目标检测中的作用。答题结构建议分三段算法作用目标检测器会输出大量冗余的候选框NMS用于在重叠度较高的框中保留置信度最高、位置最准的那个抑制其他框。具体步骤第一步将检测到的所有框按分类置信度从高到低排序第二步取置信度最高的框A加入结果集第三步计算其余框与A的IoU删除IoU大于设定阈值如0.5的框第四步在剩余框中重复第二步和第三步直到所有框处理完毕。NMS的局限与改进当两个同类物体靠得很近时NMS容易误删一个框所以出现了Soft-NMS不直接删除而是按IoU降低重叠框的分数。注意像这种经典算法题最好兼顾“流程”“作用”“改进方向”三个层次既能体现理解深度又能在字数上占优。步骤分基本跑不了。4.3 编程题示例实现灰度图的直方图均衡化这类题目一般会给出一个二维矩阵灰度图要求写出直方图均衡化的过程。核心公式s_k round(((L-1) / (M*N)) * cumsum(hist) )其中L是灰度级数M和N是图像宽高cumsum是累积直方图。如果你对OpenCV很熟会直接用cv2.equalizeHist但笔试很可能不允许调库或者明确要求“手写实现”。我的建议是笔试前把“读图→计算直方图→算累积分布→映射到新灰度”这条链路用Python代码练一练。我在带学弟学妹准备时要求他们必须能做到30分钟内写出可运行的实现流程包括灰度转换的细节。这类题扣分点通常出现在边界条件灰度范围是0到255还是0到L-1累积频率要不要归一化向下取整还是四舍五入。把这些边界想清楚代码一次跑通的可能性会大很多。4.4 综合设计题示例设计一个疲劳驾驶检测系统题目车载摄像头实时采集司机面部图像请设计一个计算机视觉方案用于检测司机疲劳状态并触发预警。这道题考察的是“系统设计 算法选型 工程落地”的综合能力。拿分的关键不是方案多新颖而是每一步都要有依据。我建议按如下结构答题输入与输出输入为车载摄像头RGB视频流输出为疲劳等级正常/轻度疲劳/重度疲劳和预警信号。整体流程人脸检测→人脸关键点定位→特征提取PERCLOS、打哈欠频率、头部姿态→状态分类→预警决策。关键模块选型人脸检测用轻量级检测网络如SSD或MTCNN在嵌入式设备上要控制计算量关键点用回归模型选68点或更精简的5点方案疲劳特征重点关注眼睛纵横比EAR的下降频率和嘴部纵横比MAR的突变。分类器选择传统做法用SVM或阈值规则条件允许的话用时序模型如LSTM学习状态序列。工程考虑夜间IR摄像头补光、司机戴眼镜/口罩时的鲁棒性、低算力下的模型量化和剪枝、预警阈值需要可配置避免频繁误报。评分时老师主要看你有没有结构化思维。别只写“用CNN做人脸检测”要写清楚“为什么选这个”“在真实场景下会有什么问题”“怎么解决”。能答到这个深度这道题基本就稳了。5. 备考路线与实操建议1到2个月怎么准备最有效5.1 知识模块优先级排布如果距离笔试还有4到8周建议把时间按以下比例分配第一优先级约40%时间图像处理基础 CNN基础。这是性价比最高的板块题目多、规律性强、短期突击效果明显。第二优先级约25%时间机器学习基础 目标检测/分割框架。这部分决定你能不能跟别人拉开差距。第三优先级约20%时间编程题练习。重点是数组、字符串、双指针、简单动态规划以及图像处理相关的手写实现。第四优先级约15%时间综合设计题准备。不用大量刷题精做3到5道典型场景题建立答题模板即可。这个排布基于一个判断笔试题的“基础分”占到60%以上。如果你基础题不丢分已经能进面试圈了。把大量时间花在啃前沿论文上性价比很低。5.2 高质量复习资料与工具链我当时用的复习路径和推荐的资料大概是这样图像处理冈萨雷斯《数字图像处理》的核心章节以阅读和做题并重。重点看频域、空间滤波、边缘检测和形态学处理。深度学习动手学深度学习的CNN章节配合原版论文的“路演版”解读重点看VGG、ResNet、YOLO、Faster R-CNN这几篇。编程练习LeetCode的简单和中等题为主刷到能快速写出边界情况即可不需要死磕困难题。框架练手PyTorch或TensorFlow任选一款把MNIST/CIFAR-10的分类训练从头到尾走一遍能加深对模型训练流程的理解。工具链方面别贪多。我见过不少同学在IDE、框架、远程服务器之间反复横跳反而耽误了时间。笔试前锁定一套环境写代码的手感稳定最重要。5.3 用项目复盘带动知识点巩固单纯看资料很容易看完就忘。更有效的方式是拿一个实际项目从头到尾复盘一遍把里面涉及的知识点全部提炼出来。举个例子你以前做过一个“车牌识别”的小项目可以这样拆解复盘车牌定位用的是什么算法如果是颜色特征边缘检测那对应的就是颜色空间变换、Sobel边缘检测、形态学闭运算这些考点。字符分割用到了连通域分析还是投影法这对应图像分割的基本方法。字符识别用的是CNN还是SVM这对应分类网络或经典机器学习的知识点。每次复盘一个项目就相当于把笔试中的高频考点过了一遍。这个方法比漫无目的地刷题更能建立知识之间的连接。6. 笔试踩坑实录与实用技巧6.1 我在复盘中被追问最多的“失分点”失分点一只写结论不写过程。滴滴笔试的判卷风格很看逻辑链。比如问“为什么用中值滤波”你只写一句“因为它能去椒盐噪声”是不够的要解释清楚“取中位数→不受离群点影响→保留边缘”这三步逻辑。失分点二编程题不处理边界条件。不少同学在编程题里能写出主逻辑但一遇到输入为空、数组越界、除零这些情况就挂了。笔试和LeetCode类似的判题系统通常专门有corner case测试宁可多写两行防御性代码也不要裸奔。失分点三综合设计题没有“取舍意识”。有些同学设计方案时什么先进上什么又上Transformer又上多模态完全不管硬件算力。实际阅卷时老师更在意你能不能根据场景做出合理取舍。比如嵌入式端就该考虑模型轻量化必要时用传统图像处理算法兜底这种工程思维非常加分。6.2 考场上的五个操作细节先扫卷再作答。拿到题后花2到3分钟把所有题目过一遍分清哪些是必拿分、哪些是尽力分。选择题用排除法。拿不准的题可以先排除两个明显错误的选项再从剩下两个里选正确率会高很多。简答题写关键词。阅卷基本按踩点给分别写冗长的废话把“IoU”“NMS”“感受野”“残差结构”这类关键词自然融入答案。编程题先写注释。把思路步骤用注释列出来再一步一步写代码即使时间不够阅卷老师也能看到你的思路。综合题画流程图。哪怕画得很丑也比纯文字表达清晰。流程框加上简单的箭头标注结构上就赢了一大半。6.3 关于“第二批”的一个现实观察从历年校招情况看滴滴的第二批笔试和第一批在岗位覆盖面、题目框架上基本一致只是具体题目会有变化。第一批的真题复盘非常值得关注因为考点方向、难度分布往往有很强的延续性。所以我的建议是如果你打算参加后续批次的笔试一定要把前面批次的真题或同学回忆版题目整理成自己的错题本尤其是那些“觉得会但没答完整”的题目。这个步骤效果立竿见影比多刷三套模拟题都管用。按照这套方法认真准备一两周再上考场的手感会完全不一样。以上提到的知识点覆盖、答题节奏、步骤分拿法都是我一次次复盘校招笔试之后浓缩出来的经验。你拿其中的任何一节去对标自己的薄弱项都会比盲目刷题更接近目标岗位的入场券。
返回列表