准备计算机视觉方向秋招的朋友对行业里流传出来的大厂笔试题多少都会留个心眼毕竟这些题恰好能反映出一家公司真正看重的能力模型。顺丰科技2019年秋招视觉算法工程师的笔试客观题合集就是圈子里传播度很高的一套。我当时刷完一遍的感受是题目不算偏但覆盖面极广从图像处理基础到深度学习原理再到目标检测里的实现细节每一道题都在提醒你——基础不牢笔试现场是真的会慌。这套题最值得参考的地方在于它不靠超纲难题博眼球而是把视觉算法工程师日常工作中最常用的知识用一种“你必须真懂”的方式考了一遍。这篇内容我打算从做题人的视角出发把这套客观题涉及的知识点、常见易错点、备考方法和答题策略完整拆一遍。不管你是正在准备秋招的应届生还是想检验自己基础是否扎实的从业者这套题都能当一面镜子用。我会结合典型的题目形态和解题思路把每一类考点掰开揉碎顺便讲讲我当时踩过的坑和后来总结出来的复习方法。1. 顺丰科技视觉算法岗笔试到底在考什么视觉算法工程师这个岗位在不同公司干的活差别很大。有的偏自动驾驶有的偏工业质检有的偏内容推荐而顺丰科技这类物流科技公司视觉算法的落地场景非常具体。1.1 物流行业的视觉算法应用场景快递物流场景里视觉算法主要解决几类问题快递面单上的文字识别OCR方向、包裹体积重量测量3D视觉方向、自动化分拣线上的包裹识别与定位目标检测方向、运输途中货物破损与异形件检测异常检测方向还有无人仓里AGV和机械臂的视觉引导SLAM与位姿估计方向。这些业务场景决定了笔试的命题侧重点。你会发现这套题里几乎不会出现特别偏门的三维重建或者SLAM公式推导更多是图像处理基础、卷积网络原理、目标检测模型演进这类“高频率使用、默认你已掌握”的内容。原因也很直接公司招人是要到产线上干活的那些天天用到的知识点如果不牢固后面项目上手会非常痛苦。所以笔试阶段先用客观题把基础不扎实的候选人筛出去是性价比很高的方式。1.2 客观题背后的命题逻辑客观题虽然只是选择题和判断题但信息量其实不小。从题目分布就能看出一个团队的技术栈和关注点图像处理占比多少深度学习理论占比多少数学基础占比多少模型结构细节占比多少这些都在暗示你入职以后要面对的工作内容。我当时整理这套题的时候把考点分成了五个模块数字图像处理与经典CV、机器学习基础、深度学习原理、数学与优化基础、目标检测与分割任务。这五个模块基本上是视觉算法岗位笔试的“标准套餐”只是不同公司的侧重比例不一样。顺丰科技的这套题里图像处理和深度学习原理的比重最高目标检测相关题目也占了不少机器学习基础相对少一些数学题则穿插在各类计算题里考察。了解这个框架以后你会发现复习的时候完全有迹可循不需要漫无目的地刷题。2. 核心考点模块拆解每个知识点都值得重新过一遍很多同学复习视觉算法笔试喜欢直接刷LeetCode或者背八股但客观题考察的往往是概念辨析和快速计算能力背题效率很低。我把这套题涉及的五个模块按考频和重要性整理了一遍逐个说明到底需要掌握到什么程度。2.1 数字图像处理基础高频但容易丢分的板块图像处理基础是视觉算法岗笔试的必考板块难度不大但陷阱不少。高频考点集中在滤波、边缘检测、形态学、直方图操作和色彩空间转换这几类。滤波这块高斯滤波、均值滤波、中值滤波各自的特性和适用场景必须要能说清楚。高斯滤波用加权平均的方式平滑图像对高斯噪声效果好中值滤波取邻域中位数对椒盐噪声的抑制能力突出同时能比较好地保留边缘均值滤波实现简单但会模糊边缘。笔试里经常会给你一张带噪声的图和几类噪声类型让你选对应的滤波方式本质上考的就是这个。边缘检测是另一个必考方向。Canny边缘检测的完整步骤要能默写高斯滤波降噪、计算梯度幅值与方向、非极大值抑制、双阈值检测和滞后连接。Sobel算子和Scharr算子主要用于计算梯度其中Scharr是对Sobel的改进权重更大、对边缘响应更强烈。有一类题会考你“为什么Canny要先做高斯模糊”答案是为了减少噪声对梯度计算的干扰避免把噪声当边缘检测出来。形态学操作也经常出现。腐蚀是求局部最小值作用是收缩前景、去除小白点膨胀是求局部最大值作用是扩展前景、填补小洞开运算是先腐蚀后膨胀用来去除小的亮斑闭运算是先膨胀后腐蚀用来填补小的暗洞。这四个操作一定要分清先后顺序及各自用途笔试中常以“下列哪个操作可以用来去除二值图像中的细小噪点”这类形式出现。直方图均衡化考的是原理理解。它通过累积分布函数对灰度值做映射让输出图像的灰度直方图分布更均匀从而提升对比度。这里容易混淆的点是直方图均衡化并不保证直方图完全平坦它只是让灰度级分布更舒展。还有一道经典计算题会问你“3x3的均值滤波对图像反复执行最终会得到什么效果”反复平滑后图像会趋向于一个均匀的灰度区域细节逐渐消失。2.2 机器学习基础混淆概念集中区机器学习基础这部分视觉岗位笔试不会考太深的推导但基本概念必须非常清晰尤其是几个容易混淆的概念组合。损失函数是必考内容。分类任务里交叉熵损失和MSE的对比是高频中的高频。为什么分类不用MSE核心原因是MSE对错误分类的梯度在饱和区会变得很小收敛速度慢而交叉熵配合Softmax的梯度形式简洁在概率输出场景下有更好的优化性质。有一类判断题会考“精度高就一定说明模型好”这是一个典型的陷阱题在样本不均衡的场景下精度高没有任何意义比如99%都是负样本模型全预测负样本精度也有99%。过拟合的识别和应对也是必考方向。哪些手段能抑制过拟合L1/L2正则化、Dropout、数据增强、早停、降低模型复杂度。这里要注意L1和L2的区别L1产生稀疏解倾向于把不重要的特征权重压成0L2只是让权重整体变小不会产生稀疏。还有一道容易做错的题问“增加训练数据一定可以缓解过拟合吗”答案是未必需要看新增数据的分布是否与原始数据一致以及是否引入了更多噪声。评估指标的辨析一定要吃透。Accuracy、Precision、Recall、F1、AUC、mAP这些指标的定义和适用场景必须了然于胸。尤其在类别不平衡的检测场景下Precision和Recall往往此消彼长F1是两者的调和平均而mAP则是目标检测里综合评估模型性能的标准指标。笔试中常会给你一组TP、FP、FN数量让你计算Precision或Recall这类题只要公式不出错基本没问题。2.3 深度学习核心知识计算题的重灾区深度学习部分是整套题里真正拉开差距的地方因为它既考概念又考计算。最常见的计算题是卷积输出尺寸和参数量计算。卷积输出尺寸的公式必须烂熟于心输出尺寸 (输入尺寸 2 x padding - kernel_size) / stride 1。如果除不尽需要向下取整。比如输入11x11的特征图用4x4卷积核padding1stride2输出尺寸就是(11 2 - 4)/2 1 5结果是5x5。这类题每次都必须一步步算不能凭感觉猜。参数量计算则是kernel_height x kernel_width x input_channels x output_channels还要注意是否包含bias有bias就再加一个output_channels。感受野也是一个常考概念。感受野是指输出特征图上某个位置对应输入图像上的区域大小。两层3x3卷积叠加的感受野等效于一层5x5卷积三层3x3卷积等效于一层7x7卷积。为什么很多网络用堆叠小卷积核代替大卷积核原因有三个参数量更少3x3两层共18个参数5x5单层25个参数、非线性更强、感受野更大。这个知识点在客观题里出现过不止一次要特别注意。Batch Normalization的作用常被简化为“加速收敛”但笔试里如果遇到更细的题得知道它是在每个batch内对特征做归一化使其均值为0、方差为1然后通过可学习的缩放和平移参数恢复表达能力。BN能有效缓解内部协变量偏移问题允许使用更大的学习率还具有一定正则化效果。梯度消失和梯度爆炸的应对措施也是高频题。ResNet里的残差连接就是典型的缓解梯度消失设计因为恒等映射的梯度可以无损回传。激活函数ReLU相比Sigmoid的优势包括计算简单、缓解梯度消失、产生稀疏激活但ReLU也有神经元死亡问题所以后续又出现了LeakyReLU、ELU这类变体。这套题里如果考激活函数大概率是在考你这些对比维度的理解。2.4 数学与优化基础别在这些题上丢冤枉分数学部分占比不大但一旦丢分就很可惜。矩阵特征值和特征向量的定义要清楚对于方阵A若存在非零向量v和标量λ使Av λv则λ是特征值v是对应特征向量。矩阵的迹等于所有特征值之和行列式等于所有特征值之积这两个性质是选择题里的常见考点。优化算法方面SGD、Momentum、RMSProp、Adam的区别要能区分。SGD收敛慢且容易震荡Momentum通过累积历史梯度来抑制震荡、加速收敛RMSProp对每个参数自适应调整学习率Adam结合了Momentum和RMSProp的思路是实践中用得最多的默认选择。有一类判断题会问“学习率越大收敛越快”这个说法是错的学习率过大会导致损失震荡甚至发散。概率方面贝叶斯公式要能熟练应用。给一个先验概率和似然概率计算后验概率是常见的出题方式。信息熵的定义也要知道熵越大表示系统不确定性越大。KL散度用于衡量两个概率分布之间的差异它是非对称的也就是说KL(P||Q)不等于KL(Q||P)这个非对称性是一个经典陷阱。2.5 目标检测与分割紧跟技术演进脉络目标检测是视觉算法岗位笔试的重头戏因为这直接对应业务场景。从R-CNN到Fast R-CNN再到Faster R-CNN的演进逻辑一定要理清楚R-CNN用Selective Search生成候选区域然后对每个候选区域分别做CNN特征提取和SVM分类速度极慢Fast R-CNN把特征提取提到全图层面通过RoI Pooling直接从特征图上抠区域速度和精度都有提升Faster R-CNN引入RPNRegion Proposal Network网络来生成候选区域把整个检测流程变成了端到端的网络。这块如果出排序题要能准确排出三代模型的演进顺序和各自改进点。YOLO系列的特点是单阶段检测直接回归目标框和类别速度优势明显。从YOLOv1到YOLOv5以及后续版本改进的方向包括多尺度预测、Anchor机制、特征金字塔等。这里常考的一个问题是“单阶段检测和双阶段检测的核心区别”双阶段先提候选框再做精细分类精度更高但速度慢单阶段直接回归速度快但小目标检测精度相对弱一些。分割任务里FCN是图像语义分割的开山之作用全卷积结构替代全连接层可以接受任意尺寸输入。U-Net采用编码器-解码器结构加跳跃连接在医学图像等小样本场景表现突出。DeepLab系列则引入空洞卷积来扩大感受野。客观题常考这些网络结构的核心设计思想比如“U-Net的跳跃连接解决了什么问题”答案是融合浅层细节信息和高层语义信息改善小目标分割效果。评估指标IoU和mAP也要重点掌握。IoU计算两个框的交集面积除以并集面积范围是0到1。mAP则是先对每个类别计算APPR曲线下的面积再对所有类别取平均。有一类题会给你两个框的坐标让你手动计算IoU这种题只要坐标系画对基本稳拿分。3. 典型客观题实战解析跟着题目过一遍思路光讲知识点容易让人觉得自己都会但一上手就懵。我从这套题的常见形态里整理了一些有代表性的题目每一道都给出完整的解题思路帮你把上一部分的知识点落到实处。3.1 图像处理类题目实战题目1对一幅被椒盐噪声污染的灰度图像下列哪种滤波方式效果最好 A. 均值滤波 B. 高斯滤波 C. 中值滤波 D. 拉普拉斯滤波答案是C。这道题的核心在于椒盐噪声的特点是图像上随机分布的白点和黑点中值滤波取邻域中位数可以有效地把这种极值点剔除掉。均值滤波和高斯滤波对这种噪声虽然也有一定平滑作用但会在去除噪声的同时严重模糊边缘和细节效果远不如中值滤波。题目2对一幅800x600的RGB彩色图像执行3x3均值滤波输出图像的尺寸是多少 A. 800x600 B. 798x598 C. 802x602 D. 无法确定答案是A。这里有个容易忽略的点如果卷积操作使用same padding在图像周围填充边界输出尺寸保持与输入一致如果valid padding不填充输出尺寸才缩小。题目里没有明确说明padding时通常默认是same padding操作。“滤波会使图像变小”是一个常见误区但取决于边界处理方式。题目3直方图均衡化后的图像下列描述正确的是 A. 直方图完全平坦 B. 对比度一定提升 C. 灰度级数一定减少 D. 变换函数是单调递增的答案是D。直方图均衡化的映射函数是基于累积分布函数构造的累积分布函数一定是单调递增的所以D正确。A错在均衡化只是让直方图更均匀很难做到完全平坦B选项容易混淆对比度通常提升但也不绝对如果原图直方图本身已经均匀均衡化后变化不大C则明显错误灰度级数不变。3.2 深度学习与计算类题目实战题目4输入特征图尺寸为11x11卷积核尺寸为4x4padding1stride2输出特征图尺寸为 A. 4x4 B. 5x5 C. 6x6 D. 7x7答案是B。套公式(11 2x1 - 4) / 2 1 (13 - 4)/2 1 4.5 1 5.5向下取整再加1实际计算顺序是(11 2 - 4) / 2取整后加1(11 2 - 4)/2 4.5向下取整为4再加1等于5所以是5x5。这类题必须把公式写出来不要心算尤其是除不尽的情况很容易出错。题目5一个卷积层的输入通道数为64输出通道数为128卷积核尺寸为3x3不使用bias该层参数总量为 A. 73728 B. 65536 C. 18432 D. 2048答案是A。计算方式3x3x64x128 9x64x128 73728。这类题一出来就要条件反射地写出公式kernel_h x kernel_w x in_channels x out_channels。如果题目说包含bias就在结果上再加out_channels。不看通道数直接算9x128的人不在少数一定要仔细审题。题目6关于Batch Normalization下列说法错误的是 A. 训练和推理时使用相同的归一化统计量 B. 可以允许更大的学习率 C. 对每个batch内的数据做归一化 D. 具有一定的正则化效果答案是A。训练时BN使用当前mini-batch的均值和方差做归一化推理时则使用训练过程中累计的全局均值和方差。如果把训练和推理时的统计量混为一谈这个选项就是对的但题目问的是错误说法所以A是正确答案。BN已经成为卷积网络标配这个细节必须掌握。3.3 数学与机器学习类题目实战题目7矩阵 [[2, 0], [0, 3]] 的特征值之和为 A. 2 B. 3 C. 5 D. 6答案是C。矩阵的迹等于特征值之和这个矩阵的迹是235。如果单独算特征值也能算出来对角线矩阵的特征值就是对角线元素分别是2和3和为5。这类题就是送分题关键是要知道“特征值之和矩阵的迹”这个快速计算的结论。题目8二分类问题中正样本100个负样本9900个模型把所有样本都预测为负样本则Accuracy和Recall分别是多少 A. Accuracy 99%Recall 100% B. Accuracy 99%Recall 0% C. Accuracy 1%Recall 0% D. Accuracy 1%Recall 100%答案是B。Accuracy 正确预测数 / 总数 9900 / 10000 99%Recall TP / (TP FN)所有正样本都被预测为负TP0所以Recall0%。这类题给了一个非常典型的样本不均衡场景也侧面说明了为什么只看Accuracy是不够的。如果面试官问你怎么评价这个模型正确答案是不好用单一指标评价应该综合看Precision、Recall、F1或者AUC。题目9Softmax输出[0.1, 0.2, 0.7]对应的one-hot标签是[0, 0, 1]该样本的交叉熵损失为 A. -ln(0.7) B. -ln(0.1) C. -(ln0.1 ln0.2 ln0.7) D. ln(0.7)答案是A。交叉熵损失的计算公式是 -Σy_i * ln(p_i)其中y_i是one-hot标签。由于只有y_31其他项都为0所以损失等于 -ln(p_3) -ln(0.7)。这道题本身不难但能帮大家区分交叉熵和负对数似然的关系以及one-hot编码下损失函数退化为只关注正确类别的概率。3.4 客观题答题策略与时间分配答题策略上我的经验是第一轮先把所有有把握的题快速过一遍标记不确定的题第二轮再回来推敲。原因很简单客观题一般题量大、单题分值不高在一道计算题上死磕5分钟很可能导致后面简单题没时间做性价比极低。对于计算类题目我的习惯是哪怕再简单的公式也在草稿纸上写一遍。卷积尺寸计算这类题非常容易因为记错公式而做错特别是有padding有stride又除不尽的时候。手写一遍看似浪费时间实际比心算出错后反复检查快得多。对于概念辨析类题目强烈的单选项往往藏着陷阱。比如“下列说法错误的是”意味着至少有三个选项是正确的这时候用排除法先把明显正确的划掉再对比剩余两个选项的细微差别准确率会提高很多。我总结的规律是凡是出现“绝对化”表述的选项比如“一定”“完全”“所有”大概率是错误项凡是出现“可以”“通常”“有助于”这类留有余地的表述大概率是正确项。4. 备考路线和实用建议如果你正在准备类似的视觉算法岗笔试这套题的复习路线可以按两阶段来安排。4.1 两个月备考时间线第一个月主攻基础概念扫盲。图像处理部分把冈萨雷斯的《数字图像处理》前几章过一遍核心是滤波、边缘检测、形态学和直方图操作课后习题里涉及概念辨析的题目都做一遍。深度学习部分以李沐的《动手学深度学习》为主CNN章节要认真看重点理解卷积计算的参数、感受野推导和BN原理每章后面的练习至少完成计算题部分。这个阶段不求速度但求每个概念都能用自己的话说清楚。第二个月进入刷题和查漏补缺阶段。把历年各大厂的视觉算法客观题集中刷一遍每道错题都要记录到错题本上并且至少写清楚三个内容错在哪、为什么错、正确答案的依据是什么。刷题的目的不是背题而是找到自己的知识盲区。比如我当时刷完第一轮以后发现ResNet的具体结构细节总是记混后来专门花了一个下午把ResNet18/34/50的层数和通道数变化画成了表格反复记忆后就再也不错了。最后一个星期做模拟练习严格控制时间模拟真实的笔试场景。我建议用电脑做题而不是手机因为很多笔试平台是在电脑上操作的提前适应读题节奏和打字方式很重要。4.2 资料选择与高频知识清单资料方面我的建议是宁精勿多。以“Cs231n课程笔记《动手学深度学习》冈萨雷斯《数字图像处理》历年真题”为核心就够了。网上流传的各种“面经汇总”可以作为补充但不能作为主要复习资料因为很多内容整理质量参差不齐信息滞后或者错误的情况并不少见。复习过程中建议整理一份自己的高频知识清单把容易出题的知识点都列出来反复自测。我当时的清单大概是这样的图像处理部分包括高斯滤波、中值滤波、Canny步骤、直方图均衡化、腐蚀膨胀开闭运算深度学习部分包括卷积输出尺寸、参数量计算、感受野、BN原理、梯度消失解决思路、ResNet和MobileNet的设计思想检测部分包括R-CNN系列演进、YOLO核心思想、IoU计算、mAP定义、Anchor的概念。这些内容几乎覆盖了客观题80%以上的考点把这份清单吃透了笔试基本不会慌。4.3 笔试现场的几个实用细节最后说几个笔试现场容易忽略的细节。一是审题一定要慢尤其是“下列说法错误的是”和“下列说法正确的是”一字之差答案天壤之别。我在真实笔试里就吃过这个亏看到“错误的是”直接按“正确的是”来选丢分丢得非常亏。二是遇到不会的题先跳过客观题一般答对得分答错不扣分即使完全不会也要蒙一个答案填上绝不能留空。三是时间分配上概念题尽量控制在30秒内计算题最多3分钟超过时间就标记后跳过。四是如果笔试平台允许返回修改做完以后一定要检查一遍计算题这类题只要算错一步答案基本就错了重新算一遍也就是一两分钟的事。从我个人的备考经验来看这套顺丰科技的客观题合集并不是那种你做一遍就能背下来的题库而是一个很好的知识体检工具。它的价值不在于具体的题目本身而在于通过这套题暴露出来的知识盲区才是真正值得花时间的地方。如果你能把上面这些考点和计算全部掌握不光这套题能应对其他公司的视觉算法笔试也基本能稳住阵脚。最后再分享一个小技巧做题遇到不确定的选项时先用自己的话把每个选项的核心概念复述一遍很多时候说着说着正确答案自己就浮现出来了。希望这篇拆解能帮你在准备视觉算法岗位笔试的路上少走一些弯路。