rigid3dの構造体配列の作成 (Visual SfM)

2 次查看(过去 30 天)
ST
ST 2020-11-28
回答: Kenta 2020-12-2
500枚の画像をVisual SfMに入れ、得られた各画像のカメラパラメータを
1×500(画像の枚数) rigid3d の構造体配列で表現したいのですがどのようにすればよいのでしょうか。
配列の内容は以下の通りです。
1×500 rigid3d:
Dimensionality: 3
T: 4×4 double
Roatation: 3×3 double
Translation: 1×3 double
Visual SfMより得られたカメラパラメータのテキストファイルは添付のものになります。
  2 个评论
Kenta
Kenta 2020-11-28
编辑:Kenta 2020-11-28
こんにちは、Visual SfMというのはSfM-MVS (multi view stereo) のほうか、 visula SLAMのほうでしょうか?また、参考にしたドキュメントのURLを教えていただけますか。
ST
ST 2020-11-29
ご回答ありがとうございます。
こちら
を参考に自分で撮影したものを用いて、実行しようとしております。
下記のGround Truthとの比較で、'orbslamGroundTruth.mat'の部分を自分のデータのもので作成しようとしています。(こちらが最終的にやりたいことです。)
% Load ground truth
gTruthData = load('orbslamGroundTruth.mat');
gTruth = gTruthData.gTruth;
% Plot the actual camera trajectory
plotActualTrajectory(mapPlot, gTruth(addedFramesIdx), optimizedPoses);
% Show legend
showLegend(mapPlot);
% Evaluate tracking accuracy
helperEstimateTrajectoryError(gTruth(addedFramesIdx), optimizedPoses);
'orbslamGroundTruth.mat'の中のgTruthが1×(画像の枚数) rigid3dの構造体配列になっています。
撮影した動画をフレームに切り分ける
→フレームに分けた画像たちをVisual SfM (http://ccwu.me/vsfm/)に入れ、添付のようなパラメータのテキストファイルを作成
→このテキストファイルを用いて構造体配列を作成
といった流れで取り組んでおりますが、違う手法やこの手法が正しくない場合は教えていただきたいです。
質問内容が少し変わっていしまいましたが、ご回答頂けると幸いです。

请先登录,再进行评论。

采纳的回答

Kenta
Kenta 2020-12-2
コメントのほう、返信ありがとうございます。
なるほど、visual "SLAM" ですね。groundTruthは、正解データなので、自分でコーディングによって、作る、というのはできないのではないかと思います。
やれることとしては、おっしゃるように、動画から画像を切り出して、visual SLAMのコードに入力する。(ここで、このコードを試す前にカメラキャリブレーションのアプリなどでご使用のカメラの内部パラメータを求めておいて、intrinsics変数を用意しておくことが必要です。)そして、実際に動いた軌跡を単眼の画像(動画)から復元する、という流れでしょうか。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 単一カメラとステレオ カメラのキャリブレーション 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!