• cv面试百问day3


    转自:https://zhuanlan.zhihu.com/p/451245319
    15、目标检测…

    (1)叙述一下YOLO v3的检测过程?…
    https://blog.csdn.net/liupeng521521/article/details/120072751
    https://www.zhangshilong.cn/work/110840.html

    (2)YOLO v3的loss是什么?…
    https://blog.csdn.net/u014090429/article/details/116798347

    (3)为什么faster rcnn比YOLO v3性能要好?…

    https://blog.csdn.net/qq_37249672/article/details/106052951

    (4)mAP比较低时怎么操作?…
    https://blog.csdn.net/qq_28664681/article/details/108232353

    技巧总结:
    1、训练阶段:
    1)增大学习率
    2)减小batchsize

    2、验证阶段:
    1)调小get_dr_txt.py中的置信度,这就相当与将ap曲线往后延长,自然就增大了
    2)增大get_dr_txt.py中的nms阶段的iou_threshold
    3)减小get_map.py中的minoverlap
    ————————————————
    不过最有效的永远要属优化数据集吧

    (5)相比于YOLOv1/2,v3做了哪些改变?…
    YOLO v3
    为进行非互斥的类别预测,yolov3使用多个独立的逻辑分类器进行类别预测,即使用sigmod代替softmax,对每一个输出计算二元交叉熵损失。

    为进一步提升小目标检测能力,yolov3在多尺度特征融合上做了改进,使用了FPN网络进行三个不同尺度特征的融合(类似于U-Net),并在上采样部分的三个尺度的特征输出口分别接检测头,三个检测头分别负责大中小三种粒度的目标的检测。
    ————————————————

    原文链接:https://blog.csdn.net/nn1997729/article/details/119379711

    (6)RPN的原理讲一下?…
    region proposal network
    https://blog.csdn.net/zziahgf/article/details/79895804
    (7)FPN的原理讲一下?…
    。FPN通过自顶向下的过程和横向连接来解决低层特征语义信息level较低的问题,保持低层特征利于检测小目标的优势的同时,提高检测精度。
    在这里插入图片描述

    图1

              图2
    
    • 1

    图1右边部分表示自顶向下的过程,水平向右的箭头表示横向连接,图2放大部分表示的自顶向下和横向连接的具体操作。

    具体流程如下:

    卷积网络得到特征层1、2、3
    复制特征层3作为自顶向下的最高特征层4
    对特征层4进行上采样得到特征层4’,保证其尺寸和特征层2相同,同时对特征层2使用11conv得到特征层4’‘,保证其通道数和特征层4’相同,最后将特征层4’和特征层4’'相加得到特征层5(为了消除上采样的混叠效应,实际上还会再采用33的卷积核对每个融合结果进行卷积)
    重复上一步依次得到低层特征
    分析:

    横向连接将high-level特征融合到low-level特征中,从而提高了低层特征的语义level。

    总结
    FPN网络是采用ResNet作为Base实现的,但其实FPN可以看做一种网络结构模块或者设计思想应用在各种网络中。
    ————————————————

    原文链接:https://blog.csdn.net/qq_38675397/article/details/106474984
    (8)了解anchor free的方法吗?…

    https://blog.csdn.net/SMF0504/article/details/109214527

    (9)讲一下R-CNN-Fast R-CNN- Faster R-CNN-Mask R-CNN-Cascade R-CNN的发展脉络?
    https://blog.csdn.net/qq_41123123/article/details/116990869

    讲一下YOLO系列的发展脉络…
    https://blog.csdn.net/blzhizhuang/article/details/120101970

    (10)介绍一下focal loss的应用场景?…
    在这里插入图片描述

    图像分类,多分类任务,语义分割

    (11)一阶段与二阶段检测算法的区别?…
    简而言之双阶段精度高但速度慢,单精度速度快但精度稍逊。
    这两类方法的主要区别是 proposal 的生成。具体来说 RCNN 的方法是先生成大量的 window,然后对每一个跑一次 CNN 进行图片识别,后面的改进是提出了用另一个神经网络来生成这些 window,准确率会更好,计算量会更低。SSD 一类的方法是将图片分成了更小的方格,每一个格子都有固定预设的 anchor,通过将图片中的物体分配到不同的格子然后再分类,这样做就不用单独生成 window 了。传统上, two-stage 方法慢但准确率高,由于 RPN 已经起到了筛选的作用,训练上也会更简单。但多亏了近几年很多技巧,如 FPN、Focal Loss 等,可以让 single-stage 的方法达到类似的准确率,现在选择的时候要看你的数据了。

    作者:Inflation
    链接:https://www.zhihu.com/question/305427420/answer/550201267
    来源:知乎

    (12) faster R-CNN的训练和测试过程说一下?…
    https://blog.csdn.net/just_do_myself/article/details/117281653
    https://www.jianshu.com/p/dc455d418762

    (13)介绍一下NMS的算法流程?知道soft-NMS吗?…
    非极大值抑制算法
    https://blog.csdn.net/weixin_44570701/article/details/122123052
    非极大值抑制本身的流程属于是,在多个候选框列表里通过计算分出类别,每个类别留下综合得分最大也就是最有可能的那个
    而softNMS面对的问题是当俩个目标框接近时,分数更低的框会因为与之重叠面积过大而被删掉。
    在NMS的基础上进行了改进

    (14)介绍下一阶段目标检测算法的发展思路?…
    https://cloud.tencent.com/developer/article/1842152
    9.1 轻量型目标检测
    为了加快目标检测的推理速度并使其能够在移动设备上快速流畅的运行,比如在一些重要的应用:增强现实、智能相机、人脸验证等等,近年来一些研究学者为此做了大量的努力,但目前的一些检测算法速度仍然较慢。这将导致工业界不得不花费更多的资金来购买算力更高的设备去运行该检测算法,这在一定程度上阻碍了检测算法的落地进程。因此检测算法在未来的一个发展趋势中,轻量快速且高精度是目标检测永恒的主题。

    9.2 与AutoML结合的目标检测
    近年来基于深度学习的检测算法变得越来越复杂且严重依赖于经验设计,为了在使用神经架构搜索NAS技术设计检测算法时减少人为参与(如何设计检测算法的Backbone,如何设计先验框等等),未来的一个发展方向就是将目标检测与AutoML技术结合,因此AutoML可能是目标检测的未来。

    9.3 领域自适应的目标检测
    任何目标检测算法的训练过程本质上都可以看成数据在独立同分布(i.i.d.)下的似然估计过程,而对于不满足(i.i.d.)的目标检测数据(特别是对于一些现实世界的应用程序)仍然是一个挑战,GAN在领域自适应方面已经显示出 了强大的效果,这对于目标检测技术来讲应该具有很大的促进作用。

    9.4 弱监督目标检测
    基于深度学习检测算法的训练通常依赖于大量高质量标注的图像数据集,而标准过程通常比较耗时且效率低下。运用弱监督目标检测技术,可以使检测算法使用部分边界框标注的数据集进行训练,因此弱监督技术对于降低人力成本和提高检测灵活性非常重要。

    9.5 小目标检测
    在场景图像中检测小目标一直是目标检测领域长期以来所面临的一个挑战,小目标检测研究方向的一些潜在应用包括:利用遥感图像统计野生动物的数量,和检测一些重要军事目标的状态,因此如何解决小目标问题一直是研究者研究的热点。

    9.6 视频检测
    高清视频中的实时目标检测/跟踪对于视频监控和自动驾驶具有重要意义,现有的目标检测算法通常是为单张图像的物体检测而设计的,而忽略了视频帧与帧之间的相关性,通过探索视频帧序列之间的空间和时间相关性来改善检测性能是一个重要的研究方向。

    9.7 信息融合目标检测
    具有多种数据源(多模态,例如RGB-D图像、3d 点云、激光雷达等)的目标检测对于自动驾驶和无人机应用非常重要,一些未解决的问题包括:如何将训练好的的检测模型迁移到不同模态的数据中,如何通过信息融合以改进检测性能等也是未来发展的一个重要研究方向。
    (15)介绍一下YOLO v4?讲一下整体的框架流程?给你印象最深的一个trick是什么?
    https://zhuanlan.zhihu.com/p/137393450
    https://blog.csdn.net/hgnuxc_1993/article/details/120724812

    (16)介绍一下NMS并用Python实现?…

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    """
    Created on Mon May  7 21:45:37 2018
    
    @author: lps
    """
    import numpy as np
    
    
    boxes=np.array([[100,100,210,210,0.72],
            [250,250,420,420,0.8],
            [220,220,320,330,0.92],
            [100,100,210,210,0.72],
            [230,240,325,330,0.81],
            [220,230,315,340,0.9]]) 
    
    
    def py_cpu_nms(dets, thresh):
        # dets:(m,5)  thresh:scaler
        
        x1 = dets[:,0]
        y1 = dets[:,1]
        x2 = dets[:,2]
        y2 = dets[:,3]
        
        areas = (y2-y1+1) * (x2-x1+1)
        scores = dets[:,4]
        keep = []
        
        index = scores.argsort()[::-1]
        
        while index.size >0:
    
            i = index[0]       # every time the first is the biggst, and add it directly
            keep.append(i)
            
            x11 = np.maximum(x1[i], x1[index[1:]])    # calculate the points of overlap 
            y11 = np.maximum(y1[i], y1[index[1:]])
            x22 = np.minimum(x2[i], x2[index[1:]])
            y22 = np.minimum(y2[i], y2[index[1:]])
            
            w = np.maximum(0, x22-x11+1)    # the weights of overlap
            h = np.maximum(0, y22-y11+1)    # the height of overlap
           
            overlaps = w*h
            
            ious = overlaps / (areas[i]+areas[index[1:]] - overlaps)
            
            idx = np.where(ious<=thresh)[0]
            
            index = index[idx+1]   # because index start from 1
            
        return keep
            
    
    import matplotlib.pyplot as plt
    def plot_bbox(dets, c='k'):
        
        x1 = dets[:,0]
        y1 = dets[:,1]
        x2 = dets[:,2]
        y2 = dets[:,3]
        
        
        plt.plot([x1,x2], [y1,y1], c)
        plt.plot([x1,x1], [y1,y2], c)
        plt.plot([x1,x2], [y2,y2], c)
        plt.plot([x2,x2], [y1,y2], c)
        plt.title("after nms")
    
    plot_bbox(boxes,'k')   # before nms
    
    keep = py_cpu_nms(boxes, thresh=0.7)
    plot_bbox(boxes[keep], 'r')# after nms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75

    https://www.jb51.net/article/229498.htm#_lab2_0_1

    (17)介绍一下focal loss在目标检测场景中的应用?…
    https://zhuanlan.zhihu.com/p/41849687

    (18)介绍一下Yolo v5?.

    https://blog.csdn.net/weixin_45842280/article/details/123132320

    1、介绍一下你了解的常用的模型性能评价指标?…
    https://wenku.baidu.com/view/e0c538095b0216fc700abb68a98271fe910eaf29.html

    https://blog.csdn.net/dfly_zx/article/details/123143023

    (1)错误率与精度…

    (2)查全率和查准率…

    (3)ROC与AUC…

    (4)IOU(Intersection over Union)

    (5)mAP(mean average precision)

    (6) SSIM…
    https://zhuanlan.zhihu.com/p/541385224

    SSIM 已成为计算机视觉中常见的损失函数,测量两个图片之间的相似性

    (7) PSNR.
    峰值信噪比
    https://blog.csdn.net/weixin_29732003/article/details/122569893

    (8) SROCC和PLCC…
    https://blog.csdn.net/XieRuily/article/details/121567226

    (9) MAC和FPS.

    (10) FID…

    (11) mIOU…
    https://blog.csdn.net/qq_41731861/article/details/120683905

    2、多卡操作…

    (1) Facebook AI PyTorch数据并行…
    https://jishuin.proginn.com/p/763bfbd2e509
    (2)多卡操作的包是什么?…

    (3)多卡操作的底层原理是什么?…
    https://blog.csdn.net/weixin_52067875/article/details/125731025

    (4)介绍一下模型在GPU上的运算流程?…

    3、当模型训练效果不好时,这时你一般都会怎么处理?…

    4、介绍SVM算法?SVM如何解决线性不可分问题的?…
    支持向量机,二分类算法
    如何解决:将低纬度数据放在高纬度上再进行分割

    https://blog.csdn.net/W_000/article/details/121388509

    https://wenku.baidu.com/view/2871af6db007e87101f69e3143323968011cf429.html
    (1)SVM一些注意事项…

    https://blog.csdn.net/qq_41687938/article/details/120823873
    https://blog.csdn.net/haronchou/article/details/106548870

    (2)熟悉SVM,可以大体介绍下SVM吗?…

    (3)SVM为什么采用间隔最大化?.
    https://blog.csdn.net/CarryLvan/article/details/102807586
    在这里插入图片描述

    (3)为什么要将求解 SVM的原始问题转换为其对偶问题?.

    SVM 为什么要从原始问题变为对偶问题来求解

    首先是我们有不等式约束方程,这就需要我们写成min max的形式来得到最优解。而这种写成这种形式对x不能求导,这种形式只能对a求导,所以我们需要转换成max min的形式,这时候,x就在里面了,这样就能对x求导了。而为了满足这种对偶变换成立,就需要满足KKT条件(KKT条件是原问题与对偶问题等价的必要条件,当原问题是凸优化问题时,变为充要条件)。

    . 对偶问题将原始问题中的约束转为了对偶问题中的等式约束

    方便核函数的引入

    改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。
    ————————————————
    原文链接:https://blog.csdn.net/qq_40598006/article/details/114077093

    (4)为什么 SVM要引入核函数?核函数怎么选择的,有没有自己创建核函数?那如果特征又多,数据又多用什么核函数(高斯)?

    当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。

    1. 核函数的选取

    一般用线性核和高斯核,也就是Linear核与RBF核
    需要注意的是需要对数据归一化处理,很多使用者忘了这个小细节
    然后一般情况下RBF效果是不会差于Linear
    但是时间上RBF会耗费更多,其他同学也解释过了
    下面是吴恩达的见解:

    1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
    2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
    3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
      ————————————————
      原文链接:https://blog.csdn.net/zhangbaoanhadoop/article/details/82083908

    (5)为什么SVM对缺失数据敏感?

    这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM 没有处理缺失值的策略。而 SVM 希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。
    SVM只和支持向量有关,所以SVM对异常值不敏感,适合小数据集。 对于不易分类的情况,可以采用软间隔。高维问题甚至可以采用核函数方法来更好的分类。
    (6)SVM核函数之间的区别?
    https://www.pianshen.com/article/27341520736/

    (7)介绍一下RBF核的优点?…
    高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF
    RBF核的优点 :
    大小高低都适用。具体来说
    (1)无穷维,线性核是其特例
    (2)与多项式~比,RBF需确定的参数少
    (3)某些参数下,与sigmoid~有相似的功能。

    Gauss径向基函数则是局部性强的核函数,其外推能力随着参数σ的增大而减弱。

    这个核会将原始空间映射为无穷维空间。不过,如果 σ 选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果 σ 选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调控参数σ ,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。

    (8)LR和SVM比较?.
    https://blog.csdn.net/xfxlesson/article/details/115315301

    5、学习率的调整方式?有哪几种?介绍一下关于学习率的调节经验,总共有几种情况,分别是怎么操作的?
    https://blog.csdn.net/weiman1/article/details/125647517
    自己 的经验 就
    http://t.zoukankan.com/tianqizhi-p-9714649.html

    (1).学习率对于梯度下降的影响…

    (2)怎样选择一个合适的学习率?…
    https://zhuanlan.zhihu.com/p/62131313
    (3)自适应学习率算法…
    https://www.jianshu.com/p/dfeba2ac6559

    6、dropout

    (1).dropout?训练阶段和预测阶段的区别?…
    https://zhuanlan.zhihu.com/p/38200980
    (2).为什么预测阶段需要乘上?…

    (2).Dropout训练和测试有什么不同?…

    (3).平时调参中的P的选择你是怎么选择的?参数的选择方法?…

    (4).为什么dropout可以用来防止过拟合?…
    https://blog.csdn.net/weixin_41068770/article/details/89150695

    7、介绍一下关于优化器选择的经验?为什么选择?…
    https://blog.csdn.net/qq_42722197/article/details/122834265
    https://baijiahao.baidu.com/s?id=1688035493623913675&wfr=spider&for=pc
    (1).BGD/ SGD/ MBGD…
    https://blog.csdn.net/dpengwang/article/details/93585493
    https://blog.csdn.net/wwyy2018/article/details/97275645
    https://zhuanlan.zhihu.com/p/25765735
    (2).非凸函数的局部极小点问题…

    (3).学习率的自适应更新…

    (4).为什么SGD的时候随机选取部分样本,这样做有什么好处?…

    (5). Adam算法如何计算梯度的指数移动均值?这样做有什么好处?…

    (6).指数加权移动平均…

    (7).给定一个目标函数,如何用SGD优化求出最优解,说出详细的优化步骤?…

    (8).介绍一下其他的优化算法?牛顿法,EM算法,模拟退火等?…

    (9).介绍一下Adam算法的公式?…

    8、如何解决过拟合问题?…

    1. L1范数与L2范数的区别?L1正则为什么能够起到特征选择的作用?.

    1)L1范数与L2范数的区别?…

    2)为什么要用L1范数?L1范数为什么会使权值稀疏或者L1正则为什么能够起到特征选择的作用?

    10、介绍一下不同的激活函数?网络的稀疏性指的是?主要针对?…

    11、介绍一下梯度消失?梯度爆炸?…
    https://blog.csdn.net/hollyprince/article/details/125900787

    1)RNN为什么会出现梯度消失的情况?…
    https://blog.csdn.net/lch551218/article/details/114372785
    https://blog.csdn.net/two_apples/article/details/105139182

    12、BN…

    1)BN解决了什么问题?…
    https://zhuanlan.zhihu.com/p/500350203
    2)如何减缓internal convariate shift?.
    https://blog.csdn.net/hxxjxw/article/details/124071106
    3)思路…

    4)具体实现…

    3)在训练阶段和测试阶段的有什么不同?知道BN中的momentum变量吗?…

    5)BN层的作用?为什么BN会加速网络的训练?…

    4)在使用BN之前,减小学习率,小心的权重初始化的目的是?…

    6)关于BN层的可学习参数?…

    7)如果说BN也可以用来防止过拟合,你觉得原理是什么?…

    8)numpy手写代码BN?…

    13、介绍一下逻辑斯蒂回归算法?…
    https://blog.csdn.net/u013905264/article/details/102776710
    14、介绍一下K-means算法?如何初始化类中心?如何衡量聚类效果好坏?…
    https://blog.csdn.net/kwame211/article/details/78037410/
    15、Boosting的方法优缺点?…
    https://blog.csdn.net/starter_____/article/details/79328749
    16、介绍一下CNN和序列模型的应用场景?…

    17、了解模型的部署吗?…

    18、介绍常用的熵?交叉熵与KL散度的区别?交叉熵损失了解吗?…
    http://www.360doc.com/content/21/1014/11/32196507_999711478.shtml
    https://blog.csdn.net/deephub/article/details/106966542
    19、写一下线性回归的训练-BP过程…
    https://blog.csdn.net/tanghonghanhaoli/article/details/105631884
    20、知道最小二乘法吗?在线性回归中是如何做的?…
    https://wenku.baidu.com/view/1313cb1d5b0216fc700abb68a98271fe910eafeb.html
    21、介绍一下常用的优化算法?比如最大似然估计,梯度下降,牛顿法知道吗,了解凸优化中的一些优化算法吗?

    22、介绍一下CNN?CNN可以用来处理一维数据吗?CNN处理图像的优点?…
    可以,https://zhuanlan.zhihu.com/p/67206089
    23、关于框架中的采样你知道底层是如何做的吗,如何从高斯分布采样出均匀分布?一阶马尔可夫采样的过程?
    https://zhuanlan.zhihu.com/p/478169262
    24、介绍一下传统图像处理算法?…
    https://blog.csdn.net/weixin_42454048/article/details/100180513
    25、模型复杂度计算?模型计算量计算?…

    26、介绍一下Softmax?写一下公式?说一下应用场景?…
    https://zhuanlan.zhihu.com/p/408185460
    https://zhuanlan.zhihu.com/p/406751969
    27、了解cuda编程吗?…

    28、了解模型量化、剪枝吗?…
    https://zhuanlan.zhihu.com/p/432066295
    29、已知一个训练好的CONV+BN+ReLU,如何融合在推理过程中进行加速?…

  • 相关阅读:
    猿创征文|pandas实现将矩阵导出到excel+对矩阵进行连接
    前端知识案例106-javascript基础语法-setTimeOut
    Linux开发-Ubuntu软件源工具
    vant-list上滑加载,数据重复,加载后返回顶部
    Python 将数字字符串数组转为数字数组的最快方法
    Elasticsearch Head的使用
    Spring事务
    20.1CubeMx配置FMC控制SDRAM【W9825G6KH-6】
    Django小白开发指南
    go——并发编程
  • 原文地址:https://blog.csdn.net/m0_45056394/article/details/126454652