USBマイクロスコープを2本並べてコビトの視点になってみる!

                                                                  2016/12/1 7M4MON



概要

人間の目は左右に少し離れているので、少し左右にズレた映像を脳に送っています。
脳はこの左右のズレから遠近感を瞬時に判断して、視界を立体的に見せています。
サイドバイサイド方式の立体映像は左右 2つのカメラで撮影した映像を
左右に並べて表示し、それぞれの目に独立して見せることで実現しています。(参考

日本人の平均の目の間隔は、成人男性が約64mm、成人女性は約62mmだそうです
自分の手を近づけて試したところ、300mm程度は離さないと自然な立体視は
難しいので、立体視には瞳の間隔の5倍程度が必要そうです。
逆に、瞳の間隔→カメラの設置間隔 を狭くすればコビトの視点になれそうです。
ということで、細身のUSBマイクロスコープを2本調達し、実際にやってみました。

ハードウェア

左右のカメラの距離は近いほど、よりコビトの視点になれそうです。
そこで、amazonで細身のUSBマイクロスコープを購入しました。
例のノギスで測ってみたところ、カメラの先端部の直径は8.1mm、ホイール部は9.9mm、全長は147.2mmでした。
汎用品を駆使して固定した結果、左右のカメラの間隔は約11mmとなりました。
先端に白色LEDが6つ仕込まれているので暗い場所でも撮影可能です。



プロパティは30fpsと15fpsが選べるようですが、エフェクトを掛けない場合
PCの処理能力には依存せず、640*480の解像度かつ2台同時使用では約20fps程度でした。
1280x720や800x600の高解像度モードにしてフレームレートが落ちた場合は挿し直さないと復活しないようです。
使用するUSBのポートの組み合わせによっては、約15fps止まりでした。(USBの帯域の問題??)

表示は小型のモニターを調達し、これにスマホVRゴーグルを加工してくっつけました。
固定方法は試行錯誤した結果、頭につける部分をモニタ側に回してハトメを付けてネジ止めし、
そのままでは左右にずれるので7mmのポリスチレンの板を側面に張り付け、厚紙でストッパーを構成しました。
マジックテープ部は両面テープでくっついているだけなのでホチキスで補強しています。
モニタは7インチ以下、高解像度、HDMI対応という条件で、7インチ(1280*800)のこれにしました。
スマートフォン用ヘッドマウントディスプレイは加工が容易そうだったので上海問屋のDN-13539にしました。

 

表示場所や大きさ等はソフトウェアの設定で変更できます。

ソフトウェア

複数のウェブカメラを左右に並べて表示・録画するアプリケーションは
「山本ワールド」さんの「OpenCVを使用して2つのカメラの動画をキャプチャして横に並べて表示」を
ベースにOpenCVとVisual C++ 2013を使用して作成しました。
使用したOpenCVのバージョンは 「2.4.13 (x86)」です。
また、機構部の精度が高くないので、角度や左右の画像の中心位置を変更・微調整できるようにしました。
せっかくOpenCVを使用するので、いろいろエフェクトをかけたりエッジ検出を出来るようにしました。
ついでに録音も出来るようにしてみました。

設定について

OpenCvSbs.exeの引数にて指定された設定ファイルを読み込みます。
引数が省略された場合、「stereocpture.ini」を読み込みます。
「stereocapture.ini」が存在しない場合は、デフォルトの設定値を読み込みます。
詳細については下記表を参照してください。




実行中はESC押下で終了し、スペースキー押下でキャプチャを保存します。
その他、角度の回転やエフェクトも実行中に変更することが出来ます。
キーの詳細については下記表を参照して下さい。




GUIはVBでさくっと作成しました。



UIアプリで指定されたパラメーターの設定ファイルを作成した後、
ProcessStartInfo()で引数を指定してメインを実行します。
実行中にUI側で変更が発生した場合は、メインをアクティブにしてキーイベントを発生させています。
オフセットおよび角度と表示倍率は変更後の値を保持するため、iniファイルから読み込んで反映できるようにしました。
下線が付いているのが実行中に変更できる項目で、それ以外は起動時に読み込まれます。
前述の通りメイン側でもエフェクト等は変更できるため、UIとの不一致が発生する場合がありますが、そこはご愛嬌ということで^^;
ffmpeg.exeが同じフォルダに入っていて、録音と録画が有効だった場合、[Combine Audio and Video by ffmpeg]にチェックを
入れていれば、ffmpegで音声と映像を結合します。ただし、-sameqオプションが効かなかったので画質は劣化します。
mpc-hcの場合、同じファイル名でwavとwmvが同じフォルダに入っていた場合は気を利かせて同時に再生してくれるようです。

ダウンロードはこちら

かかった費用

 3万円ちょっと。

感想等


戻る