【CV现状-3.1】图像分割
#磨染的初心——计算机视觉的现状
【这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣。可以随意传播,随意喷。所涉及的内容过多,将按如下内容划分章节。已经完成的会逐渐加上链接。】
- 缘起
- 三维感知
- 目标识别
3.0. 目标是什么
3.1. 图像分割
3.2. 纹理与材质
3.3. 特征提取与分类
3.4. 其它 - 目标(和自身)在三维空间中的位置关系
- 目标的三维形状及其改变、目标的位移
- 符号识别
- 数字图像处理
图像分割
为了通过材质、形状、结构识别目标,对图像进行分割应该是必然的选择。在这一点上计算机视觉研究者们算是勉强达成了共识,图像分割甚至被很多研究者列为计算机视觉的基本任务之一了。很多图像分割算法被提了出来,归纳起来可以分为基于阈值的方法、基于聚类的方法、基于区域的方法、基于图割的方法、活动边界模型和水平集、基于卷积神经网络的方法。
基于阈值的方法里,有全局一个阈值的,也有对图像不同区域使用不同阈值的。此类方法的关键在于确定阈值,然而对于大多数图像即使遍历所有的取值也无法找到实现合理分割的阈值,因此该算法常用于符号识别、指纹识别和分割遥感领域中的各种指数图像(水体指数、植被指数、干旱指数、热红外影像)。
凡是认真思考或者亲身尝试过的,都会承认基于聚类的方法的分割结果难以令人接受。所有的聚类算法都直接或者间接假设了类别内部的样本密度高于类别边界的样本密度。观察过一些图像的直方图后就会发现,像素在像元值空间的分布形状通常都类似钟型曲线(只有一个凸起),也就是说按照聚类算法的假设应该将全部像素聚为一类。即使同时使用多个图像通道,这种情况也没有什么改观。没有或者难以使用空间信息是基于聚类的方法的直接缺陷,导致分割结果形状复杂、越过显而易见的边界。通常基于聚类的方法都作为其他算法的预处理步骤,在图像处理领域用于压缩颜色数量。
基于聚类的方法中有一个叫做SLIC的超像素分割算法与基本的聚类算法有较大的不同,首先在图像上均匀的撒上种子点,然后以一定的半径执行KMeans聚类,所使用的距离度量方法考虑到了空间信息。该算法与方格网形划分超像素相比有很大的优势,但是由于聚类算法的用于分割的天然缺陷仍然会导致超像素越过显而易见的边界。如果目标是为了保持形状的准确性,SLIC并不是很好的预处理选择。
基于区域的方法目前包含种子区域生长、区域分裂和合并、分水岭。种子区域生长法的关键在于种子点的选择、相似性的度量、生长规则,其中相似性度量最为关键。常用的相似性度量方法有像元值、颜色、纹理,相似性的度量也是区域分裂和合并法的最关键所在。区域分裂和合并的另外一个关键是分裂和合并的机制。分水岭算法通常应用在梯度图上,将梯度值看作高程值,设想从高程值的局部极小值处向外涌水,整幅图上水位升高的速度是一样的,在两处涌水相遇处修建堤坝。当水位上升至最高点后,所有像素点都被淹没,所有的堤坝形成对图像的分割。分水岭算法对微弱的边缘也有很好的响应,因而也会导致过分割。对于保持形状来说,分水岭加区域分裂和合并应该还有较大的提升空间。
基于图割的方法是将图像分割转换为图的最小割问题,关键在于设置边的权重,这只不过是相似性度量的另一个称呼。因此基于图割的全图分割方法并不会比种子区域生长、区域分裂和合并更好;此外最小割是NP问题,难以最优求解。基于图割的方法中值得一提的是Graphcut和Grabcut,该算法用于分割前背景,需要人工粗略标注部分背景和前景。这两个算法的直接意义在于图像处理领域的交互式前景提取。
活动边界模型和水平集的用处同样在于交互式前景提取,需要人工提供初始前景范围曲线,然后让范围曲线在根据图像数据得到的能量函数的作用下演化,使其向前景边缘逐渐逼近,最终找到前景的边缘,在达到前景边缘时能量函数的取值最小。活动边界模型直接对范围曲线进行演化,而水平集则根据初始范围曲线及图像数据构造出三维曲面,通过三维曲面的演化以及取等值线的方式间接实现范围曲线的演化。前背景的边缘处一定具有较大的梯度,因此能量函数最重要的构造依据就是图像的梯度,仅依靠梯度会陷入局部最优,一般还会加入曲线的曲率和其它先验知识。活动边界模型和水平集方法不过是希望通过曲线和曲面的传递作用以及其它先验突破梯度的局部极大值,在前景分割上的表现不会比基于图割的方法更好,事实也是如此。
基于卷积神经网络的方法包括语义分割、实例分割、全景分割三种,归根到底都是通过已知的样本数据建立像素及其一定范围内领域的像素到实例或者类别的映射。得益于神经网络能够模拟任意函数的优势,在大量样本数据参与训练的条件下所建立出来的映射模型具有较高的准确性。然而机械的映射模型的缺陷也是显而易见的,迁移能力(只能分割猫的网络不能分割狗)和泛化能力(只能分割白猫的网络分割不了花猫)几乎没有。另外由于映射模型过分复杂,输入数据的轻微改变也会导致无法预料的错误(像素攻击)。
以上就是图像分割的所有进展,凡是有过尝试的人都会承认,即使人类也很难从目前图像分割的结果中提取出形状和结构特征。不禁要问,在没有识别出目标的情况下,到底能够分割到什么程度?目前图像分割算法是否还能继续提升?就我个人的感觉,目前的进展还未达到图像分割的极限,虽然不可能达到人类的水平,但是仍然有很大的提升空间。关键的问题是朝着什么方向去提升,也就是应该用什么指标来评价图像分割能力的提升?
目前图像分割算法的评价指标都是基于IOU的,IOU直接强调的是面积,而面积对于图斑来说是区分度非常差的特征。对于很多形状复杂的自然目标来说,IOU大但是形状和结构则相去甚远,因此基于IOU的评价指标对于强调形状和结构没有任何价值。但是目前并没有形状和结构特征的描述方法,仿佛陷入了进退两难的境地。其实不难看出,如果边界是准确的,那么将准确的边界连接起来就能形成准确的分割。边界的少量错位是在所难免的,因此在评价边界的准确性时需要允许一定程度的错位。但是若果边界有缺失,则无论如何也无法恢复形状和结构了。至此,分割算法的一项评价指标就呼之欲出了——边界缺失率。与之对应的另一项评价指标则是——边界冗余率。
【CV现状-3.1】图像分割的更多相关文章
- 【CV现状-3.3】特征提取与描述
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-3.2】纹理与材质
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-3.0】"目标"是什么
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-2】三维感知
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-1】磨染的初心——计算机视觉的现状:缘起
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- Convolutional Neural Networks 笔记
1 Foundations of Convolutional Neural Networks 1.1 cv问题 图像分类.目标检测.风格转换.但是高像素的图片会带来许多许多的特征. 1.2 边缘检测( ...
- <学习opencv>过滤器和卷积
/*=========================================================================*/ // 过滤器和卷积 /*========== ...
- 深度学习与CV教程(14) | 图像分割 (FCN,SegNet,U-Net,PSPNet,DeepLab,RefineNet)
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...
- 计算机视觉--CV技术指南文章汇总
前言 本文汇总了过去本公众号原创的.国外博客翻译的.从其它公众号转载的.从知乎转载的等一些比较重要的文章,并按照论文分享.技术总结三个方面进行了一个简单分类.点击每篇文章标题可阅读详细内容 欢迎关注 ...
随机推荐
- [Odoo12基础教程]之开发过程中可能出现的问题
可能出现的问题 更改代码后无变化 当你对代码进行更改之后,发现页面并没有变化,那么请尝试依次以下几种办法: 1.重启项目: 2.升级模块: 3.在开发者模式下刷新本地模块列表: 4.给data列表添加 ...
- 【Luogu P3379】LCA问题的倍增解法
Luogu P3379 题意:对于两个节点,寻找他们的最近公共祖先. 一个显而易见的解法是对于每一个节点我们都往上遍历一遍,记录下它每一个祖先,然后再从另一个节点出发,一步一步往上走,找到以前记录过第 ...
- Flow入门初识
Flow是facebook出品的JavaScript静态类型检查工具. 由于JavaScript是动态类型语言,它的灵活性也会造成一些代码隐患,使用Flow可以在编译期尽早发现由类型错误引起的bug, ...
- 阿里云上万个 Kubernetes 集群大规模管理实践
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 汤志敏,阿里 ...
- 为NLog自定义LayoutRenderer
长话短说 前文<解剖HttpClientFactory,自由扩展HttpMessageHandler>主要想讲如何扩展HttpMessageHandler, 示例为在每个Http请求中的 ...
- hospital:广西大学生计算机设计大赛
html 当时做到的就是这些了 <!DOCTYPE html><html lang="en"><head> <title>病人信息查 ...
- GO富集分析示例【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- Python面试180道题
版权声明:本文为CSDN博主「CSDN学院官方账号」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/csd ...
- 【django后端分离】rbac组件(文件源代码+使用)
1:用户,角色,权限,菜单表设计 from django.db import models # 用户菜单 class UserMenu(models.Model): title = models.Ch ...
- openstack网络(四)-虚机流量分析
几种网络名词解释 使用LinuxBridge时虚机流量分析 VLAN FLAT Local VXLAN 使用OVS时虚机流量分析 几种网络名词解释 1.local网络:local网络是与其他网络和节点 ...