遗传算法图像分割
A. 图像分割算法总结
图像处理的很多任务都离不开图像分割。因为图像分割在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的分割精度上,都不能满足当前的需求。之前大致总结过计算机视觉的相关知识点,既然目前在讨论移动端模型,那后面就分模块总结下移动端模型的应用落地吧。
由于时间实在有限。这里并没有针对每个算法进行详细的讲解。后续我会从基础的机器学习算法开始总结。
B. 跪求图像分割snake算法详细解释_基于遗传算法的图像分割
这个不太熟悉,下面是转载,希望能帮到你:
图像分割有那些方法区别如何
图像分割有那些方法区别如何?
图像分割是图像处理领域中的一个基本问题。从大的方面来说,图像分割方法可大致分为基于区域的方法、基于边缘的方法、区域与边缘相结合的方法,以及在此基础上的、采用多分辨率图像处理理论的多尺度分割方法。基于区域的方法采用某种准则,直接将图像划分为多个区域,基于边缘的方法则通过检测包含不同区域的边缘,获得关于各区域的边界轮廓描述,达到图像分割的目的,而区域与边缘相结合的方法通过区域分割与边缘检测的相互作用,得到分割结果。
·1基于区域的图像分割兄旅蚂
图像分割中常用的直方图门限法、区域生长法、基于图像的随机场模型法、松弛标记区域分割法等均属于基于区域的方法。
(1)直方图门限分割就是在一定的准则下,用一个或几个门限值将图像的灰度直方图(一维的或多维的)分成几个类,认为图像中灰度值在同一个灰度类内的象素属于同一个物体,可以采用的准则包括直方图的谷底、最小类内方差(或最大类间方差)、最大熵(可使用各种形式的熵)、最小错误率、矩不变、最大繁忙度(由共生矩阵定义)等。门限法的缺陷在于它仅仅考虑了图像的灰度信息,而忽略了图像中的空间信息,对于图像中不存在明显的灰度差异或各物体的灰度值范围有较大重叠的图像分割问题难以得到准确的结果。
(2)区域生长是一种古老的图像分割方法,最早的区域生长图像分割方法是由Levine等人提出的。该方法一般有两种方式,一种是先给定图像中要分割的目标物体内的一个小块或者说种子区域,再在镇闷种子区域基础上不断将其周围的像素点以一定的规则加入其中,达到最终将代表该物体的所有像素点结合成一个区域的目的;另一种是先将图像分割成很多的一致性较强,如区域内像素灰度值相同的小区域,再按一定的规则将小区域融合成大区域,达到分割图像的目的,典型的区域生长法如T.C.Pong等人提出的基于小面(facet)模型的区域生长法,区域生长法固有的缺点是往往会造成过度分割,即将图像分割成过多的区域。
(3)基于图像的随机场模型法主要以Markov随机场作为图像模型,并假定该随机场符合Gibbs分布。使用MRF模型进行图像分割的问题包括:邻域系统的定义;能量函数的选择及其参数的估计;极小化能量函数从而获得最大后验概率的策略。邻域系统一般是事先定义的,因而主要是后面两个问题。S.Geman,首次将基于Gibbs分布的Markov随机场模型用于图像处理,详细讨论了MRF模型的邻域系统,能量函数,Gibbs采样方法等各种问题,提出用模拟退火算法来极小化能量函数的方法,并给出了模拟退火算法收敛性的证明,同时给出了MRF模型在图像恢复中的应用实例。在此基础上,人们提出了大量的基于MRF模型的图像分割算法。
(4)标记法(labeling)就是将图像欲分割成的几个区域各以一个不同的标号来表示,对图像中的每一个象素,用一定的方式赋之以这些标记中的某一个,标记相同的连通象素就组成该标记所代表的区域。标记法常采用松弛技术来给图像中的各个象素赋予标记,一般可分为离散松弛、概率松弛、模糊松弛等三种。Smith等人最先采用松弛标记技术进行图像分割,以后人们又提出了大量的图像松弛分割算法。另外,松弛标记不仅可用于图像分割,还可用于边缘检测、目标识别等。
·2基于边缘的图像分割
基于边缘的分割方法则与边缘检测理论紧密相关,此类方法大多是基于局部信息的,一般利用图像—阶导数的极大值或二阶导数的过零点信息来提供判断边缘点的基本依据,进一步还可以采用各种曲线拟合技术获得划分不同区域边界的连续曲线。根据检测边缘所采用的方式的不同,边缘检测方法可大致分为以下几类:基于局部图像函数的方法、图像滤波法、基于反应—扩散方程的方法、基于边界曲线拟合的方法及活动轮廊(activecontour)法等。
(1)基于局部图像函数羡埋法的基本思想是将灰度看成高度,用一个曲面来拟合一个小窗口内的数据,然后根据该曲面来决定边缘点.
(2)图像滤波法是基于如下理论的:即对滤波算子与图像的卷积结果求导,相当于用算子的同阶导数与图像做卷积。于是,只要事先给出算子的一阶或二阶导数,就可以将图像平滑滤波与对平滑后的图像求一阶或二阶导数在一步完成。因而,这种方法的核心问题是滤波器的设计问题。
常用的滤波器主要是高斯(Gaussian)函数的一阶和二阶层数,Canny认为高斯函数的一阶导数是他求得的最优滤波器的较好似近,一般采用Laplacian算子求高斯函数的二阶导数得到LOG(LaplacianofGaussian)滤波算子,该算子由计算机视觉的创始人Marr首先提出.近年来研究的滤波器还有可控滤波器(steerable),B-样条滤波器等。
问题提出:图像滤波的方法是基于对平滑滤波后的图像求其一阶导数的极大值或二阶导数的过零点来决定边缘的,必然遇到的问题是,一阶的极大值或二阶导数的过零点对应的像素点是否真的就是边缘点?
(3)基于反应—扩散方程的方法是从传统意义上的Gaussian核函数多尺度滤波来的。由于本人阅读文献有限,这里不多做介绍了。
(4)基于边界曲线拟合的方法用平面曲线来表示不同区域之间的图像边界线,试图根据图像梯度等信息找出能正确表示边界的曲线从而得到图像分割的目的,而且由于它直接给出的是边界曲线而不象一般的方法找出的是离散的、不相关的边缘点,因而对图像分割的后继处理如物体识别等高层处理有很大帮助。即使是用一般的方法找出的边缘点,用曲线来描述它们以便于高层处理也是经常被采用的一种有效的方式。L.H.Staib等人在文献中给出了一种用Fourier参数模型来描述曲线的方法,并根据Bayes定理,按极大后验概率的原则给出了一个目标函数,通过极大化该目标函数来决定Fourier系数。实际应用中,先根据对同类图像的分割经验,给出一条初始曲线,再在具体分割例子中根据像数据优化目标函数来改变初始曲线的参数,拟合图像数据,得到由图像数据决定的具体曲线。这种方法比较适合于医学图像的分割。除了用Fourier模型来描述曲线外,近年来还研究了一些其它的曲线描述方法,如A.Goshtasby详细介绍了用有理Gaussian曲线和曲面来设计和拟合二维及三维形状的方法。R.Legault等人给出了一种曲线平滑的方法。M.F.Wu等人给出了一种双变量三维Fourier描述子来描述三维曲面。
(5)活动轮廓(又称Snake模型)是一种可变形模型(或称弹性模型),最初由Kass等人提出。活动轮廓法边缘检测认为图像中各区域的轮廓线应为平滑曲线,各轮廓线的能量由内部能量及外部能量(包括图像能量及控制能量)两部分组成,其中内部能量表征了轮廓线的光滑约束,图像能量由轮廓线上对应点的灰度、梯度和角点曲率半径(若该点为角点)等决定,而控制能量则代表了图像平面上固定点对轮廓线的吸引或排斥作用。采用变分法求解该能量函数的极小值就可得到与区域边界相对应的轮廓线。
C. 机器人视觉系统中图像分割技术传统方法概论1
姓名:寇世文
学号:21011110234
【嵌牛导读】:随着人工智能技术的不断发展,智能机器人领域也得到了空前的发展。尤其是深度神经网络广泛应用于视觉系统中后,取得了许多很明显的成效。对于自主移动机器人来说,视觉系统有着十分重要的作用,而图像分割技术更是在这个系统中担任着十分重要的角色。传统的图像分割技术基本上已经能够将图像的前景和后景分隔开来,但是近年来随着深度学习算法的发展,人们开始将其应用到图像分割中,提出了很多分割网络,也达到了很好的分割效果。在实现图像分割的基础上,人们还使得分割具有了语义类别和标签,就是现在的语义分割。本文在介绍了语义分割的基础上又引出了新的任务分割场景,实例分割和全景分割。并且介绍了最近研究的热点三维点云的语义分割问题,阐述了其实现的必要性。
【嵌牛鼻子】智能机器人,图像分割、语义分割、计算机视觉
【嵌牛提问】图像分割技术的传统常见方法
【嵌牛正文】
一、引言
计算机视觉,即computer vision,就是通过计算机来模拟人的视觉工作原理,来获取和完成一系列图像信息处理的机器。计算机视觉属于机器学习在视觉领域的应用,是一个多学科交叉的研究领域,其涉及数学、物理、生物、计算机工程等多个学科。
计算机视觉的主要应用有无人驾驶、人脸识别、无人安防、车辆车牌识别、智能传图、3D重构、VR/AR、智能拍照、医学图像处理、无人机、工业检测等。人驾驶又称自动驾驶,是目前人工智能领域一个比较重要的研究方向,让汽车可以进行自主驾驶,或者辅助驾驶员驾驶,提升驾驶操作的安全性。人脸识别技术目前已经研究得相对比较成熟,并在很多地方得到了应用,且人脸识别准确率目前已经高于人眼的识别准确率。安防一直是我国比较重视的问题,也是人们特别重视的问题,在很多重要地点都安排有巡警巡查,在居民小区以及公司一般也都有保安巡查来确保安全。车辆车牌识别目前已经是一种非诚成熟的技术了,高速路上的违章检测,车流分析,安全带识别,智能红绿灯,还有停车场的车辆身份识别等都用到了车辆车牌识别。3D重构之前在工业领域应用比较多,可以用于对三维物体进行建模,方便测量出物体的各种参数,或者对物体进行简单复制。计算机视觉还有很多应用,随着技术的发展,应用领域也会越来越多。在工业领域的应用,在机器人技术方面的应用等。
对于传统的图像分割过程,通常可以分为5个步骤,即特征感知、图像预处理、特征提取、特征筛选和推理预测与识别。通过研究发现,在视觉的早期的发展过程中,人们对于图像中的特征并没有表现出足够的关注。且传统的分割过程是把特征提取和分类分开来做的,等到需要输出结果的时候再结合到一起,可想而知其实现的困难程度。
在深度学习算法出来之后,卷积神经网络被广泛应用于计算机视觉技术中,也因此衍生出了很多的研究方向。深度学习主要是以特征为基础来进行比对,如在人脸识别方面,使用卷积神经网络分别对两张人脸进行不同位置的特征提取,然后再进行相互比对,最后得到比对结果。目前的计算机视觉的主要研究方向有图像分类、目标检测、图像分割、目标跟踪、图像滤波与降噪、图像增强、风格化、三维重建、图像检索、GAN等。本文主要是针对图像分割这一领域,进行简要的概述。
图像分割技术是计算机视觉领域的个重要的研究方向,是图像语义理解的重要一环。图像分割是指将图像分成若干具有相似性质的区域的过程,从数学角度来看,图像分割是将图像划分成互不相交的区域的过程。近些年来随着深度学习技术的逐步深入,图像分割技术有了突飞猛进的发展,该技术相关的场景物体分割、人体前背景分割、人脸人体Parsing、三维重建等技术已经在无人驾驶、增强现实、安防监控等行业都得到广泛的应用。
二、发展现状
近来已经有很多学者将图像分割技术应用到移动机器人的控制中,能够做到在机器人运动的同时定位、构建地图并分割出不同的前景和后景,使视觉系统扫描到的图像具有语义信息。并有学者也致力于分割得更为准确和精细,不仅能够做到区分不同类的物体,也能够实现对同类的不同物体的分类,甚至可以做到在此基础上加上对背景的分割。由于我们生活的世界是三维空间,还有学者将图像场景还原到三维中,然后使用相关方法对整个三维场景进行分割。作为计算机视觉的研究中的一个较为经典的难题,图像分割这一领域也越来越被人们所关注。
首先是传统的图像分割方法。在传统分割方面,人们使用数字图像处理、拓扑学、数学等方面的知识来进行图像分割。虽然现在的算力逐渐增加且深度学习不断发展,一些传统的分割方法所取得的效果不如深度学习,但是其分割的思想仍有很多值得我们去学习的。
第一种方法是基于阈值的图像分割方法。这种方法的核心思想是想根据图像的灰度特征来给出一个或多个灰度阈值,将此阈值作为一个标准值与图像中的每个像素逐一进行比较。很容易想到,通过这个逐一比较过程能够得到两类结果,一类是灰度值大于阈值的像素点集,另一类是灰度值小于阈值的像素点集,从而很自然地将图像进行了分割。所以,不难发现,此方法的最关键的一步就是按照一定的准则函数来得到最佳灰度阈值,这样才能够得到合适的分类结果。值得一提的是,如果图像中需要分割的目标和背景分别占据了不同的灰度值甚至是不同的等级,那使用这种方法会得到很好的效果。并且,假如对于一张图像的处理,我们只需要设定一个阈值时,可以将其称为单阈值分割。但是图像中如果不止一个目标,即有多个目标需要进行提取的时候,单一阈值分割就无法做到将它们都分割开来,此时应选取多个阈值对其进行处理,这个分割的过程为多阈值分割。总的来说,阈值分割法有着其独特的特点,其计算简单、效率较高。但是,由于这种方法只考虑的是单个像素的灰度值及其特征,而完全忽略了空间特征,这也就导致了其对噪声比较敏感且鲁棒性不高。
第二种方法是基于区域的图像分割方法。这种方法具有两种基本形式:一种是区域生长,这种分割方法是从单个像素出发,逐渐将相似的区域进行合并,最终得到需要的区域。另一种方法是直接从图像的全局出发,一点一点逐步切割至所需要的区域。区域生长指的是,给定一组种子像素,其分别代表了不同的生长区域,然后让这些种子像素逐渐合并邻域里符合条件的像素点。如果有新的像素点添加进来,同样把它们作为种子像素来处理。
区域分裂合并的分割过程可以说是区域生长的逆过程,这种方法是从图像的全局出发通过不断分裂得到各个子区域,然后提取目标的过程。此外,在此过程中,还需要合并前景区域。
在区域分割方法中还有一种分水岭算法。受启发于分水岭的构成,这种分割方法将图像看作是测地学上的拓扑地貌,这样图像中每一个像素点对应的海拔高度可以用该点的灰度值来表示。分水岭的形成过程实际上可以通过模拟浸入过程来实现。具体做法是,在每个局部极小值的表面都刺穿一个小孔,然后把模型慢慢浸入水中,随着水慢慢浸入其中,分水岭就随之形成了。
第三种方法是基于边缘检测的分割方法。边缘检测的思想就是试图通过检测不同物体的边缘来将图像分割开来,这种方法是人们最先想到的也是研究最多的方法之一。如果我们将图片从空间域变换到频率域中去,其中物体的边缘部分就对应着高频部分,很容易就能够找到边缘信息,因此也使得分割问题变得容易。边缘检测的方法能够实现快而且准确的定位,但是其不能保证边缘的连续性和封闭性,且当一幅图像的细节信息过多时,其就会在边缘处产生大量的细碎边缘,在形成完整的分割区域时就会有缺陷。
第四种图像分割方法结合了特定的工具。这里所说的特定工具是各种图像处理工具以及算法等,随着图像分割研究工作的深入,很多学者开始将一些图像处理的工具和一些算法应用到此工作中,并取得了不错的结果。小波变换在数字图像处理中发挥着很重要的作用,它能够将时域和频域统一起来研究信号。尤其是在图像边缘检测方面,小波变换能够检测二元函数的局部突变能力。其次是基于遗传算法的图像分割,遗传算法主要借鉴了生物界自然选择和自然遗传机制的随机化搜索方法。其模拟了由基因序列控制的生物群体的进化过程,其擅长于全局搜索,但是局部搜多能力不足。将遗传算法应用到图像处理中也是当前研究的一个热点问题,在此选择这种方法的主要原因是遗传算法具有快速的随机搜索能力,而且其搜索能力与问题的领域没有任何关系。
除此之外,还有基于主动轮廓模型的分割方法,这种方法具有统一的开放式的描述形式,为图像分割技术的研究和创新提供了理想的框架。此方法也是对边缘信息进行检测的一种方法,主要是在给定图像中利用曲线演化来检测目标。
D. 有无跟遗传算法和图像处理相关的参考书目推荐,最好有pdf版的
以下是一些有关遗传算法和图像处理的参考书目推荐,其中一些可能有 PDF 版本可用:
《遗传算法基础及应用》(Genetic Algorithm: Basic Theory and Applications)(英)戴维·戈德伯格着,唐飞等译,斗宽机械工业出版社,2003 年。这本书深入浅出地介绍了遗传算法的原理和实现,以及它们在各种应用中的使用。
《遗传算法+图像处理》(Genetic Algorithm + Image Processing)(英)马克·舍纳斯着,刘扬等译,电子工业出版社,2014 年。这本书结合了遗传算法和图像处理的应用,介绍了如何使用遗传算法来解决图像处理中的问题。
《基于遗传算法的图像处理优化设计研究》(王庆龙,2009)这是一本博士论文,介绍了如何使用遗传算法来进行图像处理的优化衡销戚设计。该论文详细介绍了遗传算法的咐陵原理和实现,并提供了大量实验结果和数据分析。
《图像处理基础及其应用》(Digital Image Processing)(英)Gonzalez, Rafael C. and Woods, Richard E.着,唐学智等译,电子工业出版社,2010 年。这是一本经典的图像处理教材,包括图像处理的基础知识和常见技术,如滤波、变换和分割等。
《图像处理的数学原理》(Mathematical Principles for Optical Imaging and Reconstruction)(英)James R. Fienup着,北京航空航天大学出版社,2014 年。这本书介绍了图像处理中的数学原理,包括线性代数、波动光学和最小二乘等。
《数字图像处理(第三版)》(Digital Image Processing (3rd Edition))(英)Rafael C. Gonzalez and Richard E. Woods着,丁汉译,机械工业出版社,2008 年。这本书是一本经典的数字图像处理教材,讲述了数字图像处理的基本原理和算法。
希望这些书目能对你有所帮助。