1. 引言
筒子纱作为纺织生产过程中重要的生产原材料 [1] [2] ,目前仍然采用人工巡检更换方式进行,这种方式用工成本高,不利于规模化生产。开发换筒机器人的首要工作是设计纱筒纱线余量检测方法,针对实际应用中单一轴方向上旋转的不同类型纱筒,本文开发了一种基于逆投影变换的纱筒纱线余量检测方法。
在纺织企业中,纱筒区域一般包含20到30排纱筒架,每排包括5组纱筒架,每个纱筒架按列分为A、B架,每个架子分为四层并且每层装有一个纱筒,即每排纱筒架装有40个纱筒如图1(a),每组纱筒架装有八个纱筒,且纱筒角度关于加强度对称,如图1(b)所示。这种纱筒安装方法导致在自动检测中出现了几个需要解决的问题:1) 同一个纱筒架上的每个纱筒相对于相机的空间位置不同,通过单一的逆投影变换矩阵不能对多个纱筒进行透视效应矫正;2) 受纱筒材质以及打光条件等影响,纱筒轮廓难以较为完整的提取,最终给纱线余量检测带来较大困难。
目前针对逆投影变换矫正的模型主要有三种:四基准点变换 [3] [4] [5] 、消隐线模型 [6] [7] 以及多点透视模型 [8] [9] 。丁伟利 [10] 等人采用基于四基准点变换模型对QR码进行倾斜矫正,通过QR码三个顶点的几何关系确定逆投影变换的四个基准点,然后根据已知的八组位置信息建立八元一次方程并进行求解,最终得到转换矩阵M的八个元素值(为简化计算量矩阵的第三行第三列元素值设定为1),最后将原图像与转换矩阵相乘得到逆投影变换后的图像,该方法只能针对矩形对象进行逆投影变换矫正,对椭圆形等形状矫正效果差,且在进行变换前需要获取变换对象的四个顶点,这在企业中是难以实现且效率低下;Faugeras [11] 提出分层矫正的方法恢复图像的相似结构,将图像变换矩阵H分解为相似变换矩阵S、仿射变换矩阵A以及纯射影变换矩阵P的乘积,其中矩阵S、A由检测对象角度确定,下三角矩阵P除水平消隐点P(3, 1)和竖直消隐点P(3, 2)外其余元素均为0、1,根据射影几何理论,利用水平和竖直消隐点计算图像平面的消隐线,并恢复图像的仿射机构,该方法需要计算水平与竖直消隐线,计算量较大,且对椭圆形对象变换效果较差;Shapiro LG [12] 利用空间点的透视变换原理提出一种基于三点透视的人脸姿态估计法(Perspective 3-Points Face Pose Estimation, P3P-FPE),将三点透视的姿态估计算法运用在人脸姿态估计上;孙山河 [13] 从建筑领域的实际情形角度对透视变换矩阵以及三点透视等基本内容作了较为全面的推导与论述。
Figure 1. (a) Production layout map; (b) Yarn bobbins on holder
图1. (a) 生产布局图;(b) 纱筒架上的纱筒
为了解决上述问题与挑战,本文提出了一种能够准确提取纱筒纱线轮廓并且精确检测纱线余量的方法。主要工作包括:设计曲率均值高斯卷积核对图形进行卷积,提取纱筒内筒轮廓;对纱筒正面区域进行粗分割,选取正面区域曲率平滑的轮廓点作为拟合点,建立混合贝塞尔曲线进行轮廓拟合;建模分析纱筒透视效应机制,计算纱筒区域方向,选取方向上的四个轮廓点作为变换基准点,计算变换矩阵,对纱筒图像进行逆投影变换;最后计算纱筒内外筒的有效半径,实现对纱筒纱线余量的检测。
2. 材料与方法
2.1. 纱筒内筒轮廓获取
纱筒图像背景复杂,直接通过阈值分割、Blob分析等方法难以准确定位纱筒内筒位置,考虑纱筒内外筒在几何特征上呈现出曲线几何特征,设计针对图像平均曲率的卷积滤波核,对图像进行高斯卷积操作,图像平均曲率计算方法如下:
(1)
(2)
(3)
(4)
(5)
卷积后图像保留下的信息主要是前后排纱筒的内筒区域,通过快速阈值分割得到含有目标纱筒内筒信息的ROI区域,在对ROI区域进行Blob分析,先进行连通域分析再根据区域面积进行筛选,得到纱筒内筒空心区域。为了分割提取纱筒内筒筒壁区域,对卷积滤波前后图像执行图像叠加操作,得到的图像中背景及纹理信息被有效抑制,接着通过分割以及曲线拟合得到纱筒内筒外轮廓。
2.2. 纱筒外轮廓获取
由于纱筒正面所在的平面与相机平面存在旋转角度,因此相机会同时拍摄到纱筒正面以及筒身如图2(a)所示,且受到打光条件的限制,纱筒正面与筒身中间的纱线外轮廓不明显,难以提取如图2(b)所示,因此考虑通过曲线拟合得到纱筒正面区域轮廓。
Figure 2. (a) Front area of yarn bobbin; (b) Edge area of yarn bobbin
图2. (a) 纱筒正面区域;(b) 纱筒边缘区域
2.2.1. 纱筒区域提取
纱筒正面区域与背景部分灰度差增大,这是因为纱筒正面区域得到的光照较多且纱线反光能力相比其他区域较强。但是由于黑色纱筒需要提高正面区域与筒身的对比度,并且筒身的灰度值较低,最终滤波后的黑色纱筒正面区域灰度值偏高,光照最强区域的灰度值甚至接近周围背景像素的灰度值,这对后续算法处理带来极大的干扰,因此对图像的灰度值进行线性变换,使得纱筒区域与背景区域对比度更加明显,线性变换方式如式(6)。
(6)
其中
,
为变换前后图像灰度值,GMax,Gmin分别是图像的最大、最小灰度值,Add是变换的附加偏移值,计算方式如式(7)。
(7)
灰度变换后纱筒区域与背景区域灰度值差异明显,经过阈值分割、连通域分析以及大小、圆度等特征筛选即可得到纱筒区域。
2.2.2. 基于贝塞尔曲线的纱筒正面区域外轮廓提取
完成纱筒区域提取后需要提取纱筒正面区域以便提取纱筒正面纱线轮廓,由于纱筒存在Z轴方向上的旋转,因此纱筒正面区域与纱筒筒身打光效果差异明显如图3所示,最终导致两个区域的颜色饱和度不同。
(a)(b)
Figure 3. (a) Highlight front area; (b) Highlight body area
图3. (a) 高光正面区域;(b) 高光筒身区域
综上考虑将纱筒区域从RGB颜色空间转为HSV颜色空间以便区域分割。对转换颜色空间后的图像进行阈值分割,大致分割出纱筒与筒身区域,在进行Blob分析过滤掉背景干扰区域,根据区域面积以及圆度等区域特征筛选出纱筒正面区域以及纱筒筒身区域。
提取出的纱筒正面区域多有缺失,采用椭圆拟合进行边缘拟合提取时,实验证明误差较大,因此采用3阶贝塞尔曲线对纱筒正面区域边缘进行拟合提取。三阶贝塞尔曲线数学模型 [14] 如式(8)
(8)
三阶贝塞尔曲线包括四个控制点分别记为
,其中
分别代表拟合曲线的起始位置和结束位置,
分别控制曲线起始位置与结束位置切线方向,直接影响曲线的拟合效果。对于曲率发生连续较大变化的曲线,单一的贝塞尔曲线容易出现较大误差,可以用混合多个三阶贝塞尔曲线来优化拟合效果。具体做法是:先提取出的正面区域局部边缘,再按曲率相近原则选取局部边缘点作为贝塞尔曲线拟合起始与结束点,最后将一个区域的结束点与下一个区域的起始点作为新贝塞尔曲线的起始点与结束点,以此依次拟合最终通过混合三阶贝塞尔曲线得到纱筒正面区域外轮廓。由于混合贝塞尔拟合模型中相邻拟合点间存在几何特征,因此采用最小二乘法对混合曲线拟合模型两端进行无切向约束优化:
设拟合模型中第i个点(x,y)拟合前后坐标分别为Bix、Biy、Xi、Yi,最小二乘法即求目标函数最小值,目标函数为:
(9)
设式(8)中拟合系数为t1、t2、t3、t4,具体如式(10):
(10)
由于拟合中第一个点P0与最后一个点P3已知,因此只有第二、三点为未知量,对其进行求偏导并整理为矩阵形式如式(11):
(11)
2.3. 纱筒的透视矫正
在企业生产中,纱筒安装在纱筒架的挑杆上,为了防止纱筒因震动及自身重量等因素影响而掉落,挑杆与纱筒架间的角度低于90˚,对纱筒图像透视效果进行建模分析如图4所示:
Figure 4. (a) Camera space model; (b) Perspective effect plane model
图4. (a) 相机拍摄空间模型;(b) 透视效应平面模型
可以发现纱筒正面区域与相机存在平移以及轴方向上的旋转,对应的轴运动为平移以及Y轴方向上的旋转,将纱筒内外筒近似看作标准圆形,以纱筒正视图中的两个垂直直径为对象分析纱筒在透视变换过程中的变化特点如图5所示。
Figure 5. (a) Front view of yarn bobbin; (b) Plane panning result; (c) Plane rotation result
图5. (a) 纱筒正面正视图;(b) 平面平移效果;(c) 平面旋转效果
图中A2C2轴设定为区域方向轴,方向轴与水平轴的夹角Phi计算方法如下:
(12)
(13)
其中x0,y0为区域重心,(x, y)为区域内点坐标。
可以看到在变换过程中以水平方向(X轴)为基准,垂直方向(Y轴)发生明显畸变,因此考虑以ABCD四点为基准用以计算透视效应的图像变换矩阵,具体步骤如下:
对于空间原位置(x, y, z)中的点,经过透视变换后的空间位置为(u, v, w),对应的数学模型为 [15] [16] :
(14)
其中z,w分别变换前后的Z轴分量,T为透视变换矩阵,由于图像透视变换是一个从三维空间到二维空间的变换,因此图像点(X, Y, Z)需要将原位置(x, y, z)除以z [17] [18] ,(X, Y, Z)计算方法如下:
(15)
(16)
透视变换矩阵是未知的,且矩阵为3 × 3矩阵共9个元素,为了简化计算,一般设置元素a33为1,因此透视变换矩阵的求解转换成八元一次方程的求解,对应的齐次矩阵如下:
(17)
八元一次方程组求解需要八个线性无关的方程,即需要四组图像点坐标且任意三个点不在一条直线上 [19] ,因此本文选取图中A2B2C2D2四个点作为变换基准点计算变换矩阵。
3. 实验结果
3.1. 纱筒内筒轮廓提取
以黑色圆柱型纱筒为例,按照上述设计的滤波器对纱筒图像进行滤波,针对图像曲率均值的高斯卷积滤波需要先进行高斯滤波,调整的平滑系数产生不同的滤波效果如图6所示。
Figure 6. The effect of Gaussian convolution with different smoothing factors
图6. 不同平滑系数下的高斯卷积效果
对经过卷积滤波后的图像进行快速阈值分割,并进行连通域分析,通过圆度、封闭区域面积等特征筛选出纱筒内筒区域,对区域采用二元二次曲线拟合模型得到纱筒内筒轮廓,如图7所示。
Figure 7. Yarn inner bobbin edge extraction. (a) Original image; (b) Gaussian convolution filter; (c) Blob analysis; (d) Edge extraction
图7. 纱筒内筒轮廓提取效果。(a) 原图像;(b) 高斯卷积滤波;(c) Blob分析;(d) 内筒轮廓提取
3.2. 纱筒外轮廓提取
滤波后的图像需要先提取纱筒区域才能提取纱筒正面区域轮廓,为减少纱筒背景对提取算法的干扰,根据上述线性滤波对图像进行滤波如图8所示。可以看到滤波后纱筒背景区域干扰信息得到有效的抑制,特别是在抑制纱筒轮廓周围区域背景噪声的同时保留的大部分纱筒区域边缘信息。
Figure 8. Yarn cylinder grayscale linear transformation effect. (a) Original image; (b) Histogram equalization; (c) Low pass filter; (d) Image scaled
图8. 纱筒灰度线性变换效果图。(a) 原图;(b) 直方图均衡化;(c) 低通滤波器;(d) 灰度线性变换
滤波后的图像如图9(a)所示,将图像由RGB颜色空间转为HSV颜色空间得到通道一图像如图9(b)和通道二图像如图9(c),以通道二图像作为处理对象,通过Blob分析分割得到纱筒正面区域的大部分区域如图9(d)所示。
Figure 9. Region segmentation by blob analysis. (a) Original image; (b) HSV channel 1; (c) HSV channel 2; (d) Region segmentation
图9. 通过blob分析进行区域分割。(a) 原图像;(b) HSV一通道;(c) HSV二通道;(d) 区域分割
对分割得到的正面区域如图10(a)采用单个三次贝塞尔曲线拟合,拟合结果如图10(b)所示,可以看到拟合误差较大,这主要是由于不同位置的轮廓点曲率相差较大。因此选取纱筒正面区域轮廓上均匀分布的二十个轮廓点如图10(c),并采用混合贝塞尔曲线对选取点进行拟合,结果如图10(d)所示。
Figure 10. Fitting result by hybrid Bezier curve. (a) Bobbin front area; (b) Traditional fitting model; (c) Edge fitting points; (d) Curve fitting result
图10. 混合贝塞尔曲线拟合结果。(a) 纱筒正面区域;(b) 传统拟合模型;(c) 轮廓拟合点;(d) 曲线本文拟合效果
3.3. 纱筒透视矫正
纱筒正面区域外轮廓提取后计算外轮廓方向信息,为评价纱筒逆投影变换效果,选择内外筒轮廓的圆度特征作为衡量变换效果的指标,圆度计算方法如下:
(18)
(19)
其中F为区域面积,max为区域内的点到中心点的最大距离。
分别以黑色圆柱形纱筒和白色圆锥形纱筒为例,根据上述逆投影变换模型进行逆投影矫正,实验结果如图11所示。
Figure 11. Experiment result. (a) Image; (b) Image convolution; (c) Image convolution add; (d) Image TransRec; (e) Region outer; (f) Image transformation result
图11. 实验结果图。(a) 纱筒原图像;(b) 卷积图;(c) 卷积叠加图;(d) 图像变换矩形;(e) 区域轮廓;(f) 纱筒逆投影变换效果
计算纱筒内外筒圆度以及正面区域外轮廓区域方向Phi如表1所示(垂直方向下Phi = 1.5,theta = 90˚、Phi = 4.715,theta = 270˚):
Table 1. Yarn bobbin inverse perspective transformation feature parameters
表1. 纱筒逆投影变换特征参数表
采用2.3中所述算法分割提取逆投影变换后纱筒图像的内外筒轮廓,考虑到变换后的图像内外筒轮廓不是标准的圆形,直接计算纱线宽度误差较大,因此分别计算内外筒的有效半径,以有效半径差作为纱线余量检测值。
(20)
(21)
(22)
其中,S1、S2分别是纱筒外轮廓、内轮廓面积,R为纱线余量检测值。
3.4. 纱筒余量检测结果
3.4.1. 圆柱形纱筒纱线余量检测结果
圆柱形纱筒的剖面图如图12,圆柱形纱筒的特点是纱筒内筒与外部纱线高度差在17 mm以内,内筒直径在75 mm左右,内筒壁厚约为10 mm,纱线满载时纱筒半径最多只有内筒半径的1.5倍,这对逆透视变换矫正效果影响较大。
按照本文提出的纱线余量检测流程对25组圆柱形纱筒图像进行检测得到部分检测结果如表2所示,25组样本结果绘制折线图如图13所示,其中方形数据点代表算法检测结果,圆形数据点代表纱筒纱线实际余量,上三角数据是检测误差,表中数据保留三位有效数字,因此会出现数据差异,下表3同理。可以发现圆柱形纱筒测量误差总体大于圆锥形纱筒的测量误差,这是因为在进行矫正时是根据内外筒在四个方向上宽度来判定矫正效果,而内外筒的矫正情况总是存在差异,因此对于圆柱形纱筒,其内筒半径大且接近外部纱线宽度,矫正时四个方向上的误差也相对较大,矫正效果相对圆锥形纱筒较差。此外,由于内筒与外部纱线高度差较大,在成像时受绕Z轴旋转的影响,内筒对纱线区域的遮挡效应越明显,且旋转角度越大,遮挡区域面积越大,矫正效果越差,最终导致检测误差越大。这是因为圆柱型纱筒内筒筒壁高度较高,当纱筒与相机平移量较大时,面向相机一侧的内筒筒壁高度明显高于背向相机侧的筒壁高度,而内筒筒壁成像特点与内筒筒环相近,在进行轮廓提取时对分割效果有较大干扰,导致纱筒内外轮廓拟合误差较大,逆投影变换效果较差,此外由于逆投影变换以纱筒外轮廓为对象计算变换矩阵,因此逆投影变换后的部分图像中纱筒筒壁被进一步拉伸,最终导致纱线余量检测精度低。
Table 2. Cylindrical yarn bobbin margin detection result
表2. 圆柱形纱筒纱线余量检测结果
Figure 13. Cylindrical yarn bobbin detection error
图13. 圆柱形纱筒纱线检测误差
3.4.2. 圆锥型纱筒纱线余量检测结果
圆锥形纱筒的剖面图如图14,常见的圆锥形纱筒根据内筒与纱线的高度差分为两种,圆锥形纱筒的特点是纱筒内筒与外部纱线高度差较小,内筒直径在38 mm左右,与纱线高度差在12 mm以内,壁厚约为3 mm,纱线满载时纱筒半径可以达到内筒半径的五倍,在进行逆投影变换矫正时内筒对矫正效果影响相对较小。
(a)(b)
Figure 14. (a) Type A yarn cone section; (b) Type B yarn cone section
图14. (a) A型圆锥纱筒剖面图;(b) B型圆锥纱筒剖面图
对27组不同纱线余量的圆锥形纱筒进行检测得到的部分检测结果如表3所示,27组样本检测结果绘制折线图如图15,可以看到当纱线余量较小时检测误差相对较大,特别是纱线宽度低于10 mm时误差明显增大,这是因为纱线宽度低于10 mm时,纱筒正面纱线区域内外边缘不明显,难以分割出完整的纱线区域。
Table 3. Yarn cone thread margin detection result
表3. 圆锥形纱筒纱线余量检测结果
Figure 15. Yarn cone thread margin detection error
图15. 圆锥形纱筒纱线余量检测误差
4. 结束语
本文针对单个轴方向上存在旋转的不同类型纱筒,提出一种基于逆投影变换的纱筒纱线余量检测算法,首先对图像进行滤波,设计针对曲率均值的高斯卷积滤波对图像滤波,分割提取纱筒内筒轮廓。针对传统拟合算法对纱筒外轮廓拟合效果较差的问题,本文通过粗分割得到纱筒正面区域的大部分区域,选择曲率较低的轮廓点建立混合贝塞尔曲线拟合模型,得到拟合效果良好的纱筒外轮廓。为实现纱筒图像的透视矫正,本文对透视效应产生机制进行建模分析,选择外轮廓的四个点作为变换基准点,建立逆投影变换数学模型,求解变换矩阵,计算纱筒纱线余量。实验证明本文方法在保证检测效率的同时具有较高的准确率,特别是在纱筒纱线余量少的情况下误差相对较低。该论文对在实际生产情况下的纱筒纱线余量检测具有一定的启示意义,为传统算法在复杂条件下的目标检测提供支持。
未来可以对不同纱筒旋转角度以及拍摄距离等变量进行研究,进一步完善逆投影变换模型。此外,在本文工作的基础上完善对多个纱筒的自动识别定位算法,排除光照、周围环境以及后排纱筒等复杂因素的干扰,可以完成对纱筒纱线余量的闭环检测,这对提高纺织品生产效率,降低生产成本具有重要意义。