CV面试题目总结(三) - 传统图像算法

简介: CV面试题目总结(三) - 传统图像算法

目录

1.常见图像滤波。

2.常见图像分割算法。

3.常用边缘提取算子。

4.解释一下BN(Batch Normalization)。

5.解释一下L1、L2范数。

6.常用卷积类型。

7.常见的池化。

8.介绍一下卡尔曼滤波。

9.什么是生成式模型和判别式模型。

10.贝叶斯是生成式模型还是判别式模型。

11.介绍一下朴素贝叶斯,为什么朴素?

12.有哪些传统梯度算法?

13.有哪些边缘检测算法。

14.常见的损失函数。

1.常见图像滤波。中值滤波和均值滤波的差别
滤波目的:

消除图像中混入的噪声。
为图像识别抽取出图像特征。
滤波要求:

不能损坏图像轮廓及边缘 。
图像视觉效果应当更好。
滤波器的种类有很多, 基本包含以下6种滤波方法:

盒式滤波:平滑处理1线性滤波之——盒式滤波(方框滤波)

均值滤波:平滑处理2线性滤波之——均值滤波

高斯滤波:平滑处理3线性滤波之——高斯滤波

中值滤波:平滑处理4非线性滤波之——中值滤波

双边滤波:平滑处理5非线性滤波之——双边滤波

导向滤波:平滑处理6——引导滤波/导向滤波(Guided Filter)

均值滤波和中值滤波的内容非常基础。均值滤波相当于低通滤波,容易使图像模糊,对椒盐噪声影响不大。中值滤波的优点是可以滤除椒盐噪声,缺点是容易造成图像的不连续性。通过下面的三幅图,我们可以清楚地看到以上两种滤波方法的区别。

原始图像含有椒盐噪声

中值滤波后,椒盐噪声几乎被完全去除

均值滤波后,椒盐噪声被处理成小气泡,但同时图像开始模糊。

均值滤波器是最常用的线性低通平滑滤波器,它可以抑制图像中的加性噪声,同时也使图像模糊;中值滤波器是最常用的非线性平滑滤波器,它可以消除图像中孤立的噪声点,产生较少的模糊。一般来说,中值滤波的效果优于邻域平均低通滤波,其主要特点是滤波后的图像轮廓清晰。

这篇博客【图像滤波总结(面试经验总结)】的作者写的不错!可以看看。

2.常见图像分割算法。
基于阈值的分割方法
基于区域的分割方法
基于边缘的分割方法
基于特定理论的分割方法
基于基因编码的分割方法
基于小波变换的分割方法
基于神经网络的分割方法
深度学习方向的分割方法,这篇文章【图像分割综述【深度学习方法】】讲的不错,比较全面。

3.常用边缘提取算子。
Sobel算子
Isotropic Sobel算子
Roberts算子
Prewitt算子
Laplacian算子
Canny算子
这篇文章【图像处理常用边缘检测算子总结】总结的很完整,还是可以的。

4.解释一下BN(Batch Normalization)。
Batch Normalization是2015年一篇论文中提出的数据归一化方法,往往用在深度神经网络中激活层之前。其作用可以加快模型训练时的收敛速度,使得模型训练过程更加稳定,避免梯度爆炸或者梯度消失。并且起到一定的正则化作用,几乎代替了Dropout。

BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

BN的两大收益:

收敛速率增加
可以达到更好的精度
在目标检测算法中,BN已经成为了标配。比如Yolov3引入了BN后,mAP提升了两个百分点。在更多实验中可以看到,BN同时起到了正则化作用,防止模型在训练集上过拟合,通常有BN的网络不再需要Dropout层。

这篇文章【基础算法:六问透彻理解BN(Batch Normalization)】真的挺不错的哦。

5.解释一下L1、L2范数。
这篇文字【机器学习中的范数规则化之(一)L0、L1与L2范数】怎么说呢,还行吧。

6.常用卷积类型。
1、Convolution卷积
2、Deconvolution(transposed Convolutions)反卷积(转置卷积)
3、1x1/Pointwise Convolutions点级卷积
4、Spatial and Cross-Channel Convolutions空间和跨通道卷积
5、Grouped Convolutions组卷积
6、Separable Convolutions可分离卷积
6.1 Spatially Separable Convolutions空间可分离卷积
6.2 Depthwise Separable Convolutions深度可分离卷积
7、Flattened Convolutions扁平化卷积
8、Shuffled Grouped Convolutions混洗分组卷积
9、Pointwise grouped convolution逐点分组卷积
10、Dilated Convolution(Atrous Convolution)空洞卷积(扩张卷积)
11、Deformable Convolution可变形卷积
付详细链接【常见的卷积类型】【形象理解深度学习中八大类型卷积】,不错哦。

7.常见的池化。
(1)最大池化、平均池化、全局平均池化、全局最大池化。

平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。

最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。

(2)重叠池化(OverlappingPooling):

重叠池化就是,相邻池化窗口之间有重叠区域,此时一般sizeX > stride。

(3)空金字塔池化(Spatial Pyramid Pooling)

空间金字塔池化的思想源自 Spatial Pyramid Model,它将一个pooling变成了多个scale的pooling。用不同大小池化窗口作用于上层的卷积特征。也就是说 spatital pyramid pooling layer就是把前一卷积层的feature maps的每一个图片上进行了3个卷积操作,并把结果输出给全连接层。其中每一个pool操作可以看成是一个空间金字塔的一层。

这样做的好处是,空间金字塔池化可以把任意尺度的图像的卷积特征转化成相同维度,这不仅可以让CNN处理任意尺度的图像,还能避免cropping和warping操作,导致一些信息的丢失,具有非常重要的意义。

【卷积神经网络——输入层、卷积层、激活函数、池化层、全连接层】这一篇讲的很棒,包括CNN其它层都有讲解。

8.介绍一下卡尔曼滤波。
你可以在任何含有不确定信息的动态系统中使用卡尔曼滤波,对系统下一步的走向做出有根据的预测,即使伴随着各种干扰,卡尔曼滤波总是能指出真实发生的情况。
在连续变化的系统中使用卡尔曼滤波是非常理想的,它具有占用内存小的优点(除了前一个状态量外,不需要保留其它历史数据),并且速度很快,很适合应用于实时问题和嵌入式系统。
在Google上找到的大多数关于实现卡尔曼滤波的数学公式看起来有点晦涩难懂,这个状况有点糟糕。实际上,如果以正确的方式看待它,卡尔曼滤波是非常简单和容易理解的,下面我将用漂亮的图片和色彩清晰的阐述它,你只需要懂一些基本的概率和矩阵的知识就可以了。

【从放弃到精通!卡尔曼滤波从理论到实践~】哔哩哔哩里这位大佬讲的很好,值得观看。

【How a Kalman filter works, in pictures】国外大神经典

【详解卡尔曼滤波原理】这一篇对Kalman讲的很详细

9.什么是生成式模型和判别式模型。
生成式模型(Generative Model)与判别式模型(Discrimitive Model)是分类器常遇到的概念,它们的区别在于:

对于输入x,类别标签y:
生成式模型估计它们的联合概率分布P(x,y)
判别式模型估计条件概率分布P(y|x)

生成式模型可以根据贝叶斯公式得到判别式模型,但反过来不行。

【判别式模型与生成式模型】很完美,beautiful!

10.贝叶斯是生成式模型还是判别式模型。

11.介绍一下朴素贝叶斯,为什么朴素?

12.有哪些传统梯度算法?

13.有哪些边缘检测算法。

14.常见的损失函数。

相关文章
|
1月前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩分享分库分表的基因算法设计,涵盖分片键选择、水平拆分策略及基因法优化查询效率等内容,助力面试者应对大厂技术面试,提高架构设计能力。
美团面试:百亿级分片,如何设计基因算法?
|
1月前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
32 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
25天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
30天前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩在读者群中分享了关于分库分表的基因算法设计,旨在帮助大家应对一线互联网企业的面试题。文章详细介绍了分库分表的背景、分片键的设计目标和建议,以及基因法的具体应用和优缺点。通过系统化的梳理,帮助读者提升架构、设计和开发水平,顺利通过面试。
美团面试:百亿级分片,如何设计基因算法?
|
1月前
|
机器学习/深度学习 人工智能 算法
【MM2024】面向 StableDiffusion 的多目标图像编辑算法 VICTORIA
阿里云人工智能平台 PAI 团队与华南理工大学合作在国际多媒体顶级会议 ACM MM2024 上发表 VICTORIA 算法,这是一种面向 StableDiffusion 的多目标图像编辑算法。VICTORIA 通过文本依存关系来修正图像编辑过程中的交叉注意力图,从而确保关系对象的一致性,支持用户通过修改描述性提示一次性编辑多个目标。
|
1月前
|
算法 Java 数据中心
探讨面试常见问题雪花算法、时钟回拨问题,java中优雅的实现方式
【10月更文挑战第2天】在大数据量系统中,分布式ID生成是一个关键问题。为了保证在分布式环境下生成的ID唯一、有序且高效,业界提出了多种解决方案,其中雪花算法(Snowflake Algorithm)是一种广泛应用的分布式ID生成算法。本文将详细介绍雪花算法的原理、实现及其处理时钟回拨问题的方法,并提供Java代码示例。
67 2
|
1月前
|
缓存 关系型数据库 MySQL
面试题目总结
面试题目总结
70 6
|
1月前
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
|
1月前
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)