张卫正,崔俊杰,任建军,张伟伟,李灿林
(1.郑州轻工业大学 计算机与通信工程学院,河南 郑州 450002;2.郑州轻工业大学 艺术设计学院,河南 郑州 450002)
裂纹瓷的釉面布满小裂纹,纹路线条不规则,呈块状分布,形成了独具风格的装饰[1]。裂纹釉与窑变花釉的产生具有偶然性,釉面龟裂原是烧成瓷器的一种缺陷,但匠人总结规律、经验,调节釉和坯的膨胀系数,制作纹路清晰、独居美感的裂纹釉[2]。裂纹一般分为釉填充型与覆盖型两大类型。前者是在已烧成的釉的裂纹中填充煤烟、墨汁等物质,使纹路呈现棕、褐、黑等色调。后者是先将制品施上底色釉,烧成后再在上面覆盖颜色釉,经煅烧,覆盖色釉呈现裂纹,露出底釉的颜色[3]。
图像处理技术可实现快速、无损的陶瓷器检测与分析,降低了人工劳动强度。随着计算机技术的发展,逐渐应用于陶瓷的器型及纹饰的数字化检测与分析。张静[4]分析了瓷器放置位置及图像采集间隔角度,并进行图像去噪和图像修正;采用SIFT 和MSER 算法提取特征点并进行特征匹配,通过改进的多波段融合算法对配准后的图像进行无缝拼接,最终获得立体瓷器的完整清晰的二维平面图案。王明哲[5]提出了基于局部几何特征学习的碎片断面提取和碎片拼接重组方法,这种基于学习的框架在提取器皿碎片的关键几何数据方面优于常用的经典方法。
胡世国[6]采用边缘检测和图像增强等方法对陶瓷面砖的纹饰进行处理,通过Matlab 软件编程来实现,具有速度快、精度高等优点。肖梦辉等[7]对陶瓷瓶内壁图像进行光照和去噪处理,利用图像增强提高内壁图像的对比度,通过图像分割和连通域算法标记检测裂纹,能准确地检测出条形、横向和纵向的内壁裂纹。张力等[8]通过图像处理技术和Matlab 软件搭建了检测陶瓷瓶裂纹的仿真系统,快速准确地检测陶瓷瓶内壁缺陷。李强[9]对陶瓷瓦的红色通道图像进行预处理,然后采用主成分分析法重构陶瓷瓦图像,将两者进行插值处理,最后通过二值化和形态学处理提取裂纹的参数,可检测复杂背景干扰的陶瓷瓦裂纹。邱永德[10]采用空域和小波域混合滤波对陶瓷制品图像进行去噪处理,提取微缺陷裂纹区域,描述模型LoG 梯度加权Haar-like 特征,训练裂纹检测分类器实现了微缺陷裂纹目标无损检测。
采用图像处理方法分析陶瓷器图像的颜色、纹理特征,辅助实现对古陶瓷的瓷片分类、釉色分析、瓷釉识别、气泡分析及古瓷器鉴定,提高了检测和分类的准确率,弥补了传统检测方法的不足。但在基于颜色和纹理等信息进行陶瓷器开片方面的实验研究很少;结合瓷器器型进行图像采集和处理获取平面展开图,可更好地用于纹饰等外部特征的分析与鉴别。
本文以具有裂纹釉的龙泉青瓷茶杯为研究对象,提取瓷器的多个侧面图像。采用Harris 角点检测方法提取图像中的角点,然后进行图像配准和拼接,将多侧面图像拼接为一个完整的展开图像;通过图像灰度化、二值化及形态学细化处理,将裂纹进行三维显示,为裂纹的形态学展示和拓扑分析提供了支撑,提高了自动化程度,为开片陶瓷器的检测分析提供了技术支持,具有较强的创新性和实用性。
为了获得多视角的龙泉青瓷茶杯的柱面图像,搭建采集箱。采集箱内部的顶面装有两条平行的LED 灯带,灯带亮度可调节,由移动电源通过USB 端口供电,背面和底面铺设黑色背景布。茶杯放置在由深圳康信技术有限公司生产的旋转台MT200RLxx 上,旋转台直径为20 cm,转速为20—68 s/圈,最大承重20 kg,电源输入电压为110—220 V。通过优质的无刷程控电机和精密的齿轮结构可遥控控制旋转台转动的顺逆方向、转速及转动角度,旋转台采用工业级ABS 材质,不易变形。
图1 图像采集装置Fig.1 Image acquisition device
将华为Mate10 Pro 手机夹持在相机三脚架(品牌为嘉华彩 3520)上,调整高度和朝向,对放置于旋转台中心的茶杯进行视频录制,如图1 所示。视频的帧速率设定为30 fps,每帧大小为1920×1080像素,设定旋转台的转速为20 s/圈。通过Matlab软件将视频的前600 帧分别转存为JPG 格式的图像,如图2(a)所示。将每个茶杯图像的中心线向左右两侧延伸70 像素,并作为感兴趣区域进行裁剪,如图2(b)所示。
图2 图像采集及剪切Fig.2 Image acquisition and cutting
角点在图像处理领域常为两条边缘的交点或邻域内具有两个主方向的特征点;角点检测用于特征提取、目标匹配和三维重建等[11-12]。Harris 角点检测是特征点检测的基础,采用移动窗口计算邻近像素点灰度差值判断角点、边缘及平滑区域。其中,关键流程包括图像灰度化、计算差分图像、高斯平滑、计算局部极值及确认角点[13-14]。
Harris 算法通过计算点的曲率及梯度来检测角点,对亮度和对比度的变化不敏感,具有旋转不变性、尺度不变性、较高的鲁棒性和计算效率。Harris 算法的核心是利用局部窗口在图像上进行移动判断灰度发生的变化,两个方向具有较大变化的点即为角点;没有发生变化就不存在角点;如果窗口只在某一个方向移动时发生较大的变化,则该点可能位于一条直线上。通过公式1 判断角点。
其中,[u,v]是窗口的偏移量;M为协方差矩阵,如公式2 所示。
其中,(x,y)是像素坐标;w(x,y)是窗口函数,最简单情形就是窗口内的所有像素所对应的权重系数均为1;Ix为在x方向的梯度;Iy为在y方向的梯度。M 的特征值都比较大时,即窗口中含有角点;特征值一个较大,一个较小,窗口中含有边缘;特征值都比较小,窗口处在平坦区域。
采用Matlab 中的rgb2gray()函数将RGB 图像转换为灰度图像,便于计算灰度图像中的梯度变化。通过函数语句[xp,yp,value]=harris(input_image,sigma,thd,r)检测Harris 角点。其中,输入参数input_image 表示输入灰度图像;sigma 表示平滑高斯的标准偏差;r 表示非极大值抑制中考虑的区域半径;输出参数xp 表示角点的x 坐标;yp表示角点的y 坐标;value 表示角点处的R 值。如图3 所示,即为对相邻的两个图像帧进行角点检测的效果。
由于通过Harris 算法检测得到的关键点较多,直接计算会增加运算量和误差。需要相对均匀的筛选出特征明显的关键角点。Matthew 提出了自适应非极大值抑制 (Adaptive Non-Maximal Suppression,ANMS)的方法来择优选取特定数量的关键点[15-16]。先选取评分较高的候选点组成集合S。对S中的每个点xi,寻找它的响应能作为区域最大值的区域半径ri,即
其中,xj∈S。将找到的ri降序排列,选取前50 个元素对应的点,即为自适应非极大值滤波后得到的关键点。xi是上一步得到的关键点的2 维坐标,S 是所有关键点的集合,如图4 所示。
图3 角点检测Fig.3 Corner detection
图4 筛选关键角点Fig.4 Screen key corners
对图像做适度的高斯模糊,以关键角点为中心,取40×40 像素的区域。将该区域降采样至8×8的大小,生成一个64 维的向量。对向量做归一化处理,每个关键点都用一个64 维的向量表示,于是每幅图像分别得到了一个500×64 的特征矩阵。
从两个图像的50 个特征点中筛选出配对的点。筛选的方法是先计算50 个特征点两两之间的欧氏距离,按照距离由小到大排序。通常情况下,选择距离最小的一对特征向量配对。仅仅观察最小距离并不能有效筛选配对特征点,而用最小的距离r1和第二小的距离r2的比值可以很好地进行筛选。使用的阈值是r1/r2<0.5。经过筛选后的配对特征点如图5 所示。
图5 筛选后的配对特征点Fig.5 Matching feature points after screening
关键点的匹配使用Random Sample Consensus(RANSAC)算法。以一幅图像为基准,每次从中随机选择8 个点,在另一幅图像中找出配对的8 个点。用8 对点计算得到一个单应性变矩阵,将基准图中剩余的特征点按照单应性矩阵变换投影到另一幅图像,统计配对点的个数。
重复上述步骤2000 次,得到准确配对最多的一个单应性矩阵。至此,两幅图像的投影变换关系已经找到。
在做图像投影前,要先新建一个空白画布。比较投影后两幅图像的2 维坐标的上下左右边界,选取各个方向边界的最大值作为新图像的尺寸。同时,计算得到两幅图像的交叉区域。在两幅图像的交叉区域,按照交叉溶解(cross-dissolve)的方法制作两块如图6 所示的蒙版,3 个通道的像素值再次区间内递减(递升)。效果如图6 所示。
将相邻的图像依次进行拼接,最终合成茶杯完整的侧面图像,如图7 所示。
图6 相邻两个图像拼接的效果图Fig.6 The effect of stitching two adjacent images
图7 依次拼接形成的完整的侧面图像Fig.7 The complete side image formed by successive stitching
借鉴张卫正等[17]所提出的通过统计像素值进行图像裁剪方法,对完整的茶杯拼接图像进行裁剪并保留裂纹区域。采用Matlab 中的rgb2gray()函数进行图像灰度化,通过直方图分析发现图像的灰度值较多的集中在中间区域,将该区域的灰度值通过灰度插值的方式扩展为0—255 的值域。增强了动态显示范围,更有利于后续的二值化处理。采用Matlab 工具箱中的函数im2bw 结合阈值(threshold)变换法把灰度图像转换成二值图像,其中threshold 由graythresh 函数获得。
采用bwmorph(BW,operation,n)对二值图像进行数学形态学中的细化处理。其中,BW 为二值化图像;形态学处理类型operation 为 'thin'(即细化算子);n 为Inf(无穷大),将一直对该图像做形态学细化处理直到图像不再细化,如图8 所示。
图8 裂纹的骨架细化Fig.8 Frame detailing of porcelain cracks
保存该细化图像。细化线由裂纹的像素点构成,将组成细化线的像素点进行圆柱面卷曲,从不同的视角对裂纹点进行显示,如图9 所示。从而实现裂纹点的三维显示及重建。
图9 瓷器裂纹的三维显示Fig.9 Three-dimensional display of porcelain cracks
为了评价测量精度,采用人工拼接方法,通过Matlab 将所采集的旋转平台上的茶杯视频转换成图像帧(600 帧),分析旋转平台的转速为20 S/周及手机视频的帧速率为30 fps。分析得到,相邻两帧之间的位移为3 个像素,从第一帧图像开始,截取图像中茶杯的中部的第602—604 列,作为合成图像的第 1—3 列;依次截取下一帧图像的第602—604 列,顺序连接到合成图像中,直至第600帧图像,完成合成图像的拼接,如图10 所示。
图10 人工拼接的茶杯侧面图像Fig.10 The side image of the artificially stitched teacup
图像帧中圆柱形茶杯直径约为508 像素,周长应为1596 像素;而采用手工拼接的方法得到的茶杯圆柱面拼接图像长度为1800 像素,其拼接精度可以简单的衡量为88.67 %(即1596 与1800 的比值)。本文所提出的图像拼接方法得到的拼接图像的长度为1697 像素,其拼接精度为94.05 %(即1596 与1697 的比值)。
为确定该算法的泛化能力,使用同类型但釉色有差异的10 个样本裂纹瓷杯进行图像采集和拼接,如图11 所示。
对本文所提出的拼接方法效果做评估,如表1所示。拼接精度达到93 %以上,具有较高的精度和有效性。
图11 采用本文所提出的方法得到裂纹瓷杯的拼接图像Fig.11 Mosaic image of the cracked porcelain cup using the method proposed in this article
表1 图像拼接的精度评定Tab.1 Accuracy evaluation of image mosaic
将彩色裂纹图像转换为黑白细化图像,少数的细化线存在断裂的现象。究其原因,应该是采集视频的光线有顶部的两个LED 灯带提供,使得底部照明强度略低于顶部。虽经过图像二值化及扩展动态显示范围,光照不均还是产生了影响。后续要采用自适应校正算法处理光照不均匀的问题,也要结合滤波算法在尽量保留图像细节特征的条件下对图像的噪声进行抑制。
通过视频帧的裁剪及Harris 角点检测及图像拼接,获得了完整的茶杯侧面拼接图像,为后续的釉色分析及瓷器纹理建模及识别提供了基础。通过常用的图像灰度化及二值化处理获得。裂纹的二值化图像,由于图像较大及裂纹像素点较多(十多万个像素点)不便于三维显示及分析。本文采用形态学中的细化算法对裂纹进行骨架细化,便于后续进行裂纹的形态学显示和拓扑分析。本文对裂纹图像的处理及分析所需时间短,具有实时性和鲁棒性,应用于茶杯等裂纹瓷的分析具有一定的实用价值。
本文以具有裂纹釉的龙泉青瓷茶杯为研究对象,提取瓷器的多个侧面图像。采用Harris 角点检测、图像配准和拼接,将多侧面图像拼接为一个完整的展开图像。精度达到了93 %以上,高于手工拼接的精度。通过图像灰度化、二值化及形态学细化处理,将裂纹进行三维显示,可为后续的裂纹形态学显示和拓扑分析提供支撑。本文的处理流程提高了裂纹瓷图像拼接的自动化程度,为裂纹瓷及其他开片瓷器的图像拼接、纹理检测及裂纹三维分析提供支持,具有较强的创新性和实用性。