面经总目录——持续更新中

说明

  • 本面经总结了校招时我面试各个公司的面试题目,每场面试后我都及时进行了总结,同时后期补充扩展了同类型的相近面试题,校招时从两个方向进行投递,视觉算法工程师软件开发工程师(C++方向),所以我都整理了两个岗位的相关面试题,大家可以根据需要所取。

  • 面经目前包含:C++语言面试题、Python语言面试题、Qt、YOLO算法、OpenCV、K-means、Dropout、BN、NMS、IOU、数据增强、模型优化、计算机网络和通讯协议相关面试题、CV基础等等技术面试题,同时还包含非技术面中一些常见的面试题。

  • 因为大部分面经都是校招时候记录的,工作以后也陆陆续续增加了一些,后续我将增加社招方面的面经,同时持续更新并维护。

  • 由于本人技术有限,面经中如有错误,欢迎指正!


专栏地址

视觉算法开发 | 软件开发—面经

面经总目录

小节目录
面试问题总结——关于YOLO系列(一)YOLOv1
1.背景介绍
2.YOLOv1的算法思想
3.关于NMS
4.YOLOv1的网络结构图
5.YOLOv1的激活函数
6.YOLOv1的损失函数
7.YOLOv1总结
面试问题总结——关于YOLO系列(二)YOLOv2
1.关于anchor box和bounding box的区别
2.关于anchor box和bounding box的区别
Batch Normalization(批规范化BN层应用)
High Resolution Classifier(高分辨率)
Convolutional With Anchor Boxes
Dimension Clusters(维度聚类)
Direct location prediction(直接位置预测)
Fine-Grained Features(细粒度特征)
Multi-Scale Training(多尺度训练)
3. YOLOv2损失函数
4.YOLOv2中BackBone:Darknet-19
5. YOLOv2模型框架
6.关于Darknet的分类模型和检测模型
面试问题总结——关于YOLO系列(三)YOLOv3
1.YOLOv3主干网络BackBone——Darknet-53网络结构
Top-1 Accuracy和Top-5 Accuracy是指什么呢?区别在哪呢?
为什么Darknet-53相比于同时期更深层的网络ResNet-101、ResNet-152效果更好些呢?
为什么Darknet-53运行速度快呢?
关于残差网络
2.YOLOv3网络模型
3.关于YOLOv3网络的训练细节:正负样本的匹配
4.YOLOv3损失函数
5.YOLOv3网络图
为什么YOLOv3对小目标的检测会比YOLOv1好很多?
YOLOv1/v2中使用IoU作为置信度标签有何不好?
YOLOv3对于小目标/密集目标的改进

YOLOv4
1.Bag of freebies(BOF)
2.Bag of specials(BOS)
3.YOLOv4采用的模型结构
4. YOLOv4相比于YOLOv3作了哪些改进

YOLOv5
1.Focus结构
2.自适应锚框计算
3.YOLOv5网络模型
面试问题总结——关于OpenCV(一)1.OpenCV中cv::Mat的深拷贝和浅拷贝问题
2.OpenCV中RGB2GRAY是怎么实现的
3.连续图像转化为数字图像需要进行哪些操作?
4.数字图像中有哪些基本特征?
5.图像边缘检测中常用的边缘检测算子有哪些?
6.对霍夫变换的理解
7.对HOG特征的理解
8.图像的插值方法有哪些?
9.Grabcut的基本原理和应用
10.SIFT/SURF的特征提取方法,是如何保持尺度不变性的?
11.关于FLANN算法
12.Canny边缘检测的流程
13.图像锐化
14.图像对比度
15.图像滤波
16.OpenCV中图像加法(cv2.add())与图像融合(cv2.addWeighted())有何区别?
17.如何检测图片中的汽车,并识别车型,如果有遮挡怎么办?
18.常用图像增强算法
19.数字图像处理中常用图像分割算法有哪些?
面试问题总结——关于OpenCV(二)20.像素梯度如何计算?
21.关于开运算和闭运算的理解
22.开运算和闭运算有什么优缺点?
23.图像插值有哪些?
24.图像金字塔的原理
25.边缘检测算法有哪些?
说说Canny检测算法的原理
26.OpenCV圆检测的算法原理是什么?
27.图像去噪有什么方法?
高斯滤波去噪的原理
28.仿射变换的原理
29.OpenCV 中cv2.warpPerspective()和cv2.warpAffine()的区别是什么?
30.OpenCV 中cv::Mat的内存管理机制是什么?如何解决处理大量图像时出现的内存泄漏
面试问题总结——编程题关于IOU、NMS1.关于IOU
1.1 IOU定义
1.2 IOU的优缺点
1.3 IOU的实现代码
2.关于NMS
2.1 NMS的原理
2.2 NMS的实现代码
面试问题总结——关于C++(一)1.面向对象的三大特性:继承、封装、多态
2.野指针、内存泄漏、指针悬挂、内存溢出如何理解?
3.如何避免内存泄漏?
4.C++中关于智能指针
什么是智能指针?
C++11 中的智能指针及其用法
使用智能指针会出现什么问题?怎么解决?
5.关于引用和指针
引用的定义
引用的语法规则
指针的定义
引用与指针有什么区别?
6.C++程序编译过程(C++源文件从文本到可执行文件经历的过程)
关于链接阶段的知识(动态封装、静态封装)
7.include头文件的顺序以及双引号”“和尖括号<>的区别?
Include头文件的顺序
双引号和尖括号的区别
8.不同类型的变量与“零“作比较
9.C和C++的区别
10.深与浅拷贝
11.C++11的特性用过哪些?
12.C++中关于Lambda表达式(匿名函数)
13.C、C++如何交错使用?
14.一些常用的STL头文件
15.C++中四种cast转换
16.C++中static的作用
17.C++中const的作用
18.C++中extern的作用
19.C++中private protect public
20.C++中struct和class的区别
面试问题总结——关于C++(二)21.内联函数类 inline 函数有两种方法
22.函数重载为什么函数名字可以一样,函数入口地址是按照函数名给的,那这样岂不是地址完全一样,如何实现重载的呢?
23.Qt信号槽实现原理
24.void* 转换
25.为什么要用基类指针(引用)指向子类对象
26.C++ 中的内存管理、内存分配
27.栈和堆的区别
28.malloc/free 和new/delete 区别
29.全局变量定义在头文件中有什么问题?
30.函数重载(overload)和函数重写(override)
31.关于虚函数和纯虚函数
32.关于多态
33.什么是函数模板?函数模板算多态吗?函数模板底层如何实现?模板实例化在程序的哪个时期?
34.为什么析构函数必须是虚函数?为什么C++默认的析构函数不是虚函数?
35.构造函数为什么不是虚函数?
36.构造函数和析构函数的作用与特性
37.进程、线程、协程
38.并发和并行
39.vector set map list内部实现,复杂度
40.关于红黑树
41.map与unordered_map区别及使用
42.对象创建限制在堆或栈:如何限制类的对象只能在堆上创建?如何限制对象只能在栈上创建?
43.关于内存对齐:什么是内存对齐?内存对齐的原则?为什么要进行内存对齐,有什么优点?
面试问题总结——关于C/C++(三)44.变量的声明和定义有什么区别
45.sizeof 和 strlen 的区别
46.简述 strcpy、sprintf 与 memcpy 的区别
47.链表和数组有什么区别
48.typedef 和 define 有什么区别
49.局部变量能否和全局变量重名
50.如何引用一个已经定义过的全局变量
51.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么
52.const与#define相比有何优点
53.几种内存分配方式以及它们的区别
54.有哪几种情况只能用初始化列表而不能使用赋值
55.堆栈溢出一般是由什么原因导致的
56.C++中的空类,默认产生的类成员函数
57.进程间
58.数组和链表的区别?
59.关于windows程序
面试问题总结——关于C++(四)60.构造函数可以是虚函数吗?
61.析构函数可以是虚函数吗?
举例
62.C++智能指针有哪些?它们的区别是什么?
63.std::shared_ptr原理是什么?
64.std::make_shared相比std::shared_ptr(new T(args…))有什么好处?
65.C++ 中的引用(Reference)和指针(Pointer)的区别?
66.C++ 中的std::atomic的作用和使用场景?
67.C++ 中的std::mutex和std::lock_guard的区别?
68.C++ 中的std::condition_variable的作用
69.C++ 中的constexpr和const的区别?
面试问题总结——关于面试中可能提问的问题及解答(一)1.YOLOv4相比于YOLOv3,做了哪些改进,能讲讲吗?
2.你在模型训练的过程中,对于loss值若没有收敛,该有哪些操作呢?该使用什么办法?
3.在数字图像处理中,腐蚀和膨胀的原理是什么?
4.关于NMS,简单讲讲?
5.关于K-means算法的相关知识
K-means算法思想:
K-means算法的处理流程:
在yolo中anchor的选取—K-means算法
K-means算法的优缺点
K值怎么确定,有什么方法吗?
6.你项目中用的拍照相机分辨率是3072×2048的,而YOLOv4网络的输入尺寸是608×608×3,这么做的话,图像的尺寸会被压缩,小的目标可能会被忽略,那如果要识别小的目标你怎么办?既要保证识别的速度,如何做?
7.SPP,YOLO了解吗?
8.目标检测正负样本不均衡怎么解决?
9.one-stage与two-stage都有哪些?具体各自优势在哪里?one-stage和two-stage两者有什么特点?
10.简单介绍下残差层
残差块的结构(Residual block)
残差结构有效的原理
解决问题的数学原理
ResNet解决网络退化的机理
11.YOLOv1的网格为什么是7×7?
12.YOLOv3优点/缺点
13.张量、向量和矩阵
14.准确率和召回率
面试问题总结——关于面试中可能提问的问题及解答(二)14.关于Dropout的内容
1.什么是dropout及其具体工作流程?
2.数学原理
3.dropout的训练与预测
4.为什么dropout可以解决过拟合问题?
5.dropout的缺点?
6.CNN中能否用dropout,为什么?
15.anchor聚类的具体实现与原理
16.正则化,L1正则与L2正则,L1、L2正则化的作用和区别是什么?分别服从什么分布?
17.感受野
18.YOLOv3和v2、v1的改进
smoothL1 loss的好处
YOLO里面是向上取整还是向下取整
19.关于Batch Normalization(批归一化,BN)
1.BN层的主要思想
2.BN层的作用
3.结合YOLO问了BN
4.BN的公式,BN是怎么更新的
5.为什么加了BN之后,就不用再使用dropout?
6.Pytorch中BN层在训练和测试中有什么不同,怎么实现的?
7.用代码实现BN层
20.对比SSD,为何YOLOv3小物体的检测效果这么好?
YOLO是怎么克服小目标检测缺陷的?(YOLO做小目标检测的思考)
深度学习中检测小目标常用的方法?
21.如何解决目标检测两个物体重叠问题
22.YOLOv3中416x416的输入有多少个anchor,为什么要sigmoid?
23.1×1卷积的作用
面试问题总结——关于面试中可能提问的问题及解答(三)24.关于softmax函数的公式、作用、注意点即改进实现代码
实现softmax函数时的注意事项
softmax的作用?
25.YOLO SSD Faster-RCNN对比
YOLOv3为什么占的内存大,和 SSD差别在哪里?
26.如何解决目标遮挡问题,密集问题
27.NMS及其变种(包括具体的代码实现)/编程题NMS
28.如果需要你压缩这个模型的参数量你会怎么做
29.Pytorch定义一个dataset需要写那几个方法
30.给一个input size、kernel size、stride、padding,算一下output size,没有办法整除怎么办,为什么向下取整而不是向上取整?
31.如果检测对象是细长条你怎么检测?如果对象细且倾斜你怎么办?
32.如果两个数据集 一个80类一个20类,两个数据中都包含另一个数据集的目标,但未进行标注,你怎么训练?例如:A中的车在B中有 但未标注而是作为标签。
33.解决过拟合的办法?
34.深度学习中的数据增强方法都有哪些?
35.卷积计算过程中减少计算量的优化方式
36.卷积层和池化层有什么区别?
37.关于Anchor-based与Anchor-free
Anchor-based与Anchor-free的相同点和不同点:
Anchor-based与Anchor-free的优劣:
38.关于roi pooling层
39.mean pooling和max pooling的前向和反向传播
40.方差和协方差的理解
41.Python的数据类型有哪些?
42.Python中is和==有什么区别?
43.Python中可变对象和不可变对象有哪些?
44.Python中删除的三种方法有什么区别?remove()、pop()、del
面试问题总结——计算机网络和通讯协议1.TCP和UDP有什么区别
2.TCP和UDP的应用场景
3.UDP可不可以实现安全传输
4.关于TCP的三次握手与四次挥手
三次握手理解
四次挥手理解
5.为什么连接的时候是三次握手,关闭的时候却是四次握手
6.为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态
7.为什么不能用两次握手进行连接
8.如果已经建立了连接,但是客户端突然出现故障了怎么办
9.解释一下为什么TCP可靠一些
10.请简单解释一下,arp协议和arp攻击
11.什么是icmp协议,它的作用是什么
12.OSI七层和TCP/IP五层以及对应网络设备对比示例图
13.Get与POST的区别
14.DNS的寻址过程
15.从输入网址到获得页面的过程
面试问题总结——CV基础1.为什么需要做特征归一化、标准化?
2.常用的归一化和标准化的方法有哪些?
3.介绍一下空洞卷积的原理和作用
4.怎么判断模型是否过拟合,有哪些防止过拟合的策略?
5.除了SGD和 Adam之外,你还知道哪些优化算法?
6.上采样的原理和常用方式
7.下采样的作用是什么?通常有哪些方式?
8.模型的参数量指的是什么?怎么计算?
9.深度可分离卷积的概念和作用
10.神经网络中Addition / Concatenate区别是什么?
11.激活函数是什么?你知道哪些常用的激活函数?
12.随机梯度下降相比全局梯度下降好处是什么?
13.如果在网络初始化时给网络赋予0的权重,这个网络能正常训练吗?
14.为什么要对网络进行初始化,有哪些初始化的方法?
15.梯度消失和梯度爆炸的原因是什么?
16.深度学习中的 batch 的大小对学习效果有何影响?
17.PyTorch 和 TensorFlow 的特点分别是什么?
18.数据不平衡的解决方法
19.为什么 max pooling 要更常用?什么场景下 average
20.为什么在模型训练开始会有 warm up?
21.训练过程中,若一个模型不收敛,那么是否说明这个模型无效?导致模型不收敛的原因有哪些?
22.GAN 网络的思想
23.Attention 机制的作用
24.怎么提升网络的泛化能力
25.mAP值
关于面试找工作、工作中注意点的个人总结(一)1.面试找工作的总结
1.1 投递岗位的建议
1.2 谈薪资阶段的话术
1.3 找工作时要有自己的规划
1.4 面试阶段中的注意点
示例
1.5 对于offer的抉择
1.6 各类排序算法的时间、空间复杂度
2.职场中打工人的总结
2.1 提升自己的工作能力
2.2 如何鉴定何时跳槽
2.3 职场中的注意点
2.4 入职后担心代码能力跟不上
关于面试找工作、工作中注意点的个人总结(二)1. 请你自我介绍一下你自己
2. 你最擅长的技术方向是什么
3. 你怎么理解你应聘的职位
4. 对工作的期望与目标何在
5. 就你申请的这个职位,你认为你还欠缺什么
6. 你做过的哪件事最令自己感到骄傲
7. 如果我录用你,你将怎样开展工作
8. 你工作经验欠缺,如何能胜任这项工作
9. 如果你在这次面试中没有被录用,你怎么打算
10. 如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办
11. 谈谈你过去做过的成功案例
12. 谈谈你过去的工作经验中,最令你挫折的事情
13. 如何安排自己的时间?会不会排斥加班
14. 对这个职务的期许
15. 最能概括你自己的三个词是什么
16. 你经历太单纯,而我们需要的是社会经验丰富的人
17. 你性格过于内向,这恐怕与我们的职业不合适?
关于面试找工作、工作中注意点的个人总结(三)1.请你自我介绍一下你自己
2.说说你最大的缺点
3.你对加班的看法
4.在五年的时间内,你的职业规划?
5.你朋友对你的评价
6.你还有什么问题要问吗
7.如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位
8.在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做
9.如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办
10.如果你做的一项工作受到上级领导的表扬,但你主管领导却说是他做的,你该怎样
11.谈谈你对跳槽的看法
12.工作中你难以和同事、上司相处,你该怎么办
13.假设你在某单位工作,成绩比较突出,得到领导的肯定。但同时你发现同事们越来越孤立你,如何看待
14.请说出你选择这份工作的动机
15.最能概括你自己的三个词是什么
16.你的业余爱好是什么
17.喜欢这份工作的哪一点
18.为什么要离职
19.说说你对行业、技术发展趋势的看法
20.对工作的期望与目标何在
21.就你申请的这个职位,你认为你还欠缺什么
22.你通常如何处理別人的批评?
23.你为什么愿意到我们公司来工作
24.你和别人发生过争执吗?你是怎样解决的
25.如果我录用你,你将怎样开展工作
26.你希望与什么样的上级共事
27.在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做
28.与上级意见不一致怎么办
29.你工作经验欠缺,如何能胜任这项工作
30.为了做好你工作份外之事,你该怎样获得他人的支持和帮助
31.谈谈你过去做过的成功案例
32.谈谈你过去的工作经验中,最令你挫折的事情
33.何时可以到职
关于面试找工作的总结(四)1.不会去的,只是面试练手
2.还有疑问,考虑中
3.offer/职位不满足期望的
4.已确认,但又收到更好的
5.还想挽回之前的offer
6.确认,准备入职
7.还想拖一下的
【职场生存必修课】50个关键场景应对指南:面试、沟通、晋升、心态调整全涵盖1.找到自己的核心竞争力,试问自己,离开了平台,自己还有什么可迁移的能力
2.刚工作时需要摆正自己的心态
3.讲讲B端产品和C端产品上的区别
4.口说无凭,文字落地
5.方向总是变动,打工人的自保方式
6.工作干砸了,不敢向上汇报,咋办
7.向上管理的交流
8.树立正确的的打工人心态
9.如何拿高绩效
10.公司汇报的核心:增长盈利,降本增效
11.面试时被压工资的话术
12.真正优秀的品质:知行合一
13.丰富自己的简历
14.晋升答辩时,多关注:
15.努力工作却不涨薪?要找对方向,不要活在自己的世界里
16.希望得到“贵人提携”,你得具备3个特质:
17.多和领导汇报
18.晋升是一个长期的规划,想晋升首先要调整的是自己的心态!
19.有用的废话文学
20.不同领导说辛苦了,如果高情商回应?
21.能力越强活越多,领导总给你安排活儿怎么处理?
22.什么是“轻松的应对职场”
23.接到猎头电话,如何沟通?
24.HR问你离职原因,如何回答?
25.如果接到一个需求,实现起来很麻烦且没有技术含量,还非常容易出错,如何和leader说明?
26.年轻人应该投入什么行业?断舍离,找大哥,学本事
27.如何制定年度总结和规划?
28.面试被问什么时候入职?这么回!
29.面试问题:HR面、主管面、老板面
30.面试问题:给不到你想要的薪资你是不是就不来了?
31.职场三大准则
32.不管在职离职,都需要多出去面试
33.面试官问离职原因该怎么回答?
34.如何应对即将到来的金三银四?
35.面试最后问:你还有什么要问我的吗?
36.提离职后公司问你,对我们有什么建议吗,如何回答?
37.接了offer不想去感觉愧疚,我该怎样合理的拒绝?
38.面试过程中,面试官让你评价一下自己的面试表现该怎么回答?
39.找工作谈工资用这个方式跟HR沟通
40.面试4大金句:
41.转行会问你0经验是怎么胜任这个工作的?
42.投简历的黄金时间段
43.面试被问录用后如何开展工作?学会1个公式
44.面试问题:你的离职原因是什么
45.面试被压薪,怎么多争取1000块?
46.试用期工资打八折,该怎么争取?
47.面试问题:你的管理风格是什么?
48.HR第一通电话,如何沟通提高面试率?
49.拒绝过的offer如何挽回?
50.面试掉坑题:你喜欢什么风格的领导?
51.面试问题:对新团队工作不了解,该如何做管理?
### SystemVerilog 面试经验 #### 设计规格理解 对于设计规格的理解至关重要。候选人应能够阅读并解析设计文档,从中提取验证需求和功能描述[^1]。 #### 协议掌握程度 熟悉与目标职位相关的通信或接口协议也是必要的准备部分。这可能涉及到诸如AMBA、AXI等总线协议的知识点,以及如何利用这些知识来构建有效的测试场景[^2]。 #### 测试计划与验证规范制定 编写详细的`Test Plan`及`Verification Spec`是展示逻辑思维能力和全考虑问题的好机会。这部分应该覆盖所有预期的功能特性,并定义清晰的成功标准。 ```systemverilog // Example of a simple test case definition in SV class MyTestCase extends uvm_test; `uvm_component_utils(MyTestCase) function new(string name, uvm_component parent); super.new(name, parent); endfunction : new virtual task run_phase(uvm_phase phase); // Implement the actual tests here based on Test Plan and Verification Spec endtask : run_phase endclass : MyTestCase ``` #### 验证平台搭建 具备独立建立完整的验证环境的能力非常重要。此过程通常涉及四个核心方——确保各个模块具有良好的封装性和可重用性;实现激励生成机制;设置响应收集器;最后集成整个框架以便于执行自动化回归测试。 #### 创建具体测试案例 基于之前编写的测试方案开发具体的测试实例(`testcases`),这是检验被测对象是否满足既定要求的关键环节之一。通过精心设计边界条件和其他极端情况下的行为可以更充分地暴露潜在缺陷。 #### 仿真实验与调试技巧 熟练运用仿真工具如VCS进行模拟运行,并借助Verdi这样的图形化界辅助分析错误日志文件或者观察信号波形变化趋势来进行故障排查工作。这一阶段往往占据了相当多的时间资源,在面试过程中分享个人在这方的经验和心得会给人留下深刻印象。 #### 回归测试与覆盖率评估 持续集成中的重要组成部分就是定期开展大规模的回归测试活动以确认新加入的内容不会破坏已有功能的同时提高整体质量水平。另外还需要关注代码覆盖率指标从而保证尽可能多地触及到每一个分支路径。 #### 代码审查实践 参与团队内部或其他开源项目的code review有助于培养严谨细致的工作态度同时也促进了技术交流和个人成长。在求职者介绍过往经历时提及此类背景无疑是一个加分项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boss-dog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值