フィールド多重化によるステレオ画像の合成

1998/07/20 作成
1999/05/05 更新
松本 吉央


1.はじめに

このページでは,ステレオカメラからの2つの映像信号を,フィールド毎に多 重化する(混ぜる)ことにより1つの映像信号にする,という方法について説 明します.実は作ったあとに,同じ方法を使ったステレオシステムはこれまで にあったということを知りました.しかし,混ぜるだけの機能をこれだけシン プルに実現したデバイスはなかった(カメラからも画像処理装置からも独立し ている点が使いやすい)ので,ロボットでちょっとしたステレオ視覚システム を使いたい,という用途には価値があると思います.


2.フィールドとは

NTSCのビデオ信号は1秒間に30フレーム(コマ)の静止画像を連続して表示す ることで,人間の目の残像効果を利用して動画を表現しています.このため1 フレームの画像は1/30秒かけて表示されている訳です.ところが,通常この1 フレームの画像は,左図のように2回の走査により構成されています(2:1イン ターレース).これは1/30秒間隔の表示では,人間の目の残像効果が薄れて画 像のちらつきが目立つので,その半分の1/60秒間隔で画像を表示する,という ものです.この走査のことをフィールド走査,またこの2つのフィールドのこ とを奇数/偶数フィールドと呼びます.通常(民生品)のビデオカメラやテレ ビなどはフィールド走査をするようになっています.

フィールド走査により画面のちらつきは抑えられますが,画像の縦の解像度は 525 本から半分の 262.5 本に落ちます.しかし,人間の目が動画に対しては 解像度が落ちる,という性質を持つため,問題にならないのです.つまり,イ ンターレース走査は人間の目の性質をうまく利用した画像の表示方法である, 言うことができます.
しかし,カメラをロボットのセンサとして考えた時,フィールド走査は利点と はなりません.動いている対象の画像処理を行なおうとすると,1 枚のフレー ム画像の中に 2 枚のフィールド画像が含まれているために,対象が二重にブ レて見えてしまうからです.右図は,手を振っているところをキャプチャした 画像です.指先部分を拡大するとこの画像のブレがはっきりと分かります.ブ レた画像をそのまま画像処理してもよい結果は期待できません.動画像処理を 行なうときに画像を縦に 1/2 に間引いてから行なうことが多いのは,このよ うな理由からです.つまり,奇数/偶数フィールドのどちらか一方だけを処理 対象とし,残りは利用しないわけです.


このように画像がブレるのを防ぐために,「ある時間の画像を CCD に蓄めて それを2 つのフィールドに分けて出力する」機能を持つフィールド蓄積カメラ や,「ある時間の画像の奇数/偶数フィールドを2本ケーブルを通して同時に出 力する」機能を持つプログレッシブカメラ,というものも存在しますが,通常 よりもかなり高価なものになりますし,プログレッシブカメラを使うためには それに対応した画像処理装置が必要になるので,あまり広くは使われていませ ん.


3.フィールド多重化

このような厄介もののフィールド走査ですが,画像の半分を捨ててしまうくら いなら,全く別の画像を入れたらロボットのセンサとして有効利用できるので はないか,というのがフィールド多重化の考え方です.別の情報としてもう一 台のカメラの画像を入れてステレオ視をする,というのが最も簡単で有効な使 い方でしょう.(それ以外にも使い方はあるのですが,詳しくは参考文献に譲 ります).つまり,2台のカメラからの映像を 1台の画像処理装置に入れてし まう,という訳です.

右図は,ステレオ画像を多重化した場合の画像の例です.ここでは,それぞれ のカメラを並行に配置せずに真中に写っている人間に向けてあるので,その部 分だけブレが小さく,背景はブレが大きいことが分かると思います.この画像 を処理する際には,処理対象を偶数/奇数ラインに限定することで,右カメラ/ 左カメラからの画像だけを処理することができます.また,奇数ラインの画像 をテンプレートにして偶数ラインの画像を探索することで,1画面の中でステ レオマッチングが実現できます.


この方法でステレオ視を行なうには,通常の NTSC 用の画像処理装置が 1 つあれば済むので,

といった多くの利点が生まれます.


4.フィールド多重化デバイスの設計

下図が,ステレオ画像を多重化する場合の回路の概要です.カメラには,外部 同期がかかるものが 2 台必要です.外部同期カメラとしては,VS あるいは VBSと呼ばれる外部同期のかけ方に対応したものを用いるのが最も簡単です. 下図の場合,right camera の信号を基準として,それを分配して left camera の外部同期に入力することにより,2台のカメラの出力信号を同期させ ています.画像の切替えは,ビデオスイッチと呼ばれる IC を用いて行ないま す.これは2 つのビデオ信号から 1 つの信号を選んで出力する,アナログス イッチです.ビデオスイッチに与える切替え信号には,フィールド信号を用い ます.これは,現在のビデオ信号が偶数フィールドなら 0,奇数フィールドな ら 1 というもので,シンクセパレータと呼ばれる IC を用いるとビデオ信号 から取り出すことができます.最後に,ビデオスイッチから出力された多重化 された信号を増幅して,画像処理装置への入力とします.


フィールド多重化の利点として,入力を切替えるタイミングが 1/60 秒と,比 較的遅い点が挙げられます.これは,他の多重化の方法,例えば 1 ピクセル 毎に入力を切替える(画像の横方向に画像が交互に入る)方法や,1 ラインの 真中で入力を切替える(画像の右半分と左半分で別の画像が入る)方法に比べ るとはるかに遅いため,回路の設計にそれほど気を使わなくてよくなるのです. またフィールドを判別するための情報はNTSC信号の中に含まれているため,自 分でタイミングをカウントする手間も省けます.


5.フィールド多重化デバイスの実装

最後に,この回路の実装例として写真(右)と回路図(下)を載せます.両方 ともコンポジットビデオ信号用のものですが,Sビデオ信号用にするのは簡単 です.また,使っている部品は「秋月電子のビデオ分配キット」と共通なもの が多い(というか,このキットを使っていて作ることを思いついた)ので,こ れを買ってくると部品を集める手間が減ります(ビデオスイッチとシンクセパ レータの IC は別途購入する必要があります).現状の実装では片面基板で5 センチ四方以内に収まっていますが,各 IC については,表面実装用のものも ありますので,小さくしようと思えば 1 inch 四方にでも収まるのではないか と思います.



6.おわりに

この回路は,これまでに私の周りで

など,多くの画像処理装置/キャプチャカード等で動作実績があります.以前, SONY のカメラ EVI-370 DG との組み合わせでは正常に動作しなかったという 問題がありましたが,これは EVI-370 の外部同期回路にバグがあった (EVEN/ODD が外部同期と逆に出力されていた)のが原因で,この回路には全 く罪はなかったことが分かりました.SONY の人もこのバグは認めているのに, カタログには未だに「外部同期可能」と書かれているのはどうかと思いますね… ロボット学会の「パーソナル移動ロボットの作り方」では外部同期のかかるカ メラとして勧めてしまったので,他にもはまった人がいるんじゃないかと心配 です.僕自身は解決するまでに1年半程かかりました.最初に,富士通カラー トラッキングビジョン(プロトタイプ)と EVI-370 で使ったときに一度問題 になった(この時は私の回路の方に問題があると思っていた)んですが,製品 版では TBC 機能付きになったおかげでそんな乱れた信号を入力しても問題な くか使えてしまい,しばらく放ってあったのです.ところが,日立の IP5000 を使うようになってまた問題が再現されたので仕方なくオシロスコープで詳し く調べたんですが,SONY のカメラにバグがあると分かった時には驚き ました.少なくともバグが発見された時点で直すか,製品に注意書を書くかく らいのことはするべきなのではないでしょうか?こんな事件のあと,私の中で は SONY への信頼がかなり下がってしまったのは言うまでもありません.

このページに関する質問,指摘などは,私宛にメールでお願いします.また, 参考文献として以下のものを挙げておきますので参考にして下さい.


[参考文献]

Yoshio Matsutmoto, Tomohiro Shibata, Katsuhiro Sakai, Masayuki Inaba, Hirochika Inoue. Real-time Color Stereo Vision System for a Mobile Robot based on Field Multiplexing. In Proc. of IEEE Int. Conf. on Robotics and Automation, pp.1934-1939, 1997.

松本 吉央, 柴田 智広, 稲葉 雅幸, 井上 博允. 複数視野のカラー情報を扱う移動ロボット用並列視覚処理システム. ロボティクス・メカトロニクス講演会'96 講演論文集, pp.704--705, 1996