主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

単一カメラのキャリブレーションの精度の評価

この例では,cameraCalibratorアプリまたは関数estimateCameraParametersを使用して推定されたカメラパラメーターの精度を評価する方法を説明します。

概要

カメラのキャリブレーションは,特別なキャリブレーションパターンのイメージを使用してカメラのパラメーターを推定するプロセスです。パラメーターには,カメラの内部パラメーター,歪み係数およびカメラの外部パラメーターがあります。カメラをキャリブレーションしたら,推定されたパラメーターの精度をいくつかの方法で評価できます。

  • カメラの相対位置とキャリブレーションパターンのプロット

  • 再投影誤差の計算

  • パラメーター推定誤差の計算

カメラのキャリブレーション

チェッカーボードのキャリブレーションパターンからなる一連のイメージを使用して,カメラパラメーターを推定します。

创建一组校准图像。图像= imageDatastore (fullfile (toolboxdir (“愿景”),“visiondata”...“校准”“莫诺”));imageFileNames = images.Files;%检测校准模式。[imagePoints, boardSize] = detectCheckerboardPoints(imagefilnames);%生成方块角落的世界坐标。squareSize = 29;%毫米worldPoints = generateCheckerboardPoints(boardSize, squareSize);校准相机。I = readimage(images, 1);imageSize = [size(I, 1), size(I, 2)];[params, ~, estimationErrors] = estimatecamerparameters (imagePoints, worldPoints, worldPoints)...“图象尺寸”、图象尺寸);

外部パラメーター

カメラとキャリブレーションパターンの相対位置をプロットすることで,キャリブレーションでの明らかな誤差を素早く検出できます。関数showExtrinsicsを使用して,カメラの座標系でキャリブレーションパターンの位置をプロットするか,パターンの座標系でカメラの位置をプロットします。パターンがカメラの背後にあったり,カメラがパターン背後にあるといった,明らかな問題点を探します。また,パターンがカメラから遠すぎないか,あるいはカメラに近すぎないかも確認します。

图;showExtrinsics (params,“CameraCentric”);

图中包含一个轴。标题为外部参数可视化的轴包含23个对象,类型为patch、text、line。

图;showExtrinsics (params,“PatternCentric”);

图中包含一个轴。标题为外部参数可视化的轴包含47个对象,类型为patch、text、line。

再投影誤差

再投影誤差では精度の定性的な測度が与えられます。再投影誤差は、キャリブレーション イメージ内で検出されたパターンのキーポイントと、それに対応する同じイメージに投影されたワールド座標点との間の距離です。関数showReprojectionErrorsでは,各キャリブレーションイメージにおける平均再投影誤差を可視化できて便利です。全体的な平均再投影誤差が大きすぎる場合,誤差が最も大きいイメージを排除してから,再度キャリブレーションを行うことを検討してください。

图;showReprojectionErrors (params);

图中包含一个轴。标题为平均每幅图像重投影误差的轴包含3个对象,类型为bar, line。这个对象表示总体平均误差:0.18像素。

推定誤差

推定誤差は,各推定パラメーターの不確かさを表します。関数estimateCameraParametersは,オプションでestimationErrors出力を返しますが,そこには推定された各カメラパラメーターに対応する標準誤差が含まれます。返された標準誤差 σ (単位は対応するパラメーターと同じ)を使用して,信頼区間を計算できます。たとえば,+ / - 1 9 6 σ は95%信頼区間に対応します。つまり,特定のパラメーターの実際値が,その推定値の 1 9 6 σ 以内にある確率が95%であるということです。

displayErrors (estimationErrors params);
标准的错误估计摄像机的参数  ---------------------------------------------- intrinsic  ---------- 焦距(像素):[714.1886 + / - 3.3219 - 710.3786 + / - 4.0579]主点(像素):[563.6480 + / - 5.3967 - 355.7251 + / - 3.3036)径向畸变:[-0.3536 +/- 0.0091 0.1730 +/- 0.0488] Extrinsics ----------旋转矢量:(-0.6096 + / - 0.0054 - -0.1789 + / - 0.0073 - -0.3835 + / - 0.0024) (-0.7283 + / - 0.0050 - -0.0996 + / - 0.0072 - 0.1964 + / - 0.0027) (-0.6722 + / - 0.0051 - -0.1444 + / - 0.0074 - -0.1329 + / - 0.0026) (-0.5836 + / - 0.0056 - -0.2901 + / - 0.0074 - -0.5622 + / - 0.0025) (-0.3157 + / - 0.0065 - -0.1441 + / - 0.0075 - -0.1067 + / - 0.0011] [-0.7581 + / - 0.0052 - 0.1947 + / - 0.0072 - 0.4324[-0.6223 +/- 0.0053 0.0231 +/- 0.0073 0.3663 +/- 0.0024][0.3443 +/- 0.0063 -0.2226 +/- 0.0073 -0.0437 +/- 0.0014]平移向量(mm):(-146.0516 + / - 6.0391 - -26.8684 + / - 3.7318 - 797.9027 + / - 3.9002) (-209.4357 + / - 6.9637 - -59.4563 + / - 4.3578 - 921.8198 + / - 4.6295) (-129.3823 + / - 7.0907 - -44.1028 + / - 4.3751 - 937.6832 + / - 4.4913) (-151.0048 + / - 6.6905 - -27.3251 + / - 4.1339 - 884.2789 + / - 4.3925) (-174.9499 + / - 6.7056 - -24.3498 + / - 4.1606 - 886.4961 + / - 4.6686] [-134.3095 + / - 7.8887+/- 4.984 +/- 4.984 +/- 4.984 +/- 4.984 [- 3.984 +/- 3.984 +/- 3.984 +/- 4.984] [- 3.984 +/- 3.984 +/- 3.984 +/- 4.984]

キャリブレーションの精度を改善する方法

特定の再投影誤差または推定誤差を許容できるかどうかは,特定アプリケーションの精度要件によって決まります。キャリブレーションの精度を許容できないと判断した場合には,いくつかの方法で改善することができます。

  • キャリブレーションの設定を変更する。3つの半径方向歪み係数を使用して,円周方向歪みもしくはせん断を推定します。

  • 使用するキャリブレーションイメージの数を増やす。イメージ内のパターンはさまざまな3次元方向に置かれなければならず,キーポイントが視野のすべての部分に存在するよう配置する必要があります。特に,歪み係数の推定値を改善するには,イメージのエッジとコーナーの近くにキーポイントがあることが非常に重要です。

  • 再投影誤差の大きいイメージを排除して,キャリブレーションをやり直す。

まとめ

この例では,カメラのキャリブレーション誤差を取得および解釈する方法を説明しました。

参考文献

[1] z。一种灵活的相机校准新技术。机械工程学报,28(11):1330-1334,2000。