人工智能面试实战题

  1. 目标检测可以分为两大类,分别是什么,他们的优缺点是什么呢?

答案:目标检测算法分为单阶段和双阶段两大类。

单阶段目标验测算法(one-stage),代表算法有 yolo 系列,SSD 系列;直接对图像进行计算生成检测结果,检测速度快,但检测精度低。

双阶段目标验测算法(two-stage),代表算法 RCNN 系列;先对图像提取候选框,然后基于候选区域做二次修正得到检测点结果,检测精度较高,但检测速度较慢。

【单阶段偏应用,因为在精度没有差很多的情况下,速度很快,就会选择单阶段目标检测算法;双阶段偏比赛,只注重精度高低,速度不考虑】

  1. Faster Rcnn里有个RPN,为什么设置这个层,好在哪里?RPN如果没有的话,他会对大目标更好还是对小目标更好?问的是roi这一层呢?

答案:RPN的作用是生成合适的region proposals。

网络结构分为一个卷积层和一个两分支的网络,其中一个分支是softmax分类网络,另一个用于bbox回归。

具体的步骤是:

生成anchors -> softmax分类器提取 positive anchors -> 对positive anchors进行bbox 回归 -> Proposal Layer综合所有 positive anchors及其偏移量用来生成更精确的proposals。

RPN最终就是在原图尺度上,设置了密密麻麻的候选Anchor。然后用cnn去找出其中的positive anchors并对它进行回归,使得框的大小和位置更准确。

生成anchor的过程:特征图上每个点都配备k个anchor,然后对每个anchor要做二分类和四个值的回归。

  1. 目标检测后面都会用到NMS,非极大值,你知道他为甚要用这个么,就是预测的时候?

NMS,一句话概括就是去除重复的检测框。

非极大值抑制,顾名思义就是抑制不是极大值的元素,在目标检测中,就是提取置信度高的目标检测框,而抑制置信度低的误检框。

使用深度学习模型会检测出很多目标框,具体数量由anchor数量决定,其中有很多重复的框定位到同一个目标,nms用来去除这些重复的框,获得真正的目标框。

NMS代码实现:

import numpy as np


def NMS(dects,threshhold):
    """
    input:
      detcs:二维数组(n_samples,5),5列:x1,y1,x2,y2,score
      threshhold: IOU阈值  
    """
    x1=dects[:,0]
    y1=dects[:,1]
    x2=dects[:,2]
    y2=dects[:,3]
    score=dects[:,4]
    ndects=dects.shape[0]#box的数量
    area=(x2-x1+1)*(y2-y1+1)
    order=score.argsort()[::-1] #score从大到小排列的indexs,一维数组
    keep=[] #保存符合条件的index
    suppressed=np.array([0]*ndects) #初始化为0,若大于threshhold,变为1,表示被抑制
    
    for _i in range(ndects):
        i=order[_i]  #从得分最高的开始遍历
        if suppressed[i]==1:
            continue
        keep.append(i) 
        for _j in range(i+1,ndects):
            j=order[_j]
            if suppressed[j]==1: #若已经被抑制,跳过
                continue
            xx1=np.max(x1[i],x1[j])#求两个box的交集面积interface
            yy1=np.max(y1[i],y1j])
            xx2=np.min(x2[i],x2[j])
            yy2=np.min(y2[i],y2[j])
            w=np.max(0,xx2-xx1+1)
            h=np.max(0,yy2-yy1+1)
            interface=w*h
            overlap=interface/(area[i]+area[j]-interface) #计算IOU(交/并)
            if overlap>=threshhold:#IOU若大于阈值,则抑制
                suppressed[j]=1
    return keep


【dects自己随便设置个数组测试即可
  1. 卷积网络里的感受野是什么意思么?

在卷积神经网络CNN中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野。用数学的语言感受野就是CNN中的某一层输出结果的一个元素对应输入层的一个映射。再通俗点的解释是,feature map上的一个点对应输入图上的区域。

  1. 函数一般用什么,激活函数?

https://blog.csdn.net/weixin_46112766/article/details/109255872

  1. 梯度消失还有什么其他办法规避么?

如何确定是否出现梯度爆炸?如:

    • 模型无法从训练数据中获得更新(如低损失)。
    • 模型不稳定,导致更新过程中的损失出现显著变化。
    • 训练过程中,模型损失变成 NaN。
  1. 重新设计网络模型

梯度爆炸可以通过重新设计层数更少的网络来解决。使用更小的批尺寸对网络训练也有好处。另外也许是学习率过大导致的问题,减小学习率。

  1. 使用 ReLU 激活函数

梯度爆炸的发生可能是因为激活函数,如之前很流行的Sigmoid和Tanh函数。使用ReLU激活函数可以减少梯度爆炸。采用ReLU激活函数是最适合隐藏层的,是目前使用最多的激活函数。

               relu函数的导数在正数部分是恒等于1的,因此在深层网络中使用relu激活函数就不会导致梯度消失和爆炸的问题。

relu的主要贡献在于

        • 解决了梯度消失、爆炸的问题
        • 计算方便,计算速度快,加速了网络的训练

同时也存在一些缺点:

        • 由于负数部分恒为0,会导致一些神经元无法激活(可通过设置小学习率部分解决)
        • 输出不是以0为中心的

leakrelu                                   

leak relu就是为了解决relu的0区间带来的影响,而且包含了relu的所有优点,其数学表达为:                                                

其中k是leak系数,一般选择0.01或者0.02,或者通过学习而来。

elu

elu激活函数也是为了解决relu的0区间带来的影响,其数学表达为:                                        

其函数及其导数数学形式为:

但是elu相对于leakrelu来说,计算要更耗时间一些。

3.使用梯度截断(Gradient Clipping)

梯度剪切这个方案主要是针对梯度爆炸提出的,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸。

4.使用权重正则化(Weight Regularization)

如果梯度爆炸仍然存在,可以尝试另一种方法,即检查网络权重的大小,并惩罚产生较大权重值的损失函数。该过程被称为权重正则化,通常使用的是 L1 惩罚项(权重绝对值)或 L2 惩罚项(权重平方)。比如在tensorflow中,若搭建网络的时候已经设置了正则化参数,则调用以下代码可以直接计算出正则损失:

regularization_loss = tf.add_n(tf.losses.get_regularization_losses(scope='my_resnet_50'))

正则化是通过对网络权重做正则限制过拟合,仔细看正则项在损失函数的形式:                                           

其中,α 是指正则项系数,如果发生梯度爆炸,权值的范数就会变的非常大,通过正则化项,可以部分限制梯度爆炸的发生。

注:事实上,在深度神经网络中,往往是梯度消失出现的更多一些。

5、预训练加finetunning

其基本思想是每次训练一层隐藏层节点,将上一层隐藏层的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入,这就是逐层预训练。在预训练完成后,再对整个网络进行“微调”(fine-tunning)。Hinton在训练深度信念网络(Deep Belief Networks中,使用了这个方法,在各层预训练完成后,再利用BP算法对整个网络进行训练。此思想相当于是先寻找局部最优,然后整合起来寻找全局最优,此方法有一定的好处,但是目前应用的不是很多了。现在基本都是直接拿imagenet的预训练模型直接进行finetunning。

6、批量归一化

Batchnorm具有加速网络收敛速度,提升训练稳定性的效果,Batchnorm本质上是解决反向传播过程中的梯度问题。batchnorm全名是batch normalization,简称BN,即批规范化,通过规范化操作将输出信号x规范化保证网络的稳定性。

7、残差结构

残差网络的出现导致了image net比赛的终结,自从残差提出后,几乎所有的深度网络都离不开残差的身影,相比较之前的几层,几十层的深度网络,残差可以很轻松的构建几百层,一千多层的网络而不用担心梯度消失过快的问题,原因就在于残差的捷径(shortcut)部分,残差网络通过加入 shortcut connections,变得更加容易被优化。包含一个 shortcut connection 的几层网络被称为一个残差块(residual block),如下图所示:                               

相比较于以前网络的直来直去结构,残差中有很多这样的跨层连接结构,这样的结构在反向传播中具有很大的好处,见下式:                        

式子的第一个因子 表示的损失函数到达 L的梯度,小括号中的1表明短路机制可以无损地传播梯度,而另外一项残差梯度则需要经过带有weights的层,梯度不是直接传递过来的。残差梯度不会那么巧全为-1,而且就算其比较小,有1的存在也不会导致梯度消失。所以残差学习会更容易。

  1. Adam 你有什么了解,怎么优化的?你知道Adam 怎么设计让他梯度下降更快?

Adam是对随机梯度下降算法的扩展,Adam使用动量和自适应学习率来加快收敛速度。随机梯度下降保持一个单一的学习速率(称为alpha),用于所有的权重更新,并且在训练过程中学习速率不会改变。每一个网络权重(参数)都保持一个学习速率,并随着学习的展开而单独地进行调整。Adam方法则是从梯度的第一次和第二次矩的预算来计算不同参数的自适应学习速率。

  1. 梯度下降怎么求?你知道为什么叫随机梯度下降么?

https://blog.csdn.net/weixin_46112766/article/details/112308601

  1. softmax的函数一般用在哪里?怎么算的,softmax的函数输出的结果是个标量还是个向量?

softmax函数一般用在分类任务的最后一层,进行一个概率化的输出。结果时一个向量,具体计算请看激活函数篇文章。

  1. 你知道损失函数的意思是什么嘛?

https://blog.csdn.net/weixin_46112766/article/details/111314068

12.大概讲下deepsort的流程是什么?

deepsort通过yolo等网络进行检测,然后检测出来的物体再通过卡尔曼滤波进行位置修正,最后匈牙利算法对前后帧的框进行匹配。具体的deepsort,只运行 yolo 检测, 速率大概为 11-13 fps, 添加 deep_sort 多目标追踪后, 速率大概为 11.5 fps (显卡 GTX1060.)

fps:每秒钟有多少帧

  1. 机器学习了解么?了解哪些

机器学习算法线性回归,kmeans,svm,神经网络,后面的深度学习卷积神经网络,循环神经网络等。

  1. Faster-RCNN的结构么?

首先,Faster RCNN主要分为四个部分:卷积层(backbone)、Region Proposal Networks、roi pooling和最后的分类回归网络。

卷积层就是一般的分类模型,比如VGG-16和ResNet-101。在图片输入到卷积层之前,会先resize到一定的尺寸,然后利用卷积层提取特征图。RPN网络用于生成region proposals。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。Roi Pooling收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。最后的分类回归模块利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。回归的损失函数是smooth L1 loss,分类的损失函数是交叉熵损失。

  1. anchor(就是检测出来的那个框)是怎么生成的?在每个网格上是怎么生成的?

Faster rcnn中Anchor生成过程:

Faster R-CNN中的Anchor有3种不同的尺度128×128,256×256,512×512 ,3种形状也就是不同的长宽比W:H=1:1,1:2,2:1,这样Feature Map中的点就可以组合出来9个不同形状不同尺度的Anchor Box。

Faster R-CNN进行Anchor Box生成的Feature Map是原图下采样16倍得到的,这样不同的长宽比实际上是将面积为16×16的区域,拉伸为不同的形状,如下图:

不同的ratio生成的边框的面积是相同的,具有相同的大小。三种不同的面积(尺度),实际上是将上述面积为16×16的区域进行放大或者缩小。

128×128是16×16放大8倍;256×256是放大16倍;512×512则是放大32倍。如下图:

Yolo Anchor:

YOLO v2,v3的Anchor Box 的大小和形状是通过对训练数据的聚类得到的。 采用标准的k-means方法。

官方的 V2,V3的Anchor

anchors = 0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828 // yolo v2
 
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326 // yolo v3

需要注意的是 anchor计算的尺度问题。 yolo v2的是相对最后一个Feature Map (13×13)来的,yolo v3则是相对于原始输入图像的416×416的。 这也是在计算目标检测中,边框计算中需要注意的问题,就是计算的边框究竟在相对于那个尺度得出的。

  1. 在一个 14*14的特征图上面,你认为有多少anchor?在哪里生成?

答案:一个特征图上生成anchor数量的计算公式:【h * w * k

w:图像的宽 h:图像的高 k:anchors的数量

此题的答案为:14*14*9,每个像素点生成k个anchor

  1. 像素点在特征图上是怎么反应的呢?那14*14的特征图上有多少个像素点呢?

参照感受野得答案回答即可。

  1. Resnet18网络结构下采样的strides是多少?他有多少个下采样层?

下采样的步长是2

下采样如图,18进行5次卷积下采样

  1. Resnet18的bottlenets是什么结构?Resnet的残差结构是什么?他有几个阶段?(有几个块儿)一般常用的有哪些Resnet?

残差结构:

卷积实现的两种方式:

除了resnet18,还有resnet50/101/152

  1. Faster-RCNN这样的算法在两个阶段计算损失有多少个?两个阶段分别是什么损失?

PRN阶段会有回归box的loss和判断前景和后景的loss。第二阶段同样会有精修box坐标的loss和真正的分类loss

  1. Faster-RCNN里面,在做框回归的时候,有个回归的loss,为什么不直接用框的坐标直接计算loss

无论是在RPN还是RoIHead中,回归结果都不是bounding box的坐标,而是相对(正样本anchor、RoI)中心点坐标的位移和长宽比。为方便叙述,一般把两者分别称之为offset和scale。

直观地看,直接回归bounding box的坐标更方便,免去了传参(RPN中需要传入anchor,RoIHead中需要传入RoI)与坐标计算。

但是,如果回归的是坐标,那么在计算损失时,大尺寸bbox的坐标误差占的比重可能就会比小尺寸bbox之间的坐标误差大得多,从而使得模型更偏向于学习大bbox,从而导致小目标的检测效果不佳。

  1. 在Faster-RCNN里,在回归框的时候,不是回归的坐标,回归的是个差值,但实际上他在做偏值的时候,而是在偏值上乘个均值在除了个方差,这是为什么呢?

为了对数据进行标注化处理

  1. mask r-cnn的网络结构以及和Faster-RCNN的区别?(多了一个网络分支)

这两个网路主要的区别在于mask rcnn在faster-rcnn的网络基础上增加了一个分支进行mask的检测。

  1. ROI-align的实现原理?ROI-pooling 的区别?

在常见的两级检测框架(比如Fast-RCNN,Faster-RCNN,RFCN)中,ROI Pooling 的作用是根据预选框的位置坐标在特征图中将相应区域池化为固定尺寸的特征图,以便进行后续的分类和包围框回归操作。由于预选框的位置通常是由模型回归得到的,一般来讲是浮点数,而池化后的特征图要求尺寸固定。故ROI Pooling这一操作存在两次量化的过程。

1)将候选框边界量化为整数点坐标值。

2)将量化后的边界区域平均分割成 k x k 个单元(bin),对每一个单元的边界进行量化。

为了解决ROI Pooling的上述缺点,作者提出了ROI Align这一改进的方法。ROI Align的思路很简单:取消量化操作,使用双线性内插的方法获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作。

  1. BN层他在做前向和推理的时候有什么区别?说的是训练和测试的时候

https://www.jiqizhixin.com/articles/2021-01-06-6

  1. mask r-cnn在做评测时候 用的什么评测指标?用什么方法评测的?

主要是用了mAP进行性能指标的计算,即通过计算PR曲线的面积来衡量模型性能。

  1. Focal loss 的思想介绍下?

针对样本不平衡的情况下,使用Focal Loss作为损失函数,加强对于hard example的训练!从而一定程度上解决样本不平衡问题!它的核心思想就是:整体缩放Loss,易分类样本缩放的比难分类样本更多,从而损失函数中就凸显了难分类样本的权重,使得模型在训练时更专注于难分类的样本。

  1. 跟踪算法介绍下?

deepsort算法是先用yolo进行每一帧的object的检测然后通过卡尔曼滤波进行位置精修,最后配合匈牙利算法进行前后两帧object的匹配。

  1. 人脸识别是分类问题还是非分类问题?这种分类问题和常规的分类问题的区别在哪里?

人脸识别是分类问题,只不过人脸的这种分类,需要先检测到人脸位置。对于人脸的多分类问题。有多少分类,取决于所处理问题的人脸库大小,人脸库中有多少目标人脸,就需要机器进行相应数量的细分类。如果想要机器认出每个他看到的人,则有多少人,人脸就可以分为多少类,而这些类别之间的区别是非常细微的。由此可见人脸识别问题的难度。

更不要提,这件事还要受到光照,角度,人脸部的装饰物等各种因素的影响。比如在人脸的二分类问题中的Triplet loss是一个学习人脸识别卷积网络参数的好方法,他可以讲人脸识别当成一个二分类的方法。(如果问到Triplet loss相关的知识点和含义具体可参照课程和人脸识别的文档讲述即可)

  1. 常用的人脸识别的loss有哪些?

https://blog.csdn.net/intflojx/article/details/82378520

人脸识别loss论文和知识点汇总,建议有时间可以看看:

https://blog.csdn.net/u011808673/article/details/80345772?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

含公式推导:https://zhuanlan.zhihu.com/p/64314762

loss上下姊妹篇:

上:https://zhuanlan.zhihu.com/p/34404607

下:https://zhuanlan.zhihu.com/p/34436551?refer=DCF-tracking

focal loss(解决正负、难易样本问题,用一句目标检测)原理:

https://zhuanlan.zhihu.com/p/80594704

29.泰勒公式特征向量,求梯度能写出来么?比如FXYZ,他的梯度值是怎样

30. C++函数的传参方式有哪种?C++引用和指针有什么区别,指针哪些值可以修改?指针和引用的初始化的差别?

A:C++函数的传参方式有三种,分别是值传递、指针传递和引用传递。

值传递是我们常见的传递方式,指针和引用和值传递不同得是它们传递东西不同,都是可以把一个值传给某个函数使用,它们不同之处我们通过一些例子来说明。

32. 滤波了解么?内部如何实现的?

A:https://blog.csdn.net/weixin_46112766/article/details/111181200

33. YOLOV3的网络结构介绍下?

A:

 

网络部件介绍

DBL: 如图左下角所示,也就是代码中的Darknetconv2d_BN_Leaky,是yolo_v3的基本组件。就是卷积+BN+Leaky relu。对于v3来说,BN和leaky relu已经是和卷积层不可分离的部分了(最后一层卷积除外),共同构成了最小组件。

res-n:n代表数字,有res1,res2, … ,res8等等,表示这个res_block里含有多少个res_unit。这是yolo_v3的大组件,yolo_v3开始借鉴了ResNet的残差结构,使用这种结构可以让网络结构更深(从v2的darknet-19上升到v3的darknet-53,前者没有残差结构)。对于res_block的解释,可以在图的右下角直观看到,其基本组件也是DBL。

concat:张量拼接。将darknet中间层和后面的某一层的上采样进行拼接。拼接的操作和残差层add的操作是不一样的,拼接会扩充张量的维度,而add只是直接相加不会导致张量维度的改变。

多尺度检测-Y1

适用目标:大目标

路径:绿色线标注

输出维度:13×13×255

13×13:图片大小

255=(80+5)×3

80:识别物体种类数

5=x,y,w,h和c(置信度)

3:每个点预测3个bounding box

多尺度检测-Y2

适用目标:中目标

路径:黄色线标注

输出维度:26×26×255

26×26:图片大小

255=(80+5)×3

80:识别物体种类数

5=x,y,w,h和c(置信度)

3:每个点预测3个bounding box

多尺度检测-Y3

适用目标:小目标

路径:紫色线标注

输出维度:52×52×255

52×52:图片大小

255=(80+5)×3

80:识别物体种类数

5=x,y,w,h和c(置信度)

3:每个点预测3个bounding box

35. YOLOV3代码是直接用的还是基于源码自己搭建的?用的时候有对他的网络结构进行修改么?拿来用的话很有效么?准确率能达到多高?(70-80%)这个客户能接受么?还是后期在优化?他的误点率高么?(检错率)

36. MTCNN这个三个阶段分别起什么作用?用的数据量规模是多大?数据处理方面做了什么工作呢?数据增强做过么?都用过哪些增强方法?

37. YOLOV4 和YOLOV3的区别,YOLOV4 的精度怎么设置的?

1.特征提取网络的不同

2.激活函数的不同

3.loss的不同

4.数据处理的不同

5.学习率的不同

39. Faster-RCNN 和YOLO的区别?

A:

40. 在部署的时候用的是Python还是C++?部署方面的工作有做过么?如果现在让你用tensorflow把YOLOV3网络自己码出来,你可以做到么?如果可以看网络结构等资料?

41. 你所知道的经典网络模型有哪些? VGG网络特点?

https://blog.csdn.net/yato0514/article/details/81915800

A:经典分类网络有lenet5,Alexnet,vgg,resnet等。

VGG的特点:网络深,卷积核小,池化核小(与AlexNet的33池化核相比,VGG全部用的是22的池化层)

(1)层数深使得特征图更宽,更加适合于大的数据集,该网络可以解决1000类图像分类和定位问题。

(2)卷积核的大小影响到了参数量,感受野,前者关系到训练的难易以及是否方便部署到移动端等,后者关系到参数的更新、特征图的大小、特征是否提取的足够多、模型的复杂程度。

(VGG用较深的网络结构和较小的卷积核既可以保证感受视野,又能够减少卷积层的参数,比如两个33的卷积层叠加等价于一个55卷积核的效果,3个33卷积核叠加相加相当于一个77的卷积核,而且参数更少。大约是77卷积层的(333)/(77)=0.55,三个卷积层的叠加,对特征学习能力更强)

(3)池化层:从AlexNet的kernel size为33,stride为2的max-pooling改变为kernel size均为22,stride为2的max-pooling,小的池化核能够带来更细节的信息捕获(当时也有average pooling,但是在图像任务上max-pooling的效果更好,max更加容易捕捉图像上的变化,带来更大的局部信息差异性,更好的描述边缘纹理等,用average-pooling可能会使得图像模糊了,类似与数字图像处理的高斯模糊)

其他特点:

全连接层:特征图的高度从512后开始进入到全连接层,也就是说全连接层前是77512维度的特征图(大概为25000),这个全连接层过程要将25000映射到4096,(大约将原来的信息压缩成原来的五分之一),有可能是这个压缩过程太急于是又接了一个fc4096作为缓冲。

使用11卷积核:选用卷积核的最直接原因是在维度上继承全连接,在这里可以增加决策函数的非线性能力(?)

1*1卷积的特点:

(1)不考虑单通道上像素的局部信息,专注于一个卷积核内部通道的信息整合;

(2)对feature map降维或者升维,例如224x224x100的图像(或feature map)经过20个conv1x1的卷积核,得到224x224x20的feature map。尤其当卷积核(即filter)数量达到上百个时,3x3或5x5卷积的计算会非常耗时,所以1x1卷积在3x3或5x5卷积计算前先降低feature map的维度。

42. In 塞怕深 V1-V4这几个版本的迭代关系是什么? inception 网络和resnet (残差模块)有什么关系?

43. 不同类型的卷积层有几种

https://blog.csdn.net/u010417185/article/details/83090195

44.二阶段检测算法针对一阶段算法上还有什么结构优化的地方么?

45.比如说现在要用YOLOV3在检测一些比较小的目标,在本身官方给的基础上还要有什么改进呢?

46.最小的分辨率针对的是最大的还是最小的目标,也就是三层里输出的分辨率是不一样的,那在最小的分辨率输出的结果是大目标还是小目标。为什么?featuresmap最小的分支他的感受野最大的还是最小的?比如13*13,他的感受野是比较大的还是比较小的?(大)那他对应的是大目标还是小目标呢?

A:大的感受野对应小目标,小的感受野对应大目标。因为特征图越小,他所对应到原图的区域范围越大,所以对应的物体就越大。

47.你有没有做一些压缩类的工作?YOLOV3的计算还是在服务端是么?

48. 比如照片放到摄像头口假装这个人,怎样去识别是不是一个真实的人脸在摄像头旁边 ?那如果是个视频呢,如何判断是不是真人呢?

50. 输入一个二叉树,去判断他是不是一个平衡二叉树,左节点和右节点深度相差不超过1(写代码)

2. Yolo的上采样有什么用

A:上采样相当于特征融合,说明就是上层的yolo层融合下层yolo层的深度信息,上层可能只是一些颜色形状之类的浅层信息,下层是一些抽象深层信息例如人、狗等复杂语义。

3. Yolo的3个输出尺寸分别是做什么的

4. Yolo的4个回归因子是每一个输出尺寸都进行回归么

5. Yolo的4个回归因子有什么用

6. ResNet是解决什么问题的

A:梯度消失

8. sgd和adam有什么区别,你还知道哪些优化器

9. 为什么sgd和adam有这样的特性,有研究过么(此处应该想问公式推导)

10.你在项目训练模型过程中出现了怎样的问题,怎么解决的(我回答出现梯度爆炸)

12. MaskRCNN和FasterRCNN相比有什么区别

13. 编程实现

给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。

岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。

A:BFS + 递归

猜你喜欢

转载自blog.csdn.net/hjue/article/details/118029508