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

这篇具有很好参考价值的文章主要介绍了计算机视觉实习生面经(百度 | 地平线 | 小米 | 旷视 | 快手)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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*n

Bing = (X1-x1)*(Y1-y1)+(X2-x2)*(Y2-y2)-Jiao

return Jiao/Bing

二面

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

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

  • Openpose原理

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

  • NMS代码实现

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


import numpy as np

def py_cpu_nms(dets, thresh):
    """Pure Python NMS baseline."""
    x1 = dets[:, 0]                     # pred bbox top_x
    y1 = dets[:, 1]                     # pred bbox top_y
    x2 = dets[:, 2]                     # pred bbox bottom_x
    y2 = dets[:, 3]                     # pred bbox bottom_y
    scores = dets[:, 4]              # pred bbox cls score

    areas = (x2 - x1 + 1) * (y2 - y1 + 1)    # pred bbox areas
    order = scores.argsort()[::-1]              # 对pred bbox按score做降序排序,对应step-2

    keep = []    # NMS后,保留的pred bbox
    while order.size > 0:
        i = order[0]          # top-1 score bbox
        keep.append(i)   # top-1 score的话,自然就保留了
        xx1 = np.maximum(x1[i], x1[order[1:]])   # top-1 bbox(score最大)与order中剩余bbox计算NMS
        yy1 = 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 * h
        ovr = 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, right
    while(i < j):
        while(i<j and nums[j]>=pivot): #从后往前查找,直到找到一个比pivot更小的数
            j-=1
        nums[i] = nums[j] #将更小的数放入左边
        while(i<j and nums[i]<=pivot): #从前往后找,直到找到一个比pivot更大的数
            i+=1
        nums[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:
            return
        elif 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 heapq


class TopKHeap(object):
    def __init__(self, k):
        self.k = k
        self.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/

二分+贪心文章来源地址https://www.toymoban.com/news/detail-474541.html

class Solution:
    def splitArray(self, nums: List[int], m: int) -> int:
        def check(x: int) -> bool:
            total, cnt = 0, 1
            for num in nums:
                if total + num > x:
                    cnt += 1
                    total = num
                else:
                    total += num
            return cnt <= m


        left = max(nums)
        right = sum(nums)
        while left < right:
            mid = (left + right) // 2
            if check(mid):
                right = mid
            else:
                left = mid + 1

        return left



到了这里,关于计算机视觉实习生面经(百度 | 地平线 | 小米 | 旷视 | 快手)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面了个 Java 实习生,小伙很优秀!

    大家好,我是鱼皮,前几天给自己的公司面试了一位 Java 暑期实习生,候选人目前是大三。 整个过程我都录屏了,并且在征得候选人的同意后,把面试过程分享出来。一方面是希望对其他在学编程找工作的小伙伴有一些启发和参考,另一方面也是希望大家给屑老板一些建议,

    2024年02月05日
    浏览(48)
  • ChatGPT的插件能用了,每月 20 美元的实习生真香

    哈喽嗨!你好,我是小雨青年,一名 追赶 AI 步伐的程序员。 自从上周 OpenAI 官宣了即将开放插件给 Plus 用户以来,这三天我就每天都会刷新ChatGPT 设置页面。 直到今天早上,插件终于面向我的账户开放啦! 这真是,泰裤辣! 作为本次启用插件的早期会员用户,首先我向大家

    2024年02月05日
    浏览(61)
  • 记录--前端实习生的这个 bug 被用做了一道基础面试题

    测试发现了一个问题,简单描述问题就是通过函数删除一个数组中多个元素,传入的参数是一个数组索引。 然后发现实际效果有时删除的不是想要的内容。 具体  Bug  代码实现: 上面代码出现问题的原因是 splice 会改变原始数组的,然后导致索引偏移,不知道有没有同学出过

    2024年02月05日
    浏览(50)
  • 关于.Net和Java的看法——我见过最牛的一个小实习生经历

    笔者( 小方同学在学习 )是一个专科院校的一名普通学生,目前就职于某三线城市的WEB方面.Net开发实习生,在找实习期间和就业期间的一些看法,发表此文,纯个人想法,欢迎讨论,指正!哈哈轻点喷~ 在校学习技术方面也是.Net方面,所以实习就是.Net开发实习生。我也很喜

    2023年04月08日
    浏览(46)
  • 计算机视觉&多模态算法实习面试记录

    一面(12.20) 自我介绍:第一次面有点瓢嘴 介绍科研项目 如何使用的CLIP Open-vocab和zero-shot 介绍比赛项目——多模态行车数据视频 介绍任务是什么 自定义数据集? Yolo v8 介绍CLIP: 对比学习训练:一个batch的N张图片和文本进行对比;首先分别进行编码-再投影到相同特征维度

    2024年03月25日
    浏览(50)
  • 模型应用系实习生-模型训练笔记(更新至线性回归、Ridge回归、Lasso回归、Elastic Net回归、决策树回归、梯度提升树回归和随机森林回归)

    本次训练的变量是一致对应的,训练准备通过后,后续建模都不会有报错的! scikit-learn包以及镜像 必须全部为数字类型且无空值才能进行训练,关于非数据类型需要进行相对处理例如:可以采用独热编码或者label编码进行处理。 本文演示的是pandas 的dataframe数据类型的操作,

    2024年02月06日
    浏览(43)
  • 【计算机视觉面经四】基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)

    目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】目标检测算法。 什么是两阶段目标检测算法,与单阶段目标检测有什么区别? 两阶段目标检测算法因需要进行两阶段的处理:1)候选区域的获取,2)候选区域分类和回归,也称为基于

    2024年03月27日
    浏览(58)
  • 2023年大学计算机专业实习心得14篇

        2023年大学计算机专业实习心得精选篇1   20__年已然向我们挥手告别而去了。在20__年初之际,让我们对过去一年的工作做个总结。忙碌的一年里,在领导及各位同事的帮助下,我顺利的完成了20__年的工作。为了今后更好的工作,总结经验,完善不足,现对本年度的.工作

    2024年02月09日
    浏览(54)
  • 2023年计算机专业毕业实习报告最新

        2023年计算机专业毕业实习报告最新篇1   一、实习基本情况   按照学校对毕业生的要求,为毕业后的工作和谋职打下良好的基础。我于X年X月来到山西柳林汇丰兴业同德焦煤有限公司进行为期X个月的实习。毕业实习让我们想起那句老话:“让学生赢在起跑线上。”在学

    2024年02月09日
    浏览(52)
  • 计算机视觉 计算机视觉识别是什么?

    计算机视觉识别(Computer Vision Recognition)是计算机科学和人工智能领域中的一个重要分支,它致力于使计算机系统能够模拟和理解人类视觉的过程,从而能够自动识别、分析和理解图像或视频中的内容。这一领域的发展旨在让计算机具备视觉感知和理解的能力,使其能够从视

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包