JP2005025703A - 画像処理方法および装置、並びに画像処理プログラム - Google Patents
画像処理方法および装置、並びに画像処理プログラム Download PDFInfo
- Publication number
- JP2005025703A JP2005025703A JP2003271023A JP2003271023A JP2005025703A JP 2005025703 A JP2005025703 A JP 2005025703A JP 2003271023 A JP2003271023 A JP 2003271023A JP 2003271023 A JP2003271023 A JP 2003271023A JP 2005025703 A JP2005025703 A JP 2005025703A
- Authority
- JP
- Japan
- Prior art keywords
- image
- subject
- captured
- processing
- image data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Image Processing (AREA)
- Image Generation (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
【課題】画像の歪みを、より正確に、軽減または強調させることができるようにする。
【解決手段】画像データ入力部61は、入力された画像データを画像データ保持部81に保持させる。顔検出処理部66は、画像データ保持部81に保持されている画像データより被写体の顔画像を特定する。3次元顔モデル位置算出処理部67は、その画像データの顔画像の歪みを補正する為に用いられる3次元顔モデルを生成し、3次元仮想空間において、カムコーダとその3次元顔モデルの位置関係を算出し、テクスチャ設定処理部68は、3次元顔モデルに対するテクスチャとして、被写体の顔画像を設定する。補正画像作成処理部69は、3次元顔モデルや3次元仮想空間を用いて画像データの顔画像の歪みを補正する。画像データ出力部70は、その補正後の画像データを取得し、DSP16の外部に出力する。本発明は、カムコーダに適用することができる。
【選択図】図2
【解決手段】画像データ入力部61は、入力された画像データを画像データ保持部81に保持させる。顔検出処理部66は、画像データ保持部81に保持されている画像データより被写体の顔画像を特定する。3次元顔モデル位置算出処理部67は、その画像データの顔画像の歪みを補正する為に用いられる3次元顔モデルを生成し、3次元仮想空間において、カムコーダとその3次元顔モデルの位置関係を算出し、テクスチャ設定処理部68は、3次元顔モデルに対するテクスチャとして、被写体の顔画像を設定する。補正画像作成処理部69は、3次元顔モデルや3次元仮想空間を用いて画像データの顔画像の歪みを補正する。画像データ出力部70は、その補正後の画像データを取得し、DSP16の外部に出力する。本発明は、カムコーダに適用することができる。
【選択図】図2
Description
本発明は、画像処理方法および装置、並びに画像処理プログラムに関し、特に、画像の歪みを、より正確に、軽減または強調させることができる画像処理方法および装置、並びに画像処理プログラムに関する。
近年、ディジタルスチルカメラやディジタルビデオカメラ等の撮像して得られた画像をディジタルデータとして記録する撮像装置が普及している。特に、最近は、技術の向上とともに、より携帯性や利便性を向上させるために、撮像装置の小型化や多機能化が進んでいる。また、このような撮像装置は、その小型化に伴い、単に撮像機能を有するだけでなく、例えば、携帯型電話機、PDA、またはパーソナルコンピュータ等、その他の情報処理装置と一体化され、撮像機能以外の機能も有する複合装置として構成される場合も多くなってきた。
このような複合装置においては、装置全体としての小型化も要求されるため、撮像機能を実現する撮像ユニットは、更なる小型化が求められる。従って、このような撮像ユニットは、撮像機能だけを有するディジタルスチルカメラやディジタルビデオカメラ等の場合と比較して、小さなレンズが用いられたり、得られる画像の解像度を低くしたり、ズーム機能を省略したり等、機能を制限することにより小型化を実現する場合が多い。
このような撮像ユニットを有する複合装置で被写体を撮像する場合、撮像機能だけを有するディジタルスチルカメラやディジタルビデオカメラ等の場合と比較して撮像により得られる画像のサイズが小さかったり、ズーム機能も無かったりして、被写体が装置より遠い位置に存在すると、被写体の画像が小さくなってしまう場合があり、ユーザは、被写体を近距離より撮像する機会が多くなることがある。
例えば、このような複合装置で被写体を近距離より撮像する場合のように、撮像装置で被写体(人物の顔など)を近接撮影した場合、その被写体の鼻など、顔の周辺部などと比較してカメラ(レンズ)に近い部分が、その顔の周辺部などのカメラ(レンズ)から比較的近くない部分より大きく写ってしまい、遠近感が強調されたような画像が得られる。この現象は、レンズの特性上、予測できるものであり、レンズの歪みによって生ずる歪曲収差とは異なるものである。また、個の現象は、上述したようなディジタルスチルカメラやディジタルビデオカメラ等の撮像装置だけでなく、銀塩式のカメラ等でも発生する。しかしながら、このような状況で撮像して得られた画像は、ユーザにとっては、鼻などが不用に実際より大きく写ってしまうため、好ましい画像とはいえない場合が多い。これに対して、撮像画像の画素をその位置に応じて拡大または縮小させることにより、撮像画像に生じる遠近感が誇張される歪みを補正する方法がある(例えば、特許文献1参照)。
特開2002-247446号公報(第7−10ページ、図7,図8,図12,図14,図15)
しかしながら、以上のような方法においては、撮像により得られた撮像画像、すなわち、2次元の画像上での変換を行うだけであり、実際の被写体のレンズからの距離に基づいた補正ではないので、正確な補正をすることが出来なかった。
また、このような撮像装置において、上述したように画像を補正することで画像の歪みを無くす方向に補正するだけでなく、逆に、撮影画像に含まれる被写体の顔をわざと変形させて面白い顔にするなどの撮像画像に特殊効果を施し、画像の娯楽性を高めるようにすることも考えられるが、以上の方法においては、補正する方向とは逆に、遠近感を強調するようデフォルメすることについて、その具体的な実現方法が不明であった。
さらに、以上の方法においては、撮像画像に含まれる被写体の顔は、その撮像画像の中心に写っていることを前提としていたが、被写体の顔は撮像画像の中心にあるとは限らず、仮に被写体の顔が画像の中心に写っていない場合、その補正は、さらに、不正確なものとなる場合があるという課題があった。
また、以上のような方法においては、画像を変形させるために一定のパターンのみしか用いていない。したがって、被写体の顔の形の個人差に対応することはできなかった。同様の理由で、顔の向きが傾いている場合に、正しい補正を行うことが出来ないという課題があった。
本発明はこのような状況に鑑みてなされたものであり、画像の歪みを、より正確に、軽減または強調させることができるようにするものである。
本発明の第1の画像処理方法は、画像データに対応する画像より、画像の一部分の画像であり、補正の対象とされる部分画像を検出する検出ステップと、画像データに対応する画像に含まれる、検出ステップの処理により検出された部分画像の変形を行う変形ステップとを含むことを特徴とする。
前記変形ステップは、さらに、撮像手段と部分画像に対応する被写体との距離を検出する、距離検出ステップと、撮影時に距離を変化させた場合に生じる画像変化に対応する変形を部分画像に対して施す、距離変換ステップとを含むことができる。
前記画像データに対応する画像は、被写体を撮像して得られた撮像画像であり、部分画像は、被写体の顔の画像であることができる。
前記画像データに対応する画像は、被写体に近接した位置より被写体を撮像して得られた画像であり、変形ステップは、被写体に近接した位置より被写体を撮像したために部分画像に発生した、被写体の立体的形状による画像の歪みを補正するように、部分画像の変形を行うことができる。
前記画像データに対応する画像は、被写体に近接した位置より被写体を撮像して得られた画像であり、変形ステップは、被写体に近接した位置より被写体を撮像したために部分画像に発生した、被写体の立体的形状による画像の歪みを強調するように、部分画像の変形を行うことができる。
本発明の第1の画像処理装置は、画像データに対応する画像より、画像の一部分の画像であり、補正の対象とされる部分画像を検出する検出手段と、画像データに対応する画像に含まれる、検出手段により検出された部分画像の変形を行う変形手段とを備えることを特徴とする。
本発明の第1の画像処理プログラムは、コンピュータを、画像データに対応する画像より画像の一部分の画像であり、補正の対象とされる部分画像を検出する検出手段として、機能させるモジュールと、コンピュータを、画像データに対応する画像に含まれる検出ステップの処理により検出された部分画像の変形を行う変形手段として、機能させるモジュールとを含むことを特徴とする。
本発明の第2の画像処理方法は、撮像画像データに対して、画像を補正する処理を行う画像処理装置の画像処理方法であって、撮像画像データに対応する第1の撮像画像より、第1の撮像画像の被写体に対応する3次元モデルを作成する作成ステップと、第1の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出する算出ステップと、作成ステップの処理により作成された3次元モデルを用いて、算出ステップの処理により算出された位置関係と異なる位置から被写体を撮像する際に得られる第2の撮像画像を生成する生成ステップとを含むことを特徴とする。
前記被写体は、顔であるようにすることができる。
前記3次元モデルは、1つの楕球により構成されるモデルであるようにすることができる。
前記3次元モデルは、複数の楕球の一部分をそれぞれ組み合わせた構成のモデルであることができる。
前記作成ステップの処理により作成された3次元モデルより、第1の画像に含まれていない部分を削除する削除ステップをさらに含み、生成ステップは、削除ステップにより、第1の画像に含まれていない部分が削除された3次元モデルが投影された画像を第2の撮像画像として生成することができる。
前記第1の撮像画像に対する被写体の画像の割合と、生成ステップの処理により生成される第2の撮像画像に対する3次元モデルが投影された画像の割合とが一致するように、第2の撮像画像の画像サイズを調整する画像サイズ調整ステップをさらに含むことができる。
前記第1の撮像画像より被写体の画像である部分を検出する検出ステップをさらに含み、算出ステップは、検出ステップの処理により検出された被写体の画像である部分の大きさ、並びに、第1の撮像画像が得られた撮像処理において用いられたレンズの画角に基づいて、第1の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出することができる。
本発明の第2の画像処理装置は、撮像画像データに対応する第1の撮像画像より、第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段と、第1の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出する算出手段と、作成手段により作成された3次元モデルを用いて、算出手段により算出された位置関係と異なる位置から被写体を撮像する際に得られる第2の撮像画像を生成する生成手段とを備えることを特徴とする。
本発明の第2の画像処理プログラムは、コンピュータを、撮像画像データに対応する第1の撮像画像より、第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段として、機能させるモジュールと、コンピュータを、第1の撮像画像の、被写体と、被写体を撮像した位置との位置関係を算出する算出手段として、機能させるモジュールと、コンピュータを、作成ステップの処理により作成された3次元モデルを用いて、算出ステップの処理により算出された位置関係と異なる位置から被写体を撮像する際に得られる第2の撮像画像を生成する生成手段として、機能させるモジュールとを含むことを特徴とする。
本発明の第1の画像処理方法および装置、並びに画像処理プログラムにおいては、画像データに対応する画像より、画像の一部分の画像であり、補正の対象とされる部分画像が検出され、画像データに対応する画像に含まれる、検出された部分画像の変形が行われる。
本発明の第2の画像処理方法および装置、並びに画像処理プログラムにおいては、撮像画像データに対応する第1の撮像画像より、第1の撮像画像の被写体に対応する3次元モデルが作成され、第1の撮像画像の、被写体と、被写体を撮像した位置との位置関係が算出され、作成された3次元モデルを用いて、算出された位置関係と異なる位置から被写体を撮像する際に得られる第2の撮像画像が生成される。
本発明によれば、画像を処理することができる。特に、画像の歪みを、より正確に、軽減または強調させることができる。
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定したりするものではない。
[請求項1] 画像データに対して、画像を補正する処理を行う画像処理装置(例えば、図1のカムコーダ1)の画像処理方法であって、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出ステップ(例えば、図3のステップS3)と、
前記画像データに対応する画像に含まれる、前記検出ステップの処理により検出された前記部分画像の変形を行う変形ステップ(例えば、図3のステップS4乃至ステップS7)と
を含むことを特徴とする画像処理方法。
[請求項2] 前記変形ステップは、さらに、
撮像手段と前記部分画像に対応する被写体との距離を検出する、距離検出ステップ(例えば、図3のステップS4)と、
撮影時に前記距離を変化させた場合に生じる画像変化に対応する変形を前記部分画像に対して施す、距離変換ステップ(例えば、図3のステップS5乃至ステップS7)と
を含むことを特徴とする画像処理方法。
[請求項3] 前記画像データに対応する画像は、被写体を撮像して得られた撮像画像であり、
前記部分画像は、前記被写体の顔の画像(例えば、図4の顔画像100)である
ことを特徴とする請求項1に記載の画像処理方法。
[請求項4] 前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを補正するように、前記部分画像の変形を行う
ことを特徴とする請求項1に記載の画像処理方法。
[請求項5] 前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを強調するように、前記部分画像の変形を行う
ことを特徴とする請求項1に記載の画像処理方法。
[請求項6] 画像データに対して、画像を補正する処理を行う画像処理装置(例えば、図1のカムコーダ)において、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出手段(例えば、図2の顔検出処理部66)と、
前記画像データに対応する画像に含まれる、前記検出手段により検出された前記部分画像の変形を行う変形手段(例えば、図2の3次元顔モデル位置算出処理部67乃至画像データ出力部70)と
を備えることを特徴とする画像処理装置。
[請求項7] 画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記画像データに対応する画像より前記画像の一部分の画像であり前記補正の対象とされる部分画像を検出する検出手段として、機能させるモジュールと(例えば、図3のステップS3)、
コンピュータを、前記画像データに対応する画像に含まれる前記検出ステップの処理により検出された前記部分画像の変形を行う変形手段として、機能させるモジュールと(例えば、図3のステップS4乃至ステップS7)、
を含むことを特徴とする画像処理プログラム。
[請求項8] 撮像画像データに対して、画像を補正する処理を行う画像処理装置(例えば、図1のカムコーダ)の画像処理方法であって、
前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成ステップ(例えば、図5のステップS21)と、
前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出ステップ(例えば、図5のステップS25)と、
前記作成ステップの処理により作成された前記3次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成ステップ(例えば,図3のステップS5乃至ステップS7)と
を含むことを特徴とする画像処理方法。
[請求項9] 前記被写体は、顔である
ことを特徴とする請求項8に記載の画像処理方法。
[請求項10] 前記3次元モデルは、1つの楕球により構成されるモデルである
ことを特徴とする請求項8に記載の画像処理方法。
[請求項11] 前記3次元モデルは、複数の楕球の一部分をそれぞれ組み合わせた構成のモデルである
ことを特徴とする請求項8に記載の画像処理方法。
[請求項12] 前記作成ステップの処理により作成された前記3次元モデルより、前記第1の画像に含まれていない部分(例えば、図12の部分160)を削除する削除ステップ(例えば、図11のステップS62)をさらに含み、
前記生成ステップは、前記削除ステップにより、前記第1の画像に含まれていない部分が削除された前記3次元モデルが投影された画像を前記第2の撮像画像として生成する
ことを特徴とする請求項8に記載の画像処理方法。
[請求項13] 前記第1の撮像画像に対する前記被写体の画像の割合と、前記生成ステップの処理により生成される第2の撮像画像に対する前記3次元モデルが投影された画像の割合とが一致するように、前記第2の撮像画像の画像サイズを調整する画像サイズ調整ステップ(例えば、図15のステップS85)をさらに含む
ことを特徴とする請求項8に記載の画像処理方法。
[請求項14] 前記第1の撮像画像より前記被写体の画像である部分を検出する検出ステップ(例えば、図3のステップS3)をさらに含み、
前記算出ステップは、前記検出ステップの処理により検出された前記被写体の画像である部分の大きさ、並びに、前記第1の撮像画像が得られた撮像処理において用いられたレンズの画角に基づいて、前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する
ことを特徴とする請求項8に記載の画像処理方法。
[請求項15] 撮像画像データに対して、画像を補正する処理を行う画像処理装置において、
前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段(例えば、図5のステップS21の処理を実行する図2の3次元顔モデル位置算出処理部67)と、
前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段(例えば、図5のステップS26の処理を実行する図2の3次元顔モデル位置算出処理部67)と、
前記作成手段により作成された前記3次元モデルを用いて、前記算出手段により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成手段(例えば、図2のテクスチャ設定処理部68乃至画像データ出力部70)と
を備えることを特徴とする画像処理装置。
[請求項16] 撮像画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段として、機能させるモジュールと(例えば、図5のステップS21)、
コンピュータを、前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段として、機能させるモジュールと(例えば、図5のステップS25)、
コンピュータを、前記作成ステップの処理により作成された前記3次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成手段として、機能させるモジュールと(例えば、図3のステップS5乃至ステップS7)
を含むことを特徴とする画像処理プログラム。
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出ステップ(例えば、図3のステップS3)と、
前記画像データに対応する画像に含まれる、前記検出ステップの処理により検出された前記部分画像の変形を行う変形ステップ(例えば、図3のステップS4乃至ステップS7)と
を含むことを特徴とする画像処理方法。
[請求項2] 前記変形ステップは、さらに、
撮像手段と前記部分画像に対応する被写体との距離を検出する、距離検出ステップ(例えば、図3のステップS4)と、
撮影時に前記距離を変化させた場合に生じる画像変化に対応する変形を前記部分画像に対して施す、距離変換ステップ(例えば、図3のステップS5乃至ステップS7)と
を含むことを特徴とする画像処理方法。
[請求項3] 前記画像データに対応する画像は、被写体を撮像して得られた撮像画像であり、
前記部分画像は、前記被写体の顔の画像(例えば、図4の顔画像100)である
ことを特徴とする請求項1に記載の画像処理方法。
[請求項4] 前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを補正するように、前記部分画像の変形を行う
ことを特徴とする請求項1に記載の画像処理方法。
[請求項5] 前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを強調するように、前記部分画像の変形を行う
ことを特徴とする請求項1に記載の画像処理方法。
[請求項6] 画像データに対して、画像を補正する処理を行う画像処理装置(例えば、図1のカムコーダ)において、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出手段(例えば、図2の顔検出処理部66)と、
前記画像データに対応する画像に含まれる、前記検出手段により検出された前記部分画像の変形を行う変形手段(例えば、図2の3次元顔モデル位置算出処理部67乃至画像データ出力部70)と
を備えることを特徴とする画像処理装置。
[請求項7] 画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記画像データに対応する画像より前記画像の一部分の画像であり前記補正の対象とされる部分画像を検出する検出手段として、機能させるモジュールと(例えば、図3のステップS3)、
コンピュータを、前記画像データに対応する画像に含まれる前記検出ステップの処理により検出された前記部分画像の変形を行う変形手段として、機能させるモジュールと(例えば、図3のステップS4乃至ステップS7)、
を含むことを特徴とする画像処理プログラム。
[請求項8] 撮像画像データに対して、画像を補正する処理を行う画像処理装置(例えば、図1のカムコーダ)の画像処理方法であって、
前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成ステップ(例えば、図5のステップS21)と、
前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出ステップ(例えば、図5のステップS25)と、
前記作成ステップの処理により作成された前記3次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成ステップ(例えば,図3のステップS5乃至ステップS7)と
を含むことを特徴とする画像処理方法。
[請求項9] 前記被写体は、顔である
ことを特徴とする請求項8に記載の画像処理方法。
[請求項10] 前記3次元モデルは、1つの楕球により構成されるモデルである
ことを特徴とする請求項8に記載の画像処理方法。
[請求項11] 前記3次元モデルは、複数の楕球の一部分をそれぞれ組み合わせた構成のモデルである
ことを特徴とする請求項8に記載の画像処理方法。
[請求項12] 前記作成ステップの処理により作成された前記3次元モデルより、前記第1の画像に含まれていない部分(例えば、図12の部分160)を削除する削除ステップ(例えば、図11のステップS62)をさらに含み、
前記生成ステップは、前記削除ステップにより、前記第1の画像に含まれていない部分が削除された前記3次元モデルが投影された画像を前記第2の撮像画像として生成する
ことを特徴とする請求項8に記載の画像処理方法。
[請求項13] 前記第1の撮像画像に対する前記被写体の画像の割合と、前記生成ステップの処理により生成される第2の撮像画像に対する前記3次元モデルが投影された画像の割合とが一致するように、前記第2の撮像画像の画像サイズを調整する画像サイズ調整ステップ(例えば、図15のステップS85)をさらに含む
ことを特徴とする請求項8に記載の画像処理方法。
[請求項14] 前記第1の撮像画像より前記被写体の画像である部分を検出する検出ステップ(例えば、図3のステップS3)をさらに含み、
前記算出ステップは、前記検出ステップの処理により検出された前記被写体の画像である部分の大きさ、並びに、前記第1の撮像画像が得られた撮像処理において用いられたレンズの画角に基づいて、前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する
ことを特徴とする請求項8に記載の画像処理方法。
[請求項15] 撮像画像データに対して、画像を補正する処理を行う画像処理装置において、
前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段(例えば、図5のステップS21の処理を実行する図2の3次元顔モデル位置算出処理部67)と、
前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段(例えば、図5のステップS26の処理を実行する図2の3次元顔モデル位置算出処理部67)と、
前記作成手段により作成された前記3次元モデルを用いて、前記算出手段により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成手段(例えば、図2のテクスチャ設定処理部68乃至画像データ出力部70)と
を備えることを特徴とする画像処理装置。
[請求項16] 撮像画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段として、機能させるモジュールと(例えば、図5のステップS21)、
コンピュータを、前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段として、機能させるモジュールと(例えば、図5のステップS25)、
コンピュータを、前記作成ステップの処理により作成された前記3次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成手段として、機能させるモジュールと(例えば、図3のステップS5乃至ステップS7)
を含むことを特徴とする画像処理プログラム。
以下に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明を適用したカムコーダの構成例を示すブロック図である。図1に示されるように、カムコーダ1は、被写体を撮像し、得られた画像情報(動画像または静止画像)を記録媒体に記録したり、その画像情報に対応する画像をディスプレイに表示したりする撮像装置であり、レンズ11および絞り12を介して入力された光を電気信号に変換する固体撮像素子であるCCD(Charge Coupled Device)13を有している。
CCD13は、複数のフォトダイオード(光電素子)が平面(マトリクス)状に配置された電荷結合素子であり、図示せぬ被写体からの光を電気信号に光電変換し、出力する。なお、CCDの代わりに、CMOS(Complementary Metal Oxide Semiconductor:相補型金属酸化物半導体)を利用したイメージセンサであるCMOSセンサを用いるようにしても良いし、その他の個体撮像素子を用いるようにしても良い。前処理回路14は、図示せぬCDS回路(Correlated Double Sampling circuit)やAGC回路(Automatic Gain Control circuit)等により構成され、例えば、CDS回路において入力された画像信号のノイズ成分を除去したり、AGC回路においてその画像信号のゲインを調整したりし、その処理済の信号をA/D(Analog / Digital)変換部15に供給する。A/D変換部15は、前処理回路14より供給された画像信号(アナログ信号)をディジタル信号に変換し、画像データとしてDSP(Digital Signal Processor)16に出力する。
DSP16は、信号処理用プロセッサと画像用RAMを持つブロックで、信号処理用プロセッサが画像用RAMに格納された画像データに対して、例えば、画像データに対応する画像の歪みを抑制する画像補正処理等の、予めプログラムされた画像処理を行うことができるようになっている。DSP16の構成例の詳細については後述する。DSP16は、画像処理を行った画像データを、コーデック部17に供給する。
なお、画像データに対応する画像とは、電気信号であるその画像データに基づいて、ディスプレイにおいて表示される画像のことであり、その画像データが意味するもの(画像データの内容)である。従って、例えば、画像の内容は、すなわち画像データの内容であり、画像を補正する画像補正処理は、画像データに対して行われる。以下において、このように画像と画像データを特に分けて説明する必要の無い場合、説明を簡略化するために、画像および画像データが同じ物を示すものとして説明する。すなわち、例えば、「画像を補正する」ことは、「画像データに対して画像補正処理を行う」ことと同じことを示すものとする。
コーデック部17は、DSP16より供給された画像データに対して、予め定められた所定の方式による符号化処理を行い、符号化された画像データを画像用記憶部18に供給する。画像用記憶部18は、RAMやフラッシュメモリ等の半導体メモリ、ハードディスク等の磁気記録媒体、または、光磁気ディスクや光ディスク等の他の記録媒体等で構成され、コーデック部17より供給された画像データを記憶する。
また、DSP16は、コーデック部17だけでなく、D/A変換部19にも画像処理を行った画像データを供給する。D/A変換部19は、D/A変換器等により構成され、DSPより供給されたディジタル信号である画像データをアナログ信号に変換し、ビデオエンコーダ20に供給する。ビデオエンコーダ20は、取得したアナログ信号をビデオ信号に変換し、ビデオモニタ21に供給する。ビデオモニタ21は、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)のディスプレイ等により構成され、ビデオエンコーダ20より供給されたビデオ信号に対応する画像を表示する。このビデオモニタ21は、カムコーダ1のファインダの代わりとして、ユーザにより使用される。すなわち、ユーザは、ビデオモニタ21に表示された画像を確認しながら撮像処理を行うことができる。
DSP16、コーデック部17、並びに画像用記憶部18は、バス30を介して、カムコーダ1の各部を制御するCPU41等と接続されており、CPU41にバス30を介して制御されたり、CPU41にデータを供給したりする。
CPU41は、ROM42に記憶されているプログラム、または、ドライブ47に装着されたリムーバブルメディア51や、通信部357を介してカムコーダ1の外部からRAM43にロードされたプログラムに従って各部を制御したり、各種の処理を実行したりする。RAM43にはまた、CPU41が各種の処理を実行する上において必要なデータなども適宜記憶される。RAM43には、また、各部が処理する画像情報等も一時的に保持される。
また、CPU41は、入力部56より入力されたユーザからの指示情報や、DSP16より供給された制御情報、または、各種のプログラムを実行することにより得られた情報等に基づいて、バス30を介して、タイミングジェネレータ(TG)31を制御する。
タイミングジェネレータ31は、動作タイミングを決定する制御信号を出力する回路であり、タイミング制御信号を供給することにより、CCD13、前処理回路14、A/D変換部15、およびDSP16の各部の動作タイミングを制御する。
バス30には、また、キーボード、マウスなどよりなる入力部44、ハードディスクなどより構成される記憶部45、USB(Universal Serial Bus)、IEEE(Institute of Electrical and Electronic Engineers)1394、Ethernet(登録商標)等の有線通信インタフェースや、IEEE802.11xやブルートゥース等の無線通信インタフェース等より構成される通信部46が接続されている。通信部46は、インターネットを含む有線または無線のネットワーク等を介した他の装置との通信処理を制御する。
バス30にはまた、必要に応じてドライブ47が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア51が適宜装着され、それらから読み出されたコンピュータプログラムやデータが、必要に応じて記憶部45にインストールされる。また、CPU41は、ユーザの指示や、実行しているプログラム等に基づいて、例えば、画像用記憶部18に記憶されている画像データや、DSP16やコーデック部17より供給された画像データ、RAM43や記憶部45に記憶されている画像データ、または通信部46を介して取得した画像データ等を、ドライブ47に装着されたリムーバブルメディア51に記憶する。
次に、図1のDSP16の内部の構成例について説明する。図2は、DSPの内部の詳細な構成例を示すブロック図である。
上述したように、DSP16は、供給された画像データに対して、画像補正処理を行うユニットである。例えばA/D変換部15等の、DSP16の外部より供給された画像データは、DSP16の画像データ61入力部に供給される。画像データ入力部61は、図示せぬバッファ等を内蔵しており、入力された画像データを蓄積し、例えば1フレーム毎等、所定のデータ量毎に内部バス62を介して保持制御部63に供給し、保持制御部63が制御する保持部64に内蔵される画像データ保持部81に保持させる。また、画像データ入力部61には、画像データの他にも、例えば各種の設定値に関する設定情報等も入力される。
保持制御部63は、DSP16の内部バス62に接続されるとともに保持部64に接続され、保持部64によるデータの入出力を制御している。すなわち、保持制御部64は、保持部64の入出力インタフェースとして動作し、保持部64に内蔵される、画像データを保持する画像データ保持部81、各種の設定値を保持する設定値保持部82、並びに、後述する仮想3次元空間等の仮想データを保持する仮想データ保持部83等によるデータの入出力を制御している。
保持部64、画像データ保持部81、設定値保持部82、並びに、仮想データ保持部83は、いずれも、例えばSRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)等のような、半導体メモリ等からなる記憶素子により構成される。従って、画像データ保持部81、設定値保持部82、並びに、仮想データ保持部83は、保持部64が有する記憶領域の、互いに異なる一部分であってもよい。
内部バス62には、また、各種の設定値を取得する設定値取得部65、取得した画像データに対応する画像より被写体の顔の部分(以下、顔画像と称する)を検出する顔検出処理部66、後述する3次元顔モデルの3次元仮想空間における位置を算出する3次元顔モデル位置算出部67、3次元顔モデルのテクスチャを設定する処理を行うテクスチャ設定処理部68、画像データ入力部61より入力された画像データに対して画像補正処理を行う補正画像作成処理部69、並びに、画像データを出力する画像データ出力部70が接続されている。
設定値取得部65は、内部バス62に接続され、例えば、画像データ入力部61を介して、外部より各種の設定値に関する設定情報を取得し、保持制御部63を介して設定値保持部82に保持させる。
顔検出処理部66は、保持制御部63を介して、画像データ保持部81に保持されている画像データを取得し、その画像より被写体の顔画像である部分を特定する。3次元顔モデル位置算出処理部67は、設定値保持部82に保持されている設定値等に基づいて、画像データ保持部81に保持されている画像データの顔画像の歪みを補正する為に用いられる3次元顔モデルを生成し、3次元仮想空間における、その3次元顔モデルの位置を算出する処理等を行う。また、3次元顔モデル位置算出処理部67は、生成した3次元仮想顔モデルや3次元仮想空間等の情報を、保持制御部63を介して仮想データ保持部83に保持させる。テクスチャ設定処理部68は、3次元顔モデル位置算出処理部67により生成された3次元顔モデルに対するテクスチャとして、画像データ保持部81に保持されている画像データの顔画像を設定する処理を行う。補正画像作成処理部69は、3次元顔モデル位置算出処理部67により生成された3次元顔モデルや3次元仮想空間を用いて、画像データ保持部81に保持されている画像データの顔画像の歪みを補正する処理を行う。補正画像作成処理部69は、補正後の画像データを、保持制御部63を介して画像データ保持部81に保持させる。なお、補正後の画像データは、内部バス62を介して、画像データ出力部70に供給されるようにしてもよい。
画像データ出力部70は、図示せぬバッファ等を内蔵しており、例えば、内部バス62を介して保持制御部63にアクセスし、保持制御部63が制御する保持部64に内蔵される画像データ保持部81に保持されている補正後の画像データを取得して内蔵するバッファ等に蓄積し、所定のタイミングで、その蓄積された画像データをDSP16の外部に出力する。また、補正後の画像データが、補正画像作成処理部69より、内部バス62を介して画像データ出力部70に供給される場合、画像データ出力部70は、供給される画像データを内蔵するバッファに蓄積し、所定のタイミングで、その蓄積された画像データをDSP16の外部に出力する。
以上においては、DSP16を構成する各部がそれぞれ別体として構成されるように説明したが、これに限らず、上述した各機能をDSP16が有していればよく、例えば、上述した各部の一部または全ての機能が他の部として構成されるようにしてもよいし、上述した各部が全て一体化して構成されるようにしてもよい。
次に、図1に示されるカムコーダ1の動作について説明する。
レンズ11および絞り12等の光学系を通過して固体撮像素子3に到達した入射光は、まず撮像面上の各受光素子に到達し、受光素子での光電変換によって電気信号(画像信号)に変換され、前処理回路14に供給され、前処理回路14が内蔵する図示せぬ相関2重サンプリング回路によって画像信号ノイズ除去され、AGC回路において、その画像信号のゲインが調整される。前処理回路14は、各処理を施した画像信号をA/Dコンバータ15に供給する。A/Dコンバータ15は、取得した画像信号(アナログ信号)をデジタイズし、撮像により得られた撮像画像データとして、DSP16に供給する。DSP16は、図2の画像データ入力部61を介して供給された撮像画像データを画像データ保持部81に一時的に格納する。
動画像(動画像データ)を取得する撮像処理が行われている状態においては、一定のフレームレートによる画像取り込み処理を維持するようにタイミングジェネレータ31が、CPU41の制御に基づいて、CCD13、前処理回路14、A/D変換部15、並びにDSP16等、撮像画像データを取得する撮像機能に関するユニットを制御する。従って、DSP16へも一定のレートで画素のストリームが送られ、そこで例えば、撮像画像に含まれる歪みを補正する画像補正処理等の、適切な画像処理がおこなわれた後、撮像画像データはD/Aコンバータ19若しくはCODEC17あるいはその両方に送られる。さらに、DSP16は、撮像画像データを、バス30を介して、CPU41、RAM43、記憶部45、通信部46、または、ドライブ47に装着されたリムーバブルメディア51等に供給するようにしてもよい。
D/Aコンバータ19はDSP16より供給された撮像画像データ(ディジタル信号)をアナログ信号に変換し、それをビデオエンコーダ20がビデオ信号に変換し、そのビデオ信号をビデオモニタ21が処理し、ビデオ信号に対応する画像(撮像画像)を表示する。このとき、カムコーダ1のユーザは、ファインダとして、ビデオモニタ21(ビデオモニタ21に表示された撮像画像)を参照しながら撮影を行うことができる。また、コーデック部17はDSP16より供給された撮像画像データに符号化処理を行い、予め定められた所定の符号化方法で符号化された撮像画像データは画像用記憶部18に記録される。ここで、画像用記憶部18は、半導体メモリ、磁気記録媒体、光磁気記録媒体、または光記録媒体などを用いた記録装置などであってもよい。すなわち、画像用記憶部18は、カムコーダ1と別体として構成されるようにしてもよい。
CPU41は、ROM42等に記憶されているプログラムやデータ、またはRAM43に展開されているプログラムやデータ等に基づいて、バス30を介して、カムコーダ1の各部を制御する。入力部44は、ユーザからの指示を受け付け、その入力情報をCPU41やRAM43に供給する。CPU41は、その入力情報に基づいて、各部を制御し、カムコーダ1が実行可能な各種の処理を実行する。
次にDSP16が実行する撮像画像に含まれる歪みを補正する処理の詳細について説明する。
例えば、入力部44に含まれる、図示せぬ撮像記録開始ボタン等をユーザに操作され、撮像開始の指示が入力されると、CPU41は、タイミングジェネレータ31等を制御し、撮像処理を開始する。撮像処理が開始されると、上述したように、被写体からの光が取り込まれ、電気信号(画像信号)に変換され、各種の処理が施される。そして、その画像信号は、A/D変換部15においてディジタル信号の撮像画像データに変換され、例えば、フレーム単位でDSP16に供給される。
フレーム単位の撮像画像データが供給されると、DSP16は、取得したフレーム単位の撮像画像データに対して画像補正処理を開始する。DSP16の各部による画像補正処理を、図3のフローチャートを参照して説明する。必要に応じて図3を参照して説明する。
最初に、ステップS1において、図2のDSP16の画像データ入力部61は、
取得した撮像画像データを、内部バス62を介して保持制御部63に供給し、保持部64の画像データ保持部81に保持させ、処理をステップS2に進める。ステップS2において、設定値取得部65は、ユーザが入力部44を操作して入力した補正の度合い等の各種の設定値を、バス30を介してRAM43より取得し、それらを、内部バス62を介して保持制御部63に供給し、保持部64の設定値保持部82に保持させる。
取得した撮像画像データを、内部バス62を介して保持制御部63に供給し、保持部64の画像データ保持部81に保持させ、処理をステップS2に進める。ステップS2において、設定値取得部65は、ユーザが入力部44を操作して入力した補正の度合い等の各種の設定値を、バス30を介してRAM43より取得し、それらを、内部バス62を介して保持制御部63に供給し、保持部64の設定値保持部82に保持させる。
後述するように、DSP16は、まず撮影時のカメラと顔の位置関係を求め、それを仮想的に変化させ撮影したかのような画像を合成する。そこで、ユーザは補正後のカメラと顔の距離を入力することにより、補正の度合いを指定することができる。補正後の距離として、実際に撮影されたときの距離より、大きい値を選んだ場合、遠近感が目立たないように補正された画像が得られ、反対に小さい値を選んだ場合、遠近感がより強調されたような画像が得られる。ユーザにより指定された補正度合いは、RAM43に保存される。
各種の設定値を設定値保持部82に保持させた設定値取得部65は、ステップS3に処理を進める。
ステップS3において、顔検出処理部66は、ステップS1の処理により画像データ保持部81に保持されている撮像画像データを、保持制御部63を介して取得し、その撮像画像データに対して顔検出処理を施す。
図4は、撮像画像の様子の例を示す図である。図4においては、撮像により得られた撮像画像90に、被写体の顔の画像である顔画像100が含まれている。顔検出処理部66は、このような撮像画像に対応する撮像画像データに対して顔検出処理を施し、顔画像100を検出し、その顔画像100の幅が最大になっている部分の中心位置110、その中心110から頭頂部までの高さ101、中心110から顎の下までの高さ102、顔画像100の幅103、顔画像100の画像90における垂直方向からの傾き104を算出する。点111並びに112は、顔画像100における、中心110と同じ高さの端の部分を表す点であり、中心110、顔画像100の傾き104、並びに顔画像100の幅103より算出する。点111および点112は、後述するように、3次元仮想空間におけるカムコーダ1と3次元顔モデルの位置関係を特定するのに用いられる。
なお、この顔検出処理に関しては、例えば、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に記載されている、顔検出のためのさまざまな手法等のような、一般的に広く用いられている方法を用いればよい。
顔検出処理が終了した顔検出処理部66は、ステップS4に処理を進める。ステップS4において、3次元顔モデル位置算出処理部67は、3次元顔モデル位置算出処理を実行し、撮像時におけるカムコーダ1と被写体の3次元仮想空間上での位置関係を算出する。なお、3次元顔モデル位置算出処理の詳細は、図5のフローチャートを参照して後述する。3次元顔モデル位置算出処理が終了すると3次元顔モデル位置算出処理部67は、ステップS5に処理を進める。ステップS5において、テクスチャ設定処理部68は、テクスチャ設定処理を実行し、3次元顔モデルの不必要な部分を削除し、そのモデルに対するテクスチャを設定する処理を行う。なお、テクスチャ設定処理の詳細については、図11のフローチャートを参照して後述する。テクスチャ設定処理を終了したテクスチャ設定処理部68は、ステップS6に処理を進める。
補正画像作成処理部69は、ステップS6において、補正画像作成処理を実行し、カメラ焦点の位置を仮想的に動かして、ステップS1において入力された設定値が3次元顔モデルとカメラ焦点との距離となるように、カメラ焦点の位置を、3次元仮想空間における3次元座標のz軸に沿って動かし、カメラ焦点を移動した後3次元顔モデルをレンダリングし、最終的な補正画像を作成する。なお、補正画像作成処理の詳細については、図15のフローチャートを参照して後述する。補正画像作成処理を終了した補正画像作成処理部69は、ステップS7に処理を進める。
画像データ出力部70は、ステップS7において、ステップS6における補正画像作成処理が施された撮像画像データを、保持制御部63を介して取得し、DSP16の外部に出力する。撮像画像データを出力した画像データ出力部70は、そのフレーム画像に対する画像補正処理を終了する。
DSP16の各部は、以上のような画像補正処理を供給される各フレーム画像に対してそれぞれ実行する。このようにすることにより、DSP16は、各フレーム画像に対して、容易に画像の歪みを、より正確に、軽減または強調させることができ、処理の対象となる画像が動画像であっても、静止画像であっても同様に処理することができる。
なお、図3のフローチャートにおいて、各ステップの処理の一部または全部は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくてもよく、例えば、並列的に処理されてもよいし、個別に処理されてもよいし、他のステップにおいてサブルーチンとして実行されるようにしてもよい。また、図3のフローチャートの各ステップの処理の一部または全部は、図3のフローチャート内に限らず、以下に示す他のフローチャートのステップと並列的に処理されてもよいし、他のステップにおいてサブルーチンとして実行されるようにしてもよい。なお、このことは、後述する他のフローチャートの各ステップについても同様に適用することができる。
次に、図3のステップS4において実行される3次元顔モデル位置算出処理の詳細を、図5のフローチャートを参照して説明する。必要に応じて、図6乃至図8を参照して説明する。
最初にステップS21において、3次元顔モデル位置算出処理部67は、被写体の顔画像に対応する3次元顔モデルを設定する。
図6は、3次元顔モデルの例を示す図である。3次元顔モデル位置算出処理部67は、図6Aに示されるような、2種類の楕球を上下半分ずつ組み合わせたような形状の3次元顔モデル120を用いる。この3次元顔モデルは、図6Aに示されるように、図中水平方向の半径が等しい2つの楕球の内、一方の楕球の上側半分からなる上側の楕球121と、他方の楕球の下側半分からなる下側の楕球122とを、それらの切断面で張り合わせた形状となっている。すなわち、この3次元顔モデルの、上側の楕球121と下側の楕球122とでは、図中水平方向の半径は等しいが、図中垂直方向の半径は、互いに独立している。従って、このような立体的形状を仮定した場合、後述する長さ130、長さ131、および長さ132の値を変えることで、図6Aのような真球から、図6Bに示されるようなたまごのような形状までのさまざまな形状の顔に対応できる。
図6に示されるように、このような3次元顔モデルを水平に切り取ったとき、切り口は必ず円になる。特に、3次元顔モデルの水平方向の切り口が一番大きくなる円の半径、すなわち、2つの楕球の接合面となる円の半径の長さを長さ130とし、その円の中心点133を3次元顔モデルの中心とする。図6に示されるように、中心点133を通る垂直方向の軸のうち、中心点133から上部の端までの長さを長さ131、中心点133から下部の端までの長さを長さ132とする。
なお、上述した図6の3次元顔モデル120に関する各値の内、長さ130は、被写体の頭部の大きさを示す値であるため、その取り得る値の範囲がある程度限定されているので、予め所定の値を設定しておくことも可能である。例えば、産業技術総合研究所、くらしとJISセンターの人体寸法データベース(http://unit.aist.go.jp/pubrel/indusstan/ljis/theme/final/finalreports/anthrop.htm)によると、日本人の頭の幅は、身長、性別による差は少なく、ほぼ一定の大きさ(約15〜16cm)であることが分かる。従って、長さ130の大きさに関しては、この大きさを設定する。これに対して、例えば鼻からあごまでの長さなどのそのほかの顔の形状に関しては多少の個人差があると考えられる。したがって長さ131および長さ132に関しては、すべての場合に対して固定の値を用いることができないので、後述する方法で設定する必要がある。なお、3次元顔モデル120は、どのような形で表現されてもよく、例えば、関数を用いた表現、ポリゴン(多角形)を用いた表現などで定義するようにしてもよい。
このような3次元顔モデル120を、撮像画像において検出された顔画像、すなわち、被写体の顔のモデルとして設定すると、3次元顔モデル位置算出処理部67は、ステップS22に処理を進め、カムコーダ1や被写体(3次元顔モデル120)等の位置関係を算出するために、カムコーダ1の撮像処理を行うユニットである撮像ユニット(以下、カメラと称する)の中心を原点とする3次元仮想空間を設定する。3次元顔モデル位置算出処理部67は、図7に示されるように、カメラ焦点140を原点とし、光軸方向をz軸、撮影された画像の横方向をx軸、縦方向をy軸とする3次元座標からなる3次元仮想空間を設定する。
この3次元仮想空間において、カメラ焦点140は、後述するように、カメラの焦点位置を示している。従って、この3次元仮想空間の原点は焦点位置となるレンズ11の中心に設定する必要があるが、実際のカメラの光学系は、より複雑であり、その設定も難しくなるので、簡略化するために、カムコーダ1の撮像ユニットであるカメラの中心を原点とするようにしてもよい。このように、3次元仮想空間の原点は、焦点位置だけでなく焦点位置近傍のその他の位置を設定するようにしてもよい。
図5に戻り、ステップS22の処理を終了した3次元顔モデル位置算出処理部67は、ステップS23に処理を進め、図7に示されるように、3次元顔モデル120が結像される仮想スクリーンを3次元仮想空間に配置し、その仮想スクリーンのサイズを設定する。
図7において、3次元顔モデルが結像される仮想スクリーン142は、3次元仮想空間上のCCD13を表す仮想物体であり、光軸と垂直に、横方向がx軸と平行、縦方向がy軸と平行となり、原点からある距離dの場所に設定される。ここで、距離dには撮影に用いたカメラの焦点距離(すなわち、レンズ11とCCD13の距離)を設定する。実際には、CCD13は、レンズ11から見て被写体と反対方向に存在するが、仮想スクリーン142は、レンズ11を中心とするCCD13と対象の位置、すなわち、レンズ11から被写体の方向に距離dだけ離れた位置に設定される。このように設定された仮想スクリーン142には、3次元顔モデルがCCD13に結像される場合と同様の大きさで結像される。以上のように、仮想スクリーン142は、3次元仮想空間上におけるCCD13の代替物として設定される。
3次元顔モデル位置算出処理部67は、距離dを設定した後に、仮想スクリーン142の大きさを設定する。仮想スクリーン142の大きさは、CCD13と同じ大きさとなるように設定される。また、3次元顔モデル位置算出処理部67は、CCD13の大きさの代わりに、カメラの画角と距離dを用いて、仮想スクリーン142の大きさを設定することもできる。この場合、3次元顔モデル位置算出処理部67は、距離dには適当な大きさを設定し、画角をもとにして仮想スクリーン142の大きさを定めればよい。
図5に戻り、3次元顔モデル位置算出処理部67は、ステップS24に処理を進め、図3のステップS3の処理により検出された顔検出結果である顔画像100を仮想スクリーン142にマッピングする。仮想スクリーン142は、CCD13を示す仮想物体であり、顔画像100を含む撮像画像90は、CCD13において得られた画像であるので、撮像画像90と仮想スクリーン142の縦横比は一致する。従って、3次元顔モデル位置算出処理部67は、撮像画像90に対して、画像の縦横比を変えずに単純に拡大または縮小を行って、顔認識結果を仮想スクリーン142にマッピングする。
顔認識結果を仮想スクリーン142にマッピングした3次元顔モデル位置算出処理部67は、次に、ステップS25に処理を進め、距離算出処理を実行し、3次元顔モデル120の位置を算出する。
まず、図4に示される顔検出結果のうち中心点110、点111、および点112に注目する。中心点110、点111、および点112は、図6における3次元顔モデル120の中心点133を通る水平切り口(形状は円)上の点が、画像上に結像された部分である。中心点110、点111、および点112の仮想スクリーン142における位置は、前述のマッピングにより分かるので、3次元空間での対応する位置も算出することができる。例えば、図7において、中心点110、点111、および点112が仮想スクリーン142上にマッピングされた点が、それぞれ、点143、点144、および点145であるとする。
また、3次元顔モデル120の水平切り口の半径の長さ130は上述したように、すでに設定されている。従って、以下の5つの条件を使って、水平切り口の位置を求めることにより、3次元仮想空間における、3次元顔モデル120の位置ならびに向きを求めることができる。1つ目の条件は、3次元顔モデル120の中心点133を通る水平切り口は大きさが既知であるということである。2つ目の条件は、その水平切り口の中心点133の存在位置は、3次元仮想空間上でカメラ焦点140と点143を通る直線上に限定されるということである。3つ目の条件は、水平切り口の輪郭部分の円周は、3次元仮想空間上でカメラ焦点140と点144を通る直線と接するということである。4つ目の条件は、3つ目の条件と同様に、水平切り口の輪郭部分の円周は、3次元仮想空間上でカメラ焦点140と点145を通る直線と接するということである。5つ目の条件は、水平切り口はz>0の領域に存在するということである。このような5つの条件に従うことにより、3次元顔モデル120の水平切り口の位置を求めることができる。
図8は、3次元顔モデル120の位置を上述したように特定する様子の例を説明する図である。図8Aに示されるように、点143、点144、および点145で形成される平面上に上述した3次元顔モデル120の水平切り口が存在しているので、3次元顔モデル位置算出処理部67は、容易にその位置を特定することができる。
このようして、3次元顔モデル位置算出処理部67は、撮像時のカムコーダ1と3次元顔モデル120との3次元的な位置関係(距離)を算出する。距離算出処理の詳細については、図9のフローチャートを参照して後述する。
図5に戻り、距離算出処理が終了すると、3次元顔モデル位置算出処理部67は、次に、ステップS26に処理を進め、距離算出処理により算出されたカムコーダ1と3次元顔モデル120との位置関係に基づいて、3次元顔モデル120を3次元仮想空間に配置し、ステップS27において、3次元顔モデル120の縦方向のサイズである、長さ131および長さ132を算出し、設定する。具体的には、3次元顔モデル位置算出処理部67は、図8Bに示されるように、3次元仮想空間上で設定された3次元顔モデル120を仮想スクリーン142に結像した場合に、長さ131および長さ132が、顔検出結果の顔上半分と下半分の大きさに相当する長さ101および長さ102とそれぞれ一致するように、それらの値の調整を行う。
ステップS27の処理を終了した3次元顔モデル位置算出処理部67は、3次元顔モデル位置算出処理を終了し、図3のステップS5に処理を進める。
以上のようにして、3次元顔モデル位置を算出するので、3次元顔モデル位置算出処理部67は、容易に、カムコーダ1と3次元顔モデル120との位置関係を求めることができ、それにより、DSP16は、容易に、画像の歪みを、より正確に、軽減または強調させることができる。
また、3次元顔モデル位置算出処理部67は、2種類の楕球を上下半分ずつ組み合わせたような形状の3次元顔モデルを用いるので、3次元顔モデル縦方向の長さを上半分と下半分とで互いに独立して設定することができ、真球から、たまごのような形状まで、さまざまな形状の顔に対応できる。すなわち、3次元顔モデル位置算出処理部67は、被写体の顔の形の個人差に応じて、最適な3次元顔モデルを構成することができ、DSP16は、このような様々な被写体の顔画像の歪みを、より正確に、軽減または強調させることができる。
なお、3次元顔モデル位置算出処理部67は、上述した処理において、算出したり設定したりした仮想データ、例えば、3次元顔モデルや3次元仮想空間に関する情報を、上述した処理の途中または終了後に内部バス62を介して保持制御部63に供給し、保持部64の仮想データ保持部83に保持させ、他の処理部においても参照可能であるようにする。
次に、図5のステップS25において実行される距離算出処理の詳細を、図9のフローチャートを参照して説明する。必要に応じて、図10を参照して説明する。
最初に、3次元顔モデル位置算出処理部67は、ステップS41において、カムコーダ1の撮像機能(カメラ機能)における、光の焦点(以下、カメラ焦点と称する)の位置、すなわち、3次元仮想空間における原点における、仮想スクリーン142にマッピングされた顔画像100に対する角度を算出する。
図10は、3次元顔モデルの距離を算出する様子の例を説明する図である。図10において、水平切り口150は、上述した3次元顔モデル120の中心点133を通る水平切り口であり、点133を中心点とする円を構成している。この水平切り口150とカメラ焦点の位置である3次元仮想空間の原点は、図10に示されるような位置関係となる。上述したように、日本人の頭の幅は、身長、性別による差は少なく、ほぼ一定の大きさ(約15〜16cm)であると考えられるので、3次元顔モデル位置算出処理部67は、この値を水平切り口150の半径130に設定する。
さて、いま、図10において、カムコーダ1の画角152をrcamとして、水平切り口150をカメラの中心から見たときに占める角度153をrfaceとする。カメラの画角rcam(画角152)は、撮像時の焦点距離等、そのカメラの設定値から算出することが出来るので、図4に示される撮像画像90における顔画像100の幅103をwfaceとし、撮像画像90の幅をwimgとすると、角度rface153は、以下に示される式(1)により算出される。
図9に戻り、以上のようにして、カメラ焦点の位置における顔画像に対する角度を算出した3次元顔モデル位置算出処理部67は、ステップS42に処理を進め、カメラ焦点の位置から3次元顔モデルの中心までの距離を算出する。
図10において、顔撮像時のカメラ焦点(3次元仮想空間の原点)140から3次元顔モデルの中心点143までの距離151をdorgとすると、上述した式(1)により算出された角度rface153を用いて、dorgは、以下に示される式(2)のように算出される。
なお、ここでsfaceは、顔モデルの切り口150の半径である長さ130の値を示す。
以上のようにして、カメラ焦点の位置から、3次元顔モデルの中心までの距離を算出した3次元顔モデル位置算出処理部67は、距離算出処理を終了し、図5のステップS26に処理を進める。
このようにすることにより、3次元顔モデル位置算出処理部67は、容易に、カムコーダ1と3次元顔モデル120との位置関係を求めることができ、それにより、DSP16は、容易に、画像の歪みを、より正確に、軽減または強調させることができる。
なお、以上においては、説明を簡略化するために、図4に示される顔画像100の傾き104が無い場合について説明したが、例えば図4の場合のように、顔画像100が撮像画像90の垂直方向に対して傾き104を含む場合は、3次元顔モデル位置算出処理部67が、3次元顔モデル120を、3次元仮想空間のy軸に対して傾き104だけ傾くように設定すればよい。その場合、ステップS27において算出される3次元顔モデルの縦方向のサイズは、y軸に対して傾き104だけ傾いた方向のサイズとなる。
このようにすることにより、DSP16は、撮像画像に対して顔の向きが傾いている場合においても、画像の歪みを、より正確に、軽減または強調させることができる。
次に、図3のステップS5において実行されるテクスチャ設定処理の詳細を図11のフローチャートを参照して説明する。必要に応じて、図12乃至図14を参照して説明する。
このテクスチャ設定処理において、テクスチャ設定処理部68は、3次元顔モデル120の不必要な部分を削除し、そのモデルに対するテクスチャを設定する処理を行う。
最初に、テクスチャ設定処理部68は、内部バス62を介して保持制御部63にアクセスし、保持部64の仮想データ保持部83に保持されている、3次元顔モデルに関する情報や3次元仮想空間に関する情報等、テクスチャ処理に必要な仮想データを取得する。それらのデータを取得したテクスチャ設定処理部68は、ステップS61において、3次元顔モデル120において、後段の画像補正処理において必要な部分を特定する。
図12は、テクスチャを設定する様子の例を説明する図である。図12Aは、図7を他の角度から見た図であり、3次元仮想空間の原点を基準に3次元顔モデルがスクリーン142に撮像される様子を示している。この3次元仮想空間で、3次元顔モデルをスクリーン142に画像化(以下、レンダリングと称する)した場合に、レンダリングの結果、3次元顔モデルの画像に写らない部分160を3次元顔モデルから削除し、3次元顔モデルを写る部分161にする。
後述する画像補正処理において、顔画像の歪みを軽減するために、カメラの焦点の位置をz軸に沿ってスクリーンから離れる方向に仮想的に移動させる処理を行う。このとき、3次元顔モデルを再びレンダリングすると、最初の状態において画像に写っていなかった部分160の一部分が仮想スクリーン142に写ってしまうことになる。しかし、部分160は、ユーザが実際にカメラを撮影したときには、隠れていた部分であり、その部分のテクスチャはどのようになっているかは不明であるので、この場合、部分160はレンダリングされるべきではない。従って、上述したように、ステップS61において、予め、3次元顔モデルの不要な部分である部分160を3次元顔モデルから削除しておく。
図13は、3次元顔モデルの必要な部分を特定する様子の具体的な例を説明する図である。図13において、カメラ焦点の位置は、3次元仮想空間において光軸に沿って動かされている。
式(2)に示されるように、3次元仮想空間の原点に位置するカメラ焦点140は、3次元顔モデルの中心から距離151(dorg)離れた場所にある。後述するように、最終的な画像を得るために、カメラ焦点140が光軸に沿って、仮想的に移動させられる。どの程度移動するかは、ユーザの指定した値により決定される。移動後のカメラ焦点と3次元顔モデル中心との距離170をdnewとする。
移動前後でそれぞれ、3次元顔モデルの水平切り口150がカメラ(カムコーダ1)から見えている部分の端と水平切り口150の中心133とのなす角度は異なる。そのうち、カメラと顔の距離が小さい場合にカメラから見える水平切り口150の部分とカメラ焦点140Aとのなす角度の1/2の角度171の値をαmaxとする。この角度171の値αmaxは以下の式(3)により求めることが出来る。
以上のようにして、テクスチャ設定処理部68は、3次元顔モデルより、画像補正処理に必要な部分を特定する。ステップS61の処理を終了したテクスチャ設定処理部68は、ステップS62に処理を進める。ステップS62において、テクスチャ設定処理部68は、3次元顔モデルの必要な部分以外の部分、すなわち、不要な部分を、図14に示されるように、3次元顔モデルより削除する。図14において、部分160は、仮想スクリーン142に写らないので、この部分を削除し、部分161を、画像の変形処理に使う3次元顔モデルとして残す。
ステップS62の処理を終了したテクスチャ設定処理部68は、ステップS63に処理を進め、残された3次元顔モデル161に対するテクスチャを設定する。
図12Bは、テクスチャマッピングが行われる様子を示している。まず、図4に示される撮像画像90を、仮想スクリーン142にマッピングする。そして、図12Bに示されるように、カメラ焦点140を基準にして、仮想スクリーン142にマッピングされた撮像画像90を、3次元顔モデル161のテクスチャとして対応付ける。
3次元顔モデルにテクスチャを設定したテクスチャ設定処理部68は、テクスチャ設定処理を終了し、図3のステップS6に処理を進める。
なお、テクスチャ設定処理部68は、上述した処理において、算出したり設定したりした仮想データ、例えば、テクスチャを設定した3次元顔モデルに関する情報等を、上述した処理の途中または終了後に内部バス62を介して保持制御部63に供給し、保持部64の画像データ保持部81または仮想データ保持部83に保持させ、他の処理部においても参照可能であるようにする。
以上のように3次元顔モデルにテクスチャを設定するので、テクスチャ設定処理部68は、容易にテクスチャを設定することができる。また、これにより、DSP16は、そのテクスチャが設定された3次元顔モデルを用いて画像の歪みを補正する処理を行うことができ、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。さらに、テクスチャ設定処理部68が3次元顔モデルのレンダリングに不要な部分を削除してからテクスチャを設定するので、DSP16は、テクスチャの設定されていない3次元顔モデルをレンダリングする等の不要な処理による誤差の発生を抑制することができ、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。
なお、以上においては、説明を簡略化するために、図4に示される顔画像100の傾き104が無い場合について説明したが、例えば図4の場合のように、顔画像100が撮像画像90の垂直方向に対して傾き104を含む場合は、テクスチャ設定処理部68が、3次元仮想空間のx軸をxy平面上で、傾き104だけ傾けたx´軸および、y軸を傾き104だけ傾けたy´軸を用いて、上述した処理を実行すればよい。その場合、図12に示される仮想スクリーン142は、上述した場合と同様に、各辺がx軸方向またはy軸方向に平行となる四辺形となり、xy平面上において、3次元顔モデルに対して傾き104だけ逆方向に傾く。
次に、図3のステップS6において実行される補正画像作成処理の詳細を、図15のフローチャートを参照して説明する。必要に応じて、図16および図17を参照して説明する。
最初に、補正画像作成処理部69は、内部バス62を介して保持制御部63にアクセスし、保持部64の仮想データ保持部83に保持されている、3次元顔モデルに関する情報や3次元仮想空間に関する情報等、補正画像作成処理に必要な仮想データを取得する。それらのデータを取得した補正画像作成処理部69は、ステップS81において、3次元仮想空間のz軸方向、すなわち、カムコーダ1のカメラの光軸方向にカメラ焦点の位置を移動させる。補正画像作成処理部69は、図3のステップS2において、設定値取得部65が取得し、保持部64の設定値保持部82に保持されている設定値に基づいて、3次元顔モデルとカメラ焦点との距離を決定し、カメラ焦点の位置を、3次元仮想空間における3次元座標のz軸に沿って移動させる。
カメラ焦点をz軸方向に移動させると、補正画像作成処理部69は、ステップS82において、3次元顔モデルの中心が光軸(z軸)上、すなわち、仮想スクリーン142の中心に存在するか否かを判定する。3次元顔モデルの中心が光軸上に存在すると判定した場合、カメラ焦点を移動させても、仮想スクリーン142にレンダリングされた3次元顔モデルに対応する顔画像100の中心は光軸上に存在する(仮想スクリーン142上において、顔画像100の中心点110の位置が変化しない)。すなわち、この場合、カメラ焦点を移動前後において、仮想スクリーン142にレンダリングされた3次元顔モデルに対応する顔画像100は、その大きさが変化するだけであり、仮想スクリーン142上における顔画像100の位置や輪郭の形などは変化しない。従って、この場合、補正画像作成処理部69は、ステップS83に処理を進め、レンダリング処理を実行し、3次元顔モデルを仮想スクリーン142上に、最終的な画像(顔画像が補正された画像)を合成する。レンダリング処理の詳細は、図18のフローチャートを参照して後述する。
レンダリング処理が終了すると、補正画像作成処理部69は、ステップS84に処理を進め、補正前後の仮想スクリーンの大きさに対する顔画像の大きさが一致するか否かを判定する。カメラ焦点がz軸に沿って移動された後に、移動前と同じ画角で、仮想スクリーン142に3次元顔モデル161がレンダリングされた場合、レンダリングの結果、得られる画像における3次元顔モデル161に対応する顔画像の大きさが、カメラ焦点移動前における顔画像100の大きさと異なってしまう。
このように、補正前後の仮想スクリーンの大きさに対する顔画像の大きさが一致しないと判定した場合、補正画像作成処理部69は、ステップS85に処理を進め、仮想スクリーン142のサイズを調整する。補正画像作成処理部69は、レンダリングする際のカメラ(カムコーダ1)の画角を調節し(すなわち、仮想スクリーン142の大きさを調整し)、最終的な3次元顔モデル161のレンダリング結果の大きさが、図4に示される顔画像100の大きさと同等になるようにする。すなわち、補正画像作成処理部69は、顔画像の大きさはそのままにして、仮想スクリーン142の大きさのみを調整することで、仮想スクリーン142の大きさに対する顔画像の大きさを、カメラ焦点の位置を移動する前後において同等となるようにする。
図16は、仮想スクリーンサイズを調整する様子の例を示す図である。図16において、カメラ焦点140の位置が原点の位置から、z軸上の点180の位置まで移動する場合について説明する。なお、カメラ焦点の移動前の仮想スクリーン142の水平方向(図中上下方向)の長さを長さ190とする。仮想スクリーン142の縦横比は、予め定められている(CCD13の縦横比と同じである)ので、ここでは、仮想スクリーン142のサイズを水平方向の長さを用いて説明する。
図16において、カメラ焦点の位置が移動すると、仮想スクリーン142に結像する3次元顔モデル161に対応する顔画像の大きさは変化する。例えば、図16に示されるように、仮想スクリーン142の位置および大きさを固定し、カメラ焦点の位置を、3次元仮想モデル161に対して原点より遠い位置に移動した場合、3次元顔モデル161に対応する仮想スクリーン142上の顔画像の輪郭の大きさは、移動前の顔画像と比較して大きくなる。これに対して、補正画像作成処理部69は、カメラ焦点の位置の移動前における顔画像の輪郭の大きさと、移動後における顔画像の輪郭の大きさとが一致するように(仮想スクリーン142に対する顔画像の割合が移動前後において一致するように)、仮想スクリーン142の大きさを変更する。図16の例では、仮想スクリーン142の水平方向の長さ(仮想スクリーン142の大きさ)を長さ190より大きな長さ191に変更している。このようにすることにより、仮想スクリーン142における撮像画像のサイズを、カメラ焦点の移動の前後において一致させた場合に、顔画像の大きさも一致するようになる。
なお、顔画像100の中心110がカメラの光軸上にある場合は、カメラ焦点の移動前後で、3次元顔モデル161に対応する仮想スクリーン142での顔画像の輪郭の形は相似形となるので、補正画像作成処理部69は、仮想スクリーン142の大きさを調整することで、完全に顔画像の輪郭を一致させることができる。後述するように、3次元顔モデル120の中心133がカメラの光軸上に無い場合は、カメラ中心の移動前後で、3次元顔モデル161に対応する仮想スクリーン142での顔画像の輪郭の形が、相似形とならないので、補正画像作成処理部69は、仮想スクリーン142の大きさを調整しても、完全に顔画像の輪郭を一致させることはできない。
上述したようなステップS85の処理を終了した補正画像作成処理部69は、ステップS83に処理を戻し、それ以降の処理を繰り返す。
以上のように、仮想スクリーン142のサイズが調整され、ステップS84において、補正前後の顔画像の大きさが一致すると判定した場合、補正画像作成処理部69は、得られた補正画像を、内部バス62を介して保持制御部63に供給し、保持部64の画像データ保持部81に保持させ、補正画像作成処理を終了し、図3のステップS7に処理を進める。
また、ステップS82において、顔画像100が仮想スクリーン142の中心からずれており、3次元顔モデルの中心が光軸上に存在しないと判定した場合、補正画像作成処理部69は、ステップS86に処理を進め、ステップS83の場合と同様のレンダリング処理を実行し、3次元顔モデルを仮想スクリーン142上に、最終的な画像(顔画像が補正された画像)を合成する。
レンダリング処理が終了すると、補正画像作成処理部69は、ステップS87に処理を進め、補正前後の仮想スクリーンにおける顔画像の位置が一致するか否かを判定する。3次元顔モデルの中心が光軸上に存在しない場合に、カメラ焦点がz軸に沿って移動された後に、移動前と同じ画角で、仮想スクリーン142に3次元顔モデル161がレンダリングされたとき、レンダリングの結果、得られる画像における3次元顔モデル161に対応する顔画像の位置が、カメラ焦点移動前における顔画像100の位置と異なってしまう。
このように、補正前後の仮想スクリーンにおける顔画像の位置が一致しないと判定した場合、補正画像作成処理部69は、ステップS88に処理を進め、図17に示されるように、仮想3次元空間の3次元座標のxy平面上においてカメラ焦点の位置を移動させる。
図17において、顔画像201は、3次元顔モデル202を仮想スクリーン142にレンダリングして得られる画像である。このとき3次元顔モデル202の中心が光軸上(z軸上)に存在しないので、カメラ焦点の位置がz軸方向に沿って移動されると、3次元顔モデル202を仮想スクリーン142にレンダリングして得られる画像の位置が、顔画像201の位置よりずれてしまう。
そこで、補正画像作成処理部69は、補正前後の顔画像の中心の位置が互いに一致するように、カメラ焦点の位置をz軸上の点ではない点180に移動する。このようにすることにより、点180、点140、画像201の中心、3次元顔モデル202の中心とが1本の直線により結ばれるようになり、補正後の顔画像の中心の位置が、補正前の顔画像の中心の位置に一致する。
図15に戻り、ステップS88の処理を終了した補正画像作成処理部69は、ステップS86に処理を戻し、それ以降の処理を繰り返す。
以上のようにして、カメラ焦点の位置が補正される等して、ステップS87において、補正前後の顔画像の中心の位置が一致すると判定すると、補正画像作成処理部69は、ステップS89に処理を進め、補正後の顔画像の輪郭が、補正前の顔画像の輪郭を内包し、かつ、最小であるか否かを判定する。
上述したように、カメラ焦点の位置が移動すると、仮想スクリーン142に結像する3次元顔モデル161に対応する顔画像の大きさは変化する。このとき、3次元顔モデルの中心がカメラの光軸上にある場合と異なり、3次元顔モデルの中心がカメラの光軸上に無い場合は、カメラ中心の移動前後で、3次元顔モデルに対応する仮想スクリーン142での顔画像の輪郭の形が、相似形とならないので、補正画像作成処理部69は、仮想スクリーン142の大きさを調整しても、完全に顔画像の輪郭を一致させることはできない。
そこで、このように3次元顔モデルの中心がカメラの光軸上に無い場合、補正画像作成処理部69は、補正後の顔画像の輪郭が、補正前の顔画像の輪郭を内包し、かつ、最小であるか否かを判定し、補正前の顔画像の輪郭を内包していない、または、補正前の顔画像の輪郭を内包しているが、その面積が最小ではないと判定した場合、ステップS90に処理を進め、カメラ焦点の移動後の3次元顔モデルに対応する顔画像の輪郭が、カメラ焦点の移動前の3次元顔モデルに対応する顔画像の輪郭をすべて覆い隠す最小の大きさなるように、仮想スクリーン142の大きさを変更する。
このように、仮想スクリーン142のサイズを調整した補正画像作成処理部69は、ステップS86に処理を戻し、それ以降の処理を繰り返し、新たに設定された大きさの仮想スクリーン142に対して、3次元顔モデルのレンダリング処理を再度行う。
以上のような仮想スクリーン142のサイズの調整が行われるなどして、ステップS89において、補正後の顔画像の輪郭が、補正前の顔画像の輪郭を内包し、かつ、最小であると判定した場合、補正画像作成処理部69は、補正画像作成処理を終了し、図3のステップS7に処理を進める。
以上のようにして、補正画像作成処理部69は、顔画像の歪みの度合いを調整した補正画像を作成するので、DSP16は、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。また、これにより、カムコーダ1は、より正確に、画像の歪みを軽減または強調させた補正画像を記録媒体に記録したり、ディスプレイに表示したりする等して、ユーザに提供することができる。
なお、補正画像作成処理部69は、ユーザ等により指示された補正の度合い(カメラ焦点の移動距離)に応じて、3次元仮想モデルをレンダリングする仮想スクリーン142のサイズを適切に調整するので、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。また、その際、補正画像作成処理部69は、3次元顔モデルの中心の位置(撮像画像における顔画像の中心の位置)に応じて、仮想スクリーン142のサイズを最適な方法で調整するので、例えば被写体の顔が画像の中心に写っていないような場合であっても、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。
以上においては、説明を簡略化するために、図4に示される顔画像100の傾き104が無い場合について説明したが、例えば図4の場合のように、顔画像100が撮像画像90の垂直方向に対して傾き104を含む場合は、補正画像作成処理部69は、3次元仮想空間のx軸をxy平面上で傾き104だけ傾けたx´軸および、y軸を傾き104だけ傾けたy´軸を用いて、上述した処理を実行する。その場合、仮想スクリーン142は、上述した場合と同様に、各辺がx軸方向またはy軸方向に平行となる四辺形となり、xy平面上において、3次元顔モデルに対して傾き104だけ逆方向に傾く。
次に、図15のステップS83およびステップS86において実行されるレンダリング処理の詳細を、図18のフローチャートを参照して説明する。必要に応じて、図19乃至図22を参照して説明する。
レンダリング処理を開始した補正画像作成処理部69は、最初に、ステップS111において、レンダリングされる3次元顔モデルの代表点を決定する。3次元顔モデルをレンダリングするとき、補正画像作成処理部69は、3次元顔モデルのテクスチャが設定された面を構成する全ての点について、同様に補正処理を行うようにしてもよいが、その場合、計算量が膨大になり、処理の負荷が増大してしまう。従って、負荷を軽減させるために、補正画像作成処理部69は、3次元顔モデルのテクスチャが設定された面を構成する点の中から、代表となる点をいくつか選び、その代表点について補正処理を行い、その他の点については、その代表点の補正に基づいて補正するようにするのが望ましい。
図19は、代表点を決定し、その座標を求める様子の例を説明する図である。カメラ焦点140と仮想スクリーン215との距離216をdfocusと置く。ここで、仮想スクリーン215とカメラの光軸との交点212を点Cとし、角度171が式3により求めたαmaxである点172を点Aとし、点172が仮想スクリーン215に投影される点213を点A’とする。また、水平切り口150上のある点211を点Bとし、点B(点211)が仮想スクリーン215に投影される点214を点B’とする。点B(点211)と水平切り口150の中心133を結ぶ線と、カメラの光軸とのなす角度210をα(a≦αmax)と置く。
ここで、水平切り口150の中心点133とカメラ焦点140との距離はdとし、dはdmin以上の任意の値をとることが出来る。いま、点C(点212)と点B’(点214)の距離をxとおくと、xは以下に示される式(4)により算出することが出来る。
さらに、点C(点212)と点A’(点213)の距離をxmaxとおくと、xmaxも上述した式(4)により算出できる。いま、xとxmaxの比をkと置くと、k=x/xmaxは以下に示される式(5)により求められる。
αは0からαmaxまでの任意の値を取れるが、補正画像作成処理部69は、そのうちn点を代表点として定める。αiを次の式6のように定義する。
d=dorgとd=dnewの場合それぞれに関して、kをi=0・・・,n−1について算出する。なお、ここで、d=dorgでi=jの時のkをkorg jと、d=dnewでi=jのときのkをknew jと置く。これらの値は、カメラ焦点と3次元顔モデルとの距離がdorgまたはdnewのときに、顔モデル上の点が、仮想スクリーン142のどの位置に投影されるかを表す値である。従って、これらの値を、撮像画像の顔画像の位置にプロットすれば、画像の補正前後の対応関係が分かる。つまり、図4における顔画像の中心110を始点とし、顔の大きさにあわせ外側に向かって、kの値を用いて、点をプロットすれば、補正前後で画像を、どのように変化させればよいかがわかる。
ステップS111の処理を終了した補正画像作成処理部69は、次に、ステップS112に処理を進め、ステップS111において決定した各代表点の補正前の座標を算出し、ステップS113において、ステップS111において決定した各代表点の補正後の座標を算出する。
図20は、代表点の座標を算出する様子の例を説明する図である。楕円220が、顔検出処理により検出された顔画像であるとする。その顔画像の中心を原点とし、顔画像の横方向にx軸、顔画像の縦方向にy軸を取るような座標系において、楕円220のx軸方向の軸の長さをa、y軸方向の軸の長さをbとおく。原点と楕円220上の点222とを結ぶベクトルとx軸とのなす角度221がθであるとき、点222の座標は(a×cosθ,b×sinθ)となる。
点222は、3次元顔モデルの端を表し、xmaxに対応する位置に存在する。すなわち、原点と楕円220上の点222とを結ぶ線上に、korg iとknew iを用いて点を(korg i×a×cosθ,korg i×b×sinθ)、(knew i×a×cosθ,knew i×b×sinθ)のように、プロットすれば、3次元顔モデル上で選ばれた代表点が、補正前後でどのように変化するのかがわかる。すなわち、補正画像作成処理部69は、ステップS112およびステップS113において、以上のようにして、代表点の補正前後における座標を算出する。
なお、角度θに関しては、j=0,…,m−1について、以下に示される式(7)のようにθjを定義する。
式(7)を適用することにより、補正画像作成処理部69は、図20の第1象限に関して、補正前の代表点(korg i×a×cosθj,korg i×b×sinθj)(以下、Porg i,jと称する)、補正後の代表点(knew i×a×cosθj,knew i×b×sinθj)(以下、Pnew i,jと称する)を求める。
第1象限に関して、代表点の座標を算出した補正画像作成処理部69は、第2象限乃至第4象限に関しても、第1象限の代表点の位置を基準にして対象関係を利用して、それぞれ代表点の座標を算出する。このように代表点の対象関係を利用することにより、補正画像作成処理部69は、第1象限乃至第4象限の代表点の座標を全て同様に算出する場合よりも、各代表点の座標を用意に算出することができる。
以上のようにして座標を算出された代表点は、補正前後において、図21に示されるように、その座標が変化する。
図21Aに示されるように、補正前の撮像画像230に含まれる顔画像231において、黒点のように顔画像231の外側に偏って配置されている代表点は、補正処理により、図21Bに示されるように移動し、補正後の撮像画像240に含まれる顔画像241において、顔画像241全体に均等に配置されるようになる。
なお、図21において代表点の配置例を説明したが、各代表点の配置関係は、図21に示される以外のであってももちろんよく、代表点の数も図21に示される数以外であってももちろんよい。また、以上においては、3次元顔モデルとして、顔の上半分と下半分に対して、互いに異なる長さbの軸を持つ2つの惰球を用いており、それらの組み合わせで3次元顔モデルを構成するようにしている。この場合、補正画像作成処理部69は、適宜、長さbの値を変更して、代表点の位置を求める。さらに、図20に示されるような顔画像を中心として定めた座標系が、図4に示されるように撮像画像の座標系とずれている場合、補正画像作成処理部69は、座標を求めた代表点全体に対して回転、平行移動変換を施す。
図18に戻り、ステップS112およびステップS113の処理を行い、代表点の補正前後の座標を算出し、その代表点の、補正による座標の変化を確認した補正画像作成処理部69は、ステップS114において、座標を算出した代表点から構成される各ポリゴンの内、未処理のポリゴンを1つ選択し、そのポリゴンを用いて画像変換を行い、そのポリゴンに対する画像変換が終了すると、ステップS115において、全てのポリゴンを処理したか否かを判定し、まだ未処理のポリゴンが存在すると判定した場合、ステップS114に処理を戻し、それ以降の処理を繰り返し、全てのポリゴンに対して同様に画像変換を行う。ステップS115において、全てのポリゴンを処理したと判定した場合、補正画像作成処理部69は、レンダリング処理を終了し、図15のステップS84またはステップS87に処理を戻す。
すなわち、補正画像作成処理部69は、座標を算出した代表点から構成される各ポリゴンに注目し画像に対して補正を行う。ステップS112およびステップS113の処理により、全ての代表点の補正前後の座標が算出されるので、全てのi=0,・・・,N−2とj=0,・・・,m−2の組に対して、補正前、補正後の、画像上における、代表点により構成されるポリゴンが求まる。補正画像作成処理部69は、そのように求められたポリゴン(Porg i,j,Porg i+1,j,Porg i+1,j+1,Porg i,j+1)、並びに、ポリゴン(Pnew i,j,Pnew i+1,j,Pnew i+1,j+1,Pnew i,j+1)の2つのポリゴンに対応する画像変換を行う。これにより、画像補正後にはポリゴン(Pnew i,j,Pnew i+1,j,Pnew i+1,j+1,Pnew i,j+1)の内側にあるすべての画素は、ポリゴン(Porg i,j,Porg i+1,j,Porg i+1,j+1,Porg i,j+1)の内側の補正前の画像が、マッピングされたものとなる。補正後の各画素が補正前にはどの位置であったかは、ポリゴンの各頂点を線形に補間することにより求めることが出来る。
図22は、ポリゴン内における画像変換における線形補間の様子の例を説明する図である。図22において、点250(以下、点P1と称する)、点251(以下、点P2と称する)、点252(以下、点P3と称する)、点253(以下、点P4と称する)は、補正後の代表点であり、補正前の画像においては、それぞれに対して、点P1’、点P2’、点P3’、点P4’が対応する代表点であるとする。
図22において、点P1、点P2、点P3で構成される3角形の内側の画素254(以下、点Pと称する)の補正前の位置を算出する場合、補正画像作成処理部69は、図22に示されるように、点Pを通りx軸に平行な直線と、点P1および点P2を両端とする線分P1P2が交わる点255(以下、点P5と称する)の座標を、s×P2+(1−s)×P1と表す。なお、この式において、「P1」は点P1(点250)の座標を示し、「P2」は、点P2(点251)の座標を示している。
さらに、補正画像作成処理部69は、図22に示されるように、点Pを通りx軸に平行な直線と、点P1および点P3を両端とする線分P1P3が交わる点256(以下、点P6と称する)の座標を、t×P3+(1−t)×P1と表す。なお、この式において、「P1」は点P1(点250)の座標を示し、「P3」は、点P3(点252)の座標を示している。
さらに、点Pについて、P=u×P6+(1−u)×P5が成り立つとすると、補正画像作成処理部69は、点Pを、以下に示される式(8)のように表す。
補正画像作成処理部69は、以上における、変数s、変数t、並びに変数uを、各点の位置関係から算出する。また、補正画像作成処理部69は、式(8)と同様に、補正後の画像上の点Pの、画像補正前の位置P’を、以下に示される式(9)を用いて算出する。
以上のような関係に基づいて、補正画像作成処理部69は、画像補正後の点Pに、画像補正前の点P’の位置の画素値を代入することにより画像変換を行う。しかし、式(9)を用いて算出される点P’の座標値が必ずしも整数とはならない(すなわち、補正前の画像において、補正後の画像における各画素に対応する画素が存在するとは限らない)ので、補正画像作成処理部69は、画素値を求める際に、Nearest Neighbor法、bi-linear法などの画像補間方法を用いる。
補正画像作成処理部69は、以上のような画像変換処理を、代表点として求めた点を結ぶポリゴンすべてに順次適用していき、それぞれのポリゴンの内側にあるすべての画素に対して前述の画像変換を施すことにより、最終的な補正画像を得る。
以上のようにして、補正画像作成処理部69は、代表点を用いて、3次元仮想モデルをレンダリング処理を行うので、容易に3次元顔モデルのレンダリングを行うことができ、これにより、DSP16は、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。また、これにより、カムコーダ1は、より正確に、画像の歪みを軽減または強調させた補正画像を記録媒体に記録したり、ディスプレイに表示したりする等して、ユーザに提供することができる。
図23は、本発明を適用した画像変換の例を説明する図である。図23Aにおいて、撮像画像261は、補正前の撮像画像である。図23Bにおいて、撮像画像262は、図23Aの撮像画像261に対して本発明を適用した画像変換処理を施し、仮想的にカメラ焦点を実際の撮像時よりも被写体から遠くに移動させるようにした合成画像である。
図23Aに示される撮像画像261において、近接撮像された被写体の顔の遠近感が強調されており、図23Bに示される撮像画像262の場合と比較して、被写体の顔の中央付近(すなわち、撮像画像261の中央付近)が拡大されたような不自然な画像となっている。これに対して、図23Bに示される撮像画像262は、図23Aに示される撮像画像261(補正前のオリジナル画像)と比較して、遠近感が強調されることによる不自然さが軽減されている。
図23Cにおいて、撮像画像263は、図23Aの撮像画像261に対して本発明を適用した画像変換処理を施し、仮想的にカメラ焦点を実際の撮像時よりも被写体の近くに移動させるようにした合成画像である。図23Cに示される撮像画像263は、撮像画像261(補正前のオリジナル画像)において表されている遠近感による歪みがさらに強調されている画像になっている。
このように、本発明を適用したカムコーダ1は、本発明を適用した画像変換処理を行うことにより、画像を補正することで画像の歪みを無くす方向に補正することができるだけでなく、逆に、画像に対して、被写体の顔をわざと変形させて面白い顔にするなどの特殊効果を施し、画像の娯楽性を高めることもできる。
以上においては、図1に示されるカムコーダ1において、撮像により得られた撮像画像に対して画像補正処理を行う場合について説明したが、これに限らず、例えば、カメラ付ディジタル携帯電話機やPDA等のより小型のモバイル機器であってももちろんよい。ただし、このような小型のモバイル機器の場合、カムコーダ1の場合と比較してCPUやDSP等の計算能力が低い場合がある。このような場合、画像補正の条件を限定したり、テーブル等を予め用意して利用したりすることにより、上述した計算処理の内、処理の負荷が大きい計算を省略するようにし、画像補正処理を高速に実行できるようにするのが望ましい。
以下に、本発明を、そのような計算能力の低いモバイル機器に適用する場合の例について説明する。
図24は、本発明を適用したカメラ付ディジタル携帯電話機の構成例を示す図である。
図24に示されるように、カメラ付ディジタル携帯電話機300は、各部を統括的に制御するようになされた主制御部350に対して、電源回路部351、操作入力制御部352、画像エンコーダ353、カメラインターフェース部354、LCD制御部355、画像デコーダ356、多重分離部357、記録再生部362、変復調回路部358及び音声コーデック359がバス360を介して互いに接続されて構成されている。
電源回路部351は、ユーザの操作により終話及び電源キーがオン状態にされると、図示せぬバッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話機300を動作可能な状態に起動する。
カメラ付ディジタル携帯電話機300は、CPU、ROM及びRAM等でなる主制御部350の制御に基づいて、音声通話モード時にマイクロフォン(マイク)321で集音した音声信号を音声コーデック359によってディジタル音声データに変換し、これを変復調回路部358でスペクトラム拡散処理し、送受信回路部362でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ314を介して送信する。
またカメラ付ディジタル携帯電話機300は、音声通話モード時にアンテナ314で受信した受信信号を増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部358でスペクトラム逆拡散処理し、音声コーデック359によってアナログ音声信号に変換した後、これを、スピーカ317を介して出力する。
さらにカメラ付ディジタル携帯電話機300は、データ通信モード時に電子メールを送信する場合、操作キー319及びジョグダイヤル322の操作によって入力された電子メールのテキストデータを、操作入力制御部352を介して主制御部350に送出する。
主制御部350は、テキストデータを変復調回路部358でスペクトラム拡散処理し、送受信回路部362でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ314を介して図示せぬ基地局へ送信する。
これに対してカメラ付ディジタル携帯電話機300は、データ通信モード時に電子メールを受信する場合、アンテナ314を介して図示せぬ基地局から受信した受信信号を変復調回路部358でスペクトラム逆拡散処理して元のテキストデータを復元した後、LCD制御部355を介して液晶ディスプレイ318に電子メールとして表示する。
この後カメラ付ディジタル携帯電話機300は、ユーザの操作に応じて受信した電子メールを、記録再生部362を介してメモリスティック323に記録することも可能である。
また、カメラ付ディジタル携帯電話機300のバス360には、供給された画像データに対して、画像の歪みを軽減または強調させる画像補正処理等のディジタル処理を施すDSP371が接続されている。DSP371の内部の構成は、図2を参照して説明したカムコーダ1の場合と同様であり、図2を適用することができるので、その説明を省略する。
カメラ付ディジタル携帯電話機300は、データ通信モード時に画像データを送信する場合、CCDカメラ316で撮像された画像データを、カメラインターフェース部(カメラI/F部)354を介してDSP371に供給し、画像データに対してディジタル処理を行った後、その画像データを画像エンコーダ353に供給する。
因みにカメラ付ディジタル携帯電話機300は、画像データを送信しない場合には、CCDカメラ316で撮像した画像データをカメラインターフェース部354、DSP371、並びにLCD制御部355を介して液晶ディスプレイ318に直接表示する(画像エンコーダ353を介さずに、画像データをLCD制御部355に供給し、画像データに対応する画像を液晶ディスプレイに表示する)ことも可能である。
画像エンコーダ353は、CCDカメラ316から供給された画像データを例えばMPEG(Moving Picture Experts Group )2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部357に送出する。
このとき同時にカメラ付ディジタル携帯電話機300は、CCDカメラ316で撮像中にマイクロフォン321で集音した音声を、音声コーデック359を介してディジタルの音声データとして多重分離部357に送出する。
多重分離部357は、画像エンコーダ353から供給された符号化画像データと音声コーデック359から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部358でスペクトラム拡散処理し、送受信回路部362でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ314を介して送信する。
これに対してカメラ付ディジタル携帯電話機300は、データ通信モード時に例えば簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナ314を介して図示せぬ基地局から受信した受信信号を変復調回路部358でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部357に送出する。
多重分離部357は、多重化データを分離することにより符号化画像データと音声データとに分け、バス360を介して当該符号化画像データを画像デコーダ356に供給すると共に当該音声データを音声コーデック359に供給する。
画像デコーダ356は、符号化画像データをMPEG2やMPEG4等の所定の符号化方式に対応した復号化方式でデコードすることにより再生動画像データを生成し、これを、LCD制御部355を介して液晶ディスプレイ318に供給し、これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが表示される。
このとき同時に音声コーデック359は、音声データをアナログ音声信号に変換した後、これをスピーカ317に供給し、これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まる音声データが再生される。
この場合も電子メールの場合と同様にカメラ付ディジタル携帯電話機300は、受信した簡易ホームページ等にリンクされたデータをユーザの操作により記録再生部362を介してメモリスティック323に記録することが可能である。
かかる構成に加えてカメラ付ディジタル携帯電話機300は、主制御部350またはDSP371のROMに第1の実施の形態と同様の画像補正処理を行うプログラム(図3)が格納されており、このプログラムに基づいて、DSP371において、画像の歪みを軽減または強調させる処理をし得るようになされている。
以上のようなカメラ付ディジタル携帯電話機300において、DSP371は、基本的に上述したカムコーダ1のDSP16の場合と同様に画像の歪みを軽減または強調させる処理を行う。
しかしながら、DSP371は、DSP16と比較して、その処理能力が低い場合が多く、画像補正処理の負荷を軽減させるために、画像上の顔の中心の位置と、CCDカメラ316の光軸の位置が一致すると仮定して画像補正処理を行う。
実際の光軸の位置は、画像中央に位置するが、カメラ付ディジタル携帯電話機300の場合、CCDカメラ316の解像度等、撮像に関する性能が、図1のカムコーダ1と比較して低い場合が多く、撮像により得られる画像の画質が図1のカムコーダ1と比較して低い場合が多い。従って、このようなカメラ付ディジタル携帯電話機300を用いた撮像の場合、ユーザは被写体を撮像範囲全体に収める(画像全体に被写体が撮像される)ように、より近接して撮像することが多く、そのような撮像環境下で得られた撮像画像においては、被写体の顔が画像全体に渡り大きく写っており、顔の中心はほぼ画像の中央に位置することが多い。このことに基づいて、DSP371は、上述したような仮定に従い画像補正処理を行う。これにより、DSP371は、画像補正処理の負荷を軽減させることができ、より容易に、画像の歪みを軽減または強調させる処理を行うことができる。
なお、DSP371は、カムコーダ1の場合と同様に、被写体の顔を表す3次元顔モデルとして、図6に示される楕球を2つ組み合わせた形状の3次元顔モデルを用いる。
また、計算処理能力が低いDSP371においては、処理の負荷が大きい、上述した式(5)および式(6)のようなsinやcosを利用した計算がボトルネックになる可能性がある。そこで、DSP371は、sinやcosなどの関数の計算は行わず、予め計算結果をテーブルとして用意し、それを参照することにより、計算処理を省略するとともに、同等の計算結果を得るようにする。このように複雑な計算の計算結果をテーブル化することにより、DSP371は、画像補正処理の高速化を実現させることができる。さらに、DSP371は、式(5)の計算により得られる変数kの値自体を予め算出してテーブル化し、そのテーブルを利用して式(5)の演算結果を近似することにより、更なる高速化を実現することができる。
また、DSP371は、式(7)においても、上述した場合と同様に、sinやcosの関数を用いた計算の結果をテーブル化することにより高速化を実現することができる。
以上のように、DSP371がテーブルを用いたり処理条件を制限したりするなどして、より高速に画像補正処理を行うので、本発明を適用したカメラ付ディジタル携帯電話機300は、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。
なお、上述したカメラ付ディジタル携帯電話機300の場合のように、本発明は、撮像機能以外の機能を有する構成の情報処理装置においても適用することができる。従って、上述したカムコーダ1またはカメラ付ディジタル携帯電話機300は、上述した以外の機能を有するようにしてももちろんよい。逆に、本発明は、画像処理機能を有する情報処理装置であれば適用することが可能であるので、撮像機能を有していない、例えば、パーソナルコンピュータ等の画像処理装置にも適用することができる。
図25は、本発明を適用したパーソナルコンピュータの構成例を示す図である。
図25において、パーソナルコンピュータ400のCPU401は、ROM402に記憶されているプログラム、または記憶部413からRAM403にロードされたプログラムに従って各種の処理を実行する。RAM403にはまた、CPU401が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU401、ROM402、およびRAM403は、バス405を介して相互に接続されている。このバス405にはまた、上述したDSP16またはDSP371と同様に、供給された画像の歪みを軽減または強調させる処理を行う画像処理部404が接続されている。
バス405には、さらに、入出力インタフェース410も接続されている。入出力インタフェース410には、キーボード、マウスなどよりなる入力部411、CRT、LCDなどよりなるディスプレイ、並びにスピーカなどよりなる出力部412、ハードディスクなどより構成される記憶部413、モデムなどより構成される通信部414が接続されている。通信部414は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース410にはまた、必要に応じてドライブ415が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア421が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部413にインストールされる。
以上のようなパーソナルコンピュータ400において、画像処理部404は、CPU401に制御される等して、RAM403、記憶部413、若しくはドライブ415に接続されたリムーバブルメディア421に記憶されている画像データ、または、通信部414を介して外部より取得した画像データを、バス405を介して取得し、その画像データに対して、上述したような画像の歪みを軽減または強調させる画像補正処理を行う。
画像補正処理が終了すると画像処理部404は、CPU401に制御される等して、補正済みの画像データを、バス405を介して、RAM403、記憶部413、またはドライブ415に接続されたリムーバブルメディア421に供給して記憶させたり、出力部412に供給してディスプレイ等に表示させたり、通信部414に供給してパーソナルコンピュータ400の外部に供給させたりする。
このように画像処理部404は、上述したDSP16またはDSP371と同様に、より正確に、画像の歪みを軽減または強調させる処理を行うことができる。これにより、パーソナルコンピュータ400は、より正確に、画像の歪みを軽減または強調させた補正画像を記録媒体に記録したり、ディスプレイに表示したりする等して、ユーザに提供することができる。
以上に説明したように、本発明を適用した各種の情報処理装置は、顔検出処理により被写体の顔の位置を検出することで、画像から「近接撮影により生ずる遠近感が強調される歪み」を正確に除去あるいは強調することができる。
また、本発明を適用した各種の情報処理装置は、撮影された被写体の顔の画像から3次元顔モデルを再構築しているので、補正処理対象の画像に対して、単なる2次元上での画像変形では得られない正確な補正処理を行うことができる。
さらに、本発明を適用した各種の情報処理装置は、3次元顔モデルとして、楕球を2つ組み合わせた形状を用いており、「複雑でなく、かつ正確な顔のモデル」を構成するので、複雑な計算を必要とせずに、容易に、より正確な補正処理を行うことができる。
また、本発明を適用した各種の情報処理装置は、3次元顔モデルの、実際に撮像により得られた画像においては見えなかった部分(画像に含まれていない部分)を削除して、見えている部分に対してのみ変形処理を行うので、補正後の画像において破綻をきたすことがなく、より正確な補正処理を行うことができる。
なお、本発明を適用した各種の情報処理装置は、例えば、顔検出処理により被写体の顔の位置を検出し、その顔の位置を画像の中心と想定し、2次元上での画像変形により顔画像を変形するようにしてもよい。また、例えば、顔を撮影する場合、ほとんどの場合が中央に顔が撮影されるので、顔検出を行わずに、顔は中心にあると仮定して、撮影された被写体の顔の画像から3次元顔モデルを再構築し、画像より歪みの除去あるいは強調を行うようにしても良い。
以上に説明したように、本発明を適用した各種の情報処理装置は、人物の顔などを近接撮像して得られた画像における、カメラに近い鼻などが大きく映ってしまうような不自然さを、解消することができる。また逆に、より強調して、歪みを大きくするように画像を合成することもできる。さらに、本発明を適用した各種の情報処理装置は、変換モデルとして、3次元仮想空間を想定し、カメラや被写体の位置を推定し、その後それらの位置関係を変えることにより、正確な変換を行うことができる。すなわち、本発明を適用した各種の情報処理装置は、あたかも被写体から見たカメラの位置を、遠くまたは近くに動かして撮影し直したかのような画像を合成することができる。
なお、本発明を適用した各種の情報処理装置は、静止画像データに対しても、上述した動画像データに対する場合と同様の画像補正処理を行うことができる。
また、以上においては、画像(撮像画像)に含まれる被写体の顔の部分を検出し、その顔画像について補正処理を施す場合について説明したが、補正の対象とする画像は、被写体の顔以外であってもよく、被写体の目、手、指、胴体等、検出可能な画像であれば何でもよい。また、被写体としては、人物や動物以外であってもよく、植物や建造物等、どのような被写体であってもよい。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、図1、図24、または図25に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア51、メモリカード323、若しくはリムーバブルメディア421により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM42、記憶部45に含まれるハードディスク、主制御部351に含まれるROM、ROM402、または、記憶部413に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 カムコーダ, 11 レンズ, 12 絞り, 13 CCD, 14 前処理回路, 15 A/D変換部, 16 DSP, 17 コーデック部, 18 画像用記憶部, 19 D/A変換部, 20 ビデオエンコーダ, 21 ビデオモニタ, 61 画像データ入力部, 62 内部バス, 63 保持制御部, 65 設定値取得部, 66 顔検出処理部, 67 3次元顔モデル位置算出処理部, 68 テクスチャ設定処理部, 69 補正画像作成処理部, 70 画像データ出力部, 81 画像データ保持部, 82 設定値保持部, 83 仮想データ保持部, 100 顔画像, 120 3次元顔モデル, 140 カメラ焦点, 142 仮想スクリーン, 300 カメラ付ディジタル携帯電話機, 316 CCDカメラ, 371 DSP, 400 パーソナルコンピュータ, 404 画像処理部
Claims (16)
- 画像データに対して、画像を補正する処理を行う画像処理装置の画像処理方法であって、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出ステップと、
前記画像データに対応する画像に含まれる、前記検出ステップの処理により検出された前記部分画像の変形を行う変形ステップと
を含むことを特徴とする画像処理方法。 - 前記変形ステップは、さらに、
撮像手段と前記部分画像に対応する被写体との距離を検出する、距離検出ステップと、
撮影時に前記距離を変化させた場合に生じる画像変化に対応する変形を前記部分画像に対して施す、距離変換ステップと
を含むことを特徴とする画像処理方法。 - 前記画像データに対応する画像は、被写体を撮像して得られた撮像画像であり、
前記部分画像は、前記被写体の顔の画像である
ことを特徴とする請求項1に記載の画像処理方法。 - 前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを補正するように、前記部分画像の変形を行う
ことを特徴とする請求項1に記載の画像処理方法。 - 前記画像データに対応する画像は、被写体に近接した位置より前記被写体を撮像して得られた画像であり、
前記変形ステップは、前記被写体に近接した位置より前記被写体を撮像したために前記部分画像に発生した、前記被写体の立体的形状による画像の歪みを強調するように、前記部分画像の変形を行う
ことを特徴とする請求項1に記載の画像処理方法。 - 画像データに対して、画像を補正する処理を行う画像処理装置において、
前記画像データに対応する画像より、前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出手段と、
前記画像データに対応する画像に含まれる、前記検出手段により検出された前記部分画像の変形を行う変形手段と
を備えることを特徴とする画像処理装置。 - 画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記画像データに対応する画像より前記画像の一部分の画像であり、前記補正の対象とされる部分画像を検出する検出手段として、機能させるモジュールと、
コンピュータを、前記画像データに対応する画像に含まれる前記検出ステップの処理により検出された前記部分画像の変形を行う変形手段として、機能させるモジュールと
を含むことを特徴とする画像処理プログラム。 - 撮像画像データに対して、画像を補正する処理を行う画像処理装置の画像処理方法であって、
前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成ステップと、
前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出ステップと、
前記作成ステップの処理により作成された前記3次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成ステップと
を含むことを特徴とする画像処理方法。 - 前記被写体は、顔である
ことを特徴とする請求項8に記載の画像処理方法。 - 前記3次元モデルは、1つの楕球により構成されるモデルである
ことを特徴とする請求項8に記載の画像処理方法。 - 前記3次元モデルは、複数の楕球の一部分をそれぞれ組み合わせた構成のモデルである
ことを特徴とする請求項8に記載の画像処理方法。 - 前記作成ステップの処理により作成された前記3次元モデルより、前記第1の画像に含まれていない部分を削除する削除ステップをさらに含み、
前記生成ステップは、前記削除ステップにより、前記第1の画像に含まれていない部分が削除された前記3次元モデルが投影された画像を前記第2の撮像画像として生成する
ことを特徴とする請求項8に記載の画像処理方法。 - 前記第1の撮像画像に対する前記被写体の画像の割合と、前記生成ステップの処理により生成される第2の撮像画像に対する前記3次元モデルが投影された画像の割合とが一致するように、前記第2の撮像画像の画像サイズを調整する画像サイズ調整ステップをさらに含む
ことを特徴とする請求項8に記載の画像処理方法。 - 前記第1の撮像画像より前記被写体の画像である部分を検出する検出ステップをさらに含み、
前記算出ステップは、前記検出ステップの処理により検出された前記被写体の画像である部分の大きさ、並びに、前記第1の撮像画像が得られた撮像処理において用いられたレンズの画角に基づいて、前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する
ことを特徴とする請求項8に記載の画像処理方法。 - 撮像画像データに対して、画像を補正する処理を行う画像処理装置において、
前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段と、
前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段と、
前記作成手段により作成された前記3次元モデルを用いて、前記算出手段により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成手段と
を備えることを特徴とする画像処理装置。 - 撮像画像データに対して、画像を補正する処理を行う画像処理プログラムであって、
コンピュータを、前記撮像画像データに対応する第1の撮像画像より、前記第1の撮像画像の被写体に対応する3次元モデルを作成する作成手段として、機能させるモジュールと、
コンピュータを、前記第1の撮像画像の、前記被写体と、前記被写体を撮像した位置との位置関係を算出する算出手段として、機能させるモジュールと、
コンピュータを、前記作成ステップの処理により作成された前記3次元モデルを用いて、前記算出ステップの処理により算出された前記位置関係と異なる位置から前記被写体を撮像する際に得られる第2の撮像画像を生成する生成手段として、機能させるモジュールと
を含むことを特徴とする画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003271023A JP2005025703A (ja) | 2003-07-04 | 2003-07-04 | 画像処理方法および装置、並びに画像処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003271023A JP2005025703A (ja) | 2003-07-04 | 2003-07-04 | 画像処理方法および装置、並びに画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005025703A true JP2005025703A (ja) | 2005-01-27 |
Family
ID=34190812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003271023A Withdrawn JP2005025703A (ja) | 2003-07-04 | 2003-07-04 | 画像処理方法および装置、並びに画像処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005025703A (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008503779A (ja) * | 2004-06-24 | 2008-02-07 | ソニー エリクソン モバイル コミュニケーションズ, エービー | 近接アシスト3dレンダリング |
JP2008250400A (ja) * | 2007-03-29 | 2008-10-16 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
JP2009031870A (ja) * | 2007-07-24 | 2009-02-12 | Seiko Epson Corp | 被写体距離推定のための画像処理 |
JP2009053914A (ja) * | 2007-08-27 | 2009-03-12 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
JP2010003313A (ja) * | 2009-08-19 | 2010-01-07 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
JP2010097534A (ja) * | 2008-10-20 | 2010-04-30 | Nikon Corp | 画像処理装置、画像処理方法、電子カメラおよび画像処理プログラム |
JP2011141889A (ja) * | 2011-03-14 | 2011-07-21 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
US8031915B2 (en) | 2007-03-29 | 2011-10-04 | Seiko Epson Corporation | Image processing device and image processing method |
US8062123B2 (en) | 2005-08-10 | 2011-11-22 | Sega Corporation | Game system |
WO2015198478A1 (ja) * | 2014-06-27 | 2015-12-30 | 株式会社 市川ソフトラボラトリー | 画像歪み補正装置、情報処理装置および画像歪み補正方法 |
CN107045711A (zh) * | 2016-02-05 | 2017-08-15 | 株式会社万代南梦宫娱乐 | 图像生成系统以及图像处理方法 |
CN110163953A (zh) * | 2019-03-11 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 三维人脸重建方法、装置、存储介质和电子装置 |
-
2003
- 2003-07-04 JP JP2003271023A patent/JP2005025703A/ja not_active Withdrawn
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008503779A (ja) * | 2004-06-24 | 2008-02-07 | ソニー エリクソン モバイル コミュニケーションズ, エービー | 近接アシスト3dレンダリング |
US8062123B2 (en) | 2005-08-10 | 2011-11-22 | Sega Corporation | Game system |
US8031915B2 (en) | 2007-03-29 | 2011-10-04 | Seiko Epson Corporation | Image processing device and image processing method |
JP2008250400A (ja) * | 2007-03-29 | 2008-10-16 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
JP2009031870A (ja) * | 2007-07-24 | 2009-02-12 | Seiko Epson Corp | 被写体距離推定のための画像処理 |
JP2009053914A (ja) * | 2007-08-27 | 2009-03-12 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
US8249312B2 (en) | 2007-08-27 | 2012-08-21 | Seiko Epson Corporation | Image processing device and image processing method |
JP2010097534A (ja) * | 2008-10-20 | 2010-04-30 | Nikon Corp | 画像処理装置、画像処理方法、電子カメラおよび画像処理プログラム |
JP2010003313A (ja) * | 2009-08-19 | 2010-01-07 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
JP4737324B2 (ja) * | 2009-08-19 | 2011-07-27 | セイコーエプソン株式会社 | 画像処理装置、画像処理方法およびコンピュータプログラム |
JP2011141889A (ja) * | 2011-03-14 | 2011-07-21 | Seiko Epson Corp | 画像処理装置および画像処理方法 |
WO2015198478A1 (ja) * | 2014-06-27 | 2015-12-30 | 株式会社 市川ソフトラボラトリー | 画像歪み補正装置、情報処理装置および画像歪み補正方法 |
CN107045711A (zh) * | 2016-02-05 | 2017-08-15 | 株式会社万代南梦宫娱乐 | 图像生成系统以及图像处理方法 |
CN107045711B (zh) * | 2016-02-05 | 2023-08-11 | 株式会社万代南梦宫娱乐 | 图像生成系统以及图像处理方法 |
CN110163953A (zh) * | 2019-03-11 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 三维人脸重建方法、装置、存储介质和电子装置 |
CN110163953B (zh) * | 2019-03-11 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 三维人脸重建方法、装置、存储介质和电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200296282A1 (en) | Imaging system, imaging apparatus, and system | |
US11671712B2 (en) | Apparatus and methods for image encoding using spatially weighted encoding quality parameters | |
US9860448B2 (en) | Method and electronic device for stabilizing video | |
JP7226484B2 (ja) | 撮像システム、撮像装置、動画表示装置、画像処理装置、方法およびプログラム。 | |
JP6471777B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP5450739B2 (ja) | 画像処理装置及び画像表示装置 | |
US20160080647A1 (en) | Image processing device, image processing method, and program | |
US20160073022A1 (en) | Image processing device, image processing method, and program | |
WO2022001806A1 (zh) | 图像变换方法和装置 | |
JP2011119974A (ja) | パノラマ画像合成装置、パノラマ画像合成方法、及びプログラム | |
JP2005025703A (ja) | 画像処理方法および装置、並びに画像処理プログラム | |
JP2018037786A (ja) | 撮影装置、方法およびプログラム | |
US20230215018A1 (en) | Electronic device including camera and method for generating video recording of a moving object | |
JP2020080194A (ja) | 画像処理システム、画像処理方法およびプログラム | |
JP2023019059A (ja) | 撮像装置及び撮像システム | |
CN115293971A (zh) | 图像拼接方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |