説明

ビデオ処理

ビデオデータ(300)を処理する方法が開示されている。該ビデオデータ(300)は、フレームデータの組を複数備え、モバイルビデオデータ捕捉手段によって捕捉される。該方法は、(a)ビデオの各フレーム内で顔を検出すること(400)と、(b)フレームデータの対応する組を処理し、(i)顔によって占有される画像の領域を実質的に一定に保ち(400)、(ii)顔に入射する光の見かけの方向を実質的に一定に保ち(500)、及び/又は(iii)顔の見かけの色を実質的に一定に保つ(600)ことを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオデータを処理するための方法及び装置に関し、特に、モバイルビデオデータキャプチャ手段で捕捉されるビデオデータを処理することに関する。
【背景技術】
【0002】
ビデオ会議は、異なる場所にいるが、電子通信を使用して互いを見たり、互いの声を聞いたりすることができる2人以上の人間の間の話し合いである。ビデオ会議を提供する際の1つの目標は、会話の言葉以外の様子をより多く送信することによって会議をさらによくすることである。これらの面に寄与する主要な要因は会議参加者の顔の表情の見え方であることを前提にすると、これらの表情を可能な限り明確に且つ連続的に提示することが望ましい。
【発明の開示】
【0003】
モバイルビデオ会議では、ビデオ会議参加者の少なくとも1人が移動通信装置を備えたカメラを使用し、したがってカメラの視界内に留まりながらも動くことができる。
【0004】
カメラを備える移動通信装置によって捕捉される(captured)ビデオのフレームにおける、ビデオ会議参加者の見え方は、位置、サイズ、向き、照明の方向及び色の変化に左右される。
【0005】
位置、サイズ及び向きの変化は、参加者とカメラの間の相対的で大局的な動きに起因する。背景除去やフレーム差分等の移動する被写体を検出するための従来の技法は、背景が静止していることを前提としているが、ユーザ自身が移動している場合、この前提はあてはまらないため機能しない。
【0006】
会議参加者は多くの光源のある環境を通って動き、あるいは移動通信装置の回転を引き起こすので、光が参加者の顔にあたる方向が大きく変化し、及び顔にあたる入射光の変化又は色のついた被写体から反射する光の結果に起因して顔色が大きく変化する。これらは、顔の画像を構成するピクセルの輝度強度と色の、漸次的であるが大きな変化につながる。未処理ビデオデータが、その後「最大ビットレート」の低い要件を満たすために符号化される場合は、これらの変化と顔の表情の明瞭さとのコード化のトレードオフがあり、結果として変化が顔の表情の明瞭さを損なわせる。
【0007】
さらに、現在の、カメラを備える移動通信装置では、ホワイトバランス補償が画像に適用されることがある。ホワイトバランス補償は、画像の赤、緑、及び青(RGB)のチャネルの利得を、該チャネルの総合的な明るさが等しくなるように調整しようとする。この結果、(画像の一部だけを形成する)顔が緑や青に見える場合がある。
【0008】
本発明の第1の態様よれば、モバイルビデオデータ捕捉手段により捕捉されるビデオデータを処理する方法が提供される。該ビデオデータはフレームデータの組を複数備え、該方法は、
(a)前記ビデオの各フレーム内で顔を検出することと、
(b)フレームデータの対応する組を処理し、
(i)前記顔によって占有されている画像の領域を実質的に一定に保ち、
(ii)前記顔に入射する光の見かけの方向を実質的に一定に保ち、及び/又は
(iii)前記顔の見かけの色を実質的に一定に保つことと、
を備える。
【0009】
モバイルビデオデータ捕捉手段によって捕捉されるビデオデータのフレーム内で顔を特定し、顔の動き、顔のサイズの変化、顔に入射する光の方向の変化及び顔色の変化を補償するためにフレームデータを変換することによって、フレーム間の顔の見え方の変化を低減し、顔の表情の明瞭さを最大化することが可能である。さらに、照明の方向及び色を調整しない場合には、該特定された顔の領域内におけるポーズをとられた顔の表情に寄与しない変化を送信するために、多くのビットが無駄にされ、このようにしてさらに多くの処理能力を浪費し、及び/又は帯域幅の使用が最適より悪くなるであろう。
【0010】
用語「色」は、有彩色(色調(光の主波長により決定されるように、赤からすみれ色の範囲で知覚できる色の特性)を有する色)と無彩色(色調を欠いた色、つまり白、灰色、及び黒)の両方を含むことが意図されている。
【0011】
好ましくは、顔を検出することは、前記顔の1つ以上の特長を特定することを備え、前記顔の1つ以上の特長を特定することは、記憶されている特長テンプレートであって、前記特長テンプレートの各々が顔の特長の画像を備え、サイズが前記領域に対応するものと、前記フレームデータの領域を比較することと、前記フレームデータの領域と前記テンプレートの1つの一致を特定することにより各特長を特定することとを備える。好ましくは、前記特長は前記顔の1組の目を備える。目は、目の形状が異なる角度から見られるときに比較的静的であるため、またテンプレート内に適当な量のコントラストがあるため、テンプレート照合に使用するのに適している。
【0012】
好ましくは、前記方法は、前記特定された目の組の、それぞれ目の間の距離及び回転角度をチェックすることをさらに備える。このようにして、(目が離れすぎているか、又は目の間の回転角度が大きすぎるために)有効ではない目の組を排除することができる。
【0013】
好ましくは、前記顔に入射する光の見かけの方向を保つことは、前記フレームデータを低域フィルタリングすることと、前記フレームデータの前記低域フィルタリングされたバージョンを前記フレームデータから減算することと、以前に記憶された基準フレームデータの低域フィルタリングされたバージョンを、前記フレームデータの低域フィルタリングされたバージョンに加算することとを備える。前記以前に記憶された基準フレームデータは無色(neutral)照明の下での前記顔の画像を備える。以前に記憶された基準フレームデータの低域フィルタリングされたバージョンを加算することによって、結果として生じるフレームはさらに自然に見える。
【0014】
本発明の他の態様は請求項に定められている。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施形態が、添付図面に関してここで一例としてのみ説明され、該添付図面において、類似する参照番号が類似する部分を指す。
【0016】
ここで本発明のいくつかの実施形態で使用されている汎用コンピュータシステムが、図1に関して説明される。他の実施形態が、ハンドヘルド装置、ノートパソコン、メインフレームコンピュータ、ミニコンピュータ、マルチプロセッサシステム、分散システム等を使用することがある。本発明を実現するようにプログラミングされることができる広範囲のハードウェアを考慮すると、本発明の動作は一般的に、プログラムモジュールのような、このコンピュータシステムのコンピュータによって実行されるコンピュータ実行可能命令として後述される。このようなプログラムモジュールには、タスクを実行する又は特定の抽象データ型を実現するプロセス、プログラム、オブジェクト、コンポーネント、データ構造、データ変数等が含まれ得る。分散コンピューティング環境においては複数のコンピュータシステムが通信ネットワークに接続されてもよく、本発明の個々のプログラムモジュールは該複数のコンピュータシステムの間で分散されてもよい。
【0017】
当分野において一般的に知られている汎用コンピュータシステム(図1)は、コンピュータ処理装置、マザーボード、1つ又は複数のハードディスクドライブ、システムメモリ及びCD、CD−R、CD−RW、DVD等のリムーバブル光ディスクから読み取る及び/又はリムーバブル光ディスクに書き込むことができる光ディスクドライブ110を含むデスクトップタワー基本装置100を備えている。さらに、該基本装置100は、磁気フロッピー(登録商標)ディスクを受け入れ、磁気フロッピーディスクから読み取る及び/又は磁気フロッピーディスクに書き込むことができる磁気フロッピーディスクドライブ112も内蔵している。
【0018】
図1は、例示的なコンピュータシステムを図示しているにすぎず、他の構成のコンピュータシステムも本発明に使用できることが理解されよう。具体的には、該基本装置100はデスクトップ構成であってもよく、あるいは該コンピュータシステムはラップトップ、ノートブック又はハンドヘルド(handheld)の構成で携帯可能に実現されてもよい。
【0019】
該コンピュータシステムの内部構成要素は、ランダムアクセスメモリ120を備えるシステムメモリ118が取り付けられているマザーボードと、読取専用メモリ130とを含む。加えて、システムメモリ118を含む多様なシステム構成要素を処理装置152と結合する、システムバス140が設けられている。フロッピーディスクドライブ112に差し込まれている任意のフロッピーディスクからデータを読み取り、あるいは該フロッピーディスクにデータを書き込むように該フロッピーディスクドライブ112を制御するフロッピーディスクドライブインタフェース156と、光ディスクドライブ110に差し込まれているリムーバブル光ディスクからデータを読み取り、該リムーバブル光ディスクにデータを書き込むように該光ディスクドライブ110を制御する光ドライブインタフェース160と、IRポート116とブルーツース(商標)PCカード118を制御するブルーツース(商標)カードインタフェース155とを制御する赤外線(IR)ポートインタフェース153ともまた、該システムバス140に結合されている。該IRポート116及びブルーツース(商標)PCカード118により、該コンピュータシステムは他の同様に有効にされている装置と通信できる。ネットワーク190上で該コンピュータシステムが他のコンピュータシステムと通信できるように構成されている、ネットワークカード等の形式のネットワークインタフェース162もまた、該システムバス140に結合されている。該ネットワーク190はローカルエリアネットワーク、広域ネットワーク、ローカル無線ネットワーク等であってもよい。特に、IEEE802.11無線LANネットワークは、該コンピュータシステムの移動性を許容するために特に有用である場合がある。該コンピュータシステムは、該ネットワークインタフェース162によって、ネットワーク190上でプログラム又はデータの交換のためにサーバ、ルータ、又はピアレベルコンピュータ等の他のコンピュータシステムとの論理接続を形成できる。
【0020】
ネットワークインタフェース162に関して、本発明者らは、該ネットワークインタフェース162が無線LANネットワークカードであることがどのように好ましいかを前述したが、該コンピュータシステムに、シリアルポートインタフェース又はパラレルポートインタフェース(図示しない)に接続され、公衆交換電話網(PSTN)を介して該コンピュータシステムから他のコンピュータへの論理接続を形成するように構成されたモデムが設けられてもよいことも等しく理解されなければならない。
【0021】
該コンピュータシステムがネットワーク環境で使用される場合、該コンピュータシステム内に局所的に記憶され得るアプリケーションプログラム、他のプログラム及び他のデータは、代わりに、又は、加えてリモートコンピュータにも記憶されることができ、該ネットワーク190上で形成されている論理接続により該コンピュータシステムによってアクセスされてもよいこともさらに理解されなければならない。
【0022】
加えて、システムバス140に結合され、ハードディスクドライブ168からのデータ又はプログラムの読み取り、及びハードディスクドライブ168へのデータ又はプログラムの書き込みを制御するハードディスクドライブインタフェース166も提供される。ハードディスクドライブ168、光ドライブ110とともに使用される光ディスク、又はフロッピーディスク112と使用されるフロッピーディスクのすべては、コンピュータが読み取り可能な、命令、データファイル、プログラムモジュール及び該コンピュータシステムのための他のデータの不揮発性記憶を提供する。これらの3つの特定のタイプのコンピュータ読み取り可能記憶媒体が本明細書で説明されてきたが、データを記憶できる他のタイプのコンピュータ読み取り可能媒体、特に磁気カセット、フラッシュメモリカード、テープ記憶ドライブ、デジタル多用途ディスク等が使用され得ることが、意図されている読者によって理解されるであろう。
【0023】
ハードディスクドライブ168、又は任意のフロッピーディスク又は光ディスクのようなコンピュータ読み取り可能記憶媒体の各々は、種々のプログラム、プログラムモジュール又はデータを記憶することができる。特に、本実施形態のハードディスクドライブ168は、アプリケーションプログラム175、アプリケーションプログラムデータ174、コンピュータシステム1又はユーザに必要とされるその他のプログラム173、Microsoft(登録商標) Windows(登録商標)、Linux(登録商標)、Unix(登録商標)等のコンピュータシステムのオペレーティングシステム172及びその他のユーザデータ171も記憶する。該ハードディスクドライブ168は、プログラム及びデータが電力を使用せずに恒久的に記憶できるように、前述されたプログラム及びデータの不揮発性記憶装置を提供する。
【0024】
コンピュータシステムがアプリケーションプログラムを実行するため、あるいはハードディスクドライブ168又は他のコンピュータ読み取り可能記憶媒体に記憶されているデータを処理するために、システムメモリ118は、ランダムアクセスメモリ120を提供し、該ランダムアクセスメモリ120は、コンピュータシステムによって必要とされるときに、アプリケーションプログラム、プログラムデータ、その他のプログラム、オペレーティングシステム及びユーザデータのための記憶装置を提供する。これらのプログラム及びデータがランダムアクセスメモリ120にロードされるとき、該メモリの特定の部分125がアプリケーションプログラムを保持し、別の部分124がプログラムデータを保持し、第3の部分123が他のプログラムを保持し、第4の部分122がオペレーティングシステムを保持し、第5の部分121がユーザデータを保持してもよい。多様なプログラム及びデータは、必要に応じて該コンピュータシステムによって該ランダムアクセスメモリ120の中に、及び中から移動され得ることが理解されるであろう。さらに詳細には、プログラム又はデータが該コンピュータシステムによって使用されていない場合には、該プログラム又はデータはランダムアクセスメモリ120に記憶されず、代わりにハードディスク168上の不揮発性記憶装置に返される可能性が高い。
【0025】
該システムメモリ118は、該コンピュータシステム内のシステム要素間で情報を転送するために基本情報及びコマンドを含むバイオス(BIOS)のための記憶装置を提供する読取専用メモリ130も提供する。BIOSは、多様なシステム要素がどのように互いに通信するのかに関する基本情報を提供し、システムが起動するのを可能にするために、システム起動時に必須である。
【0026】
本発明の第1の実施形態では、ビデオ通信システムが提供される。該通信システムは、既に説明されたようなコンピュータシステムと、ノキア(登録商標)3650携帯電話等の携帯可能なハンドヘルド装置199とを含む。
【0027】
該コンピュータシステムは、電源を入れると、ハードディスク168に記憶されているMicrosoft(登録商標) Windows(登録商標) 2000オペレーティングシステムプログラムを実行する。当業者により理解されるように、該オペレーティングシステムプログラムは、Microsoft(登録商標) DirectShow Application Programming Interface(API)を含むDirextX 8.1をサポートする。
【0028】
装置199は、ビデオを捕捉し、国際電気通信連合(ITU)H.263規格に従って該ビデオを符号化するカメラを含む。捕捉されたビデオは3GPPマルチメディアファイル、すなわち、第3世代パートナーシッププロジェクトによって規定されるファイル規格として該モバイル装置199に記憶される。装置199は、該コンピュータシステムにプレインストールされ、該ハードディスクドライブ168に記憶されているソフトウェアを使用して赤外線又はブルーツース(商標)を介してコンピュータシステム1と情報を交換できる。また該コンピュータシステムには、(モバイル装置199から受信される)3GPPマルチメディアファイルを、DirectShow APIで提供される機能を使用して読み取ることができるAVIファイルに変換するためにアップルコンピュータ社のQuickTimeソフトウェアを利用するmov2aviと呼ばれるフリーウェアツールも記憶されている。
【0029】
該コンピュータシステムには、ともに、米国カリフォルニア州95052、サンタクララ、ミッションカレッジ通り2200のインテル(登録商標)社から入手できるOpenCVソフトウェアライブラリ及び画像処理ライブラリ(IPL)もインストールされている。
【0030】
本実施形態では、画像処理プログラムはCD ROMで提供され、光ディスクドライブ110を使用して該コンピュータシステムにインストールされ、ハードディスクドライブ168に記憶されている。プログラムコードはC++プログラミング言語で書かれ、コンパイル時及び実行時に、装置199の該カメラによって捕捉されたビデオデータを表現するAVIファイルを処理する。
【0031】
ここで該画像処理プログラムは図3から図8に関連して説明される。以下の説明は、以下の内容を前提とする。つまり(1)ユーザはカメラを見ている。(2)該ユーザの目が両方とも見える。(3)該ユーザの頭部の縦揺れ、横揺れ及び偏揺れが小さい(つまり<c10°)、及び(4)該カメラは通常の見える距離(つまり、c15から50cm)に留まっている。ユーザの頭部の縦揺れ、横揺れ、及び偏揺れは図2を参照して定められる。縦揺れは頭部を縦に振ることに関し、横揺れは耳を肩の方に動かすことに関し、偏揺れは頭部を振ることに関する。
【0032】
該画像処理プログラム(図3)のメインループのための擬似コードが以下に示される。
【数1】

【0033】
言い換えると、及び図3を参照すると、該画像処理プログラム3は、未処理の画像データ300を処理して安定化した出力画像データ700にすることを含む。未処理画像データ300は、画像データが該画像処理プログラム3によって処理されていないという意味で未処理であり、捕捉され、3GPPファイルの形で装置199に記憶され、コンピュータシステム1に転送され、AVIファイルに変換されているビデオフレームデータのセットを備える。その後未処理画像データ300を形成するフレームを該AVIファイルから読み取るためにDirectShow APIが使用される。
【0034】
メインループ内で呼び出されるセットアップ(setup)関数は、メイン関数(mobileFacePreprocessor())内で使用されるいくつかの変数をロードし、初期化するために使用される。該セットアップ関数の中で呼び出される多様な関数が以下でさらに詳細に説明される。
【0035】
次に、未処理データ300は3つの段階400、500、600で処理される。該第1の段階は該未処理画像データの各フレーム内の頭部の画像を検出し、位置合わせし(400)、該第2の段階は該頭部の顔にあたる光の方向を正規化し(500)、該第3の段階は該画像のカラーバランスを補正する(600)。該画像処理プログラム(図3)のメイン関数(mobileFacePreprocessor())の擬似コード例が以下に示される。
【数2】

【0036】
これらの段階のそれぞれが、以下でさらに詳しく説明される。
【0037】
頭部画像位置合わせ(400)
ここで図4を参照して、該未処理画像データの各フレームの頭部画像を位置合わせする段階(400)が説明される。頭部画像を位置合わせすることは、(i)該頭部を追跡すること(401)と、(ii)該頭部がすべてのフレーム(450)で同じ場所、向き、及び規模のままとなるように該未処理画像データ300のアファインワープ(affine warp)(直線状の変形及び回転の組み合わせ)とクロップ(crop)を実行することの2つの段階からなる。該頭部画像位置合わせ段階400の擬似コード例が以下に示される。
【数3】

【0038】
ここで該段階のそれぞれがさらに詳しく説明される。
【0039】
頭部追跡(401)
追跡は、複数のフレームにわたり、ユーザの頭部の特定の特長の動きについていく反復プロセスである。代替策は、未処理画像内のすべてのピクセルにわたり、所望される特長の新たな検索を実行することであろう。しかしながら、初期の推定値が与えられると、該推定値の周辺だけ検索すればよいので、使用される計算処理リソースはさらに少なくなるため、追跡の方がよい。本実施形態では、頭部の追跡は、ユーザの目の動きを追跡することにより達成される。チェックされる狭い領域の中に特長を見つけることが不可能な場合には、追跡が失敗する可能性がある。これは、例えば、該特長が塞がれている(例えば該ユーザの手等の何らかの他の物体により隠されている)場合、あるいは該特長がチェックされている領域外に移動する場合(例えば、カメラが突然動くことにより、該特長がフレームを大きく横切る場合)に起こることがある。
【0040】
本実施形態では、頭部を追跡する方法(401)は、以下の擬似コードによって示される。
【数4】

【0041】
言い換えると、及び図5を参照すると、該プロセスは、目(403)の初期の位置があるかどうか、つまり以前のフレームにおいて目の組の座標が検出されていたかどうかをチェックすることにより開始する。このチェックの結果が肯定的である、つまり目の組の座標が以前のフレームにおいて発見された場合には、該頭部の追跡は可能であり、初期推定値として以前に検出された座標を使用して、カレントフレーム内の該ユーザの目についてローカルサーチ(405)が実施される。他方、結果が否定的である場合には、頭部の追跡は失敗し、代わりに未処理画像全体にわたり、該ユーザの目についてグローバルサーチ(407)が実施される。該ローカルサーチ(405)と該グローバルサーチ(407)の両方が、以下でさらに詳しく説明される。
【0042】
ローカルサーチ405
本実施形態では、該ローカルサーチ(405)を実行する方法は以下の擬似コードにより示される。
【数5】

【0043】
ローカルサーチは、ユーザの左目とユーザの右目の両方について実施され、正規化された相互相関を使用するテンプレート照合によって実行される。
【0044】
テンプレート照合は、一致を見つけるために未処理画像データ内の領域と、関心のある特長の公知の例を含むテンプレートを比較することを備える。本実施形態では、2つのテンプレートが事前に記憶されている。一方は未処理画像データ内の左目の位置を検出するために使用される、あらかじめ撮影されたユーザの左目の画像であり(eyeTemplate.left)、他方は未処理画像データの中で右目の位置を検出するために使用される、あらかじめ撮影されたユーザの右目(eyeTemplate.right)の画像である。該2つのテンプレートは、装置199で捕捉された静止画像から作成され、その結果、調べられているフレーム内で予想される画像に見え方及びサイズにおいて非常に類似している。正規化された相互相関は、該未処理画像の領域とテンプレートの比較のためのスコアを生成するために使用される数学的な技法である。
【0045】
記憶されているテンプレートのサイズに基づいて、正方形の形状をした検索範囲が、最初に設定され、次に未処理画像データ内で関心のある領域がIPLソフトウェアライブラリのcreateROI関数を使用して選択される。この領域は、以前に検出された目の座標から、該検索範囲だけオフセットされている。テンプレート照合は該画像のグレイスケールバージョン(単一の、2次元行列であって、該2次元行列は、場所(x、y)での輝度強度を表す整数、つまり単一チャネル)で実行されるため、該領域は次にIPLソフトウェアライブラリのcolorToGrey関数を使用してグレイスケールに変換される。(該テンプレートはグレイスケール画像として記憶されてもよいし、あるいは該テンプレートが必要とされるときにグレイスケール画像に変換されてもよい。)次に、OpenCVソフトウェアライブラリのcvMatchTemplate関数が使用され、該グレイスケール領域全体で該グレイスケールテンプレートの該テンプレート照合及び正規化相互相関が実行される。新しい目の位置(ユーザの左目と右目の座標の組)は、領域内において比較スコアが最高である位置にあると解釈され、該比較スコアはOpenCVソフトウェアライブラリのcvMinMaxLoc関数を使用して計算される。
【0046】
ローカルサーチから得られる目の組の座標は、次に、該座標が有効であるかどうかをチェックするために試験される(409)。すなわち、左目と右目の相対的な位置が、該左目と右目が遠く離れすぎていない、あるいは近すぎていないこと、及び該左目と右目の間の回転角度が小さいことを確実にするためにチェックされる。本実施形態では、有効組試験(409)を実行する方法は、擬似C++コードによって以下に示される。
【数6】

【0047】
本実施形態では、目の組は、右目と左目の間の距離edが0.1imageWidth未満である、あるいは0.4imageWidthより大きい場合(ed及びimageWidth(画像の幅)は共にピクセル単位で測定される)、あるいは頭部の横揺れeaが0.5より大きい又は−0.5未満である場合(eaはラジアンで測定される)に、無効と見なされる。しかしながら、これらの範囲は装置199のカメラの視野に応じて変化する。目の組が無効であることが判明する場合には、頭部の追跡は失敗し、未処理画像全体におけるユーザの目のグローバルサーチ(407)が代わりに実施される。目の組が有効であることが判明する場合には、目の組の座標413のセットが検出されたので、該頭部追跡段階401が完了する。
【0048】
ローカルサーチ405の間、目の組の座標に加えて、一連の以前のフレームにわたって観察されるように、以前のフレームについて検出された座標の「速度」を考慮に入れることも可能である。これはローカルサーチ中に目の組の推定される位置を改善する効果を有する。この機能をローカルサーチに加えるためにカルマン(Kalman)フィルタ(プロセスの状態を推定するための効率的な計算手段を提供する数学方程式の組)を使用することができ、本実施形態では、該カルマンフィルタはOpenCVソフトウェアライブラリのcvKalmanUpdateByTime関数とcvKalmanUpdateByMeasurement関数によって提供される。
【0049】
グローバルサーチ407
本実施形態では、該グローバルサーチ(407)を実行する方法が、以下の擬似コードによって示されている。
【数7】

【0050】
言い換えると、及び図6を参照すると、プロセスは右目と左目のために実行されるグローバルテンプレート照合(419、429)(未処理画像データ全体のグレイスケールバージョン上でのグレイスケールテンプレートとの正規化された相互相関)で開始する。上述のように、OpenCVソフトウェアライブラリのcvMatchTemplate関数が、テンプレート照合及び正規化相互相関を実行するために使用される。場所ごとに相互相関からの結果として生じるスコアは、その特定の場所に目がある推定確率のマップとして見ることができる。
【0051】
ひいては、右目に対する左目の相対的な位置の知識に基づいて左目の位置を推定し、左目に対する右目の相対的な位置の知識に基づいて右目の位置を推定することも可能である。(グローバルサーチを実行する必要なく頭部追跡が成功するほど、頭部の動きが十分に低速であったときの)装置199で捕捉される簡略なビデオトレーニングシーケンスからの統計が、ユーザの左目の位置が、平均的な眼間隔でユーザの右目の位置からオフセットされる配置(distribution)を形成することを示した。したがって、(該右目グローバルテンプレート照合419から得られる)右目の推定値を、ガウス分布(画像を「不鮮明にさせ」、詳細及び雑音を取り除くために使用される演算子)で畳み込み積分し、オフセットすることによって左目の該位置の確率マップを形成できる。(左目グローバルテンプレート照合429から得られる)左目推定値をガウス分布で畳み込み積分し、オフセットすることによって右目の位置の確率マップを形成することも可能である。これは、「ぼかし(blur)」関数と「シフト(shift)」関数によって上記の擬似コードに、及びステップ421/423及び431/433によって図6に表されている。本実施形態では、(該トレーニングシーケンスを使用して計算されるような)xシフト及びyシフトは、左目の場合それぞれ−0.17ImageWidth及び0.004ImageHeightであり、右目の場合、0.17ImageWidth及び−0.004ImageHeightである。
【0052】
本実施形態では、「blur」を実行するための方法は、以下の擬似コードで示されている。
【数8】

【0053】
ここで、convolveSep2D関数は、インテルIPDソフトウェアライブラリによって提供される。ガウスカーネルを設定するために使用され得る関数の擬似コード例が以下に示される。
【数9】

【0054】
ガウスカーネルgaussianKernelxとgaussianKernelyを設定するために、この関数をsetup関数の一部として以下のように呼び出すことができる。
【数10】

【0055】
本実施形態では、「shift」(つまり上述したようなオフセット)を実行する方法は、以下の擬似コードによって示される。
【数11】

【0056】
createROI関数は、インテルIPDソフトウェアライブラリによって提供され、fillImage関数とcopyImage関数はインテルOpenCVソフトウェアライブラリのcvFillimage関数とcvCopyImage関数によって提供される。
【0057】
このように、テンプレート照合(419/429)、ぼかし(blurring)(421/431)及びオフセット(423/433)から、右目の位置について2つの推定が得られ、一方は右目グローバルテンプレート照合によって得られるものであり(上記の擬似コードで「match.right」と呼ばれている)、もう一方は、左目のためのグローバルテンプレート照合をぼかし、オフセットさせること(上記の擬似コードで「shift.left」と呼ばれている)によって得られるものである。同様に左目の位置に対しても(上記の擬似コードの中で「match.left」と「shift.right」と呼ばれる)2つの推定値がある。
【0058】
それぞれの目にとって「最良の」位置とは、テンプレート照合推定値及びオフセットされ、ぼかされたテンプレート照合推定値がともに良好なところである。該2つの推定値は、該2つの推定値を互いにに乗算することによって結合させることができ、これは上記擬似コードにおいては「multiply(乗算)」関数によって、及び図6ではステップ425/435によって表される。本実施形態では、乗算関数は、c(x,y)=[a(x,y)b(x,y)/255]であるような、新しい画像cを形成するよう2つの画像aとbのピクセル単位の乗算を実行する、インテルIPLソフトウェアライブラリのMultiply(乗算)関数によって提供される。上記の擬似コードでは、入力画像は「match」と「shift」と呼ばれ、出力画像は「BestGuess」と呼ばれている。次に、グローバル最大値の検索(上記の擬似コードにおける「locateMaximum」関数及び図6の段階427/437)が、インテルOpenCVソフトウェアライブラリのcvMinMaxLoc関数を使用して実行され、目の座標439の最良の組を生じさせる。
【0059】
再び図5を参照すると、グローバルサーチから得られる目の座標の最良の組は、次に最良の組が有効であるかどうかをチェックするために試験される(411)。該チェックは、ステップ409に関連して前述されたように、ローカルサーチから得られる目の組の座標に対して実行されるチェックに事実上類似している。目の組が有効であると判明すると、目の組の座標413の組が検出されたので頭部追跡段階401が完了する。しかしながら、該目の組が有効でないと判明すると、頭部追跡は失敗に終わる415。この場合、1つのオプションは、データのこのフレームに対しては出力を提供せず、該目の初期位置なしでデータの次のフレームに対して該プロセスを再スタートすることである。これは、さらなるグローバルサーチ407が実行されることを確実にするためにステップ403で実施される試験の失敗につながる。また、(例えば、カルマンフィルタを使用することによって)該目の前回の既知の位置を基準にして、目の組の座標(417)を推定するというオプションもある。
【0060】
アフィンワープ及びクロップ(450)
目の組413の座標を取得したので、頭部が全データフレームで同じ位置、向き及び規模に留まるように、該未処理画像300のアフィンワープ(affine warp)及びクロップ(crop)(450)を実行できる。本実施形態では、アフィンワープ及びクロップは、該頭部のx、y位置、縮尺及び横揺れの変化に対処するにすぎない。該アフィンワープ及びクロップは、頭部の横揺れと偏揺れの変化、あるいは異なる遠近的な歪み(つまり、顔がカメラに非常に近いとき、顔は短縮されて見える)が異なることに起因する変化には対応しない。しかしながら、ユーザがカメラに視線を合わせ続ける場合には、これらの変化は、小さくなりがちである。
【0061】
クロップを実行する際の接写の程度を調整できる。さらなる機械処理が目標である場合には、顔の該特長(額から顎)だけの極端な接写が最も安定した画像を提供する。しかしながら、これは見て美しい画像を生じさせない。顔全体を示す、より自然な頭部のショットも可能である。接写の程度は、出力画像における右目の所望される座標、及び該出力画像での所望される目の間の距離を表す変数desiredRightEyeLocationとdesiredEyeWidthによって制御される。頭部画像を検出するための上記の擬似コードを参照すると、本実施形態では、極端な接写の場合これらの変数はそれぞれ0.6、0.2、及びピクセル単位の極端な接写画像の幅の0.3倍として設定される。接写の場合、該変数は0.4、0.3、及びピクセル単位の接写画像の幅の0.41倍として設定される。
【0062】
本実施形態では、アフィンワープ及びクロップを実行する方法(450)は、以下の擬似コードによって示されている。
【数12】

【0063】
ここで、warpAffine関数は、インテルIPLソフトウェアライブラリから提供される。
【0064】
(頭部画像位置合わせ(400)段階の結果でもある)アフィンワープ及びクロップ(450)の結果は、クロップの程度に応じてcloseupImage又はextremeCloseupImageのどちらかとして記憶される顔(490)の位置合わせされた画像である。
【0065】
これが、頭部画像を位置合わせする段落(400)を完了する。
【0066】
光方向正規化(500)
図7を参照すると、段階400で検出された該頭部にあたる光方向の正規化プロセス(500)がここで説明される。
【0067】
再び画像処理プログラム(図3)のための擬似コード例を参照すると、光方向の正規化が、頭部画像位置合わせ段階400でのクロップの程度に応じて、extremeCloseupImageデータ又はcloseupImageデータのどちらかで実施されることが分かる。
【0068】
本実施形態では、光方向を正規化する方法(500)が以下の擬似コードによって示されている。
【数13】

【0069】
図7を参照すると、光方向の正規化がYUV色空間内のY(輝度)チャネルに含まれる輝度強度情報だけについて実行される。(上記の擬似コードでは、alignedImageと呼ばれ、extremeCloseupImageデータ又はcloseupImageデータのどちらかを備える)入力画像データはRGB色空間からYUV色空間に変換され、(上記のコードの中のyuv.y変数によって表される)Yチャネルが抽出される(501)。本実施形態では、これはインテルソフトウェアライブラリのRGB2YUV関数を使用して実行される。
【0070】
該ユーザの顔全体にあたる光の方向が顔全体で明から暗へのゆっくりとした変化を引き起こすことが仮定される。したがって、光輝度強度の変化の大部分は、画像の低周波に捕捉される。ガウスぼかし(Gaussian blurring)(つまり、ガウス関数との畳み込み積分)は、効果的に画像を低域フィルタリングする(ステップ503)。本実施形態では、これはインテルIPLソフトウェアライブラリのconvolveSep2D関数を使用して実施される。前述されたcreateGaussianKernels関数は、ガウスカーネルlightDirGaussianKernelxとlightDirGaussianKernelyをセットアップするために使用でき、前述されたセットアップ関数の中で以下のように呼び出されるであろう。
【数14】

【0071】
このぼかしバージョンをオリジナルから減算すると、高空間周波数だけを含む画像が残る(ステップ505)。本実施形態では、これは、c(x,y)=a(x,y)−b(x,y)となるように新しい画像cを形成するように2つの画像aとbのピクセル単位の減算を実行するインテルIPLソフトウェアライブラリの減算関数を使用して実施される。
【0072】
この段階で、照明の影響は著しく取り除かれたが、その結果生じる画像はあまり自然には見えないため、無色照明(neutral lighting)(強力な陰影が該顔全体に投げかけられることなく該顔にむらのない外観を与える拡散照明)の下での頭部の画像のガウスぼかし(つまり、低域フィルタリングされた)バージョンを加算することによって何らかの低周波情報を回復する。
【0073】
本実施形態では、ガウスぼかし画像が、クロップの程度に応じて、無色照明下の頭部の位置合わせされた接写画像又は極端な接写画像のどちらかから作成される。これらの位置合わせされた中間色画像517は単一画像ではなく、多くの位置合わせされた画像を合計することにより生じる平均画像であり、光の方向の変化を一様にする効果がある。
【0074】
位置合わせされた画像データ490と同様に、位置合わせされた中間色画像データ517は最初にRGB色空間からYUV色空間に変換され、Yチャネルが抽出される(519)。本実施形態では、これはインテルIPLソフトウェアライブラリのRGB2YUV関数を使用して実行される。次に、ガウスぼかし(521)が、インテルIPLソフトウェアライブラリのconvolveSep2D関数を使用して抽出されたデータに実施される。位置合わせされた中間色画像の処理のための擬似コードの例は以下に示される。
【数15】

【0075】
ぼかされ、位置合わせされた中間色の画像は、クロップの程度ごとに一度だけ作成さればよいため、この関数は前述されたセットアップ関数内で以下のように呼び出される。
【数16】

【0076】
次に、ぼかされた中間色の位置合わせされた画像は、減算ステップ(505)から出力される画像データに加算される(507)。本実施形態では、これは、c(x,y)=a(x,y)+b(x,y)となるように新しい画像cを形成するために2つの画像aとbのピクセル単位の加算を実行するインテルIPLソフトウェアライブラリの加算関数を使用して実施される。
【0077】
結果として生じる画像データは、次にRGB色空間に変換し直される(515)。本実施形態では、これはインテルIPLソフトウェアライブラリのRGB2YUV関数を使用して実行される。
【0078】
光方向正規化段階(500)の結果、該クロップの程度に応じて、balancedECImage又はbalancedCImageのどちらかとして記憶されるバランスのとれた光方向(550)と位置合わせされた顔の画像が生じる。
【0079】
これで光方向を正規化する段階が完了する(500)。
【0080】
カラーバランスの補正(600)
図8を参照すると、段階500から出力されたバランスのとれた光方向と、位置合わせされた画像(550)のカラーバランスを補正するプロセス(600)がここで説明される。
【0081】
本発明の目的のために、用語「色」は、有彩色(「色調」(光の主波長により決定されるように、赤からすみれ色の範囲で知覚できる色の特性)を有する色)と無彩色(色調を欠いた色、つまり白、灰色、及び黒)の両方を含むことが意図されていることが思い出されるであろう。
【0082】
再び画像処理プログラム(図3)の擬似コード例を参照すると、カラーバランスの補正が、クロップの程度に応じてbalancedECImageデータ又はbalancedCImageデータのどちらかで実施されることが分かる。
【0083】
本実施形態では、カラーバランスを補正する方法(600)は、以下の擬似コードによって示される。
【数17】

【0084】
図8に関連して、カラーバランスの補正はステップ601でRGB画像の各チャネルに対して別々に実施され、RGB画像の各チャネル(赤、緑及び青)の平均ピクセル値が計算される。前述された擬似コードでは、これはインテルOpenCVソフトウェアライブラリのcvMean関数に相当するfindMean関数によって表される。無色照明(517)の下での頭部の位置合わせされたRGB画像の各チャネルの平均ピクセル値も計算される(605)。位置合わせされた中間色画像の処理のための擬似コードの例が以下に示される。
【数18】

【0085】
無色照明(517)の下の頭部の位置合わせされたRGB画像の各チャネルの平均ピクセル値は一度だけ計算すればよい。さらに、平均ピクセル値は顔領域からだけ計算されるため、無色照明の下での頭部の位置合わせされた極端な接写画像が使用される。したがって、この関数は前述されたセットアップ関数の中で以下のように呼び出される。
【数19】

【0086】
次に、中間色画像を適合させるために平均R値、G値、及びB値を調整するピクセルシフトが計算され(603)、このシフトは次に各ピクセルに加算される(607)。
【0087】
カラーバランス補正段階(600)の結果、光方向のバランスがとられ、カラーバランスが補正された顔の位置合わせされた画像、すなわちクロップの程度に応じて顔の接写画像(stabilisedCImage)又は極端な接写画像(stabilisedECImage)のどちらかからなる安定した出力画像(700)が生じる。
【0088】
これで光方向の正規化の段階が完了する(500)。
【0089】
画像処理プログラム(図3)のmobileFacePreprocessor()関数のビデオデータに対する影響は、場面を通した被写体の大局的な動き、カメラと被写体との間の相対的な動き、あるいは処理後等における自動ホワイトバランス及び露光補償等の特定のカメラパラメータの電子調整により生じるフレーム間のピクセル値の変動を削減することである。被写体の外観のその他の変化は、実質的には被写体の非剛体(non−rigid)変形(例えば、顔の場合−表情の変化)、及び被写体の表面特性の変化(例えば、顔の場合では、しわ及び紅潮)に起因する。
【0090】
再び上記の画像処理プログラムのメインループのための擬似コードの例を参照すると、いったん安定した出力画像700が得られると、該出力画像は何らかの他の関数で使用することができ、これは関数doSomethingによって表されている。
【0091】
例えば、画像処理プログラム(図3)は、ビデオ会議システムの一部となることがあり、該ビデオ会議システムでは、安定化した出力画像が符号化され、従来のビデオコーデック(例えばH.264)及びネットワークプロトコル(例えばRTP、TCP)を使用して送信されるであろう。(また、このようなビデオ会議システムにおいて、この種の画像処理が常に必要とされない可能性もある。例えば、人物の状況及び周囲が人物の表情より重要であるときがある場合がある。したがって、このようなビデオ会議システムでは、未処理データの符号化/送信と、安定化した出力データの符号化/送信の間で切り替えることが可能になるであろう。)
代替例では、安定化した出力画像700が別の人間のユーザに提供されるのではなく、人間への送信の前にさらなる何らかの画像処理を実行するであろう機械に提供される可能性がある。機械が該機械自体顔の表情に関する自動的な理解に到達することも考えられ、これは特定の顔の表情(例えば笑み)のダイナミクスが、例えばコンピュータネットワーク又は安全な場所へのアクセスを可能にするために使用される応用例で有用であろう。
【0092】
代わりに、カメラが車両のダッシュボード上に取り付けられ、運転者の顔のビデオを捕捉するために使用できるであろう。このシナリオでは、顔全体にあたる光は顔/頭部に対する方向の変化があることに加えて(特に夜に)大きく変化するであろう。安定化した出力画像は、運転者に油断のないこと、したがって車両を安全に制御する能力を監視するために使用できるであろう。
【0093】
画像処理プログラム(図3)は多くの場合ビデオデータの送信前に実行されるため、前処理と呼ぶことができることが理解される。
【0094】
上記説明から、本発明から逸脱することなく、多くの修正又は変形が前述された実施形態に加えられてもよいことが明らかであろう。このような修正及び変形は以下を含む。
【0095】
前述された実施形態では、画像処理プログラムはコンピュータシステム1に記憶され、該コンピュータシステム1上で実行されるが、モバイル装置199上に該プログラムを記憶し、該モバイル装置199上で実行することも可能である。これにより、リアルタイムの人間−人間の通信が可能になるであろう。このような実施形態では、画像処理プログラムによって実施される処理をモバイル装置と該コンピュータシステムの間で分割することが可能である。処理のいくらかをモバイル装置と、該モバイル装置が接続される基地局の間、あるいはモバイル装置とネットワークに接続される別のコンピュータの間で分割することも可能である。例えば、モバイル装置が、頭部の画像の場所を突き止め、該頭部の画像の位置合わせをするために必要な処理を、光方向の正規化と、カラーバランス調整に必要な処理を実行する該基地局/コンピュータと共に、実行することができるであろう。代わりに、目の組に対するグローバルサーチを、基地局/コンピュータで実行し、結果をモバイル装置に送り返すこともできるであろう。
【0096】
前述された実施形態では、テンプレート照合はユーザの目のローカルサーチ及びグローバルサーチに使用された。代替実施形態では、テンプレート照合は鼻孔、眉毛等のユーザの顔の他の特長のローカルサーチ及び/又はグローバルサーチに使用できるであろう。
【0097】
代替実施形態では、テンプレート照合は、ここに説明されるように適応カラーマッチング方法と結合され、あるいは置換されることもできるであろう。顔の初期位置が与えられると、「顔」及び「顔以外」である画像の領域を画定することが可能である。これらの2つの領域から、2つの確率分布、すなわちピクセルが「顔」領域に属する場合にピクセルが色cである確率(P(ピクセルは色cである|ピクセルは顔に属する)と、ピクセルが「顔以外の」領域に属する場合にピクセルが色cである確率(P(ピクセルは色cである|ピクセルは顔の一部ではない))とを計算することができる。新しい画像の場合、ピクセルごとに上記の2つの分布を使用して、ピクセルが色cである場合にピクセルが「顔」領域に属する確率(P(ピクセルは顔に属する|ピクセルは色cである)を決定するために、ベイズ定理(Bayes' Theorem)が利用できる。顔に属する確率が高いピクセルの空間分布を調べることにより、新しい画像内での顔の場所を決定することが可能である。
【0098】
本実施形態では、色はRGBよりむしろYUVとして(又はHSVとしても)最もよく表され、さらに計算量を削減するために、この空間は極めて粗くすることもできるであろう(例えば、Yに4ビット、Uに4ビット、Vに4ビット)。
【0099】
しかしながら、頭部及びカメラは移動し、照明の変化を引き起こすので、顔の色はもはやこれらの静的な確率分布ではよく表されないであろう。したがって、分布を更新できる。新しい画像の中で該顔の位置を突き止めると、再度「顔」領域と「顔以外の」領域を決定することが可能である。新しい確率分布はこれらの領域のピクセルから計算することができ、ひいては該グローバル分布は移動平均法を使用して更新できる。
【0100】
例えば、pYUV(t)は、ピクセルが「顔」領域に属する場合に、該ピクセルが色Y、U、Vを有する確率(P(ピクセルは色Y、U、Vである|ピクセルは顔である))であり、フレームtの中の該ピクセルから計算され、gpYUV(t)は、ピクセルが「顔」領域に属する場合に、該ピクセルが色Y、U、Vを有する移動平均確率(P(ピクセルは色Y、U、Vである|ピクセルは顔である))であり、フレームtの中の該ピクセルから計算される。すなわち、gpYUV(t+1)=gpYUV(t)(1−a)+pYUV(t)aであり、ここでaは定数であり小さい(例えば0.1)。
【0101】
代わりに、「顔」領域及び「顔以外」の領域の確率分布も、ガウス分布によって表すことができ、ガウス分布は平均及び分散によってより簡略に特徴付けることができるため、モバイル装置の実現にさらに適している可能性がある。
【0102】
顔のサイズ/場所がありそうもないように見える、あるいは顔の色のついたピクセルの分布が粗すぎる場合に顔の軌跡の完全な損失が検出される。このケースでは、顔の位置を突き止めるために再初期化が必要とされるであろう。
【0103】
顔の向きについてのさらなる情報が必要とされる場合、ローカル特長マッチング(例えば、ローカルサーチ405に関連して前述されたような)が顔の位置及び向きに関する決定を微調整するために使用できるであろう。
【0104】
前述された実施形態では、ガウス分布が目の組のグローバルサーチで使用されたが、他の確率分布を使用できる。例えば、トレーニングシーケンスは、目の相対的な位置の2次元確率分布、つまり左目が(x,y)にあると考えて、右目が位置(x+dx,y+dy)にあるという確率(p(右目が(x+dx,y+dy)にある|左目が(x、y)にある))を生成するために使用できる。次にこの2次元分布は、前述されたオフセット/ガウス関数との畳み込み積分の代わりに、テンプレート照合結果に直接的に畳み込み積分するために使用できる。しかしながら、オフセット/ガウス関数との畳み込み積分を使用する利点は、(2次元分布での畳み込み積分のためのn回の演算と対照的に)ガウス畳み込み積分が2つの1次元の畳み込み積分に分割でき、2nのオーダーの回数の演算を含むことができるため処理が高速化するという点である。
【0105】
該グローバルサーチに関連して前述されたプロセスに対する別の代替策は以下のとおりである。左目テンプレート照合と右目テンプレート照合を前述されたように実行する⇒一致スコアを閾値化する(threshold)⇒左目に対するn個の場所と右目に対するm個の場所を与えるために残りのブロブの図心の位置を突き止める⇒左目/右目の位置のそれぞれの考えられる組(nm個の考えられる組)を比較する⇒p(右目は(x+dx,y+dy)にある|左目は(x,y)にある))に基づいてこれらの組のスコアを付ける⇒最高スコアの付いた組として目の組を選ぶ。これは前述された方法よりさらに高速である(したがって、モバイル装置での実現により適している)が、目の正しい場所が閾値段階をパスしないと失敗する。
【0106】
カラーバランスを補正するための前述された方法は、該方法から出力されるピクセルの色が、該方法に対する入力としての該同じピクセルの色の何らかの関数であることを前提とする。つまり出力色=F(入力色)であり、ここで、Fは関数であって、その特性が顔の色の測定値及び所望される色の出力分布から導き出される関数である。前述された関数に対する代替の関数は当業者に明らかであろう。
【0107】
該光方向を正規化するための前述された方法において、低域フィルタリングはガウスフィルタカーネルとの畳み込み積分によって達成されたが、ハニング(Hanning)、カイザー(Kaiser)等の他のフィルタカーネルが使用できるであろう。しかしながら、ガウスカーネルは多くのゆがみを生じさせず、2つの1次元カーネルとして実現でき、高速計算につながるため、特に効果的である。フィルタカーネルと畳み込むことによる空間領域での低域フィルタリングに対する代替策は、2次元高速フーリエ変換(FFT)を使用して画像を周波数領域に変換し、高周波を抑制するフィルタカーネルを乗算し、空間領域に戻すために逆FFTを実行することである。
【0108】
前述された実施形態では、カラーバランス補正ステップはRGB色空間で実行されたが、(RGBとYUV間の変換は線形変換であるため、RGB色空間で実行することに同等である)YUV色空間で該カラーバランス補正ステップを実行することも可能である。このような実施形態では、カラーバランス補正ステップは、Yチャネルに影響を及ぼさないであろう。加えて、光方向を正規化するステップはYチャネルだけで実施されるため、UチャネルとVチャネルに影響を及ぼさないことが思い出されるであろう。したがって、光方向の正規化及びカラーバランスの補正のステップがどの順序で実行されるのかは関係ないであろう。
【0109】
効率という点では、該2つのステップの間でRGB色空間に変換し直すことなく、YUV色空間で両方のステップを実行することが有利であろう。このような実施形態の場合、Yチャネルに対するカラー補正は意図的に無視されるであろう。事実上、頭部の位置特定のためのテンプレート照合はグレイスケール画像(Yチャネルのみ)で実行されることが思い出されるであろう。結果的に、プロセス全体はYUV色空間で実行され、(多くのビデオコーダが入力としてYUVデータを受け入れるため)該出力は恐らくYUV画像となるであろう。しかしながら、クロップアウトされた(cropped out)画像の領域についてUとVを計算することを必要とするであろうため、このような実施形態での処理の考えられる順序は以下のとおりになるであろう。RGBを入力する⇒Yを検出する⇒RGBとYをクロップする⇒クロップされたRGBでU、Vを検出する⇒YUVをアファインワープし(affine warp)、拡大縮小する⇒Yで光方向を正規化する⇒U、Vのカラーバランスを補正する⇒YUVを出力する。
【0110】
前述された実施形態では、安定化した出力画像700はRGB画像から成るが、所望される出力が頭部のグレイスケール画像であることも考えられる。このケースでは、未処理画像はまずグレイスケールに変換される(RGB色空間からYUV色空間に変換し、Uチャネル及びVチャネルを廃棄することに同等)ので画像処理ステップは簡略化されるであろう。したがって、ローカルサーチ段階又はグローバルサーチ段階のどちらかで、テンプレート照合のために注目される領域をグレイスケールに変換する必要はなく、光方向を正規化するときにRGB色空間とYUV色空間の間で変換する必要はなく、カラーバランスを補正するときに、ただ1つのチャネルを調整するだけである。
【0111】
前述された実施形態では、画像処理プログラムからの出力は安定化した出力画像であったが、目は頭部の中で固定された位置に留まり、目の平均位置は画像内の頭部の適した位置を与えるため、頭部の位置と縮尺に関する出力情報を提供することもできる。
【図面の簡単な説明】
【0112】
【図1】汎用コンピュータシステムのシステム構成要素のシステムブロック図の説明図である。
【図2】ユーザの頭部の移動の方向を示す説明図である。
【図3】画像処理方法の動作を描くフローチャートである。
【図4】画像処理方法の頭部画像位置合わせ段階の動作を描くフローチャートである。
【図5】画像処理方法の頭部画像位置合わせ段階の頭部追跡段階の動作を描くフローチャートである。
【図6】画像処理方法の頭部画像位置合わせ段階の頭部追跡段階のグローバルサーチ段階の動作を描くフローチャートである。
【図7】画像処理方法の光方向正規化段階の動作を描くフローチャートである。
【図8】画像処理方法のカラーバランス段階の動作を描くフローチャートである。

【特許請求の範囲】
【請求項1】
モバイルビデオデータ捕捉手段により捕捉されるビデオデータを処理する方法であって、前記ビデオデータはフレームデータの組を複数備え、
(a)前記ビデオの各フレーム内で顔を検出することと、
(b)フレームデータの対応する組を処理し、
(i)前記顔によって占有される画像の領域を実質的に一定に保ち、
(ii)前記顔に入射する光の見かけの方向を実質的に一定に保ち、及び/又は
(iii)前記顔の見かけの色を実質的に一定に保つ、ことと、
を備える方法。
【請求項2】
顔を検出することは、前記顔の1つ以上の特長を特定することとを備える、請求項1に記載の方法。
【請求項3】
1つ以上の特長を特定することは、
記憶されている特長テンプレートと前記フレームデータの領域を比較することであって、前記特徴テンプレートのそれぞれは顔の特長の画像を備え、かつ、前記領域にサイズが対応しており、
前記フレームデータの領域と前記テンプレートとの間の1つの一致を特定することにより各特長を特定することと、
を備える、請求項2に記載の方法。
【請求項4】
領域を比較することは、領域内の各ピクセルをテンプレート内で該ピクセルに対応するピクセルと比較することを備え、前記方法はさらに、
領域内のピクセルの、記憶されている目のテンプレート内で該ピクセルに対応するピクセルとの比較のそれぞれにスコアを生成することと、
最大スコアを有するピクセルを選択することにより特長を特定することと、
を備える、請求項3に記載の方法。
【請求項5】
前記特長は前記顔の1組の目を備える、請求項2乃至請求項4のいずれか1項に記載の方法。
【請求項6】
前記特定された目の組の、それぞれの目の間の距離及び回転角度をチェックすることをさらに備える、請求項5に記載の方法。
【請求項7】
前記顔に入射する光の前記見かけの方向を保つことは、
前記フレームデータを低域フィルタリングすることと、
前記フレームデータから、前記フレームデータの低域フィルタリングされたバージョンを減算することと、
前記フレームデータの低域フィルタリングされたバージョンに、以前に記憶された基準フレームの低域フィルタリングされたバージョンを加算することであって、前記以前に記憶された基準フレームデータは無色照明の下での前記顔の画像を備えるものと、
を備える、請求項1乃至請求項6のいずれか1項に記載の方法。
【請求項8】
低域フィルタリングは、前記フレームデータを所定のフィルタカーネルと畳み込み積分することにより達成される、請求項7に記載の方法。
【請求項9】
前記顔の見かけの色を保つことは、各カラーチャネルの相対的なオフセット及び絶対値を実質的に一定に保つために、前記フレームデータの各カラーチャネルを個別に調整することを備える、請求項1乃至請求項8のいずれか1項に記載の方法。
【請求項10】
前記フレームデータの各カラーチャネルの平均ピクセル値を、所定のシフト量、シフトすることをさらに備える、請求項9に記載の方法。
【請求項11】
選択されたカラーチャネルについて、前記シフト量が、前記フレームデータ内の前記選択されたチャネルの平均ピクセル値と、無色照明の下での前記顔の画像を備える以前に記憶された基準フレームデータ内の前記選択されたチャネルの平均ピクセル値との差異に対応する、請求項10に記載の方法。
【請求項12】
モバイルビデオデータ捕捉手段によって捕捉されるビデオデータを処理するために処理可能なプロセッサ読み取り可能コードが記録されている記憶媒体であって、前記ビデオデータがフレームデータの組を複数備え、前記コードが、
前記ビデオの各フレーム内で顔を特定するために処理可能な特定コードと、
フレームデータの対応する組を処理し、
(i)前記顔により占有される画像の領域を実質的に一定に保ち、
(ii)前記顔に入射する光の見かけの方向を実質的に一定に保ち、及び/又は
(iii)前記顔の見かけの色を実質的に一定に保つ、ために処理可能なフレームデータ処理コードと、
を備える記憶媒体を含むビデオ処理手段。
【請求項13】
ビデオデータの捕捉手段であって、前記ビデオデータはフレームデータの組を複数備えるものと、
前記捕捉されたビデオデータを処理するために処理可能なプロセッサ読み取り可能コードが記憶されている記憶媒体であって、前記コードが
前記ビデオの各フレーム内の顔を特定するために処理可能な特定コードと、
フレームデータの対応する組を処理し、
(i)前記顔によって占有される画像の領域を実質的に一定に保ち、
(ii)前記顔に入射する光の前記見かけの方向を実質的に一定に保ち、及び/又は
(iii)前記顔の見かけの色を実質的に一定に保つ、ために処理可能なフレームデータ処理コードと、を備える記憶媒体と、
を備える携帯可能装置。
【請求項14】
前記携帯可能装置がハンドヘルド装置を備える、請求項13に記載の携帯可能装置。
【請求項15】
請求項1乃至請求項11のいずれか1項に記載されている方法ステップを実行するために処理装置によって実行可能な命令のプログラムを搬送するデジタルデータキャリヤ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2008−522523(P2008−522523A)
【公表日】平成20年6月26日(2008.6.26)
【国際特許分類】
【出願番号】特願2007−543899(P2007−543899)
【出願日】平成17年11月4日(2005.11.4)
【国際出願番号】PCT/GB2005/004261
【国際公開番号】WO2006/059060
【国際公開日】平成18年6月8日(2006.6.8)
【出願人】(390028587)ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー (104)
【氏名又は名称原語表記】BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY
【Fターム(参考)】