SwisTrack/Components/CalibrationFileTSAI
外觀
< SwisTrack | Components
使用蔡氏提出的演算法進行相機校準。我們用它來將影像座標轉換為世界座標。有關詳細資訊,請參閱他的論文: "An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision", Roger Y. Tsai, Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, 1986, pages 364-374." 或者這個網站。校準程式碼來自該網站。
對於變形影像,TSAI 比純粹的線性二階校準方法更好。但是,它速度較慢,有時,當相機軸與設定平面正交時,TSAI 方法會導致計算錯誤和巨大錯誤,甚至導致方法崩潰。
可以在 這裡找到引數的良好介紹。
此元件與 CalibrationTSAI 不同,因為它不計算引數,而是從 xml 檔案中載入引數。
在 calibrationTools/Matlab_Octave 中提供了使用 matlab/octave 計算這些引數的工具。可以使用以下檔案
- computeTsaiCalibrationParameters.m: 從校準點座標(共面校準)計算 Tsai 引數
- TsaiImage2World.m: 使用 Tsai 校準引數將影像座標轉換為世界座標(與該元件中使用的實現相同)
- WriteTSAICalibrationParametersXMLFile.m: 以適合元件的格式寫入 Tsai 校準引數
- WriteSwisTrackCalibrationXMLFile.m: 將校準點寫入與 SwisTrack 相容的 xml 檔案
- readSwisTrackCalibrationXMLFile.m: 從與 SwisTrack 相容的 xml 檔案讀取校準點
- optimizeSx.m: 搜尋校準的最佳 sx 值
- computeError.m: 計算校準誤差
粒子
粒子
此檔案不是必需的,因為它們不用於計算校準引數。如果提供,該元件將計算校準誤差並將它們寫入日誌檔案。包含校準點的 XML 檔案的路徑。該檔案必須具有以下格式
<?xml version="1.0"?>
<pointlist>
<points>
<point>
<xworld>0.3</xworld>
<yworld>0.9</yworld>
<ximage>9.8</ximage>
<yimage>10.3</yimage>
</point>
<point>
<xworld>34.1</xworld>
<yworld>7.9</yworld>
<ximage>44.3</ximage>
<yimage>25.9</yimage>
</point>
</points>
</pointlist>
可以像此示例中的兩個點一樣新增更多點。需要至少 5 個非共線點才能計算校準。
包含校準引數的 XML 檔案的路徑。該檔案必須具有以下格式
<?xml version="1.0"?> <calibration> <parameters> <R> <aa>-0.0009487</aa> <ab>-0.95497</ab> <ac>0.29671</ac> <ba>1</ba> <bb>-0.00062456</bb> <bc>0.0011873</bc> <ca>-0.00094847</ca> <cb>0.29671</cb> <cc>0.95497</cc> </R> <T> <Tx>7.2682</Tx> <Ty>-1.1722</Ty> <Tz>-15.1438</Tz> </T> <C> <Cx>516</Cx> <Cy>389</Cy> </C> <dx> <value>4.65e-006</value> </dx> <dy> <value>4.65e-006</value> </dy> <sx> <value>1.042</value> </sx> <k> <value>-0.066654</value> </k> <f> <value>-0.01293</value> </f> </parameters> </calibration>