摄像机模型和参数标定方法
相机标定方法及进展研究综述

相机标定方法及进展研究综述相机标定是计算机视觉领域的重要研究方向之一,其目的是通过数学模型,将摄像机的内部参数和外部参数计算出来,从而提高图像的准确性和精度。
在图像处理、机器视觉、计算机视觉等领域中,相机标定是一个非常重要的问题,并且在机器人视觉、三维重建和增强现实等领域中得到了广泛的应用。
本文将对相机标定方法及进展研究进行综述。
一、相机标定方法常用的相机标定方法包括摄像机模型、单目相机的标定、立体相机的标定、将标定技术运用到实际应用的技术。
下面分别介绍。
1. 摄像机模型相机模型是相机标定的基础。
常用的相机模型主要包括针孔相机模型、中心投影相机模型、透视投影相机模型、鱼眼相机模型、全景相机模型等。
这些模型都是基于相机采集的图像和射线之间的关系建立的。
2. 单目相机的标定单目相机的标定主要包括内参数和外参数的标定。
内参数是相机焦距、像点中心等参数,外参数是相机的旋转和平移,可以用于计算世界坐标和相机坐标之间的转换矩阵。
常用的单目相机标定方法包括张氏标定法、Tsai相机标定法、基于控制点的标定法等。
3. 立体相机的标定立体相机的标定是通过对相机的双目视觉信息进行建模和分析,得到相机内部参数和外部参数的过程。
常见的立体相机标定方法包括非线性标定法、基于投影矩阵的标定法、基于球面投影的标定法等。
4. 将标定技术运用到实际应用的技术标定技术并不是研究的最终目的,而是运用到实际应用中的工具,如机器视觉、计算机视觉和图像处理等。
因此,如何将标定技术应用到实际应用中,是当前科学研究的关键问题。
常用的应用技术包括遮挡物检测、视觉跟踪、特征提取、目标检测等。
二、相机标定领域研究进展相机标定是一个广泛研究的领域,近年来研究取得了一定进展。
1. 智能相机标定智能相机标定是将计算机视觉与智能控制系统相结合,实现自动化相机标定的方法,主要包括多相机标定和自适应标定等。
2. 深度学习在相机标定中的应用深度学习是当前研究的重点之一,将深度学习应用到相机标定中可以提高标定的精度和效率。
摄像机标定 方法

摄像机标定方法摄像机标定是计算机视觉领域的一项重要任务,主要目的是确定摄像机的内外参数,以便将图像中的像素坐标转换为世界坐标。
摄像机标定有多种方法可供选择,其中包括使用标定物体、使用棋盘格、使用角点等。
下面将详细介绍其中的几种方法。
第一种方法是使用标定物体进行摄像机标定。
该方法需要摄像机拍摄带有已知尺寸的标定物体,例如固定尺寸的棋盘格或标尺。
通过测量图像中标定物体的像素坐标和已知尺寸,可以计算出摄像机的内外参数。
这个过程通常涉及到图像坐标和世界坐标的转换,以及通过最小二乘法进行参数求解。
第二种方法是使用棋盘格进行摄像机标定。
这种方法是比较常用且简单的一种标定方法。
首先,在摄像机拍摄的图像中绘制一个棋盘格,然后使用摄像机内参数和外参数将棋盘格的世界坐标与图像坐标建立对应关系。
通过采集多幅图像并测量每幅图像中的棋盘格角点的像素坐标,可以得到摄像机的内外参数。
这个过程通常使用角点检测算法来自动检测图像中的棋盘格角点。
第三种方法是使用角点进行摄像机标定。
这种方法也是比较常用的一种标定方法。
和使用棋盘格类似,该方法也是通过摄像机内参数和外参数将角点的世界坐标与图像坐标建立对应关系。
角点通常是由几条直线的交点或者是物体的尖锐边缘。
通过采集多幅图像并测量每幅图像中的角点的像素坐标,可以得到摄像机的内外参数。
这个过程通常也使用角点检测算法来自动检测图像中的角点。
除了上述几种常用方法,还有其他一些比较新颖的摄像机标定方法。
例如,基于模板匹配的方法可以在不需要标定物体的情况下估计摄像机的内外参数。
这种方法需要摄像机拍摄多幅图像,并在每幅图像中定位模板。
通过比较模板在不同图像中的位置,可以估计摄像机的内外参数。
此外,还有基于结构光的方法和基于手眼标定原理的方法等。
总之,摄像机标定是计算机视觉领域的一项重要任务,有多种不同的方法可供选择。
使用标定物体、棋盘格、角点等进行摄像机标定是常见的方法。
这些方法可以通过采集多幅图像并测量像素坐标,计算摄像机的内外参数。
摄像机标定的几种方法

摄像机标定的几种方法摄像机标定是计算机视觉和机器视觉领域中的一项重要技术,用于确定相机的内参矩阵和外参矩阵,从而实现图像的准确测量与三维重建。
本文将介绍几种常用的摄像机标定方法,包括直接线性变换(DLT)、Zhang的标定法、Tsai的标定法、径向畸变模型等。
1.直接线性变换(DLT)方法:直接线性变换方法是摄像机标定最基础的方法之一,通过在物体平面上放置多个已知几何形状的标定物体,测量它们的图像坐标和真实坐标,通过最小二乘法求解相机的投影矩阵。
DLT方法简单直接,但对噪声敏感,容易产生误差。
2. Zhang的标定法:Zhang的标定法是一种常用的摄像机标定方法,通过在平面上放置一系列平行的标定板,根据不同位置姿态下的标定板的图像坐标和物理坐标,运用最小二乘法求解相机的内参矩阵和外参矩阵。
Zhang的标定法提高了标定的精度和稳定性,但要求标定板在不同位置姿态下具有较大的变化。
3. Tsai的标定法:Tsai的标定法是一种基于摄像机的投影模型的标定方法,通过摄像机的旋转和平移矩阵,以及曲率和径向畸变的参数,对图像坐标和物理坐标之间的映射关系进行数学推导和求解。
Tsai的标定法可以对畸变进行校正,提高图像测量的精度。
4. Kalibr工具包:Kalibr是一个开源的摄像机标定和多传感器校准工具包,结合了多种摄像机标定方法,例如DLT、Tsai、Zhang等。
Kalibr工具包不仅可以标定单目相机,还可以标定双目和多目视觉系统,对相机的内参、外参、畸变等参数进行标定和优化,同时还能进行相机的手眼标定、IMU与相机的联合标定等。
5. Di Zhang的自标定方法:Di Zhang提出了一种基于相对边界点的自标定方法,通过提取图像中的特定点边界,通过对这些边界点位置的检测与分析,实现对相机内参和外参的求解。
这种方法不需要使用标定板等外部标定物体,只需要相机自身可以看到的物体边界即可进行标定。
6.径向畸变模型:径向畸变是摄像机成像中常见的一种畸变形式,主要表现为物体边缘呈弯曲的形式。
标定的方法有哪些

标定的方法有哪些标定是指对计算机视觉系统的相机或者传感器进行定位、校准和配置,以使其能够准确地感知和测量物体的位置、形状、大小等特性。
标定的方法有很多种,常见的包括摄像机标定、传感器标定、相机内参标定、相机外参标定、立体标定等。
下面将对这些标定方法逐一进行详细解释。
1. 摄像机标定摄像机标定是指对相机的内部参数进行标定,包括焦距、主点坐标、畸变系数等,以及相机的外部参数,即相机在世界坐标系中的位置和方向。
摄像机标定的目的是为了纠正图像畸变,提高图像的几何度量精度。
摄像机标定方法主要有直接线性变换(DLT)方法和Tsai标定方法。
直接线性变换方法是通过将空间点与图像点之间的关系建立为一个线性方程组来求解相机的内部参数和外部参数;而Tsai标定方法则是在DLT方法的基础上加入非线性优化过程,通过最小化重投影差来求解相机的内部参数和外部参数。
2. 传感器标定传感器标定是指对某种传感器(如激光雷达、惯性测量单元等)的内外参数进行标定,以便正确地将其测量结果与实际空间坐标相对应。
传感器标定的目的是消除传感器的误差,提高测量的精度和准确性。
传感器标定方法根据传感器的类型和特点有所差异。
常见的传感器标定方法包括激光雷达标定、惯性测量单元标定、相机-激光雷达标定等。
激光雷达标定主要针对激光雷达的扫描点云数据进行标定,通过与真实的靶标或者地面控制点进行对比,求解出激光雷达的内外参数;惯性测量单元标定则是针对惯性测量单元中的三轴加速度计和三轴陀螺仪,通过对比其测量结果与真实运动进行优化求解内外参数。
3. 相机内参标定相机内参标定是指对相机的内部参数进行标定。
相机的内部参数包括焦距、主点坐标和畸变系数等,它们决定了相机成像的质量和精度。
相机内参标定的目的是为了提高相机的成像质量和测量精度。
相机内参标定可以通过使用标定板或者棋盘格来进行。
标定板一般是由黑白相间的方格组成的,通过在不同的位置和姿态下拍摄标定板,利用标定板上的方格来计算相机的内参矩阵。
摄像机标定的几种方法

DLT变换
Abdal-Aziz和Karara于70年代初提出了直接 线性变换像机定标的方法,他们从摄影测量 学的角度深入的研究了像机图像和环境物体 之间的关系,建立了像机成像几何的线性模 型,这种线性模型参数的估计完全可以由线 性方程的求解来实现。
DLT变换
直接线性变换是将像点和物点的成像几何关系在齐次坐标下 写成透视投影矩阵的形式:
3、图像坐标系: u, v x, y
Xc
Xw
Zw
Ow
Yw
世界坐标系
x
Zc
u
v O1
y
图像坐标系
O
摄像机坐标系
Yc
图像数字化
O1在 u, v 中的坐标为u0 ,v0
V
象素在轴上的物理尺寸为dx, dy
Yd
Affine Transformation :
u
u0
xd dx
yd
cot
dx
v
v0
dy
yd sin
摄相机标定
中国科学院自动化研究所 模式识别国家重点实验室 /english/rv
主要内容
1、引言:什么是摄相机标定 2、摄相机标定方法的分类 3、传统摄相机标定方法(或利用景物信息
的标定方法)
4、主动视觉摄相机标定方法 5、摄相机自标定方法
1、引言
yw zw
1
2、摄相机标定方法分类
分三类
• 传统摄像机标定方法 • 主动视觉摄像机标定方法 • 摄像机自标定方法
1. 传统的摄像机标定方法
特点 利用已知的景物结构信息。常用到标定块。
1. 传统的摄像机标定方法
• 优点
可以使用于任意的摄像机模型,标定精度高
摄像机标定原理及源码

摄像机标定原理及源码一、摄像机标定原理1.1相机模型在进行摄像机标定之前,需要了解相机模型。
常用的相机模型是针孔相机模型,它假设光线通过小孔进入相机进行成像,形成的图像符合透视投影关系。
针孔相机模型可以通过相机内部参数和外部参数来描述。
1.2相机内部参数相机内部参数主要包括焦距、光心坐标等信息,可以通过相机的标定板来获取。
标定板上通常有已知尺寸的标定点,通过计算图像中的标定点坐标和实际世界中的标定点坐标之间的关系,可以求解出相机的内部参数。
1.3相机外部参数相机外部参数主要包括相机在世界坐标系中的位置和姿态信息。
可以通过引入已知的点和相机对这些点的投影来求解相机的外部参数。
也可以通过运动捕捉系统等设备获取相机的外部参数。
1.4标定算法常用的摄像机标定算法有张正友标定法、Tsai标定法等。
其中,张正友标定法是一种简单和广泛使用的标定方法。
该方法通过对标定板上的角点进行提取和匹配,利用通用的非线性优化算法(如Levenberg-Marquardt算法)最小化像素坐标与世界坐标的重投影误差,从而求解出相机的内部参数和外部参数。
二、摄像机标定源码下面是使用OpenCV实现的摄像机标定源码:```pythonimport numpy as npimport cv2#棋盘格尺寸(单位:毫米)square_size = 25#棋盘内角点个数pattern_size = (9, 6)#获取标定板角点的世界坐标objp = np.zeros((np.prod(pattern_size), 3), dtype=np.float32) objp[:, :2] = np.mgrid[0:pattern_size[0],0:pattern_size[1]].T.reshape(-1, 2) * square_sizedef calibrate_camera(images):#存储角点的世界坐标和图像坐标objpoints = []imgpoints = []for img in images:gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#查找角点ret, corners = cv2.findChessboardCorners(gray, pattern_size, None)if ret:objpoints.append(objp)#亚像素精确化criteria = (cv2.TERM_CRITERIA_EPS +cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)corners2 = cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria)imgpoints.append(corners2)#标定相机ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None)return ret, mtx, dist, rvecs, tvecs#读取图像images = []for i in range(1, 21):img = cv2.imread(f'image_{i}.jpg')images.append(img)#相机标定ret, mtx, dist, rvecs, tvecs = calibrate_camera(images)#保存相机参数np.savez('calibration.npz', ret=ret, mtx=mtx, dist=dist, rvecs=rvecs, tvecs=tvecs)```以上代码首先定义了棋盘格尺寸和格子个数,然后定义了函数`calibrate_camera`来进行相机标定。
(学习笔记)摄像机模型与标定标定函数

(学习笔记)摄像机模型与标定——标定函数摄像机内参数,能够让我们将3D坐标转换为2D图像坐标。
说明:要理解下面的函数中参数的真实用法还需要阅读一下相机标定程序。
摄像机标定函数:[cpp] view plaincopyvoid cvCalibrateCamera2( CvMat* object_points, CvMat* image_points, int* point_counts, CvSize image_size, CvMat* intrinsic_matrix, CvMat* distortion_coeffs, CvMat* rotation_vectors = NULL,CvMat* translation_vectors = NULL, int flags = 0 );1、object_points,是一个N×3的矩阵,如果对于每一个棋盘,我们有k个角点,并且我们通过旋转棋盘,得到棋盘的M的视场图,那么此时N=k×M。
在使用棋盘的场合,我们另点z的坐标值为0,而x,y坐标用里面来度量,选用英寸单位,那么所有参数计算的结果也是用英寸表示。
类似地,如果设置所有x坐标为0(而不是z 坐标),那么意味着与摄像机相关的棋盘位置将主要在x方向上而不是在z方向上。
棋盘上的正方形定义了一个单位,即如果正方形的边长为90mm,那么物体和摄像机坐标单位应该是mm/90。
最简单的方式是我们定义棋盘的每一个方块为一个单位。
2、image_points,是一个N×2的矩阵。
包含object_points 所提供的所有点的坐标。
即算法在图像中寻找到的角点的坐标。
3、point_counts,每个图像上角点的个数,以M×1矩阵形式提供,M是视场的数目4、image_size,图像的大小,以像素为衡量单位。
5、intrinsic_matrix,摄像机内参数矩阵3×3大小。
摄像机标定原理

摄像机标定原理一、引言摄像机标定是计算机视觉领域中的一个重要任务,它对于摄像机内部参数和外部参数的估计非常关键。
摄像机标定可以将摄像机图像中的像素坐标与实际世界中的物理坐标进行映射,从而实现图像与物理世界之间的准确对应关系。
本文将深入探讨摄像机标定的原理及应用。
二、摄像机模型在开始讨论摄像机标定原理之前,首先需要了解摄像机模型。
常用的摄像机模型有针孔相机模型和透视投影模型。
2.1 针孔相机模型针孔相机模型是一个简化的模型,它假设摄像机的成像过程就像光线通过一个非常小的孔洞进入观察平面一样。
在针孔相机模型中,摄像机与观察平面之间的距离被称为焦距。
该模型可以用于计算摄像机的内部参数,例如焦距、主点等。
2.2 透视投影模型透视投影模型是一种更接近真实的摄像机模型,它考虑了透视变换对于摄像机成像的影响。
透视投影模型通过将物体在三维空间中的坐标投影到成像平面上,得到图像中的像素坐标。
透视投影模型由内部参数和外部参数组成,内部参数包括焦距、主点等,外部参数包括摄像机的位置和姿态。
三、摄像机标定方法3.1 传统标定方法传统的摄像机标定方法主要基于棋盘格标定板。
标定板是一个特制的平面,上面有一些已知的特征点,比如角点。
通过将标定板放置在不同位置和角度下,利用摄像机拍摄的图像中的特征点,可以计算出摄像机的内部参数和外部参数。
传统标定方法的流程如下: 1. 放置标定板:将标定板放在与摄像机平行的平面上。
2. 拍摄照片:调整摄像头的位置和角度,拍摄多张包含标定板的照片。
3. 提取特征点:利用图像处理算法提取照片中的标定板上的特征点。
4. 计算参数:通过特征点的像素坐标和三维空间中的物理坐标,使用标定算法计算摄像机的内部参数和外部参数。
3.2 基于深度学习的标定方法近年来,基于深度学习的摄像机标定方法也得到了广泛的关注。
这些方法利用深度学习模型学习摄像机的内部参数和外部参数的映射关系。
相比传统的标定方法,基于深度学习的方法可以减少对标定板的依赖,提高标定的准确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
u1zw1 v1zw1
un zwn vn zwn
u1 v1
un vn
mm1143
m21 m22
m23 m24 m31
0
m32
m33
m34
带约束条件摄像机的标定
m1 1
m1
2
xw1
0
yw1 0
zw1 0
10 0 xw1
0 yw1
0 zw1
0 1
1
K12 h1K11 K13 h2 K11
K22 h3h12K11
K23
h4 h1h2 h3 h12
K11
K11
h3h12 h5h3h2 2h3h12h5h4 22h1h2h4
dx K 11
dy K 22
v0
K 23 dy
ts
K 12 dxdy
u 0 t s v 0 dy
K 13 dx
h3K 12 K 2 1K 2122 2,
h4K 1K 21K 3 1K 212K 223 ,
h5
K132
K232 K112
1
内参数标定
h1
K12, K11
h2
K13, K11
h3K 12 K 2 1K 2122 2,
h4K 1K 21K 3 1K 212K 223 ,
h5
K132
K232 K112
m11 m12
u1zw1
m13 m14
u1m34
v1zw1
m2
1
v1m3
4
unzwnmm2223
unm34
vnzwnm24 vnm34
m31
m32 m33
摄像机的标定
令m34 1, AmB m(AT A)ATB
m341/ m3 将M阵中的每一个元素乘以m34,得到的结果作为M阵。
R M2 0
Y
ri
2、世界坐标系的原点不会
X
z
投影到图像上接近于图像坐
标的y轴。
x ~xi, ~yi x'
内参数标定
( u 1 v 2 u 2 v 1 ) h 1 ( u 1 u 2 ) h 2 v 1 v 2 h 3 ( v 1 v 2 ) h 4 h 5 u 1 u 2
对于N幅图像,可以得到N个上述方程,利用最小二乘法, 可以求出h1~h5。
h1
K12, K11
h2
K13, K11
t 1
rr12TT r3T
0
tx ty tz
,
1
M mm12TT m3T
mm1244 m34
mm12TT m3T
mm1244
ax
0
m34 0
0 ay 0
u0 v0 1
000rrr0132TTT
tx ty tz 1
aaxyrr12TT
u0r3T v0r3T
r3T
axtx ayty
1 1 0 0
1 1 0 0 1 1
K 121
u1 v1 1K 1K 112
K 1K 112 K 12 2K 22 2
K 1K 2K 11 3K 1 K 123K 22 3 u v2 2 0
K 1K 113K 1K 21 3K 2K 223 K 123K 2231 1
Faugeras的摄像机标定方法
摄像机模型
内参数为4参数模型
u ax Zcv0
1 0
0 ay 0
u0 v0 1
0 0 0R 0
xw
xw xw
1 tzy1w wM 1M2zy1w wMzy1w w
m11 m12 m13 m14 M m21 m22 m23 m24
m31 m32 m33 m34
摄像机的标定(直接最小二乘)
BX 9CX 30 由最小二乘法,求得X9与X3的关系:
X9(BTB)1BTC3X
B(BTB)1BTCX3CX3 0 [CB(BTB)1BTC]X3 0 [CTCCTB(BTB)1BTC]X3 0
DCTC-(CTB)(BTB)1BTC
X3 V, X3 -V X9 (BTB)1BTCX3
R.Y. Tsai, A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf cameras and lens, IEEE Transactions on Robotics and Automation, 3(4),1987
摄像机模型与参数标定方法
徐德 副教授 2019年11月30日
内容提要
小孔模型 摄像机参数 基于灭点(vanish)的内参数标定 Faugeras的摄像机标定方法 Tsai的摄像机标定方法 仿射变换法
小孔模型
Π2
X Π2
O
P2
Z
P 2
Y
Π1 P1
图1 小孔成像原理
所有景物通过 摄像机光轴中 心点投射到成 像平面上
u0tz v0tz
tz
摄像机的标定
m m m132T T T
m m1244aaxyrr12TT uv00rr33T T m34 r3T
aaxyttxyuv00ttzz tz
ax m1 m3 auy 0mm21Tmm3 3 , v0 m2T m3
r1 (m1 u0m3) / ax
uv11m m1143
u1xw1 v1yw1
xwn ywn zwn 1 0
0
0
0 unm m2221unxwn
0
0
0
0
xwn
xwn
xwn
1
vnm2
3
vnxwn
u1yw1 v1yw1
unywn vnywn
u1zw1
uvn1 zzww1nm m m333
1 2 3
0
vnzwn
m2 4
O.D. Faugeras, G. Toscani, The calibration problem for stereo, IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pp15-20, Florida, 1986
带约束条件摄像机的标定
将CR分别对X3、X9求偏导数,并令其为0,有:
CR X3
2CTCX3 2CTBX9
2X3
0
CR X9
2BTBX9
2BTCX3
0
[CTCCTB(BTB)BTC]X3X3
X9(BTB)BTC3X
令 D C T C C TB (B TB )B T C,则X3即为D的特征向量。
此外,利用下述方法也可以求得X3、X9:
m3
4
BX 9CX 30 由约束条件 X3 2 1,判别标准变为使CR最小:
C RB9 X C32 X (X 32 1 )
对于所有的实数,有:
C R ( B 9 C X 3 ) T ( X B 9 C X 3 )X
X 9 T B T B 9 X 3 T C T C 3 X X 9 T B T C 3 X X 3 T C T B 9 X ( X 3 T X 3 1 )
内参数标定
H11 H12 H13u2
u1 v1 1H12 H22 H23v20
H13 H23 H331
H H 1 12 1H H 1 22 2H H 1 2 3 3 K K 11 K 1 2 1 12
K 1K 112 K 12 2K 22 2
K 1K 113
K 1K 21 3K 2K 223
r2
(m2
v0m3 )
/
ay
tx
r3 m3 (m14 u0m34 ) / ax
t
y
(m24
v0m34 ) / ay
tz m34
r3 r3 0 r1 r3 1 r2 r3 1
r1 r3 0 r3 r3 1
FaugeraTsai的摄像机标定方法
符号与条件
p0图像平面原点位置 ri从点p0到图像点pi(xi,yi)的矢量 pi (xi,yi,zi) 是标定点 (~ xi,~ yi)是 (xi,yi)径向畸变产生的点
o
y p0'
ri
y'
ri从点(0, 0, zi)到pi的矢量
Z
0,0, zi
条件:1、世界坐标系的原 点不在视场内。
Zw Yw
图1 小孔成像原理
xc
xw
xw
yc z1c
M2
yw z1w
R 0
1tzy1ww
平面视觉摄像机的标定
平面视觉摄像机的位姿
➢ 摄像机光轴中心线与景物平面平行,景物坐标为
xw yw 0T ➢ 摄像机固定不动,焦距固定。景物坐标系原点可选择
光轴中心线与景物平面的交点,于是有R=I, t=[0 0 d]T, d是选择光轴中心到景物平面的距离。
zzccuvm m1211xxw w m m1222yyw wm m1233zzw wm m1244 zc m31xwm32ywm33zwm34
Faugeras的摄像机标定方法
摄像机的标定
m m 1 2 x x w w 1 1 m m 1 2 y y w w 2 2 m m 1 2 z z w w 3 3 m m 1 2 4 m 4 m 3 3 x x w w 1 u 1 v m m 3 3 y y w w 2 u 2 v m m 3 3 z z w w 3 u 3 v m m 3 3 u v 4 4
u ax 0 u0xc1