【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技术指南文章汇总
前言 本文汇总了过去本公众号原创的.国外博客翻译的.从其它公众号转载的.从知乎转载的等一些比较重要的文章,并按照论文分享.技术总结三个方面进行了一个简单分类.点击每篇文章标题可阅读详细内容 欢迎关注 ...
随机推荐
- Hadoop运行模式
Hadoop运行模式 (1)本地模式(默认模式): 不需要启用单独进程,直接可以运行,测试和开发时使用. 即在一台机器上进行操作,仅为单机版. 本地运行Hadoop官方MapReduce案例 操作命令 ...
- Java基础面试题及答案(六)
异常 74. throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是 ...
- Gzip,BZip2,Lzo,Snappy总结
gzip,bzip2,lzo,snappy是hadoop中比较常见的文件压缩格式,可以节省很多硬盘存储,以下是Gzip , BZip2 , Lzo Snappy 四种方式的优缺点 和使用场景 Gzip ...
- sql server建库建表(数据库和数据表的常用操作)
数据库和数据表 (开发常用 操作) 一,数据库的创建 一个SQLServer 是由两个文件组成的:数据文件(mdf) 和日志文件(ldf),所以我们创建数据库就是要为其指定数据库名.数据文件和日志文件 ...
- PHP随机生成中国人姓名的类
PHP随机生成类 <?php /*rndChinaName.class.php*/ Class rndChinaName { private $arrXing,$numbXing; privat ...
- 华为云WeLink:智能工作空间,联接无限想象
[中国,上海,2019年9月19日] 在HUAWEI CONNECT 2019期间,华为办公应用装备部部长王俊先生代表华为云介绍WeLink--企业专属的智能工作空间.WeLink源于华为数字化办公实 ...
- HC大会,华为联合合作伙伴发布一站式物联网IoT开发工具小熊派BearPi
传统的物联网产品开发步骤复杂,涉及硬件开发.软件开发.云端开发等众多流程.而且产品的开发周期长.开发成本高.产品稳定性不佳.维护成本高.而物联网设备本身市场竞争激烈,价格低,设备更新迭代快,所以在保证 ...
- java.lang.ClassNotFoundException: com.demo.search.extractAbstract.service.ExtractAbstractServiceHandler
在利用 Spring 对 thrift 进行集成时,出现错误: avax.servlet.ServletException: Servlet.init() for servlet search-nlp ...
- 如何利用 Open Live Writer 在本地发布WordPress博客文章
[导读] Open Live Writer是由Windows Live WriterWriter更名而来,是由微软推出的一款能够免费使用的博客写作软件. Open Live Writer 可以支持大多 ...
- OC 与js 互相调用
参考文章 iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码) 参考文章 http://www.jianshu.com/p/fd378c6d70c0 利用苹果原生的JavaScriptC ...