cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

三次元画像計測システムofxActiveScanをopenFrameworks0.8.4(Windows MSVC2012)で動かしてみる(その2)

一晩で綺麗なモデルを計測するつもりが、昨日はうまく行かずに負けました。失敗原因を調査していきましょう。一番怪しいのは、安物のUSBカメラの自動ゲイン調整が働いてしまっていることです。
計測中のパターン画像のキャプチャを見てみます。

f:id:cvl-robot:20150226153648j:plain

えーと、なんだこれ。走査線のようなもあれのようなよくわからないパターンが見えてしまっています。この”もあれ”は、フレーム毎に動いているので良くありません。

カメラを変えてみましょう。
古いロジクールのQCAMの型番不明(おそらくQcam S 7500)が転がっていたのでこれに変更してみます。カメラ解像度は1280×960ですので、これに合わせて設定ファイルを書き換えます。
config.yml

%YAML:1.0
proWidth: 1024
proHeight: 768
camWidth: 1280
camHeight: 960
grayLow: 0
grayHigh: 80
devID: 1
bufferTime: 1000
vertical_center: 1.108
nsamples: 1000

実験環境はこんな感じ。
f:id:cvl-robot:20150226150006j:plain

実験結果はこんな感じ。
f:id:cvl-robot:20150226154459p:plain (CAM_MODE)
f:id:cvl-robot:20150226154541p:plain (PRO_MODE)
f:id:cvl-robot:20150226154650p:plain (EASY_CAMMODE)
f:id:cvl-robot:20150226154732p:plain (EASY_CAMMODE上から)
f:id:cvl-robot:20150226154822p:plain (EASY_CAMMODE横から)

まだよくわからないノイズが浮いていたり、インターリフレクションの影響が見て取れますが、壁はまっすぐだし、キムワイプの箱が少しつぶれているところまでそれなりに計測できています。(直角が出ていませんが。。。)昨日の結果よりはだいぶ良くなりました。

カメラの自動調整が問題になるようです。
S7500もおそらく自動調整機能働いてしまっているので、安価なUSBカメラはこの仕事に向いていないのかもしれません。
OpenCVで簡単に使えるUVC対応で安価に自動調整を切ることのできる素性の良いUSBカメラって良いのないですかね・・・。

キーワード:空間コード化法

[*] http://www.ime.info.hiroshima-cu.ac.jp/~hiura/lec/iip/3D-measurement.pdf

[*] 空間コード化パターン投影法の勉強に関するページ - せとっちの備忘録(技術系)

[*] http://www.ibe.kagoshima-u.ac.jp/~cgv/papers/3d/2005_miru.pdf
スケールの決め方

[*] http://www.mm.media.kyoto-u.ac.jp/old/research/thesis/2009/b/akuzawa/akuzawa.pdf
あんまり関係ない、応用

[*] https://www.jstage.jst.go.jp/article/sicejl1962/34/6/34_6_435/_pdf

[*] http://www.dh.aist.go.jp/~shun/research/dlp/