問題タブ [structure-from-motion]
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 - Computing depthmap from 3D reconstruction model
I'm using VisualSfM to build the 3D reconstruction of a scene. Now I want to estimate the depthmap and reproject the image. Any idea on how to do it?
python - モーション テクニックからの構造から大まかな 3D ポイントを構築する
私は OpenCV と Python を使用しています。
この車のシーケンスビデオがあるとしましょう。cv2.goodFeaturesToTrack
そして、とを使用して、車のいくつかの「興味深い点」を追跡しましたcv2.calcOpticalFlowPyrLK
。ここで、トレースされたポイントを考慮して、車の非常に大まかな形状 (おそらく 3D ボックス) とカメラからの距離を推定したいと思います。それほど正確である必要はありません。
その上で、リアルタイムで更新し続けたいと思っています。私が達成しようとしていることを理解できる最も近い YouTube ビデオは、これです。OpenCV で新しいStructure from Motion モジュールを見つけましたが、これはポイントのコレクションから 3D モデルを構築するためのものです。
問題は、これを達成するための最良の方法と、(特に 3D 空間を構築するために) どの種類のライブラリを使用できるかということです。
また、何らかの形でこれに C++ を使用する必要がある場合も問題ありません (ただし、まだ得意ではありません)。
ありがとう。
opencv - オプティカル フローによるモーションからの構造
ドライブレコーダーからのビデオがあるとしましょう。モーション技術からの構造を使用して、記録されたシーンの点群を構築したいと考えています。まず、いくつかのポイントを追跡する必要があります。
より良い結果が得られるのはどのアルゴリズムですか? スパース オプティカル フロー (Kanade-Lucas-Tomasi トラッカー) または高密度オプティカル フロー (Farneback) を使用して? 私は少し実験しましたが、本当に決めることはできません。それらのそれぞれには、独自の長所と短所があります。
最終的な目標は、シーンに記録された車のポイント クラウドを取得することです。スパース オプティカル フローを使用することで、車の興味深い点を追跡できます。しかし、それはまったく予測できないでしょう。1 つの解決策は、画像内にある種のグリッドを作成し、トラッカーが各グリッド内の 1 つの興味深い点を追跡するように強制することです。しかし、これはかなり難しいと思います。
密なフローを使用すると、すべてのピクセルの動きを取得できますが、問題は、動きの少ない車の動きを実際に検出できないことです。また、アルゴリズムによって生成されたすべてのピクセルの流れがそれほど正確であるとは思えません。さらに、これを使用すると、2 つのフレーム間でのみピクセルの動きしか取得できないと思います (スパース オプティカル フローを使用する場合とは異なり、時間に沿って同じ興味深い点の複数の座標を取得できますt
) 。
python - 2 ビュー SFM からの不適切なカメラ ポーズ
カメラ ポーズ [R|t] を推定するための 2 ビュー SFM アプローチの結果を検証するために、キャリブレーションに使用したチェス盤パターンを利用しました。 . したがって、最初の 2 つのパターン間の相対的な姿勢は簡単に計算できるとしましょう。
それでも、正しいカメラ ポーズが得られず、問題を把握するのに非常に苦労しましたが、無駄ではありませんでした。
私の問題を解決するためにあなたの貢献に感謝します。
マイコード説明:
- 画像の歪みを直す
- 2 つの画像でチェス盤の角を見つける
- 一致点 (2 つの画像と線を並べてプロットすることで確認)
- 基本行列の推定 (検証済み: x'T * F * x = 0)
- エッセンシャル マトリックス (E) = KT * F * K (検証済み: X'T * E * X = 0)
- E = U * S * VT の SVD
R = U * W * VT または U * WT * VT で、WT = [0,-1,0; 1,0,0; 0,0,1]
/li>
python - How do you estimate 3D points from two images point correspondence?
I'm trying to implement a basic structure-from-motion pipeline in Python using OpenCV to generate a point cloud from two images given the corresponding point in both images. I manage to get 3D points out of it but the locations don't really make sense.
I'm concerned if the logic from the comment # FROM HERE is correct? In particular is the camera matrix correct for an iPhone 6 and is the logic for compute the 3d point from the 2d correspondence correct?
computer-vision - コンピュータ ビジョンで、SFM ではできなくて MVS でできることは何ですか?
私は約 10 年間、エンタープライズ ソフトウェア エンジニアリングに携わってきた開発者であり、趣味としての興味から、コンピューター ビジョン (CV) の広大で恐ろしい領域に足を踏み入れました。
私がすぐには理解できないことの 1 つは、Structure from Motion (SFM)ツールとMulti View Stereo (MVS)ツールの間の作業分担です。
具体的に言うと、CMVSは最高の MVS ツールであり、Bundlerはオープン ソースの SFM ツールの中でも優れたツールの 1 つです。
CMVS 自身のホームページからの抜粋:
Bundler の後、PMVS2 の前に、常に CMVS を使用する必要があります。
私は疑問に思っています:なぜ?!? SFM ツールは 3D 再構成を実行するというのが私の理解ですが、そもそもなぜ MVS ツールが必要なのですか? Bundler のような SFM ツールでは対処できない、どのような価値/処理/機能を追加しますか? 提案されたパイプラインの理由:
?