本文以“特精粉”面粉袋图像为例,根据上述程序流程图对面粉袋的中心位置进行识别实验,各阶段处理结果如图2.14所示。
码垛机器人经大量的实验验证,本文使用的面粉袋中心位置识别程序均能够准确地识别出面粉袋的中心位置,由于面粉袋边缘不规则,面粉袋图像在进行形态学运算处理后,有些不能表示真实的边缘特性,但其范围相对于整个面粉袋比较小,对整个面粉袋二值图像质心位置的检测影响可以忽略。
最后应用面粉袋中心位置识别程序对四种不同类型的面粉袋分别进行中心位置的识别,其识别结果如图2.15所示。
2.5.2面粉袋旋转角度识别
对于面粉袋旋转角度的识别,本文在SIFT特征匹配的基础上进行识别,具体是利用面粉袋类型匹配时正确匹配的一系列关键点,对该关键点进行仿射变换,求出其空间变换关系,进而求出面粉袋的旋转角度。下面将对仿射变换的原理进行简要介绍。
仿射变换(acne transformation)是一种重要的线性几何变换,它能够描绘三维空间中的目标物体到二维平面的成像过程,而且具有平移、旋转、和缩放的不变性。欧氏空间中的二维仿射变换可以表示为式(2-18)所示。
本文的角度识别程序是在Matlab编程环境下完成的,首先通过程序将面粉袋类型识别中正确匹配的特征点对加载到工作空间中,程序中运用了图像处理工具箱中的空间变换函数cp2tform和tformfwd推导出特征点的仿射变换关系和倾斜角度,最后将识别结果显示在面粉袋图像上。对四种不同类型的面粉袋旋转角度进行试验,其识别结果如图2.15所示。
2.5.2面粉袋旋转角度识别
对于面粉袋旋转角度的识别,本文在SIFT特征匹配的基础上进行识别,具体是利用面粉袋类型匹配时正确匹配的一系列关键点,对该关键点进行仿射变换,求出其空间变换关系,进而求出面粉袋的旋转角度。下面将对仿射变换的原理进行简要介绍。
仿射变换(affine transformation)是一种重要的线性几何变换,它能够描绘三维空间中的目标物体到二维平面的成像过程,而且具有平移、旋转、和缩放的不变性}s2}。欧氏空间中的二维仿射变换可以表示为式(2-18 )所示。
码垛机器人本文的角度识别程序是在Matlab编程环境下完成的,首先通过程序将面粉袋类型识别中正确匹配的特征点对加载到工作空间中,程序中运用了图像处理工具箱中的空间变换函数cp2tform和tformfwd推导出特征点的仿射变换关系和倾斜角度,最后将识别结果显示在面粉袋图像上。对四种不同类型的面粉袋旋转角度进行试验,其识别结果如图2.15所示。
在面粉袋图像上规定类型名称字头朝正上为零度,在图2.16中竖直红线表示零度的
基准线,逆时针方向为正方向,识别出的旋转角度为正值,其范围为0~180度,顺时针
方向为负方向,识别出的旋转角度值为负值,其范围为-180~0度。
2.6本章小结
针对面粉袋的类型和位姿识别问题构建了机器视觉识别系统,并应用张正友标定法完成了视觉系统摄像机的标定实验。应用SIFT算法实现了被识别面粉袋的特征与模板图像特征的自动匹配,准确判别出面粉袋的类型。在正确匹配特征点的基础上,利用特征点的仿射变换识别出面粉袋的旋转角度,利用图像分割、二值化和形态学运算求出面粉袋的质心位置,实现了面粉袋类型和位姿的自动识别。