基于图像分割的船舶涂装轮廓检测方法技术领域
本发明涉及图像处理技术领域,具体指一种基于图像分割的船舶涂装轮廓检测方
法。
背景技术
在造船工业中,船体框架一般由若干块加工后的钢板焊接而成,为了防止钢板被
腐蚀,提高船体的外观质量,在焊接之前会对钢板进行喷涂作业,涂层数量根据需要,通常
会有2-5层。在焊接过程中,焊接产生的高温会损毁焊接区域周围的涂装,在焊接完成后,损
坏的涂装要被打磨掉并重新喷涂。目前,在国内造船厂中,这些工作仍采用人工完成:工人
们首先把损坏的涂装全部打磨掉,然后沿着上一次打磨的区域一层一层地向外开坡口,直
到把所有的涂层显示出来为止。
实现涂装修补的自动化,同时加强涂装作业无人化的开发研究是提高造船行业生
产力、降低成本的有效手段。使用非结构自动化设备(如爬壁机器人)代替人工在船舶表面
工作,自动搜寻涂装缺陷位置,自动修补涂装,看起来是一种非常理想的解决方案,但现有
的自动化设备缺乏一些核心算法的支持,常用的轮廓检测算法所检测出的轮廓点重复度
高、准确性差、断裂,无法满足准确定位的要求,也就无法使自动化设备准确的找到需要修
补涂装的精确轮廓,无法实现涂装修补的自动化与无人化。进一步,在船舶涂装轮廓检测
中,检测到的轮廓点必须是连续的,轮廓的数量必须是既定的,这些是实现涂装修补自动化
的前提条件之一。目前常见的轮廓检测方法一般基于图像灰度的变化来判断图像中的点是
否属于轮廓点,使用这些方法检测到的点可能不连续,包含大量非轮廓点,轮廓的数量也是
不能设定的。
发明内容
本发明的目的在于克服现有技术存在的缺失和不足,提出一种用于船舶涂装的多
阀值轮廓检测方法,考虑到涂装图像的区域性明显,适合图像分割,本发明设计了一种基于
图像分割的轮廓检测算法,把各层涂装区域分别提取到一个涂装二值图像中,再从中检测
并筛选轮廓,最后验证了该方法的效果。
一种基于图像分割的船舶涂装轮廓检测方法,包括步骤:
图像输入;图像预处理;图像分割;提取涂装二值图像;图像形态学滤波;提取涂装
二值图像轮廓;筛选轮廓;输出以像素坐标表示的轮廓点。
图像预处理
图像预处理分为两步:首先把输入图像转为单通道的灰度图像;然后对灰度图像
中值滤波。中值滤波器对图像进行着像素处理,当处理每个像素时,会考虑该像素周围一定
区域内的像素,把它们按照灰度值的大小排序,选取灰度值的中值来代替当前像素的灰度
值。中值滤波可以起到图像平滑的作用,而且对消除椒盐噪声等图像噪声十分有效。
图像分割和提取涂装二值图像
以附图2为例,这是一幅典型的船舶涂装轮廓灰度图像,根据灰度可以把图像分为
6个区域,中间的圆形区域1为钢板,区域2-6分别为洋红涂层、灰色涂层、白色涂层、红色涂
层、紫红涂层,所有涂层都以灰度方式呈现,这样就可以用5个阈值把图像分割为6个区域,
每个区域中的像素具有相同的灰度值。目前已有很多学者通过研究得到了一些多阈值图像
分割的算法,它们的基本思路都是给定一个目标函数f(t1,t2,…,tN)。其中t1,t2,…,tN为阈
值,N为阈值数量,在区间[0,L-1](L为图像的灰度级)选取t1,t2,…,tN,使f取最大值或最
小值。
Otsu方法是一种常用的图像分割方法,它把图像的最大类间方差对应的阈值作为
图像分割的最佳阈值。Otsu方法适用于单阈值图像分割,但也可以推广到多阈值,Otsu方法
所使用的最大类间方差对分割附图2所示这类区域性明显的图像有着良好的效果。
多阈值Otsu方法的计算式为
式中,fotsu为最大类间方差,即Otsu方法的目标函数;K=N+1为图像被N个阈值分
割的区域的个数;Ck为第k个分割区域中灰度值的集合;pi为灰度值i在图像中出现的概率;
mG为图像灰度平均值。fotsu是以分割阈值t1,t2,…,tN为自变量的函数,把各函数在灰度值区
间[0,L-1]的最大值对应的阈值作为最优分割阈值。
为了获得最优分割阈值,传统的求解过程遍历所有可能的t1,t2,…,tN,分别计算
它们对应的类间方差并通过比较获得最大类间方差和它对应的最优阈值。这种穷举法的计
算复杂度为O(LN)。随着阈值数量的增加,计算复杂度成指数增长。常见的灰度级为L=256,
当N>5时,在当前主流PC上的计算时间和内存消耗已经难以接受,所以需要提高计算效率。
针对快速求解函数在指定区间上的最值问题,很多学者通过研究得出一些智能优
化算法。其中粒子群优化算法作为一种简单、全局优化能力强的智能优化算法,在多阈值图
像分割中得到了广泛的应用。
粒子群优化算法又称PSO(particle swarm optimization)算法,适用于求解连续
非线性函数在搜索空间中的最值问题。PSO算法是一种基于种群的智能搜索算法,种群中的
每个个体可看作为搜索空间中的一个无质量和体积的粒子,每个粒子的位置代表搜索空间
中的一个潜在解,在搜索空间中以一定的速度飞行,粒子通过对环境的学习和调整,根据个
体与群体的飞行经验来动态调整飞行速度,从而使群体逐渐移入搜索空间的更好区域。种
群中的每个粒子的优劣由一个适应值(fitness value)表示,即待优化的函数在该粒子所
表示的潜在解上的值。每个粒子还具有一个速度决定潜在解的更新速度和方向,有一个全
局的最大速度来限制每个粒子的速度。
PSO算法首先随机生成一个种群,然后通过迭代来更新每个粒子的速度和位置,搜
寻最优解。在每一次迭代中,粒子通过两个极值来更新自己的位置:粒子本身找到的最优解
(pbest)和种群目前找到的最优解(gbest)。粒子更新的数学式为:
vid=ωvid+c1r1d(pid-xid)+c2r2d(pnd-xid); (4)
χid=xid+vid。 (5)
式中,pid,xid和vid分别为粒子i的历史最优解、当前位置和当前速度的第d维分量;
pnd为全局最优解的第d维分量;ω为惯性权值;c1和c2为加速因子;r1d和r2d为区间[0,1]上的
随机数。c1和c2通常为2.0;ω通常随着迭代次数的增加,线性地由0.9变为0.4。
利用多阈值Otsu方法分割图像和PSO算法加速求解过程,可以快速获得图像分割
的最优阈值组合。
在输入图像质量良好的情况下,这些阈值把每层涂装区域分割出来。然后利用以
下的方法提取二值图像:最优分割阈值组合确定了若干灰度值区间,对于每一个灰度值区
间,定义一个规则,如果预处理后的图像中的某个像素灰度值在该区间中,把该像素的灰度
值设定为255。反之,设为0,把结果存储在一个新的图像中,这样就得到了一些涂装二值图
像,每个涂装二值图像中包含一个分割区域。
在图像分割中需要注意的一个问题:在船舶涂装中,只有相邻的涂层之间的灰度
保证是不相同的,不相邻涂层的灰度可能会相同。如果出现这种情况,分割阈值数量需设定
为不同灰度的涂层的个数,这样会有某些提取的二值图像中包含大于1个的涂层,这在轮廓
提取和筛选中须考虑。
图像形态学滤波
上一步中得到的粗略涂装二值图像中可能会有噪声,而且由于每一层涂层的灰度
值分布可能不均匀,涂装二值图像中可能会出现一些孔洞或点,直接进行轮廓提取会产生
大量的无关轮廓。图像形态学滤波可以滤掉大部分干扰。
图像形态学处理的基本操作,是利用一个结构元对图像进行腐蚀或膨胀。腐蚀把
小于或等于结构元的图像细节从图像中滤除了。在本例中,把面积小的干扰滤除,并消除了
涂层上微小的突出;但腐蚀是一种收缩或细化操作,也会缩小二值图像中涂层的区域。与腐
蚀不同,膨胀则会增长或粗化二值图像中的物体,在本例中,填补了小于或等于结构元的孔
洞,修补了涂层的断裂;但这也会增大涂装二值图像中涂层的区域。
如果先对一个结构元图像进行腐蚀,然后再用相同的结构元对图像进行膨胀,作
开运算。反之,如果用一个结构元先对图像进行膨胀,然后再用相同的结构元对图像进行腐
蚀,作闭运算。腐蚀把小于或等于结构元的图像细节从图像中滤除。开运算一般会平滑物体
的轮廓、断开较窄的狭颈并消除细的突出物;闭运算同样也会平滑轮廓的一部分,但与开运
算相反,它通常会弥合较窄的间断和细长的沟壑,消除小的孔洞,填补轮廓线中的断裂。
在本例中,得到的二值图像中的涂层很少发生断裂,因此用同一个结构元先对图
像进行开运算再进行闭运算,可以有效地消除图像中的干扰。
涂装二值图像轮廓提取和筛选
上一步处理后的涂装二值图像已经滤除了大部分干扰,接着从这些涂装二值图像
中提取轮廓,使用一个结构元腐蚀涂装二值图像,然后用原图像减去腐蚀后的图像即可得
到连续的轮廓。本方法保证了提取到的轮廓为连续的像素点组成。由于形态学滤波不能保
证所有的干扰都被滤除,因此可能检测到无关的轮廓。可以假设无关轮廓的面积相对于涂
层轮廓都比较小,根据这个假设,比较检测到轮廓的面积,去除面积比较小的轮廓,保留面
积最大的前K个轮廓,K为要检测的轮廓的数量,然后根据保留的轮廓的面积及平均像素坐
标来判断它们的位置并按位置排序,把排序后的轮廓作为算法的结果返回。
算法实施效果
目前常见的轮廓检测算法一般基于图像灰度的变化来寻找轮廓点,据此将图像轮
廓分为台阶型、斜坡型和屋顶型三种类型。灰度在某一点的导数是衡量灰度在该点变化率
的指标,因此导数通常被用作检测轮廓的工具。在基于导数的轮廓检测算子中,比较基础的
有R oberts算子、Prewitt算子、Sobel算子和Laplace算子。这些算子以一个或多个模板对
图像滤波为基础,而未结合图像特性和抑制噪声。一些更先进的轮廓检测算子有Marr-
Hildreth算子和Canny算子,其中Canny算子是最优秀的。
这些方法在医学影像、缺陷检测等领域得到了广泛应用。附图3为Canny算子检测
图2所得到的轮廓与本发明算法检测附图2所得轮廓的对比图。
从图中可以看到由于基于灰度变化的轮廓检测算法容易受到噪声的干扰,常用的
轮廓检测算法得到了很多无关的轮廓点、并出现了轮廓断裂和轮廓重合的现象,轮廓拟合
度也不尽如人意,因此不符合船舶涂装轮廓检测的要求。而右侧本发明算法所检测到的轮
廓,轮廓清晰、连贯,效果非常理想,通过相机标定等方法可以得到十分精确的实际涂装轮
廓尺寸和涂装修补坐标,为实现涂装修补的自动化打下了坚实的基础。
附图说明
图1为本发明基于图像分割的轮廓检测方法的基本流程框图;
图2典型的船舶涂装轮廓灰度图像;
图3为本发明一个实施例Canny算法轮廓(左)与本发明算法轮廓(右)。
具体实施方式
以下结合附图和实施例对本发明作进一步的描述
基于图像分割的轮廓检测方法,首先对输入图像预处理,然后按照涂层的数量对
图像进行多阈值分割,把各层涂装区域分别提取到一个涂装二值图像中,分别对得到的涂
装二值图像进行形态学滤波,在涂装二值图像中提取并筛选轮廓,输出以像素坐标表示的
轮廓点。
本方法的基本流程图(如附图1所示)。
一、图像预处理
1.将输入图像转换为单通道灰度图像。如果输入的是三通道彩色图像,使用整数
算法将其转换为单通道灰度图像。
2.使用中值滤波器对图像进行降噪。使用穷举法进行测试,选取N*N像素邻域构造
中值,即按顺序列出每个像素N*N个像素邻域值队列,求出队列中间值代替该像素。
二、图像分割和提取涂装二值图像
1.利用多阈值Otsu方法分割图像,并利用PSO算法加速求解过程,快速获得图像分
割的最优阈值组合,使用阈值把每层涂装区域分割出来。
首先说明Otsu方法,对图像求解灰度直方图,即将图像灰度分为0-255级,每个像
素都有一个灰度级别,统计每个灰度级别的像素个数。根据统计的结果求出pi与mG,选定分
割阈值N(分层数);选取一组灰度阈值t1,t2,…,tN,(阈值取值大小为0-255,且t1<t2<…<
tN),阈值0-t1确定一个分割区域,t1-t2确认一个分割区域,依次类推共确认N+1个分割区
域;Ck为第k个分割区域中灰度值的集合,利用公式(2)求出属于该分割区域中的各个灰度
级别像素在所有像素中出现的概率即区域灰度概率pk,利用公式(3)求出区域灰度平均值
mk;将区域灰度平均值与图像灰度平均值的差值平方得到该分割区域的方差,依次求出所
有区域的方差;利用公式(1),将各个分割区域的方差分别与对应的区域灰度概率相乘,再
将所有的乘积相加即为灰度阈值t1,t2,…,tN(某N个具体值)的类间方差;之后变换灰度阈
值t1,t2,…,tN的取值求出相应的类间方差;最后将所有的类间方差进行比较,其中的最大
值即为所求的最优阈值组合。
接着使用PSO算法加速灰度阈值t1,t2,…,tN求解最优阈值的过程,对本发明而言,
PSO算法的粒子为N维粒子,各维分别为t1,t2,…,tN向量,位置分别为x1,x2,…,xN潜(向量长
度为0-255灰度值,意义如Otsu方法所述),潜在解即为在该位置时使用Otsu方法求得的类
间方差;随机生成多个粒子,使其在空间中移动,粒子的初始位置为随机值,在当前位置时,
粒子计算潜在解并与粒子本身找到的最优解(pbest)和种群目前找到的最优解(gbest)进
行比较,当潜在解优于最优解时以潜在解代替最优解,之后利用公式(4)更新粒子速度,利
用公式(5)更新粒子当前位置,接着进行新一轮迭代,当粒子更新位置时重复上述的计算和
比较最优解过程;当到达最大迭代次数时粒子停止运动,此时的最优解(gbest)即为最大类
间方差,向量位置长度即为最优分割阈值。
通过试验发现,当分割阈值越大时,PSO算法的优势越明显,当阈值大于5时,使用
PSO算法求解最优阈值的效率是使用穷举法求解的100倍以上。
2.最优分割阈值组合确定了若干灰度值区间,通过灰度值区间,将图像灰度像素
转换为二值像素,得到分别包含各层涂装的多张涂装二值图像。
由1中得到一组最优阈值,首先处理第一个灰度阈值,拷贝图像,并将在这个阈值
之前的所有像素设置为0(黑色),在这个阈值之后的多有像素设置为255(白色),这样便得
到了仅包含第一层的涂装二值图像;恢复原图像,再次拷贝图像,处理第二个阈值,将在这
个阈值之前的所有像素设置为0(黑色),在这个阈值之后的多有像素设置为255(白色),这
样便得到了仅包含第二层的涂装二值图像;以此方式得到N+1张图像,其中第N张与第N+1张
图像形状相同,颜色相反,滤去第N+1张图像。
三、图像形态学滤波
1.使用图像形态学方法对上一步所得到的涂装二值图像滤波,使用开运算平滑轮
廓、消除突出物,使用闭运算消除空洞、填补断裂,从而消除图像噪声。
四、轮廓提取和筛选
1.利用形态学滤波的方法提取涂装二值图像轮廓,使用结构元腐蚀拷贝涂装二值
图像,再用原涂装二值图像减去腐蚀过的图像即可得到连续的某个涂层的轮廓。
2.为了防止得到无关的轮廓,使用排序的方法过滤检测到的无关轮廓,去除面积
比较小的轮廓,保留面积最大的前K个轮廓,并按面积及坐标位置排序。
3.最后得到各个涂层以像素坐标表示的轮廓点,作为结果返回给使用方法的用
户。
综上所述,本发明作为实现涂装修补自动化的前提条件之一,为实现涂装修补的
自动化,加强涂装作业无人化的开发研究是提高造船行业生产力、降低成本提供了基础技
术条件。实验证明,该方法不仅满足船舶涂装轮廓检测的要求,而且操作简单,计算效率高。