JP4983682B2 - オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置 - Google Patents

オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置 Download PDF

Info

Publication number
JP4983682B2
JP4983682B2 JP2008079362A JP2008079362A JP4983682B2 JP 4983682 B2 JP4983682 B2 JP 4983682B2 JP 2008079362 A JP2008079362 A JP 2008079362A JP 2008079362 A JP2008079362 A JP 2008079362A JP 4983682 B2 JP4983682 B2 JP 4983682B2
Authority
JP
Japan
Prior art keywords
determination
determined
detection
face
detection window
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.)
Expired - Fee Related
Application number
JP2008079362A
Other languages
English (en)
Other versions
JP2009237632A (ja
Inventor
孝紀 宇野
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2008079362A priority Critical patent/JP4983682B2/ja
Publication of JP2009237632A publication Critical patent/JP2009237632A/ja
Application granted granted Critical
Publication of JP4983682B2 publication Critical patent/JP4983682B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Color, Gradation (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

本発明は、オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置に関し、特に画像に含まれるオブジェクトを検出するオブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置に関する。
画像データに含まれる顔画像を検出し、その検出結果を利用して、印刷処理や補正処理や画像入力機器の動作制御が行われている。検出窓を画像データのあらゆる位置に移動させながら、検出窓において顔画像が存在するか否かを判定していくことにより、画像データにおける不特定の位置に存在する顔画像を検出することができる(特許文献1、参照。)かかる文献(図6、参照。)においては、画像データの隅から順に検出窓を移動させている。
特開2007−48108号公報
検出窓において顔画像が存在するか否かを判定するための処理負担は小さいものでないため、検出窓を画像データのあらゆる位置に移動させることにより、全体の検出処理の処理負担は大きくなるという問題があった。画像データのすべての位置(画素)について検出窓を設定すれば、検出漏れを防止することができるが、処理負担が著しく増大してしまう。逆に、画像データの一部の位置(画素)のみについて検出窓を設定すれば、処理負担を軽減することができるが、検出漏れが発生してしまう。
本発明は、前記課題にかんがみてなされたもので、効率よく、かつ、漏れのないオブジェクトを検出するオブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置の提供を目的とする。
上記課題を解決するために、本発明は、画像データが示す画像からオブジェクトを検出するにあたり、まず前記画像データに設定された検出窓の内側にオブジェクトが存在するか否かを判定する第1判定手段および第2判定手段を用意する。前記画像データにおける複数の位置に設定された前記検出窓について前記第1判定手段による判定を実行させる。そして、前記第1判定手段によってオブジェクトが存在すると判定された位置同士の間の複数の位置の前記検出窓については、前記第2判定手段による判定を実行させる。すなわち、前記第1判定手段によってオブジェクトが存在すると判定された位置同士の間の位置の前記検出窓においては、前記オブジェクトが存在する可能性が高いと考えることができるため、前記第2判定手段を実行させるようにする。反対に、前記第1判定手段によってオブジェクトが存在しないと判定された位置同士の間の位置の前記検出窓については、前記第2判定手段による判定を実行させないようにする。すなわち、前記第1判定手段によってオブジェクトが存在しないと判定された位置同士の間の位置の前記検出窓においては、前記オブジェクトが存在する可能性が低いと考えることができるため、前記第2判定手段を実行させないようにしても、検出漏れが生じる可能性は低い。
さらに、前記第1判定手段によってオブジェクトが存在すると判定された位置と前記第1判定手段によってオブジェクトが存在しないと判定された位置の間の位置においては、前記第1判定手段によってオブジェクトが存在しないと判定された位置よりも前記第1判定手段によってオブジェクトが存在すると判定された位置に近い位置を優先させて前記検出窓を設定し、当該設定した前記検出窓について前記第2判定手段による判定を実行させる。このように、すべての位置について前記第1判定手段と前記第2判定手段による判定を実行させるのではなく、予め前記第2判定手段の結果に応じて絞り込まれた位置について前記第2判定手段による判定を実行させるため、効率的なオブジェクト検出を実現させることができる。なお、前記オブジェクトは、特定の画像的特徴を有するものであればよく、例えば人物・動物の顔や顔器官等を検出することができる。
さらに、前記第1判定手段によってオブジェクトが存在しないと判定された位置よりも前記第1判定手段によってオブジェクトが存在すると判定された位置に近い位置を優先させる具体的手法の一例として、以下の手法を採用することができる。すなわち、前記第1判定手段によってオブジェクトが存在すると判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置に近づくように順に前記検出窓を移動させながら前記第2判定手段による判定を実行させる。これにより、オブジェクトが存在する可能性が高いと考えられる位置から順に前記検出窓を移動させることができる。さらに、このように前記検出窓を移動させる際に、前記第2判定手段によってオブジェクトが存在しないと最初に判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置との間の位置については前記第2判定手段による判定を実行させないようにする。すなわち、前記第2判定手段によってオブジェクトが存在しないと最初に判定された位置よりも、前記第1判定手段によってオブジェクトが存在しないと判定された位置に近い側においては、オブジェクトが存在する可能性が低いと考えられる。このような位置については、検出漏れが生じる可能性が低いため、前記第2判定手段の判定を行わないようにする。
なお、前記第1判定手段と前記第2判定手段の判定特性の好適な例として、前記第1判定手段よりも前記第2判定手段の方が前記検出窓に対するオブジェクトの位置についての判定精度が高く、かつ、前記第2判定手段よりも前記第1判定手段の方が前記検出窓に対するオブジェクトの位置の変動に対するロバスト性が高いものを適用するのが望ましい。このようにすることにより、まず前記第1判定手段によって、オブジェクトが存在しそうな位置を大まかに絞り込み、その後、オブジェクトが存在しそうな位置について厳密に前記第2判定手段による判定を実行させることができる。
さらに、前記第1判定手段と前記第2判定手段として好適なものの別の例として、前記第2判定手段よりも前記第1判定手段の方が同一の前記検出窓について判定を実行させた場合の処理負担が少ないものを適用してもよい。前記第2判定手段における処理負担は大きいものであるが、上述したように前記第2判定手段を実行させる前記検出窓の位置は絞り込まれているため、処理を効率的なものとすることができる。
以上においては、前記第2判定手段を実行させる前記検出窓の位置を絞り込む態様のものを説明したが、同様に前記第2判定手段を実行させる前記検出窓のサイズを絞り込むようにしてもよい。すなわち、前記画像データにおける複数のサイズに設定された前記検出窓について前記第1判定手段による判定を実行させる。そして、前記第1判定手段によってオブジェクトが存在すると判定されたサイズ同士の間の複数のサイズの前記検出窓については、前記第2判定手段による判定を実行させる。すなわち、前記第1判定手段によってオブジェクトが存在すると判定されたサイズ同士の間のサイズの前記検出窓においては、サイズがマッチする前記オブジェクトが存在する可能性が高いと考えることができるため、前記第2判定手段を実行させるようにする。反対に、前記第1判定手段によってオブジェクトが存在しないと判定されたサイズ同士の間のサイズの前記検出窓については、前記第2判定手段による判定を実行させないようにする。すなわち、前記第1判定手段によってオブジェクトが存在しないと判定されたサイズ同士の間のサイズの前記検出窓においては、サイズがマッチする前記オブジェクトが存在する可能性が低いと考えることができるため、前記第2判定手段を実行させないようにしても、検出漏れが生じる可能性は低い。
さらに、前記第1判定手段によってオブジェクトが存在すると判定された大きさと前記第1判定手段によってオブジェクトが存在しないと判定された大きさの間の大きさにおいては、前記第1判定手段によってオブジェクトが存在しないと判定された大きさよりも前記第1判定手段によってオブジェクトが存在すると判定された大きさに近い大きさを優先させて前記検出窓を設定し、当該設定した前記検出窓について前記第2判定手段による判定を実行させる。このように、すべての大きさについて前記第1判定手段と前記第2判定手段による判定を実行させるのではなく、予め前記第1判定手段の結果に応じて絞り込まれた大きさについて前記第2判定手段による判定を実行させるため、効率的なオブジェクト検出を実現させることができる。
さらに、本発明の技術的思想は、具体的なオブジェクト検出方法にて具現化されるのみならず、当該方法をオブジェクト検出装置において具現化することもできる。すなわち、上述したオブジェクト検出方法が行う各工程に対応する手段を有するオブジェクト検出装置としても本発明を特定することができる。むろん、上述したオブジェクト検出装置がプログラムを読み込んで上述した各手段を実現する場合には、当該各手段に対応する機能を実行させるプログラムや当該プログラムを記録した各種記録媒体においても本発明の技術的思想が具現化できることは言うまでもない。なお、本発明のオブジェクト検出装置は、単一の装置のみならず、複数の装置によって分散して存在可能であることはいうまでもない。また、プリンタ等の印刷装置やデジタルスチルカメラ等の画像入力装置において本発明のオブジェクト検出方法を実現するようにしてもよい。
以下、下記の順序に従って本発明の実施形態を説明する。
1.画像処理装置の構成:
2.画像処理:
2−1.第1顔検出処理:
2−2.絞り込み処理:
2−3.第2顔検出処理:
2−4.顔判定処理:
2−5.肌色補正処理および印刷処理:
3.変形例:
3−1.変形例1:
3−2.変形例2:
1.画像処理装置の構成
図1は、本発明の一実施形態にかかる画像処理装置を具体的に実現するコンピュータの構成を示している。同図において、コンピュータ10はCPU11とRAM12とROM13とハードディスクドライブ(HDD)14と汎用インターフェイス(GIF)15とビデオインターフェイス(VIF)16と入力インターフェイス(IIF)17とバス18とから構成されている。バス18は、コンピュータ10を構成する各要素11〜17の間でのデータ通信を実現するものであり、図示しないチップセット等によって通信が制御されている。HDD14には、オペレーティングシステム(OS)を含む各種プログラムを実行するためのプログラムデータ14aが記憶されており、当該プログラムデータ14aをRAM12に展開しながらCPU11が当該プログラムデータ14aに準じた演算を実行する。
また、HDD14には、デジタルスチルカメラやスキャナによって画像入力された画像データ14bが記憶されている。GIF15は、例えばUSB規格に準じたインターフェイスを提供するものであり、外部のプリンタ20をコンピュータ10に接続させている。VIF16はコンピュータ10を外部のディスプレイ40に接続し、ディスプレイ40に画像を表示するためのインターフェイスを提供する。IIF17はコンピュータ10を外部のキーボード50aとマウス50bに接続し、キーボード50aとマウス50bからの入力信号をコンピュータ10が取得するためのインターフェイスを提供する。
図2は、コンピュータ10において実行されるプログラムのソフトウェア構成を示している。同図において、オペレーティングシステム(OS)PG1と画像処理アプリケーションPG2とプリンタドライバPG3が実行されている。OS PG1は各プログラム間のインターフェイスを提供し、プリンタドライバPG3はプリンタ20を制御するための処理を実行する。画像処理アプリケーションPG2は、作業画像取得部PG2aと検出窓設定部PG2bと窓画像取得部PG2cと第1特徴量算出部PG2d1と第2特徴量算出部PG2d2と第1顔判定部PG2e1と第2顔判定部PG2e2と画質調整部PG2fとから構成されている。画像処理アプリケーションPG2を構成する各モジュールPG2a〜PG2fが実行する処理の詳細については後述する画像処理の流れとともに説明する。
2.画像処理
図3は、画像処理の全体の流れを示している。同図において、画像処理は第1顔検出処理(ステップS100)と、絞り込み処理(ステップS200)と、第2顔検出処理(ステップS300)と、肌色補正処理(ステップS500)と印刷処理とから構成されている。また、第1顔検出処理(ステップS100)と第2顔検出処理(ステップS300)においてそれぞれ後述する検出窓SWが設定されるごとに、第1顔判定処理(ステップS600)と第2顔判定処理(ステップS700)が実行され、それぞれ検出窓SWに顔画像が存在するか否かの判定結果を出力する構成となっている。
2−1.第1顔検出処理
図4は、第1顔検出処理の流れを示し、図5は作業画像データWDを示している。ステップS110では、作業画像取得部PG2aが所定のUI画面をディスプレイ40に表示させるとともに、キーボード50aとマウス50bから操作を受け付ける。それにより、HDD14等に記憶された複数の画像データ14bのなかからユーザーが印刷したい画像データ14bを取得する。作業画像取得部PG2aが画像データ14bの解像度を変換することにより、320画素×240画素(QVGA)の作業画像データWDを生成する。
図5において、作業画像データWDに正方形状領域の検出窓(検出領域)SWが設定されており、第1顔検出処理おいては検出窓設定部PG2bが検出窓SWを作業画像データWDにおいて隈無く移動させていく。なお、作業画像データWDの長手方向をx軸とし、短手方向をy軸と表すものとし、x軸とy軸の原点は作業画像データWDの左上隅位置とする。ステップS120においては、検出窓設定部PG2bが検出窓SWの中心位置Pを指定するための方向カウンタnx,nyをリセットする。各方向カウンタnx,nyは、整数値であり、リセットによって0とされる。ステップS130においては、y方向カウンタnyに1を加算する。同様にステップS140において、x方向カウンタnxに1を加算する。次のステップS150においては、検出窓設定部PG2bが検出窓SWの中心位置Pの座標を下記の(1)式に基づいて算出する。
Figure 0004983682

上記の(1)式において、dx,dyは検出窓SWの中心位置Pの各方向への単位移動距離(画素数)を示す一定の移動間隔を表しており、移動間隔dx,dyと方向カウンタnx,nyをそれぞれ乗算することにより、検出窓SWの中心位置Pのx,y座標を算出する。移動間隔dx,dyは下記の(2)式によって定義されるものとする。
Figure 0004983682

上記の(2)式において、検出窓SWの中心位置Pのy方向への移動間隔dyは検出窓SWのサイズSの4%とされている。上記の(2)式によって移動間隔dy<1となる場合は、dy=1とする。また、y方向カウンタnsの上限値は、上記の(1)式による検出窓SWの中心位置Pのy座標が作業画像データWDの内側に収まるように、240/(0.04×S)(整数部分)とされる。なお、本実施形態では単一のサイズSの検出窓SWを設定するものを例示して説明するが、実際にはサイズSを変化させながら顔検出を行っていく。一方、x方向への移動間隔dxは検出窓SWのサイズSの50%とされている。x方向カウンタnxの上限値は、320/(0.5×S)(整数部分)とされる。ステップS160においては、ステップS150においてそれぞれ算出した中心位置Pを中心としてサイズSの検出窓SWを生成するとともに、検出窓SWの一部が作業画像データWDの外側にはみ出ていないか否かを判定する。
図6は、ステップS160における判定の様子を模式的に示している。同図に示すように、各方向カウンタnx,nyの変動によって検出窓SWの位置と大きさがシフトするため、ある各方向カウンタnx,nyの組み合わせにおいては検出窓SWの一部が作業画像データWDの外側にはみ出ることとなる。このような場合に正常な顔検出を行うことができないとして、当該各方向カウンタnx,nyで特定される検出窓SWについての第1顔判定処理をスキップさせる。
以上のようにして、ステップS160にてスキップされた場合を除いて、各方向カウンタnx,nyが設定できると検出窓SWの大きさと位置が検出窓設定部PG2bによって一意に特定されたこととなる。ステップS170においては、窓画像取得部PG2cが現在決定されている検出窓SWの内側の画像データを抽出し、当該画像データを窓画像データXDとして取得する。取得した窓画像データXDは、第1特徴量算出部PG2d1および第1顔判定部PG2e1に出力され、窓画像データXDについての第1顔判定処理をステップS600にて実行する。ステップS170において、検出窓設定部PG2bは第1顔判定処理によって得られた当該検出窓SWにおける顔画像の有無を取得する。なお、第1顔判定処理の詳細については後述する。
ステップS180においては、x方向カウンタnx=320/(0.5×S)(整数部分)であるか否かを判定する。すなわち、現在の検出窓SWのy方向の位置における左端から右端までひととおり検出窓SWを設定したか否かを判定する。x方向カウンタnx<320/(0.5×S)(整数部分)である場合には、ステップS140に戻り、x方向カウンタnxを加算する。これにより、x方向右側に移動間隔dxだけ進んだ中心位置Pに検出窓SWを設定することができる。
x方向カウンタnx=320/(0.5×S)であるとき、作業画像データWDの右端付近に検出窓SWの中心位置Pが移動することとなり、当該y方向の位置における移動を終了させる。ステップS185においてはx方向カウンタnxを0にリセットさせ、ステップS190にてy方向カウンタny=240/(0.04×S)(整数部分)であるかを判定する。ここで、y方向カウンタny<240/(0.04×S)(整数部分)であれば、ステップS130に戻る。ステップS130ではy方向カウンタnyに1を加算し、再度、ステップS140〜ステップS180を繰り返して実行する。これにより、一段進んだy方向に位置において検出窓SWの中心位置Pをx方向に移動させていくことができる。
図7は、以上の処理を実行することにより、順次移動していく検出窓SWの様子を示している。上記の(1)式によって検出窓SWの中心位置Pを決定しているため、作業画像データWDにおいて検出窓SWの中心位置Pは、x方向に移動間隔dxの周期で分布し、y方向に移動間隔dyの周期で分布する格子点上に移動していくこととなる。最終的に、y方向カウンタny=240/(0.04×S)(整数部分)となったとき、作業画像データWDの最下端まで検出窓SWの中心位置Pを設定することができたとして、第1顔検出処理を終了させる。
2−2.絞り込み処理:
図8は、検出窓設定部PG2bが第1顔検出処理の後に実行させる絞り込み処理の流れを示している。上述した第1顔検出処理のステップS170において検出窓設定部PG2bが窓画像データXDを出力するごとに、第1顔判定処理が実行され、その判定結果が検出窓SWの位置情報とともにWRAM12やHDD14に記憶されている。ステップS210においては、各中心位置Pの検出窓SWについて行われた第1顔判定処理による顔画像の有無の判定結果を作業画像データWDにおいてマッピングする。
図9Aは、y方向のある位置(y=10)について第1顔判定処理による顔画像の有無の判定結果をマッピングした様子を示している。同図において、第1顔判定処理によって顔画像が存在すると判定された検出窓SWの中心位置Pを○でプロットし、第1顔判定処理によって顔画像が存在しないと判定された検出窓SWの中心位置Pを●でプロットしている。以下、第1顔判定処理によって顔画像が存在すると判定された検出窓SWの中心位置Pを存在位置と表記し、第1顔判定処理によって顔画像が存在しないと判定された検出窓SWの中心位置Pを不存在位置と表記する。なお、移動間隔dx,dyをそれぞれ5画素,1画素としたときの例を示しており、○と●でプロットされた存在位置と不存在位置との間には4画素分の位置が存在している。ステップS220においては、存在位置同士がx方向において隣接している区間(○と○が隣接する区間)を検出し、当該区間を検出対象区間(太線で図示。)とする。さらに、不存在位置同士がx方向において隣接している区間(●と●が隣接する区間)を検出し、当該区間を検出対象外区間(破線で図示。)とする。また、存在位置と、不存在位置がx方向において隣接している区間(○と●が隣接する区間)を検出し、当該区間を未確定区間(細線で図示。)とする。
ステップS230においては、以上のようにして定義された各区間内の各位置(画素)についてそれぞれ異なる規則を適用して移動順序を設定する。図9Aにおいては、ステップS230にて設定される移動順序が示されている。基本的には、作業画像データWDの左上端の画素の移動順序を1とし、x方向右側に1画素進むに連れて1ずつ移動順序が大きくなっていく。そして、右端の画素まで移動順序が設定できると、一段下の画素について同様に右端から左端に向かって昇順となるように移動順序を設定することを繰り返すことにより、すべての画素に移動順序を設定する。そのため、図9Bに示すように、検出対象外区間(破線で図示。)と検出対象外区間(破線で図示。)においては左端の画素の移動順序をuとすると、右に1画素ずつずれるにつれて順序が1ずつ加算されていく。しかし、未確定区間(細線で図示。)においては、顔画像が存在すると判定された存在位置(○で図示)から顔画像が存在しないと判定された不存在位置(●で図示)に向かう方向(○から●に向かう方向)に昇順となるように各画素の移動順序を設定する。従って、図9Bの最下段に図示するように、不存在位置(●で図示)が左端に位置し、存在位置(○で図示)が右端に位置する未確定区間(細線で図示。)においては、左に1画素ずつずれるにつれて順序が1ずつ加算されていくこととなる。
また、ステップS240では、検出対象区間(太線で図示。)の各画素、および、顔画像が存在すると判定された存在位置と重複する画素については、検出フラグTfを添付する。一方、検出対象外区間(破線で図示。)の各画素、および、顔画像が存在しないと判定された不存在位置(●で図示)と重複する画素については、非検出フラグFfを添付する。さらに、未確定区間(細線で図示。)の各画素については、未確定フラグNfを添付する。ステップS250においては、以上のようにして設定した各画素の位置と移動順序と各フラグTf,Nf,Ffを格納した検出位置テーブルTBを生成し、RAM12やHDD14に記憶させる。
図10は、検出位置テーブルTBを示している。同図において、図9Aに示したy=11のマップに対応する部分が示されている。各移動順序の昇順に各画素の位置を示すxy座標が対応付けられて格納されているとともに、各画素について対応する区間のフラグTf,Nf,Ffが添付されている。y方向の位置が単一であれば、基本的に移動順序が後になればx方向の位置が右方向に進む関係となるが、9Bで示すように存在位置(○で図示)が右端に位置する未確定区間(細線で図示。)については移動順序が後になるとx方向の位置が左方向に戻ることとなる(図10において二重枠で図示した部分。)。このような検出位置テーブルTBによれば、後述する第2顔検出処理において、どのような順序でどの位置に検出窓SWの中心位置Pを設定すべきかを特定することができる。なお、検出位置テーブルTBに格納された移動順序の値は、後述する第2顔検出処理にて使用される位置カウンタnp(整数値)に対応している。検出位置テーブルTBが生成できると、ステップS300において第2顔検出処理を実行させる。
2−3.第2顔検出処理:
図11は、第2顔検出処理の流れを示している。ステップS310において、検出窓設定部PG2bが位置カウンタnpを0にリセットする。ステップS320においては、位置カウンタnpに1を加算する。ステップS330においては、検出窓設定部PG2bが検出位置テーブルTBおよび作業画像データWDを取得する。ステップS340においては、検出位置テーブルTBを参照して位置カウンタnpに対応付けられた位置のxy座標を取得する。ステップS345においては、当該取得した位置に対して非検出フラグFfが添付されているか否かを判定する。非検出フラグFfが添付されている場合には、ステップS320に戻り、位置カウンタnpに1を加算する。
一方、ステップS340において取得した位置に対して検出フラグTfと未確定フラグNfが添付されている場合には、ステップS350にて、当該位置のxy座標を中心位置Pとする検出窓SWを検出窓設定部PG2bが設定する。ステップS360においては、窓画像取得部PG2cが現在設定されている検出窓SWの内側の窓画像データXDを取得する。取得した窓画像データXDは、第2特徴量算出部PG2d2および第2顔判定部PG2e2に出力され、窓画像データXDについての第2顔判定処理をステップS700にて実行する。ステップS700において顔画像が存在すると判定された場合、そのときの検出窓SWの位置をRAM12に記憶させる。なお、第2顔判定処理の詳細については後述する。
ステップS370において、現在の検出窓SWの位置に未確定フラグNfが添付されており、かつ、第2顔判定処理(ステップS700)にて現在の検出窓SWの窓画像データXDに顔画像が存在しないと判定されたかを判断する。そして、現在の検出窓SWの位置に未確定フラグNfが添付されており、かつ、第2顔判定処理(ステップS700)にて現在の検出窓SWの窓画像データXDに顔画像が存在しないと判定された場合には、検出位置テーブルTBにおいて、現在の位置の移動順序の直後(図11の検出位置テーブルTBにおける直下)に連続(単一の場合も含む)して存在する未確定フラグNfが添付された位置について、未確定フラグNfを非検出フラグFfに更新する(ステップS380)。ステップS390においては、位置カウンタnpが検出位置テーブルTBに記述された最終の移動順序に対応するものであるか否かを判定する。位置カウンタnpが最終のものでない場合には、ステップS320に戻り、位置カウンタnpを加算する。このようにすることにより、位置カウンタnpが最終のものとなるまで、順次検出窓SWの中心位置Pを移動させていくことができる。
図12Bは以上の第2顔検出処理において移動する検出窓SWの様子を、第1顔検出処理(ステップS100)における第1顔判定処理(ステップS600)による判定結果(12A)と対比して示している。同図おいては、図9Aに示したy=11のマップに対応する部分について検出窓SWが移動する様子を示している。ここで、第1顔判定処理によって顔画像が存在しないと不存在位置(●で図示)、および、当該不存在位置同士の間の検出対象外区間(破線で図示。)の位置について非検出フラグFfが添付されているため、これらの位置については第2顔判定処理(ステップS700)がスキップされることとなる。なお、スキップされた位置は−で図示し、第2顔判定処理が実行された位置は◎で図示する。一方、第1顔判定処理によって顔画像が存在すると判定された存在位置(○で図示)および、当該存在位置同士の間の検出対象区間(太線で図示。)の位置について検出フラグTfが添付されているため、当該位置については検出窓SWの中心位置Pが各画素について設定され、第2顔判定処理(ステップS700)が実行されることとなる。
第1顔判定処理(ステップS600)において顔画像が存在すると判定された存在位置と、顔画像が存在しないと判定された不存在位置との間の未確定区間(細線で図示。)においては、存在位置から不存在位置に向かう方向(○から●に向かう方向)に昇順となるように移動順序が設定されている。そのため、未確定区間においては、存在位置から近い方の各位置を優先させて検出窓SWの中心位置Pが設定され、第2顔判定処理(ステップS700)を実行することができる。ただし、当該未確定区間のいずれかの位置について、第2顔判定処理にて顔画像が存在しないと判定された段階で、当該未確定区間の未処理の各位置についての未確定フラグNfを非検出フラグFfに更新するため、それ以降の未確定区間の位置については第2顔判定処理を実行させなくすることができる。図12Cにおいては、第2顔判定処理による判定結果を示しており、未確定区間にて顔画像が存在しないと第2顔判定処理によって判定された位置(●で図示)よりも後の移動順序とされた位置については、図12Bに示すようにスキップされている。すなわち、第1顔判定処理において顔画像が存在すると判定された存在位置から近い位置の順に第2顔判定処理を実行させるが、第2顔判定処理にて顔が検出されなかった位置よりも、存在位置から遠くにある位置については、第2顔判定処理を実行させないようにしている。
第1顔判定処理(ステップS600)によって顔画像が存在しないと判定された不存在位置同士の検出対象外区間においては、それ以上、第2顔判定処理(ステップS700)を実行しても顔が検出される可能性は低いと考えることができる。従って、検出対象外区間について第2顔判定処理を実行させないことにより、無駄な処理を防止することができる。これに対して、第1顔判定処理によって顔画像が存在すると判定された存在位置同士の検出対象区間においては、第2顔判定処理において顔が検出される可能性が高いと考えることができる。従って、検出対象区間のすべての位置について第2顔判定処理を実行させることによろい、漏れのない顔検出を実現することができる。
さらに、第1顔判定処理によって顔画像が存在すると判定された存在位置と顔画像が存在しないと判定された不存在位置との間の未確定区間においては、存在位置に近いほど第2顔判定処理において顔が検出される可能性が高いということができる。従って、存在位置に近い位置から先に第2顔判定処理を実行させることにより、早期に顔を検出することができる。さらに、未確定区間について第2顔判定処理を実行させた結果、顔画像が存在しないと判定された位置よりも、第1顔判定処理によって顔画像が存在すると判定された存在位置から遠い位置については、顔画像が存在する可能性が低いと考えることができる。従って、このような位置について第2顔判定処理を実行させないことにより、無駄な処理を防止することができる。
ステップS390において、位置カウンタnpが最終のものであると判定された場合には、ステップS395において第2顔判定処理(ステップS700)によってRAM12に記憶された各位置についての判定結果のマップを取得する。そして、第2顔判定処理による判定結果のマップに基づいて最終的な顔検出の結果を出力する。図12Cに示すように、検出対象外区間および未確定区間の一部については、検出窓SWの中心位置Pの設定がスキップされているため、第2顔判定処理(ステップS700)の判定結果が得られていない(−で図示。)。一方、検出対象区間および未確定区間の一部については、各画素について第2顔判定処理による顔画像が存在する(○で図示。)か、存在しない(●で図示。)かの判定結果が各画素について得られている。
ここで、検出窓SWのサイズSよりも狭い範囲において顔画像が存在すると判定された画素が連続する場合、複数の顔画像が存在しているのではなく、単一の顔画像が複数の隣接位置において検出されたものと考えられる。従って、このような場合には、顔画像が存在すると判定された隣接画素の中央の画素の位置を顔画像が存在する位置であるとしたり、顔画像が存在すると判定された隣接画素のうち最も第2顔判定処理において高い評価であった画素(後述するニューラルネットワークNN2の出力値が大きかったもの)画素の位置を顔画像が存在する位置であるとする。なお、第1顔判定処理において存在位置と判定されたにもかかわらず、第2顔判定処理において顔画像が存在しないと判定される場合も考えられる。このような場合には、第2顔判定処理の方が位置に関する精度が高いため、第2顔判定処理の結果を優先するものとする。以上によって、作業画像データWDにおいて顔画像が存在する位置が最終的に特定できたこととなり、当該位置についての情報をRAM12に記憶させて処理を終了させる。
2−4.顔判定処理
図13は、第1顔判定処理と第2顔判定処理の流れを示している。なお、第1顔判定処理と第2顔判定処理の実行に必要なプログラムコードをCPU11が読み込むことにより、本発明の第1判定手段と第2判定手段とが用意されることとなる。同図に示すように第1顔判定処理と第2顔判定処理は同様の処理とされている。ステップS610,S620にて窓画像データXDを取得すると、次のステップS620,S720において第1特徴量算出部PG2d1と第2特徴量算出部PG2d2がそれぞれステップS170,S360にて取得した窓画像データXDから複数の特徴量を算出する。これらの特徴量は、窓画像データXDに対して各種のフィルタを適用し、当該フィルタ内の輝度平均やエッジ量やコントラスト等の画像的特徴を示す特徴量(平均値や最大値や最小値や標準偏差等)を算出することにより得られる。
図14は、窓画像データXDから特徴量を算出する様子を示している。同図において、窓画像データXDに対して多数のフィルタFTが用意されており、各フィルタFTを順次窓画像データXDに適用し、各フィルタFT内の画像的特徴に基づいて、複数の特徴量CA,CA,CA…を算出する。第1特徴量算出部PG2d1と第2特徴量算出部PG2d2が算出する特徴量CA,CA,CA…は互いに異なっており、第1特徴量算出部PG2d1よりも第2特徴量算出部PG2d2によって算出される特徴量CA,CA,CA…の数の方が多くされている。特徴量CA,CA,CA…が算出できると、ステップS630,730において、第1顔判定部PG2e1と第2顔判定部PG2e2がそれぞれ特徴量CA,CA,CA…を予め用意されたニューラルネットワークNNに入力し、その出力として顔画像が存在する/しないの判定結果を算出する。
図15は、第1顔判定部PG2e1と第2顔判定部PG2e2がそれぞれ使用するニューラルネットワークNN1,NN2の構造の一例を対比して示している。ニューラルネットワークNN1,NN2は、前段層のユニットUの値の線形結合(添え字iは前段層のユニットUの識別番号。)によって後段層のユニットUの値が決定される基本構造を有している。さらに、線形結合によって得られた値をそのまま次の層のユニットUの値としてもよいが、線形結合によって得られた値を例えばハイパボリックタンジェント関数のような非線形関数によって変換して次の層のユニットUの値を決定することにより、非線形特性を与えてもよい。第1顔判定部PG2e1が使用するニューラルネットワークNN1は3層構造となっており、第2顔判定部PG2e2が使用するニューラルネットワークNN2は4層構造となっている。ニューラルネットワークNN1,NN2は、最外の入力層と出力層と、これらに挟まれた中間層から構成されている。各特徴量CA,CA,CA…がニューラルネットワークNNの入力層に入力可能となっており、出力層では出力値K(0〜1に正規化された値)を出力することが可能となっている。なお、第1特徴量算出部PG2d1よりも第2特徴量算出部PG2d2によって算出される特徴量CA,CA,CA…の数の方が多いため、第2顔判定部PG2e2が使用するニューラルネットワークNN2の方が入力層を構成するユニットUの数が多く複雑な構造となっている。
第1顔判定部PG2e1と第2顔判定部PG2e2は、それぞれニューラルネットワークNN1,NN2の出力値Kが0.5以上であれば窓画像データXDに顔画像が存在すると判定し、出力値Kが0.5未満であれば窓画像データXDに顔画像が存在しないと判定する(ステップS640,S740)。このようなニューラルネットワークNN1,NN2をHDD14に予め用意しておけば、顔画像が窓画像データXDに存在するか否かを特徴量CA,CA,CA…に基づいて判定することができる。
図16は、ニューラルネットワークNN1,NN2を学習する様子を模式的に示している。なお、学習方法は同様であるためニューラルネットワークNN1のみ図示するものとする。本実施形態では、誤差逆伝搬(error back propagation)法によって学習を行うことにより、各ユニットUの数や、各ユニットU間における線形結合の際の重みwの大きさやバイアスbの値が最適化される。ニューラルネットワークNN2の方が構造が複雑であるため、最適化すべき重みwの大きさやバイアスbの数も多くなる。誤差逆伝搬法による学習においては、まず各ユニットU間における線形結合の際の重みwの大きさやバイアスbの値を適当な値に初期設定する。そして、顔画像が存在しているか否かが既知の学習用画像データについてステップS620,S720と同様の手順で特徴量CA,CA,CA…を算出し、当該特徴量CA,CA,CA…を初期設定されたニューラルネットワークNN1,NN2に入力し、その出力値Kを取得する。
本実施例において、顔画像が存在している学習用画像データについて出力値Kとして1が出力されるのが望ましく、顔画像が存在していない学習用画像データについて出力値Kとして0が出力されるのが望ましい。しかしながら、各ユニットU間における線形結合の際の重みwの大きさやバイアスbの値を適当な値に初期設定したに過ぎないため、実際の出力値Kと理想的な値との間には誤差が生じることとなる。このような誤差を極小化させる各ユニットUについての重みwやバイアスbを、勾配法等の数値最適化手法を用いて算出する。以上のような誤差は、後段の層から前段の層に伝搬され、後段のユニットUについて重みwやバイアスbから順に最適化されていく。
図17は、ニューラルネットワークNN1,NN2のそれぞれの学習において使用される学習用画像データを対比して示している。学習用画像データは、多数用意されており、多種多様な顔をそれぞれ1ずつ含んでいる。ニューラルネットワークNN2の学習に使用される学習用画像データは顔の中心位置が学習用画像データの左右中央に厳密に一致するように作成されている。一方、ニューラルネットワークNN1の学習に使用される学習用画像データは顔の中心位置が学習用画像データの左右中央から多少ずれたものも含むように作成されている。すなわち、ニューラルネットワークNN1,NN2の学習に使用される学習用画像データに含まれる顔の中心位置の標準偏差は、ニューラルネットワークNN1の方が大きくなるようにされている。以上のようにして学習したニューラルネットワークNNによれば、窓画像データXDに顔画像が存在している場合の特徴量CA,CA,CA…に対して1に近い出力値Kを得ることができ、窓画像データXDに顔画像が存在していない場合の特徴量CA,CA,CA…に対して0に近い出力値Kを得ることができる。従って、適当な閾値0.5によって閾値判定を行うことにより、窓画像データXDに顔画像が存在しているか否かを判定することができる(ステップS640,S740)。
ステップS640,S740において窓画像データXDについて顔画像が存在すると判定された場合、そのときの窓画像データXDが得られた検出窓SWの中心位置をRAM12に記憶させ(ステップS650,S750)、リターンする。このようにしてRAM12に記憶された第1顔判定処理の判定結果に応じて前記絞り込み処理を実行することができるし、第2顔判定処理の判定結果に応じて後述する肌色調整および印刷処理を実行させることができる。一方、ステップS630,S730において窓画像データXDについて顔画像が存在しないと判定された場合、そのままリターンする。上述した第1顔検出処理と第2顔検出処理によって検出窓SWを移動させながら窓画像データXDが第1特徴量算出部PG2d1,第1特徴量算出部PG2d1に順次出力されるため、その度にステップS610〜S640,S710〜S740の処理を実行させる。これにより、順次移動される検出窓SWのそれぞれについて顔画像の存在の有無を判定していくことができる。
学習画像データに含まれる顔の左右方向の位置にばらつきを持たせた第1顔判定処理の方が判定する顔が検出窓SWの中央から左右に多少ぶれていても顔画像が存在すると判定することができる。また、第1顔判定処理で使用するニューラルネットワークNN1の構造は簡易であり、算出すべき特徴量CA,CA,CA…の数も第2顔判定処理よりも少ないため、高速な判定を行うことができる。一方、学習画像データに含まれる顔の左右方向の位置のばらつきが小さい第2顔判定処理の方が高精度に顔画像の位置を特定することができる。すなわち、検出窓SWの左右中央に顔画像が存在する場合のみ顔画像が存在すると判定することとなるため、厳密に顔画像の位置を特定することができる。
作業画像データWDのすべての位置について第2顔判定処理を実行させれば、精度よい顔検出を実現させることができるが、第2顔判定処理による処理負担が膨大となる。そこで、図12にて説明したように、予め顔画像の左右のぶれに対するロバスト性に優れ、かつ、処理負担の少ない第1顔判定処理を作業画像データWDの全体わたる低密度の位置について実行させることにより、顔画像が存在しそうな領域を絞り込むことができる。そして、顔画像が存在しそうな領域についてのみ第2顔判定処理を実行させるため、第2顔判定処理を実行させる回数を低減することができ、処理効率を向上させることができる。第2顔判定処理は、高い位置精度を有するため、絞り込まれた領域において厳密に顔画像が存在する位置を最終的に特定することができる。第2顔判定処理は顔画像の左右のぶれに対するロバスト性が低いが、第2顔検出処理では絞り込まれた領域において細かく(高密度に)検出窓SWを移動させるため、顔画像が存在する位置を漏れなく特定することができる。
2−5.肌色補正処理および印刷処理:
図18は、画質調整部PG2eが実行する肌色補正処理の流れを示している。上述した第2顔検出処理の位置について検出窓SWの設定が完了したと判定すると、第2顔検出処理が終了するとともに、第2顔検出処理と同期して実行される第2顔判定処理も終了する。ステップS510においては、第2顔検出処理と第2顔判定処理の終了を検出し、調整対象の画像データ14bを取得する。ここで取得される画像データ14は、第1顔検出処理と第2顔検出処理の対象となった画像データ14bである。ステップS520においては、顔画像が存在すると判定された検出窓SWの位置と一定のサイズSをRAM12から読み出す。ステップS530においては、顔画像が存在すると判定された検出窓SWに対応する領域を画像データ14bにおいて特定する。検出窓SWの位置がRAM12から取得されているため、これを画像データ14bの画像サイズに換算することにより、検出窓SWに対応する領域を特定することができる。
ステップS540においては、ステップS530にて特定した領域に含まれる肌色画素の色をサンプリングし、当該色に基づいて画像データ14bに対する色調調整のためのパラメータを設定する。ここでは、まずステップS540にて特定した領域に含まれる肌色画素を、各画素の色彩値(例えばRGB値やHSV値)に基づいて特定し、当該色彩値を肌色として好ましいものに補正するための調整パラメータを算出する。調整パラメータは、例えばカラーバランスやホワイトバランスや明るさを調整するためのパラメータが該当する。予め肌色として好ましい色彩値がHDD14に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくような調整パラメータが算出される。検出窓SWによって顔画像が存在する領域が予め特定されているため、顔画像の肌色画素に基づいて調整パラメータを得ることができる。なお、顔画像が存在すると判定された検出窓SWが複数検出された場合には、平均的な調整パラメータの算出を実行する。調整パラメータが算出できると、ステップS545において、当該調整パラメータに基づく各画素の色彩値の調整が実行される。以上のようにして、肌色調整が完了すると、ステップS550にて調整後の画像データ14bをプリンタドライバPG3に出力する。すると、プリンタドライバPG3は、画像データ14bに対して解像度変換処理と色変換処理とハーフトーン処理とラスタライズ処理を順次実行させ、プリンタ20に画質調整後の画像データ14bに対応する画像の印刷を実行させる。
3−1.変形例1
上述した実施形態では、第1顔検出処理と第2顔検出処理においてそれぞれx方向について異なる検出窓SWの設定手法を行うようにしたが、むろんy方向についても同様に設定手法を変えるようにしてもよい。また、説明の簡略化のため検出窓SWのサイズSを一定とした処理を説明したが、サイズSを順次シフトさせ、様々な大きさの顔を検出するのが望ましい。さらに、サイズSをシフトさせる手法も、第1顔検出処理と第2顔検出処理とで異ならせるようにしてもよい。
図19においては、サイズSをシフトさせる様子の一例を示している。同図において、横軸にサイズSが示されており、上段に第1顔検出処理にて設定されるサイズSを示し、下段に第1顔検出処理にて設定されるサイズSを示している。第1顔検出処理にて設定されるサイズSのうち、第1顔判定処理によって顔画像が存在すると判定されたサイズSを○で示し、顔画像が存在しないと判定されたサイズSを●で示している。第1顔検出処理においては、サイズSの大きい順から例えば20画素ずつ検出窓SWのサイズSを小さくしていく。第2顔判定処理においては、サイズSの設定周期を第1顔検出処理よりも小さい5画素とする。
第1顔判定処理によって顔画像が存在しない判定されたサイズSの間のサイズSの範囲(●と●の間)については顔検出の対象としない。一方、第1顔判定処理によって顔画像が存在すると判定されたサイズSの間のサイズSの範囲(○と○の間)については顔検出の対象とする。第1顔判定処理によって顔画像が存在する(顔と大きさがマッチする)と判定されたサイズSと、顔画像が存在しないと判定されたサイズSの間のサイズSの範囲(○と●の間)については、前者から後者のサイズSに向かってサイズSをシフトさせていき、顔が検出されなくなった時点で当該範囲のサイズSについての顔検出を終了させる。なお、本変形例の第1顔判定処理と第2顔判定処理で使用するニューラルネットワークNN1は含まれる顔画像の大きさにばらつきを持たせた学習画像データを使用して構築されており、ニューラルネットワークNN2は含まれる顔画像の大きさのばらつきが小さい学習画像データを使用して構築されているものとする。このようにすることにより、まず第1顔検出処理にて大まかなサイズSの絞り込みを行い、当該絞り込まれた範囲について詳細に第2顔判定処理を実行させることができる。従って、効率的かつ高精度に顔画像の大きさを特定することができる。
3−2.変形例2
図20においては、本変形例の第1顔判定処理と第2顔判定処理の判定手法を模式的に示している。上述した実施形態ではニューラルネットワークNN1,NN2を使用したが本変形例では複数の判定器J,J…を複数段カスケード状に接続した判定手段を使用する。判定器J,J…はハードウェアによって実現されてもよいし、ソフトウェアによって実現されてもよい。各判定器J,J…は、それぞれ異なる種類(例えばフィルタが異なる)の単数または複数の特徴量CA,CA,CA…を入力し、それぞれ正または否の判定を出力する。各判定器J,J…は、それぞれ特徴量CA,CA,CA…の大小比較や閾値判定等の判定アルゴリズムを有しており、それぞれ独自の判定を実行する。次の段の各判定器J,J…は、前の段の判定器J,J…の正の出力に接続されており、前の段の判定器J,J…の出力が正であった場合のみ次の段の判定器J,J…が判定を実行する。いずれの段においても否の出力がなされた時点で、第1顔判定処理と第2顔判定処理を終了させ、顔画像が存在しない旨の判定を出力する。一方、各段の判定器J,J…がすべて正の出力をした場合には、第1顔判定処理と第2顔判定処理を終了させ、顔画像が存在する旨の判定を出力する。
図21は、本変形例にかかる判定手法における判定特性を示している。同図においては、上述した各判定器J,J…において使用される特徴量CA,CA,CA…の軸で定義される特徴量空間を示しており、最終的に顔画像が存在すると判定される窓画像データXDから得られる特徴量CA,CA,CA…の組み合わせで表される特徴量空間内の座標をプロットしている。顔画像が存在すると判定される窓画像データXDは一定の特徴を有しているため、特徴量空間における一定の領域に分布が見られると考えることができる。各判定器J,J…は、このような特徴量空間において境界平面を生成し、当該境界平面で区切られた空間のうち、前記分布が属する空間に判定対象の特徴量CA,CA,CA…の座標が存在している場合には、正を出力する。従って、各判定器J,J…をカスケード状に接続することにより、徐々に正と出力される空間を絞り込んでいくことができる。複数の境界平面によれば、複雑な形状の前記分布についても精度よく判定を行うことができる。
それぞれ異なる判定器J,J…を備える第1顔判定処理と第2顔判定処理を実行することにより、第1顔判定処理で絞り込んだ空間をさらに第2顔判定処理によって絞り込んでいくことができる。むろん、第1顔判定処理だけでなく、第1顔判定処理と第2顔判定処理を順次実行させた方が、判定結果が高精度となる。特に、第2顔判定処理の各判定器J,J…がx方向の位置を厳密化させる境界平面を適用するものとすれば、第2顔判定処理を実行させた方がx方向の位置に判定精度を高くすることができる。本発明では、顔画像が存在する可能性が高い位置やサイズについてのみ第2顔判定処理を実行するとともに、少ない個数の位置やサイズについてのみ第1顔判定処理を実行するため、効率的な処理を実現することができる。
なお、以上においては、本発明の画像処理方法が、コンピュータ上で実行されるものを例示したが、例えばプリンタやデジタルスチルカメラやスキャナ等の画像機器にて実行されてもよい。プリンタにて本発明の画像処理方法を行えば、印刷の際に理想的な顔画像に近づく画像処理を実行することができる。むろん、プリンタは家庭用のものに限られず、業務用の写真プリントシステムにおいても適用することができる。さらに、プリンタのように印刷用紙上に画像処理結果を出力するものに限らず、フォトビューワのようにディスプレイ上に画像処理結果を出力する装置においても本発明を実現することができる。また、デジタルスチルカメラにて本発明の画像処理方法を行えば、理想的な肌色の顔画像となった撮影結果を得ることができる。さらに、人物認証を行うATM(Automated Teller
Machine)等においても本発明を適用することができる。さらに、ニューラルネットワークNNを使用して顔判定を行うものに限られず、上述した特徴量の特徴量空間における種々の判別手法を用いることも可能である。例えば、サポートベクタマシンを利用してもよい。
画像処理装置のハードウェア構成を示すブロック図である。 画像処理装置のソフトウェア構成を示すブロック図である。 画像処理の流れを示すフローチャートである。 第1顔検出処理の流れを示すフローチャートである。 作業画像データの一例を示す図である。 検出窓と作業画像データの関係を示す図である。 検出窓の位置が移動する様子を示す図である。 絞り込み処理の流れを示すフローチャートである。 第1顔判定処理による顔画像の有無の判定結果のマップである。 検出位置テーブルを示す図である。 第2顔検出処理の流れを示すフローチャートである。 検出窓の位置が移動する様子を示す図である。 顔判定処理の流れを示すフローチャートである。 窓画像データから特徴量を算出する様子を示す図である。 ニューラルネットワークの構造の一例を示す図である。 ニューラルネットワークを学習する様子を模式的に示す図である。 学習画像データの例を示す図である。 肌色調整処理の流れを示すフローチャートである。 変形例において検出窓のサイズをシフトさせる様子を示す図である。 変形例にかかる顔判定処理の流れを示す図である。 変形例にかかる顔判定処理を模式的に示す図である。
符号の説明
10…コンピュータ、11…CPU、12…RAM、13…ROM、14…HDD、14a…プログラムデータ、14b…画像データ、15…GIF、16…VIF、17…IIF、18…バス、20…プリンタ、40…ディスプレイ、50a…キーボード、50b…マウス、PG1…OS、PG2…画像処理アプリケーション、PG2a…作業画像取得部、PG2b…検出窓設定部、PG2c…窓画像取得部、PG2d1…第1特徴量算出部、PG2d2…第2特徴量算出部、PG2e1…第1顔判定部、PG2e2…第2顔判定部、PG2f…画質調整部、PG3…プリンタドライバ。

Claims (7)

  1. 画像データが示す画像からオブジェクトを検出するオブジェクト検出方法であって、
    前記画像データに設定された検出窓の内側にオブジェクトが存在するか否かを判定する第1判定手段および第2判定手段を用意し、
    前記画像データにおける複数の位置に設定された前記検出窓について前記第1判定手段による判定を実行させ、
    前記第1判定手段によってオブジェクトが存在すると判定された位置同士の間の複数の位置の前記検出窓について前記第2判定手段による判定を実行させ、
    前記第1判定手段によってオブジェクトが存在しないと判定された位置同士の間の位置の前記検出窓について前記第2判定手段による判定を実行させず、
    前記第1判定手段によってオブジェクトが存在すると判定された位置と前記第1判定手段によってオブジェクトが存在しないと判定された位置の間の位置においては、前記第1判定手段によってオブジェクトが存在すると判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置に近づくように順に前記検出窓を移動させながら、前記検出窓について前記第2判定手段による判定を実行させるとともに前記第2判定手段によってオブジェクトが存在しないと最初に判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置との間の位置については前記第2判定手段による判定を実行させない、
    ことを特徴とするオブジェクト検出方法。
  2. 前記第1判定手段よりも前記第2判定手段の方が前記検出窓に対するオブジェクトの位置についての判定精度が高く、前記第2判定手段よりも前記第1判定手段の方が前記検出窓に対するオブジェクトの位置の変動に対するロバスト性が高いことを特徴とする請求項1に記載のオブジェクト検出方法。
  3. 前記第2判定手段よりも前記第1判定手段の方が同一の前記検出窓について判定を実行させた場合の処理負担が少ないことを特徴とする請求項1または請求項2のいずれか一項に記載のオブジェクト検出方法。
  4. 前記第1判定手段は、前記画像データにおける複数の大きさに設定された前記検出窓について判定を実行し、
    前記第1判定手段によってオブジェクトが存在すると判定された大きさ同士の間の複数の大きさの前記検出窓について前記第2判定手段による判定を実行させ、
    前記第1判定手段によってオブジェクトが存在しないと判定された大きさ同士の間の大きさの前記検出窓について前記第2判定手段による判定を実行させず、
    前記第1判定手段によってオブジェクトが存在すると判定された大きさと前記第1判定手段によってオブジェクトが存在しないと判定された大きさの間の大きさにおいては、前記第1判定手段によってオブジェクトが存在しないと判定された大きさよりも前記第1判定手段によってオブジェクトが存在すると判定された大きさに近い大きさを優先させて設定した前記検出窓について前記第2判定手段による判定を実行させることを特徴とする請求項1〜請求項3のいずれか一項に記載のオブジェクト検出方法。
  5. 画像データが示す画像からオブジェクトを検出するオブジェクト検出装置であって、
    前記画像データに設定された検出窓の内側にオブジェクトが存在するか否かを判定する第1判定手段および第2判定手段と、
    前記画像データにおける複数の位置に設定された前記検出窓について前記第1判定手段による判定を実行させ第1顔検出手段と、
    前記第1判定手段によってオブジェクトが存在すると判定された位置同士の間の複数の位置の前記検出窓について前記第2判定手段による判定を実行させ、
    前記第1判定手段によってオブジェクトが存在しないと判定された位置同士の間の位置の前記検出窓について前記第2判定手段による判定を実行させず、
    前記第1判定手段によってオブジェクトが存在すると判定された位置と前記第1判定手段によってオブジェクトが存在しないと判定された位置の間の位置においては、前記第1判定手段によってオブジェクトが存在すると判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置に近づくように順に前記検出窓を移動させながら、前記検出窓について前記第2判定手段による判定を実行させるとともに前記第2判定手段によってオブジェクトが存在しないと最初に判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置との間の位置については前記第2判定手段による判定を実行させない第2顔検出手段とを具備することを特徴とするオブジェクト検出装置。
  6. 画像データが示す画像からオブジェクトを検出する機能をコンピュータに実行させるためのコンピュータ読み取り可能なオブジェクト検出プログラムであって、
    前記画像データに設定された検出窓の内側にオブジェクトが存在するか否かを判定する第1判定機能および第2判定機能と、
    前記画像データにおける複数の位置に設定された前記検出窓について前記第1判定機能による判定を実行させ第1顔検出機能と、
    前記第1判定機能によってオブジェクトが存在すると判定された位置同士の間の複数の位置の前記検出窓について前記第2判定機能による判定を実行させ、
    前記第1判定機能によってオブジェクトが存在しないと判定された位置同士の間の位置の前記検出窓について前記第2判定機能による判定を実行させず、
    前記第1判定機能によってオブジェクトが存在すると判定された位置と前記第1判定機能によってオブジェクトが存在しないと判定された位置の間の位置においては、前記第1判定機能によってオブジェクトが存在すると判定された位置から前記第1判定機能によってオブジェクトが存在しないと判定された位置に近づくように順に前記検出窓を移動させながら、前記検出窓について前記第2判定機能による判定を実行させるとともに前記第2判定機能によってオブジェクトが存在しないと最初に判定された位置から前記第1判定機能によってオブジェクトが存在しないと判定された位置との間の位置については前記第2判定機能による判定を実行させない第2顔検出機能とをコンピュータに実行させることを特徴とするコンピュータ読み取り可能なオブジェクト検出プログラム。
  7. 画像データが示す画像を印刷する印刷装置であって、
    前記画像データに設定された検出窓の内側にオブジェクトが存在するか否かを判定する第1判定手段および第2判定手段と、
    前記画像データにおける複数の位置に設定された前記検出窓について前記第1判定手段による判定を実行させ第1顔検出手段と、
    前記第1判定手段によってオブジェクトが存在すると判定された位置同士の間の複数の位置の前記検出窓について前記第2判定手段による判定を実行させ、
    前記第1判定手段によってオブジェクトが存在しないと判定された位置同士の間の位置の前記検出窓について前記第2判定手段による判定を実行させず、
    前記第1判定手段によってオブジェクトが存在すると判定された位置と前記第1判定手段によってオブジェクトが存在しないと判定された位置の間の位置においては、前記第1判定手段によってオブジェクトが存在すると判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置に近づくように順に前記検出窓を移動させながら、前記検出窓について前記第2判定手段による判定を実行させるとともに前記第2判定手段によってオブジェクトが存在しないと最初に判定された位置から前記第1判定手段によってオブジェクトが存在しないと判定された位置との間の位置については前記第2判定手段による判定を実行させない第2顔検出手段と、
    前記第2判定手段による各判定に応じた画像処理を実行した前記画像データを印刷する印刷手段とを具備することを特徴とする印刷装置。
JP2008079362A 2008-03-25 2008-03-25 オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置 Expired - Fee Related JP4983682B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008079362A JP4983682B2 (ja) 2008-03-25 2008-03-25 オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008079362A JP4983682B2 (ja) 2008-03-25 2008-03-25 オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置

Publications (2)

Publication Number Publication Date
JP2009237632A JP2009237632A (ja) 2009-10-15
JP4983682B2 true JP4983682B2 (ja) 2012-07-25

Family

ID=41251544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008079362A Expired - Fee Related JP4983682B2 (ja) 2008-03-25 2008-03-25 オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置

Country Status (1)

Country Link
JP (1) JP4983682B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5513960B2 (ja) * 2010-04-12 2014-06-04 株式会社メガチップス 画像処理装置
JP5732773B2 (ja) * 2010-08-12 2015-06-10 カシオ計算機株式会社 画像識別装置、画像識別方法及びプログラム
JP7303144B2 (ja) * 2016-04-05 2023-07-04 株式会社島津製作所 放射線撮影装置、放射線画像の対象物検出プログラムおよび放射線画像における対象物検出方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4795737B2 (ja) * 2005-07-12 2011-10-19 富士フイルム株式会社 顔検出方法および装置並びにプログラム
JP4718952B2 (ja) * 2005-09-27 2011-07-06 富士フイルム株式会社 画像補正方法および画像補正システム

Also Published As

Publication number Publication date
JP2009237632A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
JP6044134B2 (ja) 最適画像サイズによる画像領域分割装置、方法、およびプログラム
US9667841B2 (en) Image processing apparatus and image processing method
JP4983684B2 (ja) 画像処理装置、画像処理方法、画像処理のためのコンピュータプログラム
EP2782065B1 (en) Image-processing device removing encircling lines for identifying sub-regions of image
EP3407589B1 (en) Image processing apparatus, image processing method, and storage medium
JP2009237977A (ja) 画像出力制御装置、画像出力制御方法、画像出力制御プログラムおよび印刷装置
JP2010160640A (ja) 画像処理装置、プリンター、画像処理方法および画像処理プログラム
JP4983682B2 (ja) オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置
JP5018587B2 (ja) オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録したコンピュータ読取可能な記録媒体
JP5284994B2 (ja) 画像処理装置
US8254693B2 (en) Image processing apparatus, image processing method and program
US9894244B2 (en) Image processing system and image processing method that perform correction of shifting bitmap data in a sub-scanning direction to cancel bending of and electro-photographic laser scanning line
JP6584179B2 (ja) 情報処理装置、情報処理方法、コンピュータプログラム
JP2009237976A (ja) 顔画像出力制御装置、顔画像出力制御方法、顔画像出力制御プログラムおよび印刷装置
JP5067224B2 (ja) オブジェクト検出装置、オブジェクト検出方法、オブジェクト検出プログラムおよび印刷装置
CN105704347A (zh) 图像处理设备和图像处理方法
US20170076187A1 (en) Image processing apparatus and image processing method for estimating time required for print processing
US10916032B2 (en) Image processing apparatus, image processing program, image processing method, and image forming apparatus including the image processing apparatus
JP5786838B2 (ja) 画像領域分割装置、方法、およびプログラム
JP4983683B2 (ja) オブジェクト検出方法、オブジェクト検出装置およびオブジェクト検出プログラム
JP5136705B2 (ja) 印刷装置
JP4710508B2 (ja) 画像処理プログラム、画像処理装置
JP2010160639A (ja) オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置
JP4380308B2 (ja) 顔領域検出方法及び装置及びプログラム及び顔領域検出プログラムを格納したコンピュータ読み取り可能な記憶媒体
JP2009230557A (ja) オブジェクト検出装置、オブジェクト検出方法、オブジェクト検出プログラムおよび印刷装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120118

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: 20120327

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: 20120409

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees