前言:
而今看官们对“二值图像分水岭算法”大概比较关注,看官们都需要了解一些“二值图像分水岭算法”的相关知识。那么小编也在网摘上网罗了一些有关“二值图像分水岭算法””的相关内容,希望我们能喜欢,同学们快快来学习一下吧!【研究背景】
泡沫材料中应用最广的是泡沫金属材料,已应用于汽车工业、航空航天业和建筑行业等。与普通金属材料相比,泡沫金属材料内部分布大量孔隙,使其具有独特的物理与力学性能,但想进一步了解其性能,必须明确表征孔隙微观结构,明确内部固相与气相排列分布情况。孔隙的横截面积、孔穴棱边周长、费雷特直径、形态系数都是准确量化泡沫金属孔隙结构的重要参数。由此,对泡沫金属内部孔隙结构的表征,具有十分重要的意义。研究者已做了许多有关泡沫金属表征的相关研究,包括:涡流检测(Eddy Current Testing,ET)、气体吸附测定技术(Stephen Brunauer Paul Emmett Edward Teller,BET)、扩散波光能谱分析(Diffusing Wave Spectroscopy, DWS)、SEM图像分析法、汞侵入孔隙测量法。
太原科技大学王陆才教授团队联合中北大学在《特种铸造及有色合金》期刊上发表了“基于图像处理的泡沫金属孔结构分析”一文,文章尝试提出了一种基于Python语言图像处理技术的泡沫金属孔隙结构分析方法,并结合改进的Transformer算法对图像进行质量恢复后,再使用图像处理技术进行参数自动标定和批量化快速计算,最后以数据的形式输出在Csv文件中。旨在于探索数据驱动下的材料快速表征,以自编码的图像处理技术尝试革新传统的材料表征方法,在提升泡沫金属表征效率的同时提升表征工程化应用水平,在无损试验样本的前提下,做到低成本、高精度、高效率表征泡沫金属的孔结构。
【研究方法】
所采取的试验方法是基于Python语言编译的图像处理技术,研究对象是使用渗流法制备的泡沫铝块,其底部直径为15 mm、高为14 mm,平均孔径为0.5 mm。将泡沫金属孔结构分析表征与计算机图像处理技术相结合,将图像处理技术服务于材料结构表征。首先对泡沫铝样品进行计算机断层扫描(Computed Tomography,CT),将得到的三维图像模型作为源文件。对样品的三维图像进行任意角度的切割、切片(本研究选用了X-Y面、X-Z面),以此得到样品内部的二维图像样本。接着使用中值滤波算法对图像样本进行去噪处理,在对图像样本中的孔隙轮廓进行提取后,利用大津算法对提取出的轮廓部分做灰度变化生成孔隙二值化图像样本。为解决低质量图像造成图像分割歧义的问题,对孔隙二值化图像样本使用了一种改进的Transformer算法,旨在恢复高质量图像,以避免因图像模糊造成的错误识别。对二值化图像进行质量恢复后使用分水岭算法进行图像分割,捕获孔隙特征后自动输出数据在Csv文件中。
孔隙的横截面积会影响泡沫金属材料对液体的浸润与非浸润特性以及对液体与气体的吸附能力与催化能力。孔隙的形状系数经傅里叶变换及迭代法分析后可以对泡沫金属材料的弹性模量进行计算。除此之外,泡沫金属孔结构的横截面积S、孔穴棱边周长C、费雷特直径D、形状系数F会直接影响材料的体积密度、强度、吸波效率、抗渗透性、导热性等性质。所以本次试验选择对以上参数指标进行表征。
【研究内容】
1样本图像采样
试验的源文件是利用Compact-225型工业CT机对泡沫铝成品进行断层扫描试验,并且输出STL格式的三维模型文件。由ParaView获取切面图,其提供了交互式3D界面,可以做到切割、剪裁、轮廓、探测、Glyphing和分布式数据处理。本研究采用的是Python语言的开源版本。首先将扫描样本得来的STL文件导入到Paravie程序中,并且添加Data Axes Grid,参考坐标数据见表1与表2。
表1 沿X-Y面切割参数表
表2 沿X-Z面切割参数表
对标网格线对样本模型的X-Y平面以及X-Z平面使用Clip功能进行横向以及纵向的切割,得到切割后的样本再使用Slice功能,对切割样本进行切面,便可以得到X-Y平面以及X-Z平面取样图,输出为Png格式的图片文件,以便于后续处理,其过程见图1。
(a)泡沫金属三维图像 (b) 泡沫金属三维图像建立坐标轴
(c)X-Z切片图 (d)X-Y切片图
图1 切面图取样过程
2切面图像处理
为进一步提高切面图像的对比度,采用图像滤波、增强等方式对获取的切面图像做初步处理,保证后续图像轮廓识别工作及二值化图像的清晰度。试验选用中值滤波,其是一种非线性的数字滤波技术,在去除噪声的同时可以保留图像边界信息。选取一个包含奇数点的矩阵框W,将这个矩阵框扫描在待处理图像上,把矩阵框中所含的像素点按像素灰度级的升降顺序排列,取位于中间的灰度值来替代该点的灰度值,核心步骤是将图像矩阵化后,求矩阵中间的中值,见图2。对X-Y平面以及X-Z平面切面图像处理的过程见图3,噪声前后对比情况见图4。完成滤波处理后,噪点有了显著的改善,图像的质量得到了提升。
(a)处理前的矩阵 (b)中值化后的矩阵
图2 矩阵中值化
(a)X-Z切片图 (b)高通量过滤及中值滤波 (c)X-Z切片去噪后的结果
(d)X-Y切片图 (e)高通量过滤及中值滤波 (f)X-Y切片去噪后的结果
图3 切面图滤波处理
(a)X-Z切片部分噪声标定 (b) X-Z切片去噪声效果部分标定 (c)X-Y切片部分噪声标定 (d) X-Y切片去噪声效果部分标定
图4 去噪声对比
物体的轮廓通常包含了其形状信息,轮廓的有效提取对于图像分割、目标识别与目标跟踪等后期处理起着至关重要的作用。首先利用Canny算法实现了对轮廓边缘的检测,Canny算法是一种从异类视觉对象中提取关键结构数据并显著减少待计算数据的算法。其原理是计算待测图像的横向和纵向的梯度值与梯度方向,用非极大值抑制非边界的像素点位,最后通过对比其他未连接到强边缘的轮廓,来完成边缘的检测。接着对输入的轮廓图像进行灰度化处理,图像灰度化的目的是为了简化矩阵,提高图像处理运算速度。根据分量重要性不同,将R、G、B 3个分量以不同的权值进行加权平均。在图像灰度化后,对得到的灰度图像做阈值化处理,即以某种既定的规则依次将图像像素处理成0或1并输出。随后调用Python的Cv package的FindContours函数对阈值化后的图片进行轮廓识别,使用DrawContours函数对输入图像上做原地覆盖操作,完成图像轮廓的绘制。绿色部分为提取到的孔隙轮廓,见图5。
(a)X-Z切片去噪图 (b) X-Z轮廓提取图 (c)X-Y切片去噪图 (d) X-Y轮廓提取图
图5 轮廓提取结果
图像二值化选用Otsu算法,二值化算法关键在于如何选择与衡量差别的标准,而在Otsu算法中,选择使用的是利用最大类间方差来衡量差别。
(a) X-Z轮廓提取图 (b) X-Z二值化图
(c)X-Y轮廓提取图 (d) X-Y二值化图
图6 图像二值化过程
3图像质量恢复
目前图像处理领域,常用的图像恢复方法是基于卷积神经网络(CNN)对图像做处理。尝试使用了一种改进的Transformer算法用于图像恢复工作,该算法主要由3部分组成,见图7。
图7 图像恢复流程
同时,在每一个Block后还加了一层卷积,以达到特征加强。最后将提取到的表层与深层特征数据传输到重建部分,开始重构建高质量图像,其神经网络总架构见图8。
图8 神经网络总架构
表层特征提取部分使用卷积网络从低质量图像中提取表层特征信息集,输入单张低质量图像(Low Quality Picture),其实质是输入通道数Cin = 3,输出特征通道数Cout = 93,步长Stride = 1,填充为Pading = 1的卷积神经网络。卷积层在前期的图像处理中能够输出较为稳定的结果,也可以将低维图像空间映射到高维特征空间。
深层特征提取部分主要是由Conv + Bn + Silu(CBS)模块(见图9)与6个Residual Swin Transformer Block(RSTB)串联的卷积层组成。
图9 CBS模块
每个RSTB(Residual Swin Transformer Block)内部由6个串联的Swin Transformer Layer(STL)和1个卷积层构成(见图10)。
图10 RSTB模块
STL(Swin Transformer Layer)是由Layer Norm块与MSA块与Layer Norm块与MLP块串联而成(见图11)。
图11 STL模块
图12是原图与经过Transformer算法图像处理过的图像效果对比图,其中图12c与图12d是放大400%后的细节对比图,可见在视觉效果上图12d的清晰度更佳。
(a) 图像质量恢复前 (b)图像质量恢复后
(c)质量恢复前图像400%放大 (d) 质量恢复后图像400%放大
图12 效果对比图
表3与表4是使用Brenner算法、Tenengrad算法、Energy算法、SMD算法等4种方法分别对原图和处理后的X-Y面、X-Z面切面图像增强结果做出量化评价,并将图像评价得分做归一化处理,便于效果对比。
表3 X-Y切面图像评分表
表4 X-Z切面图像评分表
根据表3与表4可知,对于4种图像效果评价算法,处理后图像的评分均大于原图的评分,量化结果与视觉观察结果一致,其中SMD算子归一化分差值最高达0.77,视觉效果增强约1.6倍。
试验使用的分割算法是基于Python-OpenCv的一种改进的分水岭算法(Watershed Algorithm)。算法首先需要输入一个像素值为32Bit的标记图像,每个非零像素均为一个标签,其次对标记图像中的已知区域部分像素做标记,最后参考初始标签确定其他像素所属的区域。图像分割结果见图13。
(a)X-Z切片图 (b) X-Z切片孔隙分割图 (c)X-Y切片图 (d) X-Y切片孔隙分割图
图13 图像分割结果
4孔隙特征与面相对密度
调用ContourArea函数输入图像的轮廓点来计算分割出的孔隙图像的面积、调用ArcLength函数输入图像轮廓顶点,并且用布尔类型判断轮廓曲线是否闭合。检测过程见图14,检测程序内置数据清洗功能,检测结果输出到Csv文件中,并做可视化输出。
(a)泡沫铝切面二值化图 (b)孔隙分割图 (c)计算机视觉定位孔隙
图14 孔隙识别过程
孔隙特征识别出的孔隙横截面积、孔隙周长与费雷特直径数据分布不均,本试验引用箱形图来描述孔 隙特征的分布情况,见图15。箱型图的上下边缘分别表示数据组的极大值与极小值。
(a)孔隙截面面积分布图 (b)孔隙周长分布图 (c)孔隙形状系数分布图 (d)费雷特直径分布图
图15 孔隙特征分布
孔隙长度、孔隙宽度与形状系数的特征关系见图16。
图16 特征关系图
典型特征孔隙图像提取与表征,提出的方法在146个孔隙中精确提取了面积最大孔隙、面积最小孔隙和孔形最接近圆形的目标图像,其表征情况见表5。被识别孔隙图像中最大面积为4.72 mm²,最小面积为0.02 mm²,最接近圆形的孔隙形态其形状系数高达0.9021。
表5为被测孔隙中典型孔隙的表征参数。
表5 典型孔隙表征
对孔隙图像做灰度处理后,在孔隙底层面,其灰度最小、颜色最浅,非孔隙部分,颜色最深、,灰度最大。计算机图像处理中,图像的大小主要是通过像素来表达, 但图像内部的颜色的深浅是由灰度值来表示的,不同灰度值由不同的阈值直接控制,阈值的取值范围是,阈值为0,代表图像亮度在最深处,随阈值的不断增大,亮度由深变浅。对于多孔图像面相对密度的计算,关键在于针对图像中不规则的孔隙像素面积与整体面积对比,由此得出的比值即为多孔图像相对密度,结果见表6。
表6 相对密度测试结果
【讨论】
在JMicroVision软件中新建项目并导入待检测的图像,拖拽选择目标孔隙区域,选择2D Measurement功能,利用非规则曲线工具对目标孔隙的轮廓进行绘制并要保证绘制的轮廓形成闭合的曲线。检测过程见图17。
(a)泡沫铝截面二值化图 (b)孔隙放大图 (c)手工标定图
图17 JMicroVision孔隙表征过程
表7为与JMicro Vision孔隙表征试验的对比情况
表7 结果及耗时对比
【结论】
提出了一种基于Python语言图像处理技术的泡沫铝孔隙表征方法。该方法通过将泡沫铝样品的三维CT图像进行切片处理获得的图像作为源图像,先进行预处理,后对孔隙轮廓做提取,再对提取出的孔隙部分进行二值化处理,随后使用一种改进的Transformer算法对图像进行高质量恢复,最后对孔隙横截面积与周长、费雷特直径、形状系数等孔隙的特征进行表征,并可根据需求提取出特定的孔隙。将基于Python语言的图像处理技术应用于泡沫金属孔隙表征,实现了对泡沫金属相对密度批量化精确计算与高效率输出。较传统方法,在准确率与效率两方面均有显著提升,单孔隙的检测效率提高了82.3545 s,检测结果精确至万分位。
标签: #二值图像分水岭算法