カメラにアクセスせずにカメラのキャリブレーションをハックすることは可能ですか?


8

多くの場合、カメラにアクセスせずに処理するビデオのストリームがあります。カメラマトリックスにアクセスできることは、さまざまな処理技術にとって有益です。カメラにアクセスせずにカメラのキャリブレーションをハックすることは可能ですか?

私は、道路を記録している移動中の車に取り付けられた1台のカメラからのビデオストリームを持っています(したがって、地面に複数の平行線、レーンマーカーの角はありますが、円はありません)。これを真上から見下ろしたいのですが、カメラにアクセスできません。出来ますか?もしそうなら?

は、OpenCVの学習:OpenCVライブラリのあるコンピュータビジョンブックから、次のマトリックスが必要であることを理解しています。

  1. 組み込み関数、および
  2. ねじれ

.. cv2.undistort()画像にホモグラフィcv2.getPerspectiveTransform()を計算しcv2.warpPerspective()、最終的にトップビューを取得します。

質問

  1. 組み込み関数または歪み行列/パラメーターを計算/近似/推測するにはどうすればよいですか?すべてのパラメーターは重要ですか?
  2. 他のカメラ(OpenCVソースコードサンプルなど)からパラメーターをコピーしても問題ありませんか?

事前調査:

  • OpenCV Pythonカメラキャリブレーションチュートリアル -カメラへのアクセスが必要
  • カメラのAutoCalibration-「平行線または形状が既知(例:円形)のオブジェクトの複数のセットが識別された場合、キャリブレーションが取得される可能性があります」
  • カメラのキャリブレーションに関連する回答を理解しようとしています[ 1 ] [ 2 ] [ 3 ]私の問題に対する回答を見つけようとしています。

何か案は?事前にあなたの助けを感謝します!


更新1:透視変換実験

入力画像の4点を使用getPerspectiveTransform(pts1,pts2)dst = cv2.warpPerspective(img,M,(x,y), flags=flags)て照合し、一種のトップダウンビューを取得しようとしました。しかし、歪みを処理する方法がわかりません:

ポイントの選択:最初に、入力を拡大し、レーンマーカー上の一致する外部ポイントを正確に選択してホモグラフィマトリックスを作成し、で透視変換画像をプレビューしましたwarpPerspective。車線が歪んでいるのを見ましたが、どれほどひどいのかわかりませんでした。アイデアを得るために、両端のデルタ(50px)フラットでさらにポイントを選択しました。これは私が得るものです:

画像実験

カメラにアクセスしなくても歪みを修正できますか?これを修正する他の方法はありますか?

使用する入力画像が少ない: イムガー イムガー


更新2:トップダウンビューでの非平行(散乱)オプティカルフロー

これは、歪みやその他の原因によるものですか?: イムガー


1
mobileye.com/technology/mobileye-research-ここにあるすべてがあなたに関連している可能性があります
Andrey Rubshtein

これは、同時に教えている質問の1つです。mobileye-researchリンクはもうないようです。しかし、これはあります。mobileye.com/our-technology
uhoh

回答:


5

私が正しく理解していれば、トップダウンのビューで十分であれば、それを実現するための組み込み関数や外部関数は必要ありません。基本的には、平行線上に4つの点を定義してから、画像全体を標準ビューにワープします(たとえば、)。{{0,0},{480,960}}

OpenCVでこれを行うには、ここでfindHomography説明するようにホモグラフィを計算するだけです。次に、warpPerspectiveここを参照)を使用して画像をワープします。

あなたが気にする必要がある唯一のことは、あなたが求めている正面平行図の寸法の選択です。元の画像領域の縦横比とほぼ一致する必要があります。


質問の後半について:はい。まず第一に、これのような多くの作品は歪み推定を無視することを選択していることを思い出させてください。しかし、私はそれを達成する2つの方法を考えることができます。

  1. 道路の車線自体を使用して歪みを修正します。正面平行ビューで、車線自体が垂直になるように別の遠近法ワープを作成します。この設定では、車線を画像の消失線と見なします(透視図のように、常にそうです)。それから、カメラを調整することもできます。ここを見てくださいここここと例えばここに。

  2. 車はほぼ直線的/滑らかな軌道をたどる必要があります。すべての車の動きを計算すると、車線に平行な同様の動きが得られます。この情報は、変換を抑制および生成する際にも役立ちます。これにより、画像が歪みの少ないものにワープされます。


@tbirdalに感謝します:(0)「歪みの評価を無視する」-私はこれで公正な結果を達成しました。更新2を参照してください(1)論文は非常に役立つようです。しかし、それらを完全に理解して返信できるようになるまでには、しばらく時間がかかるかもしれません。(2)「[車]は、車線に平行な同様の動作を提供するはずです」-いい考えです!しかし、真上からのビュー(更新2を参照)でも、レーン上で散乱(非平行)オプティカルフローが発生しています。これを回避する方法を理解する必要があります。
Manav Kataria 2015年

レーンはあまり移動しないため、レーンのオプティカルフローを計算するのは困難です。エッジトラッキングアプローチの方が良いと思います。(エッジの移動など、またはアクティブな輪郭など)
Tolga Birdal '18年

動いている車の前にカメラが取り付けられているビデオストリームがあります。したがって、レーンマーカーはフレームごとに移動します(例外:「---」の破線ではなく、連続した「---」であるレーンエンドマーカー)。
Manav Kataria 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.