news 2026/8/31 12:14:08

迅雷校招计算机视觉笔试B卷考点复盘与备考思路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
迅雷校招计算机视觉笔试B卷考点复盘与备考思路

我把这份2018年迅雷校招计算机视觉方向在线笔试B卷的相关内容、考点复盘和备考思路整理出来了。文章里没有照搬原题,而是结合笔试题型规律、CV岗位核心知识体系和踩坑经验,做了一份可以直接参考的复习攻略。这几年笔试形式变了,但考察的知识内核基本没变,值得仔细过一遍。

1. 迅雷校招CV岗在线笔试,到底在考什么

先说说为什么专门聊迅雷这套笔试。很多人一看到“迅雷”两个字,第一反应是下载工具,觉得它跟计算机视觉关系不大。实际上迅雷那边的AI团队一直有做视频内容理解、图像识别、画质增强这类业务,所以校招笔试里CV方向的内容并不水,覆盖面也比较典型。2018校招的在线笔试B卷,整体题目量和难度搭配,在当年大厂校招笔试题里算是比较有代表性的:基础题占了大部分,深度学习、图像处理、机器学习、数学推导都有涉及,最后一两道则是综合性的算法设计题。这套题对后来几年准备CV岗位笔试的同学来说,参考价值一直很高,核心考点到现在还在反复出现。

这套笔试主要适合三类人看:即将参加校招、正在刷题阶段的计算机视觉方向学生;想转行做CV算法工程师、需要系统补基础的同学;还有已经工作几年、想跳槽前快速复习一遍基础知识的从业者。我当时的体感是:题量不小,两个小时要做完选择题、填空题和代码题,时间并不宽裕。很多题单独拿出来都不算难,但放在一起就考验知识熟练度和做题节奏。

那这套B卷的整体结构是什么样的呢?我当时做完之后复盘,感觉题目基本可以分成四个模块:

模块主要考察内容大概占比
机器学习基础逻辑回归、SVM、损失函数、评估指标约25%
深度学习基础CNN结构、卷积计算、激活函数、批归一化约30%
图像处理与特征滤波、边缘检测、颜色空间、SIFT/HOG约20%
数学基础与编程题矩阵求导、概率论、动态规划/数组操作约25%

这个比例其实反映了当年CV岗位笔试的主流出题逻辑:机器学习基础是地基,深度学习基础是重点,图像处理是专业区分度,数学和编程则是筛人利器。接下来我按模块拆开讲,每个模块都会把考点对应的知识细节、我当时踩过的坑、还有复习建议一起说清楚。

2. 深度学习与CNN考点,重点到让人意外

如果让我说这套B卷里最不能丢分的部分,那肯定是深度学习基础,尤其是CNN这块。选择题和填空题里出现频率很高的知识点包括卷积输出尺寸计算、感受野计算、池化层作用、激活函数对比、反向传播的梯度流等。这些知识点本身不难,但出题形式的灵活度很高,会绕弯。

2.1 卷积输出尺寸与参数计算,别只背公式

卷积输出尺寸是必考内容,公式本身很简单:

output_size = (input_size - kernel_size + 2 * padding) / stride + 1

但笔试里一般不会直接给你四个数字让你代公式,而是喜欢混合考察,比如输入是224x224,经过一层5x5卷积(padding=2,stride=2)再经过一层3x3卷积(padding=1,stride=1),问你中间特征图的尺寸。这种题就是一层一层算,第一层算完的结果是下一层的输入,容易出错的地方是忘记整除处理。

我当时做这类题的一个经验是:先把每层的参数列成一个表,输入尺寸、kernel、padding、stride写清楚,再逐层计算,最后再验算一遍。简单公式不背熟、不用熟,上了考场会有一种“好像会做但算不对”的挫败感。另外还有一个高频衍生考点,就是感受野。计算感受野时不要死记公式,理解它是怎么叠出来的更重要。每经过一层,感受野的变化由kernel_size和前面的stride共同决定。从后往前推比从前往后推省事。

2.2 感受野、所有权共享和参数量计算

参数量的计算也是高频题。比如问一个3通道输入、输出64个通道的3x3卷积层有多少参数,很多人会漏掉偏置项。正确计算方式是:

参数总量 = 输入通道数 × 输出通道数 × kernel_h × kernel_w + 输出通道数(偏置)

代入就是3×64×3×3+64=1792。这种题如果漏了偏置项,就会算出1728,跟正确答案差一截。考场上发现选项里没有自己算出的数字时,第一反应应该是检查是不是漏了偏置或者搞错了输入输出通道的顺序。

感受野这个知识点,笔试里喜欢出选择题,给一个多层小卷积堆叠的网络,问最后的感受野。这里有个常见套路:两层3x3卷积堆叠,感受野等价于一层5x5卷积,但参数量更少、非线性更强,这就是VGG系列的核心思想。我当时复习的时候是把3x3、5x5、7x7之间通过堆叠小卷积核进行等效替换的对应关系都推了一遍,考试时遇到这类题基本就是秒答。

2.3 激活函数和BatchNorm的对比题

激活函数考察集中在ReLU系列和sigmoid/tanh上。常见考法是给一个函数表达式和一个场景,问是否适合。核心要记住的几个结论:sigmoid存在梯度饱和和输出非零中心的问题,ReLU在负数区域完全死掉会产生Dead ReLU问题,Leaky ReLU和PReLU就是为了缓解这个问题出现的。有一次题目问的是:“当网络层数较深时,使用sigmoid作为激活函数容易出现什么问题?”答案就是梯度消失,因为sigmoid导数最大值只有0.25,链式法则连乘之后梯度会指数级衰减。

BatchNorm的考察点集中在它的计算流程:先对batch内数据求均值和方差做归一化,再用可学习参数gamma和beta做缩放和平移。笔试里常给一个具体batch数据,让你算归一化后的某一个值。这种题不难,但要特别注意方差用的是不是无偏估计,训练时用的是batch内的统计量,推理时用的是训练过程中累积的全局统计量。

3. 目标检测和图像处理,区分度最高的部分

这部分是整套B卷里最能拉开差距的题目,因为它直接考察你对CV领域常见任务的理解。目标检测相关的NMS、候选框生成、经典网络结构对比,以及图像处理基础的滤波和特征,都是高频内容。

3.1 NMS和候选框,理解比调包重要

NMS(非极大值抑制)几乎是目标检测方向笔试必考。选择题会给你几个框,让你手工推一遍NMS的保留顺序。这里主要考的是流程:按置信度排序,选最高分框,删掉与其IoU超过阈值的框,重复操作。要熟练计算两个框之间的IoU,尤其是坐标有交集的情况下。

当年我做这类题时容易犯的错是,IoU的分母理解偏差。分母应该是两个框面积的并集,也就是总面积减去交集面积。如果两个框不相交,IoU为0。另外还有一个出题角度,就是问NMS的阈值设得过大或过小会产生什么影响。阈值过大会导致多个重叠框被同时保留,出现重复检测;阈值过小则容易把该保留的检测框也删掉,导致漏检。

候选框生成也是一个重要考点。我复习的时候特意看了Faster R-CNN的RPN(区域建议网络)和传统Selective Search的区别。RPN是在特征图上用锚点框回归候选区域,速度快且能和检测网络联合训练;Selective Search靠颜色、纹理、尺寸、形状等特征合并区域,速度慢但早期的Faster R-CNN文章里为了做对比实验还有用到。笔试一般不会考太深,但选择题里让你判断哪种方法属于基于深度学习的候选框生成方式,这种是送分题。

3.2 Faster R-CNN、YOLO和SSD的对比

目标检测经典网络的结构对比也是常考内容。这里我整理了一个对比表,笔试复习足够了:

网络类型核心思路速度与精度特点
Faster R-CNN两阶段RPN生成候选框 + 分类回归精度高、速度慢
YOLO单阶段将检测视为回归问题,直接预测边界框和类别速度快、小目标精度相对低
SSD单阶段多尺度特征图上预测速度与精度平衡较好

这类题考察的通常不只是“哪个快哪个慢”,而是会问某个结构细节。比如“YOLO将图像划分成S×S的网格,每个网格负责预测几个边界框,最终输出张量的维度是多少”这种。我当时复习时是直接把YOLOv1的7×7×30输出结构背下来的,因为网格数7×7、每个网格预测2个框、20个类别、每个框5个值(x、y、w、h、confidence),最后加在一起就是2×5+20=30。遇到这种题,有备而来的感觉会非常明显。

3.3 边缘检测与特征描述符,容易丢分的细节题

图像处理基础的考察点相对分散,但高频方向集中在滤波、边缘检测、颜色空间和特征描述符上。

Sobel算子、Canny边缘检测、高斯滤波这三类题目几乎每年都会出现。Sobel算子的核心是一个3x3的卷积核,分别计算x和y方向的梯度近似值。Canny的流程要记清楚:高斯滤波降噪、计算梯度幅值和方向、非极大值抑制、双阈值检测和边缘连接。这道题经常以多选题形式出现,让你选择Canny包含哪些步骤。我见过有些同学只记得高斯滤波和双阈值,把非极大值抑制漏掉了,一旦是多选题就会扣分。

颜色空间方面,RGB跟HSV的转换是高频考点。出题方式通常是给一个RGB值,让你大体判断HSV的Hue范围,或者问哪个通道对应色相。其实不用精确计算,记住HSV中H代表色相、S代表饱和度、V代表明度,再看具体数值对应的颜色区间就行。

SIFT和HOG这类特征描述符,在笔试题里一般不会让手推复杂公式,更多是考概念。比如SIFT特征具有尺度不变性和旋转不变性,HOG常用于行人检测。这里有一个容易混淆的点:SIFT的构建过程包括尺度空间极值检测、关键点定位、方向分配、关键点描述四步;HOG则是计算梯度方向直方图。我当时把这两个特征的名称和适应场景分别整理成几组卡片,反复记忆,考试的时候就能快速选出来。

4. 机器学习基础与数学推导,不能临时抱佛脚

这套B卷里机器学习基础的占比不比深度学习低,考察方式更多是一些概念辨析和简单推导,但是难度不低。逻辑回归、SVM、损失函数、模型评估、正则化这些高频考点一个都没落下。数学推导题则主要围绕矩阵求导、概率分布和贝叶斯公式展开,说实话,如果平时没有自己动手推过,考场上很容易卡壳。

4.1 逻辑回归损失函数与梯度下降推导

逻辑回归在笔试题里的出现方式一般是给损失函数让你求梯度更新公式。交叉熵损失函数长这样:

L = -[y * log(p) + (1 - y) * log(1 - p)]

其中p是sigmoid输出,p = 1 / (1 + exp(-z)),z = w·x + b。对w求梯度的结果非常简洁,是x乘以预测误差(p - y)。我在复习时把这个推导完整走了一遍,发现关键点在于sigmoid函数求导的性质:σ'(z) = σ(z)(1 - σ(z)),正是这个性质让梯度表达式变得那么干净。笔试题如果让写梯度更新公式,你直接写w = w - learning_rate * (p - y) * x就行。

有一个容易踩坑的点是,逻辑回归损失函数里是否包含正则项。有些题目会把L1或L2正则直接加到公式里一起求导。L2正则加进去之后梯度项要多加一个λw,L1正则则是加λsign(w)。做题的时候一定要先看清楚题目给的是哪个损失形式。

4.2 SVM的基本思想与核函数选择

SVM的出现频率也高,但考察深度通常浅一些,集中在线性可分支持向量机的最大间隔思想、支持向量的定义、核函数的作用。选择题喜欢问“以下哪个核函数可以将线性不可分的数据映射到高维空间实现分类”,这就是在考核技巧的基本概念。

这里要注意,SVM只关注支持向量,也就是距离决策边界最近的那几个样本点。损失函数用的是合页损失,跟逻辑回归的交叉熵不同。另一个常考概念是软间隔,当数据不是完全线性可分时,允许一部分样本违反间隔约束,通过惩罚系数C来控制容错程度。C越大,对误分类的惩罚越大,模型越趋向于过拟合;C越小,模型越平滑。这个规律要记清楚,选择题考过很多次。

4.3 评估指标里的陷阱题

精确率、召回率、F1、ROC和AUC是每次笔试必考的。最容易出错的是当类别不平衡时如何选择评估指标。比如“100个样本里只有5个正样本,模型把所有样本都预测为负样本,准确率是多少?”答案是95%,看起来挺高,但实际上这个模型一点用都没有,这时候应该看召回率(0%)或者AUC。这类题就是考察对指标适用场景的理解,单纯背公式不够,要理解指标背后的含义。

还有一个小考点是PR曲线和ROC曲线的区别。当正负样本比例变化很大时,ROC曲线基本保持不变,而PR曲线会变化明显。所以在类别不平衡问题中,PR曲线比ROC曲线更能反映模型性能。这个细节在选择题里出现过,我之前复习时把这个对比单独记过一遍,考试时碰到就没犹豫。

4.4 矩阵求导与概率题,平时多动手推

数学基础题往往出现在填空题和简答题里。矩阵求导的常见考法是让对二次型x^T·A·x求梯度,如果A是对称矩阵,梯度为2Ax。如果不确定,我建议复习时把矩阵求导的几个基本公式抄下来,包括线性函数、二次型、Frobenius范数的梯度,配合链式法则套用,笔试题基本都能处理。

概率论部分常考贝叶斯公式,出题方式通常是一个具体的场景应用题。比如某类疾病在人群中的发病率为1%,检测准确率为99%,如果一个人检测结果为阳性,他真正患病的概率是多少。这就是标准的贝叶斯公式计算,答案是50%左右,不是99%。很多同学第一次做都容易掉坑。复习时把贝叶斯公式的条件概率推导练熟就能应付。

5. 编程题目与考试策略,直接决定你能不能过

编程题在这套B卷里占比不小,考的内容以数组操作、字符串处理和简单的算法设计为主,不会太偏太怪,但要求代码清晰、边界条件处理完整。再一个,在线笔试的作答策略也非常重要,时间分配、答题顺序、代码规范性都会直接影响最终结果。

5.1 高频编程题类型与解题思路

从当年B卷反馈来看,编程题主要出现在这几个方向:

  • 数组去重和排序,要求手写实现而不是调用现成库函数
  • 链表相关的操作,比如反转链表、判断是否有环
  • 动态规划入门题,比如斐波那契数列的优化写法、爬楼梯问题
  • 图像相关的简化模拟题,比如二值图像连通域标记

这些题目单独看难度都不算大,但有一个共同特点:极其注重边界条件。比如二值图像连通域标记,输入可能是0和1组成的二维数组,要求统计1的连通分量个数。这道题本质上就是深度优先搜索或广度优先搜索,但很多人写的时候没有考虑边界访问越界的问题,或者没有标记已访问节点,导致死循环或者计数错误。

我当时写的连通域解法大概是这样:

def count_connected(grid): if not grid or not grid[0]: return 0 rows, cols = len(grid), len(grid[0]) visited = [[False] * cols for _ in range(rows)] count = 0 def dfs(r, c): if r < 0 or r >= rows or c < 0 or c >= cols: return if visited[r][c] or grid[r][c] == 0: return visited[r][c] = True dfs(r + 1, c) dfs(r - 1, c) dfs(r, c + 1) dfs(r, c - 1) for i in range(rows): for j in range(cols): if grid[i][j] == 1 and not visited[i][j]: count += 1 dfs(i, j) return count

代码本身不算长,但递归深度很大时要注意栈溢出问题,所以用显式栈的迭代写法更稳。如果担心Python递归深度,可以直接用collections.deque做BFS。写题的时候养成“先判断输入是否为空、再处理逻辑”的习惯,能避免很多无谓扣分。

5.2 在线笔试的时间分配策略

两个小时的笔试时间,看起来很长,但实际做题时你会发现根本不够。我的建议是拿到卷子先花一两分钟浏览全部题目,心里有个优先级。具体时间分配可以参考这个:

模块建议时间策略
选择题/填空题50-60分钟先做会的,标记不确定的,最后再回来纠结
简答/推导题25-30分钟能写多少写多少,过程分也很重要
编程题30-40分钟先审题、想边界条件,再动手写代码

尤其注意编程题不要一上来就写代码,先想清楚算法思路和边界条件再动手。我看到太多人拿到题目就开始敲,中途发现思路不对全部推翻,反而浪费时间。如果题目要求输出代码,建议写成完整可运行的函数,不要只写核心片段,在线评测系统对代码完整性要求一般比较高。

5.3 考试中的常见失误与应对方法

这里分享几个我在做笔试题时踩过的坑,希望对你有帮助:

第一个是无视填空题的格式要求。有些填空题要求“保留两位小数”或者“答案填整数”,你算了小数上去,直接算错。考试时一定要仔细读题,尤其是填空题和简答题,格式要求比结果本身更关键。

第二个是选择题不定项当成单选题做。CV笔试里有多选题,而且评分规则可能是“多选、少选、错选都不得分”。如果你不确定某个选项是否该选,宁可少选一个也别冒险选错。但前提是要看清题目明确写了“不定项选择”,不是所有选择题都是单选。

第三个是遇到不会的题死磕。在线的笔试系统一般允许跳题,而且跳过去还能回来改答案,不用按顺序做。我的习惯是先做有把握的题,把基础分先拿到手,再回头处理不确定的题目。这样即使最后时间不够,也不至于大面积空题。

第四个是编程题不写注释和结构清晰的函数名。在线笔试的编程题尽管是机器判题,但如果有面试官人工查看代码,清晰的注释和命名会留下好印象。笔试只是第一关,后面通常还有面试环节,代码质量不高的印象一旦形成,想扳回来很难。

6. 备考这套题,如何高效刷重点

前面把考点和题目类型拆完了,最后集中聊一下备考阶段怎么安排复习重点,这可能是这套题拿高分最关键的环节。

首先,基础一定要系统过一遍,不能指望靠运气。我建议花两周左右时间把机器学习、深度学习、图像处理、数学四个方向的核心笔记各整理一份,尤其是公式推导部分,不要只看结论,要动手推一遍。逻辑回归的梯度推导、反向传播的链式法则、卷积输出尺寸计算、SVM的合页损失,这些都是高频公式,不推一遍考场上手生。

其次,编程题每天保持2到3题的训练量。不需要刷太难的,LeetCode简单到中等难度即可,但要注意题目覆盖面要广。数组、字符串、链表、树、动态规划、DFS/BFS都要练到,因为笔试题型会变,但编程题考察的核心能力就是这些。做题时养成先写思路、再写代码的习惯,每道题写完检查一遍边界条件:数组为空、只有一个元素、全部相同、全部不同,这些情况都要过一遍。

再一次,多刷几套真题保持手感。如果能在网上找到其他公司或者年份的CV笔试题目,都可以拿来做限时模拟。模拟时不要只做自己会做的,要一整套完整做完,顺便训练时间分配。我当年复习时把几套知名互联网公司的CV方向笔试题都限时做了一遍,发现时间紧的情况下,平时掌握得再好的知识点也可能因为紧张而出错。提前模拟几次,能有效缓解考场上的焦虑感。

最后说一个很多攻略里不会提到的点:笔试考完之后,建议立刻把不会的题记下来,回头查资料弄明白。因为笔试考察的方向往往跟公司实际业务和技术栈有关系,不会的题基本是下一步面试会被追问的地方。我当年就对一道图像特征匹配的选择题印象特别深,笔试后专门去查了特征匹配的流程和RANSAC的原理,结果面试时真的被问到了。所以笔试不只是笔试,它其实是面试官给你划的复习重点。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 12:13:05

可验证领域模型:用测试与扩展机制打开业务能力上限

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/8/31 12:13:00

VMware虚拟机安装教程:VMtools与系统镜像完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/8/31 12:09:17

网易Java提前批笔试复盘:考点解析与备考策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/8/31 12:08:25

DeepSeek Harness与Cordis插件架构:构建可扩展AI工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/8/31 12:07:31

RTS寻路工程实践:A*、JPS与Wall-tracing的组合优化

简介&#xff1a;这是一份面向游戏开发初学者与中级C程序员的实时战略&#xff08;RTS&#xff09;游戏路径规划实战代码包&#xff0c;聚焦于网格地图下的高效寻路问题&#xff0c;涵盖A*、JPS及JPS三种离散层粗略搜索算法&#xff0c;以及源自《Dota 2》的Wall-tracing连续空…

作者头像 李华
网站建设 2026/8/31 12:07:00

8.3 开发流程与测试方法

邓立国多模态Agent开发必读书《多模态AI Agent开发实践》全文试读~持续更新-CSDN博客 目录 8.3.1 标准化开发流程&#xff08;6步落地&#xff09; 8.3.2 核心测试方法 基于前文的需求分析与架构设计&#xff0c;本节将明确多模态智能体的标准化开发流程&#xff0c;结合指…

作者头像 李华