質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

1回答

2533閲覧

格子線入り立方体画像を用いてカメラキャリブレーションしたい

exceed0213

総合スコア1

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2020/06/24 03:36

前提・実現したいこと

OpenCV単体,あるいはMatlabのGUIを用いながら,カメラキャリブレーションを行いたい.
等間隔に格子線の入った立方体を一方向から撮影し,その画像を元にカメラパラメータを求めるようなスクリプトを作成,ないしあれば既存のGUIアプリケーションを利用したいと思っています.
Tsaiの手法を用いた実装をしたいと思っています.

前提

  • 立方体は7頂点が映るように撮影し,それら頂点をキャリブレーションの際の基準点とする.
  • 格子の間隔は当然わかっている.
  • 立方体と背景は明確に区別できるよう調整してあるとする.

求めたいもの

  • カメラパラメータ値の取得.
  • 立方体上の頂点以外の任意の座標についても取得できるように拡張したい.

試したこと

  • Opencvライブラリのチェスコーナ検出などのライブラリを試しましたが,平面パターンにしか対応していない(当然)ためうまく行かず.
  • MatlabのCamera Calibration ToolBoxを利用しましたが,3次元パターンにはやはり対応していないようでした.
  • '3次元パターン カメラキャリブレーション'などで検索しましたが,有効な手段が得られませんでした.

このようなタイプの質問は敬遠されると理解していますが,お力添えいただければありがたいです.

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

問題点は「パターンの認識処理ができない」ということですか?

  1. とりあえず1面しか見えない状況であれば認識できるのでしょうか?

これができないなら,立方体がどうのとか言う以前の問題なので,どうにかしてください.

  1. 上記の1面の認識なら可能だという場合,

立方体の3面が見えている絵を加工して「1面しか見えない絵」を3個作ってそれを使えばよいのではないでしょうか.
立方体の7つの頂点座標を人手で与えてよい(かつ,それらの情報だけで十分に各面の像の範囲を特定できる程度の歪である)ならば,与えてしまうのがまずは手っ取り早いでしょう.

投稿2020/06/24 03:46

fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

exceed0213

2020/06/24 03:54

私の説明不足ですみません. 7頂点の座標自体は与えることはでき,歪も与えられた点から各面を特定できる範囲内になるよう撮影します. 質問の趣旨としましては 私は画像認識について独学で勉強しており,チェスボードを複数方向から撮影した画像によるキャリブレーションについては実装できる段階にいます. 学習の中でTsaiの手法というものがあることを知り,3次元パターンを印刷した立方体によるキャリブレーションを実装したいと考えています. しかし,Zhangの手法を用いたチェスボードコーナ検出を用いた手法は見つけられても,上述のような3次元パターンを用いたキャリブレーションの手法について発見することができずに質問をした,という流れです. せめて既存のGUIソフトなどがあればそれで挙動を確認したいと思っているのですが,それも発見できません. 全くの初学者であり,見当外れな回答となっているかもしれせん.すみません.
exceed0213

2020/06/24 04:05

追記:画像内に収まっている3面それぞれに対して,チェスボードで行ったグリッド検出を行えばよいのでしょうか?
fana

2020/06/24 04:25

とりあえず「ある1面の像の範囲だけを残して他の領域を全て何かしらの適当な色で塗りつぶした絵」に関しての認識が可能であれば,それを3回やれば終わるのではないか,という話です. あなたが用いているパターン(面の模様)が実際にどのような物なのかが不明なので,各面の認識処理に関して具体的なことも言えませんが, 例えばOpenCVに存在するチェスボードの認識は,ある程度の余白が必要だったと思うので,状況次第ではそのまま使えないかもしれません. (何か既存のものを使えなくとも,格子点の認識処理くらいは自前で用意すればよいと思いますが)
fana

2020/06/24 04:33

Tsaiの手法の入手可能な実装が存在するのかどうかは知りません. 見つからない場合は,Tsaiの論文自体は入手可能なハズなので,読んで実装する感じになるのではないでしょうか.(校正計算の部分は,Zhangの手法の内容を知っていれば読めると思います.) しかし,Tsaiの方法を使わねばならない特別な理由が無いならば,労多く得るものは少ないかもしれません. Tsaiの方法が「既知の(3次元的な)立体形状であること」を拘束条件として使う話だったかどうか,ちょっと記憶があいまいで忘れてしまいましたが, 例えそれを利用する話だったとしても,他(例えばZhang)と比較してそれがどれほどの有効性を発揮するのか?が疑問です. (なぜならば,実際に,平面なチェスボードでの校正で十分だったりするので)
fana

2020/06/24 05:52 編集

J.Heikkila, ``Geometric camera calibration using circular control points'' は,ぱっと見,円形のパターンを箱に貼って(?)使ってるように見えますね. (まぁ,中身読んでないので実際にどんな話かはわかりませんが.) 円パターンボードの認識は確かOpenCVに存在した気がするので,格子(?)だと厳しい場合には,パターンを変えてみるという手も有りかも?
exceed0213

2020/06/28 02:23

ご返事が遅くなってしまい申し訳ありません.Tsaiについては論文で手法のみを確認しZhangの手法で実装しました!アドバイス頂いた通りに一面ずつにパタン認識を行うことで実装できました. とても良い勉強になりました.  ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問