① 遥感图像分类法
图像分类是与图像信息提取和增强不同的遥感图像处理中另一重要的方面,与图像增强后仍需人为解译不同,它企图用计算机做出定量的决定来代替人为视觉判译步骤。因此,分类处理后输出的是一幅专题图像。在此图像中,原来图像中的每一个象元依据不同的统计决定准则被划归为不同的地表覆盖类,由于是一种统计决定,必然伴随着某种错误的概率。因此,在逻辑上的合理要求是,对每一个象元所做的决定,应是使整个被分类面积即对大量单个象元的分类的某个错误判据为最小。
以下是几种常用的遥感图像分类方法:
1.最大似然分类(maximum likelihood classification)
最大似然分类是一种基于贝叶斯判别准则的非线性监督分类方法,需要知道已知的或确定的训练样区典型标准的先验概率P(wi)和条件概率密度函数P(wi,x)。P(wi)通常根据各种先验知识给出或假定它们相等:P(wix)则是首先确定其分布形式,然后利用训练样本估计其参数。一般假设为正态分布,或通过数学方法化为正态分布。其判别函数集为:
Di(x)=P(wix),i=1,2,…,m (2-2)
如果Di(x)≥ Dj(x),则x属于wi类。其中,j≠i,j=1,2,…,m。m为类别数。
从上述最大似然分类的说明看,其关键就在于已知类别的定义,先验概率的确定,参与分类的变量的好坏和结果误差评价。直到现在,最大似然分类至少还有两个缺点:一是事先大量人力已知光谱类的选择和定义:二是需要长时间的计算机分类计算时间。实际上这也使得最大似然分类法遥感应用受到了限制,因此许多人专门研究改进算法以便解决和缩减图像分类的时间,提高分类的精度。Solst和Lillesand(1991)为了解决已知类别定义消耗大量人力的缺点,发展了半自动训练法进行已知光谱类的定义。Fabio Maselli等(1992)利用Skidmore和Tumer提出的非参数分类器计算出各已知类训练集的先验概率,然后将它们插入常规的最大似然分类过程中进行分类。该方法融合了非参数和参数分类过程的优点,提高了分类的精度。
通常情况下,地形会影响到训练集数据,这样训练集光谱数据就偏离了最大似然分类的假设条件正态分布,从而常规的最大似然分类法在地形起伏较大的地区效果并不太好。为了解决这一问题,C.Conese和G.Maracchi和F.Maselli(1993)提出了一种改进的最大似然分类算法,即去掉每一类数据集中与第一主成分相关的信息(地形信息)然后再进行分类。通过试验,这种方法是有效的,分类精度得到了提高。
K.Arai(1993)用光谱和空间信息进行分类改进了最大似然分类方法。该方法简单易行,大大提高了正确分类的概率。C.Conese和Fabio Maselli(1992)用误差矩阵提高最大似然分类面积估计的精度。Irina Kerl(1996)加最大似然分类精度的一种方法,即多概率比较法。他对同一遥感数据的原始波段、主成分和植被指数的22种组合进行了最大似然分类,发现没有一种波段组合的分类能给出图像中所有土地利用类型的精确分类,每一波段组合仅对图像中的一两类土地利用类型分类有效。因此他提出将能有效区分出所要决定的土地利用类型的几个波段组合的分类结果进行组合来进行图像分类,并称这种方法为多概率比较法,这种方法的基础就是图像数据不同波段组合的分类结果之间分类概率大小的比较。应用这种方法提高了分类的精度。
2.最小距离分类(minimum distance classification)
最小距离分类是一种线性判别监督分类方法,也需要对训练区模式样本进行统计分析,是大似然分类法中的一种极为重要的特殊情况。最小距离分类在算法上比较简单,首先需选出要区分类别的训练样区,并且从图像数据中求出各类训练样区各个波段的均值和标准差,然后再计算图像中其他各个象元的灰度值向量到各已知类训练样区均值向量之间的距离。如果距离小于指定的阈值(一般取标准差的倍数),且与某一类的距离最近,就将该象元划归为某类。因此称为最小距离分类。该方法的精度主要取决于已知类训练样区的多少和样本区的统计精度。另外,距离度量的方法不同,分类的结果也不相同,常见的有:
(1)明氏距离(minkowski distance)
中亚地区高光谱遥感地物蚀变信息识别与提取
式中Tij=-Tij。
③经过①②步后,随机象元X被划归为正确的类。
另外,通过对参与计算变量的排序和部分一总和逻辑的考虑,可大大降低该算法计算的时间。与最小距离(欧氏距离)和最大似然分类器相比,整体平均分类器所用时间最少,分类精度与最小距离大致相同,对像农田面积和森林这样的名义类型的分类十分有效。
Haluk Cetin(1996)提出了一种分类方法:类间距离频率分布法(interclass distance frequency dis-tribution),这是多光谱数据非参数分类方法的一种。类间距离频率分布过程简单,是一种有力的可视化技术,它图形地显示多光谱数据和类分布。首先选择感兴趣的类,这些类的统计信息从典型的训练样区可获得。利用类的平均测量矢量计算多光谱数据中每个象元的距离,并存放在一个两维数据分布数组中。选择其他类的训练区,训练区数据的分布通过距离计算可获得。通过可视化地检查结果,建立分类查询表(look-up table),然后利用分类查询表进行多光谱图像数据的分类,具体细节请参见原文。
H.N.Srikanta Prakash等(1996)改进了遥感数据凝聚聚类分析,这是一种基于相互近邻概念,用来进行多光谱数据分类的非参数、层次、凝聚聚类分析算法。该方法定义了围绕象元的感兴趣区域(area of interest around each pixel),然后在它内部寻找分类时初始合并操作需要的k最近邻,将象元的特征值、波段值和象元的相对位置值一起考虑,提出了改进的距离量度,这样,大大减少了计算的时间和内存的需求,降低了分类的误差概率。
Steven E.Franklin和Bradley A.Wilson(1992)设计了3阶段分类器进行遥感图像的分类,它由一个基于四叉树的分割算子、一个高斯最小距离均值测试和一个包括辅助地理网数据和光谱曲线测量的最终测试构成。与最大似然分类技术相比,3阶段分类器的总体分类精度得到了提高,减少计算时间,另外仅需最少的训练样区数据(它们在复杂地形区很难获得)。
② 机器人视觉系统中图像分割技术传统方法概论1
姓名:寇世文
学号:21011110234
【嵌牛导读】:随着人工智能技术的不断发展,智能机器人领域也得到了空前的发展。尤其是深度神经网络广泛应用于视觉系统中后,取得了许多很明显的成效。对于自主移动机器人来说,视觉系统有着十分重要的作用,而图像分割技术更是在这个系统中担任着十分重要的角色。传统的图像分割技术基本上已经能够将图像的前景和后景分隔开来,但是近年来随着深度学习算法的发展,人们开始将其应用到图像分割中,提出了很多分割网络,也达到了很好的分割效果。在实现图像分割的基础上,人们还使得分割具有了语义类别和标签,就是现在的语义分割。本文在介绍了语义分割的基础上又引出了新的任务分割场景,实例分割和全景分割。并且介绍了最近研究的热点三维点云的语义分割问题,阐述了其实现的必要性。
【嵌牛鼻子】智能机器人,图像分割、语义分割、计算机视觉
【嵌牛提问】图像分割技术的传统常见方法
【嵌牛正文】
一、引言
计算机视觉,即computer vision,就是通过计算机来模拟人的视觉工作原理,来获取和完成一系列图像信息处理的机器。计算机视觉属于机器学习在视觉领域的应用,是一个多学科交叉的研究领域,其涉及数学、物理、生物、计算机工程等多个学科。
计算机视觉的主要应用有无人驾驶、人脸识别、无人安防、车辆车牌识别、智能传图、3D重构、VR/AR、智能拍照、医学图像处理、无人机、工业检测等。人驾驶又称自动驾驶,是目前人工智能领域一个比较重要的研究方向,让汽车可以进行自主驾驶,或者辅助驾驶员驾驶,提升驾驶操作的安全性。人脸识别技术目前已经研究得相对比较成熟,并在很多地方得到了应用,且人脸识别准确率目前已经高于人眼的识别准确率。安防一直是我国比较重视的问题,也是人们特别重视的问题,在很多重要地点都安排有巡警巡查,在居民小区以及公司一般也都有保安巡查来确保安全。车辆车牌识别目前已经是一种非诚成熟的技术了,高速路上的违章检测,车流分析,安全带识别,智能红绿灯,还有停车场的车辆身份识别等都用到了车辆车牌识别。3D重构之前在工业领域应用比较多,可以用于对三维物体进行建模,方便测量出物体的各种参数,或者对物体进行简单复制。计算机视觉还有很多应用,随着技术的发展,应用领域也会越来越多。在工业领域的应用,在机器人技术方面的应用等。
对于传统的图像分割过程,通常可以分为5个步骤,即特征感知、图像预处理、特征提取、特征筛选和推理预测与识别。通过研究发现,在视觉的早期的发展过程中,人们对于图像中的特征并没有表现出足够的关注。且传统的分割过程是把特征提取和分类分开来做的,等到需要输出结果的时候再结合到一起,可想而知其实现的困难程度。
在深度学习算法出来之后,卷积神经网络被广泛应用于计算机视觉技术中,也因此衍生出了很多的研究方向。深度学习主要是以特征为基础来进行比对,如在人脸识别方面,使用卷积神经网络分别对两张人脸进行不同位置的特征提取,然后再进行相互比对,最后得到比对结果。目前的计算机视觉的主要研究方向有图像分类、目标检测、图像分割、目标跟踪、图像滤波与降噪、图像增强、风格化、三维重建、图像检索、GAN等。本文主要是针对图像分割这一领域,进行简要的概述。
图像分割技术是计算机视觉领域的个重要的研究方向,是图像语义理解的重要一环。图像分割是指将图像分成若干具有相似性质的区域的过程,从数学角度来看,图像分割是将图像划分成互不相交的区域的过程。近些年来随着深度学习技术的逐步深入,图像分割技术有了突飞猛进的发展,该技术相关的场景物体分割、人体前背景分割、人脸人体Parsing、三维重建等技术已经在无人驾驶、增强现实、安防监控等行业都得到广泛的应用。
二、发展现状
近来已经有很多学者将图像分割技术应用到移动机器人的控制中,能够做到在机器人运动的同时定位、构建地图并分割出不同的前景和后景,使视觉系统扫描到的图像具有语义信息。并有学者也致力于分割得更为准确和精细,不仅能够做到区分不同类的物体,也能够实现对同类的不同物体的分类,甚至可以做到在此基础上加上对背景的分割。由于我们生活的世界是三维空间,还有学者将图像场景还原到三维中,然后使用相关方法对整个三维场景进行分割。作为计算机视觉的研究中的一个较为经典的难题,图像分割这一领域也越来越被人们所关注。
首先是传统的图像分割方法。在传统分割方面,人们使用数字图像处理、拓扑学、数学等方面的知识来进行图像分割。虽然现在的算力逐渐增加且深度学习不断发展,一些传统的分割方法所取得的效果不如深度学习,但是其分割的思想仍有很多值得我们去学习的。
第一种方法是基于阈值的图像分割方法。这种方法的核心思想是想根据图像的灰度特征来给出一个或多个灰度阈值,将此阈值作为一个标准值与图像中的每个像素逐一进行比较。很容易想到,通过这个逐一比较过程能够得到两类结果,一类是灰度值大于阈值的像素点集,另一类是灰度值小于阈值的像素点集,从而很自然地将图像进行了分割。所以,不难发现,此方法的最关键的一步就是按照一定的准则函数来得到最佳灰度阈值,这样才能够得到合适的分类结果。值得一提的是,如果图像中需要分割的目标和背景分别占据了不同的灰度值甚至是不同的等级,那使用这种方法会得到很好的效果。并且,假如对于一张图像的处理,我们只需要设定一个阈值时,可以将其称为单阈值分割。但是图像中如果不止一个目标,即有多个目标需要进行提取的时候,单一阈值分割就无法做到将它们都分割开来,此时应选取多个阈值对其进行处理,这个分割的过程为多阈值分割。总的来说,阈值分割法有着其独特的特点,其计算简单、效率较高。但是,由于这种方法只考虑的是单个像素的灰度值及其特征,而完全忽略了空间特征,这也就导致了其对噪声比较敏感且鲁棒性不高。
第二种方法是基于区域的图像分割方法。这种方法具有两种基本形式:一种是区域生长,这种分割方法是从单个像素出发,逐渐将相似的区域进行合并,最终得到需要的区域。另一种方法是直接从图像的全局出发,一点一点逐步切割至所需要的区域。区域生长指的是,给定一组种子像素,其分别代表了不同的生长区域,然后让这些种子像素逐渐合并邻域里符合条件的像素点。如果有新的像素点添加进来,同样把它们作为种子像素来处理。
区域分裂合并的分割过程可以说是区域生长的逆过程,这种方法是从图像的全局出发通过不断分裂得到各个子区域,然后提取目标的过程。此外,在此过程中,还需要合并前景区域。
在区域分割方法中还有一种分水岭算法。受启发于分水岭的构成,这种分割方法将图像看作是测地学上的拓扑地貌,这样图像中每一个像素点对应的海拔高度可以用该点的灰度值来表示。分水岭的形成过程实际上可以通过模拟浸入过程来实现。具体做法是,在每个局部极小值的表面都刺穿一个小孔,然后把模型慢慢浸入水中,随着水慢慢浸入其中,分水岭就随之形成了。
第三种方法是基于边缘检测的分割方法。边缘检测的思想就是试图通过检测不同物体的边缘来将图像分割开来,这种方法是人们最先想到的也是研究最多的方法之一。如果我们将图片从空间域变换到频率域中去,其中物体的边缘部分就对应着高频部分,很容易就能够找到边缘信息,因此也使得分割问题变得容易。边缘检测的方法能够实现快而且准确的定位,但是其不能保证边缘的连续性和封闭性,且当一幅图像的细节信息过多时,其就会在边缘处产生大量的细碎边缘,在形成完整的分割区域时就会有缺陷。
第四种图像分割方法结合了特定的工具。这里所说的特定工具是各种图像处理工具以及算法等,随着图像分割研究工作的深入,很多学者开始将一些图像处理的工具和一些算法应用到此工作中,并取得了不错的结果。小波变换在数字图像处理中发挥着很重要的作用,它能够将时域和频域统一起来研究信号。尤其是在图像边缘检测方面,小波变换能够检测二元函数的局部突变能力。其次是基于遗传算法的图像分割,遗传算法主要借鉴了生物界自然选择和自然遗传机制的随机化搜索方法。其模拟了由基因序列控制的生物群体的进化过程,其擅长于全局搜索,但是局部搜多能力不足。将遗传算法应用到图像处理中也是当前研究的一个热点问题,在此选择这种方法的主要原因是遗传算法具有快速的随机搜索能力,而且其搜索能力与问题的领域没有任何关系。
除此之外,还有基于主动轮廓模型的分割方法,这种方法具有统一的开放式的描述形式,为图像分割技术的研究和创新提供了理想的框架。此方法也是对边缘信息进行检测的一种方法,主要是在给定图像中利用曲线演化来检测目标。
③ 图象分割有哪三种不同的途径
图象分割有三种不同的途径,其一是将各象素划归到相应物体或区域的象素聚类方法即区域法,其二是通过直接确定区域间的边界来实现分割的边界方法,其三是首先检测边缘象素再将边缘象素连接起来构成边界形成分割。早期的图像分割方法可以分为两大类。一类是边界方法,这种方法假设图像分割结果的某个子区域在原来图像中一定会有边缘存在;一类是区域方法,这种方法假设图像分割结果的某个子区域一定会有相同的性质,而不同区域的像素则没有共同的性质。这两种方法都有优点和缺点,有的学者考虑把两者结合起来进行研究。现在,随着计算机处理能力的提高,很多方法不断涌现,如基于彩色分量分割、纹理图像分割。所使用的数学工具和分析手段也是不断的扩展,从时域信号到频域信号处理,小波变换等等。
图像分割主要包括4种技术:并行边界分割技术、串行边界分割技术、并行区域分割技术和串行区域分割技术。下面是分别对每一项做简单的介绍。
④ 图像分割算法总结
图像处理的很多任务都离不开图像分割。因为图像分割在cv中实在太重要(有用)了,就先把图像分割的常用算法做个总结。
接触机器学习和深度学习时间已经不短了。期间看过各种相关知识但从未总结过。本文过后我会尽可能详细的从工程角度来总结,从传统机器学习算法,传统计算机视觉库算法到深度学习目前常用算法和论文,以及模型在各平台的转化,量化,服务化部署等相关知识总结。
图像分割常用算法大致分为下面几类。由于图像的能量范函,边缘追踪等方法的效果往往只能解决特定问题,效果并不理想,这里不再阐述。当然二值化本身也可以分割一些简单图像的。但是二值化算法较多,我会专门做一个文章来总结。这里不再赘述。
1.基于边缘的图像分割算法:
有利用图像梯度的传统算法算子的sobel,roberts,prewitt,拉普拉斯以及canny等。
这些算法的基本思想都是采用合适的卷积算子,对图像做卷积。从而求出图像对应的梯度图像。(至于为什么通过如图1这样的算子卷积,即可得到图像的梯度图像,请读者复习下卷积和倒数的概念自行推导)由于图像的边缘处往往是图像像素差异较大,梯度较大地方。因此我们通过合适的卷积核得到图像的梯度图像,即得到了图像的边缘图像。至于二阶算子的推导,与一阶类似。优点:传统算子梯度检测,只需要用合适的卷积核做卷积,即可快速得出对应的边缘图像。缺点:图像边缘不一定准确,复杂图像的梯度不仅仅出现在图像边缘,可以能出现在图像内部的色彩和纹理上。
也有基于深度学习方法hed,rcf等。由于这类网络都有同一个比较严重的缺陷,这里只举例hed网络。hed是基于FCN和VGG改进,同时引出6个loss进行优化训练,通过多个层输出不同scale的粒度的边缘,然后通过一个训练权重融合各个层的边缘结果。hed网络结构如下:
可以得到一个比较完整的梯度图像,可参考github的hed实现。优点:图像的梯度细节和边缘完整性,相比传统的边缘算子要好很多。但是hed对于边缘的图像内部的边缘并不能很好的区分。当然我们可以自行更改loss来尝试只拟合外部的图像边缘。但最致命的问题在于,基于vgg的hed的网络表达能力有限,对于图像和背景接近,或者图像和背景部分相融的图片,hed似乎就有点无能为力了。
2.基于区域分割的算法:
区域分割比较常用的如传统的算法结合遗传算法,区域生长算法,区域分裂合并,分水岭算法等。这里传统算法的思路是比较简单易懂的,如果有无法理解的地方,欢迎大家一起讨论学习。这里不再做过多的分析。
基于区域和语意的深度学习分割算法,是目前图像分割成果较多和研究的主要方向。例如FCN系列的全卷积网络,以及经典的医学图像分割常用的unet系列,以及rcnn系列发展下的maskrcnn,以及18年底的PAnet。基于语意的图像分割技术,无疑会成为图像分割技术的主流。
其中,基于深度学习语意的其他相关算法也可以间接或直接的应用到图像分割。如经典的图像matting问题。18年又出现了许多非常优秀的算法和论文。如Deep-Image-Matting,以及效果非常优秀的MIT的 semantic soft segmentation(sss).
基于语意的图像分割效果明显要好于其他的传统算法。我在解决图像分割的问题时,首先尝试用了hed网络。最后的效果并不理想。虽然也参考github,做了hed的一些fine-tune,但是还是上面提到的原因,在我多次尝试后,最终放弃。转而适用FCN系列的网络。但是fcn也无法解决图像和背景相融的问题。图片相融的分割,感觉即需要大的感受野,又需要未相融部分原图像细节,所以单原FCN的网络,很难做出准确的分割。中间还测试过很多其他相关的网络,但都效果不佳。考虑到感受野和原图像细节,尝试了resnet和densenet作为图像特征提取的底层。最终我测试了unet系列的网络:
unet的原始模型如图所示。在自己拍照爬虫等手段采集了将近1000张图片。去掉了图片质量太差的,图片内容太过类似的。爬虫最终收集160多张,自己拍照收集200张图片后,又用ps手动p了边缘图像,采用图像增强变换,大约有300*24张图片。原生unet网络的表现比较一般。在将unet普通的卷积层改为resnet后,网络的表达能力明显提升。在将resnet改为resnet101,此时,即使对于部分相融的图像,也能较好的分割了。但是unet的模型体积已经不能接受。
在最后阶段,看到maskrcnn的实例分割。maskrcnn一路由rcnn,fasterrcnn发展过来。于是用maskrcnn来加入自己的训练数据和label图像进行训练。maskrcnn的结果表现并不令人满意,对于边缘的定位,相比于其他算法,略显粗糙。在产品应用中,明显还不合适。
3.基于图的分割算法
基于深度学习的deepgrab,效果表现并不是十分理想。deepgrab的git作者backbone采用了deeplabv2的网络结构。并没有完全安装原论文来做。
论文原地址参考: https://arxiv.org/pdf/1707.00243.pdf
整体结构类似于encode和decoder。并没有太仔细的研究,因为基于resent101的结构,在模型体积,速度以及deeplab的分割精度上,都不能满足当前的需求。之前大致总结过计算机视觉的相关知识点,既然目前在讨论移动端模型,那后面就分模块总结下移动端模型的应用落地吧。
由于时间实在有限。这里并没有针对每个算法进行详细的讲解。后续我会从基础的机器学习算法开始总结。