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

3 ビュー (過去 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 Center および File ExchangeMATLAB Support Package for USB Webcams についてさらに検索

Community Treasure Hunt

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

Start Hunting!