騰訊/字節(jié)/華為/曠視 2022屆實(shí)習(xí)面經(jīng)—計(jì)算機(jī)視覺方向

極市導(dǎo)讀
本文總結(jié)了騰訊、字節(jié)、華為等廠實(shí)習(xí)面試中的經(jīng)驗(yàn)和心得體會(huì),給準(zhǔn)備面試和求職的同學(xué)一點(diǎn)幫助。 >>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿
作為2022屆3月畢業(yè)的學(xué)生,現(xiàn)在開始找實(shí)習(xí),主要目的是為之后的秋招積累一些面試經(jīng)驗(yàn)和工作經(jīng)驗(yàn),如果能通過實(shí)習(xí)轉(zhuǎn)正也算是為秋招找到了一個(gè)基礎(chǔ)選項(xiàng)。
本文主要記錄了本人在實(shí)習(xí)面試過程中的經(jīng)歷和心得體會(huì) ,以進(jìn)行一個(gè)自我的總結(jié)梳理,同時(shí)可能對目前在面試或者即將求職的同學(xué)有些幫助~
個(gè)人情況
先介紹一下本人情況:
985本碩,研究方向是全景視頻拼接、圖像曝光度校正,發(fā)表相關(guān)論文共3篇,目前已經(jīng)收到騰訊、字節(jié)跳動(dòng)、曠視的offer,華為也已經(jīng)面試完在等結(jié)果。
在進(jìn)行崗位投遞時(shí),我發(fā)現(xiàn)實(shí)習(xí)生崗位大都劃分比較寬泛,比如我投遞的計(jì)算機(jī)視覺方向的崗位,并不會(huì)細(xì)分到很具體的研究領(lǐng)域,更多情況是公司會(huì)根據(jù)簡歷來進(jìn)行篩選,從而安排適合你的部門(或者是招人需求比較大的部門)進(jìn)行面試。
由于研究領(lǐng)域涵蓋比較廣,加上簡歷上我各種項(xiàng)目經(jīng)歷都羅列了出來,導(dǎo)致我的簡歷并沒有針對性,收到的面試邀請也是五花八門。這里我建議如果有明確的目標(biāo)崗位意向的同學(xué)可以對簡歷進(jìn)行針對性優(yōu)化,僅僅羅列相關(guān)的項(xiàng)目經(jīng)歷即可,這樣可以避免簡歷被自己不感興趣的部門撈起來,造成雙方的資源浪費(fèi)。
字節(jié)跳動(dòng)—計(jì)算機(jī)視覺研發(fā)
簡歷投遞
簡歷直接發(fā)給HR,第二天直接收到面試通知,很快很高效
一面(約50分鐘)
1. 面試官先對介紹了部門,以及本次面試的流程(自我介紹,代碼能力重點(diǎn)考察思路和復(fù)雜度分析,項(xiàng)目經(jīng)歷),提醒控制自我介紹時(shí)間。
2. 自我介紹(大概一分半鐘):基本情況+研究方向項(xiàng)目經(jīng)歷+個(gè)人特質(zhì)優(yōu)勢。
3. 算法題:合并k個(gè)升序鏈表 直接leetcode hard難度了。面試官提示不急著寫代碼,看看有什么思路,并且分析復(fù)雜度。
我首先提出用最小堆把所有節(jié)點(diǎn)存下來,一個(gè)個(gè)取出。面試官問時(shí)間復(fù)雜度,并提示沒有使用到每個(gè)鏈表升序信息。
我再提出使用歸并的思路,兩兩合并鏈表。也是要求分析復(fù)雜度,然后讓我實(shí)現(xiàn)一下。涉及鏈表指針的題目實(shí)現(xiàn)起來很容易出錯(cuò),平時(shí)要多練習(xí)。我先實(shí)現(xiàn)了兩個(gè)鏈表合并的函數(shù),然后再實(shí)現(xiàn)主函數(shù)。期間面試官有很認(rèn)真在看我寫代碼,提示了我很多次代碼存在的問題,比如內(nèi)存忘記釋放,鏈表末尾的節(jié)點(diǎn)忘記處理等等。
磕磕絆絆寫完代碼,可能是考慮到時(shí)間問題,沒有讓運(yùn)行評測了。面試官點(diǎn)評“需要的提示還是有點(diǎn)多,可能是有點(diǎn)緊張了”,人還是蠻好的。
4. 聊項(xiàng)目:之前實(shí)習(xí)時(shí)候的OCR主要是做什么任務(wù),評價(jià)指標(biāo)是什么;目前主要做的環(huán)視拼接主要做了什么工作,有什么指標(biāo)。
這部分感覺面試官不是很懂這幾個(gè)領(lǐng)域,沒問太深,這個(gè)時(shí)候就要注重描述清楚問題的背景,以及自己的工作,最好再有量化評價(jià)。
5. 聊工作期待:我比較喜歡做應(yīng)用,解決實(shí)際的問題,不太想要單純刷指標(biāo)。
6. 反問環(huán)節(jié):圍繞著工作場景、工作內(nèi)容提問。
總結(jié):前面的算法題考察部分其實(shí)表現(xiàn)應(yīng)該比較一般,但是后面聊工作期待和反問環(huán)節(jié)和面試官聊得比較契合,就給過了。所以關(guān)于自己的工作期待其實(shí)應(yīng)該也有所準(zhǔn)備,可以結(jié)合這個(gè)部門的具體情況進(jìn)行闡述。
二面(約45分鐘)
1. 聊項(xiàng)目:二面在一面結(jié)束十幾分鐘之后就開始了,面試官直接開始問項(xiàng)目。
主要問的環(huán)視項(xiàng)目,先解釋基本步驟,闡述在項(xiàng)目中的工作。他主要關(guān)心了相機(jī)標(biāo)定的部分,應(yīng)該是他比較懂,聊得很深,包括位姿初始化、聯(lián)合優(yōu)化的具體細(xì)節(jié)。期間我提到g2o這個(gè)優(yōu)化庫,他沒有聽過,要求我詳細(xì)解釋一下,甚至當(dāng)場去查這個(gè)庫。他對聯(lián)合優(yōu)化這個(gè)部分要求解釋原理,是否有實(shí)驗(yàn)數(shù)據(jù)支撐它的有效性,為什么這么做是有效的。
2. 算法題:最長遞增子序列問題
面試官在這道題基礎(chǔ)上稍微改了改,要求輸出最長子序列的內(nèi)容而不是長度。我實(shí)現(xiàn)了基于動(dòng)態(tài)規(guī)劃的方法,他修改測試用例后發(fā)現(xiàn)結(jié)果不對,然后我找到問題改了改代碼就通過了。
總結(jié):對于自己的工作,尤其是準(zhǔn)備重點(diǎn)介紹的工作,每一個(gè)細(xì)節(jié)都要很熟悉,要能解釋清楚做了什么,為什么這么做,效果怎么樣。
三面(約30分鐘)
1. 自我介紹
2. 聊項(xiàng)目
問了主要的兩個(gè)研究方向,論文中的主要?jiǎng)?chuàng)新在哪里,要求解釋原理的那種,具體算法實(shí)現(xiàn)過程,現(xiàn)有其他方法是怎么做的,有什么評價(jià)指標(biāo)。
3. 面試官問除了視覺有沒有做過其它項(xiàng)目。
回答只是學(xué)過機(jī)器學(xué)習(xí)等相關(guān)課程,實(shí)驗(yàn)室主要還是做視覺方面的。
4. 崗位意向溝通
這個(gè)步驟主要是確認(rèn)崗位意向,面試官說他這邊的業(yè)務(wù)跟我的研究沒啥關(guān)系,不知道我能不能接受,我結(jié)合前兩輪面試跟面試官了解到的工作內(nèi)容和他談了一下我的理解,就比較順利。
總結(jié):字節(jié)的實(shí)習(xí)生面試流程非常完整,和正式員工的流程是一樣的,轉(zhuǎn)正率也很高。面試過程中,介紹項(xiàng)目的過程就是體現(xiàn)個(gè)人能力的過程,經(jīng)過前多次面試的練習(xí),感覺介紹項(xiàng)目時(shí)思路會(huì)更清晰了,也知道對于非專業(yè)人士來說什么是重要的內(nèi)容。如果項(xiàng)目介紹得好,能和面試官聊起來,是可以不用做算法題或者回答太多基礎(chǔ)問題的,從而讓面試更加順利。
曠視—算法實(shí)習(xí)生
簡歷投遞
官網(wǎng)投遞,過了一個(gè)星期左右才收到面試通知
一面 & 二面 (都是大概40分鐘)
流程幾乎一樣,自我介紹完了就聊項(xiàng)目,聊得很仔細(xì),可以看出曠視的這種科研底蘊(yùn)(也可能是崗位的原因),沒有做算法題,聊項(xiàng)目就能聊半個(gè)小時(shí)。反問環(huán)節(jié)他們熱情地介紹了他們的業(yè)務(wù)。
第一個(gè)面試官是做OCR的,對于我的關(guān)于OCR的實(shí)習(xí)過程問得很仔細(xì),完成了什么工作,用了什么模型,模型的原理和細(xì)節(jié),具體做了什么改進(jìn),為什么這樣改,使用這個(gè)模型的效果怎么樣。因?yàn)槲姨崃艘痪涓惺芤暗膯栴},要求現(xiàn)場計(jì)算vgg16的感受野。還問到是否了解CTC,我解釋了一下CTC用于解決什么問題,大致是基于動(dòng)態(tài)規(guī)劃思路,具體推導(dǎo)過去太久記不清了。
第二個(gè)面試官問的其他項(xiàng)目,和第一個(gè)面試官的風(fēng)格也很像。
在反問環(huán)節(jié)我提到曠視不是算法公司而是一個(gè)產(chǎn)品公司,于是面試官可能感覺我對于他們公司還是有點(diǎn)了解,蠻熱情地跟我介紹了一些項(xiàng)目,聊得比較愉快。
總結(jié):面試算法崗的話,對算法原理細(xì)節(jié),甚至涉及到的相關(guān)的知識(shí)點(diǎn)都要盡可能了解。對公司或者部門提前有一些了解的話,對面試可能也有幫助。
騰訊—客戶端開發(fā)
簡歷投遞
官網(wǎng)內(nèi)推投遞簡歷,投遞的是算法崗,但是可能計(jì)算機(jī)視覺方向?qū)嵲谑翘砹耍◤?qiáng)行安慰自己),第一志愿沒有撈我簡歷,反而是一個(gè)視覺相關(guān)的開發(fā)崗撈了我。我自己覺得開發(fā)崗也是一種鍛煉,我并沒有太多開發(fā)的經(jīng)驗(yàn),如果能力符合要求的話還是愿意嘗試的。
筆試(兩小時(shí)5道題)
騰訊的筆試還是有一定難度,好在一共有三次機(jī)會(huì),第一次沒經(jīng)驗(yàn),按順序做的題,其實(shí)最簡單的是最后一題。第二次立志刷分,先看完五道題然后依次選擇最有把握的題目進(jìn)行實(shí)現(xiàn),比第一次好很多。
兩次考試的題目看下來,每次基本上都會(huì)有一道數(shù)學(xué)題,然后考驗(yàn)基礎(chǔ)知識(shí)(搜索、回溯)的實(shí)現(xiàn)的題,還有考驗(yàn)對具體問題進(jìn)行分析的題目,有的問題想不明白還是挺難的。
筆試成績應(yīng)該是作為參考的,如果沒有acm基礎(chǔ)的話,建議就多刷基礎(chǔ)算法題,因?yàn)檫@在面試中也是會(huì)考察到的。
一面(45分鐘)
1. 自我介紹 & 簡單聊聊項(xiàng)目
2. 算法題:實(shí)現(xiàn)圖像處理中值濾波
崗位工作內(nèi)容主要和圖像處理相關(guān),所以考察的也是以圖像處理的形式。這個(gè)問題其實(shí)是一個(gè)找中值的問題。
最開始實(shí)現(xiàn)的是 找第K大的數(shù) 的思路,用快排的思路寫的。面試官要求分析復(fù)雜度,然后提示這個(gè)方法可以找任意數(shù)值大小的中值,但是圖像像素值僅分布在0-255,有沒有改進(jìn)空間
于是想到桶排序,進(jìn)行實(shí)現(xiàn)之后也是要求分析復(fù)雜度
3. 崗位意愿:是否愿意做開發(fā)等等
二面(45分鐘)
1. 面試官對部門進(jìn)行比較全面的一個(gè)介紹,很拉好感
2. 簡單自我介紹
3. 面試官讓我挑一個(gè)項(xiàng)目介紹,選了工作量最大的環(huán)視拼接項(xiàng)目,介紹過程中講每個(gè)步驟他會(huì)問為什么這么做,用了什么算法;在完成這些工作時(shí)是由導(dǎo)師指導(dǎo)還是自己探索的
4. 再挑一個(gè)項(xiàng)目進(jìn)行介紹,選了曝光度校正,聊評價(jià)指標(biāo)的時(shí)候聊到IQA,面試官似乎了解這個(gè)領(lǐng)域于是就順著聊下去了(面試過程中要做好隨時(shí)聊偏的準(zhǔn)備,也可以展示一下自己涉獵廣泛)
5. 算法題:兩個(gè)字符串最長公共子串
二維動(dòng)態(tài)規(guī)劃問題,實(shí)現(xiàn)完面試官問能不能優(yōu)化,我回答空間上可以優(yōu)化,只需要存當(dāng)前行的狀態(tài);然后問如果字符串長短有差異怎么利用,我回答用短的字符串長度作為列數(shù),進(jìn)一步降低空間復(fù)雜度
6. 反問環(huán)節(jié)
對實(shí)習(xí)能力有哪些要求:自學(xué)能力+基礎(chǔ)知識(shí)扎實(shí)
HR面(10分鐘)
確認(rèn)基本信息,未來就業(yè)計(jì)劃地點(diǎn)以及職業(yè)規(guī)劃
是否有其他面試,問崗位信息以及我的傾向
詳細(xì)問為什么選擇這個(gè)崗位
核心競爭力是什么
總結(jié):騰訊的面試流程整體體驗(yàn)下來感覺比較規(guī)范,面試流程狀態(tài)在官網(wǎng)也有及時(shí)的更新。就是撈簡歷環(huán)節(jié)比較隨機(jī),大廠的部門很多,面對不感興趣的部門可以選擇及時(shí)結(jié)束本次面試,從而給下一次面試的發(fā)起留有更多時(shí)間。
華為—自動(dòng)駕駛傳感器相關(guān)
簡歷投遞
由于實(shí)驗(yàn)室和華為這個(gè)部門有過合作,直接聯(lián)系HR進(jìn)行崗位簡歷投遞,但是從投遞到發(fā)起筆試面試等了有一兩個(gè)星期。
筆試(兩小時(shí)3道題)
相比騰訊的筆試,感覺更基礎(chǔ)一點(diǎn),會(huì)考察對數(shù)據(jù)結(jié)構(gòu)的運(yùn)用,還有字符串的輸入處理(對c++選手可以說是很不友好了),也有算法的考察。
一面(30分鐘)
1. 自我介紹
2. 項(xiàng)目提問,對曝光度校正項(xiàng)目感興趣,問原理,面試官覺得很神奇,然后我也很熱情地給他介紹。后面他問這個(gè)算法在極端情況下的性能,比如進(jìn)光量本身就非常小的情況之類的。還問了環(huán)視項(xiàng)目的主要?jiǎng)?chuàng)新在哪里。
3. 算法題:找出字符串的最長回文子串
起初提出動(dòng)態(tài)規(guī)劃的思路,面試官說你是不是想復(fù)雜了,算了能解決問題就行你寫吧。然后我寫著寫著發(fā)現(xiàn)順序遍歷就行,然后就改成順序遍歷了,測了兩個(gè)測試用例給面試官看再解釋一下代碼邏輯就可以了。
二面(20分鐘)
1. 面試官說已經(jīng)稍微看了下我的簡歷,希望能進(jìn)行一個(gè)5分鐘的自我介紹,介紹一下基本情況、做過的項(xiàng)目之類的。
2. 介紹一下實(shí)習(xí)期間的工作。
3. 環(huán)視項(xiàng)目提問
環(huán)視拼接現(xiàn)在是比較普遍、成熟的算法,我的主要?jiǎng)?chuàng)新體現(xiàn)在哪里。我就解釋了目前普遍的拼接做法,不足和可以提升的地方,我的做法的創(chuàng)新點(diǎn)。
4. 日常工作學(xué)習(xí)和人合作的過程中遇到的困難,以及技術(shù)上遇到的困難,是怎么解決的。
我舉例說明了在一些團(tuán)隊(duì)競賽中遇到的困難,然后通過主動(dòng)積極溝通、積極請教的方式去解決。
5. 反問環(huán)節(jié)
實(shí)習(xí)生哪些能力比較看重(回答:和團(tuán)隊(duì)磨合合作的能力。
轉(zhuǎn)正流程(轉(zhuǎn)正是需要重新面試的,如果實(shí)習(xí)期間表現(xiàn)好會(huì)有幫助。
總結(jié):華為的實(shí)習(xí)生面試流程比較短,可能也是因?yàn)椴⒉恢苯愚D(zhuǎn)正吧。對于碰到困難怎么解決這個(gè)問題,也可以事先準(zhǔn)備一些具體事例,以供面試的時(shí)候分享。
寫在最后
總結(jié)一下面試準(zhǔn)備過程中的關(guān)鍵步驟:
1. 算法題準(zhǔn)備
leetcode101、劍指offer等書籍,結(jié)合leetcode、牛客網(wǎng)等網(wǎng)站多練習(xí),常考察的鏈表、排序、搜索等算法要能熟練寫出來。
2. 簡歷投遞(可以根據(jù)目標(biāo)崗位進(jìn)行項(xiàng)目經(jīng)歷調(diào)整)以及面試準(zhǔn)備
一邊投簡歷一邊準(zhǔn)備面試,可以先投非目標(biāo)公司作為面試練習(xí),實(shí)踐出真知。準(zhǔn)備面試的過程中,我會(huì)把簡歷上每個(gè)項(xiàng)目都按照STAR法則(背景-任務(wù)-行動(dòng)-結(jié)果)的結(jié)構(gòu)都寫下來,防止遺忘或者面試的時(shí)候緊張想不起來,面試前加以復(fù)習(xí),保證面試的時(shí)候闡述項(xiàng)目思路清晰。
3.每次面試都要寫面試總結(jié)
我會(huì)將面試中沒回答好的問題都記錄下來,重新斟酌答案,以防止下次再被問到。事實(shí)證明,面試過程中遇到重復(fù)問題概率還挺大的,如果每次都進(jìn)行整理的話,后面的面試通常就大致都能回答上來了。
最后祝大家都能收獲理想的offer~
如果覺得有用,就請分享到朋友圈吧!
公眾號后臺(tái)回復(fù)“五一”獲取2017-2021CVPR資源合集~
YOLO教程:YOLO系列(從V1到V5)模型解讀|YOLO算法最全綜述:從YOLOv1到Y(jié)OLOv5
實(shí)操教程:使用Transformer來做物體檢測?DETR模型完整指南|PyTorch編譯并調(diào)用自定義CUDA算子的三種方式
算法技巧(trick):半監(jiān)督深度學(xué)習(xí)訓(xùn)練和實(shí)現(xiàn)|8點(diǎn)PyTorch提速技巧匯總
最新CV競賽:2021 高通人工智能應(yīng)用創(chuàng)新大賽|CVPR 2021 | Short-video Face Parsing Challenge

# CV內(nèi)推社群邀請函 #
備注:備注:姓名-學(xué)校/公司-內(nèi)推(小極-極視角-內(nèi)推)
即可申請加入極市內(nèi)推技術(shù)交流群,獲得最新大廠內(nèi)推和面經(jīng)干貨
每月大咖直播分享、真實(shí)項(xiàng)目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動(dòng)交流~

