(57)【要約】【課題】画像の歪みを、より正確に、軽減または強調させることができるようにする。【解決手段】画像データ入力部６１は、入力された画像データを画像データ保持部８１に保持させる。顔検出処理部６６は、画像データ保持部８１に保持されている画像データより被写体の顔画像を特定する。３次元顔モデル位置算出処理部６７は、その画像データの顔画像の歪みを補正する為に用いられる３次元顔モデルを生成し、３次元仮想空間において、カムコーダとその３次元顔モデルの位置関係を算出し、テクスチャ設定処理部６８は、３次元顔モデルに対するテクスチャとして、被写体の顔画像を設定する。補正画像作成処理部６９は、３次元顔モデルや３次元仮想空間を用いて画像データの顔画像の歪みを補正する。画像データ出力部７０は、その補正後の画像データを取得し、DSP１６の外部に出力する。本発明は、カムコーダに適用することができる。【選択図】図２
2005025703.tif 000002
【特許請求の範囲】
【請求項１】
画像データに対して、画像を補正する処理を行う画像処理装置の画像処理方法であって、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出ステップと、
前記画像データに対応する画像に含まれる、前記検出ステップの処理により検出された前記部分画像の変形を行う変形ステップと
を含むことを特徴とする画像処理方法。
【請求項２】
前記変形ステップは、さらに、
撮像手段と前記部分画像に対応する被写体との距離を検出する、距離検出ステップと、
撮影時に前記距離を変化させた場合に生じる画像変化に対応する変形を前記部分画像に対して施す、距離変換ステップと
を含むことを特徴とする画像処理方法。
【請求項３】
前記画像データに対応する画像は、被写体を撮像して得られた撮像画像であり、
前記部分画像は、前記被写体の顔の画像である
ことを特徴とする請求項１に記載の画像処理方法。
【請求項４】
前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを補正するように、前記部分画像の変形を行う
ことを特徴とする請求項１に記載の画像処理方法。
【請求項５】
前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを強調するように、前記部分画像の変形を行う
ことを特徴とする請求項１に記載の画像処理方法。
【請求項６】
画像データに対して、画像を補正する処理を行う画像処理装置において、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出手段と、
前記画像データに対応する画像に含まれる、前記検出手段により検出された前記部分画像の変形を行う変形手段と
を備えることを特徴とする画像処理装置。
【請求項７】
画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記画像データに対応する画像より前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出手段として、機能させるモジュールと、
コンピュータを、前記画像データに対応する画像に含まれる前記検出ステップの処理により検出された前記部分画像の変形を行う変形手段として、機能させるモジュールと
を含むことを特徴とする画像処理プログラム。
【請求項８】
撮像画像データに対して、画像を補正する処理を行う画像処理装置の画像処理方法であって、
前記撮像画像データに対応する第１の撮像画像より、前記第１の撮像画像の被写体に対応する３次元モデルを作成する作成ステップと、
前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出ステップと、
前記作成ステップの処理により作成された前記３次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第２の撮像画像を生成する生成ステップと
を含むことを特徴とする画像処理方法。
【請求項９】
前記被写体は、顔である
ことを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記３次元モデルは、１つの楕球により構成されるモデルである
ことを特徴とする請求項８に記載の画像処理方法。
【請求項１１】
前記３次元モデルは、複数の楕球の一部分をそれぞれ組み合わせた構成のモデルである
ことを特徴とする請求項８に記載の画像処理方法。
【請求項１２】
前記作成ステップの処理により作成された前記３次元モデルより、前記第１の画像に含まれていない部分を削除する削除ステップをさらに含み、
前記生成ステップは、前記削除ステップにより、前記第１の画像に含まれていない部分が削除された前記３次元モデルが投影された画像を前記第２の撮像画像として生成する
ことを特徴とする請求項８に記載の画像処理方法。
【請求項１３】
前記第１の撮像画像に対する前記被写体の画像の割合と、前記生成ステップの処理により生成される第２の撮像画像に対する前記３次元モデルが投影された画像の割合とが一致するように、前記第２の撮像画像の画像サイズを調整する画像サイズ調整ステップをさらに含む
ことを特徴とする請求項８に記載の画像処理方法。
【請求項１４】
前記第１の撮像画像より前記被写体の画像である部分を検出する検出ステップをさらに含み、
前記算出ステップは、前記検出ステップの処理により検出された前記被写体の画像である部分の大きさ、並びに、前記第１の撮像画像が得られた撮像処理において用いられたレンズの画角に基づいて、前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する
ことを特徴とする請求項８に記載の画像処理方法。
【請求項１５】
撮像画像データに対して、画像を補正する処理を行う画像処理装置において、
前記撮像画像データに対応する第１の撮像画像より、前記第１の撮像画像の被写体に対応する３次元モデルを作成する作成手段と、
前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段と、
前記作成手段により作成された前記３次元モデルを用いて、前記算出手段により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第２の撮像画像を生成する生成手段と
を備えることを特徴とする画像処理装置。
【請求項１６】
撮像画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記撮像画像データに対応する第１の撮像画像より、前記第１の撮像画像の被写体に対応する３次元モデルを作成する作成手段として、機能させるモジュールと、
コンピュータを、前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段として、機能させるモジュールと、
コンピュータを、前記作成ステップの処理により作成された前記３次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第２の撮像画像を生成する生成手段として、機能させるモジュールと
を含むことを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法および装置、並びに画像処理プログラムに関し、特に、画像の歪みを、より正確に、軽減または強調させることができる画像処理方法および装置、並びに画像処理プログラムに関する。
【背景技術】
【０００２】
近年、ディジタルスチルカメラやディジタルビデオカメラ等の撮像して得られた画像をディジタルデータとして記録する撮像装置が普及している。特に、最近は、技術の向上とともに、より携帯性や利便性を向上させるために、撮像装置の小型化や多機能化が進んでいる。また、このような撮像装置は、その小型化に伴い、単に撮像機能を有するだけでなく、例えば、携帯型電話機、PDA、またはパーソナルコンピュータ等、その他の情報処理装置と一体化され、撮像機能以外の機能も有する複合装置として構成される場合も多くなってきた。
【０００３】
このような複合装置においては、装置全体としての小型化も要求されるため、撮像機能を実現する撮像ユニットは、更なる小型化が求められる。従って、このような撮像ユニットは、撮像機能だけを有するディジタルスチルカメラやディジタルビデオカメラ等の場合と比較して、小さなレンズが用いられたり、得られる画像の解像度を低くしたり、ズーム機能を省略したり等、機能を制限することにより小型化を実現する場合が多い。
【０００４】
このような撮像ユニットを有する複合装置で被写体を撮像する場合、撮像機能だけを有するディジタルスチルカメラやディジタルビデオカメラ等の場合と比較して撮像により得られる画像のサイズが小さかったり、ズーム機能も無かったりして、被写体が装置より遠い位置に存在すると、被写体の画像が小さくなってしまう場合があり、ユーザは、被写体を近距離より撮像する機会が多くなることがある。
【０００５】
例えば、このような複合装置で被写体を近距離より撮像する場合のように、撮像装置で被写体（人物の顔など）を近接撮影した場合、その被写体の鼻など、顔の周辺部などと比較してカメラ（レンズ）に近い部分が、その顔の周辺部などのカメラ（レンズ）から比較的近くない部分より大きく写ってしまい、遠近感が強調されたような画像が得られる。この現象は、レンズの特性上、予測できるものであり、レンズの歪みによって生ずる歪曲収差とは異なるものである。また、個の現象は、上述したようなディジタルスチルカメラやディジタルビデオカメラ等の撮像装置だけでなく、銀塩式のカメラ等でも発生する。しかしながら、このような状況で撮像して得られた画像は、ユーザにとっては、鼻などが不用に実際より大きく写ってしまうため、好ましい画像とはいえない場合が多い。これに対して、撮像画像の画素をその位置に応じて拡大または縮小させることにより、撮像画像に生じる遠近感が誇張される歪みを補正する方法がある（例えば、特許文献１参照）。
【特許文献１】特開２００２-２４７４４６号公報（第７−１０ページ、図７，図８，図１２，図１４，図１５）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、以上のような方法においては、撮像により得られた撮像画像、すなわち、２次元の画像上での変換を行うだけであり、実際の被写体のレンズからの距離に基づいた補正ではないので、正確な補正をすることが出来なかった。
【０００７】
また、このような撮像装置において、上述したように画像を補正することで画像の歪みを無くす方向に補正するだけでなく、逆に、撮影画像に含まれる被写体の顔をわざと変形させて面白い顔にするなどの撮像画像に特殊効果を施し、画像の娯楽性を高めるようにすることも考えられるが、以上の方法においては、補正する方向とは逆に、遠近感を強調するようデフォルメすることについて、その具体的な実現方法が不明であった。
【０００８】
さらに、以上の方法においては、撮像画像に含まれる被写体の顔は、その撮像画像の中心に写っていることを前提としていたが、被写体の顔は撮像画像の中心にあるとは限らず、仮に被写体の顔が画像の中心に写っていない場合、その補正は、さらに、不正確なものとなる場合があるという課題があった。
【０００９】
また、以上のような方法においては、画像を変形させるために一定のパターンのみしか用いていない。したがって、被写体の顔の形の個人差に対応することはできなかった。同様の理由で、顔の向きが傾いている場合に、正しい補正を行うことが出来ないという課題があった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、画像の歪みを、より正確に、軽減または強調させることができるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の第１の画像処理方法は、画像データに対応する画像より、画像の一部分の画像であり、補正の対象とされる部分画像を検出する検出ステップと、画像データに対応する画像に含まれる、検出ステップの処理により検出された部分画像の変形を行う変形ステップとを含むことを特徴とする。
【００１２】
前記変形ステップは、さらに、撮像手段と部分画像に対応する被写体との距離を検出する、距離検出ステップと、撮影時に距離を変化させた場合に生じる画像変化に対応する変形を部分画像に対して施す、距離変換ステップとを含むことができる。
【００１３】
前記画像データに対応する画像は、被写体を撮像して得られた撮像画像であり、部分画像は、被写体の顔の画像であることができる。
【００１４】
前記画像データに対応する画像は、被写体に近接した位置より被写体を撮像して得られた画像であり、変形ステップは、被写体に近接した位置より被写体を撮像したために部分画像に発生した、被写体の立体的形状による画像の歪みを補正するように、部分画像の変形を行うことができる。
【００１５】
前記画像データに対応する画像は、被写体に近接した位置より被写体を撮像して得られた画像であり、変形ステップは、被写体に近接した位置より被写体を撮像したために部分画像に発生した、被写体の立体的形状による画像の歪みを強調するように、部分画像の変形を行うことができる。
【００１６】
本発明の第１の画像処理装置は、画像データに対応する画像より、画像の一部分の画像であり、補正の対象とされる部分画像を検出する検出手段と、画像データに対応する画像に含まれる、検出手段により検出された部分画像の変形を行う変形手段とを備えることを特徴とする。
【００１７】
本発明の第１の画像処理プログラムは、コンピュータを、画像データに対応する画像より画像の一部分の画像であり、補正の対象とされる部分画像を検出する検出手段として、機能させるモジュールと、コンピュータを、画像データに対応する画像に含まれる検出ステップの処理により検出された部分画像の変形を行う変形手段として、機能させるモジュールとを含むことを特徴とする。
【００１８】
本発明の第２の画像処理方法は、撮像画像データに対して、画像を補正する処理を行う画像処理装置の画像処理方法であって、撮像画像データに対応する第１の撮像画像より、第１の撮像画像の被写体に対応する３次元モデルを作成する作成ステップと、第１の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出する算出ステップと、作成ステップの処理により作成された３次元モデルを用いて、算出ステップの処理により算出された位置関係と異なる位置から被写体を撮像する際に得られる第２の撮像画像を生成する生成ステップとを含むことを特徴とする。
【００１９】
前記被写体は、顔であるようにすることができる。
【００２０】
前記３次元モデルは、１つの楕球により構成されるモデルであるようにすることができる。
【００２１】
前記３次元モデルは、複数の楕球の一部分をそれぞれ組み合わせた構成のモデルであることができる。
【００２２】
前記作成ステップの処理により作成された３次元モデルより、第１の画像に含まれていない部分を削除する削除ステップをさらに含み、生成ステップは、削除ステップにより、第１の画像に含まれていない部分が削除された３次元モデルが投影された画像を第２の撮像画像として生成することができる。
【００２３】
前記第１の撮像画像に対する被写体の画像の割合と、生成ステップの処理により生成される第２の撮像画像に対する３次元モデルが投影された画像の割合とが一致するように、第２の撮像画像の画像サイズを調整する画像サイズ調整ステップをさらに含むことができる。
【００２４】
前記第１の撮像画像より被写体の画像である部分を検出する検出ステップをさらに含み、算出ステップは、検出ステップの処理により検出された被写体の画像である部分の大きさ、並びに、第１の撮像画像が得られた撮像処理において用いられたレンズの画角に基づいて、第１の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出することができる。
【００２５】
本発明の第２の画像処理装置は、撮像画像データに対応する第１の撮像画像より、第１の撮像画像の被写体に対応する３次元モデルを作成する作成手段と、第１の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出する算出手段と、作成手段により作成された３次元モデルを用いて、算出手段により算出された位置関係と異なる位置から被写体を撮像する際に得られる第２の撮像画像を生成する生成手段とを備えることを特徴とする。
【００２６】
本発明の第２の画像処理プログラムは、コンピュータを、撮像画像データに対応する第１の撮像画像より、第１の撮像画像の被写体に対応する３次元モデルを作成する作成手段として、機能させるモジュールと、コンピュータを、第１の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出する算出手段として、機能させるモジュールと、コンピュータを、作成ステップの処理により作成された３次元モデルを用いて、算出ステップの処理により算出された位置関係と異なる位置から被写体を撮像する際に得られる第２の撮像画像を生成する生成手段として、機能させるモジュールとを含むことを特徴とする。
【００２７】
本発明の第１の画像処理方法および装置、並びに画像処理プログラムにおいては、画像データに対応する画像より、画像の一部分の画像であり、補正の対象とされる部分画像が検出され、画像データに対応する画像に含まれる、検出された部分画像の変形が行われる。
【００２８】
本発明の第２の画像処理方法および装置、並びに画像処理プログラムにおいては、撮像画像データに対応する第１の撮像画像より、第１の撮像画像の被写体に対応する３次元モデルが作成され、第１の撮像画像の、被写体と、被写体を撮像した位置との位置関係が算出され、作成された３次元モデルを用いて、算出された位置関係と異なる位置から被写体を撮像する際に得られる第２の撮像画像が生成される。
【発明の効果】
【００２９】
本発明によれば、画像を処理することができる。特に、画像の歪みを、より正確に、軽減または強調させることができる。
【発明を実施するための最良の形態】
【００３０】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３１】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定したりするものではない。
【００３２】
［請求項１］  画像データに対して、画像を補正する処理を行う画像処理装置（例えば、図１のカムコーダ１）の画像処理方法であって、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出ステップ（例えば、図３のステップＳ３）と、
前記画像データに対応する画像に含まれる、前記検出ステップの処理により検出された前記部分画像の変形を行う変形ステップ（例えば、図３のステップＳ４乃至ステップＳ７）と
を含むことを特徴とする画像処理方法。
［請求項２］  前記変形ステップは、さらに、
撮像手段と前記部分画像に対応する被写体との距離を検出する、距離検出ステップ（例えば、図３のステップＳ４）と、
撮影時に前記距離を変化させた場合に生じる画像変化に対応する変形を前記部分画像に対して施す、距離変換ステップ（例えば、図３のステップＳ５乃至ステップＳ７）と
を含むことを特徴とする画像処理方法。
［請求項３］  前記画像データに対応する画像は、被写体を撮像して得られた撮像画像であり、
前記部分画像は、前記被写体の顔の画像（例えば、図４の顔画像１００）である
ことを特徴とする請求項１に記載の画像処理方法。
［請求項４］  前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを補正するように、前記部分画像の変形を行う
ことを特徴とする請求項１に記載の画像処理方法。
［請求項５］  前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを強調するように、前記部分画像の変形を行う
ことを特徴とする請求項１に記載の画像処理方法。
［請求項６］  画像データに対して、画像を補正する処理を行う画像処理装置（例えば、図１のカムコーダ）において、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出手段（例えば、図２の顔検出処理部６６）と、
前記画像データに対応する画像に含まれる、前記検出手段により検出された前記部分画像の変形を行う変形手段（例えば、図２の３次元顔モデル位置算出処理部６７乃至画像データ出力部７０）と
を備えることを特徴とする画像処理装置。
［請求項７］  画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記画像データに対応する画像より前記画像の一部分の画像であり前記補正の対象とされる部分画像を検出する検出手段として、機能させるモジュールと（例えば、図３のステップＳ３）、
コンピュータを、前記画像データに対応する画像に含まれる前記検出ステップの処理により検出された前記部分画像の変形を行う変形手段として、機能させるモジュールと（例えば、図３のステップＳ４乃至ステップＳ７）、
を含むことを特徴とする画像処理プログラム。
［請求項８］  撮像画像データに対して、画像を補正する処理を行う画像処理装置（例えば、図１のカムコーダ）の画像処理方法であって、
前記撮像画像データに対応する第１の撮像画像より、前記第１の撮像画像の被写体に対応する３次元モデルを作成する作成ステップ（例えば、図５のステップＳ２１）と、
前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出ステップ（例えば、図５のステップＳ２５）と、
前記作成ステップの処理により作成された前記３次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第２の撮像画像を生成する生成ステップ（例えば，図３のステップＳ５乃至ステップＳ７）と
を含むことを特徴とする画像処理方法。
［請求項９］  前記被写体は、顔である
ことを特徴とする請求項８に記載の画像処理方法。
［請求項１０］  前記３次元モデルは、１つの楕球により構成されるモデルである
ことを特徴とする請求項８に記載の画像処理方法。
［請求項１１］  前記３次元モデルは、複数の楕球の一部分をそれぞれ組み合わせた構成のモデルである
ことを特徴とする請求項８に記載の画像処理方法。
［請求項１２］  前記作成ステップの処理により作成された前記３次元モデルより、前記第１の画像に含まれていない部分（例えば、図１２の部分１６０）を削除する削除ステップ（例えば、図１１のステップＳ６２）をさらに含み、
前記生成ステップは、前記削除ステップにより、前記第１の画像に含まれていない部分が削除された前記３次元モデルが投影された画像を前記第２の撮像画像として生成する
ことを特徴とする請求項８に記載の画像処理方法。
［請求項１３］  前記第１の撮像画像に対する前記被写体の画像の割合と、前記生成ステップの処理により生成される第２の撮像画像に対する前記３次元モデルが投影された画像の割合とが一致するように、前記第２の撮像画像の画像サイズを調整する画像サイズ調整ステップ（例えば、図１５のステップＳ８５）をさらに含む
ことを特徴とする請求項８に記載の画像処理方法。
［請求項１４］  前記第１の撮像画像より前記被写体の画像である部分を検出する検出ステップ（例えば、図３のステップＳ３）をさらに含み、
前記算出ステップは、前記検出ステップの処理により検出された前記被写体の画像である部分の大きさ、並びに、前記第１の撮像画像が得られた撮像処理において用いられたレンズの画角に基づいて、前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する
ことを特徴とする請求項８に記載の画像処理方法。
［請求項１５］  撮像画像データに対して、画像を補正する処理を行う画像処理装置において、
前記撮像画像データに対応する第１の撮像画像より、前記第１の撮像画像の被写体に対応する３次元モデルを作成する作成手段（例えば、図５のステップＳ２１の処理を実行する図２の３次元顔モデル位置算出処理部６７）と、
前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段（例えば、図５のステップＳ２６の処理を実行する図２の３次元顔モデル位置算出処理部６７）と、
前記作成手段により作成された前記３次元モデルを用いて、前記算出手段により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第２の撮像画像を生成する生成手段（例えば、図２のテクスチャ設定処理部６８乃至画像データ出力部７０）と
を備えることを特徴とする画像処理装置。
［請求項１６］  撮像画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記撮像画像データに対応する第１の撮像画像より、前記第１の撮像画像の被写体に対応する３次元モデルを作成する作成手段として、機能させるモジュールと（例えば、図５のステップＳ２１）、
コンピュータを、前記第１の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段として、機能させるモジュールと（例えば、図５のステップＳ２５）、
コンピュータを、前記作成ステップの処理により作成された前記３次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第２の撮像画像を生成する生成手段として、機能させるモジュールと（例えば、図３のステップＳ５乃至ステップＳ７）
を含むことを特徴とする画像処理プログラム。
【００３３】
以下に、本発明の実施の形態について図面を参照して説明する。
【００３４】
図１は、本発明を適用したカムコーダの構成例を示すブロック図である。図１に示されるように、カムコーダ１は、被写体を撮像し、得られた画像情報（動画像または静止画像）を記録媒体に記録したり、その画像情報に対応する画像をディスプレイに表示したりする撮像装置であり、レンズ１１および絞り１２を介して入力された光を電気信号に変換する固体撮像素子であるCCD（Charge Coupled Device）１３を有している。
【００３５】
CCD１３は、複数のフォトダイオード（光電素子）が平面（マトリクス）状に配置された電荷結合素子であり、図示せぬ被写体からの光を電気信号に光電変換し、出力する。なお、CCDの代わりに、CMOS（Complementary Metal Oxide Semiconductor：相補型金属酸化物半導体)を利用したイメージセンサであるCMOSセンサを用いるようにしても良いし、その他の個体撮像素子を用いるようにしても良い。前処理回路１４は、図示せぬCDS回路（Correlated Double Sampling circuit）やAGC回路（Automatic Gain Control circuit）等により構成され、例えば、CDS回路において入力された画像信号のノイズ成分を除去したり、AGC回路においてその画像信号のゲインを調整したりし、その処理済の信号をA/D（Analog / Digital）変換部１５に供給する。A/D変換部１５は、前処理回路１４より供給された画像信号（アナログ信号）をディジタル信号に変換し、画像データとしてDSP（Digital Signal Processor）１６に出力する。
【００３６】
DSP１６は、信号処理用プロセッサと画像用RAMを持つブロックで、信号処理用プロセッサが画像用RAMに格納された画像データに対して、例えば、画像データに対応する画像の歪みを抑制する画像補正処理等の、予めプログラムされた画像処理を行うことができるようになっている。DSP１６の構成例の詳細については後述する。DSP１６は、画像処理を行った画像データを、コーデック部１７に供給する。
【００３７】
なお、画像データに対応する画像とは、電気信号であるその画像データに基づいて、ディスプレイにおいて表示される画像のことであり、その画像データが意味するもの（画像データの内容）である。従って、例えば、画像の内容は、すなわち画像データの内容であり、画像を補正する画像補正処理は、画像データに対して行われる。以下において、このように画像と画像データを特に分けて説明する必要の無い場合、説明を簡略化するために、画像および画像データが同じ物を示すものとして説明する。すなわち、例えば、「画像を補正する」ことは、「画像データに対して画像補正処理を行う」ことと同じことを示すものとする。
【００３８】
コーデック部１７は、DSP１６より供給された画像データに対して、予め定められた所定の方式による符号化処理を行い、符号化された画像データを画像用記憶部１８に供給する。画像用記憶部１８は、RAMやフラッシュメモリ等の半導体メモリ、ハードディスク等の磁気記録媒体、または、光磁気ディスクや光ディスク等の他の記録媒体等で構成され、コーデック部１７より供給された画像データを記憶する。
【００３９】
また、DSP１６は、コーデック部１７だけでなく、D/A変換部１９にも画像処理を行った画像データを供給する。D/A変換部１９は、D/A変換器等により構成され、DSPより供給されたディジタル信号である画像データをアナログ信号に変換し、ビデオエンコーダ２０に供給する。ビデオエンコーダ２０は、取得したアナログ信号をビデオ信号に変換し、ビデオモニタ２１に供給する。ビデオモニタ２１は、CRT（Cathode Ray Tube）やLCD（Liquid Crystal Display）のディスプレイ等により構成され、ビデオエンコーダ２０より供給されたビデオ信号に対応する画像を表示する。このビデオモニタ２１は、カムコーダ１のファインダの代わりとして、ユーザにより使用される。すなわち、ユーザは、ビデオモニタ２１に表示された画像を確認しながら撮像処理を行うことができる。
【００４０】
DSP１６、コーデック部１７、並びに画像用記憶部１８は、バス３０を介して、カムコーダ１の各部を制御するCPU４１等と接続されており、CPU４１にバス３０を介して制御されたり、CPU４１にデータを供給したりする。
【００４１】
CPU４１は、ROM４２に記憶されているプログラム、または、ドライブ４７に装着されたリムーバブルメディア５１や、通信部３５７を介してカムコーダ１の外部からRAM４３にロードされたプログラムに従って各部を制御したり、各種の処理を実行したりする。RAM４３にはまた、CPU４１が各種の処理を実行する上において必要なデータなども適宜記憶される。RAM４３には、また、各部が処理する画像情報等も一時的に保持される。
【００４２】
また、CPU４１は、入力部５６より入力されたユーザからの指示情報や、DSP１６より供給された制御情報、または、各種のプログラムを実行することにより得られた情報等に基づいて、バス３０を介して、タイミングジェネレータ（TG）３１を制御する。
【００４３】
タイミングジェネレータ３１は、動作タイミングを決定する制御信号を出力する回路であり、タイミング制御信号を供給することにより、CCD１３、前処理回路１４、A/D変換部１５、およびDSP１６の各部の動作タイミングを制御する。
【００４４】
バス３０には、また、キーボード、マウスなどよりなる入力部４４、ハードディスクなどより構成される記憶部４５、USB（Universal Serial Bus）、IEEE（Institute of Electrical and Electronic Engineers）１３９４、Ethernet（登録商標）等の有線通信インタフェースや、IEEE８０２．１１ｘやブルートゥース等の無線通信インタフェース等より構成される通信部４６が接続されている。通信部４６は、インターネットを含む有線または無線のネットワーク等を介した他の装置との通信処理を制御する。
【００４５】
バス３０にはまた、必要に応じてドライブ４７が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア５１が適宜装着され、それらから読み出されたコンピュータプログラムやデータが、必要に応じて記憶部４５にインストールされる。また、CPU４１は、ユーザの指示や、実行しているプログラム等に基づいて、例えば、画像用記憶部１８に記憶されている画像データや、DSP１６やコーデック部１７より供給された画像データ、RAM４３や記憶部４５に記憶されている画像データ、または通信部４６を介して取得した画像データ等を、ドライブ４７に装着されたリムーバブルメディア５１に記憶する。
【００４６】
次に、図１のDSP１６の内部の構成例について説明する。図２は、DSPの内部の詳細な構成例を示すブロック図である。
【００４７】
上述したように、DSP１６は、供給された画像データに対して、画像補正処理を行うユニットである。例えばA/D変換部１５等の、DSP１６の外部より供給された画像データは、DSP１６の画像データ６１入力部に供給される。画像データ入力部６１は、図示せぬバッファ等を内蔵しており、入力された画像データを蓄積し、例えば１フレーム毎等、所定のデータ量毎に内部バス６２を介して保持制御部６３に供給し、保持制御部６３が制御する保持部６４に内蔵される画像データ保持部８１に保持させる。また、画像データ入力部６１には、画像データの他にも、例えば各種の設定値に関する設定情報等も入力される。
【００４８】
保持制御部６３は、DSP１６の内部バス６２に接続されるとともに保持部６４に接続され、保持部６４によるデータの入出力を制御している。すなわち、保持制御部６４は、保持部６４の入出力インタフェースとして動作し、保持部６４に内蔵される、画像データを保持する画像データ保持部８１、各種の設定値を保持する設定値保持部８２、並びに、後述する仮想３次元空間等の仮想データを保持する仮想データ保持部８３等によるデータの入出力を制御している。
【００４９】
保持部６４、画像データ保持部８１、設定値保持部８２、並びに、仮想データ保持部８３は、いずれも、例えばSRAM（Static Random Access Memory）やDRAM（Dynamic Random Access Memory）等のような、半導体メモリ等からなる記憶素子により構成される。従って、画像データ保持部８１、設定値保持部８２、並びに、仮想データ保持部８３は、保持部６４が有する記憶領域の、互いに異なる一部分であってもよい。
【００５０】
内部バス６２には、また、各種の設定値を取得する設定値取得部６５、取得した画像データに対応する画像より被写体の顔の部分（以下、顔画像と称する）を検出する顔検出処理部６６、後述する３次元顔モデルの３次元仮想空間における位置を算出する３次元顔モデル位置算出部６７、３次元顔モデルのテクスチャを設定する処理を行うテクスチャ設定処理部６８、画像データ入力部６１より入力された画像データに対して画像補正処理を行う補正画像作成処理部６９、並びに、画像データを出力する画像データ出力部７０が接続されている。
【００５１】
設定値取得部６５は、内部バス６２に接続され、例えば、画像データ入力部６１を介して、外部より各種の設定値に関する設定情報を取得し、保持制御部６３を介して設定値保持部８２に保持させる。
【００５２】
顔検出処理部６６は、保持制御部６３を介して、画像データ保持部８１に保持されている画像データを取得し、その画像より被写体の顔画像である部分を特定する。３次元顔モデル位置算出処理部６７は、設定値保持部８２に保持されている設定値等に基づいて、画像データ保持部８１に保持されている画像データの顔画像の歪みを補正する為に用いられる３次元顔モデルを生成し、３次元仮想空間における、その３次元顔モデルの位置を算出する処理等を行う。また、３次元顔モデル位置算出処理部６７は、生成した３次元仮想顔モデルや３次元仮想空間等の情報を、保持制御部６３を介して仮想データ保持部８３に保持させる。テクスチャ設定処理部６８は、３次元顔モデル位置算出処理部６７により生成された３次元顔モデルに対するテクスチャとして、画像データ保持部８１に保持されている画像データの顔画像を設定する処理を行う。補正画像作成処理部６９は、３次元顔モデル位置算出処理部６７により生成された３次元顔モデルや３次元仮想空間を用いて、画像データ保持部８１に保持されている画像データの顔画像の歪みを補正する処理を行う。補正画像作成処理部６９は、補正後の画像データを、保持制御部６３を介して画像データ保持部８１に保持させる。なお、補正後の画像データは、内部バス６２を介して、画像データ出力部７０に供給されるようにしてもよい。
【００５３】
画像データ出力部７０は、図示せぬバッファ等を内蔵しており、例えば、内部バス６２を介して保持制御部６３にアクセスし、保持制御部６３が制御する保持部６４に内蔵される画像データ保持部８１に保持されている補正後の画像データを取得して内蔵するバッファ等に蓄積し、所定のタイミングで、その蓄積された画像データをDSP１６の外部に出力する。また、補正後の画像データが、補正画像作成処理部６９より、内部バス６２を介して画像データ出力部７０に供給される場合、画像データ出力部７０は、供給される画像データを内蔵するバッファに蓄積し、所定のタイミングで、その蓄積された画像データをDSP１６の外部に出力する。
【００５４】
以上においては、DSP１６を構成する各部がそれぞれ別体として構成されるように説明したが、これに限らず、上述した各機能をDSP１６が有していればよく、例えば、上述した各部の一部または全ての機能が他の部として構成されるようにしてもよいし、上述した各部が全て一体化して構成されるようにしてもよい。
【００５５】
次に、図１に示されるカムコーダ１の動作について説明する。
【００５６】
レンズ１１および絞り１２等の光学系を通過して固体撮像素子３に到達した入射光は、まず撮像面上の各受光素子に到達し、受光素子での光電変換によって電気信号（画像信号）に変換され、前処理回路１４に供給され、前処理回路１４が内蔵する図示せぬ相関２重サンプリング回路によって画像信号ノイズ除去され、AGC回路において、その画像信号のゲインが調整される。前処理回路１４は、各処理を施した画像信号をA/Dコンバータ１５に供給する。A/Dコンバータ１５は、取得した画像信号（アナログ信号）をデジタイズし、撮像により得られた撮像画像データとして、DSP１６に供給する。DSP１６は、図２の画像データ入力部６１を介して供給された撮像画像データを画像データ保持部８１に一時的に格納する。
【００５７】
動画像（動画像データ）を取得する撮像処理が行われている状態においては、一定のフレームレートによる画像取り込み処理を維持するようにタイミングジェネレータ３１が、CPU４１の制御に基づいて、CCD１３、前処理回路１４、A/D変換部１５、並びにDSP１６等、撮像画像データを取得する撮像機能に関するユニットを制御する。従って、DSP１６へも一定のレートで画素のストリームが送られ、そこで例えば、撮像画像に含まれる歪みを補正する画像補正処理等の、適切な画像処理がおこなわれた後、撮像画像データはD/Aコンバータ１９若しくはCODEC１７あるいはその両方に送られる。さらに、DSP１６は、撮像画像データを、バス３０を介して、CPU４１、RAM４３、記憶部４５、通信部４６、または、ドライブ４７に装着されたリムーバブルメディア５１等に供給するようにしてもよい。
【００５８】
D/Aコンバータ１９はDSP１６より供給された撮像画像データ（ディジタル信号）をアナログ信号に変換し、それをビデオエンコーダ２０がビデオ信号に変換し、そのビデオ信号をビデオモニタ２１が処理し、ビデオ信号に対応する画像（撮像画像）を表示する。このとき、カムコーダ１のユーザは、ファインダとして、ビデオモニタ２１（ビデオモニタ２１に表示された撮像画像）を参照しながら撮影を行うことができる。また、コーデック部１７はDSP１６より供給された撮像画像データに符号化処理を行い、予め定められた所定の符号化方法で符号化された撮像画像データは画像用記憶部１８に記録される。ここで、画像用記憶部１８は、半導体メモリ、磁気記録媒体、光磁気記録媒体、または光記録媒体などを用いた記録装置などであってもよい。すなわち、画像用記憶部１８は、カムコーダ１と別体として構成されるようにしてもよい。
【００５９】
CPU４１は、ROM４２等に記憶されているプログラムやデータ、またはRAM４３に展開されているプログラムやデータ等に基づいて、バス３０を介して、カムコーダ１の各部を制御する。入力部４４は、ユーザからの指示を受け付け、その入力情報をCPU４１やRAM４３に供給する。CPU４１は、その入力情報に基づいて、各部を制御し、カムコーダ１が実行可能な各種の処理を実行する。
【００６０】
次にDSP１６が実行する撮像画像に含まれる歪みを補正する処理の詳細について説明する。
【００６１】
例えば、入力部４４に含まれる、図示せぬ撮像記録開始ボタン等をユーザに操作され、撮像開始の指示が入力されると、CPU４１は、タイミングジェネレータ３１等を制御し、撮像処理を開始する。撮像処理が開始されると、上述したように、被写体からの光が取り込まれ、電気信号（画像信号）に変換され、各種の処理が施される。そして、その画像信号は、A/D変換部１５においてディジタル信号の撮像画像データに変換され、例えば、フレーム単位でDSP１６に供給される。
【００６２】
フレーム単位の撮像画像データが供給されると、DSP１６は、取得したフレーム単位の撮像画像データに対して画像補正処理を開始する。DSP１６の各部による画像補正処理を、図３のフローチャートを参照して説明する。必要に応じて図３を参照して説明する。
【００６３】
最初に、ステップＳ１において、図２のDSP１６の画像データ入力部６１は、
取得した撮像画像データを、内部バス６２を介して保持制御部６３に供給し、保持部６４の画像データ保持部８１に保持させ、処理をステップＳ２に進める。ステップＳ２において、設定値取得部６５は、ユーザが入力部４４を操作して入力した補正の度合い等の各種の設定値を、バス３０を介してRAM４３より取得し、それらを、内部バス６２を介して保持制御部６３に供給し、保持部６４の設定値保持部８２に保持させる。
【００６４】
後述するように、DSP１６は、まず撮影時のカメラと顔の位置関係を求め、それを仮想的に変化させ撮影したかのような画像を合成する。そこで、ユーザは補正後のカメラと顔の距離を入力することにより、補正の度合いを指定することができる。補正後の距離として、実際に撮影されたときの距離より、大きい値を選んだ場合、遠近感が目立たないように補正された画像が得られ、反対に小さい値を選んだ場合、遠近感がより強調されたような画像が得られる。ユーザにより指定された補正度合いは、RAM４３に保存される。
【００６５】
各種の設定値を設定値保持部８２に保持させた設定値取得部６５は、ステップＳ３に処理を進める。
【００６６】
ステップＳ３において、顔検出処理部６６は、ステップＳ１の処理により画像データ保持部８１に保持されている撮像画像データを、保持制御部６３を介して取得し、その撮像画像データに対して顔検出処理を施す。
【００６７】
図４は、撮像画像の様子の例を示す図である。図４においては、撮像により得られた撮像画像９０に、被写体の顔の画像である顔画像１００が含まれている。顔検出処理部６６は、このような撮像画像に対応する撮像画像データに対して顔検出処理を施し、顔画像１００を検出し、その顔画像１００の幅が最大になっている部分の中心位置１１０、その中心１１０から頭頂部までの高さ１０１、中心１１０から顎の下までの高さ１０２、顔画像１００の幅１０３、顔画像１００の画像９０における垂直方向からの傾き１０４を算出する。点１１１並びに１１２は、顔画像１００における、中心１１０と同じ高さの端の部分を表す点であり、中心１１０、顔画像１００の傾き１０４、並びに顔画像１００の幅１０３より算出する。点１１１および点１１２は、後述するように、３次元仮想空間におけるカムコーダ１と３次元顔モデルの位置関係を特定するのに用いられる。
【００６８】
なお、この顔検出処理に関しては、例えば、Ming-Hsuan Yang, David Kriegman, and Narendra Ahuja, "Detecting Faces in Images: A Survey", IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), vol. 24, no. 1, pp. 34-58, 2002に記載されている、顔検出のためのさまざまな手法等のような、一般的に広く用いられている方法を用いればよい。
【００６９】
顔検出処理が終了した顔検出処理部６６は、ステップＳ４に処理を進める。ステップＳ４において、３次元顔モデル位置算出処理部６７は、３次元顔モデル位置算出処理を実行し、撮像時におけるカムコーダ１と被写体の３次元仮想空間上での位置関係を算出する。なお、３次元顔モデル位置算出処理の詳細は、図５のフローチャートを参照して後述する。３次元顔モデル位置算出処理が終了すると３次元顔モデル位置算出処理部６７は、ステップＳ５に処理を進める。ステップＳ５において、テクスチャ設定処理部６８は、テクスチャ設定処理を実行し、３次元顔モデルの不必要な部分を削除し、そのモデルに対するテクスチャを設定する処理を行う。なお、テクスチャ設定処理の詳細については、図１１のフローチャートを参照して後述する。テクスチャ設定処理を終了したテクスチャ設定処理部６８は、ステップＳ６に処理を進める。
【００７０】
補正画像作成処理部６９は、ステップＳ６において、補正画像作成処理を実行し、カメラ焦点の位置を仮想的に動かして、ステップＳ１において入力された設定値が３次元顔モデルとカメラ焦点との距離となるように、カメラ焦点の位置を、３次元仮想空間における３次元座標のｚ軸に沿って動かし、カメラ焦点を移動した後３次元顔モデルをレンダリングし、最終的な補正画像を作成する。なお、補正画像作成処理の詳細については、図１５のフローチャートを参照して後述する。補正画像作成処理を終了した補正画像作成処理部６９は、ステップＳ７に処理を進める。
【００７１】
画像データ出力部７０は、ステップＳ７において、ステップＳ６における補正画像作成処理が施された撮像画像データを、保持制御部６３を介して取得し、DSP１６の外部に出力する。撮像画像データを出力した画像データ出力部７０は、そのフレーム画像に対する画像補正処理を終了する。
【００７２】
DSP１６の各部は、以上のような画像補正処理を供給される各フレーム画像に対してそれぞれ実行する。このようにすることにより、DSP１６は、各フレーム画像に対して、容易に画像の歪みを、より正確に、軽減または強調させることができ、処理の対象となる画像が動画像であっても、静止画像であっても同様に処理することができる。
【００７３】
なお、図３のフローチャートにおいて、各ステップの処理の一部または全部は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくてもよく、例えば、並列的に処理されてもよいし、個別に処理されてもよいし、他のステップにおいてサブルーチンとして実行されるようにしてもよい。また、図３のフローチャートの各ステップの処理の一部または全部は、図３のフローチャート内に限らず、以下に示す他のフローチャートのステップと並列的に処理されてもよいし、他のステップにおいてサブルーチンとして実行されるようにしてもよい。なお、このことは、後述する他のフローチャートの各ステップについても同様に適用することができる。
【００７４】
次に、図３のステップＳ４において実行される３次元顔モデル位置算出処理の詳細を、図５のフローチャートを参照して説明する。必要に応じて、図６乃至図８を参照して説明する。
【００７５】
最初にステップＳ２１において、３次元顔モデル位置算出処理部６７は、被写体の顔画像に対応する３次元顔モデルを設定する。
【００７６】
図６は、３次元顔モデルの例を示す図である。３次元顔モデル位置算出処理部６７は、図６Ａに示されるような、２種類の楕球を上下半分ずつ組み合わせたような形状の３次元顔モデル１２０を用いる。この３次元顔モデルは、図６Ａに示されるように、図中水平方向の半径が等しい２つの楕球の内、一方の楕球の上側半分からなる上側の楕球１２１と、他方の楕球の下側半分からなる下側の楕球１２２とを、それらの切断面で張り合わせた形状となっている。すなわち、この３次元顔モデルの、上側の楕球１２１と下側の楕球１２２とでは、図中水平方向の半径は等しいが、図中垂直方向の半径は、互いに独立している。従って、このような立体的形状を仮定した場合、後述する長さ１３０、長さ１３１、および長さ１３２の値を変えることで、図６Ａのような真球から、図６Ｂに示されるようなたまごのような形状までのさまざまな形状の顔に対応できる。
【００７７】
図６に示されるように、このような３次元顔モデルを水平に切り取ったとき、切り口は必ず円になる。特に、３次元顔モデルの水平方向の切り口が一番大きくなる円の半径、すなわち、２つの楕球の接合面となる円の半径の長さを長さ１３０とし、その円の中心点１３３を３次元顔モデルの中心とする。図６に示されるように、中心点１３３を通る垂直方向の軸のうち、中心点１３３から上部の端までの長さを長さ１３１、中心点１３３から下部の端までの長さを長さ１３２とする。
【００７８】
なお、上述した図６の３次元顔モデル１２０に関する各値の内、長さ１３０は、被写体の頭部の大きさを示す値であるため、その取り得る値の範囲がある程度限定されているので、予め所定の値を設定しておくことも可能である。例えば、産業技術総合研究所、くらしとJISセンターの人体寸法データベース（http://unit.aist.go.jp/pubrel/indusstan/ljis/theme/final/finalreports/anthrop.htm）によると、日本人の頭の幅は、身長、性別による差は少なく、ほぼ一定の大きさ（約15〜16cm）であることが分かる。従って、長さ１３０の大きさに関しては、この大きさを設定する。これに対して、例えば鼻からあごまでの長さなどのそのほかの顔の形状に関しては多少の個人差があると考えられる。したがって長さ１３１および長さ１３２に関しては、すべての場合に対して固定の値を用いることができないので、後述する方法で設定する必要がある。なお、３次元顔モデル１２０は、どのような形で表現されてもよく、例えば、関数を用いた表現、ポリゴン（多角形）を用いた表現などで定義するようにしてもよい。
【００７９】
このような３次元顔モデル１２０を、撮像画像において検出された顔画像、すなわち、被写体の顔のモデルとして設定すると、３次元顔モデル位置算出処理部６７は、ステップＳ２２に処理を進め、カムコーダ１や被写体（３次元顔モデル１２０）等の位置関係を算出するために、カムコーダ１の撮像処理を行うユニットである撮像ユニット（以下、カメラと称する）の中心を原点とする３次元仮想空間を設定する。３次元顔モデル位置算出処理部６７は、図７に示されるように、カメラ焦点１４０を原点とし、光軸方向をｚ軸、撮影された画像の横方向をｘ軸、縦方向をｙ軸とする３次元座標からなる３次元仮想空間を設定する。
【００８０】
この３次元仮想空間において、カメラ焦点１４０は、後述するように、カメラの焦点位置を示している。従って、この３次元仮想空間の原点は焦点位置となるレンズ１１の中心に設定する必要があるが、実際のカメラの光学系は、より複雑であり、その設定も難しくなるので、簡略化するために、カムコーダ１の撮像ユニットであるカメラの中心を原点とするようにしてもよい。このように、３次元仮想空間の原点は、焦点位置だけでなく焦点位置近傍のその他の位置を設定するようにしてもよい。
【００８１】
図５に戻り、ステップＳ２２の処理を終了した３次元顔モデル位置算出処理部６７は、ステップＳ２３に処理を進め、図７に示されるように、３次元顔モデル１２０が結像される仮想スクリーンを３次元仮想空間に配置し、その仮想スクリーンのサイズを設定する。
【００８２】
図７において、３次元顔モデルが結像される仮想スクリーン１４２は、３次元仮想空間上のCCD１３を表す仮想物体であり、光軸と垂直に、横方向がｘ軸と平行、縦方向がｙ軸と平行となり、原点からある距離ｄの場所に設定される。ここで、距離ｄには撮影に用いたカメラの焦点距離（すなわち、レンズ１１とCCD１３の距離）を設定する。実際には、CCD１３は、レンズ１１から見て被写体と反対方向に存在するが、仮想スクリーン１４２は、レンズ１１を中心とするCCD１３と対象の位置、すなわち、レンズ１１から被写体の方向に距離ｄだけ離れた位置に設定される。このように設定された仮想スクリーン１４２には、３次元顔モデルがCCD１３に結像される場合と同様の大きさで結像される。以上のように、仮想スクリーン１４２は、３次元仮想空間上におけるCCD１３の代替物として設定される。
【００８３】
３次元顔モデル位置算出処理部６７は、距離ｄを設定した後に、仮想スクリーン１４２の大きさを設定する。仮想スクリーン１４２の大きさは、CCD１３と同じ大きさとなるように設定される。また、３次元顔モデル位置算出処理部６７は、CCD１３の大きさの代わりに、カメラの画角と距離ｄを用いて、仮想スクリーン１４２の大きさを設定することもできる。この場合、３次元顔モデル位置算出処理部６７は、距離ｄには適当な大きさを設定し、画角をもとにして仮想スクリーン１４２の大きさを定めればよい。
【００８４】
図５に戻り、３次元顔モデル位置算出処理部６７は、ステップＳ２４に処理を進め、図３のステップＳ３の処理により検出された顔検出結果である顔画像１００を仮想スクリーン１４２にマッピングする。仮想スクリーン１４２は、CCD１３を示す仮想物体であり、顔画像１００を含む撮像画像９０は、CCD１３において得られた画像であるので、撮像画像９０と仮想スクリーン１４２の縦横比は一致する。従って、３次元顔モデル位置算出処理部６７は、撮像画像９０に対して、画像の縦横比を変えずに単純に拡大または縮小を行って、顔認識結果を仮想スクリーン１４２にマッピングする。
【００８５】
顔認識結果を仮想スクリーン１４２にマッピングした３次元顔モデル位置算出処理部６７は、次に、ステップＳ２５に処理を進め、距離算出処理を実行し、３次元顔モデル１２０の位置を算出する。
【００８６】
まず、図４に示される顔検出結果のうち中心点１１０、点１１１、および点１１２に注目する。中心点１１０、点１１１、および点１１２は、図６における３次元顔モデル１２０の中心点１３３を通る水平切り口（形状は円）上の点が、画像上に結像された部分である。中心点１１０、点１１１、および点１１２の仮想スクリーン１４２における位置は、前述のマッピングにより分かるので、３次元空間での対応する位置も算出することができる。例えば、図７において、中心点１１０、点１１１、および点１１２が仮想スクリーン１４２上にマッピングされた点が、それぞれ、点１４３、点１４４、および点１４５であるとする。
【００８７】
また、３次元顔モデル１２０の水平切り口の半径の長さ１３０は上述したように、すでに設定されている。従って、以下の５つの条件を使って、水平切り口の位置を求めることにより、３次元仮想空間における、３次元顔モデル１２０の位置ならびに向きを求めることができる。１つ目の条件は、３次元顔モデル１２０の中心点１３３を通る水平切り口は大きさが既知であるということである。２つ目の条件は、その水平切り口の中心点１３３の存在位置は、３次元仮想空間上でカメラ焦点１４０と点１４３を通る直線上に限定されるということである。３つ目の条件は、水平切り口の輪郭部分の円周は、３次元仮想空間上でカメラ焦点１４０と点１４４を通る直線と接するということである。４つ目の条件は、３つ目の条件と同様に、水平切り口の輪郭部分の円周は、３次元仮想空間上でカメラ焦点１４０と点１４５を通る直線と接するということである。５つ目の条件は、水平切り口はｚ＞０の領域に存在するということである。このような５つの条件に従うことにより、３次元顔モデル１２０の水平切り口の位置を求めることができる。
【００８８】
図８は、３次元顔モデル１２０の位置を上述したように特定する様子の例を説明する図である。図８Ａに示されるように、点１４３、点１４４、および点１４５で形成される平面上に上述した３次元顔モデル１２０の水平切り口が存在しているので、３次元顔モデル位置算出処理部６７は、容易にその位置を特定することができる。
【００８９】
このようして、３次元顔モデル位置算出処理部６７は、撮像時のカムコーダ１と３次元顔モデル１２０との３次元的な位置関係（距離）を算出する。距離算出処理の詳細については、図９のフローチャートを参照して後述する。
【００９０】
図５に戻り、距離算出処理が終了すると、３次元顔モデル位置算出処理部６７は、次に、ステップＳ２６に処理を進め、距離算出処理により算出されたカムコーダ１と３次元顔モデル１２０との位置関係に基づいて、３次元顔モデル１２０を３次元仮想空間に配置し、ステップＳ２７において、３次元顔モデル１２０の縦方向のサイズである、長さ１３１および長さ１３２を算出し、設定する。具体的には、３次元顔モデル位置算出処理部６７は、図８Ｂに示されるように、３次元仮想空間上で設定された３次元顔モデル１２０を仮想スクリーン１４２に結像した場合に、長さ１３１および長さ１３２が、顔検出結果の顔上半分と下半分の大きさに相当する長さ１０１および長さ１０２とそれぞれ一致するように、それらの値の調整を行う。
【００９１】
ステップＳ２７の処理を終了した３次元顔モデル位置算出処理部６７は、３次元顔モデル位置算出処理を終了し、図３のステップＳ５に処理を進める。
【００９２】
以上のようにして、３次元顔モデル位置を算出するので、３次元顔モデル位置算出処理部６７は、容易に、カムコーダ１と３次元顔モデル１２０との位置関係を求めることができ、それにより、DSP１６は、容易に、画像の歪みを、より正確に、軽減または強調させることができる。
【００９３】
また、３次元顔モデル位置算出処理部６７は、２種類の楕球を上下半分ずつ組み合わせたような形状の３次元顔モデルを用いるので、３次元顔モデル縦方向の長さを上半分と下半分とで互いに独立して設定することができ、真球から、たまごのような形状まで、さまざまな形状の顔に対応できる。すなわち、３次元顔モデル位置算出処理部６７は、被写体の顔の形の個人差に応じて、最適な３次元顔モデルを構成することができ、DSP１６は、このような様々な被写体の顔画像の歪みを、より正確に、軽減または強調させることができる。
【００９４】
なお、３次元顔モデル位置算出処理部６７は、上述した処理において、算出したり設定したりした仮想データ、例えば、３次元顔モデルや３次元仮想空間に関する情報を、上述した処理の途中または終了後に内部バス６２を介して保持制御部６３に供給し、保持部６４の仮想データ保持部８３に保持させ、他の処理部においても参照可能であるようにする。
【００９５】
次に、図５のステップＳ２５において実行される距離算出処理の詳細を、図９のフローチャートを参照して説明する。必要に応じて、図１０を参照して説明する。
【００９６】
最初に、３次元顔モデル位置算出処理部６７は、ステップＳ４１において、カムコーダ１の撮像機能（カメラ機能）における、光の焦点（以下、カメラ焦点と称する）の位置、すなわち、３次元仮想空間における原点における、仮想スクリーン１４２にマッピングされた顔画像１００に対する角度を算出する。
【００９７】
図１０は、３次元顔モデルの距離を算出する様子の例を説明する図である。図１０において、水平切り口１５０は、上述した３次元顔モデル１２０の中心点１３３を通る水平切り口であり、点１３３を中心点とする円を構成している。この水平切り口１５０とカメラ焦点の位置である３次元仮想空間の原点は、図１０に示されるような位置関係となる。上述したように、日本人の頭の幅は、身長、性別による差は少なく、ほぼ一定の大きさ（約15〜16cm）であると考えられるので、３次元顔モデル位置算出処理部６７は、この値を水平切り口１５０の半径１３０に設定する。
【００９８】
さて、いま、図１０において、カムコーダ１の画角１５２をｒcamとして、水平切り口１５０をカメラの中心から見たときに占める角度１５３をｒfaceとする。カメラの画角ｒcam（画角１５２）は、撮像時の焦点距離等、そのカメラの設定値から算出することが出来るので、図４に示される撮像画像９０における顔画像１００の幅１０３をｗfaceとし、撮像画像９０の幅をｗimgとすると、角度ｒface１５３は、以下に示される式（１）により算出される。
【００９９】
【数１】
2005025703.tif 000003
【０１００】
図９に戻り、以上のようにして、カメラ焦点の位置における顔画像に対する角度を算出した３次元顔モデル位置算出処理部６７は、ステップＳ４２に処理を進め、カメラ焦点の位置から３次元顔モデルの中心までの距離を算出する。
【０１０１】
図１０において、顔撮像時のカメラ焦点（３次元仮想空間の原点）１４０から３次元顔モデルの中心点１４３までの距離１５１をｄorgとすると、上述した式（１）により算出された角度ｒface１５３を用いて、ｄorgは、以下に示される式（２）のように算出される。
【０１０２】
【数２】
2005025703.tif 000004
【０１０３】
なお、ここでｓfaceは、顔モデルの切り口１５０の半径である長さ１３０の値を示す。
【０１０４】
以上のようにして、カメラ焦点の位置から、３次元顔モデルの中心までの距離を算出した３次元顔モデル位置算出処理部６７は、距離算出処理を終了し、図５のステップＳ２６に処理を進める。
【０１０５】
このようにすることにより、３次元顔モデル位置算出処理部６７は、容易に、カムコーダ１と３次元顔モデル１２０との位置関係を求めることができ、それにより、DSP１６は、容易に、画像の歪みを、より正確に、軽減または強調させることができる。
【０１０６】
なお、以上においては、説明を簡略化するために、図４に示される顔画像１００の傾き１０４が無い場合について説明したが、例えば図４の場合のように、顔画像１００が撮像画像９０の垂直方向に対して傾き１０４を含む場合は、３次元顔モデル位置算出処理部６７が、３次元顔モデル１２０を、３次元仮想空間のｙ軸に対して傾き１０４だけ傾くように設定すればよい。その場合、ステップＳ２７において算出される３次元顔モデルの縦方向のサイズは、ｙ軸に対して傾き１０４だけ傾いた方向のサイズとなる。
【０１０７】
このようにすることにより、DSP１６は、撮像画像に対して顔の向きが傾いている場合においても、画像の歪みを、より正確に、軽減または強調させることができる。
【０１０８】
次に、図３のステップＳ５において実行されるテクスチャ設定処理の詳細を図１１のフローチャートを参照して説明する。必要に応じて、図１２乃至図１４を参照して説明する。
【０１０９】
このテクスチャ設定処理において、テクスチャ設定処理部６８は、３次元顔モデル１２０の不必要な部分を削除し、そのモデルに対するテクスチャを設定する処理を行う。
【０１１０】
最初に、テクスチャ設定処理部６８は、内部バス６２を介して保持制御部６３にアクセスし、保持部６４の仮想データ保持部８３に保持されている、３次元顔モデルに関する情報や３次元仮想空間に関する情報等、テクスチャ処理に必要な仮想データを取得する。それらのデータを取得したテクスチャ設定処理部６８は、ステップＳ６１において、３次元顔モデル１２０において、後段の画像補正処理において必要な部分を特定する。
【０１１１】
図１２は、テクスチャを設定する様子の例を説明する図である。図１２Ａは、図７を他の角度から見た図であり、３次元仮想空間の原点を基準に３次元顔モデルがスクリーン１４２に撮像される様子を示している。この３次元仮想空間で、３次元顔モデルをスクリーン１４２に画像化（以下、レンダリングと称する）した場合に、レンダリングの結果、３次元顔モデルの画像に写らない部分１６０を３次元顔モデルから削除し、３次元顔モデルを写る部分１６１にする。
【０１１２】
後述する画像補正処理において、顔画像の歪みを軽減するために、カメラの焦点の位置をｚ軸に沿ってスクリーンから離れる方向に仮想的に移動させる処理を行う。このとき、３次元顔モデルを再びレンダリングすると、最初の状態において画像に写っていなかった部分１６０の一部分が仮想スクリーン１４２に写ってしまうことになる。しかし、部分１６０は、ユーザが実際にカメラを撮影したときには、隠れていた部分であり、その部分のテクスチャはどのようになっているかは不明であるので、この場合、部分１６０はレンダリングされるべきではない。従って、上述したように、ステップＳ６１において、予め、３次元顔モデルの不要な部分である部分１６０を３次元顔モデルから削除しておく。
【０１１３】
図１３は、３次元顔モデルの必要な部分を特定する様子の具体的な例を説明する図である。図１３において、カメラ焦点の位置は、３次元仮想空間において光軸に沿って動かされている。
【０１１４】
式（２）に示されるように、３次元仮想空間の原点に位置するカメラ焦点１４０は、３次元顔モデルの中心から距離１５１（dorg）離れた場所にある。後述するように、最終的な画像を得るために、カメラ焦点１４０が光軸に沿って、仮想的に移動させられる。どの程度移動するかは、ユーザの指定した値により決定される。移動後のカメラ焦点と３次元顔モデル中心との距離１７０をdnewとする。
【０１１５】
移動前後でそれぞれ、３次元顔モデルの水平切り口１５０がカメラ（カムコーダ１）から見えている部分の端と水平切り口１５０の中心１３３とのなす角度は異なる。そのうち、カメラと顔の距離が小さい場合にカメラから見える水平切り口１５０の部分とカメラ焦点１４０Ａとのなす角度の１／２の角度１７１の値をαmaxとする。この角度１７１の値αmaxは以下の式（３）により求めることが出来る。
【０１１６】
【数３】
2005025703.tif 000005
【０１１７】
以上のようにして、テクスチャ設定処理部６８は、３次元顔モデルより、画像補正処理に必要な部分を特定する。ステップＳ６１の処理を終了したテクスチャ設定処理部６８は、ステップＳ６２に処理を進める。ステップＳ６２において、テクスチャ設定処理部６８は、３次元顔モデルの必要な部分以外の部分、すなわち、不要な部分を、図１４に示されるように、３次元顔モデルより削除する。図１４において、部分１６０は、仮想スクリーン１４２に写らないので、この部分を削除し、部分１６１を、画像の変形処理に使う３次元顔モデルとして残す。
【０１１８】
ステップＳ６２の処理を終了したテクスチャ設定処理部６８は、ステップＳ６３に処理を進め、残された３次元顔モデル１６１に対するテクスチャを設定する。
【０１１９】
図１２Ｂは、テクスチャマッピングが行われる様子を示している。まず、図４に示される撮像画像９０を、仮想スクリーン１４２にマッピングする。そして、図１２Ｂに示されるように、カメラ焦点１４０を基準にして、仮想スクリーン１４２にマッピングされた撮像画像９０を、３次元顔モデル１６１のテクスチャとして対応付ける。
【０１２０】
３次元顔モデルにテクスチャを設定したテクスチャ設定処理部６８は、テクスチャ設定処理を終了し、図３のステップＳ６に処理を進める。
【０１２１】
なお、テクスチャ設定処理部６８は、上述した処理において、算出したり設定したりした仮想データ、例えば、テクスチャを設定した３次元顔モデルに関する情報等を、上述した処理の途中または終了後に内部バス６２を介して保持制御部６３に供給し、保持部６４の画像データ保持部８１または仮想データ保持部８３に保持させ、他の処理部においても参照可能であるようにする。
【０１２２】
以上のように３次元顔モデルにテクスチャを設定するので、テクスチャ設定処理部６８は、容易にテクスチャを設定することができる。また、これにより、DSP１６は、そのテクスチャが設定された３次元顔モデルを用いて画像の歪みを補正する処理を行うことができ、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。さらに、テクスチャ設定処理部６８が３次元顔モデルのレンダリングに不要な部分を削除してからテクスチャを設定するので、DSP１６は、テクスチャの設定されていない３次元顔モデルをレンダリングする等の不要な処理による誤差の発生を抑制することができ、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。
【０１２３】
なお、以上においては、説明を簡略化するために、図４に示される顔画像１００の傾き１０４が無い場合について説明したが、例えば図４の場合のように、顔画像１００が撮像画像９０の垂直方向に対して傾き１０４を含む場合は、テクスチャ設定処理部６８が、３次元仮想空間のｘ軸をｘｙ平面上で、傾き１０４だけ傾けたｘ´軸および、ｙ軸を傾き１０４だけ傾けたｙ´軸を用いて、上述した処理を実行すればよい。その場合、図１２に示される仮想スクリーン１４２は、上述した場合と同様に、各辺がｘ軸方向またはｙ軸方向に平行となる四辺形となり、ｘｙ平面上において、３次元顔モデルに対して傾き１０４だけ逆方向に傾く。
【０１２４】
次に、図３のステップＳ６において実行される補正画像作成処理の詳細を、図１５のフローチャートを参照して説明する。必要に応じて、図１６および図１７を参照して説明する。
【０１２５】
最初に、補正画像作成処理部６９は、内部バス６２を介して保持制御部６３にアクセスし、保持部６４の仮想データ保持部８３に保持されている、３次元顔モデルに関する情報や３次元仮想空間に関する情報等、補正画像作成処理に必要な仮想データを取得する。それらのデータを取得した補正画像作成処理部６９は、ステップＳ８１において、３次元仮想空間のｚ軸方向、すなわち、カムコーダ１のカメラの光軸方向にカメラ焦点の位置を移動させる。補正画像作成処理部６９は、図３のステップＳ２において、設定値取得部６５が取得し、保持部６４の設定値保持部８２に保持されている設定値に基づいて、３次元顔モデルとカメラ焦点との距離を決定し、カメラ焦点の位置を、３次元仮想空間における３次元座標のｚ軸に沿って移動させる。
【０１２６】
カメラ焦点をｚ軸方向に移動させると、補正画像作成処理部６９は、ステップＳ８２において、３次元顔モデルの中心が光軸（ｚ軸）上、すなわち、仮想スクリーン１４２の中心に存在するか否かを判定する。３次元顔モデルの中心が光軸上に存在すると判定した場合、カメラ焦点を移動させても、仮想スクリーン１４２にレンダリングされた３次元顔モデルに対応する顔画像１００の中心は光軸上に存在する（仮想スクリーン１４２上において、顔画像１００の中心点１１０の位置が変化しない）。すなわち、この場合、カメラ焦点を移動前後において、仮想スクリーン１４２にレンダリングされた３次元顔モデルに対応する顔画像１００は、その大きさが変化するだけであり、仮想スクリーン１４２上における顔画像１００の位置や輪郭の形などは変化しない。従って、この場合、補正画像作成処理部６９は、ステップＳ８３に処理を進め、レンダリング処理を実行し、３次元顔モデルを仮想スクリーン１４２上に、最終的な画像（顔画像が補正された画像）を合成する。レンダリング処理の詳細は、図１８のフローチャートを参照して後述する。
【０１２７】
レンダリング処理が終了すると、補正画像作成処理部６９は、ステップＳ８４に処理を進め、補正前後の仮想スクリーンの大きさに対する顔画像の大きさが一致するか否かを判定する。カメラ焦点がｚ軸に沿って移動された後に、移動前と同じ画角で、仮想スクリーン１４２に３次元顔モデル１６１がレンダリングされた場合、レンダリングの結果、得られる画像における３次元顔モデル１６１に対応する顔画像の大きさが、カメラ焦点移動前における顔画像１００の大きさと異なってしまう。
【０１２８】
このように、補正前後の仮想スクリーンの大きさに対する顔画像の大きさが一致しないと判定した場合、補正画像作成処理部６９は、ステップＳ８５に処理を進め、仮想スクリーン１４２のサイズを調整する。補正画像作成処理部６９は、レンダリングする際のカメラ（カムコーダ１）の画角を調節し（すなわち、仮想スクリーン１４２の大きさを調整し）、最終的な３次元顔モデル１６１のレンダリング結果の大きさが、図４に示される顔画像１００の大きさと同等になるようにする。すなわち、補正画像作成処理部６９は、顔画像の大きさはそのままにして、仮想スクリーン１４２の大きさのみを調整することで、仮想スクリーン１４２の大きさに対する顔画像の大きさを、カメラ焦点の位置を移動する前後において同等となるようにする。
【０１２９】
図１６は、仮想スクリーンサイズを調整する様子の例を示す図である。図１６において、カメラ焦点１４０の位置が原点の位置から、ｚ軸上の点１８０の位置まで移動する場合について説明する。なお、カメラ焦点の移動前の仮想スクリーン１４２の水平方向（図中上下方向）の長さを長さ１９０とする。仮想スクリーン１４２の縦横比は、予め定められている（CCD１３の縦横比と同じである）ので、ここでは、仮想スクリーン１４２のサイズを水平方向の長さを用いて説明する。
【０１３０】
図１６において、カメラ焦点の位置が移動すると、仮想スクリーン１４２に結像する３次元顔モデル１６１に対応する顔画像の大きさは変化する。例えば、図１６に示されるように、仮想スクリーン１４２の位置および大きさを固定し、カメラ焦点の位置を、３次元仮想モデル１６１に対して原点より遠い位置に移動した場合、３次元顔モデル１６１に対応する仮想スクリーン１４２上の顔画像の輪郭の大きさは、移動前の顔画像と比較して大きくなる。これに対して、補正画像作成処理部６９は、カメラ焦点の位置の移動前における顔画像の輪郭の大きさと、移動後における顔画像の輪郭の大きさとが一致するように（仮想スクリーン１４２に対する顔画像の割合が移動前後において一致するように）、仮想スクリーン１４２の大きさを変更する。図１６の例では、仮想スクリーン１４２の水平方向の長さ（仮想スクリーン１４２の大きさ）を長さ１９０より大きな長さ１９１に変更している。このようにすることにより、仮想スクリーン１４２における撮像画像のサイズを、カメラ焦点の移動の前後において一致させた場合に、顔画像の大きさも一致するようになる。
【０１３１】
なお、顔画像１００の中心１１０がカメラの光軸上にある場合は、カメラ焦点の移動前後で、３次元顔モデル１６１に対応する仮想スクリーン１４２での顔画像の輪郭の形は相似形となるので、補正画像作成処理部６９は、仮想スクリーン１４２の大きさを調整することで、完全に顔画像の輪郭を一致させることができる。後述するように、３次元顔モデル１２０の中心１３３がカメラの光軸上に無い場合は、カメラ中心の移動前後で、３次元顔モデル１６１に対応する仮想スクリーン１４２での顔画像の輪郭の形が、相似形とならないので、補正画像作成処理部６９は、仮想スクリーン１４２の大きさを調整しても、完全に顔画像の輪郭を一致させることはできない。
【０１３２】
上述したようなステップＳ８５の処理を終了した補正画像作成処理部６９は、ステップＳ８３に処理を戻し、それ以降の処理を繰り返す。
【０１３３】
以上のように、仮想スクリーン１４２のサイズが調整され、ステップＳ８４において、補正前後の顔画像の大きさが一致すると判定した場合、補正画像作成処理部６９は、得られた補正画像を、内部バス６２を介して保持制御部６３に供給し、保持部６４の画像データ保持部８１に保持させ、補正画像作成処理を終了し、図３のステップＳ７に処理を進める。
【０１３４】
また、ステップＳ８２において、顔画像１００が仮想スクリーン１４２の中心からずれており、３次元顔モデルの中心が光軸上に存在しないと判定した場合、補正画像作成処理部６９は、ステップＳ８６に処理を進め、ステップＳ８３の場合と同様のレンダリング処理を実行し、３次元顔モデルを仮想スクリーン１４２上に、最終的な画像（顔画像が補正された画像）を合成する。
【０１３５】
レンダリング処理が終了すると、補正画像作成処理部６９は、ステップＳ８７に処理を進め、補正前後の仮想スクリーンにおける顔画像の位置が一致するか否かを判定する。３次元顔モデルの中心が光軸上に存在しない場合に、カメラ焦点がｚ軸に沿って移動された後に、移動前と同じ画角で、仮想スクリーン１４２に３次元顔モデル１６１がレンダリングされたとき、レンダリングの結果、得られる画像における３次元顔モデル１６１に対応する顔画像の位置が、カメラ焦点移動前における顔画像１００の位置と異なってしまう。
【０１３６】
このように、補正前後の仮想スクリーンにおける顔画像の位置が一致しないと判定した場合、補正画像作成処理部６９は、ステップＳ８８に処理を進め、図１７に示されるように、仮想３次元空間の３次元座標のｘｙ平面上においてカメラ焦点の位置を移動させる。
【０１３７】
図１７において、顔画像２０１は、３次元顔モデル２０２を仮想スクリーン１４２にレンダリングして得られる画像である。このとき３次元顔モデル２０２の中心が光軸上（ｚ軸上）に存在しないので、カメラ焦点の位置がｚ軸方向に沿って移動されると、３次元顔モデル２０２を仮想スクリーン１４２にレンダリングして得られる画像の位置が、顔画像２０１の位置よりずれてしまう。
【０１３８】
そこで、補正画像作成処理部６９は、補正前後の顔画像の中心の位置が互いに一致するように、カメラ焦点の位置をｚ軸上の点ではない点１８０に移動する。このようにすることにより、点１８０、点１４０、画像２０１の中心、３次元顔モデル２０２の中心とが１本の直線により結ばれるようになり、補正後の顔画像の中心の位置が、補正前の顔画像の中心の位置に一致する。
【０１３９】
図１５に戻り、ステップＳ８８の処理を終了した補正画像作成処理部６９は、ステップＳ８６に処理を戻し、それ以降の処理を繰り返す。
【０１４０】
以上のようにして、カメラ焦点の位置が補正される等して、ステップＳ８７において、補正前後の顔画像の中心の位置が一致すると判定すると、補正画像作成処理部６９は、ステップＳ８９に処理を進め、補正後の顔画像の輪郭が、補正前の顔画像の輪郭を内包し、かつ、最小であるか否かを判定する。
【０１４１】
上述したように、カメラ焦点の位置が移動すると、仮想スクリーン１４２に結像する３次元顔モデル１６１に対応する顔画像の大きさは変化する。このとき、３次元顔モデルの中心がカメラの光軸上にある場合と異なり、３次元顔モデルの中心がカメラの光軸上に無い場合は、カメラ中心の移動前後で、３次元顔モデルに対応する仮想スクリーン１４２での顔画像の輪郭の形が、相似形とならないので、補正画像作成処理部６９は、仮想スクリーン１４２の大きさを調整しても、完全に顔画像の輪郭を一致させることはできない。
【０１４２】
そこで、このように３次元顔モデルの中心がカメラの光軸上に無い場合、補正画像作成処理部６９は、補正後の顔画像の輪郭が、補正前の顔画像の輪郭を内包し、かつ、最小であるか否かを判定し、補正前の顔画像の輪郭を内包していない、または、補正前の顔画像の輪郭を内包しているが、その面積が最小ではないと判定した場合、ステップＳ９０に処理を進め、カメラ焦点の移動後の３次元顔モデルに対応する顔画像の輪郭が、カメラ焦点の移動前の３次元顔モデルに対応する顔画像の輪郭をすべて覆い隠す最小の大きさなるように、仮想スクリーン１４２の大きさを変更する。
【０１４３】
このように、仮想スクリーン１４２のサイズを調整した補正画像作成処理部６９は、ステップＳ８６に処理を戻し、それ以降の処理を繰り返し、新たに設定された大きさの仮想スクリーン１４２に対して、３次元顔モデルのレンダリング処理を再度行う。
【０１４４】
以上のような仮想スクリーン１４２のサイズの調整が行われるなどして、ステップＳ８９において、補正後の顔画像の輪郭が、補正前の顔画像の輪郭を内包し、かつ、最小であると判定した場合、補正画像作成処理部６９は、補正画像作成処理を終了し、図３のステップＳ７に処理を進める。
【０１４５】
以上のようにして、補正画像作成処理部６９は、顔画像の歪みの度合いを調整した補正画像を作成するので、DSP１６は、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。また、これにより、カムコーダ１は、より正確に、画像の歪みを軽減または強調させた補正画像を記録媒体に記録したり、ディスプレイに表示したりする等して、ユーザに提供することができる。
【０１４６】
なお、補正画像作成処理部６９は、ユーザ等により指示された補正の度合い（カメラ焦点の移動距離）に応じて、３次元仮想モデルをレンダリングする仮想スクリーン１４２のサイズを適切に調整するので、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。また、その際、補正画像作成処理部６９は、３次元顔モデルの中心の位置（撮像画像における顔画像の中心の位置）に応じて、仮想スクリーン１４２のサイズを最適な方法で調整するので、例えば被写体の顔が画像の中心に写っていないような場合であっても、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。
【０１４７】
以上においては、説明を簡略化するために、図４に示される顔画像１００の傾き１０４が無い場合について説明したが、例えば図４の場合のように、顔画像１００が撮像画像９０の垂直方向に対して傾き１０４を含む場合は、補正画像作成処理部６９は、３次元仮想空間のｘ軸をｘｙ平面上で傾き１０４だけ傾けたｘ´軸および、ｙ軸を傾き１０４だけ傾けたｙ´軸を用いて、上述した処理を実行する。その場合、仮想スクリーン１４２は、上述した場合と同様に、各辺がｘ軸方向またはｙ軸方向に平行となる四辺形となり、ｘｙ平面上において、３次元顔モデルに対して傾き１０４だけ逆方向に傾く。
【０１４８】
次に、図１５のステップＳ８３およびステップＳ８６において実行されるレンダリング処理の詳細を、図１８のフローチャートを参照して説明する。必要に応じて、図１９乃至図２２を参照して説明する。
【０１４９】
レンダリング処理を開始した補正画像作成処理部６９は、最初に、ステップＳ１１１において、レンダリングされる３次元顔モデルの代表点を決定する。３次元顔モデルをレンダリングするとき、補正画像作成処理部６９は、３次元顔モデルのテクスチャが設定された面を構成する全ての点について、同様に補正処理を行うようにしてもよいが、その場合、計算量が膨大になり、処理の負荷が増大してしまう。従って、負荷を軽減させるために、補正画像作成処理部６９は、３次元顔モデルのテクスチャが設定された面を構成する点の中から、代表となる点をいくつか選び、その代表点について補正処理を行い、その他の点については、その代表点の補正に基づいて補正するようにするのが望ましい。
【０１５０】
図１９は、代表点を決定し、その座標を求める様子の例を説明する図である。カメラ焦点１４０と仮想スクリーン２１５との距離２１６をｄfocusと置く。ここで、仮想スクリーン２１５とカメラの光軸との交点２１２を点Ｃとし、角度１７１が式３により求めたαmaxである点１７２を点Ａとし、点１７２が仮想スクリーン２１５に投影される点２１３を点Ａ’とする。また、水平切り口１５０上のある点２１１を点Ｂとし、点Ｂ（点２１１）が仮想スクリーン２１５に投影される点２１４を点Ｂ’とする。点Ｂ（点２１１）と水平切り口１５０の中心１３３を結ぶ線と、カメラの光軸とのなす角度２１０をα(ａ≦αmax)と置く。
【０１５１】
ここで、水平切り口１５０の中心点１３３とカメラ焦点１４０との距離はｄとし、ｄはｄmin以上の任意の値をとることが出来る。いま、点Ｃ（点２１２）と点Ｂ’（点２１４）の距離をｘとおくと、ｘは以下に示される式（４）により算出することが出来る。
【０１５２】
【数４】
2005025703.tif 000006
【０１５３】
さらに、点Ｃ（点２１２）と点Ａ’（点２１３）の距離をｘmaxとおくと、ｘmaxも上述した式（４）により算出できる。いま、ｘとｘmaxの比をｋと置くと、ｋ＝ｘ／ｘmaxは以下に示される式（５）により求められる。
【０１５４】
【数５】
2005025703.tif 000007
【０１５５】
αは０からαmaxまでの任意の値を取れるが、補正画像作成処理部６９は、そのうちn点を代表点として定める。αiを次の式６のように定義する。
【０１５６】
【数６】
2005025703.tif 000008
【０１５７】
ｄ＝ｄorgとｄ＝ｄnewの場合それぞれに関して、ｋをｉ＝０・・・，ｎ−１について算出する。なお、ここで、ｄ＝ｄorgでｉ＝ｊの時のｋをｋorgjと、ｄ＝ｄnewでｉ＝ｊのときのｋをｋnewjと置く。これらの値は、カメラ焦点と３次元顔モデルとの距離がｄorgまたはｄnewのときに、顔モデル上の点が、仮想スクリーン１４２のどの位置に投影されるかを表す値である。従って、これらの値を、撮像画像の顔画像の位置にプロットすれば、画像の補正前後の対応関係が分かる。つまり、図４における顔画像の中心１１０を始点とし、顔の大きさにあわせ外側に向かって、ｋの値を用いて、点をプロットすれば、補正前後で画像を、どのように変化させればよいかがわかる。
【０１５８】
ステップＳ１１１の処理を終了した補正画像作成処理部６９は、次に、ステップＳ１１２に処理を進め、ステップＳ１１１において決定した各代表点の補正前の座標を算出し、ステップＳ１１３において、ステップＳ１１１において決定した各代表点の補正後の座標を算出する。
【０１５９】
図２０は、代表点の座標を算出する様子の例を説明する図である。楕円２２０が、顔検出処理により検出された顔画像であるとする。その顔画像の中心を原点とし、顔画像の横方向にｘ軸、顔画像の縦方向にｙ軸を取るような座標系において、楕円２２０のｘ軸方向の軸の長さをａ、ｙ軸方向の軸の長さをｂとおく。原点と楕円２２０上の点２２２とを結ぶベクトルとｘ軸とのなす角度２２１がθであるとき、点２２２の座標は(ａ×cosθ，ｂ×sinθ)となる。
【０１６０】
点２２２は、３次元顔モデルの端を表し、ｘmaxに対応する位置に存在する。すなわち、原点と楕円２２０上の点２２２とを結ぶ線上に、ｋorgiとｋnewiを用いて点を(ｋorgi×ａ×cosθ，ｋorgi×ｂ×sinθ)、(ｋnewi×ａ×cosθ，ｋnewi×ｂ×sinθ)のように、プロットすれば、３次元顔モデル上で選ばれた代表点が、補正前後でどのように変化するのかがわかる。すなわち、補正画像作成処理部６９は、ステップＳ１１２およびステップＳ１１３において、以上のようにして、代表点の補正前後における座標を算出する。
【０１６１】
なお、角度θに関しては、ｊ＝０，…，ｍ−１について、以下に示される式（７）のようにθjを定義する。
【０１６２】
【数７】
2005025703.tif 000009
【０１６３】
式（７）を適用することにより、補正画像作成処理部６９は、図２０の第１象限に関して、補正前の代表点（ｋorgi×ａ×cosθj，ｋorgi×ｂ×sinθj）（以下、Ｐorgi,jと称する）、補正後の代表点（ｋnewi×ａ×cosθj，ｋnewi×ｂ×sinθj）（以下、Ｐnewi,jと称する）を求める。
【０１６４】
第１象限に関して、代表点の座標を算出した補正画像作成処理部６９は、第２象限乃至第４象限に関しても、第１象限の代表点の位置を基準にして対象関係を利用して、それぞれ代表点の座標を算出する。このように代表点の対象関係を利用することにより、補正画像作成処理部６９は、第１象限乃至第４象限の代表点の座標を全て同様に算出する場合よりも、各代表点の座標を用意に算出することができる。
【０１６５】
以上のようにして座標を算出された代表点は、補正前後において、図２１に示されるように、その座標が変化する。
【０１６６】
図２１Ａに示されるように、補正前の撮像画像２３０に含まれる顔画像２３１において、黒点のように顔画像２３１の外側に偏って配置されている代表点は、補正処理により、図２１Ｂに示されるように移動し、補正後の撮像画像２４０に含まれる顔画像２４１において、顔画像２４１全体に均等に配置されるようになる。
【０１６７】
なお、図２１において代表点の配置例を説明したが、各代表点の配置関係は、図２１に示される以外のであってももちろんよく、代表点の数も図２１に示される数以外であってももちろんよい。また、以上においては、３次元顔モデルとして、顔の上半分と下半分に対して、互いに異なる長さｂの軸を持つ２つの惰球を用いており、それらの組み合わせで３次元顔モデルを構成するようにしている。この場合、補正画像作成処理部６９は、適宜、長さｂの値を変更して、代表点の位置を求める。さらに、図２０に示されるような顔画像を中心として定めた座標系が、図４に示されるように撮像画像の座標系とずれている場合、補正画像作成処理部６９は、座標を求めた代表点全体に対して回転、平行移動変換を施す。
【０１６８】
図１８に戻り、ステップＳ１１２およびステップＳ１１３の処理を行い、代表点の補正前後の座標を算出し、その代表点の、補正による座標の変化を確認した補正画像作成処理部６９は、ステップＳ１１４において、座標を算出した代表点から構成される各ポリゴンの内、未処理のポリゴンを１つ選択し、そのポリゴンを用いて画像変換を行い、そのポリゴンに対する画像変換が終了すると、ステップＳ１１５において、全てのポリゴンを処理したか否かを判定し、まだ未処理のポリゴンが存在すると判定した場合、ステップＳ１１４に処理を戻し、それ以降の処理を繰り返し、全てのポリゴンに対して同様に画像変換を行う。ステップＳ１１５において、全てのポリゴンを処理したと判定した場合、補正画像作成処理部６９は、レンダリング処理を終了し、図１５のステップＳ８４またはステップＳ８７に処理を戻す。
【０１６９】
すなわち、補正画像作成処理部６９は、座標を算出した代表点から構成される各ポリゴンに注目し画像に対して補正を行う。ステップＳ１１２およびステップＳ１１３の処理により、全ての代表点の補正前後の座標が算出されるので、全てのｉ＝０，・・・，Ｎ−２とｊ＝０，・・・，ｍ−２の組に対して、補正前、補正後の、画像上における、代表点により構成されるポリゴンが求まる。補正画像作成処理部６９は、そのように求められたポリゴン（Ｐorgi,j，Ｐorgi+1,j，Ｐorgi+1,j+1，Ｐorgi,j+1）、並びに、ポリゴン（Ｐnewi,j，Ｐnewi+1,j，Ｐnewi+1,j+1，Ｐnewi,j+1）の２つのポリゴンに対応する画像変換を行う。これにより、画像補正後にはポリゴン（Ｐnewi,j，Ｐnewi+1,j，Ｐnewi+1,j+1，Ｐnewi,j+1）の内側にあるすべての画素は、ポリゴン（Ｐorgi,j，Ｐorgi+1,j，Ｐorgi+1,j+1，Ｐorgi,j+1）の内側の補正前の画像が、マッピングされたものとなる。補正後の各画素が補正前にはどの位置であったかは、ポリゴンの各頂点を線形に補間することにより求めることが出来る。
【０１７０】
図２２は、ポリゴン内における画像変換における線形補間の様子の例を説明する図である。図２２において、点２５０（以下、点Ｐ１と称する）、点２５１（以下、点Ｐ２と称する）、点２５２（以下、点Ｐ３と称する）、点２５３（以下、点Ｐ４と称する）は、補正後の代表点であり、補正前の画像においては、それぞれに対して、点Ｐ１’、点Ｐ２’、点Ｐ３’、点Ｐ４’が対応する代表点であるとする。
【０１７１】
図２２において、点Ｐ１、点Ｐ２、点Ｐ３で構成される３角形の内側の画素２５４（以下、点Ｐと称する）の補正前の位置を算出する場合、補正画像作成処理部６９は、図２２に示されるように、点Ｐを通りｘ軸に平行な直線と、点Ｐ１および点Ｐ２を両端とする線分Ｐ１Ｐ２が交わる点２５５（以下、点Ｐ５と称する）の座標を、ｓ×Ｐ２＋（１−ｓ）×Ｐ１と表す。なお、この式において、「Ｐ１」は点Ｐ１（点２５０）の座標を示し、「Ｐ２」は、点Ｐ２（点２５１）の座標を示している。
【０１７２】
さらに、補正画像作成処理部６９は、図２２に示されるように、点Ｐを通りｘ軸に平行な直線と、点Ｐ１および点Ｐ３を両端とする線分Ｐ１Ｐ３が交わる点２５６（以下、点Ｐ６と称する）の座標を、ｔ×Ｐ３＋（１−ｔ）×Ｐ１と表す。なお、この式において、「Ｐ１」は点Ｐ１（点２５０）の座標を示し、「Ｐ３」は、点Ｐ３（点２５２）の座標を示している。
【０１７３】
さらに、点Ｐについて、Ｐ＝ｕ×Ｐ６＋（１−ｕ）×Ｐ５が成り立つとすると、補正画像作成処理部６９は、点Ｐを、以下に示される式（８）のように表す。
【０１７４】
【数８】
2005025703.tif 000010
【０１７５】
補正画像作成処理部６９は、以上における、変数ｓ、変数ｔ、並びに変数ｕを、各点の位置関係から算出する。また、補正画像作成処理部６９は、式（８）と同様に、補正後の画像上の点Ｐの、画像補正前の位置Ｐ’を、以下に示される式（９）を用いて算出する。
【０１７６】
【数９】
2005025703.tif 000011
【０１７７】
以上のような関係に基づいて、補正画像作成処理部６９は、画像補正後の点Ｐに、画像補正前の点Ｐ’の位置の画素値を代入することにより画像変換を行う。しかし、式（９）を用いて算出される点Ｐ’の座標値が必ずしも整数とはならない（すなわち、補正前の画像において、補正後の画像における各画素に対応する画素が存在するとは限らない）ので、補正画像作成処理部６９は、画素値を求める際に、Nearest Neighbor法、bi-linear法などの画像補間方法を用いる。
【０１７８】
補正画像作成処理部６９は、以上のような画像変換処理を、代表点として求めた点を結ぶポリゴンすべてに順次適用していき、それぞれのポリゴンの内側にあるすべての画素に対して前述の画像変換を施すことにより、最終的な補正画像を得る。
【０１７９】
以上のようにして、補正画像作成処理部６９は、代表点を用いて、３次元仮想モデルをレンダリング処理を行うので、容易に３次元顔モデルのレンダリングを行うことができ、これにより、DSP１６は、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。また、これにより、カムコーダ１は、より正確に、画像の歪みを軽減または強調させた補正画像を記録媒体に記録したり、ディスプレイに表示したりする等して、ユーザに提供することができる。
【０１８０】
図２３は、本発明を適用した画像変換の例を説明する図である。図２３Ａにおいて、撮像画像２６１は、補正前の撮像画像である。図２３Ｂにおいて、撮像画像２６２は、図２３Ａの撮像画像２６１に対して本発明を適用した画像変換処理を施し、仮想的にカメラ焦点を実際の撮像時よりも被写体から遠くに移動させるようにした合成画像である。
【０１８１】
図２３Ａに示される撮像画像２６１において、近接撮像された被写体の顔の遠近感が強調されており、図２３Ｂに示される撮像画像２６２の場合と比較して、被写体の顔の中央付近（すなわち、撮像画像２６１の中央付近）が拡大されたような不自然な画像となっている。これに対して、図２３Ｂに示される撮像画像２６２は、図２３Ａに示される撮像画像２６１（補正前のオリジナル画像）と比較して、遠近感が強調されることによる不自然さが軽減されている。
【０１８２】
図２３Ｃにおいて、撮像画像２６３は、図２３Ａの撮像画像２６１に対して本発明を適用した画像変換処理を施し、仮想的にカメラ焦点を実際の撮像時よりも被写体の近くに移動させるようにした合成画像である。図２３Ｃに示される撮像画像２６３は、撮像画像２６１（補正前のオリジナル画像）において表されている遠近感による歪みがさらに強調されている画像になっている。
【０１８３】
このように、本発明を適用したカムコーダ１は、本発明を適用した画像変換処理を行うことにより、画像を補正することで画像の歪みを無くす方向に補正することができるだけでなく、逆に、画像に対して、被写体の顔をわざと変形させて面白い顔にするなどの特殊効果を施し、画像の娯楽性を高めることもできる。
【０１８４】
以上においては、図１に示されるカムコーダ１において、撮像により得られた撮像画像に対して画像補正処理を行う場合について説明したが、これに限らず、例えば、カメラ付ディジタル携帯電話機やPDA等のより小型のモバイル機器であってももちろんよい。ただし、このような小型のモバイル機器の場合、カムコーダ１の場合と比較してCPUやDSP等の計算能力が低い場合がある。このような場合、画像補正の条件を限定したり、テーブル等を予め用意して利用したりすることにより、上述した計算処理の内、処理の負荷が大きい計算を省略するようにし、画像補正処理を高速に実行できるようにするのが望ましい。
【０１８５】
以下に、本発明を、そのような計算能力の低いモバイル機器に適用する場合の例について説明する。
【０１８６】
図２４は、本発明を適用したカメラ付ディジタル携帯電話機の構成例を示す図である。
【０１８７】
図２４に示されるように、カメラ付ディジタル携帯電話機３００は、各部を統括的に制御するようになされた主制御部３５０に対して、電源回路部３５１、操作入力制御部３５２、画像エンコーダ３５３、カメラインターフェース部３５４、LCD制御部３５５、画像デコーダ３５６、多重分離部３５７、記録再生部３６２、変復調回路部３５８及び音声コーデック３５９がバス３６０を介して互いに接続されて構成されている。
【０１８８】
電源回路部３５１は、ユーザの操作により終話及び電源キーがオン状態にされると、図示せぬバッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話機３００を動作可能な状態に起動する。
【０１８９】
カメラ付ディジタル携帯電話機３００は、CPU、ROM及びRAM等でなる主制御部３５０の制御に基づいて、音声通話モード時にマイクロフォン（マイク）３２１で集音した音声信号を音声コーデック３５９によってディジタル音声データに変換し、これを変復調回路部３５８でスペクトラム拡散処理し、送受信回路部３６２でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ３１４を介して送信する。
【０１９０】
またカメラ付ディジタル携帯電話機３００は、音声通話モード時にアンテナ３１４で受信した受信信号を増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部３５８でスペクトラム逆拡散処理し、音声コーデック３５９によってアナログ音声信号に変換した後、これを、スピーカ３１７を介して出力する。
【０１９１】
さらにカメラ付ディジタル携帯電話機３００は、データ通信モード時に電子メールを送信する場合、操作キー３１９及びジョグダイヤル３２２の操作によって入力された電子メールのテキストデータを、操作入力制御部３５２を介して主制御部３５０に送出する。
【０１９２】
主制御部３５０は、テキストデータを変復調回路部３５８でスペクトラム拡散処理し、送受信回路部３６２でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ３１４を介して図示せぬ基地局へ送信する。
【０１９３】
これに対してカメラ付ディジタル携帯電話機３００は、データ通信モード時に電子メールを受信する場合、アンテナ３１４を介して図示せぬ基地局から受信した受信信号を変復調回路部３５８でスペクトラム逆拡散処理して元のテキストデータを復元した後、LCD制御部３５５を介して液晶ディスプレイ３１８に電子メールとして表示する。
【０１９４】
この後カメラ付ディジタル携帯電話機３００は、ユーザの操作に応じて受信した電子メールを、記録再生部３６２を介してメモリスティック３２３に記録することも可能である。
【０１９５】
また、カメラ付ディジタル携帯電話機３００のバス３６０には、供給された画像データに対して、画像の歪みを軽減または強調させる画像補正処理等のディジタル処理を施すDSP３７１が接続されている。DSP３７１の内部の構成は、図２を参照して説明したカムコーダ１の場合と同様であり、図２を適用することができるので、その説明を省略する。
【０１９６】
カメラ付ディジタル携帯電話機３００は、データ通信モード時に画像データを送信する場合、CCDカメラ３１６で撮像された画像データを、カメラインターフェース部（カメラI/F部）３５４を介してDSP３７１に供給し、画像データに対してディジタル処理を行った後、その画像データを画像エンコーダ３５３に供給する。
【０１９７】
因みにカメラ付ディジタル携帯電話機３００は、画像データを送信しない場合には、CCDカメラ３１６で撮像した画像データをカメラインターフェース部３５４、DSP３７１、並びにLCD制御部３５５を介して液晶ディスプレイ３１８に直接表示する（画像エンコーダ３５３を介さずに、画像データをLCD制御部３５５に供給し、画像データに対応する画像を液晶ディスプレイに表示する）ことも可能である。
【０１９８】
画像エンコーダ３５３は、CCDカメラ３１６から供給された画像データを例えばMPEG（Moving Picture Experts Group ）２やMPEG４等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部３５７に送出する。
【０１９９】
このとき同時にカメラ付ディジタル携帯電話機３００は、CCDカメラ３１６で撮像中にマイクロフォン３２１で集音した音声を、音声コーデック３５９を介してディジタルの音声データとして多重分離部３５７に送出する。
【０２００】
多重分離部３５７は、画像エンコーダ３５３から供給された符号化画像データと音声コーデック３５９から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部３５８でスペクトラム拡散処理し、送受信回路部３６２でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ３１４を介して送信する。
【０２０１】
これに対してカメラ付ディジタル携帯電話機３００は、データ通信モード時に例えば簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナ３１４を介して図示せぬ基地局から受信した受信信号を変復調回路部３５８でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部３５７に送出する。
【０２０２】
多重分離部３５７は、多重化データを分離することにより符号化画像データと音声データとに分け、バス３６０を介して当該符号化画像データを画像デコーダ３５６に供給すると共に当該音声データを音声コーデック３５９に供給する。
【０２０３】
画像デコーダ３５６は、符号化画像データをMPEG２やMPEG４等の所定の符号化方式に対応した復号化方式でデコードすることにより再生動画像データを生成し、これを、LCD制御部３５５を介して液晶ディスプレイ３１８に供給し、これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが表示される。
【０２０４】
このとき同時に音声コーデック３５９は、音声データをアナログ音声信号に変換した後、これをスピーカ３１７に供給し、これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【０２０５】
この場合も電子メールの場合と同様にカメラ付ディジタル携帯電話機３００は、受信した簡易ホームページ等にリンクされたデータをユーザの操作により記録再生部３６２を介してメモリスティック３２３に記録することが可能である。
【０２０６】
かかる構成に加えてカメラ付ディジタル携帯電話機３００は、主制御部３５０またはDSP３７１のROMに第１の実施の形態と同様の画像補正処理を行うプログラム（図３）が格納されており、このプログラムに基づいて、DSP３７１において、画像の歪みを軽減または強調させる処理をし得るようになされている。
【０２０７】
以上のようなカメラ付ディジタル携帯電話機３００において、DSP３７１は、基本的に上述したカムコーダ１のDSP１６の場合と同様に画像の歪みを軽減または強調させる処理を行う。
【０２０８】
しかしながら、DSP３７１は、DSP１６と比較して、その処理能力が低い場合が多く、画像補正処理の負荷を軽減させるために、画像上の顔の中心の位置と、CCDカメラ３１６の光軸の位置が一致すると仮定して画像補正処理を行う。
【０２０９】
実際の光軸の位置は、画像中央に位置するが、カメラ付ディジタル携帯電話機３００の場合、CCDカメラ３１６の解像度等、撮像に関する性能が、図１のカムコーダ１と比較して低い場合が多く、撮像により得られる画像の画質が図１のカムコーダ１と比較して低い場合が多い。従って、このようなカメラ付ディジタル携帯電話機３００を用いた撮像の場合、ユーザは被写体を撮像範囲全体に収める（画像全体に被写体が撮像される）ように、より近接して撮像することが多く、そのような撮像環境下で得られた撮像画像においては、被写体の顔が画像全体に渡り大きく写っており、顔の中心はほぼ画像の中央に位置することが多い。このことに基づいて、DSP３７１は、上述したような仮定に従い画像補正処理を行う。これにより、DSP３７１は、画像補正処理の負荷を軽減させることができ、より容易に、画像の歪みを軽減または強調させる処理を行うことができる。
【０２１０】
なお、DSP３７１は、カムコーダ１の場合と同様に、被写体の顔を表す３次元顔モデルとして、図６に示される楕球を２つ組み合わせた形状の３次元顔モデルを用いる。
【０２１１】
また、計算処理能力が低いDSP３７１においては、処理の負荷が大きい、上述した式（５）および式（６）のようなsinやcosを利用した計算がボトルネックになる可能性がある。そこで、DSP３７１は、sinやcosなどの関数の計算は行わず、予め計算結果をテーブルとして用意し、それを参照することにより、計算処理を省略するとともに、同等の計算結果を得るようにする。このように複雑な計算の計算結果をテーブル化することにより、DSP３７１は、画像補正処理の高速化を実現させることができる。さらに、DSP３７１は、式（５）の計算により得られる変数ｋの値自体を予め算出してテーブル化し、そのテーブルを利用して式（５）の演算結果を近似することにより、更なる高速化を実現することができる。
【０２１２】
また、DSP３７１は、式（７）においても、上述した場合と同様に、sinやcosの関数を用いた計算の結果をテーブル化することにより高速化を実現することができる。
【０２１３】
以上のように、DSP３７１がテーブルを用いたり処理条件を制限したりするなどして、より高速に画像補正処理を行うので、本発明を適用したカメラ付ディジタル携帯電話機３００は、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。
【０２１４】
なお、上述したカメラ付ディジタル携帯電話機３００の場合のように、本発明は、撮像機能以外の機能を有する構成の情報処理装置においても適用することができる。従って、上述したカムコーダ１またはカメラ付ディジタル携帯電話機３００は、上述した以外の機能を有するようにしてももちろんよい。逆に、本発明は、画像処理機能を有する情報処理装置であれば適用することが可能であるので、撮像機能を有していない、例えば、パーソナルコンピュータ等の画像処理装置にも適用することができる。
【０２１５】
図２５は、本発明を適用したパーソナルコンピュータの構成例を示す図である。
【０２１６】
図２５において、パーソナルコンピュータ４００のCPU４０１は、ROM４０２に記憶されているプログラム、または記憶部４１３からRAM４０３にロードされたプログラムに従って各種の処理を実行する。RAM４０３にはまた、CPU４０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２１７】
CPU４０１、ROM４０２、およびRAM４０３は、バス４０５を介して相互に接続されている。このバス４０５にはまた、上述したDSP１６またはDSP３７１と同様に、供給された画像の歪みを軽減または強調させる処理を行う画像処理部４０４が接続されている。
【０２１８】
バス４０５には、さらに、入出力インタフェース４１０も接続されている。入出力インタフェース４１０には、キーボード、マウスなどよりなる入力部４１１、CRT、LCDなどよりなるディスプレイ、並びにスピーカなどよりなる出力部４１２、ハードディスクなどより構成される記憶部４１３、モデムなどより構成される通信部４１４が接続されている。通信部４１４は、インターネットを含むネットワークを介しての通信処理を行う。
【０２１９】
入出力インタフェース４１０にはまた、必要に応じてドライブ４１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア４２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部４１３にインストールされる。
【０２２０】
以上のようなパーソナルコンピュータ４００において、画像処理部４０４は、CPU４０１に制御される等して、RAM４０３、記憶部４１３、若しくはドライブ４１５に接続されたリムーバブルメディア４２１に記憶されている画像データ、または、通信部４１４を介して外部より取得した画像データを、バス４０５を介して取得し、その画像データに対して、上述したような画像の歪みを軽減または強調させる画像補正処理を行う。
【０２２１】
画像補正処理が終了すると画像処理部４０４は、CPU４０１に制御される等して、補正済みの画像データを、バス４０５を介して、RAM４０３、記憶部４１３、またはドライブ４１５に接続されたリムーバブルメディア４２１に供給して記憶させたり、出力部４１２に供給してディスプレイ等に表示させたり、通信部４１４に供給してパーソナルコンピュータ４００の外部に供給させたりする。
【０２２２】
このように画像処理部４０４は、上述したDSP１６またはDSP３７１と同様に、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。これにより、パーソナルコンピュータ４００は、より正確に、画像の歪みを軽減または強調させた補正画像を記録媒体に記録したり、ディスプレイに表示したりする等して、ユーザに提供することができる。
【０２２３】
以上に説明したように、本発明を適用した各種の情報処理装置は、顔検出処理により被写体の顔の位置を検出することで、画像から「近接撮影により生ずる遠近感が強調される歪み」を正確に除去あるいは強調することができる。
【０２２４】
また、本発明を適用した各種の情報処理装置は、撮影された被写体の顔の画像から３次元顔モデルを再構築しているので、補正処理対象の画像に対して、単なる２次元上での画像変形では得られない正確な補正処理を行うことができる。
【０２２５】
さらに、本発明を適用した各種の情報処理装置は、３次元顔モデルとして、楕球を２つ組み合わせた形状を用いており、「複雑でなく、かつ正確な顔のモデル」を構成するので、複雑な計算を必要とせずに、容易に、より正確な補正処理を行うことができる。
【０２２６】
また、本発明を適用した各種の情報処理装置は、３次元顔モデルの、実際に撮像により得られた画像においては見えなかった部分（画像に含まれていない部分）を削除して、見えている部分に対してのみ変形処理を行うので、補正後の画像において破綻をきたすことがなく、より正確な補正処理を行うことができる。
【０２２７】
なお、本発明を適用した各種の情報処理装置は、例えば、顔検出処理により被写体の顔の位置を検出し、その顔の位置を画像の中心と想定し、２次元上での画像変形により顔画像を変形するようにしてもよい。また、例えば、顔を撮影する場合、ほとんどの場合が中央に顔が撮影されるので、顔検出を行わずに、顔は中心にあると仮定して、撮影された被写体の顔の画像から３次元顔モデルを再構築し、画像より歪みの除去あるいは強調を行うようにしても良い。
【０２２８】
以上に説明したように、本発明を適用した各種の情報処理装置は、人物の顔などを近接撮像して得られた画像における、カメラに近い鼻などが大きく映ってしまうような不自然さを、解消することができる。また逆に、より強調して、歪みを大きくするように画像を合成することもできる。さらに、本発明を適用した各種の情報処理装置は、変換モデルとして、３次元仮想空間を想定し、カメラや被写体の位置を推定し、その後それらの位置関係を変えることにより、正確な変換を行うことができる。すなわち、本発明を適用した各種の情報処理装置は、あたかも被写体から見たカメラの位置を、遠くまたは近くに動かして撮影し直したかのような画像を合成することができる。
【０２２９】
なお、本発明を適用した各種の情報処理装置は、静止画像データに対しても、上述した動画像データに対する場合と同様の画像補正処理を行うことができる。
【０２３０】
また、以上においては、画像（撮像画像）に含まれる被写体の顔の部分を検出し、その顔画像について補正処理を施す場合について説明したが、補正の対象とする画像は、被写体の顔以外であってもよく、被写体の目、手、指、胴体等、検出可能な画像であれば何でもよい。また、被写体としては、人物や動物以外であってもよく、植物や建造物等、どのような被写体であってもよい。
【０２３１】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２３２】
この記録媒体は、図１、図２４、または図２５に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア５１、メモリカード３２３、若しくはリムーバブルメディア４２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM４２、記憶部４５に含まれるハードディスク、主制御部３５１に含まれるROM、ROM４０２、または、記憶部４１３に含まれるハードディスクなどで構成される。
【０２３３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２３４】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２３５】
【図１】本発明を適用したカムコーダの構成例を示すブロック図である。
【図２】図１に示されるDSPの詳細な構成例を示すブロック図である。
【図３】画像補正処理を説明するフローチャートである。
【図４】撮像画像の様子の例を示す図である。
【図５】図３のステップＳ４において実行される３次元顔モデル位置算出処理の詳細を説明するフローチャートである。
【図６】３次元顔モデルの例を示す図である。
【図７】３次元仮想空間の例を示す図である。
【図８】３次元顔モデルの位置を特定する様子の例を説明する図である。
【図９】図５のステップＳ２５において実行される距離算出処理の詳細を説明するフローチャートである。
【図１０】３次元顔モデルの距離を算出する様子の例を説明する図である。
【図１１】図３のステップＳ５において実行されるテクスチャ設定処理の詳細を説明するフローチャートである。
【図１２】テクスチャを設定する様子の例を説明する図である。
【図１３】３次元顔モデルの必要な部分を特定する様子の例を説明する図である。
【図１４】３次元顔モデルの不要な部分を削除した例を示す図である。
【図１５】図３のステップＳ６において実行される補正画像作成処理の詳細を説明するフローチャートである。
【図１６】仮想スクリーンサイズを調整する様子の例を示す図である。
【図１７】カメラ焦点をｘｙ平面上で移動させる様子の例を示す図である。
【図１８】図１５のステップＳ８３において実行されるレンダリング処理の詳細を説明するフローチャートである。
【図１９】代表点の座標を求める様子の例を説明する図である。
【図２０】代表点を決定する様子の例を説明する図である。
【図２１】代表点の座標の変化の例を示す図である。
【図２２】ポリゴン内における画像変換の様子の例を説明する図である。
【図２３】画像変換の例を説明する図である。
【図２４】本発明を適用したカメラ付ディジタル携帯電話機の構成例を示す図である。
【図２５】本発明を適用したパーソナルコンピュータの構成例を示す図である。
【符号の説明】
【０２３６】
１  カムコーダ，  １１  レンズ，  １２  絞り，  １３  CCD，  １４  前処理回路，  １５  A/D変換部，  １６  DSP，  １７  コーデック部，  １８  画像用記憶部，  １９  D/A変換部，  ２０  ビデオエンコーダ，  ２１  ビデオモニタ，  ６１  画像データ入力部，  ６２  内部バス，  ６３  保持制御部，  ６５  設定値取得部，  ６６  顔検出処理部，  ６７  ３次元顔モデル位置算出処理部，  ６８  テクスチャ設定処理部，  ６９  補正画像作成処理部，  ７０  画像データ出力部，  ８１  画像データ保持部，  ８２  設定値保持部，  ８３  仮想データ保持部，  １００  顔画像，  １２０  ３次元顔モデル，  １４０  カメラ焦点，  １４２  仮想スクリーン，  ３００  カメラ付ディジタル携帯電話機，  ３１６  CCDカメラ，  ３７１  DSP，  ４００  パーソナルコンピュータ，  ４０４  画像処理部
【図１】
2005025703.tif 000012
【図２】
2005025703.tif 000013
【図３】
2005025703.tif 000014
【図４】
2005025703.tif 000015
【図５】
2005025703.tif 000016
【図６】
2005025703.tif 000017
【図７】
2005025703.tif 000018
【図８】
2005025703.tif 000019
【図９】
2005025703.tif 000020
【図１０】
2005025703.tif 000021
【図１１】
2005025703.tif 000022
【図１２】
2005025703.tif 000023
【図１３】
2005025703.tif 000024
【図１４】
2005025703.tif 000025
【図１５】
2005025703.tif 000026
【図１６】
2005025703.tif 000027
【図１７】
2005025703.tif 000028
【図１８】
2005025703.tif 000029
【図１９】
2005025703.tif 000030
【図２０】
2005025703.tif 000031
【図２１】
2005025703.tif 000032
【図２２】
2005025703.tif 000033
【図２３】
2005025703.tif 000034
【図２４】
2005025703.tif 000035
【図２５】
2005025703.tif 000036