地平线机器人面经(已拿offer,算法岗,计算机视觉方向,)

首先非常感谢牛客网这个平台,从这里获取了很多消息,也看了很多同学的面试经验,收获很大,因此也把我的面试经历写出来,和大家讨论,一起进步。(问题的答案不一定正确,有兴趣的可以网上搜一下,文笔不好,大家见谅,为流水式记录。。。)
    内推渠道 : 牛客网(实习)
    面试  (某天下午接到hr电话,问什么时候方便,然后定在了第二天下午4点面试。比起被阿里鸽子一个多星期要好的多。。。)
    第二天3:30从学校出发,以为来得及,就三站路,结果等公交等了十分钟。。。到公司已经快4点了,所以告诫去面试的朋友一定要赶早,毕竟迟到了给人的印象很不好。而且心里也比较着急,影响发挥。
    一面:
    首先是一个hr姐姐接待,然后给我带到了一个类似讨论区的地方,给我倒了水,让我等会,她去叫面试官。等待期间,我大概环顾了下公司,还不错,有跑步机,桌上足球啥的,然后不一会面试官来了,拿着我的简历。
    首先让我做了个自我介绍,我就按照学校、项目、自己擅长的技术、自己的性格这个思路简单介绍了下,然后面试官让我详细说说项目,我说做了H264解码,然后进行人脸检测、然后追踪最后识别,我主要负责H264解码和人脸追踪这块以及把整个模块合起来。
    面试官问:H264解码怎么搞的。
    我说用的是cuvid的硬解,然后输入是实时的视频流,输入用ffmpeg封装了下。
    面试官说:我们最近也在做视频解码,不过用的是XXX,问我听过没,我说没(所以也没记住到底说了啥。。)
    然后又问了一堆项目相关的问题,这里就不展开了。
    问完项目,我以为还会问点基础啥的,结果面试官微笑的看着我,说:你有什么想问我的。我就有点着急了,应为感觉没问别的,感觉不妙。
    我说如果有幸能来实习,我大概会做什么呢,然后他说可以做一些和你做过的项目相关的事情,比如视频、图片的处理等等(最后确定我的mentor就是他。。)。我说那还不错哈,然后面试官又问还有什么想问他的,我说那下面还有面试吗,他说我过去一下,你等会。于是起身走了。。。

 二面:
   大概等了7,8分钟吧,在等待期间观望了下工作区,发现有的电脑是悬空的(大概这个意思),感觉还挺有意思。然后一位略带婴儿肥的面试官拿着简历、纸、笔过来了。我估计可能会问些计算机基础以及算法了。
   面试官:看你简历上写熟悉CUDA,你能具体讲讲吗。
   我:写过图片的resize,padding,卷积,提取hog特征等的gpu代码(kernel函数),效果还不错。
   面试官问:具体说说怎么做到提升速度的。
   我:把处理安排到gpu的每个thread上。
   面试官:那看来你就相当于简单的利用了gpu的多核的特性?
   我一听感觉面试官不是很满意,于是扯了扯:还用了share_memory,const_memory等来提升速度,用了原子操作等来保证安全性。
   面试官:你能讲讲使用shared memory为什么快吗? 
   我:在某些应用场景下会快,一来和使用场景有关,讲了下哪些场景用这个会好一些,二来可能是硬件方面的原因吧,硬件原理方面的我也不清楚。
    然后面试官从内存的金字塔结构,以及gpu的一些特性给我展开讲了很多,这个面试官感觉是gpu方面的行家,人非常好,感觉给我做了个讲座。。。
    然后面试官问:你知道warp这个概念吗?
    我说知道,就是gpu底层同时执行的指令数量,现在一般是32.所以在写内核函数的时候,thread的数目最好是32的倍数。其他的不太清楚。
    面试官好像点了点头,又给我balabala做了一次讲座。。。。
    面试官问:假如要申请一大片空间,一次性申请这么大的,和分多次申请很多小的,但总数一样,哪个快,为什么。 
    我:在做项目的时候遇到过这种情况,前者会快很多,然后说了原因(答得不太标准,就不误导大家了)
    面试官:其实cpu和gpu在这方面是一样的,  都会维护一个表什么的,记不太清楚了。
    面试官:怎么看gpu使用情况。我:nvidia-smi(我用的是nvidia的卡)。
    记得的大概就这些,然后面试官说,来写代码吧。然后给了个函数原型,反转字符串。比如abcd,变为dcba,内存、时间方面最好比较好。
    我一看,感觉非常简单,但又觉得有坑,想了想,可能就是看看会不会写代码吧,然后我的做法是先计算长度,然后最后一个和第一个互换这样的,交换用的是异或。然后把一些边界等处理了下。
    面试官简单看了下,然后说:你有什么想问我的(感觉面试都是这个套路),我说你评价下我吧。面试官说:作为一个研究生,深度还有待加强,不过我这里你通过了。

三面:
   等了十分钟左右,一位高高瘦瘦的面试官走了过来,这个面试官比起前面两个严肃多了,搞的我有点紧张。。
   首先对着简历问问题,这里就不展开了,然后问知道大小端吗?
   我:知道,数据的低位存在低地址,高位存高地址,这是小端模式,大端是反的。然后说了linux下可以通过系统调用看机器是什么模式,以及自己可以写程序,用指针判断是什么模式(写了下代码)。
   面试官:操作系统页式管理,讲讲。
   我:查找页表项,看这页在不在内存,不在的话,产生缺页中断,然后看有没有多余的位置,没有的话要把以前的页面调出去,具体怎么调油LRU、时钟算法等。
   面试官:奇数个数,只有一个出现了一次,其余都出现了偶数次,找出这个只出现一次的数。
   我一听,刚好做过,一激动,他还没说完我就说:全部异或一遍。
   面试官:是不是做过?我才发现自己太蠢了,应该故作思考的,然后就说也不能这么说吧,我自己对位操作做了个总结(把面试官往自己熟悉的方面引导,也是看别人的面经学的)。
   面试官:讲讲你总结的,然后我就展开聊了会。
   面试官:一个不重复的字符串,还有一个通过这个字符串通过各种交换的字符串,求最小交换次数。我:把源字符串看成1到n的数字,然后逐个处理(讲不清,有兴趣的可以搜一下标准做法)。
   然后又问知道什么图像处理的方法,以及HMM和AdaBoost(简历提到),深度学习相关的一些。
   最后问对人脸识别有什么看法,我说人脸具有稳定的结构,比如额头-眼睛-鼻子-嘴巴,所以比起其他东西要好识别,以及应用意义比较大。      然后又是既定流程:你有什么想问我的。最后面试官说你等下我去找下人事,然后我就觉得应该没问题了

hr
最后和hr姐姐(应该是一样年纪,通过交流知道也是实习的,还在北大读书。。orz)谈了下薪资、mentor、所属的组,以及什么时候入职。
最后部门是智能安防,算法实习生的offer。

总结:
一面项目,二面gpu相关,三面计算机基础、算法。简历上的每一个问题都要自己非常熟悉以及能过扩展的去说。(好像有人在经验贴里说过),尽量往自己熟悉的地方去引导。。。。
面试还是要看缘分吧,然后多看看别人的面试经验,对每一个问题都自己去搜一下,以及扩展一下,我也在牛客网看了量的经验贴(再次感谢)。这种临时抱佛脚效果还是很大的。
最后还是要说文笔不好大家见谅哈,希望大家都能找到自己满意的offer!


全部评论
文笔太好了🤭
点赞 回复 分享
发布于 2022-08-13 12:11
实习生面试也这么复杂吗
点赞 回复 分享
发布于 2018-11-28 16:49
实习生面试也这么复杂吗
点赞 回复 分享
发布于 2017-09-16 12:57
我知道你叫啥了,哈哈
点赞 回复 分享
发布于 2017-09-12 11:21
lz大牛~
点赞 回复 分享
发布于 2017-09-12 10:18
点赞 回复 分享
发布于 2017-09-11 23:35
楼主研几
点赞 回复 分享
发布于 2017-06-15 22:46
膜拜大神
点赞 回复 分享
发布于 2017-06-15 20:03
楼主你说整理了位操作的题目,可以分享一蛤吗
点赞 回复 分享
发布于 2017-05-06 14:42
楼主大神
点赞 回复 分享
发布于 2017-05-06 07:17
地平线本科生多不,现在让我去北京二面,但是我在广东去了失败了路费就2000+了。
点赞 回复 分享
发布于 2017-04-19 19:38
地平线是高科技技术公司啊。恭喜楼主
点赞 回复 分享
发布于 2017-04-05 10:51
我内推了一直都没消息。。。
点赞 回复 分享
发布于 2017-04-05 10:40
楼主,内推方式是啥啊,跪求
点赞 回复 分享
发布于 2017-04-03 13:40
楼主厉害!
点赞 回复 分享
发布于 2017-04-03 13:30
一直等你发经验贴呢,哈哈
点赞 回复 分享
发布于 2017-04-03 12:59
好厉害
点赞 回复 分享
发布于 2017-04-03 12:22
实习多少钱一个月
点赞 回复 分享
发布于 2017-04-03 11:09
点赞 回复 分享
发布于 2017-04-03 10:50

相关推荐

3个面试官一起面,然后两个男的是技术面,一个女的应该是负责记录的。然后非常吵,他们应该同时面试很多人,旁边的同事也都在面试,杂音巨大。整体难度还行,问的驱动比较多。好多问题就问有没有用过,我说个用过他也就不具体问了,第二个面试官。HR说结果很快,几天就出来,让我退出会议,他们商议去了。**面试官1:**1.自我介绍,要很详细的解释项目2.rtmp和rtsp讲一下3.音视频推流完了以后怎么播放4.TS介绍一下(我说的巨详细,头部几个字节啥的都给他讲清楚了)5.问这个音频和视频怎么编码,用什么编码的(我说H264和AAC,这个面试官应该是不懂,第二个项目名称有H265还问我H265是一款单片机吗????麻了)6.m3u8介绍一下7.TS流有什么优点**面试官2:**8.uboot传递参数怎么传的,完了使用什么命令查看 (这个就是给他讲了像环境变量了   printenv  echo了啥的)9.应用程序控制驱动接口用什么api (ioctl  open read write等,驱动使用copy_from_user copy_to_user  put_user  get_user这些)10.mmap有没有用过(我说用过,后面还没说完,他说用过就行)11.DMA用过没,有什么特点12.DMA为什么会产生内存一致性问题  (这个说了个绕过了CPU缓存  还有  可能跟CPU产生竞态)13.文件系统怎么制作 (我就说这个就是使用像人家的busybox啥的,跟着命令和步骤来)14.proc文件系统用过没,怎么使用的  (随便说了说,查看信息了,设置参数了啥的,然后说了具体怎么设置的)15.linux调试驱动动态打印方式(我说用过printk demesg ,他说别的我说那不知道了,我就用的这些)16.网络驱动用过没,里面重要的结构体是啥17.问中断上半部下半部,什么意思18.问了问I2C、SPI  驱动的基础知识,像设备树19.image zimage  uimage区别了啥的**二面**二面很快,当天面试完后就二面,二面没有问技术,因为可能一面的时候3个人轮流面试,已经面完了。二面的就给我介绍他们公司的业务,公司的团队等等,问了问期望地点和薪资。**三面**半个小时,5个面试官,1对5,轮流提问。就一直问项目经历了啥的,也没啥别的了。
查看21道真题和解析
点赞 评论 收藏
分享
腾讯会议面试,3个面试官一个一个进来,一个人半个小时还多一共2个小时左右。前面两个主要问项目多,最后一个各种八股文和场景题。问了无数个问题,把有印象的记录下来,顺序可能也不太对。**面试官1:**1.说一下h264和h265的区别2.音视频如何同步3.看你做过鸿蒙是应用层还是底层4.鸿蒙编译过程中遇到了什么问题,怎么解决的5.音频使用的什么格式,比原始的缩小了多少倍6.FFmpeg读取音视频的流程是什么7.SRT协议是什么讲一下8.第一个项目你用ffmpeg都做了什么9.你使用的什么协议传输的数据,具体过程讲一下10.第一个项目使用了rtmp第二个使用rtsp为什么11.录制和回放是怎么做的,具体怎么实现的12.你使用的Linux开发还是windows为什么13.Nginx服务器是怎么搭建14.我现在有一个数组里面有正数有负数,我怎么知道某一段连续的几个数里面的最大值是几15.那段实习经历主要做了什么工作16.三次握手和四次挥手解释一下17.struct和类的区别18.能实习不,啥时候可以上岗19.怎么实现多态**面试官2:**1.TCP和UDP的区别2.struct和类的区别3.实习主要做了什么,问的非常具体的那种4.通信协议拟了解哪些5.讲一讲rtmp6.讲一讲rtsp7.讲一讲rtp8.将一下rtcp9.rtmp和rtsp有什么区别10.rtsp和rtp有什么区别11.rtp和rtcp怎么工作的12.tcp跟 他们有什么关系,有什么区别13.第三次握手丢包了怎么识别14.识别到丢包了,怎么补救15.回答了超时重传和前向纠错,然后就问前向纠错怎么纠错16.rtp传输协议怎么计算延时17.一亿个整数排序大概要多长时间,不太会,说了内存大小大约400MB,选择快速排序的算法,复杂度是nlonN,然后就一直追问你给我算一下,具体几分几秒,麻了18.说到了时间复杂度,时间复杂度跟什么有关19.做界面为什么使用Qt不用别的20.鸿蒙怎么编译的21.你的打印机软著是什么,讲一下22.你的调度算法软著是什么讲一下你的这个算法23.音视频编码你怎么优化参数的,为什么24.一个100M的原始音频文件使用aac压缩后大概多小多少,你试过吗25.你的推流拉流项目实在dos窗口还是有界面,为什么不在浏览器里面实现26.鸿蒙应用层开发怎么做的,底层怎么做的27.你做过ios和安卓吗,28.SDK怎么编译,我说根据官方手册的命令,人继续追问,官方命令也不可能比较顺利,你具体遇到了哪些问题,怎么解决的29.FFmpeg你是安装使用的还是自己下载编译源码的,你编译的时候遇到了什么问题30.说一下为什么之前做前端现在又做C++**面试官3:**1.自我介绍一下2.说一下为什么之前做前端现在又做C++3.C语言中,怎么避免头文件重复包含4.C语言中,字符串转Int,int转字符串的方法​使用`atoi`或`strtol`函数         使用`sprintf`或`snprintf`函数:5.C++中又怎么实现​使用`std::stoi`(C++11及以上)         使用`std::to_string`:6.struct和类的区别7.怎么实现多态8.C语言编写的程序,程序怎么知道自己的名字的9.C语言的随机数怎么写10.在C语言中,数组的个数明明是提前已经确定了,为什么还会越界11.怎么在C语言中打印32位比特12.memcpy和memmove你听过吗,有什么区别13.手写printf函数​14.C语言中,怎么取当前的秒和微秒​在C语言中,可以使用 `<time.h>` 头文件中的 `gettimeofday` 函数来获取当前的秒和微秒15.RAII是什么16.RAII除了智能指针还能干什么17.int a =3 和int b = 4 怎么判断是同一种类型,怎么判断他们都是Int类型​在C++中,可以使用`typeid`运算符来判断变量的类型。18.c++ 中我不想让系统帮我进行字节对齐怎么办19.deLete p和 delete p [] 区别20.如果直接使用deLete p删除数组会出现什么情况21.c++ cast转换有哪几种22.动态类型转换(dynamic_cast)为什么是安全的23.c+++   map跟unordered_map 有什么区别24.c+++   map跟unordered_map 的key可以是自定义类型吗,25.c++ 的for函数和C语言的for函数相比,第三个参数都能传哪些东西,新增了哪些26.STL bind函数是什么怎么使用的27.vector怎么实现的28.Lambda函数是什么就具体讲捕获列表,参数列表,返回值这些29.如果父类函数里面有个 foo(int a) ;  foo(string a); 子类函数有个foo(自定义类型)  会怎么样30.怎么阻止实例化对象31.向上转换和向下转换是什么,哪个是安全的为什么32.什么时候出现重载什么时候是重写33.vector容器我一直push,如果满了他是怎么扩容的34.观察者模式是什么,咋么实现的35.vector源码你看过吗,调用了哪些函数36.听过说 quic协议吗37.运算符重载是怎么实现的
点赞 评论 收藏
分享
评论
24
135
分享

创作者周榜

更多
牛客网
牛客企业服务