opencv计算brox光流_字节跳动计算机视觉算法实习生视频面试
最近有朋友問我如何準備視覺算法的面試,恰好看到一篇很不錯的文章(感謝@辛俊波寫的這篇文章),有相關疑惑的朋友可以看一下
如何看待 2020 屆校招算法工程師崗位求職人數遠大于招聘崗位的現象??www.zhihu.com崗位信息如下:
一面(時間2019.3.14,形式是視頻面試) -- 已涼
下午四點面試,晚上七點半收到了涼涼的郵件通知,不慌的,再接再勵,查漏補缺,下面我就詳細總結一下面試的經過。
注意:回答不一定正確,僅提供了我個人的回答,答案里有些不正確的地方,我之所以給出我的個人回答只是為了更好地還原面試過程,最近如有時間,我會整理出正確的答案。
注:我在下面的這篇文章中匯總了一些好文章,如果有需要的可以參考一下
JustDoIT:計算機視覺知識點總結?zhuanlan.zhihu.com致謝:感謝各位朋友和各位大佬給出的寶貴意見
總結:根據各位朋友和各位大佬給出的寶貴意見,我反思總結如下:
- python 和 c++基本語法不夠扎實,需強化基本語法點
例如對python里面的集合set不太熟悉
- 回答過于簡潔,難免給面試官基礎知識不扎實的錯覺,需講得更詳細
- 深度學習的基礎知識不扎實,不系統化,需構建知識體系
面試建議:面試官主要是對著簡歷進行提問的,然后再擴展一下相關的知識點。面試主要考察了項目、比賽以及一些理論知識和編程語言的語法點。建議大家可以看著崗位信息進行簡歷的制作并且在簡歷上出現的內容需要好好準備一下。
下面就開始還原面試過程
1、簡單自我介紹
2、kaggle "TGS Salt Identification Challeng"模型的準確度是怎么算的?
我說ap,然后面試官問有沒有用miou,我說沒有
TGS Salt Identification Challenge3、說一下unet的結構
卷積,下采樣,上采樣,然后低層特征圖和高層特征進行融合,最后進行分類
4、熟悉deeplab嗎,aspp是怎樣的
不太熟悉,目前正在閱讀相應的論文和源碼,我目前是對FCN,unet,refinenet,mask rcnn比較熟悉
5、說說 智能盤點—鋼筋數量AI識別 這個比賽
這個比賽是實現拍照即可完成鋼筋點根任務,先使用了YOLO,然后用了faster rcnn還有retinanet
智能盤點-鋼筋數量AI識別 - DF,CCF大數據競賽平臺6、retinanet的focal loss是解決的什么問題
解決類別不平衡問題,對困難樣本的損失分配比較大的權重
既能調整正負樣本的權重,又能控制難易分類樣本的權重7、那focal loss有解決背景樣本和目標樣本的問題嗎
我說應該有
8、談一下比賽中提到k-means算法
我說yolo是根據iou來進行距離度量的
https://github.com/AlexeyAB/darknet/blob/master/scripts/gen_anchors.py9、那k-means是怎么實現的,k近鄰算法呢
這個我用的是官方源碼
估計面試官想問的是這個原理,K-Means聚類算法原理 - 劉建平Pinard - 博客園10、opencv做了哪些數據增強
直方圖,翻轉,隨機裁剪,高斯模糊,高斯噪聲
11、怎么做的模型融合
如果是同個模型,會整合兩個模型的檢測結果,根據score來排序再做nms操作。
但這里我是用的不同模型,用的yolo和faster rcnn,他們的score沒有太大的可比性,所以我沒有用score來排序,我是求兩個模型的交集,以解決誤檢的問題
12、為什么用交集,不用并集
其實這個我是根據提交結果來決定的,事實上,在這里交集的效果比并集好,交集解決誤檢問題,并集解決漏檢問題
13、安檢機物品檢測的圖片格式是怎么樣的
x光掃描的RGB圖
14、為什么選用yolo而不用unet
比較熟悉yolo
15、yolo是怎么分配檢測框的
每個grid分配9個檢測框
yolo會輸出3種尺寸的特征圖,13*13,26*26,52*52,每種尺寸特征圖的每個grid預測3個框16、yolo的預測框是什么值(x,y,w,h)
是相對grid的相對值
17、faster rcnn回歸用的什么公式
我說歐式距離
實際是smooth l1
18、熟悉smooth L1嗎
描述了一下函數形式
19、說一下nms的操作
對每一類進行nms,先根據score進行降序排序,然后計算最高的score和其他框的iou,去掉iou大于閾值的檢測框
https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/nms/py_cpu_nms.py20、那假如一個類有1000個框,怎么計算iou和去掉大于閾值的框
先拿score最大的檢測框和其余的檢測框進行iou操作,這里用到了numpy數組的廣播機制,然后用numpy的篩選操作,把大于一定閾值的檢測框的score置0,然后下一次迭代從score不為0的檢測框進行上述操作,直到操作完成
21、熟悉哪些基礎網絡
熟悉VGG、GoogleNet還有resnet這幾個提取特征的,還有FPN這個來融合信息的
22、熟悉一些新的網絡嗎
不太熟悉,最近沒關注,最近在研究代碼
估計面試官想問的是這些網絡Xception、DenseNet、DetNet,在文章開頭的鏈接里匯總了23、激活函數有哪些
sigmoid還有relu
還有tanh等Activation function
24、sigmoid存在什么問題
梯度消失
25、relu的表達式
我說成leaky relu的了,然后面試官說確定嗎,不是relu的變形嗎,
我說我說錯了,然后我糾正了一下
26、relu的變體有哪些
learky relu
如何理解ReLU activation function?請問人工神經網絡中的activation function的作用具體是什么?為什么ReLu要好過于tanh和sigmoid function?
27、熟悉normalization嗎
比較熟悉bn和gn
張俊林:深度學習中的Normalization模型28、說說bn
bn是解決梯度消失問題的,通過bn能使數據在輸入到激活函數之前回到導數較大的位置
#解決問題解決內部數據分布不穩定問題
#做法
統計mini-batch個樣本的期望和方差從而進行歸一化,但這樣會導致數據表達能力的缺失,所以要引入兩個參數從而恢復數據本身的表達能力
#優勢
使得網絡中每層輸入數據的分布相對穩定,加速模型學習速度
允許網絡使用飽和性激活函數,緩解梯度消失問題
具有一定的正則化效果
29、bn是做了歸一化嗎
先做了歸一化,例如先減去期望再除以方差,然后再乘以一個參數和加上一個參數,這兩個參數是可學習的
30、bn是在哪一維進行操作的
在mini-batch和通道這兩維,描述了一下具體是怎么算的。我舉了個例子,四維tensor,分別是[n,c,h,w],然后bn是統計每張特征圖的期望和方差,而這個期望和方差是n個樣本同一張特征圖的期望和方差
31、那gn有什么用
gn是解決bn對mini-batch過度依賴,gn是在通道處進行分組統計,不依賴mini-batch
32、bn和gn都在哪用
bn和gn我所了解的是在目標檢測,當然圖像分類也用到bn
33、c++和python是都熟悉嗎
是的
34、那c++的指針和引用有什么區別
一個用的地址,一個是別名,但都能修改值
35、那引用能重新賦值嗎
不能
36、靜態變量有什么用
能不在實例化類的情況下進行調用,而且每個實例化后的對象共享這個值
37、靜態變量在哪初始化,能在類內初始化嗎
在類內類外都行
一般是在類外初始化,如需在類內初始化,要求該靜態變量為靜態字面值常量類型 C++ 靜態成員的類內初始化 - WanChouchou - 博客園38、靜態函數有什么用
能在不實例化類的情況下進行調用
39、python有什么常用的數據類型
列表、無序字典和有序字典
列表、元組、字典、集合等40、對多線程了解嗎
了解,但沒寫過
41、那如果讓你自己實現pytorch里面的dataloader,你怎么可以使它加載快點
用多線程
42、python的append和extend有什么區別
append是添加單個元素,extend是添加一個列表
43、出一道算法題
算法題如下:給個有序數組,然后求元素平方后不重復的元素個數,例如[-10, -10, -5, 0, 1, 5, 8, 10]
我思想描述對了,然后面試官說有更好的方法嗎,我想了一下說沒有,然后面試官讓我選個語言實現一下,選擇了python來實現,用到了字典,然后面試官說用集合會不會更好,我說會的
# 這是我的實現,沒有用到集合,如果用到集合會更好 data = [-10, -10, -5, 0, 1, 5, 8, 10] new_list = [] for x in data:temp = x*xif temp not in new_list:new_list.append(temp) print(len(new_list))# 其他實現 print(len(set([x**2 for x in data])))# 評論區有朋友提到,使用雙指針會更優44、有什么問題想了解的嗎
我說看崗位信息提到會進行技術的理論研究和技術的落地,如果我去了會負責什么,面試官說因為實習時間比較短,一般是做些技術落地的項目
45、那有師傅帶嗎,那一般做什么項目
有師傅帶,一般做力所能及的項目
參考:
1 U-Net: Convolutional Networks for Biomedical Image Segmentation
2 Focal Loss for Dense Object Detection
3 YOLOv3: An Incremental Improvement
4 Fast R-CNN
5 Faster R-CNN Towards Real-Time Object Detection with Region Proposal Networks
6 AlexeyAB/darknet
7 rbgirshick/py-faster-rcnn
8 Rectifier (neural networks)
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的opencv计算brox光流_字节跳动计算机视觉算法实习生视频面试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gateway sentinel 熔断
- 下一篇: Jenkins 流水线 获取git 分支