目前个人情况:普通211,计算机不是很相关专业大四,已保研,CV方向,所以想找份视觉方向的实习,记录一下面试的一些情况希望对找相关实习或工作的同学有所帮助。
项目(面试问题基本从项目里面找的):
- 植物叶片的实例分割+半自动标注软件(Mask RCNN + Qt5,毕设)
- 一篇数据分析与可视化、LSTM预测拟合时序数据的论文(SCI一作,非CV方向,对面试基本没有帮助)
- OpenCV相关的两个demo(车牌定位、车道线检测,比较水,不过面试官从中找出不少ML相关的问题,问的很细)
1. 纽劢 NullMax (工作城市:上海,1月,电话面,40min)
面试的第一家公司,也是个人第一次职场面试。个人感觉发挥的好一点应该是能进的,当时太年轻,就当交学费了。
流程和问题: 自我介绍;项目介绍;基本的机器学习和深度学习问题:
- 解释LSTM结构(相对于RNN)好处;
- CNN 在图像上表现好的原因;
- Unet 介绍;
- FCN 和 Unet 区别;
- 调试、修改模型的经验;
总结:问的不深,可能简历上项目不是很出彩,回答得也不是很顺利,准备不充分,最后也就没有下文了;
2. 商汤 Sensetime(工作城市:上海,1月,微信语音,40min)
和第一家同时期面的,只能说惨痛,交学费+1,这次受刺激之后在寒假里算是下了比较大的功夫(项目和算法相关)
流程比较正规,先是邮件+电话确认面试时间,然后HR拉了一个微信群(HR,两个面试官还有我),这波操作第一次见还是很惊奇的。
问题:
- 项目相关:LSTM机制, Unet介绍;
- BN的原理和作用;
- 卷积输入为W*H*C,卷积核K*K*N,输出W1*H1*C1,求参数数目和计算量;
- Coding(开视频,写纸上):重排数组,奇数在前,偶数在后,相对顺序不变(Leetcode 原题);
- 还有一些细节记不得了,问题现在看来也不算很难,当时没有好好准备,被批评的有点惨(不过也是好心)。。。
总结: 好好学习,菜是原罪。。。
以上是年前,以下是年后;
3. 搜狗杭州研究院(工作城市:杭州,电话面,2月)
一面(突然的电话,35min):
- RCNN系列的算法流程和区别;
- Fast RCNN中 bbox 回归的损失函数什么;
- 解释 ROI Pooling 和 ROI Align;
- Mask RCNN中 mask branch 如何接入 Faster RCNN中;
- 解释 FPN (没细看,面完补的);
- 优化算法举例和他们的区别(SGD、SGDM、RMSprop、Adam);
- 训练不收敛的原因有哪些;
- 简述 Inception v1-v4;
- 简述 CNN 的演变;
- BN 的作用和缺陷,以及针对batch_size小的情况的改进(GN);
总结:面试官非常nice,知识面很广,问的很细;
二面(两天后,40min):
- 解释 ROI Align;
- 列举看过的论文;
- 解释 ResNet 流行的原因;
- 根据现有知识,设计车道线检测的算法(讲思路);
- SVM寻参问题;
- batch_size 和 learning rate 的关系(怎么平衡和调整二者);
总结:模型训练实战经验不足是大劣势;
一周后电话通知通过,不过至少要实习6个月(3-8月,去的话基本没有假期)
4.普华永道 (工作城市:上海,电话面+在线coding,2月)
四大乱入,工科的同学可以百度这个公司,纯属手滑点了投递简历。。hr盛情难却,硬着头皮面了,整个过程极其正规,每一面都会电话+邮件确认,在线编程以及外企独有的语言面,属于印象很深刻的公司了。
一面(语言面,10min):英文自我介绍(谈到了交换的经历);留学期间印象深刻的事;对加州的印象;个人的优缺点;
语言面算是一个彩蛋吧,因为英语基础还好,所以比较顺利过关;
二面(技术面,两天后,40min):
- 英文自我介绍。。。以及讲一下留学期间的感受(果然是外企///),
- 在线Coding(题目是英文题): Leetcode第一题twoSum;小偷偷窃问题(Leetcode原题,简单dp);
- (以下是中文)
- 解释过拟合和欠拟合,以及解决方法;
- Precision 和 Recall 的定义;
- 简述 RCNN 流程;
- Sigmoid 和 ReLu 对比;
- 梯度消失和梯度爆炸的原因和解决方法;
- SVM 核函数解释;
- 简述 YOLO 和 SSD;
coding和面试问的都不难。
三面(主管面。。两天后,30min):
- 英文自我介绍。。
- 毕业设计相关;
- 项目相关;
- 对于NLP方面的了解???
四面(HR面,一天后,10min):
算是过了,就是问一下去不去,什么时候到岗的问题。。然后就拒了offer,主要因为技术岗的实习工资太低了(所有实习生工资是统一的,感觉不是很合理)
总结:最深刻的感觉就是确实是大公司,流程很正规,hr很细心严谨,英语要求较高以及对技术岗不是很友好(薪资低);
5. 商汤 Sensetime (工作城市:上海/杭州,微信语音,2月)
再投商汤,印象和上次一样深刻,面的几个公司里,总体感觉面试官水平和面试水平比较高的应该就是商汤了(当然也因为商汤的重心就是CV领域),也是拉微信群后语音面试。
一面(35min):
- 简述 RoI Align;
- 简述 SVM 流程、核函数寻参及常见的核函数举例;
- 简述 Hough 直线检测算法流程;
- 简述 Sobel 边缘检测算法流程;
- FPN 相关,很细,没了解到,问题都记不住了。。
- Mask RCNN中的anchors如何判定为正负样本;
- 选取anchors后的下一步改做什么;
- 简述 NMS 算法流程;
- C++ 中的 new / delete 和 C 里的 malloc / free 的区别;
- Coding(讲思路):最长公共字串(dp);
二面(10min后,60min):
- 问了很久车牌定位的项目(其实只是一个练手的demo。。)其实项目比较水,但是面试官好像不是很熟悉OpenCV,问了很多细节;
- 仿射变换和透视变化区别;
- 透视变换矩阵的形状;
- SVM及核函数;
- RoI Align解释;
- Mask RCNN中的anchors如何得出;
- 解释FPN以及Mask RCNN中 mask branch 部分的FPN如何接入;
- 接上一问:mask branch 如何上采样和分割;
- RPN 的流程;
- 解释多态和虚函数;
- Coding(讲思路):找到一个数组中唯一一个出现奇数次数的数(Leetcode 原题,先想了用哈希,后来提示下用亦或做)
总结:长路漫漫,还有太多要学习。
总体感悟:作为19届的本科应届生找CV方向的实习岗并不是很容易(春季大多实习岗都是面向20届的,CV算法岗的话又基本不太考虑本科生),投了很多次简历,最后有面试机会的并不多,面试成功的也是寥寥,但总体来说最重要的还是自身水平。这几次面试经历对我而言十分宝贵,知道了自己有太多不足和需要深入学习的东西,面试官大多都很nice,给了很多建议,指出了不少的不足。所以大家有机会还是多多去投去尝试,确实是一个快速了解自己不足和锻炼自身的过程。
祝好 :)