systens usbカメラと2Dライダー。私はライダーフレームとカメラフレームの両方に対応する点の座標を持っています(私は3点とライダーフレームの座標とカメラフレームの同じ3点の座標を持っていると言うことができます)。
一点の例:
...
が知られている
lidar_pt1(XL、イル)
camera_pt1(XC、YC、ZC)。
は私がカメラライダーのキャリブレーションに取り組んでいると私は、次のような問題にいくつかの時間のために立ち往生しています
変換マトリックスをハードコードすると、私は期待される結果を得ます。今私はそれをハードコードしないようにしようとしていますが、座標の既知の値を使って自動的に計算します。私が持っているのは、ライダーフレームの2次元座標で3点、カメラフレームで3次元座標として正確に3点です。ここでは、私が持っている座標値に基づいて何らかの方法で回転を計算するための数学に苦労しています。その回転を得る方法はありますか?
camera_pt1 = lidformpt1
TransformMat =?
SVD(http://nghiaho.com/?page_id=671)を使っていくつかの例を見ましたが、より大きなデータセットが必要であり、最低3ポイントは最良の結果をもたらさないと思います。
ありがとうございます!はい、これは理にかなっていますが、1つの既知の点群を2Dで、もう1つを3Dで、つまり1回転についての情報が欠落している場合にこれを行うことができますか?ライダーポイント(xl、yl、0)と対応するカメラポイント(xc、yc、zc)を持つため、ライダーポイントのz座標はゼロであると仮定できますか? – Pavel
申し訳ありませんが、一度座標セットが3Dだったことに気が付きませんでした。その場合は、z座標を落としてカメラデータを2Dとして扱わなければならないと思います。ライダーzの座標をゼロに設定することはできません。これは、変換行列を非可逆にするためです。 (3D⇔2D変換を反転させることはできません。なぜなら、情報を一方向にスローし、反対方向にはどこにも生成しないからです。) –