JP2010257482A - 画像処理装置およびその方法 - Google Patents

画像処理装置およびその方法 Download PDF

Info

Publication number
JP2010257482A
JP2010257482A JP2010157308A JP2010157308A JP2010257482A JP 2010257482 A JP2010257482 A JP 2010257482A JP 2010157308 A JP2010157308 A JP 2010157308A JP 2010157308 A JP2010157308 A JP 2010157308A JP 2010257482 A JP2010257482 A JP 2010257482A
Authority
JP
Japan
Prior art keywords
area
region
red
candidate
eye
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.)
Granted
Application number
JP2010157308A
Other languages
English (en)
Other versions
JP4850961B2 (ja
Inventor
Kiyoshi Umeda
清 梅田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010157308A priority Critical patent/JP4850961B2/ja
Publication of JP2010257482A publication Critical patent/JP2010257482A/ja
Application granted granted Critical
Publication of JP4850961B2 publication Critical patent/JP4850961B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)
  • Image Analysis (AREA)

Abstract

【課題】 彩度に着目した場合、被写体(人)によっては赤目を検出できない場合がある。
【解決手段】 赤領域抽出部202は、入力画像の画素ごとに、青色成分を除く色成分に基づき赤色領域の評価量を算出し、その評価量に基づき赤色領域を構成する候補画素を抽出する。赤丸領域抽出部203は、候補画素が構成する円または楕円に近い形状の候補領域を抽出する。特徴量判定部204は、候補領域から算出した目に関する特徴量に基づき、候補領域を補正領域にするか否かを決定する。
【選択図】 図2

Description

本発明は画像処理装置およびその方法に関し、例えば、目の色調不良を示す画像領域を検出する画像処理に関する。
カメラのフラッシュに起因する目の色調不良を補正する方法が提案されている。なお、目の色調不良は、赤目現象として一般によく知られている。赤目現象は、照明の少ない環境下で、人間あるいは犬や猫などの動物を、フラッシュを使用して撮影した際、開いた瞳孔部分に入ったフラッシュの光が眼底で反射して、毛細血管が赤く光る現象である。色素が薄い(少ない)人の方が、瞳孔すなわち水晶体の透過率が高いため、赤目現象を生じ易いとされている。
また、近年普及したディジタルカメラはさらに小型化が進み、レンズの光軸とフラッシュの光源位置が近付く傾向にある。一般に、フラッシュの光源位置がレンズの光軸に近いほど、赤目現象が発生し易いとされ、その対策は重要な課題になっている。
赤目現象を防ぐ一つの手段として、撮影を行う際にプレ発光を行い、被写体の瞳孔が閉じた上で撮影を行う方法が知られている。しかし、この方法は、通常の撮影に比べて電池を消耗させることや、プレ発光によって被写体の表情が崩れる不具合がある。
そこで、近年、ディジタルカメラによる撮影で得られたディジタル画像データを、パーソナルコンピュータなどを使用して補正、加工することで、赤目を修正する方法が数多く提案されている。
ディジタル画像データ上で赤目を補正する方法は、大別すると手動補正、半自動補正、自動補正に分類することができる。
手動補正は、ユーザが、マウスやスタイラスとタブレットなどのポインティングデバイスやタッチパネルを使用して、ディスプレイに表示された赤目領域を指定して補正するものである。
半自動補正は、ユーザが赤目が存在する領域をある程度指定し、その情報から赤目の補正範囲を特定して補正を行うものである。例えば、ユーザは、両目を囲むような領域をポインティングデバイスによって指定したり、目の近辺の一点を指定する。この指定領域または指定点の情報から補正範囲を特定し補正するものである。
自動補正は、ユーザによる特別な操作を必要とせず、自動的にディジタル画像データ中から補正領域を検出し、補正処理を実行するものである。
手動または半自動補正は、ユーザが何らかの操作により、補正個所を指定する必要がある。そのため、ユーザは、画像データの補正すべき領域付近を拡大表示した後、補正領域を指定する煩わしい操作を必要とする。また、大画面の表示装置を備えたパーソナルコンピュータシステムなどであれば、このような操作も比較的容易であるが、ディジタルカメラやプリンタなど、数インチの表示装置しか備えないデバイス上では、画像を拡大し、画像をスクロールして補正領域を指定する操作は、到底、容易とは言えない。
近年、ユーザにとって煩わしい操作を不要とし、かつ、大きな表示装置を備えないデバイスに有効な赤目現象の自動補正に関して様々な提案が行われている。
例えば、特開平11-136498号公報は、画像から肌色領域を検出し、その領域内で赤目を構成すると思われる画素をサーチして検出した赤目を構成する画素を補正する方法を提案する。また、特開平11-149559号公報は、肌色領域を検出し、その領域中で瞳の輝度の低さに対応する谷領域を検出し、第一の谷と第二の谷との距離を基に目を決定する方法を提案する。また、特開2000-125320公報は、肌色領域を検出し、肌色領域が人間の顔の特徴であるかを判断し、その領域内で赤目欠陥の一組を検出して距離と大きさを評価することで、赤目領域を特定する方法を提案する。また、特開平11-284874号公報は、画像が赤い瞳孔を含むか否かを自動検出し、赤い瞳孔を検出した場合はその位置、大きさを検出して、瞳孔内の赤色画素を自動的に所定の色に変換する方法を提案する。
しかし、提案されている赤目現象の自動補正方法には以下の問題が存在する。
まず、人物の肌色検出またはニューラルネットワークなどを用いた顔検出の結果に基づく赤目領域の検出は、検出結果の信頼性は高いが、画像中のある程度広い範囲を参照する必要があり、大量のメモリや演算量を必要とする。従って、数GHzのクロックで動作する高性能なCPUと、数百MBのメモリを搭載するパーソナルコンピュータによる処理には適しているが、ディジタルカメラやプリンタ内部の組み込みシステムに実装するのは困難である。
また、上記の自動補正例に限らず、これまでに提案されている方法の多くは、赤目領域が周辺領域と比較して彩度が高いという特徴を利用して赤目領域を特定する。しかし、彩度に基づく判定は、色素が濃い(多い)人には必ずしも適合しない問題がある。よく知られているように、画素値がRGB系で与えられた際の彩度Sは式(1)で求めることができる。
S = {max(R, G, B) - min(R, G, B)}/max(R, G, B) …(1)
ここで、max(R, G, B)はRGB成分の最大値
min(R, G, B)はRGB成分の最小値
例えば、日本人の肌色領域は色相(0〜359度)で言えば、0〜30度付近に多く分布することが実験の結果明らかになっている。なお、HIS系の色相では0度付近が赤色で、色相角が大きくなるに従ってイエローに近付く。0〜30度付近で、RGB値の大小関係は以下のようになる。
R > G > B …(2)
また、上述したように、色素が薄い(少ない)人に比べて、色素の濃い(多い)人は鮮やかな赤目にはなり難い。
これらを考慮して日本人の赤目領域の画素値および目の周辺の肌色領域の画素値を推測すると次のようになる。
赤目領域:(R, G, B)=(109, 58, 65)
肌色領域:(R, G, B)=(226, 183, 128)
上記のような場合、赤目画素の彩度は40、肌領域画素の彩度は43になり、ほぼ同様の彩度値になる。言い換えれば、彩度に着目しても、被写体(人)によっては赤目画素を特定できない場合がある。
特開平11-136498号公報 特開平11-149559号公報 特開2000-125320公報 特開平11-284874号公報 特開2004-326805公報
本発明は、目の色調不良を示す画像領域を高精度に検出することを目的とする。
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
本発明にかかる画像処理は、画像の画素ごとに、目の色調の評価量を前記画像のR成分およびG成分のみから算出し、前記算出された評価量に基づき目の色調不良を示す候補画素を抽出し、前記抽出された複数の候補画素から構成される領域を抽出し、該抽出された領域が予め定められた形状であるか判定を行い、該予め定められた形状であると判定された領域を目の色調不良の候補領域として抽出することを特徴とする。
本発明によれば、目の色調不良を示す画像領域を高精度に検出することができる。従って、色素が薄い、濃い(少ない、多い)という人の特性に関わらず、目の色調不良を示す画像領域(補正すべき画像領域)を適切に検出することができる。
実施例1の画像処理を実行するコンピュータ(画像処理装置)の構成例を示すブロック図、 実施例1の赤目の自動補正処理の概要を示す機能ブロック図、 ディジタルカメラなどの撮像装置により撮像された赤目画像を概念的に示す図、 適応的二値化処理を説明する図、 適応的二値化の結果例を示す図、 平均値Er(ave)を求める際の高速化手法を説明する図、 境界線追跡法を説明する図、 境界線追跡法を説明する図、 追跡方向ヒストグラムの方向を示す図、 方向ヒストグラムの一例を示す図、 赤色領域の外接矩形領域を示す図、 赤丸領域か否かの判定処理の一例を示すフローチャート、 赤目候補領域の特徴量を算出する際に使用する周辺領域の定義を説明する図、 赤目候補領域が画像の端部近傍に存在する場合の周辺領域を説明する図、 ブロックの平均値Er(ave)の算出領域を示す図、 特徴量群の判定手順の一例を示すフローチャート、 周辺領域の設定方法を説明する図、 候補領域リストに記載された複数の赤目領域のうちの一つを補正する処理例を示すフローチャート、 補正範囲の決定を説明する図、 補正パラメータの設定方法を説明する図、 実施例2の課題を説明する図、 実施例2における適応的二値化処理を説明する図、 実施例2における適応的二値化処理を説明する図、 実施例3の課題を説明する図、 実施例3の赤目の自動補正処理の概要を示す機能ブロック図、 候補領域評価部の処理例を示すフローチャート、 中心間距離Sizeを説明する図、 中心間距離Sizeと閾値Th_Sizeの関係例を示す図、 実施例4の課題を説明する図、 実施例4の赤目の自動補正処理の概要を示すブロック図、 候補領域結合部の処理例を示すフローチャート、 候補領域リストの一例を示す図、 候補領域結合処理を説明する図、 実施例5におけるバンド分割を説明する図、 実施例5における赤目領域の抽出処理の一例を示すフローチャート、 Nバンド目の赤目領域の抽出処理の詳細を示すフローチャート、 N-1、NおよびN+1バンド目において、OverlapArea内に四つの赤丸領域が存在する例を示す図、 候補領域選択処理を説明する図、 候補領域リストの一例を示す図、 実施例5における補正処理の一例を示すフローチャート、 補正ラインと補正対象領域の関係を示す図、 候補領域リストに格納された赤目領域の位置情報を説明する図である。
以下、本発明にかかる一実施例の画像処理を図面を参照して詳細に説明する。なお、以下で説明する画像処理は、主として、プリンタエンジンへ出力すべき画像情報を生成する、コンピュータ内で稼働するプリンタドライバ、および、スキャナなどの光学読取装置を駆動する、コンピュータ内で稼働するスキャナドライバに組み込むことが望ましい。あるいは、複写機、ファクシミリ、プリンタ、スキャナ、ディジタルカメラ、ディジタルビデオカメラなどのハードウェアに内蔵する、または、ソフトウェアとして供給してもよい。
[装置の構成]
図1は実施例1の画像処理を実行するコンピュータ(画像処理装置)の構成例を示すブロック図である。
コンピュータ100は、CPU101、ROM102、RAM103、モニタ113(タッチパネルを備えてもよい)を接続するビデオカード104、ハードディスクドライブやメモリカードなどの記憶装置105、マウス、スタイラスおよびタブレットなどのポインティングデバイス106、キーボード107などを接続するUSBやIEEE1394などのシリアルバス用のインタフェイス108、ネットワーク114と接続するネットワークインタフェイスカード(NIC)107を備え、これらの構成はシステムバス109で相互に接続されている。また、インタフェイス108には、プリンタ110、スキャナ111、ディジタルカメラ112などを接続可能である。
CPU101は、ROM103または記憶装置105に格納されたプログラム(以下で説明する画像処理のプログラムを含む)をワークメモリであるRAM103にロードして当該プログラムを実行し、当該プログラムに従いシステムバス109を介して上記の各構成を制御することで、当該プログラムの機能を実現する。
なお、図1は、実施例1で説明する画像処理を実施するハードウェアの一般的な構成を示し、その一部の構成を欠いたり、他のデバイスが追加されても、本発明の範疇に含まれる。
[処理の概要]
図2は実施例1の赤目の自動補正処理の概要を示す機能ブロック図で、CPU101によって実行される処理である。なお、入力画像は、例えば、ディジタルカメラ112やフィルムスキャナ111から入力される一画素あたりRGB各8ビット、合計24ビットのディジタル画像データである。
図3はディジタルカメラ112などの撮像装置により撮像された赤目画像を概念的に示す図で、目の瞳孔領域302、虹彩領域301、撮影時に使用したフラッシュに起因するハイライト領域304を示す。また、符号303は白目部分を示している。通常、赤目現象により瞳孔領域302が赤くなる。
図2に示す赤領域抽出部202は、入力端子201に入力される画像データから赤色の領域を抽出する。赤色の領域の抽出方法は様々な方法が考えられるが、適応的二値化による赤色領域の抽出法を後述する。なお、赤領域抽出部202は目であるか否かに関わらず赤色領域を抽出するため、抽出される赤色の領域は、赤目、赤色の信号機、衣服の赤色の模様、赤色の照明など様々なものを含む。
赤丸領域抽出部203は、入力画像データと抽出された赤色領域の情報を入力して、赤色の領域の中からその形状が比較的円に近い領域(以下「赤丸領域」と呼ぶ)を特定する。領域形状の判定方法は様々な方法が考えられるが、境界線追跡による赤丸領域の抽出法を後述する。なお、赤丸領域抽出部203は、抽出した赤丸領域の位置情報を候補領域リストに格納する。
特徴量判定部204は、入力画像データと候補領域リストを入力して、候補領域リストに記録された赤丸領域について、目と特定できるような様々な特徴量の判定処理を行う。目と特定できるような特徴量には、赤丸領域の彩度、赤丸周辺領域の明度、彩度、色相、エッジの分布などがある。これらの特徴量を、予め定められた閾値と比較し、すべての条件を満たす赤丸領域を赤目領域であると特定する。なお、特徴量判定部204は、特定した赤目領域の位置情報を候補領域リストに格納する。
補正部205は、入力画像データと赤目領域の位置情報が格納された候補領域リストを入力して、画像データの赤目領域に補正処理を施し、補正処理を施した画像データを出力端子206に出力する。補正処理後の画像データは、モニタ113に表示されたり、RAM103あるいは記憶装置105に格納される、あるいは、インタフェイス108に接続されたプリンタ110によってプリントされたり、NIC107を介してネットワーク114(イントラネット、インターネットを含む)に接続された他のコンピュータやサーバに送信される。
[赤領域抽出部202]
赤領域抽出部202は、入力画像データに適応的二値化処理を適用することで、画像データから赤色領域を抽出する。つまり、入力画像データの各画素に対して赤色度合いを示す赤色評価量を算出し、その評価量と閾値を比較して、評価値>閾値の場合に注目画素を赤色と判定する。この閾値は、注目画素の周辺領域において適応的に決定される閾値である。なお、ここで言う「二値化」とは赤色と判定した画素に‘1’を、そうではない画素に‘0’を割り当てることを言う。
図4は適応的二値化処理を説明する図である。
図4において、入力画像データ401上の注目画素402は二値化処理の対象画素である。赤領域抽出部202は、注目画素402の赤色度合いを示す評価量Erを式(3)で定義する。
Er = (R - G)/R …(3)
式(3)は、注目画素402の赤色度合いを、一般的なHSI系の彩度ではなく、B成分を除くR、Gの二成分から求めることを意味している。赤色評価量Erを彩度ではなく、式(3)で定義することの利点を以下に説明する。
例えば、色素が濃い(多い)人の場合、瞳孔領域302の水晶体の透過率が低いために、鮮やかな赤目になりにくいという傾向がある。前述したように、日本人の赤目領域の画素値の推測値は(R, G, B)=(109, 58, 65)であり、日本人の肌色は色相で言えば赤(0度)からイエロー(60度)の間に多く分布することが実験の結果明らかになっている。このような領域は、RGB各成分の大小関係がR>G>Bになり、目の周辺の肌色領域の画素値の推測値は(R, G, B)=(226, 183, 128)である。このような場合、赤目画素の彩度は40、目の周辺の肌領域の画素の彩度は43とほぼ同様の彩度値になる。つまり、赤目領域の画素の彩度値は、目の周辺の肌色領域の画素の彩度値に対して特別突出するわけではない。従って、適応的二値化処理の閾値として彩度を用いれば赤目領域の検出が困難になる。
一方、赤色評価量Erを式(3)で定義すれば、赤目領域の画素の赤色評価量Erは47、目の周辺の肌色領域の赤色評価量Erは19になり、目の周辺の肌色領域に比べて赤目領域の画素の赤色評価量Erは二倍以上の値をもつことになる。
以上から、色素が濃い(多い)人の赤目を検出する場合、彩度ではなく、式(3)に示すようなB成分を含まない、R、G成分のみの評価量を定義することで、赤目を構成する画素を精度よく抽出することが可能になる。なお、式(3)において、R成分に対する(R-G)の割合を評価量Erとしたが、これに限定されるわけではなく、例えば(R-G)のみやR/Gを評価量Erとしてもよい。
図4に戻り、注目画素402を二値化するために、注目画素402と同一ライン上の、注目画素402に対して左方向(主走査方向の前方)に画素数がThWindowSizeになるようなウィンドウ領域403を設定し、当該ウィンドウ内の画素の赤色評価量Erの平均値Er(ave)を求める。ここで、画素数ThWindowSizeは画像の短辺と比較して1〜2%程度の幅とすることが望ましい。なお、評価量Erは以下の条件を満たす場合にのみ算出するため、評価量Erが負になることはない。
R > 0 かつ R > G …(4)
平均値Er(ave)を用いて注目画素402を二値化するが、この処理を行うには、注目画素402は以下の条件を満たす必要がある。
R > Th_Rmin かつ R > G かつ R > B …(5)
ここで、Th_RminはRの下限値を表す閾値
上記の条件を満たす場合、式(6)による二値化処理を実行する。
Er > Er(ave) + Margin_RGB ならば‘1’
Er ≦ Er(ave) + Margin_RGB ならば‘0’ …(6)
ここで、Margin_RGRはパラメータ
式(6)は、注目画素402の赤色度合いErがウィンドウ領域403の平均値Er(ave)にMargin_RGRを加えた値よりも大きい場合、注目画素402の二値化後の値を‘1’にする。すなわち、その注目画素402を赤色領域として抽出したことを意味する。なお、赤色領域が連続する場合、平均値Er(ave)の値が大きくなり過ぎるため、平均値Er(ave)に上限を設けてもよい。この二値化結果は、RAM103の中の入力画像用のバッファとは別に割り当てられた領域に保存される。
以上の処理を、入力画像データのライン単位に、注目画素402を左から右に移動して、すべての画素に施す。
なお、実施例1においては、二値化するための閾値(平均値Er(ave))を、注目画素402と同一ライン上の左方向に設定したウィンドウ内の画素の評価値Erから算出したが、これに限定されるものではなく、例えば、注目画素402を含むラインの上方(副走査方向行の前方)数ラインの注目画素402の左方向(主走査方向行の前方)数画素を含むような領域や、注目画素402を中心とする所定の矩形領域をウィンドウに設定してもよい。
図5は適応的二値化の結果例を示す図である。図5(a)は入力画像データの赤目周辺の画像を示し、図5(b)は適応的二値化の結果得られる二値画像で、赤目の瞳孔部分の画素のみが抽出されている様子を示す。
また、主走査方向に設定したウィンドウ内部の評価量の平均値Er(ave)を求める際に、以下のような高速化手法を用いてもよい。
図6は平均値Er(ave)を求める際の高速化手法を説明する図である。
図6(a)において、注目画素402の左方向に設定したウィンドウ403内の平均値Er(ave)を求める際、ウィンドウ403内の評価量Erの総和をメモリ(例えばRAM103)に格納する。平均値Er(ave)は、総和をウィンドウ403を構成する画素数nで除算することにより、簡単に求めることができる。次に、注目画素402は一画素右へ移動するが、その際はウィンドウ403も一画素分右へ移動する。この時、図6(b)に示すウィンドウ403内の評価量Erの総和は、図6(a)において求めた総和から画素501の評価量Erを減算し、画素502(直前の注目画素402)の評価量Erを加えることで処理の高速化が図れる。つまり、注目画素402およびウィンドウ403の移動後、改めてウィンドウ403内すべての画素の評価量Erを算出する必要はない。
[赤丸領域抽出部203]
赤丸領域抽出部203は、二値画像処理方法の一つである境界線追跡法を用いて、赤丸領域を抽出する。
図7は境界線追跡法を説明する図である。
境界線追跡処理は、適応的二値化処理の結果得られる二値画像に対して、画像を上端から主副走査方向にスキャンして、注目画素(xa, ya)の値が‘1’で、注目画素の左(xa-1, ya)、左斜め上(xa-1, ya-1)、上方(xa, ya-1)、右斜め上(xa+1, ya-1)の四画素の値が‘0’である注目画素を始点にする(図7に符号701で示す画素)。なお、図7は、二値画像の左上を原点とする座標系を設定している。
そして、始点画素701から反時計回りに再び始点701に戻るまで、値が‘1’の画素を追跡する。追跡の途中、画像領域を逸脱したり、始点画素701よりもY座標が小さくなる場合は、追跡を打ち切り、次の始点を探索する。追跡の途中でY座標が始点画素701よりも小さくなった場合に追跡を打ち切るのは、図8に示すような環状領域の内側を誤って追跡することを防ぐためである。環状領域の内側を追跡した場合には、図8において、画素802に到達すると始点画素801よりもY座標が小さくなるので、ここで追跡処理を打ち切る。
上記の追跡過程で、追跡対象領域の周辺の長さ、方向ヒストグラム、X座標とY座標の最大値、最小値を得ることができる。ここで、周辺の長は、追跡した画素の数で、例えば図7の例では始点画素701を含めて九画素になる。
方向ヒストグラムは、追跡過程で、ある画素から次の画素へ移動する向きを、図9に示す八方向で累積したヒストグラムである。図7の例では、始点画素701から反時計回りに追跡すると、移動の向きは667812334になり、その方向ヒストグラムは図10に示すようになる。
X、Y座標の最大、最小値は、図11に示すように、値が‘1’の画素が存在する領域、すなわち赤色領域の外接矩形領域を示す。
赤丸領域抽出部203は、各赤色領域を境界線追跡して、上記の値を取得し、赤丸領域か否かを判定する。
図12は赤丸領域か否かの判定処理の一例を示すフローチャートである。
まず、赤色領域の縦横比が予め設定された閾値Th_BF_VHRatio以上か否かを判定する(S1201)。縦横比ARは式(7)で算出する。
AR = (ymax - ymin)/(xmax - xmin) …(7)
ただし、AR > 1ならばAR = 1/AR
すなわち、縦横比ARは0.0〜1.0の範囲で表され、AR=1.0のときは縦と横の長さが同じである。ステップS1201は、縦横比ARと閾値Th_BF_VHRatioを比較して、AR<Th_BF_VHRatioの場合は、その赤色領域は赤丸領域ではないと判定して、次の赤色領域の探索に遷移する。
AR≧Th_BF_VHRatioの場合は、赤色領域のサイズが適正か否かを判定する(S1202)。サイズの判定は、(1)実際の画素数の上限、下限、(2)画像の短辺または長辺に対する比の二つの観点から行う。
まず、(1)については、赤色領域の横幅X=xmax-xminと縦幅Y=ymax-yminの小さい方と、予め設定された閾値を比較して、縦幅または横幅が上限Th_BF_SizeMaxと下限Th_BF_SizeMinの間にあるか否かを判定する。もし、上限と下限の間に縦幅Yまたは横幅Xがなければ、その赤色領域は赤丸領域ではないと判定して、次の赤色領域の探索に遷移する。
また、(2)については、式(8)により求める。
Th_BF_RatioMin < min(X, Y)/min(W, H) < Th_BF_RatioMax …(8)
ここで、X = xmax - xmin
Y = ymax - ymin
Wは入力画像の幅
Hは入力画像の高さ
もし、注目赤色領域が式(8)を満さない場合は、赤丸領域ではないと判定して、次の赤色領域の探索に遷移する。なお、式(8)には、短辺同士を比較する例を示したが、長辺同士を比較してもよい。
ステップS1202とサイズが適正と判定した場合は、周辺の長さを理想的な円周と比較して、抽出した赤領域が円形に近いか否かの判定を行う。赤色領域の幅X、高さYから、理想的な円周Ciを式(9)で近似的に求める。
Ci = (X + Y)×2×2π/8 …(9)
式(9)は、抽出した赤色領域が正方形と仮定して、正方形に内接する円の円周を算出するものである。式(9)において、(X+Y)×2は赤色領域を包含する正方形の四辺の長を、2π/8が正方形の四辺の長さと当該正方形に内接する円の円周の比を示す。上記の理想的な円周ciと周辺の長さを式(10)によって比較し、式(10)を満たさない場合は赤丸領域とは判定せずに、次の赤色領域の探索に遷移する。
min(Ci, Cx)/max(Ci, Cx) > Th_BF_CircleRatio …(10)
ここで、Cxは周辺の長さ
周辺の長さが式(10)を満たす場合、方向ヒストグラムの偏りに関する判定を行う(S1204)。既に説明したように、境界線追跡の過程で、図10に示すような方向のヒストグラムを得ることができる。もし、境界線追跡の対象領域が円に近い場合、追跡処理の結果から得られた八方向の方向ヒストグラムは均等な分布になるが、対象領域が細長い場合などは方向ヒストグラムに偏りが生じる。例えば、右上から右下に細長い形状の対象領域であれば、図9に示す方向のうち、方向2および6に度数が集中し、方向4および8の度数が少なくなる。従って、式(11)に示す条件すべてを満たす場合は注目赤色領域を赤丸領域と判定し、何れか一つでも条件を満たさない場合は、注目赤色領域は赤丸領域ではないと判定して、次の赤色領域の探索に遷移する。
sum(f1, f2, f5, f6) < Σf×Th_BF_DirectRatio
sum(f2, f3, f6, f7) < Σf×Th_BF_DirectRatio
sum(f3, f4, f7, f8) < Σf×Th_BF_DirectRatio …(11)
sum(f4, f5, f8, f1) < Σf×Th_BF_DirectRatio
ここで、fnは方向nの度数
sum(fa, fb, fc, fd)は方向a, b, c, dの度数の和
Σfは度数の総和
式(11)により、ある方向について求めた度数の和が所定割合よりも多い場合、すなわち、ある方向に集中があるならば、注目赤色領域は赤丸領域ではないと判定する。また、式(11)による判定は、度数の総和Σfが小さい場合は判定精度が低下する危惧があり、度数の総和Σfが所定値以下の場合、ステップS1204の処理をスキップしてステップS1205に進むようにしてもよい。
以上のステップS1201〜S1204のすべての判定(ステップS1204をスキップした場合は残るステップS1201〜S1203の判定)を満たす赤色領域について赤丸領域(赤目領域候補)と判定して、RAM103に割り当てた候補領域リストにその座標位置を格納し(S1205)、画像データの右下近傍に達するまでさらに境界線追跡および図12に示す判定を繰り返す。
[特徴量判定部204]
特徴量判定部204は、抽出された赤丸領域(赤目候補領域)について、人の赤目と特定できるような様々な特徴量を算出し、それを予め定められた閾値と比較して、赤目か否かを判定する。
特徴量判定部204は、前段までの処理によって候補領域リストに記録された赤目候補領域に対して、以下の五つの特徴量群の判定を図16に示す順番で実行する。
特徴量群0:赤丸領域と周辺領域の評価量の平均値Er(ave)の比較(S10)
特徴量群1:赤丸領域内の色相と評価量Er、色成分の変化に関する判定(S11)
特徴量群2:周辺領域の輝度に関する判定(S12)
特徴量群3:周辺領域の彩度、色相に関する判定(S13)
特徴量群4:周辺領域のエッジの強度に関する判定(S14)
理想的な赤目領域の赤色成分は、その周辺領域に比べて、瞳孔部分にのみ突出して存在する特徴がある。この特徴は、その他の様々な特徴量と比較しても、最も顕著に表れることが実験により判明している。従って、特徴量群0の判定処理(S10)を最初に行い、赤目候補領域を絞ることが効率的である。
特徴量群1の判定(S11)は、赤丸候補領域内のみの画素を参照して特徴量判定を行うため、他の特徴量群の判定に比較して演算量は少ない。
特徴量群2と特徴量群3の判定(S12、S13)は、設定した周辺領域に存在する画素に対して、RGB成分を輝度、色差成分に変換したり、RGB成分を明度、彩度、色相成分に変換する処理を必要とするため、特徴量群1の判定に比べて演算量は多くなる。
特徴量群4の判定(S14)は、エッジの強度を求めるためにSobelなどの公知のエッジ検出フィルタを用いる。そのため、他の特徴量群の判定と比較して最も演算量が多い。
従って、特徴量判定部204は、演算量の少ない判定、あるいは、赤目領域の特徴を掴み易い判定から順に行い、それによって赤目領域ではないと判定される赤目候補領域について、図16に示すように、以降の判定をスキップすることで、特徴量判定部204の処理量を抑制する。
●周辺領域の定義
図13は赤目候補領域の特徴量を算出する際に使用する周辺領域の定義を説明する図である。
図13において、中央のブロック1301が前段の処理で抽出された赤目候補領域(赤丸領域)の外接矩形で、周辺領域はブロック1301を中心として、その周辺にブロック1301の縦横のサイズをそれぞれ二倍、三倍、五倍に拡大した領域である。各倍率の周辺領域を図13(a)〜図13(c)に示す。また、以降で「周辺領域全体」と呼ぶ場合は、周辺領域からブロック1301を除いた部分を意味する。また、「周辺領域のブロック」とは、図13に破線で示すように、ブロック1301の辺を延長して周辺領域を八つに区切った各ブロックを意味する。特徴量群のうち、特徴量群1以外は、この周辺領域に対して判定を行う。このような周辺領域の設定は、最大でも赤目候補領域の外接矩形の五倍の領域しか参照しないため、高速な判定処理が可能である。
図14は赤目候補領域が画像の端部近傍に存在する場合の周辺領域を説明する図である。
図14(a)は、赤目候補領域の外接矩形(ブロック1301)が画像の右端近傍に、ややマージンを残して存在する場合を示す。この場合、周辺領域の各ブロック内に一画素でも画素が存在するならば、その画素を用いて特徴量判定を行う。
一方、図14(b)は、ブロック1301がマージンなしで画像右端に接する場合を示している。この場合、周辺ブロックのうち、右上(TR)、右(R)、右下(BR)の3ブロックには画素が存在しないため、当該周辺ブロックの特徴量を算出することができない。このような場合、実施例1では、ブロック1301を赤目領域と判定しないことにして、候補領域リストから除外する。
●特徴量群0の判定(S10)
特徴量群0の判定は、ブロック1301に対して例えば図13(b)に示す三倍の周辺領域を設定し、ブロック1301を含む各ブロックについて、式(3)を用いて各画素の評価量Erを算出し、それらの平均値Er(ave)を算出する。算出した平均値Er(ave)は、RAM103に割り当てた配列AEvR[8]に格納する。ここでAEvRは0〜8の九つの要素を保持する配列で、要素0は図13に示す左上(TL)ブロック、要素1は上(T)ブロック、要素2は右上(TR)ブロック、…というように、左上ブロックから右下ブロックの順に割り当てる。
次に、要素i=0〜8(ただし、ブロック1301のi=4は除く)について、以下の式を満たすか否かを判定する。
AEvR[i] < AEvR[4]×Th_FJ0_EvR …(12)
式(12)は、ブロック1301の評価量の平均値AEvR[4]に閾値Th_FJ0_EvRを乗じた値が、他の八個の周辺ブロックの評価量の平均値AEvR[i]よりも大きい場合、赤目領域と判定することを意味する。式(12)を満さない場合、注目赤目候補領域は赤目領域ではないとして、以降の特徴量群の判定を行わず、次の赤目候補領域の判定に移る。
ところで、まず式(12)によって評価量Erを比較する理由は、以降で説明する特徴量の中で、最も顕著に赤目領域の特徴を掴むことができるからである。様々な実験の結果、式(12)による判定が、赤目領域以外の領域を候補領域リストから除外するのに最も効果的であることが判明している。従って、できるだけ特徴を掴みやすい特徴量から順番に判定することで、特徴量判定部204の演算量を最小限に抑えることができる。
また、各ブロックの平均値Er(ave)を算出する際、ブロック1301については、図15(a)に示すような菱形の算出領域1501の画素についてのみ評価値Erを算出することが望ましい。赤目領域の形状は一般に円もしくは楕円であるから、ブロック1301の四隅には、赤色度合いが小さい画素が存在する。このため、ブロック1301の評価量の平均値Er(ave)を低下させないためにも、ブロック1301の四隅を除く画素を対象として評価量Erを算出すべきである。なお、評価値Erの算出領域は図15(a)に示す菱形以外に、ブロック1306に内接する円(図15(b))や楕円(図15(c))内としても、同等もしくはより良好な算出結果を得ることができる。
●特徴量群1の判定(S11)
特徴量群1の判定は、赤目候補領域(図13に示すブロック1301)内のみの画像データを参照して、赤目領域か否かを判定する処理である。特徴量群1の判定には、例えば以下のような判定処理が含まれる。
まず、赤目候補領域において、色相が±30度以内の画素の評価量の平均値Er(ave)が閾値Th_FJ1_EMin以上で、かつ、閾値Th_FJ1_EMax以下かを判定する。この判定を満さない場合は候補領域リストから除外する。なお、色相については、公知の手法により求めることが可能である。
次に、赤目候補領域において、色相が±30度以内の画素の評価量Erの最大値、最小値を求め、比率R=最小値/最大値を算出する。赤目候補領域では、評価量Erは大きく変化するため、比率Rはある程度小さい値になる。従って、式(13)に示す判定を行い、式(13)を満さない注目赤目候補領域を候補領域リストから除外する。
R < Th_FJ1_EMaxMinRatio …(13)
次に、赤目候補領域において、R成分の標準偏差を測定する。赤目領域には鮮やかな赤領域と、瞳孔境界付近の暗い領域が含まれるため、R成分のダイナミックレンジは非常に大きな値になる。従って、赤目領域のR成分の偏差を測定すれば、その値はある程度大きい値になる。従って、赤目候補領域において、既知の方法によりR成分の標準偏差δrを測定し、閾値Th_FJ1_RDivより大きいか否か判定する。
δr > Th_FJ1_RDiv …(14)
式(14)を満たさない赤目候補領域は候補領域リストから除外する。なお、上ではR成分の標準偏差について言及したが、当然、R成分の分散を用いたとしても、同様の判定を行うことができる。
また、R成分の変化の度合いを判定する別の方法として、赤目候補領域において、近隣画素間のR成分の差分和の平均値SDr(ave)を算出して閾値Th_FJ1_RDiffより大きいか否かを判定することも考えられる(式15)。
SDr(ave) > Th_FJ1_RDiff …(15)
近隣画素の差分和の平均値を算出する方法は様々な方法が考えられる。例えば、注目画素と、隣接する八つの画素との差分和の平均値を算出してもよいし、単純に左隣の画素との差分を求めてもよい。また、上記の判定は、R成分だけでなく、他のG、B成分あるいは輝度や評価量Erに対しても同様に実施することができる。
●特徴量群2の判定(S12)
特徴量群2の判定は、特徴量群1の判定により候補領域リストから除外されずに残った赤目候補領域に対して周辺領域を設定し、周辺領域内の輝度成分に関する判定処理を行う。特徴量群2の判定には、例えば以下の判定処理が含まれる。
まず、赤目候補領域に対して周辺領域(例えば図13(c)に示す五倍領域)を設定する。次に、ブロック1301を除く周辺領域の8ブロックの平均輝度値Y(ave)を算出し、平均輝度値Y(ave)が閾値Th_FJ2_YMin以上、閾値Th_FJ2_YMax以下の範囲か否かを判定する。平均輝度値Y(ave)がこの範囲に入らない場合、つまりブロック1301の周辺が極端に明るい、あるいは、暗い場合は、注目赤目候補領域を候補領域リストから除外する。
上記の輝度に関する判定は、周辺領域の8ブロック全体で行ってもよいし、周辺領域のブロックごとに平均輝度値Y(ave)を求めて、ブロックごとに予め設定した閾値と比較してもよい。
次に、赤目候補領域に対して二倍の周辺領域(図13(a))を設定し、ブロック1301を除く周辺領域の8ブロックそれぞれの平均輝度値Y(ave)を算出し、さらに、八つの平均輝度値の最大値Ymaxと最小値Yminを得る。赤目候補領域に対して二倍の周辺領域を設定した場合、周辺領域の明るさが大きく変化している可能性があるため、以下のような判定を行う。
(Ymax - Ymin) > Th_FJ2_MaxMinDiff2 …(16)
式(16)を満たさない場合、注目赤目候補領域を候補領域リストから除外する。
また一方で、赤目候補領域に対して五倍の周辺領域(図13(c))を設定し、上述したように、周辺領域の8ブロックそれぞれの平均輝度値Y(ave)を算出し、さらに、八つの平均輝度値の最大値Ymaxと最小値Yinを得る。赤目候補領域に対して比較的広い五倍の周辺領域を設定した場合、周辺領域の多くは肌色領域であり、それら領域で輝度値が大きく変化するとは考えられない。従って、二倍の周辺領域を設定した場合と異なり、以下の判定を行う。
(Ymax - Ymin) < Th_FJ2_MaxMinDiff5 …(17)
式(17)を満たさない場合、注目赤目候補領域を候補領域リストから除外する。
●特徴量群3の判定(S13)
特徴量群3の判定は、特徴量群1および特徴量群2の判定により候補領域リストから除外されずに残った赤目候補領域に対して周辺領域を設定し、該周辺領域内の彩度および色相に関する判定を行う。特徴量群3の判定には、例えば以下の判定処理が含まれる。
まず、赤目候補領域に対して周辺領域を設定し(例えば、図13(c)に示す五倍領域)、ブロック1301を除く周辺領域の8ブロックにおいて、色相が±Th_FJ3_HRangeの画素数の割合Rhを算出する。赤目領域の周辺領域は肌色領域であるから、大部分の画素の色相は上記の範囲に含まれる筈である。従って、算出した割合Rhが閾値Th_FJ3_HRatio以上であれば赤目候補領域とするが、当該閾値未満の場合は注目赤目候補領域を候補領域リストから除外する。なお、割合Rhは式(18)で計算する。
Rh = Nh/ΣN …(18)
ここで、Nhは色相が±Th_FJ3_HRangeの画素数
ΣNは8ブロックの画素数
次に、赤目候補領域に対して周辺領域を設定し(例えば、図13(c)に示すの五倍領域)、周辺領域の8ブロック全体の平均彩度S(ave)を算出する。平均彩度S(ave)が閾値Th_FJ3_SMin以上、閾値Th_FJ3_SMax以下の範囲にあるか否かを判定する。当該範囲を逸脱する場合、注目赤目候補領域を候補領域リストから除外する。
また、上記の彩度の判定は、ブロック単位に行うことも考えられる。つまり、周辺領域のブロックごとに平均彩度S(ave)を算出し、予め設定された閾値と比較すればよい。
さらに、赤目領域の周辺には所謂白目領域が存在するため、赤目候補領域に対して設定した周辺領域(例えば、図13(b)に示すの三倍領域)において、彩度Sと明度Lの比S/Lが閾値Th_FJ3_WhitePix以下になる、すなわち彩度Sが小さく、明度Lが高い画素が存在するならば赤目候補領域と判定する。もし、上記の判定が否の場合は、注目赤目候補領域を候補領域リストから除外する。
●特徴量群4の判定(S14)
特徴量群4の判定は、特徴量群1から特徴量群3の判定により候補領域リストから除外されずに残った赤目候補領域に対して周辺領域を設定し、周辺領域内のエッジに関する判定処理を行う。人の目近傍には非常に強いエッジが存在するため、有効な特徴量になり得る。また、以下ではエッジの検出に公知のSobelフィルタを用いる例を説明するが、これに限定されるものではなく、他のエッジ検出フィルタを用いたとしても、同様の判定処理を行うことが可能である。なお、Sobelフィルタについては公知であるため、ここでの詳細な説明は省略する。特徴量群4の判定には、例えば以下のような判定処理が含まれる。
まず、赤目候補領域に対して周辺領域(例えば、図13(a)に示す二倍領域)を設定し、周辺領域内の各画素に対してSobelフィルタを施す。その結果、画素ごとに得られるSobel出力値の平均値So(ave)を算出する。人の目近傍には強いエッジが存在する場合が多いため、平均値So(ave)と閾値Th_FJ4_SobelPowを比較して、So(ave)≦Th_FJ4_SobelPowの場合は注目赤目候補領域を候補領域リストから除外する。
また、赤目候補領域に対して周辺領域(例えば、図13(b)に示す三倍領域)を設定し、周辺領域内の各画素に対してSobelフィルタを施す。その結果、画素ごとに得られるSobel出力値の最大値と最小値の差Dsを算出する。人の目近傍には強いエッジが存在する一方で、肌色の平坦な部分も存在することから、差Dsは比較的大きな値になる筈である。従って、差Dsと閾値Th_FJ4_MaxMinDiffを比較して、Ds≦Th_FJ4_MaxMinDiffの場合は注目赤目候補領域を候補領域リストから除外する。
さらに、赤目候補領域に対して周辺領域(例えば、図13(b)に示すの三倍領域)を設定し、周辺領域内の各画素に対してSobelフィルタを施す。その結果、画素ごとに得られるSobel出力値をエッジ画像としてRAM103の割り当てた配列sobel[y][x]に格納する。次に、エッジ画像の重心位置(Xw, Yx)を算出する。重心位置(Xw, Yx)は、式(19)によって求める。
(Xw, Yw) = (Σx・Sobel[y][x]/Sobel[y][x], Σy・Sobel[y][x]/Sobel[y][x]) …(19)
もし、注目赤目候補領域が人の目であれば、重心位置(Xw, Yx)は、エッジ画像の中央近傍に存在する筈である。従って、重心位置(Xw, Yx)が、例えばブロック1301に含まれるか否かを判定し、含まれていれば赤目候補領域と判定し、含まれない場合は注目赤目候補領域を候補領域リストから除外する。
また、赤目候補領域に対して五倍の周辺領域(図13(c))を設定し、周辺領域の各画素に対してSobelフィルタを施す。その結果得られる各画素のSobel出力値をエッジ画像として配列Sobel[y][x]に格納する。配列Sobel[y][x]は五倍の周辺領域の画素数と同じサイズの配列になる。次に、ブロック1301を含む周辺領域全体に対して、図17に示すような二つの領域、すなわち中央領域1601と外部領域1602を定義し、各領域に対して、配列Sobel[y][x]に格納したSobel出力値の平均値を算出する。なお、図17においては、中央領域1601のサイズをブロック1301の2.5倍としたが、これに限定されるものではない。中央領域1601と外部領域1602それぞれのSobel出力値の平均をSPowin、SPowoutとすると、人の目の近辺においては、外部領域1602よりも中央領域1601の方が強いエッジが存在することから、以下の判定を行う。
SPowin/SPowout > Th_FJ4_InOutRatio …(20)
式(20)を満たす場合、注目赤目候補領域を赤目領域と判定する。もし、式(20)を満たさない注目赤目候補領域は赤目領域ではないと判定し、候補領域リストから除外する。
また、上記の応用として、SPowin、SPowoutを単独に別の閾値と比較するような判定も考えられる。
特徴量判定部204は、以上の特徴量群0〜4の判定すべて(あるいは一部)を満たす赤目候補領域を赤目領域として確定し、赤目領域を確定した候補領域リストを補正部205に入力する。
[補正部205]
補正部205は、RGB成分で構成された入力画像データと、前段までの処理で得られた赤目領域が記載された候補領域リストが入力される。
図18は補正部205が実行する、候補領域リストに記載された複数の赤目領域のうちの一つを補正する処理例を示すフローチャートである。つまり、補正部205は、候補領域リストに記載された赤目領域を一つずつ図18に示す処理で補正する。
まず、注目赤目領域に対して補正範囲を決定する(S1701)。図19は補正範囲の決定を説明する図である。
図19において、中央の矩形領域が候補領域リストに記載された赤目領域1901である。赤目領域1901の中心を通る長径、短径がそれぞれLw1、Lh1の楕円の補正領域1902を設定する。なお、Lw1、Lh1は式(21)によって算出する。
Lw1 = Lw0×CPARAM_AREARATIO
Lh1 = Lh0×CPARAM_AREARATIO …(21)
ここで、Lw0、Lh0は赤目領域1901の幅と高さの1/2
CPARAM_AREARATIOは補正範囲を決定するためのパラメータ
次に、補正領域1902内で補正に必要なパラメータを算出する(S1702)。算出するパラメータは、楕円領域内部での最大輝度値Ymaxおよび式(3)に示す評価量Erの最大値Ermaxである。
次に、注目画素が補正領域1902内に存在するか否かを判定する(S1703)。注目画素が補正領域1902の楕円領域に存在するか否かは、楕円を算出する公式(式(22))によって判定することができる。
(x/Lw1)2 + (y/Lh1)2 ≦ 1 …(22)
ここで、(x, y)は注目画素の座標
ただし、座標原点は注目赤目領域の中心
注目画素の座標(x, y)が式(22)を満たす場合、注目画素は補正領域1902内に存在すると判断して、処理をステップS1704に進める。注目画素が補正領域1902内に存在しない場合は、注目画素を次の画素に移動し(S1710)、処理をステップS1703に戻す。
注目画素が補正領域1902に存在する場合、注目画素のRGB成分値を輝度、色差成分のYCC値に変換する(S1704)。変換方法には既知の様々な方法が存在するが、どの方法を用いても構わない。
次に、注目画素に対する評価量を算出する(S1705)。この評価量は、後段のステップS1706で補正量を決定するために必要なパラメータで、具体的には以下の三つの値である。
(1) 赤目領域1901の中心から注目画素までの距離rと、
中心から楕円境界までの距離r0の比r/r0
(2) 注目画素の評価量Erと評価量の最大値Ermaxの比Er/Ermax
(3) 注目画素の輝度Yと最大輝度値Ymaxの比Y/Ymax
次に、ステップS1705で求めたパラメータを用いて、注目画素の輝度Yおよび色差成分Cr、Cbそれぞれの補正量Vy、Vcを式(23)によって算出する(S1706)。
Vy = {1 - RrTy1}・{1 - (1 - Re)Ty2}・{1 - RyTy3}
Vc = {1 - RrTc1}・{1 - (1 - Re)Tc2} …(23)
ここで、Rr = r/r0、Re = Er/Ermax、Ry = Y/Ymax
Vy、Vcはともに0.0〜1.0の範囲になり、1.0に近いほど補正量が大きいことを意味する。輝度の補正量Vyは、三つのパラメータすべてを用いて決定し、注目画素の位置が補正領域1902の中心から離れるほど補正量が小さくなる。また、注目画素の評価量Erが、最大値Ermaxに比べて小さい場合、補正量Vyは小さくなる。また、注目画素の輝度値Yが、最大値Ymaxに近い場合、補正量Vyは小さくなる。輝度が高い画素の補正量Vyを小さくするのは、目の中のハイライト部(キャッチライト)を保存する効果がある。一方、色差の補正量Ycは、輝度に関するパラメータを除いたものである。
式(23)において、Ty1、Ty2、Ty3、Tc1、Tc2もパラメータで、それらの設定によって、各評価量(つまり、式(23)の括弧{ }内の値)を図20に示すように一次(実線)、二次(破線)、三次(一転鎖線)といった直線または曲線で適用することが可能である。
次に、補正量Vy、Vcを用いて式(24)により補正後のYCC値を算出する(S1707)。
Y' = (1.0 - Wy・Vy)・Y
C' = (1.0 - Wc・Vc)・C …(24)
ここで、Y、Cは補正前の値
Y'、C'は補正後の値
Wy、Wcは重み(0.0〜1.0)
重みWy、Wcは、補正強度を指定したい場合に調節する。例えば、補正強度を弱、中、強と三段階とする場合、Wy、Wcをともに0.3、0.7、1.0などに設定することで、同一の処理で、補正強度が異なる結果を得ることができる。
新しい輝度、色差成分の値が決定したら、YCC値をRGB値へ変換し、補正後の画素値として入力画像用のメモリバッファに上書きする、あるいは、出力用画像を格納するメモリバッファの所定アドレスに格納する(S1708)。
ステップS1709の判定により、注目赤目領域に対応する最後の画素に達するまで、ステップS1710で注目画素を移動して(S1710)、上記の処理(S1703〜S1708)を繰り返す。また、注目赤目領域に対応する最後の画素に達した場合、次の赤目領域の補正処理に移行して、公報領域リストに記録されたすべての赤目領域の補正処理を繰り返す。
なお、補正部205に入力される画像がRGB成分で構成され、入力画像を輝度、色差成分に変換して補正した後、再び、RGB成分に戻す方法を説明したが、これに限定されるものではない。例えば、RGB成分を明度、彩度に変換し、同様の方法を用いて明度、彩度を補正した後、再び、RGB成分に戻したとしても、ほぼ同様の出力結果が得られる。
さらに、補正量を決定するためのパラメータとして、注目画素の評価量Erと補正領域1902内の評価量の最大値Ermaxの比Er/Ermaxを用いる例を説明したが、同パラメータを単純に彩度に置き換えることも可能である。つまり、注目画素の彩度と、補正領域1902内の最大彩度との比を用いて補正量を決定してもよい。
このように、赤目を構成する画素か否かを、彩度ではなく、RおよびG成分の関係で求めた評価量Erを用いて判定することで、色素が濃い(多い)人の赤目も高精度に抽出することができる。また、赤目候補画素に対応する二値画像上で、境界線追跡法を適用することにより、二値画像から極めて少ない演算量で高速に赤丸領域を抽出することができる。また、赤丸領域から、赤目であると考えられる様々な特徴量を算出し、それを評価することで、最終的に赤目領域を高精度に特定することができる。また、個々の特徴量判定による効果、および、特徴量算出時の演算量を考慮して、特徴量の判定を適切な順序で行って赤目領域候補を篩にかけ、赤目領域ではない可能性が高い候補領域を早々に除外する。従って、必要最小限の処理量で赤目領域の検出を実現することができる。
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
実施例1において説明した適応的二値化処理は、注目画素の左方向(主走査方向の前方)に所定サイズのウィンドウ403(図4参照)を設定し、同ウィンドウ403内の画素の評価量の平均値Er(ave)を算出し、平均値Er(ave)を閾値として注目画素が赤色領域を構成するか否かによって二値化する。このような方法は、閾値を算出するために参照する画素数が少なく、処理の高速化が図れる。しかし、ウィンドウ403を注目画素の左方向にしか設定しないため、二値化結果は処理方向に依存する。その結果、図5(a)に示すような画像に適応的二値化処理を施した場合、図21(a)に示すように、赤目領域である瞳孔部分のほかに、符号2001で示すアイラインが赤色領域を構成する画素として抽出される場合がある。以下では、この理由を説明する。
実施例1では、注目画素2002を二値化する閾値は、注目画素2002の左方向に設定したウィンドウの画素の評価量の平均値Er(ave)であり、注目画素2002の評価量Erと平均値er(ave)の比較結果から二値化を行う(式(6)参照)。ここで、抽出したい瞳孔に対して、ウィンドウは左方向にあるため、通常、肌色部分にウィンドウが設定される。色素が薄い(少ない)人の肌色部分の画素値は例えば(R, G, B)=(151, 135, 110)になる。式(3)によって評価量Erを算出すると11%であり、比較的小さい値である。一方、目のアイラインを構成する注目画素2002は、例えば(R, G, B)=(77, 50, 29)のように、肌色部分と比べて多少輝度が低く、同様に評価量Erを算出すると35%になる。両者を比較すると、明らかにウィンドウ内に存在する肌色部分の評価量Erよりも、アイライン部分の評価量Erが大きく、実施例1の適応的二値化処理によれば、パラメータMargin_RGRの設定にも依存するが、注目画素2002は赤色領域を構成する画素として抽出され易い。
その結果、図21(a)に示すような、(xmin, ymin)(xmax, ymax)で囲まれた赤色領域が抽出される。この抽出結果を赤丸領域抽出部203に入力すれば、本来の赤色領域よりも広い領域を対象として赤丸領域の抽出が行われ、抽出結果の信頼性低下、抽出時間の増加などが発生する。
もし、注目画素2002に対して同じ大きさのウィンドウを右方向にも設定した場合は、ウィンドウには肌色画素のほかに、アイラインを構成する画素や、場合によっては赤目の瞳孔部分も多く含まれるため、右方向に設定したウィンドウにおける評価量の平均値Er(ave)は増加する。その結果、注目画素2002は、右方向に設定したウィンドウの画素に比べて、突出した評価量Erをもつわけではないから、赤色領域を構成する画素とは判定され難くい。
以下、実施例2として、赤領域抽出部202が実行する適応的二値化処理において、ウィンドウを左右双方向に設定する例を説明する。
実施例2の適応的二値化処理は、図22Aに示すように、まず注目画素402に対して左方向にウィンドウ403を設定し、実施例1と同様の方法によって注目画素402を二値化する。そして、図22Aに矢印で示すように、注目画素402を左から右方向に移動しながら、その二値化結果をRAM103に割り当てた二値画像用のバッファに格納する。
注目画素402がラインの右端に達し、注目画素402を左から右へ移動する二値化が終了すると、図22Bに示すように、同じラインにおいて注目画素402を右から左へ移動する二値化処理を行う。この際、二値化の閾値を設定するためのウィンドウ404は、注目画素402の右方向に設定する。
上記の双方向の二値化の何れにおいても、その二値化結果が‘1’の画素を、赤色領域を構成する画素として二値画像用のバッファに格納する。
図21(b)は、双方向の適応的二値化処理によって得られる赤色領域を構成する画素の例を示している。片方向の適応的二値化処理の結果(図21(a))に比べて、アイライン部分などの画素が除去され、赤色領域がより適切に抽出される。
このように、適応的二値化処理によって赤色領域を抽出する場合、二値化閾値を算出するウィンドウを、注目画素に対して左右双方向に設定することで、赤色領域を構成する画素を高精度に抽出することができる。
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
実施例1、2では、式(3)に示す評価量Erに着目した適応的二値化処理を行い、赤色領域を構成する画素を抽出する方法を説明した。このような方法は、稀に図23に示すような赤目の瞳孔部分2201とは別に、目尻、目頭部分2202の画素を赤色領域を構成する画素として検出することがある。目尻、目頭部分2202を拡大してみると、例えば(R, G, B)=(81, 41, 31)といった「赤黒い」画素が多く存在することがわかる。この画素の評価量Erは49%になり、比較的大きな値である。そのため、実施例1、2の適応的二値化処理においては、ある程度の大きさをもつ画素集合として検出される可能性が高い上、エッジや周辺領域の明度、色相、彩度などが目の特徴を兼ね備えるため、赤丸領域判定部203と特徴量判定部204においてすべての判定を満足し、最終的に赤目領域と誤判定される可能性が高い。実施例3は、この問題を解決するための構成を備える。
図24は実施例3の赤目の自動補正処理の概要を示す機能ブロック図で、CPU 101によって実行される処理である。実施例1と比較すると、候補領域評価部207が追加されている。
候補領域評価部207は、前段までの処理で生成された候補領域リストを参照して、赤目候補領域それぞれについて、相対的な位置と面積を評価して、赤目候補領域を整理する。すなわち、評価の結果、赤目領域として適当ではないと判断される赤目候補領域を候補領域リストから除外する。
図25は候補領域評価部207の処理例を示すフローチャートである。なお、特徴量判定部204の処理によって、k個(0〜k-1番目)の領域が赤目候補領域として抽出されたと仮定する(総検出数Ne=k)。
まず、カウンタkに総検出数Neを設定し(S2499)、k番目の赤目候補領域(以下「領域k」と呼ぶ)の中心位置とサイズを算出する(S2500)。なお、サイズは矩形領域として抽出される赤目候補領域の短辺の長さとする。次に、カウンタiに零を設定し(S2501)、領域kの面積(以下「面積k」と呼ぶ)を、領域候補リストに格納されている他の赤目候補領域(以下「領域i」と呼ぶ)の面積(以下「面積i」と呼ぶ)と比較する(S2502、S2503)。面積i<面積kの場合はカウンタiをインクリメントし(S2512)、処理をステップS2502に戻す。
面積i≧面積k(領域kよりも面積が大きい赤目候補領域が存在する)場合は、図26に示すような両領域の中心間距離Sizeを算出し(S2504)、中心間距離Sizeから大きさの評価、判定を行うための閾値Th_Sizeを算出する(S2505)。
図27は中心間距離Sizeと閾値Th_Sizeの関係例を示す図で、横軸は中心間距離、縦軸は閾値Th_Sizeである。また、Sa、Sb、La、Lbはパラメータであり、例えば、La=3.0、Lb=5.0、Sa=1.0、Sb=2.0といった値を設定する。このパラメータを設定した場合、中心間距離Sizeが領域kのサイズ(短辺の長さ)の三倍以下であれば閾値Th_Sizeは1.0になる。また、中心間距離sizeが領域kのサイズの三倍から五倍であれば、図27に示す直線上の値として閾値Th_Sizeが決定される。また、中心間距離sizeが五倍を超える場合は判定処理を行わない。
次に、面積iと面積k×Th_Sizeを比較して、面積i≧面積k×Th_Size、すなわち、領域kの近傍に領域kよりも大きい赤目候補領域が存在する場合は、領域kは赤目領域ではないと判定し、領域kを候補領域リストから除外し(S2507)、総検出数Neをデクリメントし(S2508)、処理をステップS2501に戻す。
一方、面積i<面積k×Th_Sizeの場合は、ステップS2509の判定により、i<k-1であればカウンタiをインクリメントし(S2512)、処理をステップS2502に戻す。また、i=k-1であればカウンタkをデクリメントし(S2510)、ステップS2511の判定により、k>0であれば処理をステップS2500に戻し、k=0であれば処理を終了する。
このような判定処理により、候補領域リストに記録された赤目候補領域から不要な候補領域を除去することができる。
このように、ある赤目候補領域の近傍に、その赤目候補領域よりも小さい赤目候補領域が存在する場合、小さい赤目候補領域を候補領域リストから除外することで、上記の問題を解決することができる。
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例3において、実施例1〜3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
実施例1の適応的二値処理を用いると、赤目の中に存在するハイライトによって赤目領域が分断される場合がある。図28(a)は赤目の拡大図を示し、符号2701は虹彩領域を、符号2702は赤い瞳孔領域を、符号2703はフラッシュによって発生したハイライト(白)領域をそれぞれ示している。よく知られているように、赤目現象はフラッシュによって引き起こされる現象であるから、撮影された画像データの瞳孔領域2702には、高い確率でフラッシュの光が反射したハイライト領域が存在する。これはキャッチライトとも呼ばれる。
通常、ハイライト領域は瞳孔内の微小な点として存在するため、赤目検出処理には影響しない。しかし、撮影条件によっては、ハイライト領域が瞳孔領域の大部分を占めるほど大きくなったり、図28(a)に示すハイライト領域2703のように、細長い領域になったりする。このような画像データに実施例1の適応的二値化処理を適用すると、ハイライト領域2703の評価量Erは極めて小さい値になり、赤色領域としては認識されず、二値画像において、図28(b)に示すように、瞳孔領域が二つ領域2704、2705に分断される場合がある。このような二つの領域に後段の処理を適用すれば、瞳孔領域2702が赤目領域と判定される確率は極めて低下する。実施例4は、近隣に存在する赤丸領域を結合する処理によって、この問題を解決する。
図29は実施例4の赤目の自動補正処理の概要を示す機能ブロック図で、CPU101によって実行される処理である。実施例3と比較すると、候補領域結合部208が追加されている。
候補領域結合処理部208は、赤丸領域抽出部203が抽出した赤丸領域の左上、右下座標が格納された候補領域リストを参照して、当該赤丸領域の近傍に存在する赤丸領域を結合すべきか否か判断する。図31は候補領域リストの一例を示す図である。図31には四つの赤丸領域が記録された例を示すが、実際には、赤丸領域の数は数十から、場合によっては数千になる。
図30は候補領域結合部208の処理例を示すフローチャートである。
まず、カウンタi=0、カウンタj=iに初期化し(S2901、S2902)、候補領域リストのi番目とj番目に記録された赤丸領域(以下「領域i」「領域j」と呼ぶ)を結合すべきか否かを判定する(S2903)。具体的には、図32(a)に示すように、幅がWi、高さがHi(単位は画素数)の領域iと、幅がWj、高さがHjの領域jを包含する矩形領域を設定し、その幅Wijと高さHijを算出する。次に、式(25)によって、領域i、領域jが近隣に存在し、かつ、その大きさも同程度であるか否かを判定する。
(Wi・Hi + Wj・Hj)/(Wij・Hij) > Th_J …(25)
ここで、0<閾値Th_J≦1.0
式(25)は、領域iの面積と領域jの面積の和と、両者を包含する矩形領域の面積の比を算出し、比が閾値Th_Jよりも大きい場合、両領域は近隣に存在し、かつ、大きさも同程度であると判断できることを意味する。もし、領域i、領域jが図32(b)に示すような位置関係あれば、式(25)で算出する比は小さくなり、結合すべきではないと判断される。
ステップS2903の判定の結果、結合すべきではないと判定した場合は、カウンタjをインクリメントして(S2908)、処理をステップS2903に戻す。また、結合すべきと判定した場合は、結合後の領域が、結合前と比較して正方形に近付いたか否かを判定する(S2904)。具体的には、式(26)を用いて判定する。
min(Wij, Hij)/max(Wij, Hij) > max{min(Wi, Hi)/max(Wi, Hi), min(Wj, Hj)/max(Wj, Hj)}
…(26)
式(26)は、領域i、領域jを包含する矩形領域の縦横比(1.0以下)と、領域iおよび領域jの縦横比のうちの大きい値とを比較した場合に左辺が大きい、すなわち、正方形に近いことを意味する。式(26)を満たせば、結合後の矩形領域はより正方形に近付くことになり、その結果、赤丸領域も円形に近付くことになる。
式(26)を満たさない場合は、カウンタjをインクリメントして(S2908)、処理をステップS2903に戻す。また、式(26)を満たす場合は、候補領域リストのi番目の座標情報を、領域i、領域jを包含する矩形領域の座標に更新し、j番目の位置情報を候補領域リストから削除する(S2905)。
次に、ステップS2906の判定により、カウンタjの値が最大値(リストの終わり)に達していない場合はカウンタjをインクリメントして(S2908)、処理をステップS2903に戻す。また、カウンタjの値が最大値に達した場合は、ステップS2907の判定により、カウンタiの値が最大値(リストの終わり)に達していない場合はカウンタiをインクリメントして(S2909)、処理をステップS2902に戻す。また、カウンタiの値が最大値に達した場合は処理を終了する。
このような判定処理により、候補領域リストに記録された、ハイライト領域によって分断された赤丸領域を結合することができる。
このように、ある赤丸候補の近隣に、当該赤丸領域に類似する赤丸領域が存在する場合、両者を結合すると赤目領域の条件(外接矩形が正方形に近い)に近づくか否かを判定することで、瞳孔内に存在するハイライト領域によって分断された、赤目領域に相当する赤丸領域を適切に結合することができる。
以下、本発明にかかる実施例5の画像処理を説明する。なお、実施例5において、実施例1〜4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
実施例5では、実施例1〜4で説明した画像処理を、CPUの処理能力や使用可能なメモリ(RAMなど)の記憶容量が制限された環境下において実施する方法を説明する。このような環境は、複写機、プリンタ、ディジタルカメラ、スキャナ、複合機などの画像入出力デバイスに実装される画像処理部を想定したものである。
上記の環境では、使用可能なワークメモリは多くても数百KB〜数MB程度である。一方、ディジタルカメラの高解像度化が進み、1000万画素を超える撮像能力をもつかカメラも登場している。このような高精細な画像から赤目領域を検出する処理を、限られたワークメモリを用いて行うには、入力画像の解像度を低下することが有効である。例えば、800万画素の入力画像を、水平垂直方向に一画素間隔でサブサンプルすれば1/4の解像度、すなわち200万画素の画像に縮小することが可能である。この場合、画像を記憶するために必要なワークメモリの容量も1/4になる。しかし、たとえ200万画素に縮小したとしても、縮小後の画像全体を同時に保持するには、RGB24ビットの場合、約6MBのワークメモリが必要になる。大容量のRAMを備えるパーソナルコンピュータやワークステーションでは問題とならない記憶容量だが、限られた環境下においては、ワークメモリの使用量を削減するために、さらなる工夫が必要になる。
実施例5においては、入力画像を縮小し、縮小画像をさらにバンドに分割し、各バンド単位に、順次、赤目領域を抽出する方法を説明する。また、バンド分割においては、バンド境界に存在する赤目の検出を可能にするために、図33に示すように、オーバラップ領域を有する。図33において、符号3201は入力画像を縮小して得られる縮小画像を示し、BandHeightは1バンドを構成するライン数を示す。つまり、赤目領域の抽出処理は、Width×BandHeight(単位は画素数)の画像に対して行うことになる。また、実施例5におけるバンド分割は、OverlapAreaで示すライン数だけ、前のバンドと重複する。これによって、符号3202で示すような、バンド境界に存在する赤目領域についても抽出が可能になる。
図34は実施例5における赤目領域の抽出処理の一例を示すフローチャートで、画像入出力デバイスに搭載されたCPUが実行する処理である。
まず、カウンタNを零に初期化し(S3301)、Nバンド目の縮小画像を生成する(S3302)。
縮小画像の生成方法は、簡単のために、単純間引きによって縮小画像を生成する方法を説明する。例えば、800万画素の画像が画像入出力デバイスのメモリ(例えばデバイスに装備されたフラッシュメモリやハードディスク、あるいは、外部から装着されたメモリカード)に格納されているものとする。
ステップS3302において、メモリの画像データにアクセスし、画像データがJPEG形式で保存されていれば、最初のMCU(最小符号化単位)ブロックのデコードしてワークメモリの所定領域に格納する。このMCUブロックのサイズは、例えば16×8画素である。次に、デコード後の画像データから例えば一画素間隔でサブサンプリングして、8×4画素の画像データを生成し、ワークメモリの赤目領域抽出用の画像格納領域に格納する。この処理をBandHeightライン数分の赤目領域抽出用の画像格納領域が満たされるまで繰り返す。この処理によって、800万画素の画像を200万画素に縮小する場合のバンド画像を得ることができる。
勿論、画像の縮小方法は、単純間引き以外にも、最近隣補間や線形縮小を用いる方法など、様々な方法を利用することができ、それらのどれを使用しても構わない。
上記の処理によって、縮小画像のバンド画像が得られると、Nバンド目の赤目領域の抽出処理を行う(S3303)。
図35はNバンド目の赤目領域の抽出処理(S3303)の詳細を示すフローチャートである。
まず、縮小画像データに上記実施例で説明した適応的二値化処理を施す(S3401)。処理結果(赤色領域の二値画像)は、縮小画像の格納領域とは別に割り当てた領域に保存する。この際、縮小画像のOverlapArea領域は重複領域であるから、当該領域の処理は、N-1バンド目で実施済みである。従って、N>0であれば、OverlapArea領域の処理をスキップし、N-1バンド目の処理結果を再利用するようにしてもよい。このようにすることで、処理の高速化を図ることができる。
次に、二値化の結果(赤色領域)に対して、上記の実施例で説明した境界線追跡を施し、バンド画像から赤丸領域を抽出する(S3402)。
次に、抽出した赤丸領域に対して特徴量判定処理を施す前に、複数の赤丸領域のうち、特徴量判定処理を施す赤丸領域を選択する候補領域選択処理を行う(S3403)。
図36は、N-1、NおよびN+1バンド目において、OverlapArea内に四つの赤丸領域が存在する例を示している。例えば、赤丸領域3603に注目すると、当該領域はNバンド目とN+1バンド目の双方に存在し両者について特徴量判定を行えば、OverlapArea領域に存在する赤丸領域は常に二回の処理することになり、効率的ではない。
そこで、赤丸領域3603の場合、NまたはN+1バンド目のどちらで特徴量判定を行うべきかを考える。N+1バンド目では、赤丸領域3601に対して設定する周辺領域の上部が欠けるのに対して、Nバンド目では、周辺領域を参照することが可能である。従って、赤丸領域3603については、Nバンド目の判定結果の方が信頼性が高いと言える。さらに一般化すれば、OverlapArea領域に存在する赤丸領域の特徴量判定は、周辺領域をより広く参照できるバンドにおいて処理すべきである。
従って、実施例5の候補領域選択処理(S3403)は、OverlapArea領域に存在する赤丸領域について、図37に示すように、赤丸領域の上端からN+1バンド目の上端までの距離UPLenを予測(N+1バンド目は未処理であるから、N+1バンド目における赤丸領域の位置を予測する)し、赤丸領域の下端からNバンド目の下端までの距離BTLenを算出し、当該赤丸領域の特徴量判定を、UPLen<BTLenならばNバンド目で行い、UPLen≧BTLenならばNバンド目では行わない(言い換えればN+1バンド目で行う)と判定する。なお、Nバンド目で特徴量判定を行わない場合は、当該赤丸領域を当該バンドの候補領域リストから除外する。
同様に、図36に示す赤丸領域3604について距離UPLen、BTLenを算出すると、その関係はUPLen>BTLenになるため、赤丸領域3604はN+1バンド目で特徴量判定を行うことになる。また、上記の関係を赤丸領域3601、3602に適用すると、それぞれN-1バンド目、Nバンド目で特徴量判定を行うことになる。
このように、候補領域選択処理(S3403)では、OverlapArea領域に存在する赤丸領域の上部および下部とバンド端の距離(マージン)を算出し、その関係に応じて、どちらのバンドで特徴量判定を行うか否かを判断する。これによって、OverlapArea領域内の赤丸領域の重複する特徴量判定を防ぐことができる。
図35に戻り、候補領域選択処理(S3403)で選択された赤丸領域に対して、上記の実施例で説明した特徴量判定処理を施す(S3404)。その結果、赤目領域と判断した領域の補正処理に必要なパラメータを算出し(S3405)、赤目領域の情報とパラメータの組み合わせを、図38に示すように、候補領域リストに追加する(S3406)。なお、パラメータは、補正量Vy、Vcの計算(式(23))に必要な補正領域の最大輝度値Ymaxと評価量の最大値Ermaxである。
図34に戻り、図35に示すNバンド目の赤目領域の抽出処理(S3303)が終了すると、最終バンドの処理が完了したか否かを判定し(S3304)、完了であれば処理を終了し、未了であればカウンタNをインクリメントして(S3405)、処理をステップS3302に戻す。
図39は実施例5における補正処理の一例を示すフローチャートである。
まず、赤目領域の位置情報を変換する(S3801)。実施例5では、赤目領域の抽出、補正処理を画像入出力デバイスの組み込み処理として実行することを想定するため、上述したように、赤目領域の抽出処理は縮小画像で行う。しかし、補正対象の画像は縮小前の高解像度の画像であり、プリンタなどの画像出力デバイスであれば、縮小前の画像をさらに印刷(出力)解像度に拡大したり、回転した画像の可能性がある。従って、縮小画像上で抽出した赤目領域の位置情報を縮小率や拡大率(変倍率)、回転に応じて変換する必要がある。
候補領域リストに格納された位置情報が、図41に示すように、赤目領域の左上座標(xt0, yt0)と右下座標(xb0, yb0)で表現され、かつ、縮小画像の縦横の画素数がW0、H0、補正対象画像の縦横の画素数がW1、H1の場合、補正対象画像における赤目領域の座標を式(27)で算出する。
(xt1, yt1) = {int(xt0・k), int(yt0・k)}
(xb1, yb1) = {int(xb0・k), int(yb0・k)} …(27)
ここで、k = W1/W0
int( )は自身を超えない最大の整数
(xt1, yt1)は補正対象画像上の赤目領域の左上座標
(xb1, yb1)は補正対象画像上の赤目領域の右下座標
ステップSS3801において、補正対象画像上の赤目領域の座標が決定すると、実施例1と同様に、赤目領域周辺に楕円領域を設定し、楕円領域に含まれる画素を補正対象画素として以下の処理を行う。
まず、カウンタRを零に初期化し(S3802)、補正対象画像のRライン目の画像データを取得する(S3803)。実施例5では、補正対象画像をライン単位に補正する処理を説明するが、これに限定されるわけではなく、所定ライン数のバンド単位に補正しても構わない。補正対象画像の画像データの取得は、例えば図1に示す記憶装置105やメモリカードなどに、JPEGなどの圧縮形式で保存された画像データを所定のライン数分伸長し、そのうちの1(または複数)ラインを取得することで実現する。
次に、Rライン目が補正対象画素を含むか否かを判定する(S3804)。実施例5の補正処理は、赤目領域(矩形領域)の周辺に設定した楕円領域を補正対象領域にする。そのため、Rライン目が補正対象領域の上端から下端の間に位置するか否かを、候補領域リストに格納されたすべての赤目領域について判定する。Rライン目が補正対象画素を含まない場合は、カウンタRをインクリメントして(S3807)、処理をステップS3803に戻す。
例えば、図40に示すような場合、Rライン目は、ある赤目領域4003周辺に設定した補正対象領域4002に含まれる。従って、Rライン目の補正対象領域4002に含まれる画素について、実施例1で説明した補正処理を施す(S3805)。この補正処理に必要な最大輝度値Ymaxと評価量の最大値Ermaxは、上述したステップS3405において求めて候補領域リストに格納された値を使用する。
以上の処理を、ステップS3806の判定により、Rライン目が最終ラインになるまで繰り返すことで、入力画像全体に補正処理を施すことができる。
補正処理が終了した画像データは、例えば、記憶装置105に格納されたり、あるいは、色変換、疑似階調処理を施した後、例えばプリンタ110により記録紙に印刷されることになる。
このように、入力画像を縮小し、かつ、バンドに分割してバンド単位に赤目領域の抽出処理を行うことで、実施例1〜4で説明したような赤目領域の抽出および補正を、メモリリソースが極めて少ない環境下で実行することが可能になる。また、隣接するバンドとの間に重複領域が存在するようにバンド分割することで、バンド境界に存在する赤目領域の抽出が可能になる。
なお、赤目領域の抽出部を撮像装置などの画像入力デバイスに搭載し、赤目領域の補正部を印刷装置などの画像出力デバイスに搭載しても構わない。
[変形例]
上記の各実施例においては、画素ごとの評価量ErとしてRGB成分値のうち、Bを使用しない評価量Erを定義した。しかし、これに限定するものではなく、例えば、式(28)によって評価量Erを定義し、係数kを0または係数i、jよりも小さい値に設定しても同様の効果を得ることができる。ここで、係数i、j、kは負の数になり得る重みである。
Er = (i・R + j・G + k・B)/R …(28)
また、画素値をLabやYCbCrなどの別の色空間に変換した後、青色成分を考慮に入れない、あるいは、青色成分の重みを小さくして評価量Erを定義してもよい。
[他の実施例]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。

Claims (17)

  1. 画像の画素ごとに、目の色調の評価量を前記画像のR成分およびG成分のみから算出する算出手段と、
    前記算出手段によって算出された評価量に基づき目の色調不良を示す候補画素を抽出する抽出手段と、
    前記抽出手段によって抽出された複数の候補画素から構成される領域を抽出し、該抽出された領域が予め定められた形状であるか判定を行い、該予め定められた形状であると判定された領域を目の色調不良の候補領域として抽出する領域抽出手段とを有することを特徴とする画像処理装置。
  2. 前記抽出手段は、前記画像における注目画素の近傍に予め定めたウィンドウ領域を設定し、前記ウィンドウ領域に含まれる画素の前記評価量から閾値を決定し、前記閾値を用いて注目画素の前記評価量を二値化することで前記候補画素を抽出することを特徴とする請求項1に記載された画像処理装置。
  3. 前記抽出手段は、前記画像における前記注目画素と同一ライン上に複数の画素の分の前記ウィンドウ領域を設定することを特徴とする請求項2に記載された画像処理装置。
  4. 前記抽出手段は、前記注目画素を前記同一ラインの方向に走査して候補画素の抽出を行った後、前記ライン上で該走査した方向と逆の方向に前記注目画素を走査して候補画素の抽出を行い、前記二回の走査でともに抽出した画素を前記候補画素とすることを特徴とする請求項3に記載された画像処理装置。
  5. 前記予め定められた形状の領域は、円または楕円に近い形状の領域であることを特徴とする請求項1に記載された画像処理装置。
  6. さらに、前記領域抽出手段によって抽出された候補領域から算出した目の特徴量に基づき、前記候補領域を補正領域にするか否かを決定する決定手段と、
    前記決定手段において前記候補領域を補正領域にすると決定された場合、前記補正領域に色調不良を補正する処理を施す補正手段とを有することを特徴とする請求項1または請求項5に記載された画像処理装置。
  7. 前記決定手段は、前記候補領域から複数の前記目の特徴量を算出し、前記候補領域が前記特徴量のすべて、または、前記特徴量のうち予め定めた特徴量に対して予め定めた基準を満たす場合、前記候補領域を前記補正領域と判定することを特徴とする請求項6に記載された画像処理装置。
  8. 前記補正手段は、前記補正領域の画素と前記補正領域の中心の間の距離に応じて一の重みを算出する手段、前記画像における注目画素の前記評価量と前記補正領域の画素の評価量の最大値の比に応じて二の重みを算出する手段、前記注目画素の輝度値と前記補正領域の画素の輝度値の最大値の比に応じて三の重みを算出する手段、前記一から三の重みを用いて輝度および色差成分の補正量を決定する手段、並びに、前記補正量を用いて、前記注目画素の輝度および色差成分を補正する手段を有することを特徴とする請求項7に記載された画像処理装置。
  9. 前記補正量を決定する手段は、前記一から三の重みを用いて前記輝度成分の補正量を決定し、前記一および二の重みを用いて前記色差成分の補正量を決定することを特徴とする請求項8に記載された画像処理装置。
  10. さらに、前記候補領域の近に、前記候補領域より小さい候補領域が存在する場合、前記小さい候補領域を除外する領域の除外手段を有することを特徴とする請求項1に記載された画像処理装置。
  11. さらに、前記領域抽出手段によって抽出された複数の候補領域の間の距離を判定する閾値を用いて前記複数の候補領域の間の距離を判定し、さらに、前記複数の候補領域に外接する領域の縦横比を用いて前記外接する領域の形状を判定し、前記複数の候補領域の間の距離と前記外接する領域の形状の判定結果に応じて、前記複数の候補領域を結合する領域結合手段を有することを特徴とする請求項1に記載された画像処理装置。
  12. 前記領域結合手段は、前記複数の候補領域の面積の和を、前記複数の候補領域に外接する領域の面積で除算した値が所定の閾値よりも大きく、かつ、前記外接する領域の形状が、前記複数の候補領域の何れよりも正方形に近い場合に、前記複数の候補領域を結合することを特徴とする請求項11に記載された画像処理装置。
  13. 前記領域結合手段は、前記複数の候補領域の面積の和を、前記複数の候補領域に外接する領域の面積で除算した値が所定の閾値よりも大きく、かつ、前記外接する領域の縦横比が前記複数の候補領域の何れの縦横比よりも大きい場合に、前記複数の候補領域を結合することを特徴とする請求項11に記載された画像処理装置。
  14. 前記評価量は、前記画像のR成分およびG成分を用いて(R-G)またはR/Gから算出されることを特徴とする請求項1に記載された画像処理装置。
  15. 画像の画素ごとに、目の色調の評価量を前記画像のR成分およびG成分のみから算出する算出ステップと、
    前記算出ステップによって算出された評価量に基づき目の色調不良を示す候補画素を抽出する抽出ステップと、
    前記抽出ステップによって抽出された複数の候補画素から構成される領域を抽出し、該抽出された領域が予め定められた形状であるか判定を行い、該予め定められた形状であると判定された領域を目の色調不良の候補領域として抽出する領域抽出ステップとを有することを特徴とする画像処理方法。
  16. コンピュータを請求項1から請求項14の何れか一項に記載された画像処理装置の各手段として機能させるためのプログラム。
  17. 請求項16に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
JP2010157308A 2010-07-09 2010-07-09 画像処理装置およびその方法 Expired - Fee Related JP4850961B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010157308A JP4850961B2 (ja) 2010-07-09 2010-07-09 画像処理装置およびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010157308A JP4850961B2 (ja) 2010-07-09 2010-07-09 画像処理装置およびその方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009231002A Division JP4580029B2 (ja) 2009-10-02 2009-10-02 画像処理装置およびその方法

Publications (2)

Publication Number Publication Date
JP2010257482A true JP2010257482A (ja) 2010-11-11
JP4850961B2 JP4850961B2 (ja) 2012-01-11

Family

ID=43318245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010157308A Expired - Fee Related JP4850961B2 (ja) 2010-07-09 2010-07-09 画像処理装置およびその方法

Country Status (1)

Country Link
JP (1) JP4850961B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460347B2 (en) 2013-06-28 2016-10-04 Canon Kabushiki Kaisha Image processing apparatus and method for processing image for detecting an image area including a defective color tone

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713274A (ja) * 1993-06-25 1995-01-17 Olympus Optical Co Ltd 赤目修正装置
JP2001186325A (ja) * 1999-12-24 2001-07-06 Fuji Photo Film Co Ltd 画像処理方法、装置、記録媒体、及び伝送媒体
JP2005196385A (ja) * 2004-01-06 2005-07-21 Toshiba Corp 画像処理装置、画像処理方法およびデジタルカメラ
JP4405942B2 (ja) * 2005-06-14 2010-01-27 キヤノン株式会社 画像処理装置およびその方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713274A (ja) * 1993-06-25 1995-01-17 Olympus Optical Co Ltd 赤目修正装置
JP2001186325A (ja) * 1999-12-24 2001-07-06 Fuji Photo Film Co Ltd 画像処理方法、装置、記録媒体、及び伝送媒体
JP2005196385A (ja) * 2004-01-06 2005-07-21 Toshiba Corp 画像処理装置、画像処理方法およびデジタルカメラ
JP4405942B2 (ja) * 2005-06-14 2010-01-27 キヤノン株式会社 画像処理装置およびその方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460347B2 (en) 2013-06-28 2016-10-04 Canon Kabushiki Kaisha Image processing apparatus and method for processing image for detecting an image area including a defective color tone

Also Published As

Publication number Publication date
JP4850961B2 (ja) 2012-01-11

Similar Documents

Publication Publication Date Title
JP4405942B2 (ja) 画像処理装置およびその方法
JP4498224B2 (ja) 画像処理装置およびその方法
JP4420459B2 (ja) 画像処理装置およびその方法
US7171044B2 (en) Red-eye detection based on red region detection with eye confirmation
US7454040B2 (en) Systems and methods of detecting and correcting redeye in an image suitable for embedded applications
US7747071B2 (en) Detecting and correcting peteye
US8175341B2 (en) Image processing method and apparatus thereof
US8498496B2 (en) Method and apparatus for filtering red and/or golden eye artifacts
JP4850961B2 (ja) 画像処理装置およびその方法
JP4580029B2 (ja) 画像処理装置およびその方法
JP2007004455A (ja) 画像処理装置及び画像処理方法、及びプログラムを記録した記憶媒体
EP2143069A1 (en) Method for red eye detection in a digital image
JP6188453B2 (ja) 画像処理装置、画像処理方法、及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111014

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111019

R151 Written notification of patent or utility model registration

Ref document number: 4850961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees