米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> キヤノン株式会社

発明の名称 画像処理装置及び画像処理方法、及びプログラムを記録した記憶媒体
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−4455(P2007−4455A)
公開日 平成19年1月11日(2007.1.11)
出願番号 特願2005−183463(P2005−183463)
出願日 平成17年6月23日(2005.6.23)
代理人 【識別番号】100066061
【弁理士】
【氏名又は名称】丹羽 宏之
発明者 梅田 清
要約 課題
撮影時のフラッシュに起因する目の色調不良を自動的に検出、補正する方法に関する。従来よりも処理負荷および消費メモリ量が少なく、組み込みシステムにおいても高い検出性能を実現可能とする。

解決手段
画像中から目の色調不良を自動的に検出し、修正を行う画像処理装置であって、画像を入力する入力手段と、画像中から候補画素を抽出する候補画素抽出手段と、該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備える。
特許請求の範囲
【請求項1】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理装置であって、
画像を入力する入力手段と、
画像中から候補画素を抽出する候補画素抽出手段と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、
該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備えることを特徴とする画像処理装置。
【請求項2】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理装置であって、
画像を入力する入力手段と、
画像中から候補画素を抽出する候補画素抽出手段と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、
該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備え、
該リストに登録された候補領域を補正する補正手段を有することを特徴とする画像処理装置。
【請求項3】
前記境界線追跡手段は、
追跡の始点位置を検出する始点位置検出手段と、
追跡途中の現在位置と始点位置とを判定する判定手段を有し、
上記判定手段は、始点位置と現在位置の高さを比較し、比較結果により追跡処理を中断するか否かを判断することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記境界線追跡手段は、
独立領域の周辺長を算出する周辺長算出手段を含むことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項5】
前記境界線追跡手段は、
独立領域のサイズを算出するサイズ算出手段を含むことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項6】
前記境界線追跡手段は、
追跡方向をヒストグラムとして求める方向ヒストグラム算出手段を含むことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項7】
前記始点位置検出手段は、
注目画素が前記候補画素であり、かつ候補画素の左、左上、上、右上の4位置が候補画素でない場合、該注目画素を始点として決定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項8】
前記判定手段は、
独立領域の縦横比を算出して所定閾値と比較し、縦横比が所定閾値よりも1に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項9】
前記判定手段は、
独立領域と入力画像のサイズを比較し、独立領域のサイズが入力画像のサイズの所定割合よりも大きい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項10】
前記判定手段は、
独立領域の幅、高さから理想円周を算出する理想円周算出手段を有し、
該理想円周と境界線追跡の結果得られた周辺長との比を算出して所定閾値と比較することにより、比が1に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項11】
前記判定手段は、
該方向ヒストグラムの偏りを算出する偏り度合い算出手段を有し、
該偏り度合いを所定閾値と比較し、方向ヒストグラムの偏りが所定閾値より小さい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項12】
請求項11に記載の判定手段は、
方向ヒストグラムの度数の総和が所定閾値より小さい場合、判定を行わないことを特徴とする画像処理装置。
【請求項13】
請求項11に記載の偏り度合い算出手段は、
方向をグループ化して各グループ毎に方向ヒストグラムの度数を和を算出し、該度数の方向ヒストグラム全体の度数和に対する割合を算出することを特徴とする画像処理装置。
【請求項14】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理方法であって、
画像を入力する入力工程と、
画像中から候補画素を抽出する候補画素抽出工程と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡工程と、
該境界線追跡工程により円、あるいは楕円領域に近いか否かを判定する判定工程とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成工程を備えることを特徴とする画像処理方法。
【請求項15】
画像中から目の色調不良を自動的に検出し、修正を行う画像処理方法であって、
画像を入力する入力工程と、
画像中から候補画素を抽出する候補画素抽出工程と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡工程と、
該境界線追跡工程により円、あるいは楕円領域に近いか否かを判定する判定工程とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成工程を備え、
該リストに登録された候補領域を補正する補正工程を有することを特徴とする画像処理方法。
【請求項16】
前記境界線追跡工程は、
追跡の始点位置を検出する始点位置検出工程と、
追跡途中の現在位置と始点位置とを判定する判定工程を有し、
上記判定工程は、始点位置と現在位置の高さを比較し、比較結果により追跡処理を中断するか否かを判断することを特徴とする請求項14又は15に記載の画像処理方法。
【請求項17】
前記境界線追跡工程は、
独立領域の周辺長を算出する周辺長算出工程を含むことを特徴とする請求項14又は15に記載の画像処理方法。
【請求項18】
前記境界線追跡工程は、
独立領域のサイズを算出するサイズ算出工程を含むことを特徴とする請求項14又は15に記載の画像処理方法。
【請求項19】
前記境界線追跡工程は、
追跡方向をヒストグラムとして求める方向ヒストグラム算出工程を含むことを特徴とする請求項14又は15に記載の画像処理方法。
【請求項20】
前記始点位置検出工程は、
注目画素が前記候補画素であり、かつ候補画素の左、左上、上、右上の4位置が候補画素でない場合、該注目画素を始点として決定することを特徴とする請求項14又は15に記載の画像処理方法。
【請求項21】
前記判定工程は、
独立領域の縦横比を算出して所定閾値と比較し、縦横比が所定閾値よりも1に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項14又は15に記載の画像処理方法。
【請求項22】
前記判定工程は、
独立領域と入力画像のサイズを比較し、独立領域のサイズが入力画像のサイズの所定割合よりも大きい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項14又は15に記載の画像処理方法。
【請求項23】
前記判定工程は、
独立領域の幅、高さから理想円周を算出する理想円周算出工程を有し、
該理想円周と境界線追跡の結果得られた周辺長との比を算出して所定閾値と比較することにより、比が1に近い場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項14又は15に記載の画像処理方法。
【請求項24】
前記判定工程は、
該方向ヒストグラムの偏りを算出する偏り度合い算出工程を有し、
該偏り度合いを所定閾値と比較し、方向ヒストグラムの偏りが所定閾値より小さい場合、該独立領域を候補領域と判定する処理を含むことを特徴とする請求項14又は15に記載の画像処理方法。
【請求項25】
請求項24に記載の判定工程は、
方向ヒストグラムの度数の総和が所定閾値より小さい場合、判定を行わないことを特徴とする画像処理方法。
【請求項26】
請求項24に記載の偏り度合い算出工程は、
方向をグループ化して各グループ毎に方向ヒストグラムの度数を和を算出し、該度数の方向ヒストグラム全体の度数和に対する割合を算出することを特徴とする画像処理方法。
【請求項27】
請求項14〜26いずれかに記載の画像処理方法を構成する工程を実行するためのプログラムを記憶したコンピュータ読取り可能な記憶媒体。
発明の詳細な説明
【技術分野】
【0001】
本発明は、画像中から目の色調不良を自動で検出し、好ましい状態に変換・補正を行う画像処理装置及び画像処理方法、及びプログラムを記録した記憶媒体に関する。
【背景技術】
【0002】
従来より、カメラのフラッシュに起因する目の色調不良を補正する方法が提案されている。この目の色調不良は赤目現象として一般的によく知られるものである。赤目現象は、照明の少ない環境下で人間あるいは犬・猫などの動物を、フラッシュを使用して撮影した際に、開いた瞳孔部分に入ったフラッシュ光が眼底で反射することにより、毛細血管が赤く光る現象である。基本的には色素の薄い人種、すなわち日本人のような黄色人種よりも欧米人の方が、瞳孔すなわち水晶体の透過率が高いため、赤目現象にはなりやすいとされている。
【0003】
また、近年普及しているデジタルカメラにおいては更なる小型化が進み、レンズの光軸と光源であるフラッシュの位置が近づいている。一般的に、フラッシュ光源の位置が光軸に近いほど赤目現象が発生しやすいとされており、その対策は重要な課題となっている。
【0004】
赤目現象を防ぐ一つの手段として、カメラ側で撮影を行う際にプレ発光を行い、人物の瞳孔を閉じさせた上で撮影を行う手段が知られている。しかし、この方法を使用すると、通常撮影時と比較して電力の消耗を招くことや、プレ発光により被写体である人物の表情が崩れるという不具合がある。
【0005】
そこで、近年においては、デジタルカメラによって撮影した結果得られたデジタル画像データを、パーソナルコンピュータ等を使用して補正・加工を施すことにより、赤目の修正を行う手段が数多く提案されている。
【0006】
デジタル画像データ上で赤目を補正する手段は、大きく手動補正、半自動補正、自動補正に分類することができる。
【0007】
手動補正は、ユーザが、マウス、ライトペンなどのポインティングデバイスやタッチパネルを使用して、ディスプレイに表示された赤目領域を指定し、指定された領域を補正するものである。
【0008】
また、半自動補正は、ユーザが赤目が存在する場所をある程度指定し、その情報から赤目の補正範囲を特定し、補正を行うというものである。例えば、ユーザは両目を囲むような範囲を上記ポインティングデバイスによって指定したり、目の近辺を1点指定する。ユーザが指定した位置、あるいは領域の情報から補正範囲を特定し、補正を実行する。
【0009】
また、自動補正は、ユーザの特別な操作を必要とせず、自動的にデジタル画像データ中から補正領域を検出し、補正処理を実行するものである。
【0010】
上記の手動および半自動補正では、ユーザが何らかの操作により、補正を行う個所を指定する必要があるが、この指定を行うためには、画像データの所望の領域付近を拡大表示した後、所望の領域を指定するといったユーザにとって煩わしい操作が必要となってしまう。また、パーソナルコンピュータなどの大画面の表示装置を備えたシステム上であればこのような操作も容易であるが、デジタルカメラやプリンタなど数インチの表示装置しか備えていないデバイス上では、画像を拡大してスクロールしながら、所望の領域を指定するといった操作は容易ではない。
【0011】
従って近年では、上記のうちユーザの煩わしい操作が必要なく、かつ大きな表示装置を備えないデバイスにおいても有効である自動補正に関して、様々な提案が行われている。
【0012】
例えば、特許文献1、特許文献2では、画像中から肌色領域を検出し、その領域内で赤目を構成すると思われる画素をサーチし、検出した赤目を補正する方法が提案されている。
【0013】
また、特許文献3、特許文献4では、肌色領域を検出し、そのエリアの中で瞳の輝度の低さに対応する谷領域を検出し、第1の谷と第2の谷との距離を基に目であることを決定する方法が提案されている。
【0014】
また、特許文献5、特許文献6では、肌色領域を検出し、肌色領域が人間の顔の特徴であるかを判断し、その領域内で赤目欠陥の一組を検出して距離と大きさを評価することにより、赤目領域と特定する方法が提案されている。
【0015】
また、特許文献7、特許文献8では、画像が赤い瞳孔を含むか否かを自動判別し、検出した場合には位置、大きさを検出し、瞳孔内の赤色画素を自動的に所定の色に変換する方法が提案されている。
【0016】
赤目の検出方法については、上記に限らず様々な提案が行われている。
【特許文献1】米国特許第6292574号明細書
【特許文献2】特開平11−136498号公報
【特許文献3】米国特許第6151403号明細書
【特許文献4】特開平11−149559号公報
【特許文献5】米国特許第6252976号明細書
【特許文献6】特開2000−125320号公報
【特許文献7】米国特許第6278491号明細書
【特許文献8】特開平11−284874号公報
【発明の開示】
【発明が解決しようとする課題】
【0017】
しかし、これまで提案されている方法には以下のような課題が存在する。
【0018】
まず、人物の肌色検出、あるいはニューラルネットワーク等を用いた顔検出の結果に基づく赤目領域の検出においては、検出結果の信頼性は高いと言えるが、検出のために画像中のある程度広範囲な領域を参照する必要があるため、大量のメモリや演算量を必要とする。従って、数GHzのクロックで動作する高性能なCPUと数百MBの大容量のメモリを搭載したパーソナルコンピュータ上で動作させる場合には適しているが、デジタルカメラやプリンタ本体内部の組み込みシステムにおいて実装するのは困難である。
【0019】
また、上記記載した従来例に限らず、これまで提案されている方式の多くは、赤目領域が周辺領域と比較して彩度が高いという特徴を利用して、赤目領域を特定するというものである。しかし、従来の彩度に基づく判定では、日本人のような黄色人種にとっては適合しないという問題がある。よく知られているように、画素値がRGB系で与えられた際の彩度は以下のようにして求めることができる。
【0020】


【0021】
上式において、max(R,G,B)は、RGB成分値のうちの最大値を、min(R,G,B)は最小値を意味している。
【0022】
例えば、日本人の肌色領域は色相(0〜359度)で言えば0〜30度付近に多く分布することが実験の結果明らかになっている。なお、HIS系の色相では0度付近が赤色であり、大きくなるに従って、イエローに近づいてゆく。上記0〜30度付近では、RGB値の大小関係は以下のようになっている。
R>G>B 式2
【0023】
また、日本人のように色素の多い人種は鮮やかな赤目になりにくいということは、すでに述べた通りである。
【0024】
以上のことから、例えば、日本人の赤目領域の画素値は(R,G,B)=(109,58,65)、周辺肌色領域の画素値は(R,G,B)=(226,183,128)となっている場合がある。このような場合、赤目画素の彩度は40、周辺肌領域画素の彩度は43となり、ほぼ同様の結果となってしまう。従って、人種によっては、彩度に着目していては赤目画素と特定できない場合があった。
【0025】
また、赤目領域を特定するためには、赤目候補画素と判定された画素群の中から、赤目である確率の高い円形に近い領域を、確実かつ高速に抽出する必要がある。しかし、従来方法の中には、形状判定を高速かつ消費メモリ量も少なく、さらに確実に抽出する方法について、具体的な記述が見られなかった。
【0026】
本発明の目的は、上記問題を解決するために、様々な人種に対しても適応性が高く、また高速かつ使用メモリ量も少なく、組み込みシステムなどの限られたリソース環境下においても高い信頼性を発揮できる赤目検出および補正アルゴリズムを提供することである。
【課題を解決するための手段】
【0027】
上記問題を解決するために、本発明の画像処理装置は以下の手段を備える。
【0028】
すなわち、
画像を入力する入力手段と、
画像中から候補画素を抽出する候補画素抽出手段と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡手段と、
該境界線追跡手段により円、あるいは楕円領域に近いか否かを判定する判定手段とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成手段を備えることを特徴とする。
【0029】
また、上記問題を解決するために、本発明の画像処理方法は以下の工程を備える。
【0030】
すなわち、
画像を入力する入力工程と、
画像中から候補画素を抽出する候補画素抽出工程と、
該候補画素に対して境界を追跡することで複数の候補画素で構成される独立領域を特定する境界線追跡工程と、
該境界線追跡工程により円、あるいは楕円領域に近いか否かを判定する判定工程とを有し、
上記判定を満たす場合、候補領域としてリストに追加するリスト生成工程を備えることを特徴とする。
【発明の効果】
【0031】
本発明の第1の実施例によれば、
赤目を構成する画素であるか否かを従来の彩度ではなくRおよびG成分の関係で求めた赤色評価量を用いて判定することにより、日本人のような色素の濃い人種の赤目も精度良く抽出することが可能となる。また、赤目候補画素をオンドットとした2値化画像上において、境界線追跡法を適用することにより、該2値化画像上から、極めて少ない演算量で高速に赤丸領域を抽出することが可能となる。また、該赤丸領域に対して、赤目であると考えられる様々な特徴量を算出し、それを評価することで、最終的に赤目領域を精度良く特定することが可能となる。また、特徴量判定は、個々の特徴量判定による効果、および特徴量算出時の演算量に応じて適切な順序で判定を行うことにより、必要最小限の処理量で検出処理を実現することができる。
【0032】
さらに、本発明の第2の実施例によれば、
適応的2値化処理による赤領域抽出時に、2値化閾値を算出する水平方向ウィンドウを、注目画素に対して左右双方向に設定して2値化処理を行うことにより、赤目を構成する画素のみをさらに精度良く抽出することが可能となる。
【0033】
さらに、本発明の第3の実施例によれば、
ある赤目候補領域の近隣に、該候補領域よりも小さい候補領域が存在する場合には、小さい領域を候補リストから除外することにより、赤目ではない領域に対する誤補正を防止することが可能となる。
【0034】
さらに、本発明の第4の実施例によれば、
ある赤目候補の近隣に、該候補領域と同等の候補領域が存在しており、かつ、両者を結合した場合により赤目の条件に近づくか否かの判定を行うことにより、瞳孔内部に存在するハイライト領域によって分断された赤目候補領域を、適切に抽出することが可能となる。
【0035】
さらに、本発明の第5の実施例によれば、
入力画像を縮小し、かつバンド単位に分割して検出処理を行うことにより、第1の実施例で述べたような赤目検出および補正方法を、メモリリソースが極めて少ない環境下においても実行することが可能となる。また、該バンドは重複領域を保持するように設定することで、バンド境界に存在する赤目についても、適切に検出することが可能となる。
【発明を実施するための最良の形態】
【0036】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例】
【0037】
(第1の実施例)
以下、出願人が提案した発明について説明する。尚、以降で説明する処理は、主として、プリンタエンジンへ出力すべき画像情報を作成するコンピュータ内のプリンタドライバソフト、もしくは、スキャナ等の光学読取り装置を動作させるためのドライバソフト、もしくはアプリケーションソフトとして内蔵することが効率的であるが、複写機、ファクシミリ、プリンタ、デジタルカメラ、デジタルビデオカメラ等にハードウェア、及びソフトウエアとして内蔵することにも効果がある。
【0038】
図1に、本発明における全ての実施例で説明する画像処理方法が実行されるハードウェア環境を示している。同図において、コンピュータ100は、CPU101、ROM102、RAM103、ディスプレイ、タッチパネルなどの表示装置104、ハードディスクドライブやメモリカードなどの2次記憶装置105、マウス、ライトペンなどのポインティングデバイス106、キーボード107、USBやIEEE1394、あるいはイーサネット(登録商標)などの外部インターフェース108で構成され、それぞれのデバイスがシステムバス109に接続された状態になっている。また、外部インターフェース108を介してプリンタ110が接続されていてもよい。上記構成はあくまで本実施例で説明する処理を実施するためのハードウェアの一般的な構成であり、一部の構成を欠いたり、他のデバイスが追加されたとしても、本発明の範疇に含まれることは言うまでもない。
【0039】
(概要)
以下に、本実施例の処理の概要について説明する。
【0040】
図2は、本実施例における赤目の自動補正方法の概要である。入力画像は、例えば、1画素あたりRGB各8bit、合計24bitのデジタル画像データである。
【0041】
また、図3は、デジタルカメラなどの撮像装置により撮像された赤目画像の概念的な図である。同図において302は目の瞳孔領域、301は虹彩領域、304は撮影時に使用したフラッシュに起因するハイライト領域を示している。また、303は白目の領域である。通常の赤目現象においては、瞳孔302の領域が赤くなっている。
【0042】
さて、該画像データが図2の入力端子201から入力され、赤領域抽出部202において、画像中から赤い領域を抽出する。赤い領域の抽出方法については様々な方法が考えられるが、本実施例においては、適応的2値化による赤領域の抽出法について説明する。同部においては、赤領域は目であるか否かに関わらず抽出されることになるため、赤領域は赤目部分や信号機、服の模様、照明など様々なものが含まれる。
【0043】
次に、抽出された赤領域情報と入力画像データは、赤丸領域抽出部203に入力され、同部において、該赤領域の中から、形状が比較的円形に近い領域を特定する。領域形状の判定については様々な方法が考えられるが、本実施例においては、境界線追跡による赤丸領域の抽出法について説明する。なお、抽出された赤丸領域の位置情報は、候補領域リストに格納される。
【0044】
次に、上記候補領域リストと入力画像データは、特徴量判定部204に入力され、同部において、該赤丸領域に対して目であると特定できるような様々な特徴量の判定処理を行う。目であると特定できるような特徴量としては、赤丸領域の彩度であったり、赤丸周辺領域の明度、彩度、色相、エッジの分布などであったりする。これらの特徴量を、あらかじめ定められた閾値と比較し、全ての条件を満たす赤丸領域を赤目領域であると特定する。
【0045】
特定された赤目領域の位置情報を格納した候補領域リストと入力画像データは、補正部205に入力され、同部において、特定された赤目領域に対して補正処理が行われる。
【0046】
補正処理が施された後の画像データは出力端子206から出力され、表示装置104に表示されたり、RAM103あるいは2次記憶装置105に格納されたりする。また、インターフェース108を介して接続されたプリンタにより、印字物上にプリントされることも考えられるし、インターフェース108を介してイントラネット、あるいはインターネットで接続された他のコンピュータに送信されたりすることも考えられる。
【0047】
以上が本実施例の処理の概要である。以下より各部の詳細説明を行う。
【0048】
(赤領域抽出部)
赤領域抽出部202においては、入力された画像データに対して適応的2値化処理を適用することで、画像データ中から赤領域を抽出する。本実施例における適応的2値化処理では、入力された画像データの各画素値に対して該画素の赤色度合いを示す赤色評価量を算出し、該評価量が閾値と比較して大きい場合、その画素は赤色であるとしてオンドットとする。この閾値は注目画素周辺領域において適応的に決定される閾値である。
【0049】
図4は、本実施例における適応的2値化処理の説明図である。
【0050】
同図において、注目画素402が、現在2値化対象となっている入力画像データ401上の画素である。適応的2値化処理部では、入力画像から赤領域を抽出するために、注目画素の赤色度合いを示すための評価量E以下のように定義する。
【0051】


【0052】
以下では、上記Eを赤色評価量と呼ぶこととする。上式は、注目画素の赤色度合いを、一般的なHSI系の彩度ではなく、B成分を除くR、Gの2成分から求めることを意味している。
【0053】
赤色評価量を彩度ではなく、上式で定義することの利点を以下に説明する。例えば、日本人のような色素の多い人種の赤目の場合、瞳孔部分である水晶体の透過率が低いために、鮮やかな赤目になりにくいという傾向がある。日本人の赤目の場合、例えば、赤目領域の画素値は(R,G,B)=(109,58,65)といった値となっている。また、日本人の肌色は色相で言えば赤(0度)からイエロー(60度)の間に多く分布することが実験の結果明らかになっている。このような領域では、RGB各成分の大小関係は、R>G>Bとなっており、周辺肌色領域の画素値は例えば、(R,G,B)=(226,183,128)という値となっている。このような場合についてそれぞれの彩度を求めてみると、赤目画素の彩度は40、周辺肌領域画素の彩度は43となり、ほぼ同様の結果となってしまう。この場合、赤目領域の画素値の彩度は、周辺肌色領域の彩度に対して特別突出しているわけではないため、本実施例のような適応的2値化による検出が困難になってしまう。
【0054】
一方で、各画素の赤色評価量を上式のように定義した場合、赤目領域の画素値の赤色評価量は47、周辺肌色領域の赤色評価量は19となるため、周辺領域に比べて赤目領域内の画素値の赤色評価量は2倍以上の突出した値となることがわかる。
【0055】
以上のことから、日本人のような色素の濃い人種の赤目を検出する場合には、彩度ではなく、上式のようなB成分を含まない、RG成分のみの評価量を定義することにより、赤目を構成する画素を精度良く抽出することが可能となる。なお、上式においては、R成分に対する(R−G)の割合を評価量としたが、本発明はこれに限定されるものではない。例えば、(R−G)のみを評価量としてもよいし、R/Gを評価量としてもよい。
【0056】


【0057】


【0058】
上式において、Margin_RGRはパラメータである。上式は、注目画素の赤色度合いが、注目画素直前に設定したウィンドウ領域の赤色評価量平均値にMargin_RGRを加えた値よりも大きい場合、オンドット(1)とする、すなわち、その注目画素を赤領域として抽出することを意味している。
【0059】


【0060】
以上説明したような処理を、入力画像データの各ライン単位で、注目画素を左から右に移動させながら、全ての画素に対して処理を行う。
【0061】
なお、本実施例においては、2値化を行うための閾値を、注目画素左方の同じ行のみに設定したウィンドウを用いて算出したが、本発明はこれに限定されるものではない。例えば、注目画素左方でかつ複数の行を含むようなウィンドウを設定してもよいし、注目画素を中心とした所定正方領域をウィンドウと設定してもよい。
【0062】
図6に、適応的2値化結果の例を示す。同図において、(a)は入力画像データの赤目近辺の画像であり、(b)は適応的2値化を施した結果得られた2値化画像である。赤目の瞳孔部分のみが抽出されている様子を示している。
【0063】
また、本実施例においては、上記水平方向に設定したウィンドウ内部の赤色評価量平均値を求める際に、以下のような高速化手法を用いても良い。図5は、該平均値を求める際の高速化手法を説明するための図である。同図(a)において、上述したように注目画素の左方に設定したウィンドウ内の赤色評価量平均値を求める際に、ウィンドウ内の赤色評価量の総和をメモリに格納しておく。平均値は、該総和をウィンドウを構成する画素数で除算することにより、簡単に求めることができる。次に、注目画素は1画素右側に移動するが、その際にはウィンドウも1画素右側にスライドする。この時、同図(b)におけるウィンドウ内の赤色評価量の総和は、(a)において求めた総和から画素501の赤色評価量を減算し、画素502の赤色評価量を加えれば良く、改めてウィンドウ内全ての画素について赤色評価量を算出する必要はないため、処理の高速化が図れる。
【0064】
以上が、赤領域抽出部202の説明である。
【0065】
(赤丸領域抽出)
以下では、赤丸領域抽出部203について詳細な説明を行う。2値化画像中の形状判定には様々な方法が考えられるが、本実施例においては、2値化画像処理方法の一つである境界線追跡法を用いる。
【0066】
図7は、本実施例における境界線追跡法の説明図である。
【0067】
境界線追跡処理では、まず前記適応的2値化処理の結果得られた2値化画像に対して、画像を上端から走査方向にスキャンしてゆき、


であり、かつ、


の4方向がオフドットとなるような画素を始点として決定する(図中701)。なお、同図においては、2値化画像の左上を原点とするような座標系を設定している。
【0068】
そして、前記画素から反時計回りに2値化画像がオンドットとなる画素を、始点701に再び戻ってくるまで順次追跡してゆく。追跡の途中で画像領域を逸脱したり、始点位置よりもY座標が小さくなるような場合には、追跡を打ち切り次の始点の探索を行う。追跡の途中でY座標が始点よりも小さくなった場合に追跡を打ち切るのは、図8に示すような環状領域の内側を誤って追跡することがないようにするためである。環状領域の内側を追跡した場合には、同図801の地点で始点よりもY座標が小さくなるため、ここで処理を打ち切る必要がある。
【0069】
また上記追跡過程では、追跡対象領域の周辺長、方向ヒストグラム、X座標とY座標の最大・最小値を得ることができる。
【0070】
ここで、周辺長は追跡した画素数である。例えば図7の場合、追跡した画素数は始点も含め9画素である。
【0071】
また、方向ヒストグラムは、追跡を行う過程で、ある画素から次の画素への追跡が、図9に示す8方向のうちどれであったかを、回数として累積したものである。例えば図7の場合、701を始点として反時計回りに追跡を行うと、方向は、667812334という結果になるため、方向ヒストグラムは図11のようになる。
【0072】
また、X、Y座標の最大・最小値は、図10に示すように、オンドット、すなわち赤領域が存在する矩形領域を指し示すことになる。
【0073】
赤丸領域抽出部203では、各々の赤領域の境界線追跡において上記のような値を取得し、図12に示すような判定処理を行う。
【0074】
同図によれば、まずS1201において、赤領域の縦横比があらかじめ設定された閾値Th_BF_VHRatio以下であるか否かの判定を行う。ここで、図中Thは閾値Th_BF_VHRatioを示す。以降、Thは閾値を示すが、全てのThは同じ値というわけではない。縦横比は、以下のようにして算出することができる。
【0075】


【0076】
もし、上記縦横比が1を超える場合には、その逆数を算出する。すなわち、縦横比は0.0〜1.0の範囲で表され、1.0のときは縦と横の長さが同じである。S1201では上記縦横比とTh_BF_VHRatioを比較し、縦横比が閾値よりも小さい場合、その赤領域は赤目候補ではないと判定して、次の赤領域の境界線追跡処理を行う。なお、本ステップにおけるTh_BF_VHRatioは通常、0.33〜0.50程度の値となることが望ましい。
【0077】
次にS1202において、赤領域のサイズが適正か否かに関する判定を行う。サイズについては、(1)実際の画素数の上限・下限、(2)画像の短辺または長辺に対する比、の二つの観点から行う。
【0078】
(1)については、赤領域の


のうち小さい方と、あらかじめ設定されている閾値とを比較し、上記縦幅もしくは横幅が上限閾値Th_BF_SizeMaxと下限Th_BF_SizeMinの間に含まれているか否かを判定する。もし含まれていなければ、その赤領域は赤目候補ではないとして、次の赤領域に対する境界線追跡処理を行う。なお、本ステップにおける閾値は、Th_BF_SizeMax=200,Th_BF_SizeMin=5(単位は画素)程度が望ましい。
【0079】
また、(2)については、以下の式により求めることができる。
【0080】


【0081】
上式において、min()は、引数のうち最も小さい値を示す。また、W、Hは、それぞれ入力画像の幅、高さを表す。さらに、それぞれの閾値について、Th_BF_RatioMin=0.005、Th_BF_RatioMax=0.10程度となることが望ましい。もし、現在注目している赤領域が上記判定を満たさない場合、赤目候補ではないと判定して、次のステップに処理は移る。なお、上式においては、それぞれ短辺と比較する場合を示したが、それぞれ長辺と比較するようにしてもよい。
【0082】
次にS1203において、上記周辺長を理想円周と比較し、抽出した赤領域が円形に近いか否かの判定を行う。求めた赤領域の幅、高さから、理想円周は以下のようにして近似的に求めることができる。
【0083】


【0084】
上式は、抽出した赤領域を正方形であると過程し、該正方形に内接する円の円周を算出することを意味している。
【0085】


【0086】
上記理想円周と周辺長とを以下の式によって比較し、以下の式を満たさない場合、赤目候補とは判定せず、次の赤領域に対する境界線追跡処理を行う。
【0087】


【0088】
なお、上式において、Th_BF_CircleRatioは0.6〜0.7程度の値が望ましい。
【0089】
上記判定を満たす場合、処理はS1204に移り、同ステップにおいて、方向ヒストグラムの偏りに関する判定を行う。既に説明したように、境界線追跡の過程では次の画素への追跡方向について、図11に示すような方向のヒストグラムを得ることができる。もし、境界線追跡を行う対象領域が円に近い場合、追跡処理の結果から得られた8方向の方向ヒストグラムは均等な分布となるが、領域が細長い場合などは方向ヒストグラムに偏りが生じる。例えば、対象領域が右上から右下に細長くなっているような形状だった場合、図9の方向のうち、2、6近辺に度数が集中し、4,8近辺は度数が少なくなる。このことから、以下の条件全てを満たす場合には赤目候補領域と判定するが、いずれか一つでも条件を満たさない場合には、注目している赤領域は赤目候補ではないとして、次のステップへ処理は移る。
【0090】
・方向1,2,5,6の度数の和<度数の総和×Th_BF_DirectRatio
・方向2,3,6,7の度数の和<度数の総和×Th_BF_DirectRatio
・方向3,4,7,8の度数の和<度数の総和×Th_BF_DirectRatio
・方向4,5,8,1の度数の和<度数の総和×Th_BF_DirectRatio
【0091】
上式は、ある方向について求めた度数の和が、ある一定割合よりも多い、すなわちある方向に集中しているならば、注目している赤領域は赤目ではないと判断して、次の赤領域に対する境界線追跡処理を行う。
【0092】
なお、上記において閾値Th_BF_DirectRatioは0.6〜0.7程度の値が望ましい。また、上記判定は度数の総和が少ない場合には精度が低下する恐れがあるため、度数の総和がある一定値以下となる場合、S1204の処理をスキップするようにしてもよい。
【0093】
これまで説明したS1201〜S1204のすべての判定、あるいは一部の判定を満たす赤領域については、赤目候補領域として、RAM103内に確保されている候補領域リストにその座標位置を格納し、さらに境界線追跡処理を継続する。
【0094】
以上が、赤丸領域抽出処理に関する説明である。
【0095】
(特徴量判定)
次に処理は図2の特徴量判定部204に移り、同部において前記赤丸領域抽出処理によって抽出された赤目候補領域に対して、人物の赤目と特定できるような様々な特徴量を算出し、それをあらかじめ定められた閾値と比較して、赤目であるか否かを判定する。
【0096】
本実施例では、前段までの処理によって赤目候補リストに記載されている各領域に対して、以下の5つの特徴量群について、以下の順番で判定処理を行う。
特徴量群0:赤丸領域と周辺領域で赤色評価量平均値の比較を行う。
特徴量群1:赤丸領域内部のみで、輝度、赤色評価量、色相等に関する判定を行う。
特徴量群2:周辺領域において、輝度に関する判定を行う。
特徴量群3:周辺領域において、彩度、色相に関する判定を行う。
特徴量群4:周辺領域において、エッジの強度に関する判定を行う。
【0097】
特徴量群0では、赤目候補領域とその周辺領域で赤色評価量の平均値の比較を行う。理想的な赤目領域近辺においては、赤色成分はその周辺に比べて、瞳孔の部分のみが突出しているという特徴があり、その他様々な特徴量と比較しても、最も顕著に特徴が表れることが実験により判明している。従って、特徴量判定部では特徴量群0の判定処理を最初に行うことが効率的である。
【0098】
また、特徴量群1は、赤目候補領域内のみの画素を参照して特徴量判定を行うため、他の特徴量群に対して比較的演算量は少ないといえる。
【0099】
また、特徴量群2と特徴量群3ついては、設定した周辺領域に存在する画素に対して、RGB成分を輝度・色差成分に変換したり、RGB成分を明度・彩度・色相に変換する処理が行われるため、特徴量群1に比べて演算量は多くなる。また、特徴量群4においては、エッジの強度を求めるために、Sobelなどの公知のエッジ検出フィルタを用いるため、他の特徴量群と比較して最も演算量は多い。
【0100】
従って、本実施例における特徴量判定部では、上述したように演算量の少ないもの、あるいは赤目の特徴を掴みやすいものから順に判定処理を行い、判定を満たさない赤目候補領域については以降の特徴量群の判定処理をスキップすることにより、特徴量判定部全体の処理量を最も抑制することが可能となる。
【0101】
以下では、まず周辺領域の定義について説明し、続いて各群の説明を行う。
【0102】
(周辺領域の定義)
図13は、赤目の特徴量を算出する際に使用される周辺領域の定義である。同図において、中央ブロック1301が前段処理である赤丸抽出処理部において抽出された赤目候補領域であり、本実施例における周辺領域は、該赤目候補領域を中心とし、その周辺に赤目候補領域のサイズを2,3,5倍に拡大して設定した領域のことである。それぞれの周辺領域について、図13(a)〜(c)に示している。また、以降で言及する周辺領域全体とは、設定した周辺領域内部で中央の赤目候補領域を除いた部分を意味している。また、周辺領域のブロックとは、同図に示すように、周辺領域内を点線で区切った各ブロックを意味している。前記特徴量群のうち、特徴量群1以外は、この周辺領域に対して特徴量判定を行うことになる。本実施例のような周辺領域の設定では、最大でも赤目候補領域のサイズの5倍の領域しか参照しないため、高速な判定処理が可能である。
【0103】
また、図14を用いて、検出した赤目候補領域が画像の端部近辺に存在する場合の周辺領域について説明する。
【0104】
同図(a)は、赤目候補領域が画像の右端部付近に、ややマージンを残して存在する場合を示している。この場合、周辺領域の各ブロック内に1画素でも画素が存在するならば、その画素を用いて特徴量判定を行う。一方、同図(b)は、赤目候補領域がマージンなしで画像右端部に接している例を示している。この場合、周辺ブロックのうち、右上(TR)、右(R)、右下(BR)の3ブロックは画素が存在しないため、同ブロックの特徴量を算出することができない。このようになった赤目候補領域については、本実施例では赤目と判定しないこととし、候補領域リストから除外する。
【0105】
以上が周辺領域の定義に関する説明である。次からは、各特徴量群毎に特徴量判定処理の説明を行う。
【0106】
(特徴量群0)
特徴量群0では、まず、赤目候補領域に対して周辺領域(例えば図13(b)の3倍領域)を設定し、中央を含む各ブロック位置それぞれについて、式3で示した赤色評価量の平均値を算出する。算出した値は、配列AEvR[8]に格納される。ここでAEvRは0〜8の9つの要素を保持する配列であり、0が図13(b)のTLブロック、1がTブロック、2がTR、というように、左上ブロックから右下ブロックの順に割り当てられている。
【0107】
特徴量群0では、v=0〜8(ただし中央ブロックであるv=4は除外)について、以下の式を満たすか否かの判定を行う。
AEvR[4]×Th_FJ0_EvR>AEvR[v] 式11
【0108】
上式は、中央ブロックの赤色評価量の平均値にある閾値を乗じたものが、他の8個の周辺ブロックの赤色評価量平均値よりも大きい場合、赤目であると判定することを意味している。なお、上式においてTh_FJ0_EvRは閾値であり、0.6〜0.8程度の値が望ましい。
【0109】
上記判定を満たさない場合、現在注目している赤目候補領域は赤目ではないとして、以降の特徴量群の処理を行わず、次の候補領域の判定処理に移る。
【0110】
ところで、本実施例の特徴量判定部において、まず上記赤色評価量の比較を行う理由は、以降で説明する特徴量の中で、最も顕著に赤目の特徴を掴むことができる特徴量であるためである。様々な実験の結果、式11による判定が、赤目ではない領域を赤目候補リストから除外することに対して、最も効果的であることが判明している。従って、できるだけ特徴を掴みやすい特徴量から順番に判定してゆくことで、特徴量判定部全体の演算量を最小限に抑えることができる。
【0111】
また、各ブロックの平均値を算出する際に、中央ブロックについては、図15に示すような菱形領域1501内の画素についてのみ、平均値を算出するようにしてもよい。一般的な赤目形状は円もしくは楕円であるため、中央ブロックの4隅には赤色度合いの小さい画素が存在する。このため、中央ブロックの赤色評価量平均値を低下させないために、中央ブロックは4隅を除く画素を対象として赤色評価量を算出すべきである。従って、本実施例においては、図15のような菱形領域の内部についてのみ特徴量を算出する。なお、算出領域は菱形領域以外に、中央ブロックに内接する円や楕円領域内としても、同様の効果を得ることができる。
【0112】
(特徴量群1)
次に、処理は特徴量群1の判定処理に移る。特徴量群1では、赤目候補領域、すなわち図13で示した中央矩形ブロック内のみの画像データを参照して、赤目であるか否かの判定処理を行う。特徴量群1には、例えば以下のような判定処理が含まれている。
【0113】
まず、赤目候補領域において、色相が±30度以内となる画素の赤色評価量の平均値はTh_FJ1_EMin以上、Th_FJ1_EMax以下であるか否かの判定を行う。本判定を満たさない場合、赤目候補リストから除外する。なお、色相については、公知の手法により求めることが可能である。
【0114】
次に、赤目候補領域において、±30度以内となる画素の赤色評価量の最大・最小値を求め、(最小値÷最大値)を算出する。赤目候補領域では赤色評価量は大きく変化しているため、前記(最小値÷最大値)はある程度小さい値となる。従って、以下のような判定処理を行い、以下の判定を満たさない場合、赤目候補リストから除外する。
(赤色評価量の最小値÷赤色評価量の最大値)<Th_FJ1_EMaxMinRatio 式12
【0115】
上式において、Th_FJ1_EMaxMinRatioは0.3〜0.5程度の値が望ましい。
【0116】
次に、赤目候補領域内において、R成分の標準偏差を測定する。赤目領域内には鮮やかな赤領域と、瞳孔境界付近の暗い領域とが含まれるため、R成分のダイナミックレンジは非常に大きいものになっている。従って、R成分の偏差を測定すれば、その値はある程度大きい値となっている。従って、赤目候補領域内において、既知の方法によりR成分の標準偏差を測定し、閾値Th_FJ1_RDivより大きいか否か判定する。
(R成分の標準偏差)>Th_FJ1_RDiv 式13
【0117】
上式を満たさない場合、注目している領域は、赤目候補リストから除外される。なお、上式ではR成分の標準偏差について言及したが、当然R成分の分散を用いたとしても、同様の判定処理を行うことが可能である。
【0118】
また、R成分の変化の度合いを判定する別の方法として、赤目候補領域内において、近隣画素間のR成分の差分和の平均値を算出し、同値が閾値Th_FJ1_RDiffより大きいか否かの判定を行うことも考えられる(式14)。
(R成分の近隣差分和の平均値)>Th_FJ1_RDiff 式14
【0119】
上式において、近隣差分和の算出方法については様々な方法が考えられる。例えば、注目画素と、隣接する8つの画素との平均差分和を算出してもよいし、単純に左隣との差分和の平均値を求めても良い。
【0120】
また、上記のような判定はR成分だけでなく、他のG、B成分、あるいは輝度や赤色評価量に対しても同様に実施することができる。
【0121】
以上が、特徴量群1の説明である。上記全て、あるいは一部の特徴量判定処理を満たす赤目候補領域のみに対して、次の特徴量群2の判定処理を行う。
【0122】
(特徴量群2)
次に、処理は特徴量群2の判定処理に移る。特徴量群2では、赤目候補領域に対して周辺領域を設定し、該周辺領域内の輝度成分に関する判定処理を行う。特徴量群2には、例えば以下のような判定処理が含まれている。
【0123】
まず、赤目候補領域に対して周辺領域(例えば、図13(c)の5倍領域)を設定する。次に、中央ブロックを除く周辺8ブロック全体の平均輝度値を算出し、該平均輝度値が、Th_FJ2_YMin以上、Th_FJ2_YMax以下であるか否かの判定を行う。前記判定を満たさない、つまり赤目候補領域の周辺が極端に明るい、あるいは暗い場合には、注目領域を赤目候補リストから除外する。
【0124】
また、上記のような輝度に関する判定は、周辺8ブロック全体で行ってもよいし、各周辺ブロック毎に平均輝度値を求め、それぞれのブロック毎にあらかじめ設定した閾値と比較してもよい。
【0125】
次に、赤目候補領域に対して2倍の周辺領域を設定し、中央ブロックを除く8つの周辺ブロック毎に平均輝度値を算出する。さらに8つの平均輝度値から最大値と最小値を算出する。赤目領域に対して2倍の周辺領域を設定した場合、周辺の明るさは大きく変化している可能性があるため、以下のような判定を行う。
(2倍周辺領域のブロック内平均輝度の最大値−最小値)>Th_FJ2_MaxMinDiff2 式15
【0126】
上記判定を満たさない場合、赤目ではないとして、注目領域を赤目候補リストから除外する。
【0127】
また一方で、赤目領域に対して周辺5倍領域を設定し、上述したように各ブロック毎に平均輝度値を算出し、該平均輝度値の最大・最小値を求める。赤目領域に対して比較的広い5倍領域を設定した場合、赤目の周辺領域の多くは肌領域であり、そこでは輝度値が大きく変化するとは考えられない。従って、2倍の周辺領域を設定した場合とは異なり、以下のような判定を行う。
(5倍周辺領域のブロック内平均輝度の最大値−最小値)<Th_FJ2_MaxMinDiff5 式16
【0128】
上記判定を満たさない場合、赤目ではないとして、注目領域を赤目候補リストから除外する。
【0129】
以上が、特徴量群2の説明である。上記全て、あるいは一部の特徴量判定処理を満たす赤目候補領域のみに対して、次の特徴量群3の判定処理を行う。
【0130】
(特徴量群3)
次に、処理は特徴量群3の判定処理に移る。特徴量群3では、赤目候補領域に対して周辺領域を設定し、該周辺領域内の彩度および色相に関する判定処理を行う。特徴量群3には、例えば以下のような判定処理が含まれている。
【0131】
まず、赤目候補領域に対して周辺領域を設定し(例えば、図13(c)の5倍領域)、中央を除く周辺8ブロック内において、色相が±Th_FJ3_HRange以内となる画素数の割合を算出する。赤目周辺領域は人肌領域であるため、大部分の画素は色相が上記範囲内に含まれるはずである。従って、該割合がTh_FJ3_HRatio以上であれば赤目候補とするが、否である場合、赤目候補リストから除外する。
【0132】
次に、赤目候補領域に対して周辺領域を設定し(例えば、図13(c)の5倍領域)、周辺8ブロック全体の平均彩度を算出する。該平均彩度が、Th_FJ3_SMin以上、Th_FJ3_SMax以下であるなら、赤目候補とするが、否である場合、赤目候補リストから除外する。
【0133】
また、上記のような彩度の判定については、各ブロック単位に行うことも考えられる。つまり、各周辺ブロック毎に平均彩度を算出し、あらかじめ設定された閾値と比較すればよい。
【0134】
さらに、赤目周辺にはいわゆる白目領域が存在するため、赤目候補領域に対して設定した周辺領域(例えば、図13(b)の3倍領域)において、彩度÷明度がTh_FJ3_WhitePix以下となる、すなわち彩度が小さく明度が高い画素が存在するならば、赤目候補と判定する。もし上記判定が否である場合には、赤目候補リストから除外する。
【0135】
以上が、特徴量群3の説明である。上記全て、あるいは一部の特徴量判定処理を満たす赤目候補領域のみに対して、次の特徴量群4の判定処理を行う。
【0136】
(特徴量群4)
次に、処理は特徴量群4の判定処理に移る。特徴量群4では、赤目候補領域に対して周辺領域を設定し、該周辺領域内のエッジに関する判定処理を行う。人間の目近辺には非常に強いエッジが存在するため、有効な特徴量になりうる。また、以下の実施例ではエッジの検出を公知のSobelフィルタを用いる場合について説明しているが、本発明はこれに限定されるものではなく、他のエッジ検出フィルタを用いたとしても、同様の判定処理を行うことが可能である。なお、Sobelフィルタについては公知であるため、ここでの詳細な説明は省略する。特徴量群4には、例えば以下のような判定処理が含まれている。
【0137】
まず、赤目候補領域に対して周辺領域(例えば、図13(a)の2倍領域)を設定し、同領域内の各画素に対してSobelフィルタを施す。その結果、各画素毎に得られたSobel出力値の平均値を算出する。人間の目近辺には強いエッジが存在する場合が多いため、該平均値を閾値Th_FJ4_SobelPowよりも大きいか否かの判定を行い、上記判定を満たす場合、赤目候補と判定する。
【0138】
また、赤目候補領域に対して周辺領域(例えば、図13(b)の3倍領域)を設定し、同領域内の各画素に対してSobelフィルタを施す。その結果、各画素毎に得られたSobel出力値の(最大値−最小値)を算出する。人間の目近辺には強いエッジが存在する一方で、人肌の平坦な部分も存在することから、前記(最大値−最小値)は比較的大きな値となるはずである。従って、前記(最大値−最小値)がTh_FJ4_MaxMinDiffより大きい場合、赤目候補と判定してもよい。
【0139】
さらに、赤目候補領域に対して周辺領域(例えば、図13(b)の3倍領域)を設定し、同領域の各画素に対してSobelフィルタを施す。その結果得られた各画素のSobel出力値をエッジ画像として配列Sobel[y][x]に格納する。次に、該エッジ画像の重心位置を算出する。重心位置は、以下のように求めることができる。
【0140】


【0141】
もし、現在注目している領域が人物の目であるならば、上記重心位置は、エッジ画像の中央付近に存在するはずである。従って、上記重心位置が、例えば赤目候補である矩形領域内に含まれているか否かを判定し、含まれていれば赤目候補と判定する。含まれていない場合、注目領域を赤目候補リストから除外するようにする。
【0142】
また、赤目候補領域に対して5倍の周辺領域(図13(c))を設定し、同領域の各画素に対してSobelフィルタを施す。その結果得られた各画素のSobel出力値をエッジ画像として配列Sobel[y][x]に格納する。つまり、配列Sobel[y][x]は5倍周辺領域の画素数と同じサイズの配列となる。
【0143】
次に、中央ブロックを含む周辺領域全体に対して、図16に示すような2つの領域、すなわち中央領域1601と外部領域1602を定義し、それぞれの領域に対して、該配列Sobel[y][x]に格納したSobel出力値の平均値を算出する。なお、同図において、中央領域のサイズは、赤目候補領域の2.5倍のサイズとしているが、本発明はこれに限定されるものではない。中央と外部それぞれのSobel出力値の平均をSpowin、SPowoutとすると、人間の目の近辺においては、外部領域よりも中央領域の方が強いエッジが存在することから、以下の判定を行う。
【0144】


【0145】
上式において、Th_FJ4_InOutRatioは閾値であり、1.5〜2.0程度の値が望ましい。上式を満たす場合には、着目している領域を赤目であると判定する。一方で、上式を満たさない場合には、着目している領域は赤目ではないと判定し、赤目候補リストから除外する。
【0146】
また、上記の応用として、Spowin、SPowoutをそれぞれ単独で別の閾値と比較するような判定も考えられる。
【0147】
以上が、特徴量群4ならびに、特徴量判定部204の説明である。上記全ての特徴群、あるいは一部の特徴量判定処理を満たす赤目候補領域を赤目領域と確定し、候補領域リストを補正部に入力する。
【0148】
(補正処理)
以下では、本実施例における補正処理について説明する。図2の補正処理部205には、RGB成分で構成された入力画像データと、前段までの処理で得られた赤目候補領域が記載された候補領域リストが入力されることになる。以下では、図17に示すフローチャートに従って、補正処理について説明を行う。
【0149】
図17は補正処理部205において、候補領域リストに記載された複数の赤目領域のうちの一つに対する補正処理のフローチャートである。補正処理部205では、入力された候補領域リストに記載されている領域に対して、一つずつ図17に示される補正処理を行う。
【0150】
同図ではまず、S1701において、注目している赤目候補領域に対して補正範囲を決定する。図18は、本実施例における補正範囲の設定の様子を示した図である。同図において、中央の矩形領域が赤目候補リストに記載されている領域である。
【0151】


【0152】


【0153】
次に図17のS1702において、上記楕円領域内で、補正処理を行うために必要なパラメータを算出する。算出するパラメータは、具体的には、楕円領域内部での最大輝度値Ymax、および式3で示される赤色評価量の最大値Emaxを求める。
【0154】
次のS1703〜S1709は、上記楕円内に位置する全ての画素に対して施される処理である。S1703ではまず、注目画素が補正対象領域である上記楕円内に存在するか否かの判定を行う。注目画素が楕円領域内に存在するか否かについては、公知の以下の楕円を算出する公式により判定することができる。
【0155】


【0156】
図18の矩形領域の中心を原点とする座標系において、(x,y)に位置する注目画素が上式を満たす場合、注目画素は楕円領域内部に存在すると判断される。またその際に、左辺の平方根は、楕円領域の中心から楕円境界までの距離に対する中心から注目画素までの距離の割合に相当する。
【0157】
次に、S1704において、楕円領域内に位置する画素に対してRGB成分値を輝度・色差成分であるYCC値に変換する。変換方法については既知の様々な方法が存在するが、本実施例においてはどれを用いても構わない。
【0158】
次に、S1705において、注目画素に対する各評価量を算出する。ここでの評価量は、後のS1706において補正量を決定するために必要なパラメータであり、具体的には以下の3つの値である。
【0159】


【0160】
次に、S1706において、上記求めたパラメータを用いて、注目画素の輝度および色差成分それぞれの補正量V、Vを、以下のように算出する。
【0161】


【0162】
ここでV、Vは共に0.0〜1.0の範囲となる値であり、1.0に近いほど、補正量が大きいことを意味している。式21で表される輝度の補正量は、上記3つのパラメータ全てを用いて補正量を決定することを意味している。具体的には、注目画素位置が、楕円領域の中心から離れるほど補正量は小さくなる。また、注目画素の赤色評価量が、前記最大値Emaxに比べて小さい場合、補正量は小さくなる。また、注目画素の輝度値が、前記最大値Ymaxに近い場合、補正量は小さくなる。輝度値が高い画素について補正量を小さくすることについては、目の中のハイライト(キャッチライト)部分を保存できるという効果がある。
【0163】
一方、式22で示される色差の補正量は、式21から輝度に関する評価量を除去したものとなっている。
【0164】
また両式において、TY1、TY2、TY3、TC1、TC2もパラメータであり、設定値によって、それぞれの評価量(式21、式22の中括弧の中身)を図19に示すように、1次、2次、3次といった曲線で適用することも可能である。
【0165】
上記補正量を用いて、S1707において、実際に補正後の新しいYCC値を算出する。算出は以下のようにして行う。
【0166】


【0167】
上式において、Yold、Cold、はSXXXで得た補正前の輝度・色差成分値、Ynew、Cnewは本ステップで新たに得られた補正後の輝度・色差成分値である。また、W、Wは0.0〜1.0の範囲で任意に設定できる重みである。もし補正強度を指定したい場合には、これらのパラメータを調節すればよい。例えば、補正強度を弱、中、強と3種類設定したい場合、W、Wを共に、0.3、0.7、1.0と設定することで、同一の処理フローで、様々な補正結果を得ることが可能である。
【0168】
新しい輝度・色差成分値が決定したなら、S1708においてRGB成分への逆変換が行われ、補正後の画素値として入力画像メモリバッファに上書きするか、あるいは出力用画像が格納されたメモリバッファの所望のアドレスに格納される。
【0169】
S1709において、処理した画素が楕円領域内の最後の画素であった場合、現在着目している赤目候補領域に対する補正処理が終了する。
【0170】
以上が本実施例における補正処理の説明である。なお、本実施例では、補正部に入力される画像はRGB成分で構成され、該入力画像を輝度・色差成分に変換して補正した後に、再びRGB成分に戻す方法について言及したが、本発明はこれに限定されるものではない。例えば、RGBを明度、彩度に変換し、同様の方法を用いて明度と彩度を補正した後、再びRGB成分に戻したとしても、ほぼ同様の出力結果を得られることは容易に理解できる。
【0171】
さらに、補正量を決めるためのパラメータとして、注目画素の赤色評価量と楕円領域内の最大赤色評価量との割合を用いたが、同パラメータを単純に彩度に置き換えることも可能である。つまり、注目画素の彩度と楕円領域内の最大彩度との割合を用いて補正量を決定することも容易に実現できる。
【0172】
以上が第1の実施例の説明である。
【0173】
(第2の実施例)
第1の実施例において、上述した適応的2値化処理は、注目画素の左方に所定サイズのウィンドウを設定し、同ウィンドウで赤色評価量の平均値を算出し、同平均値を閾値として注目画素が赤目を構成する画素であるか否かの判定を行った。このような方法は、閾値を算出するために参照しなければならない画素の数が少ないため処理の高速化が図れるが、ウィンドウを注目画素の左方向にしか設定しないため、2値化結果は処理方向に依存することになる。その結果として、図6(a)に示すような画像に対して適応的2値化処理を行った場合、図20(a)に示すように、赤目の瞳孔部分の他に、2001で示したアイラインが赤目対象画素として抽出される場合がある。この理由を以下に説明する。
【0174】
例えば、図20(a)中の画素A(2002)が、現在の2値化対象画素とする。第1の実施例では、画素Aを2値化するための赤色評価量の閾値は、画素Aの左方に設定したウィンドウにおける赤色評価量の平均値と比較して、画素Aの赤色評価量が突出しているか否かの判定を行う。ここで上記ウィンドウは目の左方であるため、通常肌色部分に設定されることになる。欧米人のような色素の薄い人種では、肌色部分の画素値は、例えば(R,G,B)=(151,135,110)となっている。式3に従って赤色評価量を算出すると、E=11%となり、比較的小さい値として算出される。一方で、目のアイラインを構成する画素Aは、例えば、(R,G,B)=(77,50,29)のような多少輝度の低い画素となっており、同様に赤色評価量を算出すると、E=35%となる。両者を比較すると、明らかにウィンドウ内に存在する肌色部分の赤色評価量よりも、アイライン部分の画素Aの赤色評価量が突出して大きいため、実施例1の適応的2値化処理では、画素Aは赤目候補画素として抽出されることになる。
【0175】
その結果、赤目候補領域は、図20(a)に示されるような、(xmin,ymin)および(xmax,ymax)で囲まれる領域であると判断されてしまい、特徴量判定部においては、本来の赤目の瞳孔部分よりも広い領域を対象として、様々な特徴量判定が行われることとなり、その判定結果の信頼性は低下する。
【0176】
一方、もし、注目画素Aに対して同じ大きさのウィンドウを右方向に設定した場合には、ウィンドウ内部には肌色画素の他に、アイラインを構成する画素であったり、場合によっては赤目の瞳孔部分も多く含まれるため、右方に設定したウィンドウ内における平均赤色評価量は増加することになる。その結果、注目画素Aは、右方ウィンドウ領域に比べて突出した赤色評価量を持つわけではないため、赤目を構成する画素の候補と判定されにくくなる。
【0177】
従って、本実施例においては、実施例1の適応的2値化部を改良して、2値化処理を左右双方向で行う処理について説明する。
【0178】
本実施例の適応的2値化処理においては、図21に示すように、まず注目画素に対して左方にウィンドウを設定し、第1の実施例で説明したのと同様の方法により、注目画素の2値化処理を行う。同図(a)に示すように、注目画素を左から右方向に移動させながら、2値化結果をRAM上に確保された2値化画像用バッファに格納してゆく。
【0179】
入力画像データのある水平ラインに対して、上記左から右への2値化処理が終了すると、次に、同じ水平ラインに対して今度は注目画素を右から左に移動させながら、2値化処理を行う。この際に、2値化閾値を算出するウィンドウは、注目画素の右方に設定するものとする。
【0180】
上記双方向の2値化処理結果が共にオンドットとなる画素のみを、赤目候補画素として、前記2値化結果を格納するワークバッファに記録する。
【0181】
上述したように、適応的2値化処理を双方向で行った結果得られた赤目候補画素の例を図20(b)に示す。片方向の場合に比べて、2001の部分が除去され、赤目の瞳孔領域のみが適切に抽出されていることがわかる。
【0182】
図2に示した適応的2値化部以降の処理は、第1の実施例と同様である。
【0183】
以上が、第2の実施例の説明である。
【0184】
(第3の実施例)
以上で説明した実施例では、式3の赤色評価量に着目した適応的2値化処理を行うことにより、赤目候補画素を抽出する方法について説明したが、このような方法を適用すると、稀に図22に示すような赤い瞳孔部分2201とは別に、人間の目尻、目頭部分2202を赤目候補領域として検出してしまうことがある。人間の目尻、目頭部分を拡大してみると、例えば、(R,G,B)=(81,41,31)というような「赤黒い」画素が多く存在することがわかる。前記画素の赤色評価量はE=49%であり、比較的大きな値となる。そのため、適応的2値化部において、ある程度の画素の集合体として検出される可能性が高い。このような領域はエッジや周辺領域の明度、色相、彩度などが目の特徴を兼ね備えているため、第1の実施例で説明した特徴量判定部において全ての判定を満足し、最終的に赤目領域であると誤判定される可能性が高い。
【0185】
従って本実施例では、上記問題を解決するための具体的な手段について説明する。
【0186】
図23は、本実施例における処理のブロック図である。第1の実施例で示したものと比較して、候補領域評価部2305が付加されている。本実施例における候補領域評価部では、前段である特徴量判定部までの処理において生成された赤目候補リストを参照し、候補領域それぞれについて、相対的な位置と面積を評価して、赤目候補の整理を行う。すなわち、評価した結果、適当ではないと判断される候補領域については、候補リストから除外するように動作する。
【0187】
図25は、上記候補領域評価部の処理フローを示している。今、特徴量判定処理の結果、K個(0〜K−1番目)の領域が赤目として抽出されたものとする。S2501ではまず、k番目赤目領域に対して、その中心位置とサイズを算出する。なお、本実施例では、サイズは矩形で抽出された赤目候補領域の短辺としている。
【0188】
次に、k番目の赤目領域の面積を、赤目領域リストに格納されている他のi番目の候補領域の面積と比較し(S2502〜S2503)、自身よりも大きい面積の候補領域が存在した場合、S2504において図24に示すような候補領域同士の中心間距離を算出する。さらに、S2505において、上記中心間距離を用いて大きさの評価・判定を行うための閾値Th_Sizeを算出する。
【0189】
閾値Th_Sizeは、図26に示す関係により求めることができる。同図において、横軸は求めた中心間距離、縦軸は閾値Th_Sizeを示している。また、S_a,S_b,L_a,L_bはパラメータであり、例えば、L_a=3.0、L_b=5.0、S_a=1.0、S_b=2.0というような値が設定される。
【0190】
上記パラメータの場合、求めた中心間距離がk番目のサイズの3倍以下であればTh_Size=1.0となる。また、中心間距離がk番目のサイズの3〜5倍であれば、図示した直線によりTh_Sizeの値が決定される。また、中心間距離が5倍を超えるものについては、判定処理は行わない。
【0191】
判定処理はS2506に進み、同ステップにおいて、i番目の面積がk番目の面積×Th_Size以上であるか否かの判定を行う。同判定を満たす場合、すなわち、k番目の近隣に自身よりも大きい候補領域が存在した場合には、k番目候補領域は赤目ではないと判定し、候補リストの最後尾と入れ替え総検出数を1デクリメントする(S2507〜S2508)。
【0192】
このような判定処理を、候補リストに登録されている領域全てに対して行うことで(S2509〜S2512)、不要な候補領域を除去することが可能である。
【0193】
以上が、本実施例における近隣に存在する候補領域対策のための判定フローの説明である。
【0194】
(第4の実施例)
ところで、第1の実施例で述べた適応的2値化を用いると、赤目の中に存在するハイライトのために、赤目領域が分断されてしまう場合がある。このことについて、図を用いて説明する。
【0195】
図27(a)は、赤目部分の拡大図を示しており、2701は虹彩領域、2702は赤い瞳孔領域であり、2703は、カメラのフラッシュによって発生したハイライト(白)領域を示している。よく知られているように、人間の赤目現象はカメラのフラッシュによって引き起こされる現象であるため、撮影後の画像データの瞳孔領域2702内には、高い確率でフラッシュが反射して出来たハイライト領域が存在する。これはキャッチライトとも呼ばれている。通常、ハイライト領域は瞳孔内の微小な点として存在するため、本発明における赤目検出処理には影響しないが、撮影条件によっては、ハイライト領域が瞳孔領域の大部分を占めるほど大きくなったり、図27(a)に示すように、細長い領域になったりする。このような赤目領域に対して、第1の実施例で説明した適応的2値化処理を適用すると、ハイライト領域では赤色評価量は非常に小さい値となるため、赤目画素として認識されず、2値化画像は図27(b)に示すように、瞳孔領域が2つ領域2704、2705に分断されてしまう場合がある。このような2つの領域に対してそれぞれ第1の実施例で説明したの特徴量判定処理を行うと、正しく赤目領域であると判定される確率は低下してしまう。
【0196】
従って、本実施例においては、上記問題点を解決するために、第1の実施例で説明した赤丸領域抽出部203の次に、近隣に存在する候補領域を結合する処理を追加する。
【0197】
図28は、本実施例における処理の概要を示すブロック図である。第3の実施例で説明したブロック図と異なるのは、赤丸領域抽出部2803の次に候補領域結合部2804が追加された点である。
【0198】
図29は、候補領域結合部2804の処理のフローチャートを示している。本実施例における領域結合処理では、赤丸領域抽出部で検出された赤丸領域の左上、右下座標が格納されている候補領域リストを参照し、近隣に存在する候補領域について結合すべきか否か判断する。
【0199】
図30は候補領域リストの一例を示している。図中には4つの候補領域の座標位置しか格納されていないが、実際には、特徴量判定を行う前の候補領域は数十から場合によっては数千個の座標がリストに格納されている。
【0200】
図29において、S2901〜S2902でパラメータの初期化を行い、次に、S2903において、リストのi番目とj番目に格納されている候補領域について、両者が結合候補となり得るか否かの判定を行う。
【0201】
具体的には、図31に示すように、幅W、高さH画素となるi番目の候補領域と、幅W、高さH画素となるj番目の候補領域とを包含するような矩形領域を考え、その幅Wijと高さHijを算出する。次に、以下の式により、両候補領域が近隣に存在し、かつ大きさも同程度であるか否かを判定する。
【0202】


【0203】
上式において、Th_Jは1.0を超えない閾値である。上式は、i番目の候補領域の面積とj番目の候補領域の面積との和と、両者を包含する矩形領域の面積との比を算出し、上記比がTh_Jより大きい場合、両候補領域は近隣に存在し、かつ大きさも同程度であると判断できることを意味している。もし、i、j番目の候補領域が図31(b)に示すような位置関係であった場合、明らかに上式で算出した比は小さくなるため、結合対象領域と判断すべきではないと言える。
【0204】
S2903の判定の結果、結合候補領域であると判定された場合、S2904において、結合後の領域が、結合と比較して正方形に近いか否かの判定を行う。具体的には、以下の式を用いて判定することが可能である。
【0205】


【0206】
上式において、max(a,b)は、a,bのうち最大の値を、min(a,b)は、a,bのうち最小の値を意味している。上式は、i、j番目の両候補を包含する矩形の縦横比(1.0以下)と、i番目およびj番目の縦横比のうちの大きい値と比較しても、左辺の方が大きい、すなわち、正方形に近いことを意味している。上式を満たすならば、結合後の矩形領域はより正方形に近づくことになり、その結果、赤目領域も円形に近づくことになる。
【0207】
S2904の判定を満たす場合、S2905において、リストのi番目の座標情報を、両者を包含する矩形領域の座標に更新する。また、j番目の位置情報は不要となるため、リストから削除する。
【0208】
このような処理をリストに登録された全ての補正領域に対して行うことにより、図27(b)に示したような分断された赤目領域についても、検出できる可能性が高くなる。
【0209】
以降の処理については、これまで説明した実施例と同様である。
【0210】
以上が、第4の実施例の説明である。
【0211】
(第5の実施例)
本実施例においては、以上の実施例で説明してきた処理を、CPUの処理能力や使用可能なメモリ(RAM)が制限された環境下において実施する方法について説明する。前記制限された環境下とは、具体的には、プリンタやデジタルカメラなどの本体内部に実装される場合を想定している。
【0212】
上記のような環境下では、使用可能なワークメモリは多くても数百KB〜数MB程度しか使用することができない。一方で、近年ではデジタルカメラの高解像度化が進み、1000万画素を超える撮像能力を備えるものも登場している。このような高精細な画像からの検出処理を、上記限られたワークメモリを用いて行うためには、入力画像をある解像度まで低下させることが有効である。例えば、入力解像度が800万画素の画像に対して、水平垂直方向に1画素間隔でサブサンプルすれば、1/4の解像度、すなわち200万画素の画像に縮小することが可能であり、この場合、画像を記憶するために必要なワークメモリの容量も1/4となる。
【0213】
しかし、上記のように例え200万画素に縮小したとしても、縮小後の画像全面を同時に保持するためには、入力画像がRGB24bitデータの場合、約6MBのワークメモリが必要となる。これは、大容量のメモリを備えるパーソナルコンピュータやワークステーションでは問題とならないが、上記限られた環境下においては、ワークメモリを削減するためにさらなる工夫が必要となる。
【0214】
そこで本実施例においては、入力画像を縮小し、該縮小画像をさらにバンドに分割し、各バンド単位で順次赤目領域を抽出する方法について説明する。また、上記バンド分割は、バンド境界に存在する赤目の検出も可能とするために、図32に示すようにオーバーラップ領域を有するようにする。同図において、3201は入力画像を縮小して得られた画像である。図中BandHeightは、1バンドを構成するライン数を示している。つまり、赤目の検出処理は、Width×BandHeight(単位:画素)の画像に対して行うことになる。また、本実施例におけるバンド分割は、同図OverlapAreaで示したライン数だけ、前のバンドと重複しているようにする。このようにすることで、図中3202で示したような、バンド境界に存在する赤目についても検出が可能となる。
【0215】
図33は本実施例における検出処理の流れを示しており、以降は同図に沿って説明を行う。
【0216】
本実施例における赤目の検出処理では、まずS3301において、パラメータNの初期化を行う。
【0217】
次に、S3302において、Nバンド目の縮小画像を生成する。本実施例における縮小画像の生成方法については、簡単のため単純間引きで縮小画像を生成する方法について説明する。例えば、800万画素相当の画像が、ハードウェア100内に装備されたフラッシュメモリやハードディスクなど、あるいは外部から挿入されたメモリカード内部に格納されているものとする。格納されているフォーマットは、例えばJPEG等である。S3302において、前記画像データにアクセスし、画像データがJPEG形式で保存されているならば、最初のMCU(最小符号化単位)ブロックのデコードを行う。このMCUブロックのサイズは、例えば16×8画素である。デコード結果はRAM103に保存され、そこから更に、1画素間隔でサブサンプルして8×4画素の画像データを生成し、検出用画像を格納するためのワークメモリに順次格納する。この処理を前記BandHeightライン数分のワークメモリが満たされるまで繰り返す。このような処理により、例えば800万画素の画像を200万画素相当に縮小したバンド画像を得ることができる。当然のことながら、縮小画像の方法については、前期単純間引きの方法以外にも、最近隣補間や線形縮小を用いた方法など、様々な方法が考えられ、本発明においてはそれらのうちどれを使用しても構わない。
【0218】
上記方法により、所定解像度に縮小したバンド画像がワークメモリに展開されたら、S3303において、Nバンド目の赤目検出処理を行う。S3303については、さらに詳細な処理フローを図34に記載している。
【0219】
図34のS3401において、まずワークメモリに格納されている縮小画像データに対して、上記実施例で説明した適応的2値化処理を行う。各画素毎の2値化結果はオンドットが1、オフドットが0として、入力画像が格納してある場所とは別のワークメモリに保存される。この際に、例えばNバンド目の最初のOverlapAreaライン数は重複領域であり、この領域の2値化処理は、既にN−1バンド目で実施済みである。従って、N=0以外であれば、Nバンド目の最初のOverlapAreaの2値化処理をスキップし、N−1バンド目の2値化結果を再利用するようにしてもよい。このようにすることで、処理の高速化を図ることができる。
【0220】
次に、S3402において、上記2値化結果に対して、上記実施例で説明した境界線追跡処理を施し、縮小バンド画像中から赤丸領域を抽出する。
【0221】
次に、上記赤丸領域に対してS3404の特徴量判定処理を行う前に、S3403において、前記複数の赤丸領域のうち、特徴量判定処理を行う領域を選択するための候補領域選択処理を行う。以下では、この候補領域選択処理について説明を行う。
【0222】
図36は、N−1、N、N+1バンド目において、OverlapArea内に4つの赤目候補領域が存在する場合を示している。例えば、候補Cについて注目すると、候補Cの赤丸領域はNバンド目とN+1バンド目双方に存在することになるが、両者について特徴量判定を行うと、オーバーラップ領域に存在する赤丸領域に対しては、常に2倍の処理量が必要となり、効率的ではない。そこで、候補Cの場合、どちらのバンドで判定を行うべきか考えると、N+1バンド目では候補Cに対して設定した周辺領域の上部が欠けているのに対し、Nバンド目では、周辺領域全てを参照することが可能である。
【0223】
このことから、候補Cについては、Nバンド目での判定結果の方が信頼性が高いと言える。更に一般化すれば、OverlapArea内に存在する赤丸領域の特徴量判定は、周辺領域をより広く参照できるバンドにおいて処理すべきである。従って、本実施例の候補領域選択処理S3403では、OverlapAreaに存在する赤丸領域について、図37に示すように、候補領域上端からN+1バンド目上端までの距離UPLenと、候補領域下端からNバンド目下端までの距離BTLenを算出し、UPLen<BTLenを満たすならば、その候補領域はNバンド目で特徴量判定処理を行うようにする。同様に、図36の候補DについてUPLen、BTLenを算出すると、その関係は、UPLen>BTLenとなるため、候補DはN+1バンド目で処理することになる。
【0224】
また、上記関係を候補A、候補Bについて適用すると、それぞれ、N−1バンド目、Nバンド目で特徴量判定を行うべきであると判断できる。
【0225】
以上説明したように、本実施例における候補領域選択処理S3403では、OverlapArea内に存在する赤目候補領域の上部、および下部のマージンを算出し、その関係に応じて、現在処理しているバンドで特徴量判定を行うか否かを判断することにより、OverlapArea内における無駄な特徴量判定処理を除去することができる。
【0226】
処理は図34のS3404に戻り、上記候補領域選択処理で選択された領域に対して、第1の実施例で説明したような特徴量判定処理を行う。その結果、赤目領域と判断できた領域については、S3406において候補領域リストに追加するが、その際に、S3405において算出した、後の補正処理を行う際に必要となるパラメータも同様にリストに追加する。前記パラメータとは、具体的には式21および式22で必要となる補正対象領域内での最大輝度値と最大赤色評価量である。
【0227】
図35は、本実施例における赤目候補リストの例を示している。同図では、全部で4つの赤目候補が検出できた場合を示しており、それぞれにインデックス値(0〜3)が割り振られている。また、それぞれの候補領域について、領域の左上、右下座標および、S3405において算出した赤目候補領域内における最大輝度値と最大赤色評価量値が格納されている。
【0228】
以上が、Nバンド目における検出処理の説明である。図33に示すように、この処理をバンドが終了するまで実行する(S3304)。
【0229】
以下では、本実施例における補正処理について説明する。図38は、本実施例における補正処理のフローチャートである。同図ではまず、S3801において、候補領域の更新処理を行う。本実施例では、赤目の検出・補正処理をデジタルカメラやプリンタ内部の組み込み処理として実行することを想定しているため、上述したように、検出処理は入力画像を縮小した状態で行った。しかし、これらの装置において、補正を行う対象の画像は、デジタルカメラであれば縮小前のオリジナル解像度の画像であり、プリンタであれば、縮小前の入力画像をさらに印字解像度に拡大した画像データとなる可能性がある。従って、縮小画像上で検出した位置情報を、補正対象画像と縮小画像の解像度の比率に応じて変倍する必要がある。S3801において、変倍処理は、赤目候補リストに格納されている候補位置が例えば図39に示すような


で表現されており、かつ、縮小画像の縦、横の画素数がそれぞれW,Hであり、補正対象画像の縦横サイズがW,Hであった場合、次のように算出することができる。
【0230】


【0231】
S3801において、補正画像上での候補領域の座標位置が決定すると、第1の実施例と同様に、候補領域周辺に楕円領域を設定し、同領域内に含まれる画素を補正対象画素として補正処理を行う。
【0232】
再び図38に戻り、S3802においてパラメータRの初期化を行う。
【0233】
次にS3803において、Rライン目の補正対象画像を取得する。本実施例においては、補正対象画像をライン単位で補正してゆく処理について説明するが、本発明はこれに限定されるものではなく、所定のラインで構成されるバンド画像単位に補正処理を行っても構わない。補正対象画像の取得は、例えば図1のHDDやメモリカードなどの2次記憶装置105に、JPEG等の圧縮形式で保存されている画像データを、所望のライン数だけ伸張し、そのうちの1ラインを得ることで実現できる。
【0234】
次に、S3804において、取得したRライン目が、補正対象画素を含んでいるか否かの判定を行う。本実施例においても、補正処理は、S3801で更新された矩形領域周辺に設定した楕円領域を対象領域として処理される。そのため、S3804では、取得したRライン目が楕円領域の上端から下端の間に位置するか否かを、赤目候補リストに格納されている全ての候補領域について判定する。例えば、図40のような場合、注目しているRライン目はある赤目候補領域周辺に設定した楕円領域に含まれるため、処理はS3805に進み、Rライン目でかつ楕円領域内に含まれる画素について、第1の実施例で説明したような補正処理が実行される。この補正処理の際に必要となる最大輝度値と最大赤色評価量は、S3405において求め、候補リストに格納されている値を使用することになる。
【0235】
以上のような処理(S3803〜S3805)をRが最終ラインとなるまで続けることにより、画像全体に対して補正処理を実行することができる。
【0236】
補正処理が実行された画像データは、2次記憶装置105に保存されたり、あるいは、色変換、疑似階調処理が施された後、プリンタエンジンにより印字物上に出力されることになる。
【0237】
以上が第5の実施例の説明である。
【0238】
(その他の実施例)
本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用しても良い。例えば、赤目の検出部は撮像装置に搭載されており、補正部のみが印刷装置に搭載されていても構わない。
【0239】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0240】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0241】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0242】
【図1】本発明を実行するためのハードウェア環境の説明図
【図2】第1の実施例における処理のブロック図
【図3】赤目画像の概念図
【図4】第1の実施例における2値化閾値を算出するためのウィンドウの設定方法を示す図
【図5】2値化処理の高速化方法の説明図
【図6】適応的2値化処理結果の説明図
【図7】境界線追跡法の説明図
【図8】境界線追跡法の説明図
【図9】追跡方向の説明図
【図10】候補領域の定義を説明するための図
【図11】方向ヒストグラムの例を示す図
【図12】境界線追跡処理後の判定処理のフロー
【図13】周辺領域の定義を示す図
【図14】候補領域が画像境界付近に存在した場合の周辺領域の説明図
【図15】中央ブロック内において赤色評価量を算出する領域を説明するための図
【図16】外部領域と中央領域の説明図
【図17】補正処理のフロー
【図18】補正対象領域の説明図
【図19】補正量の算出方法を説明するための図
【図20】第2の実施例における不具合の説明図
【図21】第2の実施例における適応的2値化方法の説明図
【図22】第3の実施例における不具合の説明図
【図23】第3の実施例における処理のブロック図
【図24】中心間距離の説明図
【図25】第3の実施例における処理のフロー
【図26】第3の実施例における中心間距離とサイズの関係図
【図27】第4の実施例における不具合の説明図
【図28】第4の実施例における処理のブロック図
【図29】第4の実施例における処理のフロー
【図30】第4の実施例における候補リストの例を示す図
【図31】結合判定の説明図
【図32】第5の実施例におけるバンド分割処理の説明図
【図33】第5の実施例における検出処理の概要のフロー
【図34】第5の実施例における検出処理のフロー
【図35】第5の実施例における候補リストの例を示す図
【図36】第5の実施例における高速化方法の説明図
【図37】第5の実施例における高速化方法の説明図
【図38】第5の実施例における補正処理のフロー
【図39】補正領域の座標の定義を示す図
【図40】第5の実施例における補正処理の説明図
【符号の説明】
【0243】
100 コンピュータ
101 CPU
102 ROM
103 RAM
104 表示装置
105 2次記憶装置
106 ポインティングデバイス
107 キーボード
108 外部インターフェース
109 システムバス
110 プリンタ
201、2301、2801 入力端子
202、2302、2802 赤領域抽出部
203、2303、2803 赤丸領域抽出部
204、2304、2805 特徴量判定部
205、2306、2807 補正部
206、2307、2808 出力端子
2305、2806 候補領域評価部
2804 候補領域結合部




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013