




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、v1.0可編輯可修改11攝像機(jī)標(biāo)定工具箱Matlab攝像機(jī)標(biāo)定工具箱toolboxcalib工具箱下載:說(shuō)明文檔:安裝:將下載的工具箱文件解壓縮,將目錄 拷貝到Matlab的目錄下。采集圖像:采集的圖像統(tǒng)一命名后,拷貝到toolbox_calib 目錄中。命名規(guī)則為基本名3位十進(jìn)制數(shù)字。和編號(hào),基本名在前,后面直接跟著數(shù)字編號(hào)。編號(hào)最多為1.1.1標(biāo)定模型內(nèi)參數(shù)標(biāo)定采用的模型如式(1-1)所示,式中:(u, v)是特征點(diǎn)的圖像坐標(biāo),kx 0UoXc/zcxc1Voyc/zcMin Yc1111Brown畸變模型式(1-2)所示。ks ky 0(1-1)(xc, yc, zc)是特征點(diǎn)在攝像機(jī)坐
2、標(biāo)系的坐標(biāo),kx、ky是焦距歸一化成像平面上的成像點(diǎn)坐標(biāo)到圖像坐標(biāo)的放大系數(shù),ks是對(duì)應(yīng)于圖像坐標(biāo)u、 v的攝像機(jī)的x、y軸之間不垂直帶來(lái)的耦合放大系數(shù),(uo,Vo)是光軸中心點(diǎn)的圖像坐標(biāo)即主點(diǎn)坐標(biāo),(xci, yc1)是焦距歸一化成像平面上的成像點(diǎn)坐標(biāo)。ks=ckx,c是攝像機(jī)的實(shí)際y軸與理想y軸之間的夾角,單位為弧度。21xc1dXci(1kcrkc2 ryc1d ys(1kc/ angle of pixel = degreesDistortion:kc =優(yōu)化后的標(biāo)定結(jié)果:Focal Length: fc = Principal point: cc = Skew: alpha_c =
3、= angle of pixel axes = degreesDistortion: kc = Pixel error: err = (4)顯示攝像機(jī)與標(biāo)定靶標(biāo)之間的關(guān)系完成內(nèi)參數(shù)標(biāo)定后,在標(biāo)定工具箱操作面板點(diǎn)擊“ ShowExtrinsic ”鍵,即可在新的圖形窗口顯示攝像機(jī)與標(biāo)定靶標(biāo)之間的關(guān)系,如圖6所示。圖6(a)為假設(shè)攝像機(jī)固定時(shí)攝像機(jī)與靶標(biāo)之間的關(guān)系,圖 6(b)為假設(shè)靶標(biāo)固定時(shí)攝像機(jī)與靶標(biāo)之間的關(guān)系。Extrinsic parameters (camera-centered)(a)Extrinsic parameters (world-centered)Xw orldRtl l l
4、Ofe* CAlTrtl 七11 SwU 由 bo c-Bmwa-cirtcfed ew(b)#v1.0可編輯可修改圖6攝像機(jī)坐標(biāo)系與靶標(biāo)之間的關(guān)系,(a)攝像機(jī)固定,(b)靶標(biāo)固定(5)誤差分析完成內(nèi)參數(shù)標(biāo)定后,在標(biāo)定工具箱操作面板點(diǎn)擊“ Analyse error ”鍵,即可在新的圖 形窗口顯示出標(biāo)定使用的所有角點(diǎn)反投影到圖像空間的圖像坐標(biāo)誤差,如圖7所示。在圖7所示的圖形窗口,利用鼠標(biāo)移動(dòng)十字標(biāo)尺可以選擇角點(diǎn),即可在命令窗口顯示出該角點(diǎn)的信息,包括該角點(diǎn)所屬圖像、索引號(hào)、以方格為單位的坐標(biāo)、圖像坐標(biāo)、反投影后的圖像坐標(biāo) 誤差、角點(diǎn)提取區(qū)域的窗口半寬m和半高n。選擇角點(diǎn)后在命令窗口顯示的信
5、息:Selected image: 5Selected point index: 51Pattern coordinates (in units of (dX, dY): (X,Y)=(11,8)Image coordinates (in pixel):,Pixel error =,Window size: (wintx,winty) = (6, 6)(6)反投影到圖像空間完成內(nèi)參數(shù)標(biāo)定后,在標(biāo)定工具箱操作面板點(diǎn)擊“ Project on image ”鍵,在 Matlab 命令窗口出現(xiàn)Number(s) of image(s) to process ( = all images)=時(shí),輸入要
6、進(jìn)行反投影的靶標(biāo)圖像的編號(hào)并回車(chē)。直接回車(chē)表示選用缺省值。 選擇缺省值式,對(duì)用于標(biāo)定的所有靶標(biāo)圖像進(jìn)行反投影。 選擇圖像后,在新的圖形窗口顯示反投影結(jié)果,并在命令窗口輸出用于標(biāo)定的所有靶標(biāo)圖像的角點(diǎn)反投影的圖像誤差的標(biāo)準(zhǔn)方差。Image6反投影的結(jié)果如圖8所示,其中“ +”為角點(diǎn)的圖像坐標(biāo)位置,“o”為角點(diǎn)反投影的圖像坐標(biāo)位置。點(diǎn)擊“Project on image ”鍵后,在命令窗口顯示的信息如下:Number(s) of image(s) to show ( = all images) = 6Pixel error: err = (all active images)99v1.0可編輯可修
7、改Reprojection error (in pixel) - To exit: right button0.40.30.20.10-0.1-0.2-0.3-0.4-0.5-0.6-0.4-0.200.20.4x圖7反投影到圖像空間的角點(diǎn)圖像坐標(biāo)誤差I(lǐng)mage 6 - Image points (+) and reprojected grid points (o)50100150200250300350400450100200300400500600圖8 Image6的角點(diǎn)反投影結(jié)果(7)圖像畸變校正完成內(nèi)參數(shù)標(biāo)定后,在標(biāo)定工具箱操作面板點(diǎn)擊“ Undistort image ”鍵,則按照畸
8、變 系數(shù)對(duì)讀入的所有靶標(biāo)圖像進(jìn)行處理,生成消除畸變后的圖像并保存在toolbox_calib 目錄中。生成的消除畸變后的圖像,以原圖像的文件名在基本名和編號(hào)之間插入_rect作為其文件名。圖9所示為Image6的原始圖像和消除畸變后的圖像。(8)增加/刪除圖像在標(biāo)定工具箱操作面板點(diǎn)擊“Add/Suppress image”鍵,在命令窗口輸入代表增加圖像、刪除圖像的數(shù)字,然后輸入圖像編號(hào),可以增加/刪除標(biāo)定使用的圖像。#v1.0可編輯可修改(9)重新提取網(wǎng)格角點(diǎn)完成內(nèi)參數(shù)標(biāo)定后,在標(biāo)定工具箱操作面板點(diǎn)擊“ Recomp. corners ”鍵,在命令窗口輸入角點(diǎn)提取區(qū)域的窗口半寬肝口半高n、輸入
9、重新提取網(wǎng)格角點(diǎn)的圖像編號(hào)、選擇沖投影方式后,即可對(duì)所選圖像重新進(jìn)行角點(diǎn)提取。重新進(jìn)行角點(diǎn)提取后,可以再次進(jìn)行內(nèi)參數(shù)標(biāo)定。重新提取網(wǎng)格角點(diǎn)時(shí)采用了以前的標(biāo)定結(jié)果,經(jīng)過(guò)重新提取網(wǎng)格角點(diǎn)再次標(biāo)定后,內(nèi)參數(shù)標(biāo)定精度會(huì)有所提高。如果初次角點(diǎn)提取的效果較好,則重新進(jìn)行網(wǎng)格角點(diǎn)提取的作用不 大。點(diǎn)擊“Recomp. corners ”鍵后,在命令窗口顯示的信息如下:Re-extraction of the grid corners on the images (after first calibration)Window size for corner finder (wintx and winty):w
10、intx ( = 5)=winty ( = 5)=Window size = 11x11Number(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.45 done(a)(b)圖9原始圖像和校正后圖像,(a)原始圖像(b)消除畸變后的圖像1111v1.0可編輯可修改1.1.4 外參數(shù)標(biāo)定外參數(shù)標(biāo)定是在內(nèi)參數(shù)已知的前提下進(jìn)行的。 在完成攝像機(jī)的內(nèi)參數(shù)標(biāo)定后,或者在命令窗口輸入攝像機(jī)
11、的內(nèi)參數(shù)后, 可以對(duì)棋盤(pán)格靶標(biāo)相對(duì)于攝像機(jī)的外參數(shù)進(jìn)行標(biāo)定。 在標(biāo)定 工具箱操作面板點(diǎn)擊“Comp. Extrinsic ”鍵,在命令窗口輸入靶標(biāo)圖像名稱(chēng)和圖像格式, 再按照1.1.2節(jié)(2)中的過(guò)程提取角點(diǎn),可實(shí)現(xiàn)靶標(biāo)相對(duì)于攝像機(jī)的外參數(shù)標(biāo)定。外參數(shù)標(biāo)定時(shí),在命令窗口顯示的信息如下:Computation of the extrinsic parameters from an image of a patternThe intrinsic camera parameters are assumed to be known (previously computed)Image name (fu
12、ll name without extension): Image1Image format: (=r=ras,b=bmp,t=tif,p=pgm,j=jpg,m=ppm) tExtraction of the grid corners on the imageWindow size for corner finder (wintx and winty):wintx ( = 5)=winty ( = 5)=Window size = 11x11Click on the four extreme corners of the rectangular complete pattern (the f
13、irst clicked corner is the origin).Size dX of each square along the X direction (口=30mm) = 100Size dY of each square along the Y direction (口=30mm) = 100 Corner extraction.外參數(shù)標(biāo)定結(jié)果如下:Translation vector: Tc_ext =Rotation vector: omc_ext =Rotation matrix: Rc_ext =#v1.0可編輯可修改Pixel error:err =在外參數(shù)標(biāo)定結(jié)果中,T
14、c_ext為靶標(biāo)坐標(biāo)系原點(diǎn)在攝像機(jī)坐標(biāo)系中的位移向量,單位為mm omc_ext為對(duì)應(yīng)于姿態(tài)矩陣的 rodrigues 旋轉(zhuǎn)向量;Rc_ext為旋轉(zhuǎn)矩陣;err為將網(wǎng) 格角點(diǎn)反投影到圖像空間的誤差的標(biāo)準(zhǔn)方差,單位為像素。1.1.5 立體視覺(jué)標(biāo)定在進(jìn)行立體視覺(jué)標(biāo)定之前,按照1.1.2節(jié)方法分別標(biāo)定立體視覺(jué)系統(tǒng)的左、右攝像機(jī)的內(nèi)參數(shù)。左攝像機(jī)采集的圖像與右攝像機(jī)采集的圖像分別命名,左攝像機(jī)采集的圖像命名為left1left14 ,右攝像機(jī)采集的圖像命名為right1right14 。左攝像機(jī)內(nèi)參數(shù)的標(biāo)定結(jié)果保存后的文件重命名為,右攝像機(jī)的標(biāo)定結(jié)果保存后的文件重命名為。在Matlab命令窗口運(yùn)行st
15、ereo_gui指令,彈出圖10所示立體視覺(jué)標(biāo)定工具箱窗口。,匚 mmur無(wú)匚白librntion ToQlboK|Load left and right calibration filfRunstarto oallbrationIxtrinsics: oftigShew Iniiiiinsk p日qeWwfsSdue stereo。啟hb resultsLoadtere callb resultsR eictrfy the cs 1 b raii qn ied g g.Exit圖10立體視覺(jué)標(biāo)定工具箱操作面板圖10所示的標(biāo)定工具箱操作面板具有8個(gè)操作命令鍵,其功能如下:(1) “Load l
16、eft and right calibration files”鍵:讀入左、右攝像機(jī)的標(biāo)定結(jié)果,并對(duì)左攝像機(jī)相對(duì)于右攝像機(jī)的位姿進(jìn)行初步標(biāo)定。在圖 10 所示操作面板點(diǎn)擊“Load left and right calibration files ”鍵,在 Matlab 的命令窗口輸入左攝像機(jī)的標(biāo)定結(jié)果文件名和右攝像機(jī)的標(biāo)定結(jié)果文件名,則在命令窗口顯示下述內(nèi)容:Intrinsic parameters of left camera:Focal Length: fc_left = Principal point: cc_left = Skew: alpha_c_left = = angle of
17、 pixel axes = degreesDistortion:kc_left = 1313v1.0可編輯可修改Intrinsic parameters of right camera:Focal Length: fc_right = Principal point: cc_right = Skew: alpha_c_right = 口 土口 = angle of pixel axes = degreesDistortion:kc_right = Extrinsic parameters (position of right camera wrt left camera): Rotation
18、vector:om =Translation vector:T =顯示的結(jié)果中,fc_left是左攝像機(jī)的放大系數(shù),即焦距歸一化成像平面上的成像點(diǎn)坐標(biāo)到圖像坐標(biāo)的放大系數(shù)。cc_left為左攝像機(jī)的主點(diǎn)坐標(biāo),單位為像素。alpha_c_left是對(duì)應(yīng)于左攝像機(jī)的實(shí)際y軸與理想y軸之間的夾角,單位為弧度,默認(rèn)值為0弧度。kc_left為左攝像機(jī)的畸變系數(shù)。fc_right是右攝像機(jī)的放大系數(shù),即焦距歸一化成像平面上的成像點(diǎn)坐標(biāo)到圖像坐標(biāo)的放大系數(shù)。cc_right為右攝像機(jī)的主點(diǎn)坐標(biāo),單位為像素。alpha_c_right是對(duì)應(yīng)于右攝像機(jī)的實(shí)際y軸與理想y軸之間的夾角,單位為弧度,默認(rèn)為0弧度。
19、kc_right為右攝像機(jī)的畸變系數(shù)。om為左攝像機(jī)相對(duì)于右攝像機(jī)的姿態(tài)矩陣的rodrigues旋轉(zhuǎn)向量,利用函數(shù) rodrigues可以轉(zhuǎn)換為姿態(tài)矩陣。T為左攝像機(jī)相對(duì)于右攝 像機(jī)的位移向量,即左攝像機(jī)坐標(biāo)系原點(diǎn)在右攝像機(jī)坐標(biāo)系中的位移向量,單位mmrodrigues(om)=(2) Run stereo calibration ”鍵:計(jì)算優(yōu)化后的外參數(shù)。在圖10所示操作面板點(diǎn)擊“Run stereo calibration ”鍵,則在 Matlab的命令窗口輸出左、右攝像機(jī)的內(nèi)參數(shù)和優(yōu)化后的外參數(shù)。輸出結(jié)果如下所示:Intrinsic parameters of left camera:F
20、ocal Length: fc_left = Principal point: cc_left = #v1.0可編輯可修改Skew: alpha_c_left = 口 = angle of pixel axes = degreesDistortion:kc_left = Intrinsic parameters of right camera:Focal Length: fc_right = Principal point: cc_right = Skew: alpha_c_right = 口 = angle of pixel axes = + degreesDistortion:kc_rig
21、ht = Extrinsic parameters (position of right camera wrt left camera):Rotation vector: om = Translation vector: T = (3) Show Extrinsics of stereo rig ”鍵:顯示靶標(biāo)相對(duì)于攝像機(jī)的位姿,如圖 11所示。(4) ShowIntrinsic parameters ”鍵:在 Matlab的命令窗口顯示左、右攝像機(jī)的內(nèi)參數(shù)和優(yōu)化后的外參數(shù)。(5) Save stereo calib results ”鍵:將標(biāo)定結(jié)果保存為文件,存放于toolbox_calib
22、目錄中。(6) “Load stereo calib results ”鍵:讀入標(biāo)定結(jié)果。從存放于toolbox_calib 目錄中的標(biāo)定結(jié)果文件讀入?!癛ectify the calibration images”鍵:按照畸變系數(shù)對(duì)左、右攝像機(jī)采集的所有靶標(biāo)圖像進(jìn)行處理,生成消除畸變后的圖像并保存在toolbox_calib 目錄中。生成的消除畸變后的圖像,以原圖像的文件名在基本名和編號(hào)之間插入.rectified作為其文件名。(8)“Exit ”鍵:退出立體視覺(jué)標(biāo)定。1515v1.0可編輯可修改Extrinsic parameters17 123 8? 1K3100500-50 .-100
23、 .-150 .-1001004511103002001002000500Le,t Ca R圖11靶標(biāo)相對(duì)于攝像機(jī)的位姿1.1.6 標(biāo)定注意事項(xiàng)在采用Matlab工具箱的攝像機(jī)標(biāo)定中,內(nèi)參數(shù)標(biāo)定是進(jìn)行其它參數(shù)標(biāo)定的基礎(chǔ)。首先 需要完成內(nèi)參數(shù)標(biāo)定,才能進(jìn)行外參數(shù)標(biāo)定或者立體視覺(jué)標(biāo)定、手眼標(biāo)定等。因此,內(nèi)參數(shù) 標(biāo)定過(guò)程中需要注意的問(wèn)題,在其它所有的標(biāo)定中都應(yīng)注意。(1)內(nèi)參數(shù)標(biāo)定需要注意的問(wèn)題制作棋盤(pán)格靶標(biāo)時(shí)應(yīng)特別注意,黑色方格與白色方格尺寸需要相同,而且所有方格的尺寸必須嚴(yán)格一致。靶標(biāo)的方格數(shù)量不宜太小,行數(shù)和列數(shù)以大于10為宜。方格的尺寸不宜太大或太小, 采集的整幅靶標(biāo)圖像中方格的邊長(zhǎng)尺寸不小
24、于20像素。采集靶標(biāo)圖像時(shí)應(yīng)特別注意,需要在不同的角度不同的位置采集靶標(biāo)的多幅圖像。采集到的圖像必須清晰,靶標(biāo)圖像尺寸以占整幅圖像尺寸的1/33/4為宜。靶標(biāo)圖像最好在整幅圖像的不同位置都有分布,不宜過(guò)于集中于同一區(qū)域。靶標(biāo)放置位置與攝像機(jī)之間的距離最好為視覺(jué)系統(tǒng)的主要工作距離。靶標(biāo)相對(duì)于攝像機(jī)的角度應(yīng)有較大范圍的變化,應(yīng)包含繞三個(gè)軸較大角度的旋轉(zhuǎn),最好不小于30度。采集的靶標(biāo)圖像數(shù)量不應(yīng)太少,建議以1020幅靶標(biāo)圖像為宜。采集圖像過(guò)程中,攝像機(jī)的焦距不能調(diào)整。因?yàn)榻咕鄬儆跀z像機(jī)的內(nèi)參數(shù),不同焦距下采集的圖像隱含了不同的內(nèi)參數(shù),這些圖像放在一起進(jìn)行標(biāo)定不能得到正確的 結(jié)果。 #v1.0可編輯可
25、修改采集的靶標(biāo)圖像統(tǒng)一命名,由基本名和編號(hào)構(gòu)成,如 Image1Image15。靶標(biāo)圖像 的數(shù)據(jù)格式必須相同。將靶標(biāo)圖像拷貝到 toolbox_calib 目錄中。提取角點(diǎn)時(shí),在圖形窗口利用鼠標(biāo)點(diǎn)擊設(shè)定棋盤(pán)格靶標(biāo)的選定區(qū)域。點(diǎn)擊的第一個(gè)角點(diǎn)作為靶標(biāo)坐標(biāo)系的原點(diǎn),順序點(diǎn)擊4個(gè)角點(diǎn)形成四邊形。 相鄰兩次點(diǎn)擊的角點(diǎn)應(yīng)在同一條網(wǎng)格線(xiàn)上,使得所形成的四邊形的邊應(yīng)與棋盤(pán)格靶標(biāo)的網(wǎng)格線(xiàn)基本平行。為提高點(diǎn)擊的角點(diǎn)的精度,建議將顯示靶標(biāo)圖像的圖像窗口放大到最大,利用鼠標(biāo)的十字標(biāo)線(xiàn)盡可能準(zhǔn)確的點(diǎn)擊4個(gè)角點(diǎn)。攝像機(jī)的實(shí)際y軸與理想y軸之間的夾角c是否標(biāo)定,由est_alpha標(biāo)志位設(shè)定。est_alpha=1 時(shí)對(duì)
26、 alpha_c 進(jìn)行標(biāo)定, est_alpha=0 時(shí)不對(duì) alpha_c 進(jìn)行標(biāo)定。數(shù)組est_dist(1:5) 是畸變系數(shù)kc(1:5)是否標(biāo)定的標(biāo)志,只對(duì)標(biāo)志取值為 1的畸 變系數(shù)標(biāo)定,標(biāo)志取值為 0的畸變系數(shù)不標(biāo)定。默認(rèn)值為 est_dist(1:5)=11 1 10,即對(duì)畸變系數(shù) kc1kc4進(jìn)行標(biāo)定,對(duì) kc5不進(jìn)行標(biāo)定,kc5 = 0o運(yùn)行calib_gui 指令后,Matlab處于busy狀態(tài),Matlab命令窗口不再響應(yīng)其它命 令。只有在點(diǎn)擊標(biāo)定工具箱的 Exit 鍵退出標(biāo)定后,Matlab命令窗口才能恢復(fù) 響應(yīng)其它命令。(2)外參數(shù)標(biāo)定需要注意的問(wèn)題方格尺寸必須輸入實(shí)際
27、尺寸。提取角點(diǎn)時(shí),在圖形窗口利用鼠標(biāo)點(diǎn)擊的第一個(gè)角點(diǎn)作為靶標(biāo)坐標(biāo)系的原點(diǎn),得到的外參數(shù)是靶標(biāo)坐標(biāo)系在攝像機(jī)坐標(biāo)系中的位姿。rodrigues 旋轉(zhuǎn)向量omc_ext與姿態(tài)矩陣 Rc_ext可以利用rodrigues 函數(shù)進(jìn)行轉(zhuǎn) 換。omc_ext=rodrigues(Rc_ext) , Rc_ext=rodrigues(omc_ext) 。(3)立體視覺(jué)標(biāo)定需要注意的問(wèn)題提取角點(diǎn)時(shí),在圖形窗口利用鼠標(biāo)點(diǎn)擊的第一個(gè)角點(diǎn)作為靶標(biāo)坐標(biāo)系的原點(diǎn),左右攝像機(jī)對(duì)應(yīng)的靶標(biāo)圖像對(duì)需要選擇相同的第一個(gè)角點(diǎn)作為原點(diǎn)。其他的3個(gè)角點(diǎn)在 左右攝像機(jī)的靶標(biāo)圖像中也應(yīng)相同。1717v1.0可編輯可修改左右攝像機(jī)采集的圖像
28、數(shù)量必須相同。相同的編號(hào)的左右攝像機(jī)采集的圖像是靶標(biāo)在同一位姿時(shí)左右攝像機(jī)采集的圖像,構(gòu)成一組立體視覺(jué)的靶標(biāo)圖像對(duì)。得到的外參數(shù)是左攝像機(jī)相對(duì)于右攝像機(jī)的位姿,即左攝像機(jī)坐標(biāo)系在右攝像機(jī)坐標(biāo)系中的位姿。運(yùn)行stereo_gui指令后,Matlab命令窗口可以響應(yīng)其它命令。手眼標(biāo)定(Eye-in-Hand)需要注意的問(wèn)題首先進(jìn)行攝像機(jī)的內(nèi)參數(shù)標(biāo)定。在攝像機(jī)內(nèi)參數(shù)標(biāo)定時(shí),機(jī)器人可以不運(yùn)動(dòng), 通過(guò)改變靶標(biāo)的位置和姿態(tài)采集 1020幅靶標(biāo)圖像。角點(diǎn)提取時(shí),不需要具有相同的靶標(biāo)坐標(biāo)系原點(diǎn)。然后進(jìn)行外參數(shù)標(biāo)定。靶標(biāo)固定不動(dòng),較大幅度的改變機(jī)器人的位姿,采集510幅靶標(biāo)圖像。角點(diǎn)提取時(shí),對(duì)采用的510幅靶標(biāo)
29、圖像必須選擇相同的靶標(biāo)坐標(biāo)系 原點(diǎn),并具有相同的靶標(biāo)坐標(biāo)軸方向。得到的外參數(shù)為靶標(biāo)坐標(biāo)系在攝像機(jī)坐標(biāo)系中的位姿。利用攝像機(jī)的內(nèi)參數(shù)、機(jī)器人的末端位姿(或工具坐標(biāo)系位姿)、對(duì)應(yīng)于機(jī)器人位姿的靶標(biāo)坐標(biāo)系相對(duì)于攝像機(jī)坐標(biāo)系的位姿,計(jì)算出攝像機(jī)坐標(biāo)系相對(duì)于機(jī)器人末端坐標(biāo)系(或工具坐標(biāo)系)的位姿。具體計(jì)算方法可以利用最小二乘法。機(jī)器人的位姿從機(jī)器人控制器中讀取,一般為6維向量。其姿態(tài)部分一般為繞X、Y Z軸的旋轉(zhuǎn)角度,對(duì)應(yīng)的 3個(gè)旋轉(zhuǎn)變換的相乘順序可以查閱機(jī)器人說(shuō)明書(shū),或 者通過(guò)特定的末端位姿進(jìn)行驗(yàn)證。OpenCV攝像機(jī)標(biāo)定工具箱OpenCVO站說(shuō)明文檔:2.3.2中文網(wǎng)站攝像頭標(biāo)定:攝像頭標(biāo)定張正友標(biāo)
30、定算法:本文完整的程序代碼(運(yùn)行環(huán)境VS2008+opencv2.3.1) : 1.2.1 標(biāo)定模型OpenCW參數(shù)標(biāo)定采用的模型如式(1-3)所示,Brown畸變模型如式(1-4)所示。ukx0UoXc/ZcXc1v 0 kyV0yc/ZcMin Yc1(1-3)100111式中:(u, v)是特征點(diǎn)的圖像坐標(biāo),(xc, yc, zc)是特征點(diǎn)在攝像機(jī)坐標(biāo)系的坐標(biāo),kx、ky=6;1919(U0, Vo)是光軸中心點(diǎn)的圖UdvdUd(1 kJ2 k24 k3”) vd(1 k1r2 k24 k36)22、2 PiUdvd P2(r2Ud)22、P1(r2vd) 2 P2Udvd(1-4)是焦
31、距歸一化成像平面上的成像點(diǎn)坐標(biāo)到圖像坐標(biāo)的放大系數(shù),像坐標(biāo)即主點(diǎn)坐標(biāo),(xci, yc1)是焦距歸一化成像平面上的成像點(diǎn)坐標(biāo)。ky=akx, a是縱橫比系數(shù)。(Ud,vd)=( U,v)-( Uo,Vo), ( Ud,vd)式中:(Ud, vd)是具有畸變相對(duì)于主點(diǎn)的圖像坐標(biāo),是消除畸變后相對(duì)于主點(diǎn)的圖像坐標(biāo),(U d, v d)= ( u , v )-( U0, vo) , (u , v )是消除畸變后的圖像坐標(biāo),k1是2階徑向畸變系數(shù),k2是4階徑向畸變系數(shù),k3是6階徑向畸變系數(shù),Pi、P2是切向畸變系數(shù),為圖像點(diǎn)到主點(diǎn)的距離,r2= Ud2+ vj標(biāo)定結(jié)果給出的畸變系數(shù)為k1, k2,
32、 p1, p2, k3。由于k3主要針對(duì)與畸變較大的鏡頭,例如魚(yú)眼鏡頭,所以一般情況下該值取0。1.2.2內(nèi)參數(shù)標(biāo)定(1)首先加載多幅棋盤(pán)格靶標(biāo)圖像并設(shè)置棋盤(pán)格靶標(biāo)的內(nèi)角點(diǎn)參數(shù)。標(biāo)定過(guò)程中,需要不同視角下拍攝的棋盤(pán)格靶標(biāo)的圖像,如圖12所示。其中,內(nèi)角點(diǎn)是指黑色方塊相互聯(lián)通位置的角點(diǎn),圖12所示棋盤(pán)格靶標(biāo)的內(nèi)角點(diǎn)數(shù)量為9X6。/設(shè)置棋盤(pán)格XT向上的角點(diǎn)個(gè)數(shù)=9;/設(shè)置棋盤(pán)格YT向上的角點(diǎn)個(gè)數(shù)v1.0可編輯可修改/設(shè)置棋盤(pán)格子的邊長(zhǎng),單位為 mmfloat SquareWidth = 30;/利用cvLoadlmage函數(shù)加載圖像chessBoard_Img=cvLoadImage( filen
33、ame, 1 );(a)(b)圖12不同視角下拍攝的棋盤(pán)格圖像(2)對(duì)棋盤(pán)格靶標(biāo)圖像進(jìn)行特征點(diǎn)提取。選用cvFindChessboardCorners 函數(shù)提取一幅靶標(biāo)圖像的角點(diǎn)特征。當(dāng)一幅靶標(biāo)圖像的角點(diǎn)正確提取后,再調(diào)用函數(shù)cvFindCornerSubPix可以進(jìn)行亞像素圖像特征的提取。依次對(duì)每一幅靶標(biāo)圖像進(jìn)行角點(diǎn)特征提取。然后,調(diào)用 cvDrawChessboardCorners函數(shù),可以在棋盤(pán)格靶標(biāo)圖形上繪制出檢測(cè)到的角點(diǎn)。繪制的圖 像如圖13所示。/獲取棋盤(pán)格靶標(biāo)中的角點(diǎn),如果所有角點(diǎn)都被檢測(cè)到且它們都被以一定順序排布(一行一行地,每行從左到右),函數(shù)返回非零值,否則在函數(shù)不能發(fā)現(xiàn)或
34、者記錄所有角點(diǎn)的情況下,函數(shù)返回 0。find_corners_result=cvFindChessboardCorners(current_frame_gray,/棋盤(pán)格的灰度圖像,將chessBoard_Img進(jìn)行轉(zhuǎn)換得到ChessBoardSize,/棋盤(pán)格每行角點(diǎn)的個(gè)數(shù)和每列角點(diǎn)的個(gè)數(shù)&cornerscaptured_frames*NPoints,/檢測(cè)到的角點(diǎn)坐標(biāo)&corner_countcaptured_frames,檢測(cè)到的角點(diǎn)的個(gè)數(shù)CV_CALIB_CB_ADAPTIVE_THRESH );使用自適應(yīng)閾值/通過(guò)迭代方法求取具有子象素精度的角點(diǎn)位置cvFindCornerSubP
35、ix( current_frame_gray, /棋盤(pán)格靶標(biāo)的灰度圖像&cornerscaptured_frames*NPoints,/檢測(cè)到的角點(diǎn)坐標(biāo)NPoints, 單幅圖像中角點(diǎn)的個(gè)數(shù)cvSize(5,5),cvSize(-1,-1), 不忽略corner臨近的像素進(jìn)行精確估計(jì),cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,30, 最大迭代次數(shù)(iteration );/ 最小精度(epsilon )/在棋盤(pán)格靶標(biāo)圖像上繪制檢測(cè)到的角點(diǎn)cvDrawChessboardCorners(current_frame_rgb, /顯示繪制結(jié)果的圖
36、像ChessBoardSize,/棋盤(pán)格靶標(biāo)中每行和每列角點(diǎn)的個(gè)數(shù)(9X6)&cornerscaptured_frames*NPoints, /檢測(cè)到的角點(diǎn)坐標(biāo)NPoints, 單幅圖像角點(diǎn)的個(gè)數(shù)find_corners_result);/ 角點(diǎn)檢測(cè)成功標(biāo)志圖13將角點(diǎn)繪制在棋盤(pán)格上的效果圖(3)求取角點(diǎn)的三維世界坐標(biāo)。每一幅圖像檢測(cè)的角點(diǎn)對(duì)應(yīng)于相同的世界坐標(biāo)系,世界坐標(biāo)系以最左上方的角點(diǎn)為原點(diǎn)。例如圖13中,最左上方的角點(diǎn)世界坐標(biāo)為(0, 0, 0),其2121v1.0可編輯可修改右邊相鄰角點(diǎn)的世界坐標(biāo)為(30 , 0, 0),其下方相鄰角點(diǎn)的世界坐標(biāo)為(0, 30, 0)。依次類(lèi)推,可以得
37、到所有角點(diǎn)的世界坐標(biāo)。注意所有角點(diǎn)的Z坐標(biāo)為0,這是因?yàn)槠灞P(pán)格靶標(biāo)位于Z=0的平面上。(4)計(jì)算攝像機(jī)內(nèi)參數(shù)。運(yùn)行 cvCalibrateCamera2 函數(shù)實(shí)現(xiàn)攝像機(jī)內(nèi)參數(shù)的標(biāo)定。實(shí) 際標(biāo)定時(shí),采集1020幅棋盤(pán)格靶標(biāo)圖像可以很好地實(shí)現(xiàn)攝像機(jī)的參數(shù)標(biāo)定。應(yīng)當(dāng)注意, 多幅靶標(biāo)圖像必須在不同距離不同視角下進(jìn)行采集。/攝像機(jī)標(biāo)定cvCalibrateCamera2( object_points,/ 角點(diǎn)的三維世界坐標(biāo)image_points,角點(diǎn)的圖像坐標(biāo),由 corners口 轉(zhuǎn)換得到point_counts,/角點(diǎn)的數(shù)目,由corner_count口轉(zhuǎn)換得到cvSize(image_width
38、,image_height),/ 圖像尺寸intrinsics,/ 輸出的攝像機(jī)內(nèi)參數(shù)distortion_coe,輸出的攝像機(jī)畸變系數(shù)rotation_vectors,攝像機(jī)外參數(shù)中的旋轉(zhuǎn)向量translation_vectors,攝像機(jī)外參數(shù)中的平移向量0);/額外選項(xiàng)利用圖12所示的10幅不同角度和位置的靶標(biāo)圖像進(jìn)行了內(nèi)參數(shù)標(biāo)定,結(jié)果為:1887.14100756.021901896.0780618.7198001畸變系數(shù)為:(5)圖像重投影。獲得攝像機(jī)的內(nèi)參數(shù)、畸變系數(shù)和變換矩陣后,利用函數(shù)cvProjectPoints2可以實(shí)現(xiàn)笛卡爾空間點(diǎn)到圖像的重投影,從而在圖像空間分析誤差。/投影三維點(diǎn)到圖像平面cvProjectPoints2(object_matrix,物體點(diǎn)的坐標(biāo),為 3xNK者 Nx3的矩陣,這里N是單幅圖中的所有角點(diǎn)的數(shù)目。rotation_matrix,旋轉(zhuǎn)向量,1x3或者 3x1translation_matrix,/ 平移向量,1x3 或者 3x1。 intrinsics,/攝像機(jī)的內(nèi)參數(shù)矩陣distortion_coeff,畸變系數(shù)向量,4x1 或者 1x4,為k1,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能駕駛技術(shù)與自動(dòng)化交通系統(tǒng)考核試卷
- 空調(diào)器安裝適應(yīng)性設(shè)計(jì)考核試卷
- 纖維板制造中的清潔生產(chǎn)技術(shù)與實(shí)施考核試卷
- 煙草制品零售法律法規(guī)變動(dòng)影響考核試卷
- 行業(yè)發(fā)展趨勢(shì)考核試卷
- 租賃圖書(shū)的物流配送管理考核試卷
- 美術(shù)活動(dòng):動(dòng)物的外衣
- 婚姻忠誠(chéng)協(xié)議附件清單與效力保障合同
- 藝人彩妝品牌代言合作協(xié)議
- 兒童監(jiān)護(hù)權(quán)變更后探視安排調(diào)整合同
- 事業(yè)單位公開(kāi)招聘分類(lèi)考試公共科目筆試考試大綱(2025版)
- 汽車(chē)路試協(xié)議書(shū)
- 2023年甘肅省榆中縣事業(yè)單位公開(kāi)招聘筆試題帶答案
- 2025全員安全培訓(xùn)考試試題及完整答案(考點(diǎn)梳理)
- 高考考務(wù)人員培訓(xùn)系統(tǒng)試題答案
- 【MOOC】設(shè)計(jì)的力量-湖南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2019譯林版高中英語(yǔ)全七冊(cè)單詞總表
- 人工智能導(dǎo)論智慧樹(shù)知到課后章節(jié)答案2023年下哈爾濱工程大學(xué)
- 2018年江蘇省揚(yáng)州市中考英語(yǔ)試題(含答案)
- 投標(biāo)書(shū)(--總醫(yī)院護(hù)理保障服務(wù))
- 2019年上海市中考地理試題卷附答案詳析
評(píng)論
0/150
提交評(píng)論