8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenCVAdvent Calendar 2024

Day 5

視差を可視化するモジュールを作ってみた

Last updated at Posted at 2024-11-03

ステレオ計測結果を利用しようとすると、実行結果の可視化が重要になる。

そこで、ライブラリを作ってみたので紹介する。


利点:面の向きがわかるので、同程度の深度の領域での微細な構造がわかる。シェーディングを強調したようなもの


利点:
視点位置が連続的に変わることで、空間の認識がしやすくなる。点群としての位置がおかしいときには、違和感を感じやすくなる。

使用例

この記事の中では、なぜこのような表示用のライブラリを作ったのかを述べます。

作った理由

表示をなんとかしたい

  • 最新のステレオ計測のアルゴリズムを使いたい。
  • ステレオ計測で算出した結果を表示するいい方法がほしい。
  • グレースケール画像:
    よくわからない
  • colormap 画像:

    他の実装と比較で必要になる。
    でも、精度が出ているのかどうかわからない。
    物体の輪郭は視認しやすい。ケーブルのように細い領域でも視認しやすい。しかし、ほぼ同じ色に見えてしまっている領域での変化に気づきにくい。エンジン付近の凹凸も、シートの曲面も、タイヤの曲面も視認することができない。
  • 点群データを保存して、あとでじっくり見たい
  • 再投影画像で確認したい。
  • 少しづつ視点を動かして、見え方の変化で確認したい。

アルゴリズムが変わっても同じ表示方法で表示したい。

  • アルゴリズムごとに、表示部分をメンテナンスするのは避けたい。
  • もっと楽をしたいよ!

きっと、みんな困っているよね。

  • 少なくとも、私は困っている。

もくろみ

視差計算の結果を、どのようなステレオ計測ライブラリでも表示に使える。

  • Ubuntu PC、Jetson AGX Orinの両方で同様に動作する。
  • pip でインストールできるようにする。(作業中)

公開するインタフェースは最低限に

  • このモジュールの開発の中で、実装を大きく変化させてきた。
  • それでも、公開するインタフェースをごくわずかにとどめたので、利用する側のコードをほとんど変えなくて済むようにしている。
  • モジュール内の__init__.py ファイルに記述するのを最小限にすることで、公開する範囲を最小限にしている。

開発の初期にありがちなこと

  • 利用するライブラリの使い方がわかっていない。
  • そのため、試行錯誤を必要とする。
  • 作り上げたライブラリの使い方が、どういう使い方をしたいのかがわかっていない。
  • 自由度を最大限に設定すべきなのか、特定の使い方だけを確実にこなせるようにするのがいいのか
  • 間違えた入力が入ってきたときに、どう対応するのか。
  • 無理やりつじつまを合わせるのか、異常終了させるのか

公開先

https://github.com/katsunori-waragai/disparity-view
実装言語: python3

達成したこと

  • 視差データを元に可視化する。
  • npyファイルで保存してある視差データを読み込める。
  • Open3Dを使って投影画像を作成する。

最後に

自分がほしいものが、公開されている実装に見つからなければ、作るしかないでしょ。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?