(57)【要約】【課題】カメラが撮影した撮影映像を補正する。【解決手段】カメラ５１はラップトップ１０のディスプレイの下部に取り付けられている。ディスプレイを向く顔の方向はカメラの方向に対してずれているため撮影映像の顔は歪む。ユーザはカメラに対してさまざまな距離に存在したり、ディスプレイを見るために俯いたり、椅子に座ったりといったさまざまな姿勢をとる。位置３３ａ〜３３ｄでは、仮想顔面３０ａ〜３０ｄの法線の方向がカメラに対する方向から回転角θ１〜θ４で回転する。回転角θは、カメラと仮想顔面の距離ｄ、カメラに対する仮想顔面の高さｈ、および仮想顔面の俯角αから計算することができる。ラップトップは回転角θから射影変換行列を計算して撮影映像が自然になるように座標変換する。【選択図】図２
2017188766.tif 000002
【特許請求の範囲】
【請求項１】
ラップトップ型コンピュータのディスプレイの周辺に配置したカメラが撮影したユーザの顔の撮影映像を補正する方法であって、
前記カメラが撮影した撮影映像に基づいて顔までの撮影距離を取得するステップと、
前記撮影距離に基づいて前記撮影映像を顔の正面の映像に変換するための補正量を計算するステップと、
前記撮影映像の座標を前記補正量で変換するステップと
を有する方法。
【請求項２】
前記撮影距離を取得するステップが、
前記撮影映像の顔の大きさと前記撮影距離を関連付けた参照データを用意するステップと、
前記参照データに基づいて前記撮影映像から前記撮影距離を推定するステップと、
を含む請求項１に記載の方法。
【請求項３】
前記補正量を計算するステップが顔の正面の方向と顔から前記カメラに向かう方向が作る回転角を計算するステップを含む請求項１に記載の方法。
【請求項４】
前記回転角を計算するステップが、
前記カメラに対する所定の顔の高さに対して、前記撮影距離と顔の俯角を関連付けた参照データを用意するステップと、
前記参照データに基づいて前記回転角を取得するステップと
を含む請求項３に記載の方法。
【請求項５】
前記撮影距離から顔の高さを推定するステップを有する請求項４に記載の方法。
【請求項６】
前記顔の高さを推定するステップが、
デフォルトの顔の高さを設定するステップと、
前記撮影映像から顔の高さの変化を検出するステップと
を含む請求項５に記載の方法。
【請求項７】
顔の大きさの変化を監視するステップと、
顔の大きさが所定位置以上変化したと判断したときに前記補正量を再計算するステップと
を有する請求項２に記載の方法。
【請求項８】
前記補正量で変換するステップが、
前記カメラの撮像面の傾斜角を取得するステップと、
前記傾斜角から顔の正面に対応する射影面を特定するステップと、
前記撮像面の撮影映像の座標を前記射影面に変換するステップと
を有する請求項１に記載の方法。
【請求項９】
前記カメラの傾斜角の変化を監視するステップと、
前記傾斜角が所定値以上変化したと判断したときに前記射影面を再特定するステップと
を有する請求項８に記載の方法。
【請求項１０】
カメラが撮影した顔の撮影映像を電子機器が補正する方法であって、
前記電子機器が前記カメラから顔までの撮影距離を取得するステップと、
前記撮影距離に基づいて前記カメラの撮像面に対する顔の向きを特定するステップと、
顔の正面を向く射影面を特定するステップと、
前記撮像面の座標を前記射影面に変換するステップと
を有する方法。
【請求項１１】
前記顔の向きを特定するステップが、前記撮影距離に基づいてユーザが起立状態であることを判断するステップを含む請求項１０に記載の方法。
【請求項１２】
前記顔の向きを特定するステップが、起立状態と着席状態の遷移を監視するステップを含む請求項１１に記載の方法。
【請求項１３】
前記射影面を特定するステップが、顔の俯角と顔の回転角と前記撮像面の傾斜角を計算するステップを含む請求項１０に記載の方法。
【請求項１４】
カメラを搭載した電子機器であって、
前記カメラから顔までの撮影距離を計算する距離計算部と、
前記撮影距離に基づいて特定した顔の方向と顔からカメラに向かう方向が作る回転角を計算する回転角計算部と、
前記回転角に基づいて前記カメラの撮影映像を座標変換する補正画像生成部と
を有する電子機器。
【請求項１５】
前記電子機器が、ディスプレイを収納するディスプレイ筐体とシステム筐体がヒンジ機構で結合されたラップトップ型コンピュータで、前記カメラが使用状態の前記ディスプレイの下側に配置されている請求項１４に記載の電子機器。
【請求項１６】
前記撮影映像の顔の大きさから前記撮影距離を計算するための参照テーブルを有する請求項１４に記載の電子機器。
【請求項１７】
前記撮影距離と顔の高さから顔の俯角を計算するための参照テーブルを有する請求項１４に記載の電子機器。
【請求項１８】
カメラが撮影した顔の映像データを取得するコンピュータに、
前記カメラから顔までの撮影距離を計算する機能と、
前記撮影距離に対応する補正量を計算する機能と、
前記映像データの座標を前記補正量で変換する機能と
を実現させるためのコンピュータ・プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器が搭載するカメラが撮影した顔の歪みを補正する技術に関する。
【背景技術】
【０００２】
デスクトップ型パーソナル・コンピュータ（デスクトップ）やラップトップ型パーソナル・コンピュータ（ラップトップ）などのパーソナル・コンピュータ（ＰＣ）は、ディスプレイの近辺に取り付けたカメラで撮影した顔の映像を、ネットワークを通じて転送することでテレビ会議や動画チャットをすることができる。通常カメラはディスプレイの上に取り付けているため、ディスプレイで相手の顔をみているユーザの顔はカメラにほぼ正対し、自然な映像を撮影することができる。
【０００３】
特許文献１は、携帯用通信機器が搭載するカメラで撮影した顔の画像を補正する発明を開示する。同文献は、筐体に設けた角度センサで検出した光軸の傾きに応じて撮影した画像を補正することを記載している。特許文献２は、カメラが撮影した画像が示す顔の向きを補正する発明を開示する。同文献には、顔の特定部位の座標を頭部モデルにあてはめて計算した基準線および基準点の位置から補正量を計算することを記載する。特許文献３は、ステレオ・カメラを使って人間の注視点を検出する発明を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−８９１８３号公報
【特許文献２】特開２０１０−２１７９８０号公報
【特許文献３】特開２０１５−１６９９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カメラは、３次元空間を２次元空間の画像座標上に透視投影で撮像する。２次元空間には奥行きがないが、透視投影では距離を撮影画像の大きさで表現する。したがって、顔がカメラの方向を向いていれば自然な映像を撮影できるが、顔の向きがカメラの方向から外れると顔の各部位のカメラに対する距離の差が不自然な映像をもたらす。映像の歪みは、カメラから顔が離れているときは小さいが顔がカメラに接近するほど誇張される。たとえば、ディスプレイを見ている顔を近くのカメラが下から撮影すると、カメラに近い顎の周りが拡大されカメラから遠い額が縮小された画像になる。
【０００６】
撮影中のユーザは、カメラに対してさまざまな距離に存在する。カメラを搭載したＰＣが机上に置かれているときに、遠方からＰＣに接近してきたユーザは、ＰＣに接近するに従って目の高さより下にあるディスプレイを見るために前屈みになるとともに最終的には椅子に座る。したがってカメラに対する顔の角度は、カメラに対する距離や顔の高さによって変化するため、一定の角度で補正する方法では顔の自然な映像を生成できない場合がある。また、顔の特徴を検出して画像処理でカメラに対する顔の向きを検出する方法では、安定して補正することが困難でプロセッサの負担も大きくなる。
【０００７】
そこで本発明の目的は、カメラが撮影した顔の撮影映像が正面を向くように補正する方法を提供することにある。さらに本発明の目的は、簡単な方法で撮影映像を補正する方法を提供することにある。さらに本発明の目的は、そのような方法を実現する電子機器および記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、ラップトップ型コンピュータのディスプレイの周辺に配置したカメラが撮影したユーザの顔の撮影映像を補正する方法を提供する。カメラから顔までの撮影距離を取得し、撮影距離に基づいて撮影映像を顔の正面の映像に変換するための補正量を計算し、撮影映像の座標を補正量で変換する。カメラはディスプレイ筐体のヒンジ機構の近辺に取り付けられていてもよい。
【０００９】
撮影距離は、撮影映像の顔の大きさと撮影距離を関連付けた参照データを用意しておき、参照データに基づいて推定することができる。補正量の計算は、顔の正面の方向と顔からカメラに向かう方向が作る回転角の計算を含むことができる。回転角は、カメラに対する所定の顔の高さに対して、撮影距離と顔の俯角を関連付けた参照データに基づいて推定することができる。
【００１０】
顔の高さは、撮影距離から推定することができる。顔の高さの推定は、デフォルトの顔の高さを設定しておき、撮影映像から顔の高さの変化を検出することで行うことができる。デフォルトの顔の高さは、起立時に相当する標準的な身長または着席時に相当する標準的な座高に基づいて設定することができる。顔の大きさの変化を監視し、顔の大きさが所定位置以上変化したと判断したときに補正量を再計算することができる。
【００１１】
補正量による座標の変換は、カメラの撮像面の傾斜角を取得し、傾斜角から顔の正面に対応する射影面を特定し、撮像面の撮影映像の座標を射影面に変換することで行うことができる。このときカメラの傾斜角の変化を監視し、傾斜角が所定値以上変化したと判断したときに射影面を再特定することができる。
【発明の効果】
【００１２】
本発明により、カメラが撮影した顔の撮影映像が正面を向くように補正する方法を提供することができた。さらに本発明により、簡単な方法で撮影映像を補正する方法を提供することができた。さらに本発明により、そのような方法を実現する電子機器および記憶媒体を提供することができた。
【図面の簡単な説明】
【００１３】
【図１】ラップトップ１０の撮影空間を説明するための図である。
【図２】ラップトップ１０に対するユーザの距離ｄおよび高さｈによって、回転角θが変化する様子を説明するための図である。
【図３】ラップトップ１０からのユーザの距離によって、撮影画像の歪みが変化する様子を説明するための図である。
【図４】ラップトップ１０に搭載した画像補正システム１００の構成を示す機能ブロック図である。
【図５】ディスプレイ５９の前に存在するユーザの顔の姿勢および距離をモデル化した図である。
【図６】画像補正システム１００の動作手順を示すフローチャートである。
【図７】顔の撮影画像３０１に設定した特徴点を説明するための図である。
【図８】撮影画像３０１の特徴点３５１ａ〜３５１ｄと補正画像３０３の特徴点３５２ａ〜３５２ｄから射影変換行列を計算する方法を説明するための図である。
【図９】仮想顔面３０ａの撮影画像を射影面３７１に射影する様子を説明するための図である。
【発明を実施するための形態】
【００１４】
［本発明の概要］
図１は、ラップトップ１０の撮影空間を説明するための図である。図２は、カメラに対するユーザの位置の相違により回転角θが変化する様子を説明するための図である。図３は撮像面５１ａ（図３）が形成する仮想顔面の撮影画像１０１、１０１ａ、１０３、１０３ａを説明するための図である。図１でラップトップ１０は、ディスプレイ５９を実装するディスプレイ筐体５２と表面にキーボード５５およびタッチパッド５７などを搭載するシステム筐体５３がヒンジ機構６１ａ、６１ｂで結合している。
【００１５】
ディスプレイ５９の周囲とディスプレイ筐体５２との間の隙間を覆うためにディスプレイ５９の周囲にベゼル５８を設けている。従来はカメラ５１をディスプレイ５９の上部に位置するベゼル５８の中央に配置していたが、ディスプレイ５９の大型化、およびデザインの要請などで本実施の形態ではカメラ５１を、ディスプレイ５９の下部に位置するベゼル５８の中央に配置している。カメラ５１をディスプレイ５９の上部に配置する場合は、ディスプレイ５９をみるユーザの顔の方向と顔がカメラに向かう方向との差が小さいため顔の歪みは深刻ではなかったが、カメラ５１をヒンジ機構６１ａ、６１ｂの近辺に配置すると、顔がカメラに近いときの歪みが顕著になるため補正が必要になる。
【００１６】
カメラ５１は、撮像面５１ａを構成するイメージ・センサ、および画像データを処理するイメージ・シグナル・プロセッサなどを含む。撮像面５１ａに対する画像座標系として直交座標のＸ軸、Ｙ軸、Ｚ軸を定義している。説明の便宜上、Ｚ軸はカメラ５１の光軸に一致させ、Ｙ軸はディスプレイ５９の表面に平行な平面上に存在するようにしている。また、Ｚ軸とＹ軸を含む鉛直方向の平面２１とＸ軸を含み平面２１に垂直な平面２３を定義する。
【００１７】
さらに、グローバル座標系として直交座標のＸｇ軸、Ｙｇ軸、Ｚｇ軸を定義する。グローバル座標系の原点は画像座標系の原点に一致させており、Ｘｇ軸はＸ軸に一致し、Ｙｇ軸は平面２３に存在し、Ｚｇ軸は水平である。システム筐体５３に対するディスプレイ筐体５２の開閉角度が変化するとカメラ５１の光軸の方向が平面２１上で変化して、Ｙ軸およびＺ軸が平面２１上でＸ軸周りに回転する。
【００１８】
図２は、ユーザがディスプレイ５９を注視しながらラップトップ１０に向かって移動し、さらに椅子に着席するときに回転角θが変化する様子を説明するための図である。ここに回転角θは、顔の方向と、顔からカメラ５１の光学中心に向かう方向とが形成するグローバル座標系での角度に相当する。ユーザがディスプレイ筐体５２の開閉角度を調整すると、グローバル座標系に対する画像座標系がＸ軸周りに傾斜角βだけ回転する。以下においては、傾斜角βを一定として説明するが、本発明はディスプレイ筐体５２に設けた加速度センサを利用することで撮影中に傾斜角βが変化する場合にも適用が可能である。
【００１９】
ユーザの顔には矩形状の仮想顔面３０ａ〜３０ｄを対応付けている。仮想顔面３０ａ〜３０ｄは、カメラ５１に正対したときに顔を最も自然に撮影できる平面で、顔の複数の特徴点から特定することができる。仮想顔面３０ａ〜３０ｄには、顔の中心に対応する位置に中心３１ａ〜３１ｄを定義する。位置３３ａ〜３３ｄにおいて仮想顔面３０ａ〜３０ｄの形状は変化しない。
【００２０】
カメラ５１の光学中心に対する中心３１ａ〜３１ｄの高さをユーザが立っているときはｈ１とし、座っているときはｈ２（ｈ２＜ｈ１）とする。位置３３ａでは、立っているユーザの顔がディスプレイ５９をみていると想定する。位置３３ａのディスプレイ５９に対する距離ｄが十分に長いときは、仮想顔面３０ａの法線１１ａはほぼＹｇ軸に平行になるかわずかな俯角αで傾斜している想定することができる。なお、位置３３ａ、３３ｂでは俯角αがわずかであるため、記載を省略している。俯角αは、グローバル座標系のＺｇ軸（水平）に対する角度に相当する。位置３３ｂは位置３３ａよりディスプレイ５９に近く、位置３３ｃ、３３ｄは位置３３ｂよりディスプレイ５９に近い。
【００２１】
位置３３ｂでは立っているユーザの仮想顔面３０ｂの法線１１ｂの俯角αが法線１１ａに一致する状態を示し、位置３３ｃでは立っているユーザが近くにあるディスプレイ５９をみるために、仮想顔面３０ｃの法線１１ｃが俯角αだけ傾斜する状態を示し、位置３３ｄでは椅子に座ったユーザの仮想顔面３０ｄの高さが低くなり、かつ仮想顔面３０ｄの法線１１ｄが俯角αで傾斜する状態を示している。
【００２２】
いずれの位置３３ａ〜３３ｄでも中心３１ａ〜３１ｄは、平面２１上に存在すると想定する。ただし、後に説明するように本発明は中心３１ａ〜３１ｄが平面２１から外れた場合にも適用できる。回転角θは、仮想顔面の法線と、仮想顔面とカメラ５１の光学中心を結ぶ基準線が形成する角度として計算することができる。位置３３ａにおいて、中心３１ａとカメラ５１の光学中心を結ぶ基準線１３ａと、中心３１ａに対する仮想顔面３０ａの法線１１ａが作る角度は回転角θ１に相当する。
【００２３】
カメラ５１をディスプレイ５９の下側に配置すると、上側に配置する場合に比べて回転角θは大きくなる。また、同じ位置でも俯角αにより回転角θは変化する。本発明においてはカメラ５１が出力するフレーム・シーケンスを構成する各フレームを撮影画像といい、所定のフレーム・レートで連続する複数のフレームを映像データといい、映像データがディスプレイに表示する動画を撮影映像ということにする。
【００２４】
位置３３ｂにおいて、中心３１ｂとカメラ５１の光学中心を結ぶ基準線１３ｂと、中心３１ｂに対する仮想顔面３０ｂの法線１１ｂが作る角度を回転角θ２とすると距離ｄの差によりθ２＞θ１となる。図３（Ａ）は、位置３３ａで顔がカメラ５１を向いて、法線１１ａと基準線１３ａが一致すると想定したときの仮想顔面３０ａの撮影画像１０１と、位置３３ａのように法線１１ａが基準線１３ａに対して回転角θ１だけ回転している仮想顔面３０ａの撮影画像１０１ａを示している。撮影画像１０１は仮想顔面３０ａとほぼ同じ形状の矩形であるが、撮影画像１０１ａは上が短く下が長い底辺を含む台形になる。
【００２５】
図３（Ｂ）は、同様に、位置３３ｂで法線１１ｂと基準線１３ｂが一致すると想定したときの仮想顔面３０ｂの撮影画像１０３と、位置３３ｂのように法線１１ｂが基準線１３ｂに対して回転角θ２だけ回転している仮想顔面３０ｂの撮影画像１０３ａを示している。撮影画像１０３は撮影画像１０１より大きくかつ仮想顔面３０ｂとほぼ同じ形状の矩形であるが、撮影画像１０３ａは撮影画像１０１ａより大きくかつ上が短く下が長い底辺を含む台形になる。撮影画像１０３ａは撮影画像１０１ａに比べて歪みが激しく、顔は顎が大きく突き出、額は狭く後退したような画像になる。
【００２６】
位置３３ｃでは、ユーザがディスプレイ５９を見るために腰を曲げて、顔が位置３３ｂより大きい俯角αで下を向いている。ユーザは、位置３３ｂよりラップトップ１０に近づくと、ディスプレイ５９が見やすいように徐々に下を向き始める。ユーザが自然にディスプレイ５９をみるとき俯角αは距離ｄが短くなるほど大きくなるように連続的に変化する。このときの仮想顔面３０ｃに対する法線１１ｃが基準線１３ｃに対して回転する角度を回転角θ３とすると、仮想顔面３０ｂに比べて俯角αの分だけ撮影画像の歪みは緩和される。
【００２７】
位置３３ｄでは、ユーザが椅子に座るため、仮想顔面３０ｄの中心３１ｄの高さｈがｈ２になり、かつカメラ５１がディスプレイ筐体５２の下に取り付けられているため俯角αが発生する。このときの仮想顔面３０ｄの基準線１３ｄに対する回転角はθ４となる。回転角θは、カメラ５１からの顔の距離ｄ、俯角αおよびカメラ５１に対する顔の高さｈから計算することができる。仮想顔面３０ａ〜３０ｄに対応する顔の撮影映像は、回転角θ、俯角αおよび傾斜角βから計算した、法線１１ａ〜１１ｄに垂直な射影面に座標変換すると自然な顔に近づけることができる。
【００２８】
距離ｄおよび高さｈは、一例においてラップトップ１０にさらに１台のカメラを追加して構成したステレオ・カメラを位置センサおよび高さセンサとして利用することで取得することができる。他の例では距離ｄを、赤外発光ダイオードと位置検出素子（Position Sensitive Detector）を含む三角測量の原理を応用した距離センサを利用して取得することができる。本発明は、距離ｄおよび高さｈを検出するためにさまざまな既知の距離センサおよび高さセンサを利用することができる。本実施の形態では、以下において、単一のカメラ５１の撮影画像から射影変換のパラメータを計算して補正する方法を説明する。
【００２９】
図４は、ラップトップ１０に搭載した画像補正システム１００の構成を示す機能ブロック図である。画像補正システム１００は、ＣＰＵ、システム・メモリ、Ｉ／Ｏデバイスなどのハードウェア資源と、デバイス・ドライバ、ＯＳ、アプリケーション・プログラムなどのソフトウェア資源で構成している。撮影部７０は、カメラ５１、コントローラ、およびデバイス・ドライバなどを含んでおり、３０ｆｐｓといった所定のフレーム・レートで撮影した映像データを距離計算部７１に出力する。
【００３０】
距離計算部７１は、映像データと参照テーブル７９からカメラ５１と顔の距離ｄを計算して映像データとともに出力する。この例に限らず距離計算部７１は、ステレオ・カメラや赤外線を利用した専用のセンサなどを利用して顔の距離dを検出するようにしてもよい。参照テーブル７９は、所定の焦点距離で撮像面５１ａに取り込める画面のサイズ（画角）に対する顔の輪郭のサイズＳの割合と距離ｄを関連付けたデータをテーブル形式で格納する。参照テーブル７９に代えて、距離計算部７１は顔のサイズと距離ｄを関数で対応付けたプログラムを利用してもよい。
【００３１】
距離計算部７１は、インテル（登録商標）社のＲｅａｌｓｅｎｓｅテクノロジーや、Ｗｉｎｄｏｗｓ（登録商標）のＡＰＩを利用して顔のサイズＳを検出し、参照テーブル７９を参照して推定した距離ｄを取得することができる。回転角計算部７５は、映像データからユーザが立っている状態と座っている状態との間での姿勢の変化を検出して、仮想顔面３０ａ〜３０ｄの高さｈ１、ｈ２を推定することができる。回転角計算部７５は、距離計算部７１が推定した距離ｄから高さｈ１を推定することができる。回転角計算部７５は、専用の高さセンサを利用して顔の高さｈを取得してもよい。回転角計算部７５は、参照テーブル８１に距離ｄおよび高さｈを適用して取得した俯角αから計算した回転角θを俯角αおよび映像データとともに出力する。
【００３２】
参照テーブル８１は、仮想顔面３０ａ〜３０ｄの高さｈ１、ｈ２について、実験で求めた距離ｄに対応する俯角αをテーブル形式で格納する。回転角計算部７５は、高さｈおよび距離ｄから俯角αを計算する関数を利用してもよい。傾斜角生成部７３は、加速度センサおよびデバイス・ドライバを含みグローバル座標系に対する画像座標系の傾斜角βを出力する。補正画像生成部７７は、映像データの画像座標系での座標を、回転角θ、俯角αおよび傾斜角βから計算した射影面に座標変換した映像データを生成する。アプリケーション実行部８３は、撮影部７０のクライアントで、テレビ会議や動画チャットなどのアプリケーション・プログラムを含む。ネットワーク通信部８５は、有線または無線のネットワーク・モジュールを含み、補正した映像データをネットワークに出力する。
【００３３】
図５は、ディスプレイ５９の前に存在するユーザの顔の俯角および距離をモデル化した図である。ここでは、机９１に載置したラップトップ１０に対してユーザがカメラ５１から遠い距離ｄ３からディスプレイ５９を見ながら近づいて距離ｄ１で椅子９３に座るまでの仮想顔面３０ａ〜３０ｄの姿勢を示している。光学中心からの距離ｄがｄ２以上の間は、ディスプレイ５９が遠方にあるため仮想顔面３０ａ、３０ｂに俯角はほとんどないか小さな一定の値と想定することができる。このときの仮想顔面３０ａ、３０ｂの高さｈは、標準的な人間の身長と机９１の高さに基づいて設定したｈ１とする。また、グローバル座標系における俯角も実験で想定することができる。
【００３４】
距離ｄ３から距離ｄ２までの間の回転角θは、高さｈ１が一定の時に距離ｄおよび俯角αが決まれば計算できる。このとき、距離ｄに対応する俯角αはあらかじめ実験で求めておくことができる。距離ｄがｄ２以下になると、ディスプレイ５９が近づいてくるために俯角αが大きくなる。このとき俯角αは距離ｄが短くなるほど大きくなりα３＞α２＞α１となる。
【００３５】
距離ｄ２からｄ１までの高さを一定のｈ１とすれば、距離ｄに対応するグローバル座標系での俯角αを実験で求めておくことで回転角θを計算することができる。距離ｄがｄ１以下のときは、ユーザが椅子に座る場合と立っている場合がある。距離計算部７１はフレーム・シーケンスから、ユーザの顔が急激に下方向に移動したときに椅子に座ったと判断し、上方向に移動したときに立ったと判断することができる。
【００３６】
椅子に座ったときの仮想顔面３０ｄには、所定の俯角α４が発生し高さｈは一定のｈ２になる。椅子に座った状態での俯角α４は一定と想定する。高さｈ２は標準的な人間の座高と椅子９３の高さに基づいて設定し、グローバル座標系における俯角α４は実験で取得することができる。距離ｄがｄ１以下でユーザが座っているときは、距離ｄ、高さｈ２および俯角α４から回転角θを計算することができる。距離ｄがｄ１以下でユーザが立っているときは、距離ｄ、高さｈ１および俯角αから回転角θを計算することができる。高さｈ１、ｈ２および距離ｄに対応する俯角αは、参照テーブル８１に格納する。
【００３７】
図６は、図５のようにユーザの姿勢が変化するときの画像補正システム１００の動作手順を示すフローチャートである。図７は、顔の撮影画像に設定した特徴点を説明するための図である。図７（Ａ）は、撮影部７０が出力する映像データの１つのフレームに対応する撮影画像３０１を示し、図７（Ｂ）は撮影画像３０１を座標変換して生成した補正画像３０３を示している。撮影画像３０１には、射影変換行列を計算するための特徴点３５１ａ〜３５１ｄを設定している。
【００３８】
補正画像３０３にも対応する特徴点３５２ａ〜３５２ｂを示している。図８は、撮影画像３０１と補正画像３０３の特徴点３５１ａ〜３５１ｄ、３５２ａ〜３５２ｂの座標を示している。ユーザは図１に示す平面２１に仮想顔面３０ａ〜３０ｄの中心３１ａ〜３１ｄが位置するように移動していると想定する。仮想顔面３０ａ〜３０ｄの中心が平面２１から大きくずれた場合は、後に説明するように水平方向の補正をすることができる。
【００３９】
ブロック２０１で撮影部７０が映像データを所定のフレーム・レートで出力する。ブロック２０３で距離計算部７１は、受け取ったフレーム・シーケンスから取得した撮影画像３０１（図７）に対して周知の顔認識技術を適用して人間の顔を認識する。ブロック２０５で距離計算部７１は、撮影画像３０１に４つの特徴点３５１ａ〜３５１ｄを設定する。設定した４つの特徴点３５１ａ〜３５１ｄは後に説明する射影変換行列の要素の計算に利用する。ここでは、特徴点３５１ａ〜３５１ｄを、両側の眉毛の外側の端と、唇の両端を結ぶ線と輪郭の交点に設定している。特徴点３５１ａ〜３５１ｄは、顔を正面からみるとほぼ矩形になるが撮影画像３０１では台形になっている。
【００４０】
ブロック２０７で距離計算部７１は各フレームについて顔の大きさＳを計算し、参照テーブル７９を参照して取得した距離ｄを回転角計算部７５に出力する。本実施の形態では、高さｈを立っているときのｈ１と座っているときのｈ２のいずれかに設定している。したがって、高さｈはｈ１とｈ２のいずれかの値になる。ブロック２０８で回転角計算部７５は、距離ｄから高さｈを推定する。
【００４１】
ブロック２０９で回転角計算部７５は、距離ｄがｄ＞ｄ１のときは、ブロック２１３で高さｈをｈ１に設定する。距離ｄがｄ≦ｄ１のときはブロック２１１に移行する。ブロック２１１で回転角計算部７５は、直前のフレームと今回のフレームを比較して高さの変化の有無を検出し現在の高さｈを推定する。現在の高さｈの推定のために、デフォルトｈ１を設定することができる。
【００４２】
回転角計算部７５は、高さｈの変化がないときはブロック２１３で高さｈをデフォルト値のｈ１に設定する。高さｈの変化を検出したときはブロック２１５で高さｈをｈ２に設定する。あるいは椅子に座った状態で撮影する機会が多い場合は、高さｈのデフォルト値をｈ２にして高さの変化を検出したときに高さｈ１を認識するようにしてもよい。あるいは、撮影中にユーザが高さｈを変更できるようにしてもよい。なお、専用の高さセンサを利用して任意の高さｈを取得するようにしてもよい。
【００４３】
ブロック２１７で距離計算部７１は、各撮影画像について、参照テーブル８１に距離ｄおよび高さｈを適用して取得した俯角αから計算した回転角θを俯角αおよび映像データとともに補正画像生成部７７に送る。ブロック２１９で補正画像生成部７７は、傾斜角生成部７３から、画像座標系の傾斜角βを取得する。傾斜角βの取得により補正画像生成部７７は、グローバル座標系で計算した回転角θを画像座標系に関連付けることができる。
【００４４】
ブロック２２１で補正画像生成部７３は、図８（Ａ）に示す撮影画像３０１の特徴点３５１ａ〜３５１ｄの座標（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）を計算する。撮影画像３０１は歪んでいるため、自然な顔では矩形になる特徴点３５１ａ〜３５１ｄの座標は、上の底辺が短く下の底辺が長い台形を形成する。
【００４５】
ブロック２２３で回転角計算部７５は、撮影画像３０１を射影するための射影面を特定する。射影面は、仮想顔面と平行な平面に相当する。図９は仮想顔面３０ａの撮影画像を影面３７１に射影する様子を説明するための図である。撮像面５１ａのＹ軸には、仮想顔面３０ａの特徴点の座標（ｘ１，ｙ１）が撮像されている。撮像面５１ａは、グローバル座標のＹｇ軸から傾斜角βだけ傾斜している。
【００４６】
射影面３７１には法線１１ａが垂直に交差する。すなわち、仮想顔面３０ａと射影面３７１は平行になる。補正画像生成部７７は、俯角α、回転角θおよび傾斜角βから撮像面５１ａと射影面３７１の回転角γを計算することで、射影面３７１を特定する。ブロック２２５で補正画像生成部７７は、撮影画像３０１の画像座標（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）を射影面３７１に射影したときの画像座標（ｘ’１，ｙ’１）、（ｘ’２，ｙ’２）、（ｘ’３，ｙ’３）、（ｘ’４，ｙ’４）を計算する。
【００４７】
撮像面５１ａには透視投影で撮像されるため、射影面３７１に射影された特徴点３５２ａ〜３５２ｄの画像座標（ｘ’１，ｙ’１）、（ｘ’２，ｙ’２）、（ｘ’３，ｙ’３）、（ｘ’４，ｙ’４）が形成する図形は、ディスプレイに表示されたときに図８（Ｂ）に示すように矩形に近づく。補正画像生成部７７は、特徴点３５１ａ〜３５１ｄ、３５２ａ〜３５２ｄの８つの座標から、撮影画像３０１の座標（ｘ、ｙ）を射影面３７１に射影するための射影変換行列を求める。射影変換行列は、式（１）に示すようにＡ〜Ｈの８個の要素を含む。補正画像生成部７７は式（１）に変換前の４つの座標（ｘ、ｙ）と変換後の４つの座標（ｘ‘、ｙ’）を代入して８次元連立一次方程式を解くことができる。
【００４８】
【数１】
2017188766.tif 000003
【００４９】
ブロック２２７で補正画像生成部７３は、撮影画像３０１の座標を射影変換行列で変換した補正画像３０３の映像データを生成してブロック２２９でアプリケーション実行部７５に出力する。アプリケーション実行部７５は、ネットワーク通信部８５を通じて対話の相手に映像データを出力する。ブロック２３１で距離計算部７１は、顔の大きさが所定値以上変化したときにブロック２０７に戻って新たに射影変換行列を計算する。また、ブロック２３３で画像座標系の傾斜角βが変化したときも同様である。補正画像生成部７７はブロック２０７以降の手順で、新たな射影変換行列で補正した映像データを生成する。したがって、撮影中にユーザの位置や姿勢が変化したとき、およびディスプレイ筐体５２の開閉角度が変化したときに、自動的に撮影映像を補正することができる。
【００５０】
画像補正システム１００は、ラップトップやデスクトップに搭載してテレビ会議や動画チャットに利用することができる。カメラ５１が撮影した撮影映像におけるユーザの実際の視線はディスプレイ方向を向くが、顔の向きがカメラ５１の方向に修正されることで、通話の相手は、ディスプレイでみるユーザの顔が自分を向くように感じる。本発明はカメラがディスプレイ５９の左右に位置するベゼルに取り付けられているようなディスプレイをみる顔の方向とカメラの方向が大きく異なる場合に適用すると有効である。
【００５１】
中心３１ａ〜３１ｄが平面２１上にある場合に鉛直方向の回転角θを計算する例を説明したが、中心３１ａ〜３１ｄが平面２１から外れている場合は、水平方向の回転角で補正することもできる。この場合、水平方向の回転角を距離ｄから計算して射影変換行列を計算する。また、ディスプレイ５９上の顔の位置を計算して顔の映像を距離ｄに応じた長さだけディスプレイ５９の中心方向に平行移動させることもできる。
【００５２】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００５３】
１０  ラップトップ型パーソナル・コンピュータ
３０ａ〜３０ｄ  仮想顔面
５１  カメラ
５１ａ  撮像面
５９  ディスプレイ
７９、８１  参照テーブル
１００  画像補正システム
１０１、１０１ａ、１０３、１０３ａ、３０１  撮影画像
３０３  補正画像
３５１ａ〜３５１ｄ、３５２ａ〜３５２ｄ  特徴点
３７１  射影面
ｄ  仮想顔面の距離
ｈ、ｈ１、ｈ２  仮想顔面の高さ
α  仮想顔面の俯角
β  カメラの傾斜角
【図１】
2017188766.tif 000004
【図２】
2017188766.tif 000005
【図３】
2017188766.tif 000006
【図４】
2017188766.tif 000007
【図５】
2017188766.tif 000008
【図６】
2017188766.tif 000009
【図７】
2017188766.tif 000010
【図８】
2017188766.tif 000011
【図９】
2017188766.tif 000012