説明

画像処理装置および画像処理方法、プログラム

【課題】歪曲収差補正処理を実行する際に画像中の被写体の顔が欠けたり、顔が検出できなくなることを防ぐ画像処理技術の実現。
【解決手段】画像処理装置は、画像データの外縁の形状変化を伴う画像処理を行う画像処理手段と、画像データに含まれる顔領域を検出する顔検出手段と、前記画像処理の前後の画像データに関する顔検出結果を比較する比較手段と、前記比較手段による比較結果に応じて、前記画像処理のパラメータを変更するパラメータ変更手段と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル画像データの画像処理装置および画像処理方法に関するものである。
【背景技術】
【0002】
近年、デジタルカメラの性能向上により、撮影される画像の解像度は非常に高くなり、銀塩写真に勝るとも劣らない高品質の写真画像を得ることが可能となった。撮影した画像は、パーソナルコンピュータ等に搭載される画像処理アプリケーションを使用して閲覧したり、画像編集処理を施したりすることができる。
【0003】
一般に、カメラで撮影した画像には、レンズの歪曲収差に起因する幾何学的な歪みが生ずる。この歪みを補正するため、撮影レンズなどの撮影時情報を利用して、収差補正を行うための画像処理アプリケーションも登場している。このような歪曲収差補正処理を行うことで、より均質で高画質な画像を得ることができる。
【0004】
図2は歪曲収差補正処理を示し、(a)は樽形に歪んだ画像を補正する場合、(b)は糸巻形に歪んだ画像を補正する場合をそれぞれ表している。
【0005】
歪曲収差補正処理は、画素位置の移動を伴う補正であるため、画像の外縁の形状も変化する。これに対して、画像の外縁の形状は一般的に矩形状である。そこで、歪曲収差補正処理後に画像を最大サイズの矩形あるいは、撮影したカメラのアスペクト比にトリミングすることにより周辺部の画像を切り取って矩形状の画像とするのが一般的である(例えば、特許文献1参照)。
【特許文献1】特開2007−129587号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、周辺部に人の顔が写っている写真を歪曲収差補正処理後にトリミングした場合、レンズの幾何学的歪みは正しく補正されるが、被写体の顔の一部が欠けてしまうことや顔の全部が切り取られてしまうことがある。例えば、画面の端部に被写体の顔がある場合に、このトリミングによって顔の一部が欠けてしまう場合がある(図3参照)。
【0007】
本発明は、上記課題に鑑みてなされ、歪曲収差補正処理を実行する際に画像中の被写体の顔が欠けたり、顔が検出できなくなることを防ぐ画像処理技術を実現する。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の画像処理装置は、画像データの外縁の形状変化を伴う画像処理を行う画像処理手段と、画像データに含まれる顔領域を検出する顔検出手段と、前記画像処理の前後の画像データに関する顔検出結果を比較する比較手段と、前記比較手段による比較結果に応じて、前記画像処理のパラメータを変更するパラメータ変更手段と、を有する。
【0009】
また、本発明の画像処理方法は、画像データの外縁の形状変化を伴う画像処理を行う画像処理工程と、画像データに含まれる顔領域を検出する顔検出工程と、前記画像処理の前後の画像データに関する顔検出結果を比較する比較工程と、前記比較工程による比較結果に応じて、前記画像処理のパラメータを変更するパラメータ変更工程と、を有する。
【発明の効果】
【0010】
本発明によれば、歪曲収差補正処理を実行する際に画像中の被写体の顔が欠けたり、顔が検出できなくなることを防ぐことができる。
【発明を実施するための最良の形態】
【0011】
以下に、添付図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【0012】
尚、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【0013】
[第1の実施形態]
図1は、本発明に係る実施形態の画像処理装置の構成を示すブロック図である。
【0014】
図1において、CPU101は、システム全体の動作を統括制御し、一次記憶部102に格納されたプログラムなどを実行する。
【0015】
一次記憶部102は主にメモリであり、二次記憶部103に記憶されたプログラムなどを読み込んで格納する。
【0016】
二次記憶部103は、例えばハードディスクなどが該当する。一次記憶部102の容量は二次記憶部103の容量より小さく、一次記憶部102に格納しきれないプログラムやデータなどは二次記憶部103に格納される。また、長時間記憶しておく必要があるデータなども二次記憶部103に格納される。本実施形態の処理手順を実現するようなプログラムは二次記憶部103に格納され、プログラム実行時に一次記憶部102に読み出して、CPU101が実行する。
【0017】
入力デバイス104は、例えばユーザ操作を受け付けるマウスやキーボードなどが該当し、プログラムなどに割り込み信号を送るために用いられる。
【0018】
出力デバイス105は、例えば表示装置としてのモニタやプリンタなどが該当する。
【0019】
読込デバイス106は、CCDなどの撮像素子により生成された画像データを直接又は間接的に一次記憶部102や二次記憶部103に対して書き込み/読み出しを行う。
【0020】
特性データ供給部107は、不図示のメモリを有する。このメモリは、各種レンズに応じたレンズ特性の情報、具体的には撮影レンズに対応した補正係数を格納している。後述する歪曲収差補正処理は、補正関数を予め定めておき、補正関数に特性データ供給部107から読み出した補正係数を適用することで補正量を算出し、補正量に応じて画像を変形して、画像の外縁の形状変化を伴う画像処理である。なお、レンズ特性は特性データ供給部107のメモリに限らず、二次記憶部103や不図示の外部記憶装置に格納されたデータを参照しても良い。
【0021】
図4は、本実施形態における画像処理装置(以下、画像処理アプリケーション)のユーザインタフェース(GUI)を例示している。
【0022】
図4において、画像表示部401には、処理対象画像をフィット表示する(ウィンドウ内に処理対象画像の全領域が表示される範囲内で、処理対象画像を最大まで拡大して表示する)。処理対象画像は、オペレーティングシステムのファイル管理システム上から、画像表示部401にファイルをドラッグアンドドロップするなどの方法で指定される。また、処理対象画像に何らかの画像処理を施した結果の画像を表示することもできる。
【0023】
歪曲収差補正実行ボタン(以下、実行ボタン)402が押下されると、歪曲収差補正処理が実行され、補正結果の画像が画像表示部401に表示される。歪曲収差補正処理を実行した場合、補正結果の画像の外縁の形状が矩形でない場合がある。その場合は、結果画像の外縁に内接する矩形領域で結果画像を切り出し、切り出した画像を結果画像としても良い(図2参照)。
【0024】
リセットボタン403が押下されると、歪曲収差補正処理を施す前の画像が画像表示部401に表示される。
【0025】
画像処理アプリケーションを終了させる場合には、終了ボタン404を押下する。
【0026】
ここで実行ボタン402が押された際の処理について、図5のフローを参照して説明する。
【0027】
S501において、まず画像データを読み出し、画像表示部401に表示する。
【0028】
S502では、読み出された画像データの顔検出を実行し、検出情報を記録する。ここで記録する情報は、検出した顔の数それぞれの顔の位置やサイズが含まれる。例えば4つの顔が検出された場合は図6のテーブルに示すような4つの顔IDが顔検出情報として記録される。
【0029】
顔を検出する技術としては、様々な手法が公知となっている。例えば、ニューラルネットワークに代表される学習を用いた方法がある。また、目、鼻、口、および、顔の輪郭といった物理的な形状の特徴のある部位を画像情報からテンプレートマッチングを用いて識別する手法がある。他にも、肌の色や目の形といった画像情報の特徴量を検出し統計的解析を用いた手法がある。さらに、直前の顔領域が検出された位置の近傍であるか判定したり、服の色を加味するために顔領域の近傍の色を判定したり、あるいは、画面の中央付近ほど顔識別のための閾値を低く設定したりする方法がある。
【0030】
S503では歪曲収差補正パラメータ(以下、補正パラメータ)を決定する。
【0031】
本実施形態の歪曲収差補正処理は、例えば特開平6−165024号公報に開示された公知の方法で行う。すなわち、撮影時光学情報を用いて特性データ供給部107から特性データを得て、予め定めた補正関数に適用することで像高(画像中心からの距離)に対する補正量を決定する。本実施形態では、補正関数は像高をパラメータとする3次関数とする。
【0032】
歪曲収差補正処理を行うために、レンズを識別する識別情報、ズーム位置を特定するための撮影時焦点距離情報、F値などの撮影時光学情報が必要である。本実施形態では、これらの情報をExif規格で定められたMakerNoteタグに格納する。さらに補正精度を上げるために、上記情報に加えて被写体距離情報など他の情報を用いても良い。
【0033】
次にS504において、補正後の画像で補正前に検出されていた画像の顔が欠けるか否かを判定する。
【0034】
顔が欠けるか否かの判定方法について図7および図8を参照して説明する。
【0035】
図2で説明したように、歪曲収差補正処理は、画素位置の移動を伴う補正であるため、画像の外縁の形状も変化してしまう。これに対して、画像の外縁の形状は一般的に矩形状であり、歪曲収差補正処理後には画像を最大サイズの矩形あるいは、撮影したカメラのアスペクト比にトリミングして、周辺部の画像を切り取る。
【0036】
すなわち図7の元画像に示すように、幅W、高さHであった画像に歪曲収差補正処理を施すことによって、補正結果の画像aとなる。この結果、補正後の画像の幅はWa、高さはHaとなり、新たな補正結果画像は始点(xd1,yd1)、終点(xd2,yd2)で囲まれる矩形となる。以下では、この矩形領域を有効画像領域と呼ぶ。
【0037】
本実施形態では、有効画像領域に最大サイズの矩形を用いているが、撮影したカメラのアスペクト比と同じようにトリミングしたり、ユーザ自身が後でトリミングする領域でも良い。
【0038】
ここで、顔が欠けるか否かの判定処理を図8のフローを参照して説明する。
【0039】
S801において、顔検出データに対して、歪曲収差補正関数を適用し、補正後の顔位置の座標を求める。
【0040】
次にS802において、補正後の顔位置の座標が有効画像領域内にあれば、S803に進む。補正後の顔位置の座標が一部でも有効画像領域外にある場合には、S805に進み、歪曲収差補正処理によって顔が欠けると判定される。
【0041】
S803では、全ての顔について補正関数を適用するまでS801からの処理を繰り返し、全ての顔について適用されたならば、S804に進み、歪曲収差補正処理によって顔が欠けないと判定される。
【0042】
上記の処理によってS504での顔が欠けるか否かを判定することができる。
【0043】
顔が欠けない場合にはS505に進み、歪曲収差補正処理を実行する。
【0044】
顔が欠ける場合にはS506に進み、歪曲収差補正処理を実行しない。
【0045】
画像処理アプリケーションは実行ボタン402が押された際に図5の処理を実行する。そして、顔が欠けてしまうと判定された場合には「被写体の顔が欠けてしまいます。」といった旨のメッセージなどによりユーザに警告するためのダイアログを表示して処理を中止する。あるいは「被写体の顔が欠けてしまいます。処理を中止しますか?」といったダイアログを表示してユーザに歪曲収差補正処理を実行するか確認し、ユーザがそれでも歪曲収差補正処理を実行したい場合にのみ処理を行うようにしても良い。また、顔が欠けてしまう場合には、S503の歪曲収差補正処理の反映度合が小さくなる方向に補正パラメータを変更して、再度図8のフローに基づく処理を実行しても良い。
【0046】
また、本実施形態では歪曲収差補正処理について例示したが、所定角度回転させた画像から有効画像領域を切り出す処理にも有効である。
【0047】
以上のように、歪曲収差補正処理によって被写体の顔が有効画像領域から欠けてしまう場合には、歪曲収差補正処理を実行しないことで、被写体の顔が切り取られることを防ぐことができる。
【0048】
さらに、本実施形態では実際に画像中の全ての画素について、歪曲収差補正処理を行う前に顔が欠けるか否かの判定が可能であるため、高速に判定することができる。
【0049】
[第2の実施形態]
第1の実施形態では、画像に歪曲収差補正処理を施した後、顔位置が有効画像領域から欠けるか否かを判定し、その結果に応じて歪曲収差補正処理を行うか否かを判定している。しかしながら、実際には顔の一部が欠けた場合でも顔を検出できる場合がある。そこで、本実施形態では、顔検出が可能か否かを判定して補正パラメータを決定する処理について説明する。
【0050】
本実施形態は、図1に示す装置構成と図4に示すGUIにより実現可能である。
【0051】
図9は、第2の実施形態の画像処理装置による実行ボタン402が押下された際の処理を示すフローチャートである。
【0052】
S901において、まず画像を読み込み画像表示部401に表示する。
【0053】
次にS902において、読み込まれた画像データの顔検出を実行し、図6に示すような情報を記録する。
【0054】
ここで、各顔IDの始点とサイズを各顔IDの顔領域と定義する。
【0055】
次にS903において補正パラメータの初期値を決定する。
【0056】
本実施形態における歪曲収差補正処理も、特開平6−165024号公報に開示された方法により実行する。
【0057】
また、レンズ収差補正処理を行うために必要となる、レンズを識別する識別情報、ズーム位置を特定するための撮影時焦点距離情報、F値などの撮影時光学情報はExif規格で定められたMakerNoteタグに格納する。
【0058】
以上の方法によって補正パラメータの初期値が決定される。
【0059】
S904において、元画像データ全体に歪曲収差補正処理を施す。
【0060】
S905において、歪曲収差補正処理後の画像に対して、顔検出処理を行い、補正後の検出結果として、各顔IDの始点とサイズを図6のようなテーブルに記録する。このテーブルは補正前のテーブルとは別々に保持する。
【0061】
S906では補正前後の顔検出結果を比較する。比較結果として補正前の顔検出結果が補正後の顔検出結果に対して所定閾値内にある場合には、補正の前後で顔検出結果が大きく変わらないので、現状の補正パラメータによる歪曲収差補正処理で顔が欠けることがないと判定し、本処理を終了する。
【0062】
ここで、上記S906での顔検出結果の判定方法について図10のフローを参照して説明する。
【0063】
S1001において、まず顔IDに0を入力して初期化する。
【0064】
S1002において、顔(ID)の座標について、上記補正パラメータを用いて補正後の顔IDの座標を求める。ここで求める座標は顔IDの始点とサイズである。
【0065】
S1003において、S1002で求めた補正後の顔IDの始点とサイズの閾値内にS905で求めた顔領域が存在するか否かを検索する。
【0066】
ここで閾値として、S1002で求めた補正後の顔IDのサイズの縦横プラス30%の領域が設定される。
【0067】
S1002で検索した結果、S905で求めた顔領域が存在しなければ、変化量が大きいと判定し、S1006に進む。
【0068】
顔領域が存在した場合はS1004に進み、補正前の全ての顔IDについて補正を実施した場合にはS1007に進み、実施していない場合にはS1005に進み、IDを1プラスして、S1002に戻る。
【0069】
S1006において、変化量が大きい場合には、顔検出結果が大きく変わることになるのでS907に進む。
【0070】
S907では補正パラメータを10%低減するようにパラメータ変更を行って、S904の歪曲収差補正処理を再度行う。
【0071】
なお、S1003で今回の補正前後の顔検出結果の検索範囲を、顔IDのサイズの縦横プラス30%としたが、これは、これ以上の範囲を検索すると別の顔も検索結果として入ってしまう可能性があるからである。よって、顔の数によってはこの検索範囲を広げても良い。
【0072】
また、S907における補正パラメータを減らす量として一律10%としたが、これはレンズの種類によって変化量が大きいレンズや小さいレンズがあるためであり、レンズごとの違いを考慮しなくても良いように10%としている。
【0073】
別の方法として、レンズの種類や補正パラメータのテーブルを参照して、変化量の大小によって補正パラメータの低減量を変更しても良い。
【0074】
なお、本実施形態では、顔検出処理に全ての画像データを用いたが、処理を高速化するために、間引いた画像データでも良い。
【0075】
上記の実施形態によれば、歪曲収差補正処理の前後で顔検出の結果が大きく変化しないように補正パラメータを決定することができる。
【0076】
[他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給しても達成可能である。すなわち、そのシステムあるいは装置のコンピュータ(CPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【0077】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0078】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性の半導体メモリカード、ROMなどを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合もある。
【0079】
しかし、さらにプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0080】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる場合も有得る。その後、プログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0081】
【図1】本発明に係る実施形態の画像処理装置の構成を示すブロック図である。
【図2】歪曲収差補正処理を説明する図である。
【図3】歪曲収差補正処理による課題を説明する図である。
【図4】本実施形態の画像処理アプリケーションによるユーザインタフェースを例示する図である。
【図5】第1の実施形態による歪曲収差補正処理結果の判定処理を示すフローチャートである。
【図6】本実施形態による顔検出情報のテーブルを例示する図である。
【図7】第1の実施形態による歪曲収差補正処理を説明する図である。
【図8】第1の実施形態による歪曲収差補正処理結果の判定処理を示すフローチャートである。
【図9】第2の実施形態による顔検出結果の判定処理を示すフローチャートである。
【図10】第2の実施形態による顔検出結果の判定処理を示すフローチャートである。

【特許請求の範囲】
【請求項1】
画像データの外縁の形状変化を伴う画像処理を行う画像処理手段と、
画像データに含まれる顔領域を検出する顔検出手段と、
前記画像処理の前後の画像データに関する顔検出結果を比較する比較手段と、
前記比較手段による比較結果に応じて、前記画像処理のパラメータを変更するパラメータ変更手段と、を有することを特徴とする画像処理装置。
【請求項2】
前記画像処理は、歪曲収差補正処理であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像処理は、画像を所定角度回転させる処理であることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記比較手段は、前記画像処理の前後の画像データから検出された顔位置および顔領域のサイズの差が所定閾値内にあるか否かを判定することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記パラメータ変更手段は、前記画像処理の前の画像データから検出された顔位置および顔領域のサイズが、前記画像処理の後の画像データから検出された顔位置および顔領域のサイズの閾値内にない場合、前記画像処理のパラメータを減じる方向に変更することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
被写体を撮像して画像データを生成する撮像手段と、
前記撮像手段により撮像された画像データを表示する表示手段と、をさらに有することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
画像データの外縁の形状変化を伴う画像処理を行う画像処理工程と、
画像データに含まれる顔領域を検出する顔検出工程と、
前記画像処理の前後の画像データに関する顔検出結果を比較する比較工程と、
前記比較工程による比較結果に応じて、前記画像処理のパラメータを変更するパラメータ変更工程と、を有することを特徴とする画像処理方法。
【請求項8】
請求項7に記載の画像処理方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−72761(P2010−72761A)
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【出願番号】特願2008−237183(P2008−237183)
【出願日】平成20年9月16日(2008.9.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】