ステレオカメラによる画像解析
ステレオカメラ
による距離測定テスト1(構想編)
”ZYBO_0 を変更3(Ubuntu 14.04
LTSのBOOT.binを変更)”でステレオカメラの要素技術は大体クリア出来たので、ステレオカメラを構築していくことを考えてみよう。
ステレオカメラによる距離測定テスト2(プロジェクトの作製)
前回の構想通りに Depth Processing Unit
はARMプロセッサで代用することにして、ZYBO_1_XGA_test
にカメラ・インターフェース・モジュールを追加することにした。今回のブロックデザイン名はStereoCamTest とした。ブロックデザインを生成し
た。
ステレオカメラによる距離測
定テスト3(camera_interface 階層の生成)
前回は、ZYBO_1_XGA_test のブロックデザインを StereoCamTest
ブロックデザインに tcl スクリプトを使用してコピーした。
今回は、ZYBO_0_154_2 プロジェクトの ZYBO_0 ブロックデザインの内の camera_interface 階層を tcl
スクリプトを使用して StereoCamTest ブロックデザインにコピーした。
ステレオカメラによる距離測
定テスト4(StereoCamTestブロックデザインの完成)
前回は、ZYBO_1_XGA_test ブロックデザインを tcl
スクリプトにエクスポートして、その tcl コマンドを編集して camera_interface 階層を生成した。
今回は、StereoCamTest ブロックデザインを完成させた。
ステレオカメラによる距離測
定テスト5(インプリメント成功)
前回は、StereoCamTest ブロックデザインを完成させた。
今回は、論理合成、インプリメント、ビットストリームの作製を行った。
ステレオカメラによる距離測定テスト6(ステレオカメラのテスト)
かなり期間が空いてしまったが、前回はインプリメントが終了した。今回はSDKを立ち上げて、ベアメタル・アプリケーションを作製して自分のカメラと、ZYBO_0_2
からHDMI ポート経由で送られてきた画像が表示できるか?を確認した。表示できた。
ステレオカメラによる距離測
定テスト7(BOOT.bin, devicetree.dtb)
ベアメタル・アプリケーションでStereo Camera
のテストが上手く行ったので、次は、Linux のアプリケーションとして実装したい。ということで、今回はBOOT.bin と
devicetree.dtb の作製を行った。
ステレオカメラによる距離測
定テスト8(アプリケーションの作製)
前回は、BOOT.bin とdevicetree.dtb を作製して、ZYBO
にMicroSDカードを挿入してUbuntu 14.04 LTS を立ち上げた。
今回は、自分のカメラ画像とそのラプラシアンフィルタ処理画像、それにZYBO_0_2 からHDMI
ポート経由で転送されてきたカメラ画像を表示するアプリケーションを作製した。
ステレオカメラによる距離測
定テスト9(アプリケーションの作製2)
前回は、StereoCam_Alt_Disp を作製して、自分の左目カメラ画像とHDMI
ポート経由で送られてきた右目カメラ画像を選択して表示することができるようになった。
今回は、左目カメラ画像に真ん中のある領域を切り出した右目カメラ画像を重ねて表示してみることにした。
ステレオカメラによる距離測
定テスト10(左右カメラの視差の測定)
左右カメラの視差の測定を行うアプリケーションを作っていたのだが、取りあえず完成した。左目
カメラ画像に右目カメラ画像の一部を表示するアプリケーションだ。右目カメラ画像の一部を表示するエリアは、左目カメラ画像の輝度を 1/2
にして、そこに輝度を 1/2 にした右目カメラ画像を足し合わせる。デフォルトでは、右目カメラ画像の縦方向真ん中で、横方向左端の 160 ピクセル X
120 行を切り取って、左目カメラ画像に表示する。
ステレオカメラによる距離測
定テスト11(距離と左右視差の測定)
左右画像を重ね合わせるアプリケーションが出来たので、カメラから物体までの距離と左右の視差
による左右カメラ画像のピクセル位置のズレのデータを取ってみた。
ステレオカメラによる距離測
定テスト12(焦点距離の計算)
前回は距離と左右カメラの視差のピクセル数を測定した。今回はその測定データからカメラの焦点
距離を計算した。
ステレオカメラによる距離測
定テスト13(チェッカーボードの撮影結果)
前回の結果はおかしいというご指摘を頂いたので、すでにチェッカーボードを自作してあったの
で、これでカメラの歪をみようと思う。
ステレオカメラによる距離測
定テスト14(ステレオカメラ・キャリブレーション方法の参考になるWebサイト)
前回は、チェッカーボード(チェスボード)をカメラで撮影して、歪を確認した。今回は、ステレ
オカメラやカメラのキャリブレーション方法についての参考になるWebページを書いておこうと思います。
左目カメラ画像と右目カメラ
画像をBMPファイルに変換するアプリケーションを作成した
”OpenCV 2.4.10 の stereo_match.cpp
をやってみた”と”OpenCV 2.4.10 の stereo_match.cpp
をやってみた2”でやってみたOpenCVのステレオカメラのキャリブレーションを自分の環境でもやってみたくなって、左目カメラ画像と右目カメラ画像をBMPファイルに
変換するアプリケーションを作成した。
左目カメラ画像、右目カメラ
画像のBMPファイルをVGAサイズ+グレースケールに変換
”左目カメラ画像と右目カメラ画像をBMPファイルに変換するアプリケーションを作成した”で
作った左目カメラ画像と右目カメラ画像のSVGAサイズのBMPファイルをVGAサイズに変更して、グレースケールにも変更する。
OpenCV 2.4.10
の stereo_match.cpp を自分のカメラ画像でやってみた1
”左目カメラ画像と右目カメラ画像をBMPファイルに変換するアプリケーションを作成した”の
RL_capture_bmp アプリケーションを使用して、自分のカメラの画像を右目カメラ画像、左目カメラ画像共に1ペア撮影した。
OpenCV 2.4.10
の stereo_calib.cpp を自分のカメラ画像でやってみた1
前回は、自分のカメラでカメラ画像を取得できたが、チェスボードの升目の境界辺りがおかしかっ
た。そのバグは修正できたので、もう一度、カメラ画像を取得して stereo_calib.cpp をやってみた。失敗した。
OpenCV 2.4.10
の stereo_calib.cpp を自分のカメラ画像でやってみた2
前回は自分で作ったチェスボードを使ってステレオカメラのキャリブレーションをしようとした
ら、チェスボードの左目カメラ画像と右目カメラ画像のペアを認識してくれなかった。今回は、チェスボードを変更してみたら、ペアを認識してくれたが、ステレオ
カメラのキャリブレーションがまだおかしい。