【计算机视觉】图像分割中FCN、DeepLab、SegNet、U-Net、Mask R-CNN等算法的讲解(图文解释 超详细)

简介: 【计算机视觉】图像分割中FCN、DeepLab、SegNet、U-Net、Mask R-CNN等算法的讲解(图文解释 超详细)

觉得有帮助请点赞关注收藏~~~

一、FCN分割算法

全卷积神经网络目标分割算法能够端到端的得到每个像素的目标分类结果,与传统的卷积神经网络只能输入固定大小图像和在网络的末端使用几个全连接层得到固定长度的特征向量不同,全卷积神经网络能够接受任意大小尺寸的输入图像,并且网络中没有使用全连接层,而是全部使用卷积层,全卷积神经网络采用反卷积层取代简单的线性插值算法,对最后一个卷积层的特征图进行上采样,使用反卷积可以对卷积进行逆操作

FCN算法采用VGGNet为基础网络,并把VGGNet的最后三层全连接层改为卷积层,最后采用跳跃式结构融合多尺度特征产生与原图大小一致的每个像素图类别图

二、DeepLab图像分割算法

DeepLab图像分割算法主要由两部分所组成:深度卷积神经网络和条件随机场,该方法的主要创新点就是条件随机场部分,该方法的主要创新点就是条件随机场部分,为了能够取得类似于传统条件随机场的全局优化效果,利用循环的方式将上一层的输出作为下一层的输入,其中采用的条件随机场架构是基于全局连接模型,图像分割的条件随机场推理的关键因素就是将类别标号问题转变成概率推理问题。

DeepLab分割算法将条件随机场作为后置的处理加在全卷积神经网络的结果上,用来改善图像分割的结果,这种通过将全卷积神经网络与条件随机场组合得到了较好的结果

三、SegNet图像分割算法

SegNet图像分割算法是一个编码器-解码器结构的卷积神经网络,SegNet算法结果如下图,这是一个对称网络,左边是卷积提取高维特征,卷积后不改变图片大小,通过池化来使图片变小,该部分为编码器部分,右边是反卷积与上采样,上采样使用的使反池化的方式将图像变大,通过反卷积使上采样后的图像信息变得丰富,使得在池化过程丢失的信息可以在学习后得到

SegNet中的池化层多了一个索引的功能,在每次进行最大池化的过程中都会保存滤波器中最大权值的相对位置,在利用反池化的方式进行上采样的时候就能对最大权值的区域信息进行恢复,其余信息则会丢失,因此,SegNet使用可学习的反卷积将缺失的内容进行填充。

四、U-Net算法

U-Net是受到FCN启发针对医学图像做语义分割,且可以利用少量的数据学习到一个对边缘提取十分鲁棒的模型,在生物医学图像分割领域有很大作用,大体由收缩和扩张路径组成,因为形似一个字母U,得名U-Net,收缩路径利用传统卷积神经网络的卷积池化组件,其中经过一次下采样之后从层数变为原来的2倍,扩张路径由2×2的反卷积实现,反卷积的输出通道为原来通道数的一半,与原来的特征图串联,从而得到和原来一样多的通道数的特征图

U-net与其他常见的分割网络有一点非常不同的地方:U-net采用了完全不同的特征融合方式:拼接,U-net采用将特征在层(channel)的维度拼接在一起,形成更厚的特征。而FCN融合时使用的对应点相加,并没有形成更厚的特征。

五、Mask R-CNN算法

它是一个小巧 灵活的通用对象实例分割框架,它不仅可对图像中的目标进行检测,还可以对每一个目标给出一个高质量的图像分割结果,取得了十分不错的结果

如图4-7所示,Mask R-CNN分为两个分支:

(1)第一个分支为原始Faster R-CNN的结构,它用于对候选窗口进行分类和窗口坐标回归。

(2)第二个分支对每一个感兴趣区域(Region of Interest,RoI)预测分割掩模,这个分支采用了图像分割的经典算法-FCN结构。

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
4月前
|
机器学习/深度学习 算法 Python
请解释Python中的随机森林算法以及如何使用Sklearn库实现它。
【2月更文挑战第28天】【2月更文挑战第101篇】请解释Python中的随机森林算法以及如何使用Sklearn库实现它。
58 3
|
4月前
|
开发框架 算法 搜索推荐
C# .NET面试系列九:常见的算法
#### 1. 求质数 ```c# // 判断一个数是否为质数的方法 public static bool IsPrime(int number) { if (number < 2) { return false; } for (int i = 2; i <= Math.Sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } class Progr
111 1
|
4月前
|
机器学习/深度学习 算法
大模型开发:解释随机森林算法以及它是如何做出决策的。
随机森林是集成学习方法,利用多棵决策树提升性能。通过随机抽样和特征选择创建弱分类器,减少模型相关性。每个决策树基于子数据集和特征子集构建,预测时集成所有决策树结果,分类问题采用投票,回归问题取平均值。这种方法降低过拟合风险,提高准确性和稳定性,对噪声和异常值容忍度高,广泛应用。
69 0
|
4月前
|
算法 搜索推荐 图计算
图计算中的社区发现算法是什么?请解释其作用和常用算法。
图计算中的社区发现算法是什么?请解释其作用和常用算法。
85 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)
【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)
91 0
【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
122 9
|
2月前
|
并行计算 算法 Python
Dantzig-Wolfe分解算法解释与Python代码示例
Dantzig-Wolfe分解算法解释与Python代码示例
|
3月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉是一门研究如何使计算机“看”的技术,其目标是让计算机能够像人类视觉一样理解和解释视觉信息。
计算机视觉是一门研究如何使计算机“看”的技术,其目标是让计算机能够像人类视觉一样理解和解释视觉信息。
|
3月前
|
存储 编解码 算法
C#.NET逃逸时间算法生成分形图像的毕业设计完成!晒晒功能
该文介绍了一个使用C#.NET Visual Studio 2008开发的程序,包含错误修复的Julia、Mandelbrot和优化过的Newton三种算法,生成色彩丰富的分形图像。作者改进了原始算法的效率,将内层循环的画点操作移至外部,提升性能。程序提供五种图形模式,支持放大缩小及颜色更新,并允许用户自定义画布大小以调整精度。还具备保存为高质JPG的功能。附有四张示例图片展示生成的分形效果。
|
4月前
|
算法
MATLAB|【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型
这段内容介绍了一个使用改进的麻雀搜索算法优化CNN-BiLSTM模型进行多输入单输出预测的程序。程序通过融合正余弦和柯西变异提升算法性能,主要优化学习率、正则化参数及BiLSTM的隐层神经元数量。它利用一段简单的风速数据进行演示,对比了改进算法与粒子群、灰狼算法的优化效果。代码包括数据导入、预处理和模型构建部分,并展示了优化前后的效果。建议使用高版本MATLAB运行。

热门文章

最新文章