关键词不能为空

当前您在: 主页 > 英语 >

Matlab摄像机标定工具箱的使用说明

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-13 15:21
tags:

-

2021年2月13日发(作者:twisty)



摄像机标定工具箱



1.1 Matlab


摄像机标定工具箱



工具 箱下载:


/bouguetj/calib_doc/download/


说明文档:


/bouguetj/calib_doc/


安装:


将下载的工具箱文件


toolbox _


解压缩,


将目录


toolbox_c alib


拷贝到


Matlab


的目录下 。



采集图像:


采集的图像统一命名后 ,


拷贝到


toolbox_calib


目录中。


命名规则为基本名和


编号,基本名在前,后面直接跟着 数字编号。编号最多为


3


位十进制数字。



1.1.1


标定模型



内参数标定采用的模型如式


(1-1)


所示,< /p>


Brown


畸变模型式


(1-2)


所示。



?


u


?


?


k


x

< p>
?


v


?


?


?


0


?


?

?


?


?


1


?


?


?


?


0< /p>


k


s


k


y


0


u


0


?

< p>
?


x


c


/


z


c


?


?

x


c


1


?


?


y


/


z


?< /p>


?


M


?


y


?
















(1-1)


v


0

?


in


?


c


1


?


?


?


c


c


?


?


1


?


?


?


?


1


?


?


?


1


?


?


式中:


(


u


,


v


)


是特征点的图像坐标,


(


x


c


,


y


c


,


z< /p>


c


)


是特征点在摄像机坐标系的坐标,< /p>


k


x



k


y


是焦距


归一化成像平面上的成像点坐标到图 像坐标的放大系数,


k


s


是对应于图像 坐标


u



v


的 摄像


机的


x



y


轴之间不垂直带来的耦合放大系数,


(


u


0


,


v


0


)


是光轴中心点的图像坐标即主点坐标,

(


x


c


1


,


y


c


1


)


是焦距归一化成像平面上的成像点坐标。


k

s


=


?


c


k


x



?


c< /p>


是摄像机的实际


y


轴与理想


y


轴之间的夹角,单位为弧度。


< br>2


4


6


2


2


?


?


x


c


1


d


?


x


c


1


(


1


?


k


c


1


r


?


k


c

< br>2


r


?


k


c


5


r


)


?


2


k


c


3


x


c


1


y


c


1


?


k


c


4


(


r

< br>?


2


x


c


1


)












(1-2)


?


2

4


6


2


2


?


?


y


c


1< /p>


d


?


y


c


1


(


1


?

< p>
k


c


1


r


?


k


c


2

r


?


k


c


5


r


)


?


k< /p>


c


3


(


r


?


2


y


c

< p>
1


)


?


2


k


c


4


x

c


1


y


c


1


式中:


(


x


c


1


d


,


y


c


1


d


)


是焦距归一化成像平面上的成像点畸变后的坐标,


k


c


1



2

阶径向畸变系数,


k


c


2



4


阶径向畸变系数,


k


c


5



6< /p>


阶径向畸变系数,


k


c

< br>3



k


c


4


是切向畸变系数,


r


为成像点到< /p>


摄像机坐标系原点的距离,


r


2


=


x


c


1


2


+


y


c


1


2




1.1.2


操作界面




Matlab


的当前目录设定为含有标定工具箱的目录,即


to olbox_calib


目录。在


Matlab


命令窗口运行


calib_gui


指令,弹出图


1


所示选择窗口。





1


内存使用方式窗口




1


窗口中,具有两个选项,分别是“


Standard


”和“


Memory efficient


。如果点击选择



Standa rd



,则将目录中的所有图像读入内存中,所需内存较大。如 果点击选择“


Memory


efficient



,则将目录中的图像按照需要每次一幅图像读入内存中,所需内存较小。在 选择了



1



内存使用方式后,弹出标定工具箱操作面板。图


2


是选择“< /p>


Standard


”后弹出的标定工具箱


操作面板。





2


标定工具箱操作面板




2


所示的标定工具箱操作面板具有


16


个操作命令键,其功能如下:



(1)



Image names


”键:指定 图像的基本名


(Basename)


和图像格式,并将相应的图 像读


入内存。



(2)



Read names


”键:将指定基本名和格式的图像读入内存。



(3)



Extract grid corners


”键:提取网格角点。



(4)



Calibration< /p>


”键:内参数标定。



(5)



Show Extrinsic


”键 :以图形方式显示摄像机与标定靶标之间的关系。



(6)



Project


on

< p>
images


”键:按照摄像机的内参数以及摄像机的外参数


(


即靶标坐标系


相对于摄像机坐标系的变换关系


)


,根据网格点的笛卡尔空间坐标,将网格角点反投影到图


像空间。



(7)



Analyse error


”键:图像空间的误差分析



(8)



Recomp. corners


”键:重新提取网格角点。



(9)



Add/Suppress images


”键:增加


/


删除图像。



(10)



Save


”键:保存标定结果。将内参数标定结果以及摄像机与靶标之间的外参数


保存为


m


文件


Ca lib_results.m


,存放于


toolbox_cal ib


目录中。



(11)

< p>


Load


”键:读入标定结果。从存放于


toolbox_calib


目录中的标定结果文件

< br>Calib_


读入。



(12)



Exit


”键:退出标定。



(13)



Comp. Extrinsic


”键:计算外参数。



(14)



Undistort image


”键:生成消除畸变后的图像并保存。



(15)



Export calib data



键:输出标定数据。分别以靶标坐标系 中的平面坐标和图像中


的图像坐标,将每一幅靶标图像的角点保存为两个


tex


文件。



(16)



Show calib results


”键:显示标定结果。



1.1.3


内参数标定


< p>
预先将命名为


Image1


Image20



tif


格式的< /p>


20


幅靶标图像保存在


toolbox_ calib


目录中。


当然,采集的靶标图像也可以采用不同的格 式,如


bmp


格式、


jpg

< p>
格式等。但应注意,用于


标定的靶标图像需要采用相同的图像格式。摄像机 的内参数标定过程,如下所述。



(1)


指定图像基本名与图像格式



在图


2


所示的标定工具箱操作面板点击“


Ima ge names


”键,在


Matlab


命令窗口分别输


入基本名


Image


和图像格式


t


,出现下述对话内容:



Basename camera calibration images (without number nor suffix): Image


Image format: ([]='r'='ras', 'b'='bmp', 't'='tif', 'p'='pgm', 'j'='jpg', 'm'='ppm') t


Loading image 1...2...3...4...5...6...7 ...8...9...10...11...12...13...14...15...16...17.. .18...19...20...


done


同时,在


Matlab


的图形窗口显示出


20


幅靶标图像,如图


3


所示。

< br>



2



Calibration images




3


靶标图像



(2)


提取角点



在图


2


所示的标定工具箱操作面板点击“


Extract grid corners


”键。



?




Mat lab


命令窗口出现“


Number(s) of image(s) to process ([] = all images) =


”时,


输入要进行角点提取的靶标图像的编号并回车。


直接回车 表示选用缺省值。


选择缺


省值式,对读入的所有的靶标图像进行 角点提取。



?



Matlab


命令窗口出现“


W indow size for corner finder (wintx and winty):


”时,分


别在“


wintx ([] = 5) =


”和“


winty ([] = 5) =


”输入行中输入角点提取区域的窗口半



m< /p>


和半高


n



m< /p>



n


为正整数,单位为像素,缺省值为< /p>


5


个像素。选定


m



n


后,命令窗口显示角点提取区域的窗口尺寸


(2


n


+1)x(2


m


+1)


。例如,选择缺省时角


点提取区域的 窗口尺寸为


11x11


像素。



?




Mat lab


命令窗口出现



Do you want to use the automatic square counting mechanism


(0=[]=default)


or


do


you


always


want


to


enter


the


number


of


squares


manually


(1,other)?


”时,选择缺省值

0


表示自动计算棋盘格靶标选定区域内的方格行数和


列数, 选择值


1


表示人工计算并输入棋盘格靶标选定区域内的方格行数 和列数。



?



到显示所选择靶标图像的图形窗口,


利用鼠标点击设定棋盘格靶标的选定区域。



击的第一个角点作为靶标坐标系的原点,


顺 序点击


4


个角点形成四边形。


注意,< /p>



形成的四边形的边应与棋盘格靶标的网格线基本平行。否则,影 响角点提取精度,


甚至导致角点提取错误。



?




Mat lab


命令窗口出现



Size dX of each square along the X direction ([]=100mm) =



和“


Size dY of each square along the Y direction ([]=100mm) =


”时,分别输入方格


长度和宽度,单位为


mm


。方格长度和宽度的缺省值均为


100mm



?




Matlab


命令窗口出现“


Nee d of an initial guess for distortion? ([]=no, other=yes)



时,如果选择


no


则不输入畸变初始值,如果选择


yes

< br>则输入畸变初始值。输入的


畸变初始值,


将同时赋值给需 要估计的


5


个畸变系数,


即径向畸变系 数


kc(1)



kc(2)

< p>


kc(5)


和切向畸变系数

kc(3)



kc(4)


。如果不 估计


6


阶径向畸变系数


kc(5)


,则


kc(5)


被赋值为

< br>0




按照上述步骤,对用于标 定的每一幅靶标图像进行角点提取。例如,


m


=5



n


=5


时,角

< p>
点提取区域的窗口尺寸为


11x11


像素,未输入 畸变初始值,此时图像


Image6


的角点提取结


果如图


4


所示。



4(a)


只标出了待提取角点的位置,图


4(b )


标出了角点提取区域窗口和提取


出的角点。从图


4


中可以发现,图


4(a)


中的十字标记位置与角点具有明显偏差,但在角点附



3



近;



4( b)


中的每个角点提取区域窗口包含了角点,


表示角点提取结果 的十字标记位置与角


点位置具有很好的吻合度。同样在


m


=5



n


=5


时,未输入畸变初始值,但通过鼠标点击设定


棋盘格靶标的选定区域时 ,


所形成的四边形的边与棋盘格靶标的网格线成较大夹角,


此时 图



Image1


的角点提取结果如图


5


所示。从图


5


中可以发现,图


5(a)


中的十字标记位置与角


点具有明显偏差,


部分十字标记远离角点;



5(b)


中的很多角点提取区域窗口没有包含角点,

< br>表示角点提取结果的十字标记位置并不在角点位置,说明角点提取存在错误。



The red crosses should be close to the image corners


50


100


150


200


250


300


350


400


450


1 00


200


Y


O


X


300


400


500


600



(a)


Extracted corners


50

100


150


Y


c



(


i


n



c


a


m


e


r


a



f


r


a


m


e

< br>)


200


250


300


350


400


450


1 00


200


300


400


X


c (in camera frame)


500


600


dY


O


dX



(b)



4


合适的靶标选定区域与角点提取结果,


(a)


靶标选定区域,


(b)


角点提取结果



(3)


内参数标定



对用于标定的每一幅靶标 图像进行角点提取后,


在图


2


所示的标 定工具箱操作面板点击



Calibration


”键,即可完成摄像机的内参数标定。



内参数标定 时,


Matlab


工具箱首先进行初始化,即将图像中心点坐标 作为主点坐标的


初始值,


采用平面靶标网格的消失点估计出摄像 机的内参数作为内参数的初始值,


畸变初始


值设为


0



镜头畸变采用包括径向畸变和切向畸变的


Brown


畸变模型,


并假设


6


阶径向畸变


系数


kc(5) =0


。假设摄像机的


x


轴与

< p>
y


轴严格垂直,即图像坐标


(

u


,


v


)


与归一化成像平面内的


成像点坐标


(


x


c1


,


y


c1


)


解耦,


k


s


=0



内参数采用


4


参数模型。


数组


est_d ist(1:5)


是畸变系数


kc(1:5)

< br>是否标定的标志,只对标志取值为


1


的畸变系数标定,标 志取值为


0


的畸变系数不标定。




4



The red crosses should be close to the image corners


50


100


150


200


250


300


350


400


450


1 00


200


300


400


500


600


Y


O


X



(a)


Extracted corners


50

100


150


Y


c



(


i


n



c


a


m


e


r


a



f


r


a


m


e

< br>)


200


250


300


350


400


450


1 00


200


300


400


X


c (in camera frame)


500


600


dY


O


dX



(b)



5


错误的靶标选定区域与角点提取结果,


(a)


靶标选定区域,


(b)


角点提取结果



内参数标定给出初始化后的标定结果和优化后的标定结果。


其中,

< br>对内参数的优化采用


L-M


梯度下降法。优化后的结果中 给出的参数不确定性,是


3


倍的标准方差。

fc


中的两个


数据分别是


k


x



k


y

< p>
,即焦距归一化成像平面上的成像点坐标到图像坐标的放大系数。


cc



光轴中心点的图像坐标


(


u


0


,


v

< br>0


)


,又称为主点坐标,单位为像素。

< br>alpha_c


是对应于图像坐标


v

的摄像机的实际


y


轴与理想


y


轴之间的夹角


?


c


,单位为弧度,默认值为


0


弧度。后续给出的

< br>图像轴之间的夹角为对应于图像坐标


u



v


的摄像机的


x


< p>
y


轴之间的夹角,默认值为


90

< br>?



est_alpha



alpha_c


是否标定的标志位,只有


e st_alpha=1


时对


alpha_c

进行标定。


kc


为畸变


系数


k


c


1


~

< p>
k


c


5



kc(1)


为二阶径向畸变系数


k

c


1



kc(2)



4


阶径向畸变系数


k


c


2



kc(5)< /p>



6


阶径向


畸变 系数


k


c


5



kc(3)


为图像坐标


u


对应于


xy


项的切向畸变系数


k


c


3



k c(4)


为图像坐标


v


对应

< p>


xy


项的切向畸变系数


k


c


4



er r


为将网格角点反投影到图像空间的误差的标准方差,单位


为像 素。在优化后的结果中,不确定性的数值越小,说明标定的精度越高。


如果不确定性项< /p>


的数值与结果值相比所占比例较大,则需要重新标定。



初始化后的标定结果:



Focal Length:









fc = [ 673.45516




673.45516 ]


Principal point:








cc = [ 319.50000




239.50000 ]



5



Skew:












lpha_c = [ 0.00000 ]




=> angle of pixel = 90.00000 degrees


Distortion:











kc = [ 0.00000




0.00000




0.00000




0.00000




0.00000 ]


优化后的标定结果:



Focal Length:






fc = [ 657.80887




658.51372 ] ±


[ 1.86106




1.34683 ]


Principal point:





cc = [ 302.95191




248.06759 ] ±


[ 1.88046




2.85817 ]


Skew:



alpha_c = [ 0.00000 ]±


[ 0.00000] => angle of pixel axes = 90.00000 ±


0.00000 degrees


Distortion:


kc


=


[


-0.25853



0.14834



0.00074



-0.00030



0.00000


]


±


[


0.00784



0.03727



0.00085



0.00042



0.00000 ]


Pixel error:





err = [ 0.15205




0.12424 ]


(4)


显示摄像机与标定靶标之间的关系



完成内参数标定后,在标定工具箱操作面板点击“


Show < /p>


Extrinsic


”键,即可在新的图


形窗口显示摄像机与标定靶标之间的关系,


如图


6


所示。



6(a)


为假设摄 像机固定时摄像机


与靶标之间的关系,图


6(b)


为假设靶标固定时摄像机与靶标之间的关系。



Extrinsic parameters (world- centered)


Extrinsic parameters (camera-c entered)


2


3


1500


500


1


5


4


5


Z


w


o

< p>
r


l


d


1500


2000


2500


O


c


Z


c


X


c


Y


c


500


0


500


0


3


4


1


2


1000


-5 00


-500


0


500


1000


0


0


500


1000


X


w


orld


-1000


-500


0


500


1000


Y


w


orld



(a)






































(b)



6


摄像机坐标系与靶标之间的关系,


(a)


摄像机固定,


(b)


靶标固定




(5)


误差分析


< br>完成内参数标定后,在标定工具箱操作面板点击“


Analyse error< /p>


”键,即可在新的图形


窗口显示出标定使用的所有角点反投影到图 像空间的图像坐标误差,如图


7


所示。在图

7


所示的图形窗口,


利用鼠标移动十字标尺可以选择角点,


即可在命令窗口显示出该角点的信


息,包括该角点所属图像、索 引号、以方格为单位的坐标、图像坐标、反投影后的图像坐标


误差、角点提取区域的窗口 半宽


m


和半高


n




选择角点后在命令窗口显示的信息:



Selected image: 5


Selected point index: 51


Pattern coordinates (in units of (dX, dY)): (X,Y)=(11, 8)


Image coordinates (in pixel): (426.32, 261.58)


Pixel error = (-0.05908, 0.17309)


Window size: (wintx,winty) = (6, 6)


(6)


反投影到图像空间



完成内参数标定后,在标定工具箱操作面板点击“


Project


on


image


”键,在

< p>
Matlab



令窗口出现



Number(s) of image(s) to process ([] = all images) =



时,


输入要进行反投影的靶


标图像的编号并回车。


直接回车表示选 用缺省值。


选择缺省值式,


对用于标定的所有靶标图

< p>


6



像进行反投影。


选择图像后,


在新的图形窗口显示反投影结果,


并在命令窗口输出用于标定


的所有靶标图像的角点反投影的图像误差的标准方差 。


Image6


反投影的结果如图


8< /p>


所示,


其中“


+


”为角点的图像坐标位置,



o


”为角 点反投影的图像坐标位置。



点击“


Project on image


”键后,在命令窗口显示的信息如下:



Number(s) of image(s) to show ([] = all images) = 6


Pixel error:







err = [0.66512




0.41428] (all active images)


Reprojection error (in pixel) - To exit: right button


0.4


0.3


0.2


0.1


0


y


-0.1


-0.2


-0.3


-0.4


-0.5


-0.6


- 0.4


-0.2


x


0

< br>0.2


0.4




7


反投影到图像空间的角点图像坐标误差



Image 6 - Image points (+) and reprojected grid points (o)


50


100


150


200


250


300


350


400


4 50


100


200


Y

< br>O


X


300


400


500


600




8 Image6


的角点反投影结果



(7)


图像畸变校正



完成内参数标定后,在标定工具箱操作面板点击“


Undistort im age


”键,则按照畸变系


数对读入的所有靶标图像进行处理, 生成消除畸变后的图像并保存在


toolbox_calib


目 录中。


生成的消除畸变后的图像,


以原图像的文件名在基本名和 编号之间插入


_rect


作为其文件名。



9


所示为


Image6

< p>
的原始图像和消除畸变后的图像。



(8)


增加


/


删除图像



在标定工具箱操作面板点击“


Add/Suppress im age


”键,在命令窗口输入代表增加图像、


删除图像的数字, 然后输入图像编号,可以增加


/


删除标定使用的图像。



(9)


重新提取网格角点




7



完成内参数标定后,在标定工具 箱操作面板点击“


Recomp. corners


”键,在命 令窗口输


入角点提取区域的窗口半宽


m


和半高


n



输入重新提取网格角点的图 像编号、


选择冲投影方


式后,


即可对所 选图像重新进行角点提取。


重新进行角点提取后,


可以再次进行 内参数标定。


重新提取网格角点时采用了以前的标定结果,


经过 重新提取网格角点再次标定后,


内参数标


定精度会有所提高。如 果初次角点提取的效果较好,则重新进行网格角点提取的作用不大。



点击“


Recomp. corners


”键后,在命令窗口显示的信息如下:



Re-extraction of the grid corners on the images (after first calibration)


Window size for corner finder (wintx and winty):


wintx ([] = 5) =



winty ([] = 5) =



Window size = 11x11


Number(s) of image(s) to process ([] = all images) =



Use the projection of 3D grid or manual click ([]=auto, other=manual):



Processing image 1...2...3...4...5...


done



(a)




































(b)



9


原始图像和校正后图像,


(a)


原始图像




(b)


消除畸变后的图像




1.1.4


外参数标定



外参数标定是在内参数已 知的前提下进行的。


在完成摄像机的内参数标定后,


或者在命< /p>


令窗口输入摄像机的内参数后,


可以对棋盘格靶标相对于摄像机的 外参数进行标定。


在标定


工具箱操作面板点击“


Comp. Extrinsic


”键,在命令窗口输入靶标图像名称和图像格 式,再


按照


1.1.2



(2)


中的过程提取角点,可实现靶标相对于摄像机的外参数标定。



外参数标定时,在命令窗口显示的信息如下:



Computation of the extrinsic parameters from an image of a pattern


The intrinsic camera parameters are assumed to be known (previously computed)


Image name (full name without extension): Image1


Image format: ([]='r'='ras', 'b'='bmp', 't'='tif', 'p'='pgm', 'j'='jpg', 'm'='ppm') t


Extraction of the grid corners on the image


Window size for corner finder (wintx and winty):


wintx ([] = 5) =



winty ([] = 5) =



Window size = 11x11



8

-


-


-


-


-


-


-


-



本文更新与2021-02-13 15:21,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/650931.html

Matlab摄像机标定工具箱的使用说明的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文