オブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体
【課題】オブジェクト検出処理における検出時間を短縮する。
【解決手段】画像データD1から取得した窓画像データWDを90°おきに回転させ、回転させた各窓画像データに対し複数の判定器J1〜Jnで判定を行い、判定器J1〜Jnの全てで正判定した場合に窓画像データWDにオブジェクトありと判断するにあたり、回転させた各窓画像データに対しまとめて判定処理を行う関数と出力値とが対応付けられた関数テーブルを備えさせ、画像データD1から取得される窓画像データの回転角度組合せに対し、前記判定器の1つで判定する関数を前記関数テーブルを参照して設定し、組合せに含まれる各回転角度の窓画像データWDに対して関数で正否判定を行い、該正否判定で正判定された回転角度の組合せに対し次の判定器で判定を実行するための関数を前記関数テーブルを参照して設定する。
【解決手段】画像データD1から取得した窓画像データWDを90°おきに回転させ、回転させた各窓画像データに対し複数の判定器J1〜Jnで判定を行い、判定器J1〜Jnの全てで正判定した場合に窓画像データWDにオブジェクトありと判断するにあたり、回転させた各窓画像データに対しまとめて判定処理を行う関数と出力値とが対応付けられた関数テーブルを備えさせ、画像データD1から取得される窓画像データの回転角度組合せに対し、前記判定器の1つで判定する関数を前記関数テーブルを参照して設定し、組合せに含まれる各回転角度の窓画像データWDに対して関数で正否判定を行い、該正否判定で正判定された回転角度の組合せに対し次の判定器で判定を実行するための関数を前記関数テーブルを参照して設定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体に関し、特に、対象画像から所定オブジェクト画像を検出するオブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体に関する。
【背景技術】
【0002】
デジタルカメラの普及と家庭用プリンタの印刷品質向上に伴い、家庭でデジタル画像を印刷する機会が増えている。特に家庭で印刷されるデジタル画像は、デジタルカメラで撮影されたデジタル写真が多い。デジタル写真は光学的に取得されたデータであるため、そのまま印刷すると、実際に目で見た映像と違うと感じるユーザが多いことが知られている。そこで、印刷前に写真データに画質調整を行い、ユーザの意図した印刷結果を得られるような画像データへの変換が行われている。無論、プリンタのみならず、デジタル画像を表示する機器としてのデジタルカメラやフォトビューワ等であっても、画像表示の際に画像データに対して画質調整を行い、表示結果がユーザにとって好ましい表示となるような画像データへの変換が行われることがある。
【0003】
これら画像データの変換を適切に実行するためには、デジタル画像を解析し、デジタル画像の種類(人物写真、風景写真、ドキュメント等)判別を行ったり、デジタル画像に含まれるオブジェクト(人物の顔、山、海、建物、車両等)の位置を特定したりする必要がある。特許文献1には、画質調整の種類や画質調整適用部位の選択に利用して好適な、顔検出処理について記載されている。
【特許文献1】特開2007−48108号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
近年では、コンピュータを介さずに画像データをメモリカードやUSBメモリなどから直接プリンタが取得し、取得した画像データの印刷を行うダイレクトプリンタが増えつつある。コンピュータ経由で画像入力されるプリンタであれば、コンピュータで画質調整済みの画像データを入力すればよいが、ダイレクトプリンタでは、自機内で前述の画像種類判別処理やオブジェクト位置特定処理を行って適切な画質調整を選択しなければならない。しかしながら、汎用的なコンピュータに比べて家庭用プリンタの処理能力は低く、処理を効率化が望まれていた。このような実状は、デジタル写真を扱うデジタルカメラやフォトビューワ等でも同様である。
【0005】
本発明は、前記課題に鑑みてなされたもので、オブジェクト検出処理における検出時間を短縮可能なオブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体の提供を目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のオブジェクト検出方法は、対象画像からオブジェクトを検出するオブジェクト検出方法であって、取得工程と、設定工程と、判定工程と、指示工程とを備える構成としてある。
該構成においては、前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、まず前記設定工程において、前記対象画像から前記取得工程において取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する。判定ユニットとは、複数の画像に対し個々に判定を行うのではなく、複数の画像に対し1つの判定をまとめて実行するユニットであり、例えば前記複数の解析対象画像を順次取得して各解析対象画像に対して順次判定を実行し、各解析対象画像に前記所定オブジェクト画像が含まれるか否かの判定を連続的に実行したり、前記複数の解析対象画像をまとめて取得してから、各解析対象画像に前記所定オブジェクト画像が含まれるか否かの判定をまとめて実行したりするものである。
そして判定工程において判定が行われると、前記複数の解析対象画像のいずれに前記所定オブジェクト画像が含まれるか(もしくは何れの解析対象画像にも前記所定オブジェクト画像が含まれなかったか)を示す判定結果が得られる。この判定結果は前記指示工程において利用される。すなわち該判定結果に基づいて、前記判定工程において前記所定オブジェクト画像が存在すると判定された解析対象画像の組合せを選択し、該選択された組合せに対して前記設定工程において未実行(判定ユニットとして未設定)の判定を実行するための判定ユニットの設定を前記設定工程に指示する。前記指示工程において指示されると、該指示に基づいて前記設定工程が実行される。以上の工程の結果、前記判定工程において前記所定オブジェクト画像が存在しないと判定された場合は、前記解析対象画像に前記所定オブジェクト画像を検出しないことになり、前記設定工程において未実行の判定が無くなった場合に前記解析対象画像に前記所定オブジェクト画像を検出することになる。
【0007】
ところで、前記解析対象画像としては、前記対象画像から取得される画像であればいかなる画像であってもよく、例えば、前記対象画像の複数部位から取得された部分画像や、前記対象画像の所定部位を他の方向から観察した画像等が採用可能ある。後者の例では、画像を取得するにあたり、所定部位を含む範囲を指定しつつ該範囲を他の方向(例えば90°、180°、270°回転させた方向)から観察した画像を取得する必要がある。このような場合に好適な一側面として、前記複数の解析対象画像として、前記対象画像の所定位置において、所定の検出枠を複数の角度に回転させ、各角度において該検出枠が指定する範囲の前記対象画像を取得する取得工程を備える構成としてもよい。
すなわち前記解析対象画像の所定位置で所定の検出枠を回転させて該検出枠にて指定される範囲の画像を解析対象画像とすることにより、他の方向から観測した画像が取得される。ここで前記検出枠とは、前記対象画像の所定範囲を検出領域として設定するものである。前記所定オブジェクト画像が回転対称性を持たない画像であれば、前記対象画像に対して指定される検出枠の位置とサイズとが決まっている場合、前記所定位置に含まれる前記所定オブジェクト画像は、必然的に前記複数の角度の何れか1つに限定されるはずである。よって、前記判定の何れかを順次実行する前記判定工程の早い段階で、前記所定オブジェクトが含まれると判定される解析対象画像が1つに絞られる可能性が高く、効率化の観点から極めて合理的な流れで判定を実行できる。
【0008】
前記対象画像は、画像データであれば、点の集まりで表現されたビットマップデータでもよいし、所定の圧縮アルゴリズムで圧縮されたデータであってもよい。前記オブジェクトとは、対象画像に含まれる画像的特徴(顔、顔器官、マーキング等)である。前記解析対象画像とは、対象画像に基づいて作成される画像であり、対象画像の部分画像であったり、対象画像に所定の画像変換(回転、シフト、反転、画素数変換、色変換等)を行って作成された画像であったり、対象画像を他の角度から観察した画像であったりする。なお、対象画像の画像データから前記オブジェクトを検出する際は、画像データにおける変数(明度、彩度、色相等)の所定値、画像データにおける変数から算出された画像特徴量(コントラスト、勾配、標準偏差等)の所定値、変数や特徴量の所定の分布、等を画像的特徴として採用することになる。
前記判定は、大小比較や閾値判定等の2分された結果の一方に所望の結果が含まれる等の場合に、所望の結果を含む側を正判定し、含まない側を否判定とする判定である。複数の解析対象画像の組合せとは、異なる複数の解析対象画像の中から、重複した組合せを持たないように任意数を選択したものを意味する。すなわち、異なるs個の解析対象画像から異なるt個(s>t)の解析対象画像を選んだ組合せである。前記未実行の判定とは、前記複数の判定のうち、前記解析対象画像に対し前記設定工程において未実行の判定である。なお、解析対象画像に対し複数の判定を行い、該複数の判定の全てで正判定した場合に、前記解析対象画像にオブジェクトありと判断する処理のように、複数の条件の全てが成立した場合に条件成立とする処理は、例えばカスケード処理が例示される。
【0009】
本発明の選択的な一側面として、前記複数の解析対象画像の各組合せと、各組合せに対して所定の判定を実行するための判定ユニットとが対応付けられたテーブルを備え、前記設定工程においては、前記テーブルに基づいて前記判定ユニットを設定する構成としてもよい。すなわち、予め前記判定ユニットと前記組合せとを対応付けてテーブル化しておくことにより、前記設定工程における設定に要する時間を短縮可能になる。
【0010】
前述したオブジェクト検出方法は、他の方法の一環として実施されたり各工程に対応する手段を備えたオブジェクト検出装置として実現されたりする等の各種の態様を含む。また、本発明は前記オブジェクト検出装置を備えるオブジェクト検出システム、前述した方法の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これらオブジェクト検出システム、オブジェクト検出装置、オブジェクト検出プログラム、該プログラムを記録した媒体、の発明も、前述した作用、効果を奏する。むろん、請求項2,3に記載した構成も、前記システムや前記装置や前記プログラムや前記記録媒体に適用可能である。
【発明を実施するための最良の形態】
【0011】
以下、下記の順序に従って本発明の実施形態を説明する。
(1)オブジェクト検出装置の構成:
(2)画像処理の流れ:
(3)オブジェクト検出処理:
(4)変形例およびまとめ:
【0012】
(1)オブジェクト検出装置の構成
図1は、本実施形態に係るオブジェクト検出装置を具体的に実現するプリンタの構成を示している。同図において、プリンタ100は、CPU10とRAM11とROM12と汎用インターフェイス(GIF)13とメモリカードインターフェース(MIF)14と印刷部15と操作パネル16と表示部17とバス18とから構成されている。バス18はプリンタ100を構成する各構成要素10〜17を相互通信可能に接続しており、図示しないチップセット等により通信が制御されている。ROM12には、ファームウェアを含む各種プログラムを実行するためのプログラムデータ12a、が記憶されており、該プログラムデータ12aを適宜RAM11(所定量以下のデータを記憶可能な記憶媒体)に展開しつつCPU10がプログラムに従った演算を実行することにより、プリンタ100が制御される。また、ROM12には後述の関数テーブルTも記憶されている。
【0013】
GIF13は、例えばUSB規格に準じたインターフェイスであり、外部のコンピュータと接続されたり、USBメモリ13a(半導体メモリ)が接続されたりする。MIF14はメモリカード14aを挿入可能なスロットに接続されており、MIFを介してCPU10がメモリカード14aにアクセスし、ファイルの読み出しと書き込みを実行可能である。操作パネル16は例えば複数のボタンとしてプリンタ100の筐体上に設けられており、CPU10は操作パネル16に対する入力操作を示す信号を取得する。表示部17は入力されたデータ基づいて各種の情報や画像等を表示可能であり、CPU10は表示部17に表示するべき内容を示すデータを表示部17に入力する。この結果、表示部17には、各種の情報や画像等が表示される。
【0014】
印刷部15は、CMYK各色のインクが充填されたインクカートリッジ、該インクカートリッジのインクを記録媒体の記録面に向けて吐出する印刷ヘッド、該印刷ヘッドのインク吐出量をコントロールするASIC(Application Specific Integrated Circuits)、印刷ヘッドやインクカートリッジを搭載したキャリッジ機構の制御や記録媒体の送り速度の制御を行うコントロールIC、等を備えており、CPU10の制御に従って所定の画像データを記録媒体に印刷可能である。
【0015】
図2は、プリンタ100において実行されるプログラムのソフトウェア構成を示している。同図において、プリンタ100ではファームウェアと画像処理モジュールMが実行されている。画像処理モジュールMは、ファームウェアを介してメモリカード14aやUSBメモリ13aから画像データを取得したり、画像データの印刷を印刷部15に指示したりする。なお、プリンタ100は、印刷機能以外にも、コピー機能やスキャナ機能など多種の機能を備えたいわゆる複合機であってもよい。
画像処理モジュールMは、作業画像取得部M1と、検出窓設定部M2と、窓画像取得部M3と、特徴量算出部M4と、画質調整部M5と、関数設定部M6と、判定部M7と、関数設定指示部M8と、を備える。関数設定部M6は、対象画像から取得される複数の解析対象画像の所定組合せに対し、判定処理の1つを実行する関数(判定ユニット)を設定する。判定部M7は、前記組合せに含まれる各解析対象画像に対して前記関数で判定処理を行う。関数設定指示部M8は、判定部M7において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し、判定部M7において未実行の判定処理を実行するための、関数の設定を関数設定部M6に指示する。以下、画像処理モジュールMを構成する各部M1〜M8が実行する処理の詳細について説明する。
【0016】
(2)画像処理の流れ:
図3は本実施形態に係る画像処理の流れを示すフローチャートである。画像処理が開始されると、ステップS100(以下、「ステップ」の表記は省略。)において、作業画像取得部M1が画像処理の対象となる画像(対象画像)の画像データD1(m×n画素)を取得し、画像データD1をRAM11のワークエリアに記憶する。
【0017】
画像データD1は、メモリカード14aやUSBメモリ13a等、所定の記録メディアから取得される。むろん、プリンタ100がハードディスクドライブ(HDD)を有していれば、作業画像取得部M1は、当該HDDに保存されている画像データD1を取得してもよいし、GIF13を介してPCやサーバやDC等から画像データD1を取得してもよい。画像データD1は、表示部17に表示されたユーザインターフェース(UI)画面を参照してユーザが操作パネル16を操作することにより、対象画像として指定される。
【0018】
画像データD1は、複数の画素からなるビットマップデータであり、それぞれの画素は、レッド(R),グリーン(G),ブルー(G)各チャンネルの階調(例えば、0〜255の256階調)の組合せで表現されている。画像データD1は、記録メディア等に記録されている段階ではJPEG等の所定の圧縮形式で圧縮されていてもよいし、他の色空間で各画素の色が表現されていてもよい。画像データD1がRGBビットマップデータでない場合は、作業画像取得部M1は、画像データD1の展開や色空間の変換を実行してRGBビットマップデータとしての画像データD1を取得する。
【0019】
画像データD1は、RAM11のワークエリアに記憶される。ここで言うワークエリアとは、RAM12において後述のオブジェクト検出処理に係る画像データの一時保存に使用可能な記憶領域であり、プリンタ100の制御プログラムの実行に必要な記憶領域を除いた記憶領域である。なお、画像データD1は、ワークエリアに記憶される際に、取得した画像データD1から画素数を減らすなどして画像サイズを縮小してもよい。サイズ縮小は、画素数を間引いたり、所定数の画素から補間演算で新たな1画素を作成したりして行われる。また、後述のオブジェクト検出処理に必要な画像情報が輝度情報だけであれば、画像データD1はグレースケールのビットマップデータで作成されてもよい。
【0020】
S200では、検出窓設定部M2が画像データD1において、順次、検出窓Wを設定し、検出窓Wが設定されるごとに窓画像取得部M3が検出窓の窓画像データWD(対象画像の部分画像)を取得し、関数設定部M6と判定部M7と関数設定指示部M8が窓画像データWDについての複数方向画像検出処理を実行して、その検出結果を出力する。
S300では、S200の検出結果に応じて、画質調整部M5が肌色調整処理(画質調整処理)を実行し、画質調整後の画像データD1を印刷部15に出力する。すると印刷部15が印刷制御処理を実行し、プリンタ100にて画質調整後の画像データD1を印刷する。本実施形態においては、画質調整処理の一例として肌色調整処理を例に取り説明を行うが、無論、青や緑等の他の色を調整する処理でもよいし、明度やコントラストを調整する処理でもよいし、シャープネスやぼかし加工等の処理でもよく、検出するオブジェクトにあわせて画質調整を選択可能である。
【0021】
(2−1)オブジェクト検出処理:
図4はオブジェクト検出処理のフローチャートである。S110〜S160では、各種サイズの検出窓Wを対象画像内に設定して窓画像データWDを取得し、窓画像データWDからオブジェクト検出を行う。検出窓Wは対象画像の一部領域を範囲指定する仮想的な枠であり、検出窓Wで指定された範囲の縮小画像のデータを窓画像データWDとして取得して解析し、オブジェクト検出処理を行う。本実施形態においては、検出窓Wを正方形状の枠として説明を行うが、検出窓Wの形状には、円形,矩形,三角形等、任意の形状を採用可能であるし、さらには1つの閉じた範囲を指定するもののみならず、複数の閉じた範囲を組合せて指定するものであってもよい。
【0022】
図5は画像データD1を示している。図5において、画像データD1に正方形状の検出窓Wが設定されており、オブジェクト検出処理において、検出窓設定部M2が検出窓Wを画像データD1において隈無く移動させつつ、検出窓W内の画像データを窓画像データWDとして取得して窓画像データWDが所定オブジェクト画像を含むか否かの判定を行う。なお、画像データD1の長手方向をx軸とし、短手方向をy軸と表すものとし、x軸とy軸の原点は画像データD1の左上隅位置とする。所定サイズの検出窓Wが画像データD1内を隈無く走査すると、検出窓Wのサイズを順次変更して画像データD1内を隈無く走査させる。本実施形態においては、以上のように検出窓Wをシフトさせるために下記カウンタnS,nx,nyを用いる。
【0023】
S110では、各カウンタnS,nx,nyをリセットする。nSはサイズカウンタであり、検出窓WのサイズパラメータSを順にシフトさせるための整数値である。nxはx方向カウンタであり、検出窓Wの中心位置Pをx軸方向にシフトさせるための整数値である。nyはy方向カウンタであり、検出窓Wの中心位置Pをy軸方向にシフトさせるための整数値である。これらのカウンタはリセットにより例えば0に初期化される。
【0024】
図6は、カウンタnsと検出窓WのサイズSとの関係を示している。同図に示すように、サイズカウンタnSの増加とともに、検出窓WのサイズS(縦と横の長さ)が徐々に減少する。本実施例では、サイズカウンタnSとサイズSが線形的な関係を有し、カウンタnSが1〜15の間で1増加する毎に、検出窓WのサイズS(縦および横の長さ)が所定画素数ずつ小さくなるようにしている。また、カウンタnSが1のときに検出窓WのサイズSが最大となり、検出窓WのサイズSは画像データD1の短手の長さn画素よりわずかに短い画素数(例えばQVGA(320×240画素)であれば、n=240なので200画素等)となる。また、カウンタnSが15のときに検出窓Sのサイズが最小となり、検出窓WのサイズSは所定オブジェクト画像を検出可能な最小画素数(例えば20画素)となる。なお、ここで示したカウンタnSと検出窓WのサイズSの関係は一例であり、これらが非線形の関係を有していたり、傾きや切片などを変更したりしてもよい。
【0025】
S130では、検出窓設定部M2が対象画像に中心位置Pを中心としてサイズSの検出窓Wを設定する。
S132では、窓画像取得部M3が、検出窓W内の画像データを窓画像データWDとして取得する。ここで、検出窓Wの中心位置Pのx,y座標をは、x方向カウンタnxとy方向カウンタnyを用いて、例えば下記の(1)式によって算出する。
【数1】
上記(1)式において、dx,dyは検出窓Wの中心位置Pの各方向への単位移動距離(画素数)を示す一定の移動間隔を表しており、移動間隔dx,dyと方向カウンタnx,nyをそれぞれ乗算することにより、検出窓Wの中心位置Pのx,y座標が算出される。移動間隔dx,dyは検出窓Wの縦および横の長さを示すサイズSに基づいて下記(2)式で算出される。
【数2】
上記の(2)式によって移動間隔dy<1となる場合は、dy=1とする。なお、x方向カウンタnxが取り得る範囲は1〜[画像データD1のx方向画素数m]/dx(整数部分)とし、y方向カウンタnyは1〜[画像データD1のy方向画素数n]/dy(整数部分)とする。
【0026】
S135では、窓画像データWDに対し複数方向画像検出処理を行う。この複数方向画像検出処理については後述する。
S140では、検出窓Wが画像データD1の右端に到達したか否かを判断する。より具体的には、nx=[画像データD1のx方向画素数m]/dx(整数部分)であるか否かを判定する。すなわち、現在の検出窓WのサイズSおよびy方向の位置において、すべてのx方向の位置について検出窓Wの設定が完了したか否かを判定する。x方向カウンタnx<[画像データD1のx方向画素数m]/dx(整数部分)である場合には、S125に戻り、x方向カウンタnxに1を加算する。これにより、次回はx方向の移動間隔pxだけ右側に進んだ中心位置Pに検出窓Wが設定される。
【0027】
一方、x方向カウンタnx=[画像データD1のx方向画素数m]/dx(整数部分)である場合にはS145に進んでx方向カウンタnxを0にリセットし、S150においてy方向カウンタny=[画像データD1のy方向画素数n]/dy(整数部分)であるか否かを判定する。すなわち、現在の検出窓WのサイズSにおいて、すべての中心位置Pについて検出窓Wの設定が完了したか否かを判定する。y方向カウンタny<[画像データD1のy方向画素数n]/dy(整数部分)である場合には、S120に戻り、y方向カウンタnyに1を加算する。これにより、次回はy方向に移動間隔pyだけ進んだ中心位置Pに検出窓Wを設定することができる。
【0028】
一方、y方向カウンタny=[画像データD1のy方向画素数n]/dy(整数部分)である場合にはS155においてy方向カウンタnyを0にリセットし、S160においてサイズカウンタns=15であるか否かを判定する。すなわち、すべてのサイズSについて検出窓Wの設定が完了したか否かを判定する。サイズカウンタns<15である場合には、S115に戻り、サイズカウンタnsに1を加算する。これにより、次回は一回り小さいサイズSの検出窓Wを設定することができる。一方、サイズカウンタns=15である場合には、すべてのパラメータ(サイズSおよび位置P)の組合せについて検出窓Wの設定が完了したとして、処理を終了させる。
【0029】
(2−2)複数方向画像検出処理:
ところで、画像データには上下反転したり、画像データの左右方向が上下であったりするなど、窓画像データWDに含まれる可能性のあるオブジェクトは、必ずしも正立しているとは限らない。傾いたオブジェクトを検出するには、画像データや窓画像データを回転させてオブジェクト検出を行ったり、窓画像データから画像特徴量を抽出するフィルタを回転させたりする必要がある。
【0030】
そこで、本実施形態においては、窓画像データWDから上下左右4方向の画像特徴量を抽出し、これらの画像特徴量に所定オブジェクトが含まれるか否かを判定する。以下、画像データD1に検出窓Wを回転させずに適用して取得した窓画像データに適用して抽出された特徴量を上特徴量CAu、検出窓Wを時計回りに90°回転させた状態で抽出された特徴量を右特徴量CAr、検出窓Wを時計回りに180°回転させた状態で抽出された特徴量を下特徴量CAd、検出窓Wをを時計回りに270°回転させた状態で抽出された特徴量を左特徴量CAlとする。
【0031】
また、本実施形態のオブジェクト検出処理は、複数の判定器を用いて行われる。各判定器J1,J2,・・・,Jnはそれぞれ異なる種類(例えばフィルタが異なる)の特徴量CA1,CA2,・・・,CAmを入力値としており、それぞれ正または否の判定を出力する。各判定器J1,J2,・・・,Jnの判定アルゴリズムは、それぞれ特徴量CA1,CA2,・・・,CAmの大小比較や閾値判定等であり、各判定器で異なる判定アルゴリズムが採用されている。これら判定器は、全てが正を出力した場合のみオブジェクトが窓画像データに存在することを意味し、いずれかの判定器において否の出力がなされると、オブジェクト画像が存在しない旨の判定を出力する。
【0032】
図7は、判定器J1,J2,・・・,Jnを用いた判定の判定特性を示している。同図においては、各判定器J1,J2,・・・,Jnにおいて使用される特徴量CA1,CA2,・・・,CAmの軸で定義される特徴量空間を示しており、最終的にオブジェクト画像が存在する(正)と判定される窓画像データWDから得られる特徴量CA1,CA2,・・・,CAmの組合せで表される特徴量空間内の座標をプロットしている。オブジェクト画像が存在すると判定される窓画像データWDは一定の特徴を有しているため、特徴量空間における一定の領域に分布が見られると考えることができる。各判定器J1,J2,・・・,Jnは、このような特徴量空間において境界平面を生成し、当該境界平面で区切られた空間のうち、前記分布が属する空間に判定対象の特徴量CA1,CA2,・・・,CAmの座標が存在している場合には、正を出力する。従って、図8のように各判定器J1,J2,・・・,Jnをカスケード状に接続することにより、徐々に正と出力される空間を絞り込んでいくことができる。複数の境界平面によれば、複雑な形状の前記分布についても精度よく判定を行うことができる。
【0033】
一般には、これらの判定器は複数の判定器J1,J2,…,Jnを複数段カスケード状に接続して用いる。例えば、各判定器は前の段の判定器の正の出力に接続されており、前の段の判定器の出力が正であった場合のみ次の段の判定器が判定を行う。カスケード状に接続した判定器で、前記上下左右の特徴量CAu,CAd,CAl,CArを順に判定する複数方向判定処理の場合、図9のような処理の流れになる。しかしながら、図9に示す処理では、各判定器を順に適用する処理に挟まれて特徴量の検出方向の数だけ処理が分岐し、処理時間をロスするため非効率的な処理になる。そこで、本実施形態においては図10の流れで処理を行う。
【0034】
図10は、本実施形態における複数方向画像検出処理のフローチャートである。複数方向画像検出処理は、S132にて取得された窓画像データXDに対して実行される。処理が開始されると、特徴量算出部M4が窓画像データWDから複数の特徴量を、各方向について算出する。特徴量は、窓画像データXDに対して各種のフィルタを適用し、当該フィルタ内の輝度平均やエッジ量やコントラスト等の状態を示す特徴量(平均値や最大値や最小値や標準偏差等)を算出することにより得られる。なお、窓画像データWDは、検出窓WのサイズSによって異なる大きさとなるが、S200において予め一定の大きさに解像度変換される。
【0035】
図11は、窓画像データWDから特徴量を算出する様子を示している。同図において、窓画像データWDに対して多数のフィルタFTが用意されており、各フィルタFTを順次窓画像データWDに適用し、各フィルタFT内の画像について例えば12個の上特徴量CAu1〜CAu12を順次算出する。さらに検出窓Wを90°ずつ順次回転させて、右特徴量CAr1〜Car12と、下特徴量CAd1〜CAd12と、左特徴量CAd1〜CAd12と、をそれぞれ算出する。
【0036】
S201では、関数設定指示部M8が、出力値としてD1を設定し、RAM12に一時的に記憶する。この出力値は、前述した複数の判定器で特徴量を判定するにあたり、前段の判定器において上下左右の特徴量のうち、いずれの特徴量が正判定されたかを示す値である。本実施形態においては4方向の特徴量を判定するので、出力値は上下左右を任意に組合せたD1〜D15の15種類(正判定された方向が無い場合の出力値を設けるのであればD16までの16種類)となる。なお、4方向以外の例えばk方向の特徴量を判定するのであれば、出力値は(2k−1)種類となり、後述の関数も各判定器に(2k−1)個ずつ用意されることになる。
【0037】
S202では、関数設定部M6が、使用する判定器を設定する。S202で設定される判定器は、本複数方向画像検出処理において未設定の判定器であり、S225で条件不成立する度に、J1,J2,・・・,Jnが順に設定される。
【0038】
S205では、関数設定部M6が、関数テーブルTを参照して、出力値に対応する関数を取得する。関数テーブルには、予め複数方向画像検出処理の関数(以下、関数と略す。)が、出力値に対応付けられて登録されており、RAM12に記憶された出力値に合わせて適切な関数が取得される。例えばRAM12に記憶されている出力値がD5、設定されている判定器がJ7であれば、関数F7_5が取得される。
【0039】
図12は関数テーブルの一例である。各関数においては、上下左右15通りのいずれかの組合せに対し、組合せの方向の特徴量を判定する処理が関数化されている。同図において、関数テーブルTの右には、各関数が何れの方向の判定に対応しているかを示しており、各関数は○の記載がある方向の判定を実行する。例えば判定器J1については、上・下・左・右全ての特徴量を判定する処理を関数化した関数F1_1、上・下・左の特徴量を判定する処理を関数化したF1_2、上・下・右の特徴量を判定する処理を関数化したF1_3、・・・・F1_n、が準備される。これらの関数に各方向の特徴量が入力されると、判定した各方向の特徴量に対する正否判定が出力される。この正否判定においては、入力された各方向の特徴量に対し閾値判定を行い、入力された特徴量が該閾値の上下いずれか所定の側にあれば正判定し、所定の側でない側にあれば否判定とする。例えば、図12においては、F1_3に上・下・右の特徴量が入力されると、上・下・右の特徴量に対する判定結果が出力される。本実施形態における判定結果は、出力値D1〜D16の何れかで出力される。
【0040】
関数テーブルにおいては、関数の判定する方向と、出力値に対応付けられた方向の組合せと、が一致するように対応付けられている。例えば、関数F1_1は、上・下・左・右全ての特徴量に対して正判定したことを示す出力値D1に対応付けられており、関数F1_2は、上・下・左の特徴量に対して正判定したことを示す出力値D2に対応付けられている。なお、本実施形態においては、前記D1〜D15の出力値に加えて、正判定された方向が無い場合の出力値としてD16を設けてある。
以上の関数テーブルTを参照して、S205では、S200で設定された出力値や後述のS215で設定された出力値に対応する関数を取得する。
【0041】
S210では、判定部M7が、S205で取得された関数で判定処理を行う。そしてS215では、関数設定指示部M8が、該判定結果に基づいた出力値を設定し、RAM12に一時的に記憶する。すなわちRAM12には、直前の判定器で正判定された方向を示す値が格納される。
S220では、S210の判定処理において、一方向以上で正判定されたか否かを、例えば出力値に基づいて関数設定指示部M8が判断する。すなわち、出力値がD1〜D15であれば、一方向以上で正判定されているので、S225に進み、出力値がD16であれば、検出失敗として本処理を終了し、オブジェクト検出処理にリターンする。
【0042】
S225では、関数設定指示部M8が、全ての判定器で判定を行ったか否かを判断する。すなわち本処理が開始されて以降、判定器J1,J2,…,Jnの中でS202で未設定の判定器があるか否かを判断する。未設定の判定器があれば、S202に戻り、未設定の判定器を設定して処理を続ける。全ての判定器を設定済みであればS230に進み、そのときの検出窓WのサイズSおよび位置Pおよび前記所定オブジェクト画像が含まれると判定された検出窓Wの回転角TをRAM12に記憶させて本処理を終了し、オブジェクト検出処理にリターンする。
【0043】
ここで、図13を参照して、対象画像に所定オブジェクトが存在する場合と対象画像から所定オブジェクトを検出できなかった場合の処理の流れの一例を説明する。図13は、対象画像に所定オブジェクトが存在する場合と対象画像から所定オブジェクトを検出できなかった場合における、前述した各判定器の判定処理において選択される関数と、該関数によって判定される方向、そして判定の結果設定される出力値、の関係を、示した図である。図13において、「検出」の欄に○が記載されている方向が実行された関数で判定する方向であり、「結果」の欄に○が記載されている方向が、該関数により所定オブジェクトが存在すると判定された方向である。この結果にあわせて、出力値が決定される。
【0044】
図13の上の表は、対象画像に所定オブジェクトが存在する場合の例である。複数方向画像検出処理が開始されると、S200において初期値として出力値D1が設定されるので、判定器J1の判定は、関数F1_1で行われる。同図において、関数F1_1は、上・下・左・右方向の特徴量を判定し、上・左・右方向の特徴量で正判定している。従って、出力値はD4となり、次の判定器J2の判定は、関数F2_4で行われる。関数F2_4は上・左・右方向の特徴量と判定し、上方向の特徴量で正判定している。従って、出力値はD12となり、次の判定器J3の判定は、関数F3_12で行われる。以降の判定では上方向の特徴量を判定する関数が選択され、出力値は全てD12となる。
【0045】
図13の下の表は、対象画像から所定オブジェクトを検出できなかった場合の例である。複数方向画像検出処理が開始されると、S200において初期値として出力値D1が設定されるので、判定器J1の判定は、関数F1_1で行われる。同図において、関数F1_1は、上・下・左・右方向の特徴量を判定し、上・左・右方向の特徴量で正判定している。従って、出力値はD4となり、次の判定器J2の判定は、関数F2_4で行われる。関数F2_4は上・左・右方向の特徴量と判定し、上方向の特徴量で正判定している。従って、出力値はD12となり、次の判定器J3の判定は、関数F3_12で行われる。そして関数F3_12が上方向の特徴量を判定し、上方向の特徴量で正判定し、出力値D12が設定される。そして関数F4_12で上方向の特徴量を判定すると、正判定の方向が無くなり出力値D16が設定され、処理が終了する。
【0046】
以上のように、S200〜S225のループ処理が進むにつれて、次の判定処理で判定する特徴量の方向が絞られていく。さらに、複数方向の判定がある場合でも、1つの関数で全ての方向の判定を終了できるので、検出方向の分岐が発生せず処理時間が短縮される。
【0047】
(2−3)肌色調整および印刷処理
図14は、画質調整部M5が実行する肌色調整処理(画質調整処理)の流れを示している。なお本実施形態においては、人物の顔に対する肌色調整処理を例に取り説明を行うが、無論、顔以外の腕や足や体であってもよいし、画質調整処理も肌色調整処理のみならず検出対象のオブジェクト種類にあわせて適宜選択可能である。上述したオブジェクト検出処理のS320において、すべてのサイズSについて検出窓Wの設定が完了したか否かを判定されると、オブジェクト検出処理が終了する。S510においては、オブジェクト検出処理の終了を検出し、調整対象の画像データD1を取得する。ここで取得される画像データD1は、オブジェクト検出処理の対象となった画像データD1である。S520においては、顔画像(オブジェクト画像)が存在すると判定された検出窓WのサイズSおよび位置Pおよび回転角TをRAM12から読み出す。S530においては、顔画像が存在すると判定された検出窓Wに対応する領域を画像データD1において特定する。検出窓WのサイズSおよび位置PがRAM12から取得されているため、これを画像データD1の画像サイズに換算することにより、検出窓Wに対応する領域を特定することができる。
【0048】
S540においては、S540にて特定した領域に含まれる肌色画素の色を調整する処理を実行する。ここでは、まずS540にて特定した領域に含まれる肌色画素を、各画素の色彩値(例えばRGB値やHSV値)に基づいて特定し、当該色彩値を肌色として好ましいものに補正する。具体的には、予め肌色として好ましい色彩値がHDD14に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくように補正を行う。検出窓Wによって顔画像が存在する領域が予め特定されているため、顔画像の肌色画素についてのみ補正を行うことができる。なお、顔画像が存在すると判定された検出窓Wが複数検出された場合には、そのそれぞれについて肌色調整を実行する。以上のようにして、肌色調整が完了すると、S550にて調整後の画像データD1を印刷部15に出力する。すると、印刷部15は、画像データD1に対して解像度変換処理と色変換処理とハーフトーン処理とラスタライズ処理を順次実行させ、画質調整後の画像データD1に対応する画像の印刷を実行する。
【0049】
(4)まとめ:
以上説明したように、本実施形態においては、画像データD1から取得した窓画像データWDを90°おきに回転させ、回転させた各窓画像データに対し複数の判定器J1〜Jnで判定を行い、判定器J1〜Jnの全てで正判定した場合に窓画像データWDにオブジェクトありと判断するにあたり、複数角度に回転させた検出窓で取得された各窓画像データに対しまとめて判定処理を行う関数と出力値とが対応付けられた関数テーブルを備えさせ、前記窓画像データを取得するにあたって使用された検出窓の回転角度組合せに対し、前記判定器の1つで判定する関数を前記関数テーブルを参照して設定し、組合せに含まれる各回転角度の窓画像データWDに対して関数で前記所定オブジェクト画像が含まれるか否かの判定を行い、該判定で前記所定オブジェクト画像が含まれると判定された回転角度の組合せに対し次の判定器で判定を実行するための関数を前記関数テーブルを参照して設定する。よって、オブジェクト検出処理における検出時間が短縮される。
【0050】
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、等も含まれる。
【図面の簡単な説明】
【0051】
【図1】オブジェクト検出装置のハードウェア構成ブロック図である。
【図2】オブジェクト検出装置のソフトウェア構成ブロック図である。
【図3】画像処理の流れを示すフローチャートである。
【図4】オブジェクト検出処理のフローチャートである。
【図5】画像データD1を示す図である。
【図6】カウンタnsと検出窓WのサイズSとの関係を示す図である。
【図7】複数の判定器を用いた判定の判定特性である。
【図8】カスケード状に接続した判定器の概念図である。
【図9】カスケード状に接続した判定器で行うフローチャートである。
【図10】複数方向画像検出処理のフローチャートである。
【図11】窓画像データWDから特徴量を算出する様子を示す図である。
【図12】関数テーブルの一例である。
【図13】検出成功と検出失敗の処理の流れを説明する。
【図14】肌色調整処理の流れを示している。
【符号の説明】
【0052】
10…CPU、11…RAM、12a…プログラムデータ、13…汎用インターフェイス(GIF)、13a…USBメモリ、14…メモリカードインターフェース(MIF)、14a…メモリカード、15…印刷部、16…操作パネル、17…表示部、18…バス、100…プリンタ、M…画像処理モジュール、M1…作業画像取得部、M2…検出窓設定部、M3…窓画像取得部、M4…特徴量算出部、M5…画質調整部、M6…関数設定部、M7…判定部、M8…関数設定指示部
【技術分野】
【0001】
本発明は、オブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体に関し、特に、対象画像から所定オブジェクト画像を検出するオブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体に関する。
【背景技術】
【0002】
デジタルカメラの普及と家庭用プリンタの印刷品質向上に伴い、家庭でデジタル画像を印刷する機会が増えている。特に家庭で印刷されるデジタル画像は、デジタルカメラで撮影されたデジタル写真が多い。デジタル写真は光学的に取得されたデータであるため、そのまま印刷すると、実際に目で見た映像と違うと感じるユーザが多いことが知られている。そこで、印刷前に写真データに画質調整を行い、ユーザの意図した印刷結果を得られるような画像データへの変換が行われている。無論、プリンタのみならず、デジタル画像を表示する機器としてのデジタルカメラやフォトビューワ等であっても、画像表示の際に画像データに対して画質調整を行い、表示結果がユーザにとって好ましい表示となるような画像データへの変換が行われることがある。
【0003】
これら画像データの変換を適切に実行するためには、デジタル画像を解析し、デジタル画像の種類(人物写真、風景写真、ドキュメント等)判別を行ったり、デジタル画像に含まれるオブジェクト(人物の顔、山、海、建物、車両等)の位置を特定したりする必要がある。特許文献1には、画質調整の種類や画質調整適用部位の選択に利用して好適な、顔検出処理について記載されている。
【特許文献1】特開2007−48108号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
近年では、コンピュータを介さずに画像データをメモリカードやUSBメモリなどから直接プリンタが取得し、取得した画像データの印刷を行うダイレクトプリンタが増えつつある。コンピュータ経由で画像入力されるプリンタであれば、コンピュータで画質調整済みの画像データを入力すればよいが、ダイレクトプリンタでは、自機内で前述の画像種類判別処理やオブジェクト位置特定処理を行って適切な画質調整を選択しなければならない。しかしながら、汎用的なコンピュータに比べて家庭用プリンタの処理能力は低く、処理を効率化が望まれていた。このような実状は、デジタル写真を扱うデジタルカメラやフォトビューワ等でも同様である。
【0005】
本発明は、前記課題に鑑みてなされたもので、オブジェクト検出処理における検出時間を短縮可能なオブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体の提供を目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のオブジェクト検出方法は、対象画像からオブジェクトを検出するオブジェクト検出方法であって、取得工程と、設定工程と、判定工程と、指示工程とを備える構成としてある。
該構成においては、前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、まず前記設定工程において、前記対象画像から前記取得工程において取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する。判定ユニットとは、複数の画像に対し個々に判定を行うのではなく、複数の画像に対し1つの判定をまとめて実行するユニットであり、例えば前記複数の解析対象画像を順次取得して各解析対象画像に対して順次判定を実行し、各解析対象画像に前記所定オブジェクト画像が含まれるか否かの判定を連続的に実行したり、前記複数の解析対象画像をまとめて取得してから、各解析対象画像に前記所定オブジェクト画像が含まれるか否かの判定をまとめて実行したりするものである。
そして判定工程において判定が行われると、前記複数の解析対象画像のいずれに前記所定オブジェクト画像が含まれるか(もしくは何れの解析対象画像にも前記所定オブジェクト画像が含まれなかったか)を示す判定結果が得られる。この判定結果は前記指示工程において利用される。すなわち該判定結果に基づいて、前記判定工程において前記所定オブジェクト画像が存在すると判定された解析対象画像の組合せを選択し、該選択された組合せに対して前記設定工程において未実行(判定ユニットとして未設定)の判定を実行するための判定ユニットの設定を前記設定工程に指示する。前記指示工程において指示されると、該指示に基づいて前記設定工程が実行される。以上の工程の結果、前記判定工程において前記所定オブジェクト画像が存在しないと判定された場合は、前記解析対象画像に前記所定オブジェクト画像を検出しないことになり、前記設定工程において未実行の判定が無くなった場合に前記解析対象画像に前記所定オブジェクト画像を検出することになる。
【0007】
ところで、前記解析対象画像としては、前記対象画像から取得される画像であればいかなる画像であってもよく、例えば、前記対象画像の複数部位から取得された部分画像や、前記対象画像の所定部位を他の方向から観察した画像等が採用可能ある。後者の例では、画像を取得するにあたり、所定部位を含む範囲を指定しつつ該範囲を他の方向(例えば90°、180°、270°回転させた方向)から観察した画像を取得する必要がある。このような場合に好適な一側面として、前記複数の解析対象画像として、前記対象画像の所定位置において、所定の検出枠を複数の角度に回転させ、各角度において該検出枠が指定する範囲の前記対象画像を取得する取得工程を備える構成としてもよい。
すなわち前記解析対象画像の所定位置で所定の検出枠を回転させて該検出枠にて指定される範囲の画像を解析対象画像とすることにより、他の方向から観測した画像が取得される。ここで前記検出枠とは、前記対象画像の所定範囲を検出領域として設定するものである。前記所定オブジェクト画像が回転対称性を持たない画像であれば、前記対象画像に対して指定される検出枠の位置とサイズとが決まっている場合、前記所定位置に含まれる前記所定オブジェクト画像は、必然的に前記複数の角度の何れか1つに限定されるはずである。よって、前記判定の何れかを順次実行する前記判定工程の早い段階で、前記所定オブジェクトが含まれると判定される解析対象画像が1つに絞られる可能性が高く、効率化の観点から極めて合理的な流れで判定を実行できる。
【0008】
前記対象画像は、画像データであれば、点の集まりで表現されたビットマップデータでもよいし、所定の圧縮アルゴリズムで圧縮されたデータであってもよい。前記オブジェクトとは、対象画像に含まれる画像的特徴(顔、顔器官、マーキング等)である。前記解析対象画像とは、対象画像に基づいて作成される画像であり、対象画像の部分画像であったり、対象画像に所定の画像変換(回転、シフト、反転、画素数変換、色変換等)を行って作成された画像であったり、対象画像を他の角度から観察した画像であったりする。なお、対象画像の画像データから前記オブジェクトを検出する際は、画像データにおける変数(明度、彩度、色相等)の所定値、画像データにおける変数から算出された画像特徴量(コントラスト、勾配、標準偏差等)の所定値、変数や特徴量の所定の分布、等を画像的特徴として採用することになる。
前記判定は、大小比較や閾値判定等の2分された結果の一方に所望の結果が含まれる等の場合に、所望の結果を含む側を正判定し、含まない側を否判定とする判定である。複数の解析対象画像の組合せとは、異なる複数の解析対象画像の中から、重複した組合せを持たないように任意数を選択したものを意味する。すなわち、異なるs個の解析対象画像から異なるt個(s>t)の解析対象画像を選んだ組合せである。前記未実行の判定とは、前記複数の判定のうち、前記解析対象画像に対し前記設定工程において未実行の判定である。なお、解析対象画像に対し複数の判定を行い、該複数の判定の全てで正判定した場合に、前記解析対象画像にオブジェクトありと判断する処理のように、複数の条件の全てが成立した場合に条件成立とする処理は、例えばカスケード処理が例示される。
【0009】
本発明の選択的な一側面として、前記複数の解析対象画像の各組合せと、各組合せに対して所定の判定を実行するための判定ユニットとが対応付けられたテーブルを備え、前記設定工程においては、前記テーブルに基づいて前記判定ユニットを設定する構成としてもよい。すなわち、予め前記判定ユニットと前記組合せとを対応付けてテーブル化しておくことにより、前記設定工程における設定に要する時間を短縮可能になる。
【0010】
前述したオブジェクト検出方法は、他の方法の一環として実施されたり各工程に対応する手段を備えたオブジェクト検出装置として実現されたりする等の各種の態様を含む。また、本発明は前記オブジェクト検出装置を備えるオブジェクト検出システム、前述した方法の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これらオブジェクト検出システム、オブジェクト検出装置、オブジェクト検出プログラム、該プログラムを記録した媒体、の発明も、前述した作用、効果を奏する。むろん、請求項2,3に記載した構成も、前記システムや前記装置や前記プログラムや前記記録媒体に適用可能である。
【発明を実施するための最良の形態】
【0011】
以下、下記の順序に従って本発明の実施形態を説明する。
(1)オブジェクト検出装置の構成:
(2)画像処理の流れ:
(3)オブジェクト検出処理:
(4)変形例およびまとめ:
【0012】
(1)オブジェクト検出装置の構成
図1は、本実施形態に係るオブジェクト検出装置を具体的に実現するプリンタの構成を示している。同図において、プリンタ100は、CPU10とRAM11とROM12と汎用インターフェイス(GIF)13とメモリカードインターフェース(MIF)14と印刷部15と操作パネル16と表示部17とバス18とから構成されている。バス18はプリンタ100を構成する各構成要素10〜17を相互通信可能に接続しており、図示しないチップセット等により通信が制御されている。ROM12には、ファームウェアを含む各種プログラムを実行するためのプログラムデータ12a、が記憶されており、該プログラムデータ12aを適宜RAM11(所定量以下のデータを記憶可能な記憶媒体)に展開しつつCPU10がプログラムに従った演算を実行することにより、プリンタ100が制御される。また、ROM12には後述の関数テーブルTも記憶されている。
【0013】
GIF13は、例えばUSB規格に準じたインターフェイスであり、外部のコンピュータと接続されたり、USBメモリ13a(半導体メモリ)が接続されたりする。MIF14はメモリカード14aを挿入可能なスロットに接続されており、MIFを介してCPU10がメモリカード14aにアクセスし、ファイルの読み出しと書き込みを実行可能である。操作パネル16は例えば複数のボタンとしてプリンタ100の筐体上に設けられており、CPU10は操作パネル16に対する入力操作を示す信号を取得する。表示部17は入力されたデータ基づいて各種の情報や画像等を表示可能であり、CPU10は表示部17に表示するべき内容を示すデータを表示部17に入力する。この結果、表示部17には、各種の情報や画像等が表示される。
【0014】
印刷部15は、CMYK各色のインクが充填されたインクカートリッジ、該インクカートリッジのインクを記録媒体の記録面に向けて吐出する印刷ヘッド、該印刷ヘッドのインク吐出量をコントロールするASIC(Application Specific Integrated Circuits)、印刷ヘッドやインクカートリッジを搭載したキャリッジ機構の制御や記録媒体の送り速度の制御を行うコントロールIC、等を備えており、CPU10の制御に従って所定の画像データを記録媒体に印刷可能である。
【0015】
図2は、プリンタ100において実行されるプログラムのソフトウェア構成を示している。同図において、プリンタ100ではファームウェアと画像処理モジュールMが実行されている。画像処理モジュールMは、ファームウェアを介してメモリカード14aやUSBメモリ13aから画像データを取得したり、画像データの印刷を印刷部15に指示したりする。なお、プリンタ100は、印刷機能以外にも、コピー機能やスキャナ機能など多種の機能を備えたいわゆる複合機であってもよい。
画像処理モジュールMは、作業画像取得部M1と、検出窓設定部M2と、窓画像取得部M3と、特徴量算出部M4と、画質調整部M5と、関数設定部M6と、判定部M7と、関数設定指示部M8と、を備える。関数設定部M6は、対象画像から取得される複数の解析対象画像の所定組合せに対し、判定処理の1つを実行する関数(判定ユニット)を設定する。判定部M7は、前記組合せに含まれる各解析対象画像に対して前記関数で判定処理を行う。関数設定指示部M8は、判定部M7において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し、判定部M7において未実行の判定処理を実行するための、関数の設定を関数設定部M6に指示する。以下、画像処理モジュールMを構成する各部M1〜M8が実行する処理の詳細について説明する。
【0016】
(2)画像処理の流れ:
図3は本実施形態に係る画像処理の流れを示すフローチャートである。画像処理が開始されると、ステップS100(以下、「ステップ」の表記は省略。)において、作業画像取得部M1が画像処理の対象となる画像(対象画像)の画像データD1(m×n画素)を取得し、画像データD1をRAM11のワークエリアに記憶する。
【0017】
画像データD1は、メモリカード14aやUSBメモリ13a等、所定の記録メディアから取得される。むろん、プリンタ100がハードディスクドライブ(HDD)を有していれば、作業画像取得部M1は、当該HDDに保存されている画像データD1を取得してもよいし、GIF13を介してPCやサーバやDC等から画像データD1を取得してもよい。画像データD1は、表示部17に表示されたユーザインターフェース(UI)画面を参照してユーザが操作パネル16を操作することにより、対象画像として指定される。
【0018】
画像データD1は、複数の画素からなるビットマップデータであり、それぞれの画素は、レッド(R),グリーン(G),ブルー(G)各チャンネルの階調(例えば、0〜255の256階調)の組合せで表現されている。画像データD1は、記録メディア等に記録されている段階ではJPEG等の所定の圧縮形式で圧縮されていてもよいし、他の色空間で各画素の色が表現されていてもよい。画像データD1がRGBビットマップデータでない場合は、作業画像取得部M1は、画像データD1の展開や色空間の変換を実行してRGBビットマップデータとしての画像データD1を取得する。
【0019】
画像データD1は、RAM11のワークエリアに記憶される。ここで言うワークエリアとは、RAM12において後述のオブジェクト検出処理に係る画像データの一時保存に使用可能な記憶領域であり、プリンタ100の制御プログラムの実行に必要な記憶領域を除いた記憶領域である。なお、画像データD1は、ワークエリアに記憶される際に、取得した画像データD1から画素数を減らすなどして画像サイズを縮小してもよい。サイズ縮小は、画素数を間引いたり、所定数の画素から補間演算で新たな1画素を作成したりして行われる。また、後述のオブジェクト検出処理に必要な画像情報が輝度情報だけであれば、画像データD1はグレースケールのビットマップデータで作成されてもよい。
【0020】
S200では、検出窓設定部M2が画像データD1において、順次、検出窓Wを設定し、検出窓Wが設定されるごとに窓画像取得部M3が検出窓の窓画像データWD(対象画像の部分画像)を取得し、関数設定部M6と判定部M7と関数設定指示部M8が窓画像データWDについての複数方向画像検出処理を実行して、その検出結果を出力する。
S300では、S200の検出結果に応じて、画質調整部M5が肌色調整処理(画質調整処理)を実行し、画質調整後の画像データD1を印刷部15に出力する。すると印刷部15が印刷制御処理を実行し、プリンタ100にて画質調整後の画像データD1を印刷する。本実施形態においては、画質調整処理の一例として肌色調整処理を例に取り説明を行うが、無論、青や緑等の他の色を調整する処理でもよいし、明度やコントラストを調整する処理でもよいし、シャープネスやぼかし加工等の処理でもよく、検出するオブジェクトにあわせて画質調整を選択可能である。
【0021】
(2−1)オブジェクト検出処理:
図4はオブジェクト検出処理のフローチャートである。S110〜S160では、各種サイズの検出窓Wを対象画像内に設定して窓画像データWDを取得し、窓画像データWDからオブジェクト検出を行う。検出窓Wは対象画像の一部領域を範囲指定する仮想的な枠であり、検出窓Wで指定された範囲の縮小画像のデータを窓画像データWDとして取得して解析し、オブジェクト検出処理を行う。本実施形態においては、検出窓Wを正方形状の枠として説明を行うが、検出窓Wの形状には、円形,矩形,三角形等、任意の形状を採用可能であるし、さらには1つの閉じた範囲を指定するもののみならず、複数の閉じた範囲を組合せて指定するものであってもよい。
【0022】
図5は画像データD1を示している。図5において、画像データD1に正方形状の検出窓Wが設定されており、オブジェクト検出処理において、検出窓設定部M2が検出窓Wを画像データD1において隈無く移動させつつ、検出窓W内の画像データを窓画像データWDとして取得して窓画像データWDが所定オブジェクト画像を含むか否かの判定を行う。なお、画像データD1の長手方向をx軸とし、短手方向をy軸と表すものとし、x軸とy軸の原点は画像データD1の左上隅位置とする。所定サイズの検出窓Wが画像データD1内を隈無く走査すると、検出窓Wのサイズを順次変更して画像データD1内を隈無く走査させる。本実施形態においては、以上のように検出窓Wをシフトさせるために下記カウンタnS,nx,nyを用いる。
【0023】
S110では、各カウンタnS,nx,nyをリセットする。nSはサイズカウンタであり、検出窓WのサイズパラメータSを順にシフトさせるための整数値である。nxはx方向カウンタであり、検出窓Wの中心位置Pをx軸方向にシフトさせるための整数値である。nyはy方向カウンタであり、検出窓Wの中心位置Pをy軸方向にシフトさせるための整数値である。これらのカウンタはリセットにより例えば0に初期化される。
【0024】
図6は、カウンタnsと検出窓WのサイズSとの関係を示している。同図に示すように、サイズカウンタnSの増加とともに、検出窓WのサイズS(縦と横の長さ)が徐々に減少する。本実施例では、サイズカウンタnSとサイズSが線形的な関係を有し、カウンタnSが1〜15の間で1増加する毎に、検出窓WのサイズS(縦および横の長さ)が所定画素数ずつ小さくなるようにしている。また、カウンタnSが1のときに検出窓WのサイズSが最大となり、検出窓WのサイズSは画像データD1の短手の長さn画素よりわずかに短い画素数(例えばQVGA(320×240画素)であれば、n=240なので200画素等)となる。また、カウンタnSが15のときに検出窓Sのサイズが最小となり、検出窓WのサイズSは所定オブジェクト画像を検出可能な最小画素数(例えば20画素)となる。なお、ここで示したカウンタnSと検出窓WのサイズSの関係は一例であり、これらが非線形の関係を有していたり、傾きや切片などを変更したりしてもよい。
【0025】
S130では、検出窓設定部M2が対象画像に中心位置Pを中心としてサイズSの検出窓Wを設定する。
S132では、窓画像取得部M3が、検出窓W内の画像データを窓画像データWDとして取得する。ここで、検出窓Wの中心位置Pのx,y座標をは、x方向カウンタnxとy方向カウンタnyを用いて、例えば下記の(1)式によって算出する。
【数1】
上記(1)式において、dx,dyは検出窓Wの中心位置Pの各方向への単位移動距離(画素数)を示す一定の移動間隔を表しており、移動間隔dx,dyと方向カウンタnx,nyをそれぞれ乗算することにより、検出窓Wの中心位置Pのx,y座標が算出される。移動間隔dx,dyは検出窓Wの縦および横の長さを示すサイズSに基づいて下記(2)式で算出される。
【数2】
上記の(2)式によって移動間隔dy<1となる場合は、dy=1とする。なお、x方向カウンタnxが取り得る範囲は1〜[画像データD1のx方向画素数m]/dx(整数部分)とし、y方向カウンタnyは1〜[画像データD1のy方向画素数n]/dy(整数部分)とする。
【0026】
S135では、窓画像データWDに対し複数方向画像検出処理を行う。この複数方向画像検出処理については後述する。
S140では、検出窓Wが画像データD1の右端に到達したか否かを判断する。より具体的には、nx=[画像データD1のx方向画素数m]/dx(整数部分)であるか否かを判定する。すなわち、現在の検出窓WのサイズSおよびy方向の位置において、すべてのx方向の位置について検出窓Wの設定が完了したか否かを判定する。x方向カウンタnx<[画像データD1のx方向画素数m]/dx(整数部分)である場合には、S125に戻り、x方向カウンタnxに1を加算する。これにより、次回はx方向の移動間隔pxだけ右側に進んだ中心位置Pに検出窓Wが設定される。
【0027】
一方、x方向カウンタnx=[画像データD1のx方向画素数m]/dx(整数部分)である場合にはS145に進んでx方向カウンタnxを0にリセットし、S150においてy方向カウンタny=[画像データD1のy方向画素数n]/dy(整数部分)であるか否かを判定する。すなわち、現在の検出窓WのサイズSにおいて、すべての中心位置Pについて検出窓Wの設定が完了したか否かを判定する。y方向カウンタny<[画像データD1のy方向画素数n]/dy(整数部分)である場合には、S120に戻り、y方向カウンタnyに1を加算する。これにより、次回はy方向に移動間隔pyだけ進んだ中心位置Pに検出窓Wを設定することができる。
【0028】
一方、y方向カウンタny=[画像データD1のy方向画素数n]/dy(整数部分)である場合にはS155においてy方向カウンタnyを0にリセットし、S160においてサイズカウンタns=15であるか否かを判定する。すなわち、すべてのサイズSについて検出窓Wの設定が完了したか否かを判定する。サイズカウンタns<15である場合には、S115に戻り、サイズカウンタnsに1を加算する。これにより、次回は一回り小さいサイズSの検出窓Wを設定することができる。一方、サイズカウンタns=15である場合には、すべてのパラメータ(サイズSおよび位置P)の組合せについて検出窓Wの設定が完了したとして、処理を終了させる。
【0029】
(2−2)複数方向画像検出処理:
ところで、画像データには上下反転したり、画像データの左右方向が上下であったりするなど、窓画像データWDに含まれる可能性のあるオブジェクトは、必ずしも正立しているとは限らない。傾いたオブジェクトを検出するには、画像データや窓画像データを回転させてオブジェクト検出を行ったり、窓画像データから画像特徴量を抽出するフィルタを回転させたりする必要がある。
【0030】
そこで、本実施形態においては、窓画像データWDから上下左右4方向の画像特徴量を抽出し、これらの画像特徴量に所定オブジェクトが含まれるか否かを判定する。以下、画像データD1に検出窓Wを回転させずに適用して取得した窓画像データに適用して抽出された特徴量を上特徴量CAu、検出窓Wを時計回りに90°回転させた状態で抽出された特徴量を右特徴量CAr、検出窓Wを時計回りに180°回転させた状態で抽出された特徴量を下特徴量CAd、検出窓Wをを時計回りに270°回転させた状態で抽出された特徴量を左特徴量CAlとする。
【0031】
また、本実施形態のオブジェクト検出処理は、複数の判定器を用いて行われる。各判定器J1,J2,・・・,Jnはそれぞれ異なる種類(例えばフィルタが異なる)の特徴量CA1,CA2,・・・,CAmを入力値としており、それぞれ正または否の判定を出力する。各判定器J1,J2,・・・,Jnの判定アルゴリズムは、それぞれ特徴量CA1,CA2,・・・,CAmの大小比較や閾値判定等であり、各判定器で異なる判定アルゴリズムが採用されている。これら判定器は、全てが正を出力した場合のみオブジェクトが窓画像データに存在することを意味し、いずれかの判定器において否の出力がなされると、オブジェクト画像が存在しない旨の判定を出力する。
【0032】
図7は、判定器J1,J2,・・・,Jnを用いた判定の判定特性を示している。同図においては、各判定器J1,J2,・・・,Jnにおいて使用される特徴量CA1,CA2,・・・,CAmの軸で定義される特徴量空間を示しており、最終的にオブジェクト画像が存在する(正)と判定される窓画像データWDから得られる特徴量CA1,CA2,・・・,CAmの組合せで表される特徴量空間内の座標をプロットしている。オブジェクト画像が存在すると判定される窓画像データWDは一定の特徴を有しているため、特徴量空間における一定の領域に分布が見られると考えることができる。各判定器J1,J2,・・・,Jnは、このような特徴量空間において境界平面を生成し、当該境界平面で区切られた空間のうち、前記分布が属する空間に判定対象の特徴量CA1,CA2,・・・,CAmの座標が存在している場合には、正を出力する。従って、図8のように各判定器J1,J2,・・・,Jnをカスケード状に接続することにより、徐々に正と出力される空間を絞り込んでいくことができる。複数の境界平面によれば、複雑な形状の前記分布についても精度よく判定を行うことができる。
【0033】
一般には、これらの判定器は複数の判定器J1,J2,…,Jnを複数段カスケード状に接続して用いる。例えば、各判定器は前の段の判定器の正の出力に接続されており、前の段の判定器の出力が正であった場合のみ次の段の判定器が判定を行う。カスケード状に接続した判定器で、前記上下左右の特徴量CAu,CAd,CAl,CArを順に判定する複数方向判定処理の場合、図9のような処理の流れになる。しかしながら、図9に示す処理では、各判定器を順に適用する処理に挟まれて特徴量の検出方向の数だけ処理が分岐し、処理時間をロスするため非効率的な処理になる。そこで、本実施形態においては図10の流れで処理を行う。
【0034】
図10は、本実施形態における複数方向画像検出処理のフローチャートである。複数方向画像検出処理は、S132にて取得された窓画像データXDに対して実行される。処理が開始されると、特徴量算出部M4が窓画像データWDから複数の特徴量を、各方向について算出する。特徴量は、窓画像データXDに対して各種のフィルタを適用し、当該フィルタ内の輝度平均やエッジ量やコントラスト等の状態を示す特徴量(平均値や最大値や最小値や標準偏差等)を算出することにより得られる。なお、窓画像データWDは、検出窓WのサイズSによって異なる大きさとなるが、S200において予め一定の大きさに解像度変換される。
【0035】
図11は、窓画像データWDから特徴量を算出する様子を示している。同図において、窓画像データWDに対して多数のフィルタFTが用意されており、各フィルタFTを順次窓画像データWDに適用し、各フィルタFT内の画像について例えば12個の上特徴量CAu1〜CAu12を順次算出する。さらに検出窓Wを90°ずつ順次回転させて、右特徴量CAr1〜Car12と、下特徴量CAd1〜CAd12と、左特徴量CAd1〜CAd12と、をそれぞれ算出する。
【0036】
S201では、関数設定指示部M8が、出力値としてD1を設定し、RAM12に一時的に記憶する。この出力値は、前述した複数の判定器で特徴量を判定するにあたり、前段の判定器において上下左右の特徴量のうち、いずれの特徴量が正判定されたかを示す値である。本実施形態においては4方向の特徴量を判定するので、出力値は上下左右を任意に組合せたD1〜D15の15種類(正判定された方向が無い場合の出力値を設けるのであればD16までの16種類)となる。なお、4方向以外の例えばk方向の特徴量を判定するのであれば、出力値は(2k−1)種類となり、後述の関数も各判定器に(2k−1)個ずつ用意されることになる。
【0037】
S202では、関数設定部M6が、使用する判定器を設定する。S202で設定される判定器は、本複数方向画像検出処理において未設定の判定器であり、S225で条件不成立する度に、J1,J2,・・・,Jnが順に設定される。
【0038】
S205では、関数設定部M6が、関数テーブルTを参照して、出力値に対応する関数を取得する。関数テーブルには、予め複数方向画像検出処理の関数(以下、関数と略す。)が、出力値に対応付けられて登録されており、RAM12に記憶された出力値に合わせて適切な関数が取得される。例えばRAM12に記憶されている出力値がD5、設定されている判定器がJ7であれば、関数F7_5が取得される。
【0039】
図12は関数テーブルの一例である。各関数においては、上下左右15通りのいずれかの組合せに対し、組合せの方向の特徴量を判定する処理が関数化されている。同図において、関数テーブルTの右には、各関数が何れの方向の判定に対応しているかを示しており、各関数は○の記載がある方向の判定を実行する。例えば判定器J1については、上・下・左・右全ての特徴量を判定する処理を関数化した関数F1_1、上・下・左の特徴量を判定する処理を関数化したF1_2、上・下・右の特徴量を判定する処理を関数化したF1_3、・・・・F1_n、が準備される。これらの関数に各方向の特徴量が入力されると、判定した各方向の特徴量に対する正否判定が出力される。この正否判定においては、入力された各方向の特徴量に対し閾値判定を行い、入力された特徴量が該閾値の上下いずれか所定の側にあれば正判定し、所定の側でない側にあれば否判定とする。例えば、図12においては、F1_3に上・下・右の特徴量が入力されると、上・下・右の特徴量に対する判定結果が出力される。本実施形態における判定結果は、出力値D1〜D16の何れかで出力される。
【0040】
関数テーブルにおいては、関数の判定する方向と、出力値に対応付けられた方向の組合せと、が一致するように対応付けられている。例えば、関数F1_1は、上・下・左・右全ての特徴量に対して正判定したことを示す出力値D1に対応付けられており、関数F1_2は、上・下・左の特徴量に対して正判定したことを示す出力値D2に対応付けられている。なお、本実施形態においては、前記D1〜D15の出力値に加えて、正判定された方向が無い場合の出力値としてD16を設けてある。
以上の関数テーブルTを参照して、S205では、S200で設定された出力値や後述のS215で設定された出力値に対応する関数を取得する。
【0041】
S210では、判定部M7が、S205で取得された関数で判定処理を行う。そしてS215では、関数設定指示部M8が、該判定結果に基づいた出力値を設定し、RAM12に一時的に記憶する。すなわちRAM12には、直前の判定器で正判定された方向を示す値が格納される。
S220では、S210の判定処理において、一方向以上で正判定されたか否かを、例えば出力値に基づいて関数設定指示部M8が判断する。すなわち、出力値がD1〜D15であれば、一方向以上で正判定されているので、S225に進み、出力値がD16であれば、検出失敗として本処理を終了し、オブジェクト検出処理にリターンする。
【0042】
S225では、関数設定指示部M8が、全ての判定器で判定を行ったか否かを判断する。すなわち本処理が開始されて以降、判定器J1,J2,…,Jnの中でS202で未設定の判定器があるか否かを判断する。未設定の判定器があれば、S202に戻り、未設定の判定器を設定して処理を続ける。全ての判定器を設定済みであればS230に進み、そのときの検出窓WのサイズSおよび位置Pおよび前記所定オブジェクト画像が含まれると判定された検出窓Wの回転角TをRAM12に記憶させて本処理を終了し、オブジェクト検出処理にリターンする。
【0043】
ここで、図13を参照して、対象画像に所定オブジェクトが存在する場合と対象画像から所定オブジェクトを検出できなかった場合の処理の流れの一例を説明する。図13は、対象画像に所定オブジェクトが存在する場合と対象画像から所定オブジェクトを検出できなかった場合における、前述した各判定器の判定処理において選択される関数と、該関数によって判定される方向、そして判定の結果設定される出力値、の関係を、示した図である。図13において、「検出」の欄に○が記載されている方向が実行された関数で判定する方向であり、「結果」の欄に○が記載されている方向が、該関数により所定オブジェクトが存在すると判定された方向である。この結果にあわせて、出力値が決定される。
【0044】
図13の上の表は、対象画像に所定オブジェクトが存在する場合の例である。複数方向画像検出処理が開始されると、S200において初期値として出力値D1が設定されるので、判定器J1の判定は、関数F1_1で行われる。同図において、関数F1_1は、上・下・左・右方向の特徴量を判定し、上・左・右方向の特徴量で正判定している。従って、出力値はD4となり、次の判定器J2の判定は、関数F2_4で行われる。関数F2_4は上・左・右方向の特徴量と判定し、上方向の特徴量で正判定している。従って、出力値はD12となり、次の判定器J3の判定は、関数F3_12で行われる。以降の判定では上方向の特徴量を判定する関数が選択され、出力値は全てD12となる。
【0045】
図13の下の表は、対象画像から所定オブジェクトを検出できなかった場合の例である。複数方向画像検出処理が開始されると、S200において初期値として出力値D1が設定されるので、判定器J1の判定は、関数F1_1で行われる。同図において、関数F1_1は、上・下・左・右方向の特徴量を判定し、上・左・右方向の特徴量で正判定している。従って、出力値はD4となり、次の判定器J2の判定は、関数F2_4で行われる。関数F2_4は上・左・右方向の特徴量と判定し、上方向の特徴量で正判定している。従って、出力値はD12となり、次の判定器J3の判定は、関数F3_12で行われる。そして関数F3_12が上方向の特徴量を判定し、上方向の特徴量で正判定し、出力値D12が設定される。そして関数F4_12で上方向の特徴量を判定すると、正判定の方向が無くなり出力値D16が設定され、処理が終了する。
【0046】
以上のように、S200〜S225のループ処理が進むにつれて、次の判定処理で判定する特徴量の方向が絞られていく。さらに、複数方向の判定がある場合でも、1つの関数で全ての方向の判定を終了できるので、検出方向の分岐が発生せず処理時間が短縮される。
【0047】
(2−3)肌色調整および印刷処理
図14は、画質調整部M5が実行する肌色調整処理(画質調整処理)の流れを示している。なお本実施形態においては、人物の顔に対する肌色調整処理を例に取り説明を行うが、無論、顔以外の腕や足や体であってもよいし、画質調整処理も肌色調整処理のみならず検出対象のオブジェクト種類にあわせて適宜選択可能である。上述したオブジェクト検出処理のS320において、すべてのサイズSについて検出窓Wの設定が完了したか否かを判定されると、オブジェクト検出処理が終了する。S510においては、オブジェクト検出処理の終了を検出し、調整対象の画像データD1を取得する。ここで取得される画像データD1は、オブジェクト検出処理の対象となった画像データD1である。S520においては、顔画像(オブジェクト画像)が存在すると判定された検出窓WのサイズSおよび位置Pおよび回転角TをRAM12から読み出す。S530においては、顔画像が存在すると判定された検出窓Wに対応する領域を画像データD1において特定する。検出窓WのサイズSおよび位置PがRAM12から取得されているため、これを画像データD1の画像サイズに換算することにより、検出窓Wに対応する領域を特定することができる。
【0048】
S540においては、S540にて特定した領域に含まれる肌色画素の色を調整する処理を実行する。ここでは、まずS540にて特定した領域に含まれる肌色画素を、各画素の色彩値(例えばRGB値やHSV値)に基づいて特定し、当該色彩値を肌色として好ましいものに補正する。具体的には、予め肌色として好ましい色彩値がHDD14に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくように補正を行う。検出窓Wによって顔画像が存在する領域が予め特定されているため、顔画像の肌色画素についてのみ補正を行うことができる。なお、顔画像が存在すると判定された検出窓Wが複数検出された場合には、そのそれぞれについて肌色調整を実行する。以上のようにして、肌色調整が完了すると、S550にて調整後の画像データD1を印刷部15に出力する。すると、印刷部15は、画像データD1に対して解像度変換処理と色変換処理とハーフトーン処理とラスタライズ処理を順次実行させ、画質調整後の画像データD1に対応する画像の印刷を実行する。
【0049】
(4)まとめ:
以上説明したように、本実施形態においては、画像データD1から取得した窓画像データWDを90°おきに回転させ、回転させた各窓画像データに対し複数の判定器J1〜Jnで判定を行い、判定器J1〜Jnの全てで正判定した場合に窓画像データWDにオブジェクトありと判断するにあたり、複数角度に回転させた検出窓で取得された各窓画像データに対しまとめて判定処理を行う関数と出力値とが対応付けられた関数テーブルを備えさせ、前記窓画像データを取得するにあたって使用された検出窓の回転角度組合せに対し、前記判定器の1つで判定する関数を前記関数テーブルを参照して設定し、組合せに含まれる各回転角度の窓画像データWDに対して関数で前記所定オブジェクト画像が含まれるか否かの判定を行い、該判定で前記所定オブジェクト画像が含まれると判定された回転角度の組合せに対し次の判定器で判定を実行するための関数を前記関数テーブルを参照して設定する。よって、オブジェクト検出処理における検出時間が短縮される。
【0050】
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、等も含まれる。
【図面の簡単な説明】
【0051】
【図1】オブジェクト検出装置のハードウェア構成ブロック図である。
【図2】オブジェクト検出装置のソフトウェア構成ブロック図である。
【図3】画像処理の流れを示すフローチャートである。
【図4】オブジェクト検出処理のフローチャートである。
【図5】画像データD1を示す図である。
【図6】カウンタnsと検出窓WのサイズSとの関係を示す図である。
【図7】複数の判定器を用いた判定の判定特性である。
【図8】カスケード状に接続した判定器の概念図である。
【図9】カスケード状に接続した判定器で行うフローチャートである。
【図10】複数方向画像検出処理のフローチャートである。
【図11】窓画像データWDから特徴量を算出する様子を示す図である。
【図12】関数テーブルの一例である。
【図13】検出成功と検出失敗の処理の流れを説明する。
【図14】肌色調整処理の流れを示している。
【符号の説明】
【0052】
10…CPU、11…RAM、12a…プログラムデータ、13…汎用インターフェイス(GIF)、13a…USBメモリ、14…メモリカードインターフェース(MIF)、14a…メモリカード、15…印刷部、16…操作パネル、17…表示部、18…バス、100…プリンタ、M…画像処理モジュール、M1…作業画像取得部、M2…検出窓設定部、M3…窓画像取得部、M4…特徴量算出部、M5…画質調整部、M6…関数設定部、M7…判定部、M8…関数設定指示部
【特許請求の範囲】
【請求項1】
対象画像から所定オブジェクト画像を検出するオブジェクト検出方法であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像から前記所定オブジェクト画像を検出するにあたり、
前記複数の解析対象画像として、前記対象画像の所定位置において、所定の検出枠を複数の角度に回転させ、各角度において該検出枠が指定する範囲の前記対象画像を取得する取得工程と、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行するための判定ユニットを設定する設定工程と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定工程と、
前記判定工程において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定工程に指示する指示工程と、
を具備することを特徴とするオブジェクト検出方法。
【請求項2】
前記複数の解析対象画像の各組合せと、各組合せに対して所定の判定を実行するための判定ユニットとが対応付けられたテーブルを備え、
前記設定工程においては、前記テーブルに基づいて前記判定ユニットを設定する請求項1に記載のオブジェクト検出方法。
【請求項3】
対象画像から所定オブジェクト画像を検出するオブジェクト検出装置であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する設定手段と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定手段と、
前記判定手段において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定手段に指示する指示手段と、
を具備することを特徴とするオブジェクト検出装置。
【請求項4】
入力された画像データの画像から前記所定オブジェクト画像を検出し、検出された所定オブジェクト画像に基づいて前記画像データに画質調整処理を行い、画質調整後の画像データを印刷する印刷装置である請求項3に記載のオブジェクト検出装置。
【請求項5】
対象画像から所定オブジェクト画像を検出する機能をコンピュータに実現させるためのオブジェクト検出プログラムであって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する設定機能と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定機能と、
前記判定機能において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定機能に指示する指示機能と、
をコンピュータに実現させるためのオブジェクト検出プログラム。
【請求項6】
対象画像から所定オブジェクト画像を検出する機能をコンピュータに実現させるためのオブジェクト検出プログラムを記録した記録媒体であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する設定機能と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定機能と、
前記判定機能において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定機能に指示する指示機能と、
をコンピュータに実現させるためのオブジェクト検出プログラムを記録した記録媒体。
【請求項1】
対象画像から所定オブジェクト画像を検出するオブジェクト検出方法であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像から前記所定オブジェクト画像を検出するにあたり、
前記複数の解析対象画像として、前記対象画像の所定位置において、所定の検出枠を複数の角度に回転させ、各角度において該検出枠が指定する範囲の前記対象画像を取得する取得工程と、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行するための判定ユニットを設定する設定工程と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定工程と、
前記判定工程において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定工程に指示する指示工程と、
を具備することを特徴とするオブジェクト検出方法。
【請求項2】
前記複数の解析対象画像の各組合せと、各組合せに対して所定の判定を実行するための判定ユニットとが対応付けられたテーブルを備え、
前記設定工程においては、前記テーブルに基づいて前記判定ユニットを設定する請求項1に記載のオブジェクト検出方法。
【請求項3】
対象画像から所定オブジェクト画像を検出するオブジェクト検出装置であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する設定手段と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定手段と、
前記判定手段において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定手段に指示する指示手段と、
を具備することを特徴とするオブジェクト検出装置。
【請求項4】
入力された画像データの画像から前記所定オブジェクト画像を検出し、検出された所定オブジェクト画像に基づいて前記画像データに画質調整処理を行い、画質調整後の画像データを印刷する印刷装置である請求項3に記載のオブジェクト検出装置。
【請求項5】
対象画像から所定オブジェクト画像を検出する機能をコンピュータに実現させるためのオブジェクト検出プログラムであって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する設定機能と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定機能と、
前記判定機能において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定機能に指示する指示機能と、
をコンピュータに実現させるためのオブジェクト検出プログラム。
【請求項6】
対象画像から所定オブジェクト画像を検出する機能をコンピュータに実現させるためのオブジェクト検出プログラムを記録した記録媒体であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の1つを実行する判定ユニットを設定する設定機能と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定機能と、
前記判定機能において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定機能に指示する指示機能と、
をコンピュータに実現させるためのオブジェクト検出プログラムを記録した記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−237754(P2009−237754A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−80961(P2008−80961)
【出願日】平成20年3月26日(2008.3.26)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願日】平成20年3月26日(2008.3.26)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]