問題タブ [3d-reconstruction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
image-processing - 3D 再構成のグラフ カット アルゴリズムの種類
3D 再構成にグラフ カットを使用することに関するいくつかの論文を読みましたが、この問題を提起するには 2 つの代替アプローチがあるように思われることに気付きました。
1 つのアプローチは容積測定であり、ボクセルの 3D 領域を記述し、グラフ カットを使用して各ボクセルのバイナリ ラベリング (対象オブジェクトを含むか含まないか) を推測します。このアプローチを取る論文には、Volumetric Graph Cuts による Multi-View Stereo と Occlusion Robust Photo-ConsistencyおよびA Surface Reconstruction Using Global Graph Cut Optimizationが含まれます。
2 番目のアプローチは 2D であり、参照イメージの各ピクセルに、そこに投影される 3D ポイントの深さでラベルを付けようとします。このアプローチを取る論文には、Computing Visual Correspondence with Occlusions via Graph Cutsが含まれます。
各方法の長所と短所を理解し、どの方法を使用するかを選択する際にどれが最も重要かを理解したい. これまでのところ、最初のアプローチのいくつかの利点は次のとおりであることを理解しています。
- これはバイナリ問題であるため、Max-Flow アルゴリズムで正確に解決できます。
- オクルージョンをモデリングする簡単な方法を提供します。
そして、2 番目のアプローチのいくつかの利点は次のとおりです。
- グラフの各ノードに設定された、より小さな近傍。
- 滑らかさのモデル化が容易になります (しかし、より良い結果が得られますか?)。
さらに、どちらの表現を選択した方がよいか、またその理由についても知りたいと思います。
vtk - 点群またはポリゴンの 2 つのデータ セットを 1 つにマージする方法は? (マージではなく追加)
リアルタイムで表面をスキャンできるリアルタイムスキャナーを開発しています。今までは、表面の 1 つのパッチをスキャンして保存することができました。1 つのパッチは、表面 (点群または三角形) の 1 回のスキャンのみを意味します。
私が欲しいのは、複数のパッチをリアルタイムでスキャンしたいということです。この目的のために、以前のパッチを現在のパッチとマージする必要があります。しかし、2 つのパッチをマージするための標準的な方法またはアルゴリズムが何であるかはわかりません。また、たとえば、三角形分割の前 (点群のマージ)、または三角形分割の後 (メッシュ合併)。マージとは、重なっているポイントまたは三角形を削除することを意味します
私の考え: ソースとターゲットの 2 つの点群がある場合、VTK を使用して、ターゲット点群から最も近い点を見つけ、一方の点を選択してもう一方を破棄します。これはマージする方法ですか?これは私の考えですか?しかし問題は、ソースとターゲットのポイント数が異なることです。
VTK を使用して 2 つのパッチをマージするにはどうすればよいですか?
また、リアルタイム スキャン タスクを達成するための標準的かつ最適な方法を教えてください。
ケース # 1:
i) 点群取得
ii) 登録
iii) マージ
iv) 三角測量
ケース # 2:
i) 点群取得
ii) 登録
iii) 三角測量
iv) マージ
ケース # 3:
i) 点群取得
ii) 三角測量
iii) 登録
iv) マージ
私を案内してください。ありがとう。
c++ - キャリブレーションなしでいくつかの画像から3Dを再構築しますか?
チェス盤のキャリブレーションを使用せずに、複数の画像から3D再構成を作成したいと思います。私はOpenCVを使用しており、チェス盤のパターンでカメラを調整せずに30枚の画像からモデル3Dを取得する方法を研究しています。
これは可能ですか?外部パラメータはどこで入手できますか?
キャリブレーションせずに3D再構成を行うことはできますか?
opencv - トンネルのような構造の構造からの動き (SfM) ?
モーションから構造を試して 3D 表現を取得したい非常に特殊なアプリケーションがあります。今のところ、Structure from Motion で見つけたすべてのソフトウェア/コード サンプルは、「3D を作成するためにあらゆる角度から撮影された固定オブジェクト」のようなものです。これは私の場合ではありません。
私の場合、カメラは廊下の真ん中を移動し、前方を見ています。場合によっては、カメラが他の方向 (左、右、上、下) を見ることがあります。カメラは後ろを向いたり後ろを向いたりすることはなく、常に前進します。廊下が狭いので、ほぼすべてが見えます(隠れスポットはありません)。廊下は場合によっては非常に長くなることがあります。
私はこのソフトウェアを試しましたが、私の特定のケースではうまくいきません (しかし、通常の使用では素晴らしいです)。私の特定のニーズを対象としたライブラリ/ソフトウェア/ツール/論文を提案してくれる人はいますか? それとも、そのようなものを実装する必要がありましたか? どんな助けでも大歓迎です!
ありがとう!
matlab - 基本的なマトリックスをテストする方法は?
私のアプリケーションでは、3D オブジェクトの再構築に 2 台のカメラを使用しています。カメラを調整するには、2 セットの画像を使用して基本行列を計算し、カメラの姿勢 (回転と平行移動) を見つけます。R と T を見つけるために SVD を使用します。しかし、マトリックスの精度をチェックしようとすると、まったく機能しません。再構成されたポイントの位置は、実際の位置と一致しません。
自分のやり方が正しいかどうかを確認するにはどうすればよいですか?
これが私が使用する私のMatlabコードです:
ありがとうございました。
opencv - 対応する画像からのカメラの動き
対応する画像の動きに基づいて新しいカメラ位置を計算しようとしています。画像はピンホール カメラ モデルに準拠しています。
実際のところ、有用な結果が得られないので、手順を説明して、誰かが助けてくれることを願っています.
対応する画像の特徴を SIFT で照合し、それらを OpenCV の FlannBasedMatcher で照合し、OpenCV の findFundamentalMat (メソッド RANSAC) で基礎行列を計算します。
次に、カメラの固有行列 (K) によって必須行列を計算します。
特異値分解を使用して、本質的な行列を回転と並進に分解します。
次に、三角測量によって正しい解を見つけようとします。(この部分はhttp://www.morethantechnical.com/2012/01/04/simple-triangulation-with-opencv-from-harley-zisserman-w-code/からのものなので、正しく動作するはずです)。
次に、新しい位置は次のように計算されます。
ここで、new_pos と old_pos はベクトル (3x1)、R は回転行列 (3x3)、t は並進ベクトル (3x1) です。
残念ながら、有用な結果は得られませんでした。
以下にいくつかの結果を示します (誰かがそれらのいずれかが明らかに間違っていることを確認できる場合に備えて):
matrix - ファンダメンタル行列計算の参照データのソースをお勧めできますか
具体的には、理想的には、点対応と「ゴールド スタンダード」で計算された F 値と左右のエピポールを含む画像が必要です。エッセンシャル マトリックスと、内的および外的カメラ プロパティも操作できます。
2 つの射影行列から F を構築し、3D の実際の点から左右の射影点座標を生成し、ガウス ノイズを適用できることはわかっていますが、有効性をテストしようとしているので、他の人の参照データを使用したいと思っています。私のコードの最初のバッチ (おそらく悪い) コードをテストするためにさらにコードを書くことは賢明ではないようです。
助けてくれてありがとう
よろしくデイブ