刘奕聪论文提纲
一、绪论
1.1 研究的意义和目的
- 现阶段工件检测的方式。
- 传统方法的弊端。
- 本课题要完成的内容。
1.2 本文章节简介
- 章节介绍
二、引言
- 课题题目介绍。
- 机器视觉是什么。
- 本课题的技术难点。
三、技术原理
3.1 透视变换
在我们获取的原图像中,其所在的平面与成像平面通常并不会是平行,因此会导致图像产生失真的现象,失真会破坏图形的形状和面积。
其中主要的失真是梯形失真,梯形失真影响的形状变化如下表所示:
原形状 |
变化形状 |
矩形 |
梯形、筝形、矩形和其他四边形 |
圆形 |
椭圆 |
矫正梯形失真的方式通常有两种:
- 光学矫正,指在图像采集的时候通过调整摄像机的位置,使之尽量与目标平面平行,这种方法成本较高,且使用场景局限性大。
- 数码矫正,指在后期通过软件的方式进行矫正,以重现真实的摄像目标。
这里使用数码方式进行梯形失真矫正。
3.1.1 透视变换原理
这里使用牛津大学的A. Criminisi和A. Zisserman提出的一种近似透视变换的方法。该方法能够将任意一个平面的图像转换成任意一个平面的图像,而且保证两个平面上的直线能够正确对应而不会产生扭曲。
如图 3-1-1-1所示,现实平面上的点(X,Y)转化为了图像平面的点(x,y)。我们的任务变成已知一个四边形分别在两个平面的四个顶点坐标,求出转移矩阵H。
平面相机模型
我们用X=H(x)来描述一个转换模型,其中X是现实平面的向量,x是对应的像平面的向量,H是变换函数。
如图所示,对于像平面上的向量x=(x,y,1),向量X=(X,Y,W)是现实平面上对应的向量,其中W=gx+hy+1。
根据A. Criminisi和A. Zisserman提出的算法,X=H(x)的详细形式为:
⎡⎣XWYWW⎤⎦=⎡⎣adgbehcf1⎤⎦⎡⎣xy1⎤⎦
四边形映射
因为我们的实际任务是转换两个平面的指定的四边形,因此需要将平面相机模型改写成与两个平面分别的四个顶点相关的公式。
我们注意到:
W=gx+hy+1
为了把真正非线性的部分暴露出来,我们提取了W:
W⎡⎣XY1⎤⎦=⎡⎣adgbehcf1⎤⎦⎡⎣xy1⎤⎦
将W移到右侧,得:
⎡⎣XY1⎤⎦=⎡⎣adgbehcf1⎤⎦⎡⎣xy1⎤⎦W=⎡⎣adgbehcf1⎤⎦⎡⎣xy1⎤⎦[gh1]⎡⎣xy1⎤⎦
通过观察上式,我们可以得到以下公式:
X=ax+by+cgx+hy+1Y=dx+ey+fgx+hy+1
这等价于非向量形式的透视变换,两侧乘上W,得:
X(gx+hy+1)=ax+by+cY(gx+hy+1)=dx+ey+f
展开可得:
gXx+hXy+X=ax+by+cgYx+hYy+Y=dx+ey+f
提取单个的X和Y,可以得到以下方程组:
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢x10x20x30x40y10y20y30y40101010100x10x20x30x40y10y20y30y401010101−X1∗x1−Y1∗x1−X2∗x2−Y2∗x2−X3∗x3−Y3∗x3−X4∗x4−Y4∗x4−X1∗y1−Y1∗y1−X2∗y2−Y2∗y2−X3∗y3−Y3∗y3−X4∗y4−Y4∗y4⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢abcdefgh⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢X1Y1X2Y2X3Y3X4Y4⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
至此,我们可以根据两个平面上已知的一对对应的四边形求出转移矩阵H,进而对于像平面的每一点,都可以使用转移矩阵H求得其在现实平面上的一点。
3.2 边缘检测
- sobel算子
3.3 霍夫变换
3.3.1 霍夫变换检测直线
- 原理
3.3.2 霍夫变换检测矩形
- 获得参数
3.3.3 霍夫变换检测圆形
- 获得参数
四、程序与结果