计算机视觉实习-面经

"算法工程师的第一要素是工程师"

Posted by JosonChan on 2020-11-08

最近,在保研结束之后,将想去公司体验一下,于是开始找实习。虽然中间有很多事耽搁了,没准备充分,但也算积攒了一些经验。希望后面找工作的时候能够引以为戒。

大象机器人 - Python实习生(拿到offer)

先从小公司开始面起,体验一下,HR 人很好,技术面问得不深,整体过程感觉良好。当天就回复通过了,思考了两天就拒了。

HR面

  • 自我介绍

  • 项目做了什么,获得什么成果

  • Python什么程度

  • 算法工程师与我们这个岗位的区别,为什么选?

  • 平时怎么学习,专业什么方向,如何获取国外信息?

  • 一周来几天,实习时间,什么时候可以过来

  • 反问

技术面

  • 平时用C++11/98?11比98多了什么特性和库
  • 类和对象的区别
  • 常见的排序,时间复杂度
  • Python情况
  • 有无作正常图像目标检测的经验
  • 项目中帧率问题怎么解决
  • 单目姿态估计流程
  • 双目过程,PCL会吗?
  • slam了解不?

即构科技 - AI图像视频实习生(拿到offer)

还是尝试一下,一面的面试官人非常nice,问得比较深,遇到不会的也不刁难,而是给我解答。同时最后还跟他聊了一下视觉方面的发展,还对于我的简历和个人的职业规划作出了一些建议,非常感谢师兄。二面的面试官估计是总监吧,感觉问的比较随性,其实面得挺差,但它说实习生要求不高也就算了,当场就跟我说通过了。后面思考了好几天,也拒了。(因为后面还有很多面试结果没出)

技术一面

  • 自我介绍,讲学业背景,讲比赛

  • 比赛形式介绍,主要做了什么内容,有什么衡量指标

  • yolov3_lite 介绍一下

  • 为什么用 cascade_rcnn?与其他的不同在哪?

  • 为什么要用ohem ?

  • 项目中用的什么平台?编译caffe遇到了什么问题,怎么解决?mmdetection 介绍一下

  • C++/Python 哪个用得多

  • GAN,自编码机讲一下

  • GAN的判别器损失函数是?

  • 介绍一下项目中如何使用 solvepnp ,怎么从2d变到3d,如何标定

  • 为什么用lenet网络,有无实际编写网络的经验

  • 比赛中哪些部分是你做的?

  • 数据增强部分说一下,有无使用检测方面的增强

  • 数据怎么标注?标注的格式怎么样,如何转到coco格式?

技术二面

  • 讲一下lenet训练流程
  • yolov3_lite 数据集怎么做
  • ohem 的原理,为什么要用?
  • 智力题:一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家 看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然 鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?
  • 使用什么语言?C++怎么样
  • C++ 写一个单例模式

普渡机器人 - 感知算法实习生 (拿到offer)

有两个面试官,估计是工程师。问得不深,主要问的是知识的广度,说出了大概就行。下午面完,当天晚上就给offer了,后面思考了两天也拒了(因为腾讯音乐过了)。感觉普渡做送餐机器人,服务机器人还是很不错的,希望做机器人方向的可以去。

  • 自我介绍
  • 说一下机器人自动瞄准的流程,pnp算法的流程
  • 相机标定,标定什么参数
  • Lenet 的用途,做了什么数据增强
  • 说一下对目标检测的了解,anchor_free 了解多少
  • 为什么用 cascade_RCNN
  • Ohem 原理讲一下,怎么做
  • 了解什么卷积
  • 了解什么阈值算法
  • 给你一个网络,怎么做加速
  • 知识蒸馏说一下
  • 目标检测指标,map怎么计算,recall,precision怎么算
  • 双目视觉流程说一下

TCL工业研究院 - AI算法实习生 (拿到offer)

TCL工业研究院很大,满满的科技感。HR小姐姐和两个面试官人都很好,主要问的是一些三维视觉和深度学习的基础,遇到不会的也给我解答,体验良好。下午面完,晚上就给offer了,思考了几天也拒了。

  • 自我介绍
  • 项目中 slovepnp 怎么使用
  • Yolov3_lite 数据集怎么做的,做了什么改进
  • Resnet 的作用
  • Vgg 和 Alexnet 的区别
  • 了解什么卷积
  • BN 的作用
  • 激活函数的作用是什么
  • 怎么理解卷积
  • 双目视觉流程
  • 给定三个点,如何求法向量
  • 了解 NLP 吗?

腾讯音乐 - 多媒体算法实习生 (拿到 offer)

面试官人非常nice,主要是问的项目,问项目的每一个细节。然后强调的是解决问题的能力。面完之后,隔了两天给offer。

  • 自我介绍
  • 介绍比赛,自动瞄准项目怎么做
  • 做了什么数据增强
  • 相机怎么选型
  • Yolov3_lite 怎么选的,数据集怎么做
  • 熟悉Pytorch吗?
  • C++/Python 熟悉程度
  • 代码题:数据清洗,使用xml 和 正则表达式

腾讯广告 - 计算机视觉算法实习生(拿到 offer)

腾讯总部是我面的最难的之一了,问得很深,简历上的每一个知识点你都必须深刻了解。可惜我时间不够,准备不充分,很多问题的细节都忘记了,而且代码题写了很久。唉,算法和基础一定要扎实。

技术一面

  • 自我介绍
  • 聊机器人比赛
  • Faster rcnn 正负样本怎么确定,用什么阈值,怎么训练,一开始 RPN 没有负样本的话有什么现象
  • 为什么选cascade_rcnn ,cascade_rcnn 解决了什么,对Faster_rcnn 有什么改进,怎么改进
  • ohem 讲一下流程
  • 给定一段视频,如何检测这个视频中出现了多少不重复的人?回答一帧帧检测,第一帧检测到的人存入数据库,下一帧进行比对。
  • 如果要提速怎么做?网络加速,抽帧检测,做降维,做跟踪。
  • 有无查阅论文解决问题的经验
  • 代码题 计算 IOU 函数

技术二面

  • 自我介绍
  • map 怎么计算?precision 和 recall 怎么算?
  • 代码题:写一个函数,计算 ap
  • Resnet 结构 画一下
  • FPN 结构说一下,具体怎么做的?有什么作用?
  • 讲一下GAN,GAN怎么训练的?
  • 用Pytorch 写一个 DNN 模型
  • 激活函数的作用,sigmod 数学公式写一下

商汤科技 - 计算机图形算法实习生

目前最难了。。。没有问深度学习,完全 C++ 和传统的图像处理算法和三维视觉,很多需要你深刻理解它的数学公式。。。而且快速排序太久没写也写不出。。。我以为应该凉了,没想到进了二面。。。不过面试官很不错,会给我提示,遇到不会的也说没关系,还给我提了一些建议。

技术一面

  • 自我介绍
  • 自动瞄准介绍一下
  • 用了什么阈值算法,大津算法原理,数学公式写一下
  • 相机标定介绍一下,写一下图像坐标系到世界坐标系的公式
  • SolvePnP 的 DLT,BN 怎么算的,
  • 指针和引用的区别
  • 常见的类型转换说一下,dynamic 有什么用
  • malloc/free 和 new/delete 的区别
  • C++ 面向对象的特性
  • 多态怎么实现,原理是什么,写一个纯虚函数,纯虚函数底层
  • STL库用得多吗?说一下 vector 中的 push_back 和 emplace_back 的区别
  • 有什么常见的视觉特征,说一下角点检测,surf 这些算法
  • 有什么插值算法?怎么做的?
  • 给你一个点和三角形,如何判断点在三角形中还是外
  • 编程题:写快速排序
  • 编程题:一个矩阵,后面的比前面的值大,如何快速查找一个值?

技术二面

太难了,太菜了,全程就是不好意思,这个不太了解。。。

  • Canny 原理
  • 你了解什么滤波?中值滤波、高斯滤波是怎么做的,有什么区别,优劣在哪?高斯滤波怎么减低时间复杂度?x方向和y方向进行,怎么做的?效果和原来的一样吗?快了多少?
  • 有做过图像压缩吗?
  • 讲一下相机标定的原理,怎么做的?
  • PCA/SVM 了解吗
  • STL 库中 map 的原理?了解红黑树和哈希吗?红黑树讲你所知道的?左旋右旋怎么做?
  • malloc/free 和 new/delete 有什么区别?如果new 一个数组,free 掉会怎么样?如果是一个对象呢?
  • C++ 怎么定义对象而不调用构造函数?
  • 讲一下多继承和继承的区别?会有什么问题?
  • 多线程了解多少?并发和并行的区别?怎么做并行?信号量机制是?互斥量是什么?
  • 两个立方体怎么检测是否碰撞?

思谋科技 - AI算法实习生

这个是面得最快的了,主要问的是 C++ ,它说还可以,but 两天了都没消息。

  • 自我介绍
  • cascade_rcnn 介绍
  • 有没有用过智能指针,怎么实现的?
  • 讲一下C++的堆栈
  • 说一下C++ 封装、继承、多态

总结

  • 简历上的每一个知识点都要深刻熟练的理解
  • 编程能力要好好提高,算法,leetcode 好好刷。
  • 基础知识要扎实。

需要补充的知识点:

传统图像处理(OpenCV库函数实现)

  • 图像像素操作以及通道操作
  • 图像的平移和旋转
  • 三种插值算法
  • 空域滤波和频域滤波
  • 直方图计算、均衡化、重投影
  • 阈值分割
  • 形态学处理
  • 对比度增强
  • 霍夫检测、特征点检测
  • 色彩空间

立体视觉(视觉Slam十四讲)

  • 单目、双目相机标定流程,内参、外参怎么求解
  • pnp的原理、解法
  • 立体矫正、立体匹配、三维测量原理

机器学习(啃西瓜书)

  • 线性回归、逻辑回归、LDA
  • KNN、SVM、决策树、随机森林、贝叶斯、MLP
  • k-means、PCA、隐马尔科夫模型、图半监督学习

深度学习(吴恩达课程)

  • 模型评估、指标、数据集
  • MLP模型,BP推导
  • 激活函数
  • 损失函数
  • 超参数选择
  • 过拟合:正则化、drouput、BN
  • 优化器
  • 卷积神经网络原理、不同的卷积
  • 常见的特征提取网络优缺点,发展,作用
  • 目标检测历史发展,熟悉 yolo/faster_rcnn/centerNet
  • RNN/LSTM/GRU/Transformer

C++

  • 《C++ Primer》、《Effective C++》等
  • 设计模式

操作系统

  • 《CSAPP》

计算机网络

  • 《TCP/IP》