计算机视觉实习生面经(百度 | 地平线 | 小米 | 旷视 | 快手)

news/2024/10/30 21:24:14/

计算机视觉实习生面经

  • 1. 百度(计算机视觉实习生,ACG,自动驾驶)——2021/05
      • 一面
      • 二面
  • 2. 地平线(感知算法实习生,北京)——2021/08
  • 3. 小米(计算机视觉实习生,AI Lab,目标检测--小米手机的辅助变焦)——2021/09
  • 4. 旷视(计算机视觉实习生,极智感知组,做生物识别活体检测相关)——2021/09
      • 一面
      • 二面
  • 5. 旷视(计算机视觉实习生,face组,做人脸视差图到深度图深度模型)——2021/09
  • 6. 快手(计算机视觉实习生,杭州MMU,视频理解)——2021/9/27
  • 目标检测问题汇总

1. 百度(计算机视觉实习生,ACG,自动驾驶)——2021/05

一面

  • 1.处理样本不平衡的方法

(1)Bootstrapping:训练随机森林,对于每一个树就是采样booststraping方法采样,也算是随机森林的其中一个随机性表现。再比如bagging方法,也是基于该有放回重采样方法。
(2)数据扩充:数据降采样
(3)Focal Loss:对不同样本预测错误的惩罚权重不同

  • 2.用具体的例子说明计算AUC的过程
  • 3.召回率定义以及意义
  • 4.正则项L1和L2的区别,以及为什么能够防止过拟合
  • 5.梯度爆炸和梯度消失的原因
  • 6.SVM原理
  • 7.Xgboost原理

二面

  • 1.CNN的原理和反向传播
  • 2.FPN原理

2. 地平线(感知算法实习生,北京)——2021/08

  • 1.用到哪些主动学习的方法

主动学习调研(PS:下次要侧重主动学习在目标检测中的应用,图像分类的太简单了!)

3. 小米(计算机视觉实习生,AI Lab,目标检测–小米手机的辅助变焦)——2021/09

  • 1.目标检测的流程
  • 2.NMS时,如果两个bbox置信度一样,怎么处理

4. 旷视(计算机视觉实习生,极智感知组,做生物识别活体检测相关)——2021/09

一面

  • mAP
  • RPN
  • IOU
def IOU(x1,y1,X1,Y1, x2,y2,X2,Y2):xx = max(x1,x2)XX = min(X1,X2)yy = max(y1,y2)YY = min(Y1,Y2)m = max(0., XX-xx)n = max(0., YY-yy)Jiao = m*nBing = (X1-x1)*(Y1-y1)+(X2-x2)*(Y2-y2)-Jiaoreturn Jiao/Bing

二面

  • 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度(要求原地旋转,不能新建矩阵)
    • 解答:面试题 01.07. 旋转矩阵

5. 旷视(计算机视觉实习生,face组,做人脸视差图到深度图深度模型)——2021/09

  • Openpose原理

6. 快手(计算机视觉实习生,杭州MMU,视频理解)——2021/9/27

  • NMS代码实现

知乎:IOU, NMS原理与代码实现


import numpy as npdef py_cpu_nms(dets, thresh):"""Pure Python NMS baseline."""x1 = dets[:, 0]                     # pred bbox top_xy1 = dets[:, 1]                     # pred bbox top_yx2 = dets[:, 2]                     # pred bbox bottom_xy2 = dets[:, 3]                     # pred bbox bottom_yscores = dets[:, 4]              # pred bbox cls scoreareas = (x2 - x1 + 1) * (y2 - y1 + 1)    # pred bbox areasorder = scores.argsort()[::-1]              # 对pred bbox按score做降序排序,对应step-2keep = []    # NMS后,保留的pred bboxwhile order.size > 0:i = order[0]          # top-1 score bboxkeep.append(i)   # top-1 score的话,自然就保留了xx1 = np.maximum(x1[i], x1[order[1:]])   # top-1 bbox(score最大)与order中剩余bbox计算NMSyy1 = np.maximum(y1[i], y1[order[1:]])xx2 = np.minimum(x2[i], x2[order[1:]])yy2 = np.minimum(y2[i], y2[order[1:]])w = np.maximum(0.0, xx2 - xx1 + 1)h = np.maximum(0.0, yy2 - yy1 + 1)inter = w * hovr = inter / (areas[i] + areas[order[1:]] - inter)      # 无处不在的IoU计算~~~inds = np.where(ovr <= thresh)[0]     # 这个操作可以对代码断点调试理解下,结合step-3,我们希望剔除所有与当前top-1 bbox IoU > thresh的冗余bbox,那么保留下来的bbox,自然就是ovr <= thresh的非冗余bbox,其inds保留下来,作进一步筛选order = order[inds + 1]   # 保留有效bbox,就是这轮NMS未被抑制掉的幸运儿,为什么 + 1?因为ind = 0就是这轮NMS的top-1,剩余有效bbox在IoU计算中与top-1做的计算,inds对应回原数组,自然要做 +1 的映射,接下来就是step-4的循环return keep    # 最终NMS结果返回if __name__ == '__main__':dets = np.array([[100,120,170,200,0.98],[20,40,80,90,0.99],[20,38,82,88,0.96],[200,380,282,488,0.9],[19,38,75,91, 0.8]])print(py_cpu_nms(dets, 0.5))
  • 最大连续子数组乘积

    • 152. 乘积最大子数组
  • 二叉树

    • 863. 二叉树中所有距离为 K 的结点

目标检测问题汇总

  • 1.topk问题:求数组中前k个最大的值

解释: 知乎:Python实现堆排序及原理详解 + TopK面试题(多图解释)
求第k个最大值:215. 数组中的第K个最大元素,解答: 三种方法解决TopK问题

方法1:快排

#只排序后k个大的数
#获得前n-k小的数O(n),进行快排O(klogk)#快速排序
#只排序后k个大的数
#获得前n-k小的数O(n),进行快排O(klogk)def partition(nums, left, right):pivot = nums[left]#初始化一个待比较数据i,j = left, rightwhile(i < j):while(i<j and nums[j]>=pivot): #从后往前查找,直到找到一个比pivot更小的数j-=1nums[i] = nums[j] #将更小的数放入左边while(i<j and nums[i]<=pivot): #从前往后找,直到找到一个比pivot更大的数i+=1nums[j] = nums[i] #将更大的数放入右边#循环结束,i与j相等nums[i] = pivot #待比较数据放入最终位置return i #返回待比较数据最终位置#快速排序
def quicksort(nums, left, right):if left < right:index = partition(nums, left, right)quicksort(nums, left, index-1)quicksort(nums, index+1, right)arr = [1,3,2,2,0]
quicksort(arr, 0, len(arr)-1)
print(arr)def topk_split(nums, k, left, right):#寻找到第k个数停止递归,使得nums数组中index左边是前k个小的数,index右边是后面n-k个大的数if (left<right):index = partition(nums, left, right)if index==k:returnelif index < k:topk_split(nums, k, index+1, right)else:topk_split(nums, k, left, index-1)def topk_sort_right(nums, k):topk_split(nums, len(nums)-k, 0, len(nums)-1)topk = nums[len(nums)-k:]quicksort(topk, 0, len(topk)-1)return topk #只排序后k个数字arr = [0,0,1,3,4,5,0,-7,6,7]
k = 4
l = len(arr)
print(topk_sort_right(arr, k))

方法2:最小堆

# !/usr/bin/env python
# -*- coding:gbk -*-import sys
import heapqclass TopKHeap(object):def __init__(self, k):self.k = kself.data = []def push(self, elem):if len(self.data) < self.k:heapq.heappush(self.data, elem)else:topk_small = self.data[0]if elem > topk_small:heapq.heapreplace(self.data, elem)def topk(self):return [x for x in reversed([heapq.heappop(self.data) for x in range(len(self.data))])]def main():list_num = [1, 7, 3, 5, 4, 6, 9, 8, 2]th = TopKHeap(5)for i in list_num:th.push(i)print(th.topk())if __name__ == "__main__":main()
    1. 分割数组的最大值

https://leetcode-cn.com/problems/split-array-largest-sum/

二分+贪心

class Solution:def splitArray(self, nums: List[int], m: int) -> int:def check(x: int) -> bool:total, cnt = 0, 1for num in nums:if total + num > x:cnt += 1total = numelse:total += numreturn cnt <= mleft = max(nums)right = sum(nums)while left < right:mid = (left + right) // 2if check(mid):right = midelse:left = mid + 1return left

http://www.ppmy.cn/news/203937.html

相关文章

Linux题库100道

cron 后台常驻程序 (daemon) 用于&#xff1a;(D) A. 负责文件在网络中的共享B. 管理打印子系统C. 跟踪管理系统信息和错误D. 管理系统日常任务的调度在大多数Linux发行版本中&#xff0c;以下哪个属于块设备 (block devices) &#xff1f;(B) A. 串行口B. 硬盘C. 虚拟终端D.…

学计算机专业选啥价位的笔记本,大学生买笔记本电脑要怎么选?这些电脑值得考虑,千万别选错了!...

办公笔记本。 办公与游戏 对于办公游戏都有要求的朋友来说&#xff0c;这样的电脑就得要CPU、显卡、内存、硬盘都要充分考虑&#xff0c;CPU要高&#xff0c;显卡也要高&#xff0c;内存也要高&#xff0c;硬盘容量也要大&#xff0c;它的价格通常都是在6000以上&#xff0c;推…

r720支持多少频率的内存吗_高频内存对游戏帧数影响大吗?2400MHz和3200MHz频率内存对比实测...

内存频率对电脑性能无疑是有一定的影响&#xff0c;但是在日常使用根本也发现不了明显变化。我们知道&#xff0c;目前DDR4主流内存频率通常是2400MHz或者2666MHz&#xff0c;在主板支持更高内存频率的情况下&#xff0c;如果搭配高频内存是否对游戏帧数有所提升&#xff1f;该…

学习神经网络(深度学习)电脑的配置要求

学习神经网络&#xff08;深度学习&#xff09;电脑的配置要求 个人电脑配置与使用感受&#xff08;电脑小白&#xff09; 我目前所使用的电脑的配置是 &#xff08;1&#xff09;CPU&#xff1a;i5-9300H &#xff08;2&#xff09;显卡&#xff08;GPU&#xff09;&#xf…

3d图形设计计算机配置,3d建模电脑配置要求高吗?这样配电脑不多花一分钱

3d建模电脑配置要求高吗?做3d建模笔记本配置价位大概要花多少呢?本期&#xff0c;模型云就为你您整理了这些3d建模电脑配置详细清单&#xff0c;跟着我们来一起看看这些适合做3d建模的电脑配置吧! 3d建模电脑配置要求高吗? 影响3d建模电脑配置要求的主要还是看你使用的建模软…

对于一个程序员来说,电脑的内存需要多大?

1、 程序员电脑内存有多大内存够用足够了&#xff0c;纯写代码的编程对电脑要求不高&#xff0c;尤其对显卡几乎没有要求&#xff0c;一般编程可能开的任务窗口比较多&#xff0c;所以只要cpu和内存大点就可以了一般来说&#xff0c;处理器确实比显卡来得重要一些&#xff0c;因…

8550u matlab,某宝上出自深圳的 8550u/8650u 迷你主机到底如何?我加了 32G 内存+1.5T 固态后的使用体验...

最进买了一个产自深圳的迷你主机,用来代替办公用的笔记本,一番使用下来体验还不错,特来分享. 当然,这种出自深圳的产品,多多少少带点华强北的技术背景,特别是魔改的能力,用起来也不是说没有瑕疵,建议想购买迷你主机的朋友,优先考虑大厂的产品 价格对比 其实大牌厂商也有生产有 …

存储对手机性能的影响

前言 几年以前&#xff0c;我被派去厦门上门去分析一个用户的手机卡顿问题&#xff0c;该用户的手机经常莫名无响应&#xff0c;刷机&#xff0c;恢复出厂都没有用&#xff0c;经过一通分析&#xff0c;原来该用户从熟人店里买到了一张盗版的SD卡&#xff08;这年头坑的就是朋友…