本明細書の記載、及び添付図面の記載により、少なくとも次のことが明らかにされる。
すなわち、(A)識別対象を表す識別対象データに基づき、前記識別対象が第1カテゴリーに属する確率の大小を示す第1確率情報を取得する第1確率情報取得部と、(B)前記識別対象データに基づき、前記識別対象が第2カテゴリーに属する確率の大小を示す第2確率情報を取得する第2確率情報取得部であって、前記第1確率情報で示される前記確率が、確率閾値で規定される範囲であって前記識別対象が前記第1カテゴリーに属すると確定し得る確率の範囲内の場合に、前記識別対象データについての前記第2確率情報の取得を行わない第2確率情報取得部と、を有するカテゴリー識別装置を実現できることが明らかにされる。
このようなカテゴリー識別装置によれば、第1確率情報に基づき、識別対象が第1カテゴリーに属すると確定し得る場合には、第2確率情報取得部による第2確率情報の取得は行われない。このため、カテゴリーの識別における処理を高速化できる。
かかるカテゴリー識別装置であって、前記第1確率情報取得部は、前記識別対象データから取得される特徴量であって前記識別対象の特徴を示す特徴量に基づいて前記第1確率情報を取得し、前記第2確率情報取得部は、前記特徴量に基づいて前記第2確率情報を取得することが好ましい。
このようなカテゴリー識別装置によれば、第1確率情報取得部で用いられる特徴量が第2確率情報取得部でも用いられるので、処理の効率化が図れる。
かかるカテゴリー識別装置であって、前記第1確率情報と前記確率閾値とに基づき、前記第1確率情報で示される前記確率が、前記識別対象が前記第1カテゴリーに属すると確定し得る確率の範囲内の場合に、前記識別対象が前記第1カテゴリーに属すると判断する判断部を有し、前記第2特徴量取得部は、前記判断部にて前記識別対象が前記第1カテゴリーに属すると判断された場合に、前記識別対象データについての前記第2確率情報の取得を行わないことが好ましい。
このようなカテゴリー識別装置によれば、第1確率情報と確率閾値とに基づいて識別が行われるので、処理速度と識別精度とを高いレベルで両立できる。
かかるカテゴリー識別装置であって、前記第1確率情報取得部は、前記第1カテゴリーについての識別学習がなされたサポートベクターマシンであって、前記識別対象が前記第1カテゴリーに属する確率に応じた数値を、前記第1確率情報として取得するサポートベクターマシンであり、前記判断部は、前記サポートベクターマシンで取得された数値と前記確率閾値とを比較することが好ましい。
このようなカテゴリー識別装置によれば、限られた学習データであっても、取得される確率情報の精度を高めることができる。
かかるカテゴリー識別装置であって、前記第2確率情報と前記確率閾値とに基づき、前記第2確率情報で示される前記確率が、前記識別対象が前記第2カテゴリーに属すると確定し得る確率の範囲内の場合に、前記識別対象が前記第2カテゴリーに属すると判断する他の判断部を有することが好ましい。
このようなカテゴリー識別装置によれば、第2確率情報と確率閾値とに基づいて判断が行われるので、処理速度と判断の精度とを高いレベルで両立できる。
かかるカテゴリー識別装置であって、前記第2確率情報取得部は、前記第2カテゴリーについての識別学習がなされた他のサポートベクターマシンであって、前記識別対象が前記第2カテゴリーに属する確率に応じた数値を、前記第2確率情報として取得する他のサポートベクターマシンであり、前記他の判断部は、前記他のサポートベクターマシンで取得された数値と前記確率閾値とを比較することが好ましい。
このようなカテゴリー識別装置によれば、限られた学習データであっても、取得される確率情報の精度を高めることができる。
かかるカテゴリー識別装置であって、前記識別対象は、画像であり、前記識別対象データは、前記画像を表す画像データであることが好ましい。
このようなカテゴリー識別装置によれば、画像データのカテゴリーを効率よく識別できる。
かかるカテゴリー識別装置であって、前記第1カテゴリーは、風景のカテゴリー、夕景のカテゴリー、夜景のカテゴリー、花のカテゴリー、及び、紅葉のカテゴリーを含むカテゴリー群の中から選ばれた1つのカテゴリーであり、前記第2カテゴリーは、前記カテゴリー群の中から選ばれた他の1つのカテゴリーであることが好ましい。
また、次のカテゴリー識別方法を実現できることも明らかにされる。
すなわち、(A)識別対象を表す識別対象データに基づき、前記識別対象が第1カテゴリーに属する確率の大小を示す第1確率情報を取得すること、(B)前記第1確率情報で示される前記確率が、確率閾値で規定される範囲であって前記識別対象が前記第1カテゴリーに属すると確定し得る確率の範囲外の場合に、前記識別対象データに基づき、前記識別対象が第2カテゴリーに属する確率の大小を示す第2確率情報を取得すること、(C)前記第1確率情報で示される前記確率が、前記識別対象が前記第1カテゴリーに属すると確定し得る確率の範囲内の場合に、前記識別対象データについて、前記識別対象が第2カテゴリーに属する確率の大小を示す第2確率情報を取得しないこと、を有するカテゴリー識別方法を実現できることも明らかにされる。
===第1実施形態===
以下、本発明の実施の形態について説明する。なお、以下の説明は、図1に示す複合機1を例に挙げて行う。この複合機1は、媒体に印刷された画像を読み取って画像データを取得する画像読み取り部10と、画像データに基づいて媒体へ画像を印刷する画像印刷部20とを有している。画像印刷部20では、例えば、デジタルスチルカメラDCによる撮影で得られた画像データや画像読み取り部10で得られた画像データに基づき、画像を媒体に印刷する。加えて、この複合機1では、対象となる画像(便宜上、対象画像ともいう。)についてシーンの識別を行い、識別結果に応じて対象画像データを補正したり、補正した画像データをメモリカードMC等の外部メモリに記憶したりする。ここで、画像におけるシーンは、識別対象におけるカテゴリーに相当する。このため、複合機1は、未知の識別対象のカテゴリーを識別するカテゴリー識別装置として機能する。また、複合機1は、識別されたカテゴリーに基づいてデータを補正するデータ補正装置や、補正後のデータを外部メモリ等に記憶するデータ記憶装置としても機能する。
<複合機1の構成>
図2Aに示すように、画像印刷部20は、プリンタ側コントローラ30と印刷機構40とを有する。
プリンタ側コントローラ30は、印刷機構40の制御など印刷に関する制御を行う部分である。例示したプリンタ側コントローラ30は、メインコントローラ31と、制御ユニット32と、駆動信号生成部33と、インタフェース34と、メモリ用スロット35とを有する。そして、これらの各部がバスBUを介して通信可能に接続されている。
メインコントローラ31は、制御の中心となる部分であり、CPU36とメモリ37とを有する。CPU36は、中央演算装置として機能し、メモリ37に格納された動作用プログラムに従って種々の制御動作を行う。従って、この動作用プログラムは、制御動作を実現させるためのコードを有する。メモリ37には種々の情報が記憶される。例えば図2Bに示すように、メモリ37の一部分には、動作用プログラムを記憶するプログラム記憶部37a、制御用パラメータを記憶するパラメータ記憶部37b、画像データを記憶する画像記憶部37c、Exifの付属情報を記憶する付属情報記憶部37d、特徴量を記憶する特徴量記憶部37e、確率情報を記憶する確率情報記憶部37f、計数用カウンタとして機能するカウンタ部37g、肯定フラグを記憶する肯定フラグ記憶部37h、否定フラグを記憶する否定フラグ記憶部37i、及び、識別結果を記憶する結果記憶部37jが設けられている。なお、メインコントローラ31によって構成される各部については、後で説明する。
制御ユニット32は、印刷機構40に設けられているモータ41等を制御する。駆動信号生成部33は、ヘッド44が有する駆動素子(図示せず)に印加される駆動信号を生成する。インタフェース34は、パーソナルコンピュータなどの上位装置と接続するためのものである。メモリ用スロット35は、メモリカードMCを装着するための部分である。メモリカードMCがメモリ用スロット35に装着されると、メモリカードMCとメインコントローラ31とが通信可能に接続される。これに伴い、メインコントローラ31は、メモリカードMCに記憶された情報を読み出したり、情報をメモリカードMCに記憶させたりできる。例えば、デジタルスチルカメラDCの撮影によって生成された画像データを読み出したり、補正等の処理を施した後の補正後画像データを記憶させたりできる。
印刷機構40は、用紙等の媒体に対して印刷を行う部分である。例示した印刷機構40は、モータ41と、センサ42と、ヘッド制御部43と、ヘッド44とを有する。モータ41は、制御ユニット32からの制御信号に基づいて動作する。モータ41としては、例えば、媒体を搬送するための搬送モータやヘッド44を移動させるための移動モータがある(何れも図示せず)。センサ42は、印刷機構40の状態を検出するためのものである。センサ42としては、例えば、媒体の有無を検出するための媒体検出センサ、媒体の搬送を検出するための搬送検出センサ、及び、ヘッド44の位置を検出するためのヘッド位置センサがある(何れも図示せず)。ヘッド制御部43は、ヘッド44が有する駆動素子への駆動信号の印加を制御するためのものである。この画像印刷部20では、印刷対象となる画像データに応じ、メインコントローラ31がヘッド制御信号を生成する。そして、生成した駆動信号をヘッド制御部43へ送信する。ヘッド制御部43は、受信したヘッド制御信号に基づいて、駆動信号の印加を制御する。ヘッド44は、インクを吐出するための動作をする駆動素子を複数有する。これらの駆動素子には、ヘッド制御部43を通過した駆動信号の必要部分が印加される。そして、駆動素子は、印加された必要部分に応じてインクを吐出するための動作をする。これにより、吐出されたインクが媒体に着弾し、媒体に画像が印刷される。
<プリンタ側コントローラ30によって実現される各部の構成>
次に、プリンタ側コントローラ30によって実現される各部について説明する。メインコントローラ31が有するCPU36は、動作プログラムを構成する複数の動作モジュール(プログラムユニット)毎に、異なる動作をする。このとき、メインコントローラ31は、単体で、或いは制御ユニット32や駆動信号生成部33と組になって、動作モジュール毎に異なる機能を発揮する。便宜上、以下の説明では、プリンタ側コントローラ30を、動作モジュール毎の装置として表現することにする。
図3に示すように、メインコントローラ31は、画像記憶部37cと、顔識別部30Aと、シーン識別部30Bと、画像補正部30Cと、機構制御部30Dとを有する。画像記憶部37cは、シーンの識別処理や補正処理の対象となる画像データを記憶する。この画像データは、識別対象となる識別対象データの一種であり、対象画像データに相当する。本実施形態の対象画像データは、RGB画像データによって構成されている。このRGB画像データは、色情報を有する複数の画素によって構成される画像データの一種である。顔識別部30Aは、対象画像データについて、人物の顔画像の有無、及び、対応するシーンを識別する。例えば、顔識別部30Aは、QVGA(320×240画素=76800画素)サイズのデータに基づいて、人物の顔画像の有無を判断する。そして、顔画像が検出された場合には、顔画像の総面積に基づいて、対象画像を人物のシーン或いは記念写真のシーンに分類する(後述する。)。シーン識別部30Bは、顔識別部30Aではシーンが決定されなかった対象画像について、属するシーンを識別する。画像補正部30Cは、顔識別部30Aやシーン識別部30Bでの識別結果に基づき、対象画像の属するシーンに応じた補正を行う。機構制御部30Dは、対象画像データに基づいて印刷機構40を制御する。ここで、画像補正部30Cによる対象画像データの補正がなされた場合には、機構制御部30Dは、補正後画像データに基づいて印刷機構40を制御する。これらの各部において、顔識別部30A、シーン識別部30B、及び、画像補正部30Cは、メインコントローラ31によって構成される。機構制御部30Dは、メインコントローラ31、制御ユニット32、及び、駆動信号生成部33によって構成される。
<シーン識別部30Bの構成>
次に、シーン識別部30Bについて説明する。本実施形態のシーン識別部30Bは、顔識別部30Aではシーンが決定されなかった対象画像について、風景のシーン、夕景のシーン、夜景のシーン、花のシーン、紅葉のシーン、及び、その他のシーンの何れかに属するのかを識別する。図4に示すように、このシーン識別部30Bは、特徴量取得部30Eと、全体識別器30Fと、部分画像識別器30Gと、統合識別器30Hと、結果記憶部37jとを有する。これらの中で、特徴量取得部30E、全体識別器30F、部分画像識別器30G、及び、統合識別器30Hは、メインコントローラ31によって構成される。そして、全体識別器30F、部分画像識別器30G、及び、統合識別器30Hは、部分特徴量及び全体特徴量の少なくとも一方に基づき、対象画像の属するシーン(識別対象の属するカテゴリーに相当する。)の識別処理を行う識別処理部30Iを構成する。
<特徴量取得部30Eについて>
特徴量取得部30Eは、対象画像の特徴を示す特徴量を対象画像データに基づいて取得する。この特徴量は、全体識別器30Fや部分画像識別器30Gでの識別で用いられる。図5に示すように、特徴量取得部30Eは、部分特徴量取得部51と全体特徴量取得部52とを有する。
部分特徴量取得部51は、識別対象データを分割して得られた部分データのそれぞれに基づき、部分データのそれぞれについて部分特徴量を取得する。この部分特徴量は、部分データに対応する識別対象の一部分についての特徴を示す。この実施形態では、識別対象が画像である。このため、部分特徴量は、全体画像を複数の領域に分割した範囲(便宜上、部分画像ともいう。)毎の特徴量を示す。具体的には、全体画像を、縦と横とにそれぞれ8等分した範囲に対応する部分画像、すなわち、全体画像を格子状に分割して得られる1/64サイズの部分画像の特徴量を示す。また、対象画像データが識別対象データに対応し、部分画像データが部分データに対応し、部分画像データを構成する各画素が、部分データを構成する複数サンプルに対応する。なお、本実施形態における対象画像データは、QVGAサイズのデータである。このため、部分画像データは、その1/64サイズのデータ(40×30画素=1200画素)となる。
そして、部分特徴量取得部51は、部分画像の特徴を示す部分特徴量として、部分画像データを構成する各画素の色平均、及び、色の分散を取得する。従って、部分特徴量は、部分画像データに基づき取得された特徴量であって、各画素の色情報から取得された特徴量に相当する。
各画素の色は、YCCやHSVなどの色空間にて数値で表すことができる。このため、色平均は、この数値を平均化することで取得できる。また、分散は、各画素の色についての平均値からの広がり度合いを示す。ここで、部分画像データから取得された色平均は、色についての部分平均情報に相当し、部分画像データから取得された分散は、色についての部分分散情報に相当する。
全体特徴量取得部52は、識別対象データに基づいて全体特徴量を取得する。この全体特徴量は、識別対象における全体の特徴を示す。この全体特徴量としては、例えば、対象画像データを構成する各画素の色平均、及び、色の分散がある。ここで、各画素は、識別対象データを構成する複数サンプルに相当し、各画素の色平均及び色の分散は、色についての全体平均情報及び全体分散情報に相当する。この他に、全体特徴量としてはモーメントがある。このモーメントは、色についての分布(重心)を示す特徴量であり、モーメント情報に相当する。全体特徴量としての色平均、色の分散、及び、モーメントは、本来的には対象画像データから直接的に取得される特徴量である。しかし、本実施形態の全体特徴量取得部52では、これらの特徴量を、部分特徴量を用いて取得している(後述する。)。また、対象画像データが、デジタルスチルカメラDCの撮影で生成されたものである場合、全体特徴量取得部52は、Exifの付属情報も全体特徴量として取得する。例えば、絞りを示す絞り情報、シャッタースピードを示すシャッタースピード情報、ストロボのオンオフを示すストロボ情報といった撮影情報も、全体特徴量として取得する。
<特徴量の取得について>
次に、特徴量の取得について説明する。前述したように、この実施形態では、まず対象画像データから部分特徴量を取得し、その後、取得した部分特徴量に基づいて全体特徴量を取得する。これは、処理の高速化のためである。以下、この点について説明する。
対象画像データから特徴量を取得する場合には、記憶媒体としてのメモリカードMCからメインコントローラ31が有するメモリ37(所謂メインメモリ)に、画像データを読み込む必要がある。この場合、メモリカードMCへのアクセスとメモリ37への書き込みとを繰り返し行う必要があり、時間がかかってしまう。また、JPEG形式の対象画像データ(便宜上、JPEG画像データともいう。)の場合、JPEG画像データを展開(デコード)する必要があるが、その際にハフマン復号や逆DCT変換を行う必要があり、これらの処理にも時間が掛かってしまう。
メモリカードMCへのアクセス回数やメモリ37への書き込み回数を減らすためには、対応する容量のメモリを搭載すればよいと考えられるが、実装可能なメモリ37の容量が制限されるために事実上難しい。そこで、全体特徴量と部分特徴量とを取得する場合、一般的には、全体特徴量の取得時と部分特徴量の取得時のそれぞれで、JPEG画像データからRGB画像データへの展開、及び、RGB画像データからYCC画像データへの変換を行うと考えられる。しかしながら、このような方法を採ると、処理に時間が掛かってしまう。
このような事情に鑑み、本実施形態の複合機1では、部分特徴量取得部51が部分データ毎に部分特徴量を取得する。そして、取得した部分特徴量を、メモリ37の特徴量記憶部37e(部分特徴量記憶部に相当する。)に記憶する。全体特徴量取得部52は、特徴量記憶部37eに記憶された複数の部分特徴量を読み出して全体特徴量を取得する。そして、取得した全体特徴量を特徴量記憶部37e(全体特徴量記憶部に相当する。)に記憶する。このような構成を採ることで、対象画像データに対する変換等の回数を抑えることができ、部分特徴量と全体特徴量とを別々に取得する構成に比べて、処理を高速化することができる。また、展開用のメモリ37の容量も必要最小限に抑えることができる。
<部分特徴量の取得について>
次に、部分特徴量取得部51による部分特徴量の取得について説明する。図6に示すように、部分特徴量取得部51は、まず、対象画像データの一部を構成する部分画像データを、メモリ37の画像記憶部37cから読み出す(S11)。この実施形態において、部分特徴量取得部51は、QVGAサイズの1/64のRGB画像データを部分画像データとして取得する。なお、対象画像データがJPEG形式等の圧縮された画像データの場合、部分特徴量取得部51は、対象画像データを構成する一部分のデータを画像記憶部37cから読み出し、読み出したデータを展開することで部分画像データを取得する。部分画像データを取得したならば、部分特徴量取得部51は、色空間の変換を行う(S12)。例えば、RGB画像データをYCC画像データに変換する。
次に、部分特徴量取得部51は、部分特徴量を取得する(S13)。この実施形態において、部分特徴量取得部51は、部分画像データの色平均と色の分散とを部分特徴量として取得する。ここで、部分画像データの色平均は、部分平均情報に相当する。便宜上、部分画像データにおける色平均を、部分色平均ともいう。また、部分画像データの分散は、部分分散情報に相当する。便宜上、部分画像データにおける分散を、部分色分散ともいう。j番目(j=1〜64)の部分画像データにおいて、i番目〔i=1〜76800〕の画素の色情報(例えばYCCの色空間で表した数値)をx
iとする。この場合、j番目の部分画像データにおける部分色平均x
avjは、次式(1)で表すことができる。
また、この実施形態における分散S
2は、次式(2)で定義されるものを用いている。このため、j番目の部分画像データにおける部分色分散S
j 2は、式(2)を変形して得られた次式(3)で表すことができる。
従って、部分特徴量取得部51は、式(1)及び式(3)の演算を行うことにより、対応する部分画像データについての部分色平均xavjと部分色分散Sj 2とを取得する。そして、これらの部分色平均xavj及び部分色分散Sj 2は、それぞれメモリ37の特徴量記憶部37eに記憶される。
部分色平均xavjと部分色分散Sj 2とを取得したならば、部分特徴量取得部51は、未処理の部分画像データの有無を判断する(S14)。仮に部分特徴量の取得を番号の若い部分画像データから順に行った場合、部分特徴量取得部51は、64番目の部分画像データについての部分特徴量の取得が終了するまでは、未処理の部分画像データがあると判断する。そして、64番目の部分画像データについての部分特徴量の取得が終了した場合に、未処理の部分画像データはないと判断する。未処理の部分画像データがあると判断した場合、部分特徴量取得部51は、ステップS11に移り、次の部分画像データについて同様の処理を行う(S11〜S13)。一方、ステップS14にて、未処理の部分画像データはないと判断された場合には、部分特徴量取得部51による処理は終了する。この場合、ステップS15にて全体特徴量取得部52による全体特徴量の取得が行われる。
<全体特徴量の取得について>
次に、全体特徴量取得部52による全体特徴量の取得(S15)について説明する。全体特徴量取得部52は、特徴量記憶部37eに記憶された複数の部分特徴量に基づき、全体特徴量を取得する。前述したように、全体特徴量取得部52は、対象画像データの色平均と色の分散とを全体特徴量として取得する。この全体特徴量は、対象画像データに基づき取得された特徴量であって、各画素の色情報から取得された特徴量に相当する。そして、対象画像データの色平均は、全体平均情報に相当する。便宜上、対象画像データにおける色平均を、全体色平均ともいう。また、対象画像データにおける色の分散は、全体分散情報に相当する。便宜上、対象画像データにおける色の分散を、全体色分散ともいう。そして、64個の部分画像データのうちj番目の部分画像データにおける部分色平均をx
avjとした場合、全体色平均x
avは、次式(4)で表すことができる。この式(4)において、mは部分画像の数を示す。また、全体色分散S
2は、次式(5)で表すことができる。この式(5)より、全体色分散S
2は、部分色平均x
avj、部分色分散S
j 2、及び、全体色平均x
avに基づいて取得できることが判る。
従って、全体特徴量取得部52は、式(4)及び式(5)の演算を行うことにより、対象画像データについての全体色平均xavと全体色分散S2とを取得する。そして、これらの全体色平均xav及び全体色分散S2は、それぞれメモリ37の特徴量記憶部37eに記憶される。
また、全体特徴量取得部52は、他の全体特徴量としてモーメントを取得する。この実施形態では、識別対象が画像であるので、モーメントによって、色の位置的な分布を定量的に取得できる。この実施形態において全体特徴量取得部52は、部分画像データ毎の色平均x
avjに基づいてモーメントを取得している。ここで、対象画像データを構成する部分画像データを、横方向にI個(I=1〜8)であって縦方向にJ個(J=1〜8)のマトリクスで表し、これらのI及びJで特定される部分画像データの部分色平均をX
av(I,J)で表すと、部分色平均に関する横方向のn次モーメントm
nhは、次式(6)で表すことができる。
ここで、単純な1次モーメントを部分色平均X
av(I,J)の総和で除算した値を、1次の重心モーメントという。この1次の重心モーメントは、次式(7)で表されるものであり、部分色平均という部分特徴量の横方向の重心位置を示す。この重心モーメントを一般化したn次の重心モーメントは、次式(8)で表される。n次の重心モーメントの中で、奇数次(n=1,3…)の重心モーメントは、一般に重心の位置を示すと考えられている。また、偶数次の重心モーメントは、一般に重心付近における特徴量の広がり度合いを示すと考えられている。
本実施形態の全体特徴量取得部52は、6種類のモーメントを取得している。具体的には、横方向の1次モーメント、縦方向の1次モーメント、横方向の1次重心モーメント、縦方向の1次重心モーメント、横方向の2次重心モーメント、及び、縦方向の2次重心モーメントを取得している。なお、モーメントの組み合わせは、これらに限定されない。例えば、横方向の2次モーメントと縦方向の2次モーメントを加えた8種類としてもよい。
これらのモーメントを取得することにより、色の重心や重心付近における色の広がり度合いを認識することができる。例えば、「画像における上部に赤い領域が広がっている」とか「中心付近に黄色い領域がまとまっている」といった情報が得られる。そして、識別処理部30I(図4を参照。)における識別処理で、色の重心位置や局在性が考慮できるため、識別の精度を高めることができる。
<特徴量の正規化について>
ところで、識別処理部30Iの一部を構成する全体識別器30F及び部分画像識別器30Gでは、サポートベクターマシン(SVMとも記す。)を用いて識別を行っている。サポートベクターマシンについては後で説明するが、このサポートベクターマシンは、分散の大きな特徴量ほど識別における影響力(重み付けの度合い)が大きくなるという特性を有する。そこで、部分特徴量取得部51、及び、全体特徴量取得部52では、取得した部分特徴量及び全体特徴量について正規化を行っている。すなわち、それぞれの特徴量について平均と分散とを算出し、平均が値[0]となり、分散が値[1]となるように、正規化を行っている。具体的には、i番目の特徴量x
iにおける平均値をμ
iとし、分散をσ
iとした場合、正規化後の特徴量x
i´は、次式(9)で表すことができる。
従って、部分特徴量取得部51、及び、全体特徴量取得部52は、式(9)の演算を行うことにより、各特徴量を正規化する。正規化された特徴量は、それぞれメモリ37の特徴量記憶部37eに記憶され、識別処理部30Iでの識別処理に用いられる。これにより、識別処理部30Iでの識別処理において、各特徴量を均等な重み付けで扱うことができる。その結果、識別精度を高めることができる。
<特徴量取得部30Eのまとめ>
以上説明したように、この実施形態における特徴量取得部30Eでは、識別に用いられる特徴量を取得するに際して、先に部分画像データに基づいて部分特徴量を取得し、その後、複数の部分特徴量に基づいて全体特徴量を取得している。このため、全体特徴量を取得する際の処理を簡素化でき、処理の高速化が図れる。例えば、対象画像データのメモリ37からの読み出し回数を必要最小限に抑えることができる。また、画像データの変換に関し、部分特徴量の取得時に部分画像データについての変換を行うことで、全体特徴量の取得時には変換を行わなくて済む。この点でも処理の高速化が図れる。この場合において、部分特徴量取得部51は、対象画像を格子状に分割した部分に対応する部分画像データに基づいて、部分特徴量を取得している。この構成により、対角線上に存在する2つの画素(座標)を特定することで部分画像データを特定できる。このため、処理を簡素化でき、高速化が図れる。
また、部分特徴量取得部51は、部分特徴量として部分色平均と部分色分散とを取得し、全体特徴量取得部52は、全体特徴量として全体色平均と全体色分散とを取得している。これらの特徴量は、識別処理部30Iによる対象画像の識別処理で用いられる。このため、識別処理部30Iにおける識別精度を高めることができる。これは、識別処理において、対象画像の全体と部分画像のそれそれで取得された、色合いの情報と色の局在化度合いの情報とが加味されるからである。
また、全体特徴量取得部52は、対象画像データを構成する複数画素のモーメントを、全体特徴量として取得している。このモーメントによって、色の重心位置や色の広がり度合いを、全体識別器30Fに認識させることができる。その結果、対象画像の識別精度を高めることができる。そして、全体特徴量取得部52は、モーメントを取得するに際し、部分特徴量を用いている。これにより、モーメントを効率よく取得でき、処理の高速化が図れる。
<識別処理部30Iについて>
次に、識別処理部30Iについて説明する。まず、識別処理部30Iの概略について説明する。図4及び図5に示すように、識別処理部30Iは、全体識別器30Fと、部分画像識別器30Gと、統合識別器30Hとを有する。全体識別器30Fは、全体特徴量に基づいて、対象画像のシーンを識別する。部分画像識別器30Gは、部分特徴量に基づいて、対象画像のシーンを識別する。統合識別器30Hは、全体識別器30Fと部分画像識別器30Gでシーンが確定されなかった対象画像について、シーンを識別する。このように、識別処理部30Iは、特性の異なる複数種類の識別器を有している。これは、識別性を高めるためである。すなわち、対象画像の全体に特徴が表れがちなシーンについては、全体識別器30Fによって精度良く識別ができる。一方、対象画像の一部分に特徴が表れがちなシーンについては、部分画像識別器30Gによって精度良く識別ができる。その結果、対象画像の識別性を高めることができる。さらに、全体識別器30Fと部分画像識別器30Gでシーンが確定しなかった対象画像については、統合識別器30Hによってシーンを識別できる。この点でも、対象画像の識別性を高めることができる。
<全体識別器30Fについて>
全体識別器30Fは、識別可能なシーンに応じた種類の数のサブ識別器(便宜上、全体サブ識別器ともいう。)を有する。各全体サブ識別器は、対象画像が特定のシーンに属することを全体特徴量に基づいて識別する。図5に示すように、全体識別器30Fは、全体サブ識別器として、風景識別器61と、夕景識別器62と、夜景識別器63と、花識別器64と、紅葉識別器65とを有する。風景識別器61は、対象画像が風景のシーンに属することを識別し、夕景識別器62は、対象画像が夕景のシーンに属することを識別する。夜景識別器63は、対象画像が夜景のシーンに属することを識別し、花識別器64は、対象画像が花のシーンに属することを識別し、紅葉識別器65は、対象画像が紅葉のシーンに属することを識別する。また、各全体サブ識別器は、対象画像が特定のシーンに属さないことも識別する。そして、各全体サブ識別器において、或るシーンに属すると確定した場合には、肯定フラグ記憶部37hの対応する領域に肯定フラグを記憶する。また、各全体サブ識別器において、或るシーンには属さないと確定した場合には、否定フラグ記憶部37iの対応する領域に否定フラグを記憶する。
この全体識別器30Fでは、各全体サブ識別器による識別を所定の順番で行っている。具体的に説明すると、全体識別器30Fは、まず、風景識別器61によって、対象画像が風景のシーンに属するかを識別させている。そして、風景のシーンに属するとは判断されなかった場合に、この対象画像が夕景のシーンに属するかを夕景識別器62に識別させる。以後は、夜景識別器63による識別、花識別器64による識別、及び、紅葉識別器65による識別を順に行わせる。要するに、全体識別器30Fは、或る全体サブ識別器にて、対象画像が対応する特定シーンに属すると識別されなかった場合に、他の全体サブ識別器に、対象画像が他の特定シーンに属することを識別させている。このように、全体識別器30Fでは、対象画像の識別を、全体サブ識別器毎に順番に行うように構成したので、識別の確実性を高めることができる。
これらの全体サブ識別器は、サポートベクターマシンと判断部とをそれぞれ有する。すなわち、風景識別器61は、風景用サポートベクターマシン61aと風景用判断部61bとを有し、夕景識別器62は、夕景用サポートベクターマシン62aと夕景用判断部62bとを有する。また、夜景識別器63は、夜景用サポートベクターマシン63aと夜景用判断部63bとを有し、花識別器64は、花用サポートベクターマシン64aと花用判断部64bとを有し、紅葉識別器65は、紅葉用サポートベクターマシン65aと紅葉用判断部65bとを有する。
<サポートベクターマシンについて>
ここで、サポートベクターマシン(風景用サポートベクターマシン61a〜紅葉用サポートベクターマシン65a)について説明する。このサポートベクターマシンは、確率情報取得部に相当し、識別対象の特徴を示す特徴量に基づき、その識別対象が或るカテゴリーに属する確率の大小を示す確率情報を取得する。このサポートベクターマシンの基本形は、線形サポートベクターマシンである。線形サポートベクターマシンは、例えば図7に示すように、2クラス分類トレーニングで定められる線形の識別関数であり、マージン(即ち、学習データとしてのサポートベクターが存在しない領域)が最大となるように定められた識別関数である。この図7において、白抜きの丸が或るカテゴリーCA1に属するサポートベクターであり、斜線を付した丸が他のカテゴリーCA2に属するサポートベクターである。カテゴリーCA1に属するサポートベクターとカテゴリーCA2に属するサポートベクターとを分離する分離超平面では、この分離超平面を定める識別関数が値[0]を示す。このような分離超平面は種々定めることができるが、線形サポートベクターマシンでは、カテゴリーCA1に属する或るサポートベクターから分離超平面までの間隔とカテゴリーCA2に属する或るサポートベクターから分離超平面までの間隔とが最大となるように、識別関数を定める。図7では、最大マージンを与える分離超平面の候補として、カテゴリーCA1に属するサポートベクターSV11及びSV12を通る直線に平行な分離超平面HP1と、カテゴリーCA2に属するサポートベクターSV21及びSV22を通る直線に平行な分離超平面HP2とを示している。この例では、分離超平面HP1の方が分離超平面HP2よりもマージンが大きいので、線形サポートベクターマシンとして、分離超平面HP1に対応する識別関数が定められる。
ところで、線形サポートベクターマシンは、線形分離可能なサンプルに対しては高い精度で識別ができるが、線形分離ができない識別対象については識別の精度が低くなってしまう。なお、この複合機1で扱われる対象画像も、線形分離ができない識別対象に相当する。そこで、このような識別対象については、特徴量を非線形変換し(すなわち、高次元空間に写像し)、その空間で線形の識別を行う非線形サポートベクターマシンが用いられる。この非線形サポートベクターマシンでは、例えば、任意の数の非線形関数によって定義される新たな関数を、線形サポートベクターマシン用のデータとする。このような非線形サポートベクターマシンでは、高次元空間で線形識別が行われるので、非線形関数によって識別されるサンプルであっても、精度良く識別ができる。また、非線形サポートベクターマシンでは、カーネル関数が用いられる。カーネル関数を用いることで、高次元空間における複雑な演算を行わなくとも、カーネルの計算によって識別関数を比較的容易に定めることができる。
図8に模式的に示すように、非線形サポートベクターマシンでは、識別境界BRが曲線状になる。この例では、四角で示す各点がカテゴリーCA1に属するサポートベクターであり、丸で示す各点がカテゴリーCA2に属するサポートベクターである。そして、これらのサポートベクターを用いた学習により、識別関数のパラメータが定められる。また、学習に用いられたサポートベクターのうち、識別境界BRに近い一部のサポートベクターが識別に用いられる。図8の例では、カテゴリーCA1に属する複数のサポートベクターのうち、塗り潰しの四角で示されたサポートベクターSV13,SV14が識別に用いられる。同様に、カテゴリーCA2に属する複数のサポートベクターのうち、塗り潰しの丸で示されたサポートベクターSV23〜SV26が識別に用いられる。なお、白抜きの四角及び白抜きの丸で示された他のサポートベクターは、学習には用いられるが、最適化の過程で対象から外される。このため、識別にサポートベクターマシンを用いることで、識別時に用いられる学習データ(サポートベクター)の数を抑えることができる。その結果、限られた学習データであっても、取得される確率情報の精度を高めることができる。すなわち、データ量の低減及び処理の高速化が図れる。
各全体サブ識別器(風景識別器61〜紅葉識別器65)は、このような非線形サポートベクターマシン(すなわち識別関数)をそれぞれ有している。そして、各サポートベクターマシン(風景用サポートベクターマシン61a〜紅葉用サポートベクターマシン65a)は、異なるサポートベクターに基づく学習で、識別関数におけるパラメータが定められる。その結果、全体サブ識別器毎に特性を最適化でき、全体識別器30Fにおける識別性を向上させることができる。各サポートベクターマシンは、入力されたサンプルに応じた数値、すなわち識別関数値を出力する。この識別関数値は、入力されたサンプルが或るカテゴリーに属する度合い(確率)を示す。図8の例で説明すると、入力されたサンプルがカテゴリーCA1としての特徴を多く備えているほど、言い換えれば、カテゴリーCA1に属する可能性が高いほど、識別関数値は正に大きな値となる。反対に、このサンプルがカテゴリーCA2としての特徴を多く備えているほど、識別関数値は負に大きな値となる。また、入力されたサンプルがカテゴリーCA1としての特徴とカテゴリーCA2としての特徴を均等に備えている場合には、識別関数値として値[0]が算出される。このように、各サポートベクターマシンは、サンプルが入力される毎に、識別対象となるサンプルが特定カテゴリーに属する度合いに応じた識別関数値を算出する。従って、この識別関数値は確率情報に相当する。そして、各サポートベクターマシンで求められた確率情報は、それぞれメモリ37の確率情報記憶部37fに記憶される。
<判断部について>
次に、判断部(風景用判断部61b〜紅葉用判断部65b)について説明する。これらの判断部は、サポートベクターマシンで取得された識別関数値(確率情報)に基づいて、対象画像が対応するシーンに属するか否かを判断する。各判断部は、前述した確率閾値に基づいて判断を行っている。すなわち、各判断部では、対応するサポートベクターマシンで取得された識別関数値に基づく確率が、確率閾値で規定される確率以上の場合に、対象画像が対応するシーンに属すると判断する。このように確率閾値で判断するようにしたのは、判断の精度を保ちつつ処理の速度を高めるためである。確率を用いてシーンの分類を行う場合、一般的には、対象となりうる全てのシーンについて属する確率を取得し、その中の最も高い確率のシーンに分類する。このような方法では、属する確率を全てのシーンについて取得する必要があるため、処理量が多くなって処理が遅くなりがちとなる。その点、この実施形態における判断部では、対象画像が特定シーンに分類されるか否かを、その特定シーンについての確率情報で判断でき、処理の簡素化が図れる。すなわち、識別関数値(確率情報)と確率閾値の簡単な比較で処理を行うことができる。また、確率閾値の与え方次第で誤判断の度合いを設定できるので、処理速度と判断精度のバランスを容易に調整できる。
判断部による判断の正確さを示す尺度として、図9に示すように、再現率(Recall)と正答率(Precision)とが用いられる。ここで、再現率は、或るシーンに属すると判断しなければならない対象画像について、属すると判断した割合を示す。すなわち、その判断部が扱う特定シーンの画像の総数に対する、その特定シーンに属すると判断された画像の数の割合である。具体例を挙げると、風景のシーンに属する複数の画像を風景識別器61で識別させた場合において、風景のシーンに属すると識別された画像の割合が該当する。従って、再現率は、そのシーンに属する確率が多少低いサンプルについてもそのカテゴリーに属すると判断させることで、高くすることができる。正答率は、その判断部にて対応するシーンに属すると判断した画像における、正しい判断をした画像の割合を示す。すなわち、扱うシーンに属するとその判断部が判断した画像の総数に対する、正しく判断された画像の数の割合である。具体例を挙げると、風景識別器61によって風景のシーンに属すると識別された複数の対象画像の中に、真に風景のシーンに属する対象画像の割合が該当する。従って、正答率は、そのシーンに属する可能性が高いサンプルを選択的にそのシーンに属すると判断させることで、高くすることができる。
図10〜図14は、各全体サブ識別器で取得された識別関数値(各全体サブ識別器の演算結果)と再現率の関係、及び、識別関数値と正答率の関係を示すグラフである。これらの図において、図10は風景識別器61における関係を示し、図11は夕景識別器62における関係を示す。同様に、図12は夜景識別器63における関係を、図13は花識別器64における関係を、図14は紅葉識別器65における関係をそれぞれ示す。また、これらの図において、横軸は、各全体サブ識別器が有するサポートベクターマシンで取得された識別関数値を示し、縦軸は、再現率と正答率とを示す。これらの図より、再現率と正答率とは互いに相反関係にあることが判る。前述したように、再現率を高めるためには、そのシーンに属する確率が多少低い対象画像(サンプル)であっても、そのシーンに属すると識別させればよい。しかし、この場合には、そのシーンに属さない対象画像であっても、そのシーンに属すると識別される可能性が増える。その結果、正答率は低くなる。反対に、正答率を高めるためには、そのシーンに属する確率が高い対象画像を選択して、そのシーンに属すると識別すればよい。しかし、この場合には、そのシーンに属する対象画像であっても、そのシーンに属さないと識別される可能性が増える。その結果、再現率は低くなる。
<確率閾値について>
全体識別器30Fにおける確率閾値は、正答率を基準に定められている。これは、多少の取りこぼしがあっても、その後に、部分画像識別器30Gによる識別、及び、統合識別器30Hによる識別が行われるからである。このため、全体識別器30Fでは、確実性を重視し、そのシーンに属する対象画像を選択して識別するようにしている。ただし、確実性を高くし過ぎると、全体識別器30Fにてシーンを確定できる対象画像が極めて少なくなる。これに伴い、殆どの対象画像を後段の識別器で識別することになり、処理に多くの時間を要することになる。従って、確率閾値は、確実性と処理時間とを調和させるように定められる。例えば、図15及び図16に示すように、風景識別器61では、確率閾値を値[1.72]に定めており、風景用サポートベクターマシン61aで取得された識別関数値が値[1.72]よりも大きな値であった場合に、対象画像を風景のシーンに確定する。図17に示すように、確率閾値を値[1.72]に定めることで、正答率は値[0.97]程度になる。従って、風景のシーンである確率が値[0.97]から値[1.00]の範囲内である場合、その対象画像は風景のシーンに識別(確定)される。このような確率閾値は、対象画像が、全体サブ識別器が扱うシーン(カテゴリー)に属するとの肯定的な判断を与えるものである。従って、以下の説明において、このような肯定的な判断を与えるための確率閾値のことを、肯定閾値(Positive Threshold)ともいう。
図10〜図14の比較から判るように、識別関数値と再現率の関係、及び、識別関数値と正答率の関係は、対応する全体サブ識別器によって異なる。また、同種の全体サブ識別器であっても、学習データ(学習用のサポートベクター)によって異なる。そして、肯定閾値は、全体サブ識別器の種類、学習データ、及び、シーン(カテゴリー)を確定させるための確率範囲に応じて定められる。図16に示すように、この実施形態における肯定閾値は、夕景識別器62で値[2.99]、夜景識別器63で値[1.14]、花識別器64で値[1.43]、紅葉識別器65で値[0.54]である。
ところで、各サポートベクターマシンで取得された識別関数値(演算結果)は、前述したように、そのシーンに属する確率の大小を示す確率情報に相当する。ここで、そのシーンに属する確率が小さいということは、そのシーンに属さない確率が大きいともいえる。従って、サポートベクターマシンで取得された識別関数値に基づき、そのシーンには属さないことを識別することもできる。例えば、サポートベクターマシンで取得された識別関数値が、属さないと識別するための確率閾値よりも小さい値を示す場合に、対象画像は、そのシーンには属さないと識別できる。このような確率閾値は、対象画像が、全体サブ識別器が扱うシーンには属さないとの否定的な判断を与えるものである。従って、以下の説明において、このような否定的な判断を与えるための確率閾値のことを、否定閾値(Negative Threshold)ともいう。そして、或るシーンには属さないと識別できれば、後段の識別器にて、同じシーンに対する識別を行わなくて済み、処理の簡素化と高速化が図れる。
図18は、風景識別器61によって、正しく除外された風景以外の画像の再現率(True Negative Recall)、及び、誤って除外された風景以外の画像の再現率(False Negative Recall)の例を示す。図18の例において、否定閾値を値[−2]に設定したとする。この場合、誤って除外される画像の再現率は、ほぼ値[0]である。このため、風景画像が誤って除外される確率はないに等しいといえる。しかし、正しく除外される画像の再現率は値[0.13]程度である。このため、風景以外の画像のうちの13%程度しか除外できないこととなる。また、否定閾値を値[−1]に設定したとする。この場合、誤って除外される画像の再現率は、値[0.03]程度である。このため、風景画像が誤って除外される確率は3%程度に収まる。反面、正しく除外される画像の再現率は値[0.53]程度となる。このため、風景以外の画像のうちの53%程度を除外できる。このように、否定閾値は、そのシーンに属する対象画像が誤って除外される確率と、そのシーン以外の対象画像が正しく除外される確率とを考慮して定められる。図16に示すように、この実施形態における否定閾値は、風景識別器61で値[−1.01]、夕景識別器62で値[−2.00]、夜景識別器63で値[−1.27]、花識別器64で値[−1.90]、紅葉識別器65で値[−1.84]である。
前述の否定閾値は、或る全体サブ識別器において、識別対象が、その全体サブ識別器で扱うカテゴリーには属さないという判断するための確率閾値である。ここで、特徴が大きく異なる複数のカテゴリーについて考える。この場合、特徴が大きく異なることから、或るカテゴリーに属する確率が高い場合には、他のカテゴリーに属する確率は低くなりがちである。例えば、風景のシーンと夜景のシーンについて考える。風景のシーンに属する風景画像は、緑色や青色を基調としているのに対し、夜景のシーンに属する夜景画像は、黒色を基調としている。このため、緑色や青色を基調とする画像については、風景のシーンに属する確率が高くなり、夜景のシーンに属する確率が低くなるといえる。また、黒色を基調とする画像については、夜景のシーンに属する確率が高くなり、風景のシーンに属する確率が低くなるといえる。このことから、サポートベクターマシンで取得された識別関数値に基づき、対象画像が、その全体サブ識別器が扱うシーン以外の他のシーンには属さないことを識別することもできることが判る。例えば、サポートベクターマシンで取得された識別関数値が、他のシーンには属さないと識別するための確率閾値よりも大きい値を示す場合に、対象画像は、他のシーンには属さないと識別できる。このような確率閾値は、対象画像が、全体サブ識別器が扱うシーン以外の他のシーンであって、他の全体サブ識別器で扱われる他のシーンには属さないとの否定的な判断を与えるものである。従って、以下の説明において、このような否定的な判断を与えるための確率閾値のことを、他の否定閾値(他の確率閾値)ともいう。
図19の例は、風景用サポートベクターマシン61aによって、風景のシーンに属する画像を判断させた場合の再現率、花のシーンに属する画像を判断させた場合の再現率、及び、夜景のシーンに属する画像を判断させた場合の再現率を示す。例えば、夜景について、他の否定閾値として値[−0.5]を設定し、風景用サポートベクターマシン61aで取得された識別関数値が他の否定閾値よりも大きな値であった場合に、その対象画像は夜景のシーンには属さないと識別させるようにしたとする。この場合、対応する再現率は値[0.03]程度である。従って、夜景画像を夜景のシーンではないと誤って識別する確率は3%程度に収まる。反面、風景用サポートベクターマシン61aで取得された識別関数値が、値[−0.5]よりも大きい対象画像については、夜景のシーンには属さないと識別することができる。その結果、夜景識別器63による処理を省略でき、識別処理を高速化できる。なお、この全体識別器30Fでは、図15に示すように、風景識別器61において、夕景の否定閾値を値[1.70]、夜景の否定閾値を値[−0.44]、花の否定閾値を値[1.83]、紅葉の否定閾値を値[1.05]に定めている。これにより、風景用サポートベクターマシン61aで得られた識別関数値が、値[−0.44]よりも大きく値[1.72]以下の場合には、風景のシーンに確定はできないが、夜景のシーンではないと識別できる。また、この識別関数値が、値[1.05]よりも大きく値[1.72]以下の場合には、風景のシーンに確定はできないが、紅葉のシーン及び夜景のシーンではないと識別できる。同様に、識別関数値が、値[1.70]よりも大きく値[1.72]以下の場合には、風景のシーンに確定はできないが、夕景のシーン、紅葉のシーン及び夜景のシーンではないと識別できる。
このような他の否定閾値は、他の全体サブ識別器に対しても同様に設定されている。例えば、図16に示すように、夕景識別器62において、風景の否定閾値を値[−0.75]、夜景の否定閾値を値[−0.61]、花の否定閾値を値[−0.66]、紅葉の否定閾値を値[−0.62]に定めている。また、夜景識別器63において、風景の否定閾値を値[−0.73]、夕景の否定閾値を値[1.30]、花の否定閾値を値[−0.57]、紅葉の否定閾値を値[−0.64]に定めている。説明は省略するが、花識別器64、及び、紅葉識別器65についても、他の否定閾値が同様に定められている。その結果、或る全体サブ識別器が有するサポートベクターマシンで取得された識別関数値に基づき、他のシーン(カテゴリー)に関する識別を行うことができ、処理の効率化が図れる。なお、全体識別器30Fにおける処理の流れについては、後で説明する。
<部分画像識別器30Gについて>
部分画像識別器30Gは、識別可能なシーンに応じた種類の数のサブ識別器(便宜上、部分サブ識別器ともいう。)を有する。各部分サブ識別器は、対象画像が特定のシーンに属することを部分特徴量に基づいて識別する。すなわち、部分画像毎の特徴に基づいて識別する。また、各部分サブ識別器は、対象画像が特定のシーンに属さないことも識別する。そして、各部分サブ識別器において、或るシーンに属すると確定した場合には、肯定フラグ記憶部37hの対応する領域に肯定フラグを記憶する。また、各部分サブ識別器において、或るシーンには属さないと確定した場合には、否定フラグ記憶部37iの対応する領域に否定フラグを記憶する。
なお、本実施形態の部分画像識別器30Gにおいて、各部分サブ識別器は、識別関数値の取得時に、部分特徴量に加え全体特徴量も用いている。すなわち、部分サブ識別器は、部分画像の識別時において、その部分画像の特徴に加え、対象画像の全体的な特徴も加味している。これは、部分画像の識別精度を高めるためである(後述する。)。
図5に示すように、部分画像識別器30Gは、部分サブ識別器として、夕景部分識別器71と、花部分識別器72と、紅葉部分識別器73とを有する。夕景部分識別器71は、対象画像が夕景のシーンに属するか否かを識別し、花部分識別器72は、対象画像が花のシーンに属するか否かを識別し、紅葉部分識別器73は、対象画像が紅葉のシーンに属するか否かを識別する。全体識別器30Fの識別対象となるシーンの種類の数と、部分画像識別器30Gの識別対象となるシーンの種類の数とを比較すると、部分画像識別器30Gの識別対象となるシーンの種類の数の方が少ない。これは、部分画像識別器30Gが、全体識別器30Fを補完する目的を有しているからである。部分画像識別器30Gは、主として、全体識別器30Fによる識別では精度が得られ難い画像を対象として識別を行っている。このため、全体識別器30Fによって十分な精度を得られる識別対象については、部分サブ識別器を設けていない。このような構成を採ることで、部分画像識別器30Gの構成を簡素化できる。ここで、部分画像識別器30Gはメインコントローラ31によって構成されているので、構成の簡素化とは、CPU36が実行する動作プログラムのサイズや必要なデータのサイズを小さくすることが該当する。構成の簡素化により、必要とされるメモリの容量を小さくできたり、処理を高速化できたりする。また、全体サブ識別器と部分サブ識別器とを比較すると、部分サブ識別器の方が、処理量が多くなりがちである。これは、複数の部分画像毎に識別を行っていることによる。この部分画像識別器30Gでは、部分サブ識別器の種類の数が全体サブ識別器の種類の数よりも少ないので、処理を効率的に行うことができる。
次に、部分画像識別器30Gでの識別に適する画像について考察する。まず、花のシーンと紅葉のシーンについて考察する。これらのシーンは、いずれもそのシーンの特徴が局所的に表れ易いといえる。例えば、花壇や花畑の画像では、画像の特定部分に複数の花が集まった状態となりやすい。この場合、複数の花が集まった部分に花のシーンの特徴が表れ、他の部分には風景のシーンに近い特徴が表れる。紅葉のシーンも同様である。すなわち、山肌の一部分に表れた紅葉を撮影した場合、画像の特定部分に紅葉が集まった状態となる。この場合も、山肌の一部分に紅葉のシーンの特徴が表れ、他の部分は風景のシーンの特徴が表れる。従って、部分サブ識別器として花部分識別器72と紅葉部分識別器73とを用いることにより、全体識別器30Fでは識別し難い花のシーンと紅葉のシーンであっても、識別性を高めることができる。すなわち、部分画像ごとに識別を行うので、画像の一部分に花や紅葉などの主要被写体の特徴が表れている画像であっても、部分画像の中において主要被写体の存在比率を高めることができる。その結果、精度良く識別することができる。次に、夕景のシーンについて考察する。この夕景のシーンも、夕景の特徴が局所的に表れる場合がある。例えば、水平線に沈む夕日を撮影した画像であって、完全に沈む直前のタイミングで撮影した画像を考える。このような画像では、夕日が沈む部分に夕日のシーンの特徴が表れ、他の部分には夜景のシーンの特徴が表れる。従って、部分サブ識別器として夕景部分識別器71を用いることで、全体識別器30Fでは識別し難い夕景のシーンであっても、識別性を高めることができる。
この部分画像識別器30Gにおいて、各部分サブ識別器による識別は、全体サブ識別器による識別と同様に1つ1つ順番に行われている。この部分画像識別器30Gでは、まず、夕景部分識別器71によって、対象画像が夕景のシーンに属するかを識別させている。そして、夕景のシーンに属するとは判断されなかった場合に、この対象画像が花のシーンに属するかを、花部分識別器72に識別させる。さらに、花のシーンに属するとは判断されなかった場合に、この対象画像が紅葉のシーンに属するかを、紅葉部分識別器73に識別させる。要するに、部分画像識別器30Gは、或る部分サブ識別器にて対象画像が対応する特定シーンに属すると識別されなかった場合に、他の部分サブ識別器に、対象画像が他の特定シーンに属することを識別させている。このように、識別を部分サブ識別器毎に行うように構成したので、識別の確実性を高めることができる。
各部分サブ識別器は、部分サポートベクターマシンと検出数カウンタとをそれぞれ有する。すなわち、夕景部分識別器71は、夕景用部分サポートベクターマシン71aと夕景用検出数カウンタ71bとを有し、花部分識別器72は、花用部分サポートベクターマシン72aと花用検出数カウンタ72bとを有し、紅葉部分識別器73は、紅葉用部分サポートベクターマシン73aと紅葉用検出数カウンタ73bとを有する。
部分サポートベクターマシン(夕景用部分サポートベクターマシン71a〜紅葉用部分サポートベクターマシン73a)は、各全体サブ識別器が有するサポートベクターマシン(風景用サポートベクターマシン61a〜紅葉用サポートベクターマシン65a)と同様のものである。この部分サポートベクターマシンは、学習データが部分データである点が、全体サブ識別器が有するサポートベクターマシンと異なっている。従って、各部分サポートベクターマシンは、識別対象となる部分の特徴を示す部分特徴量に基づく演算を行う。なお、本実施形態の各部分サポートベクターマシンは、部分特徴量に加え、全体特徴量を加味して演算を行っている。
この演算結果、すなわち識別関数値に関し、識別対象となる部分が、識別対象となっている或るカテゴリーの特徴を多く有するほど、その値は大きくなる。反対に、この部分が、識別対象となっていない他のカテゴリーの特徴を多く有するほど、その値は小さくなる。なお、この部分が、或るカテゴリーの特徴と他のカテゴリーの特徴のそれぞれを均等に有する場合には、この部分サポートベクターマシンで得られた識別関数値は値[0]になる。従って、部分サポートベクターマシンで得られた識別関数値が正の値になった部分(対象画像の一部分)に関しては、その部分サポートベクターマシンが対象とするシーンの方が、他のシーンよりも多くの特徴が表れているといえる。このように、部分サポートベクターマシンで得られた識別関数値は、その部分が或るカテゴリーに属する確率の大小を示す確率情報に相当する。
各検出数カウンタ(夕景用検出数カウンタ71b〜紅葉用検出数カウンタ73b)は、部分サポートベクターマシンで得られた識別関数値が正の値となった部分について、その数をカウントする。言い換えれば、対応するシーンの特徴が他のシーンの特徴よりも強く表れている部分画像の数をカウントする。これらの検出数カウンタは、対応するカテゴリーに対象となる部分画像が属することを判断する判断部の一部を構成する。すなわち、メインコントローラ31のCPU36は、検出数カウンタのカウント値と判断用閾値とに基づき、検出数カウンタのカウント値が判断用閾値を超えた場合に、対象となる部分画像が、対応するカテゴリーに属すると判断する。従って、この判断部は、メインコントローラ31によって構成されているといえる。そして、この判断用閾値は、対象画像が部分サブ識別器で扱われるシーンに属するとの肯定的な判断を与えるものである。従って、以下の説明において、このような肯定的な判断を与えるための判断用閾値のことを、肯定カウント値ともいう。肯定カウント値は、それぞれの部分サブ識別器に応じた値が定められる。この実施形態では、図16に示すように、夕景部分識別器71について値[5]が、花部分識別器72について値[9]が、紅葉部分識別器73について値[6]が、それぞれ肯定カウント値(判断用閾値)として定められている。
ところで、識別対象における部分的なカテゴリーが判ると、そのカテゴリーに基づいて他のカテゴリーについての判断をすることもできる。例えば、或るカテゴリーに属する部分が識別対象中に存在する場合、その識別対象は、或るカテゴリーとは大きく特徴の異なる他のカテゴリーには属さないと判断することができる。例えば、対象画像の識別において、花のシーンに属する部分画像が存在した場合、その対象画像は、花のシーンとは大きく特徴の異なる夜景のシーンには属さないと判断することができる。そこで、各部分サブ識別器は、検出数カウンタのカウント値と他の判断用閾値とに基づき、検出数カウンタのカウント値が他の判断用閾値を超えた場合に、対象画像が、対応するカテゴリーには属さないと判断する。
このような他の判断用閾値は、対象画像が、部分サブ識別器が扱うシーンとは異なるシーンには属さないとの否定的な判断を与えるものである。従って、以下の説明において、このような否定的な判断を与えるための他の判断用閾値のことを、否定カウント値ともいう。否定カウント値も、肯定カウント値と同様に、それぞれの部分サブ識別器に応じた値が定められる。この実施形態では、図16に示すように、夕景部分識別器71において、風景用の否定カウント値として値[1]が定められ、夜景用の否定カウント値として値[2]が定められている。また、花用の否定カウント値として値[1]が、紅葉用の否定カウント値として値[1]が、それぞれ定められている。説明は省略するが、夕景部分識別器71及び紅葉部分識別器73についても、同様に否定カウント値が定められている。なお、この否定カウント値は、部分サブ識別器で識別されるシーン以外の他のシーンについても定められている。図16の例では、風景用の否定カウント値と夜景用の否定カウント値とが定められている。このように、他のシーンについても否定カウント値を定めることで、判断条件を増やすことができ、識別性を高めることができる。
前述したように、各部分サポートベクターマシンは、部分特徴量に加え、全体特徴量を加味して演算を行っている。以下、この点について説明する。部分画像は、全体画像に比べて情報量が少ない。このため、カテゴリーの識別が困難になる場合がある。例えば、或る部分画像が、或るシーンと他のシーンとで共通する特徴を有していた場合には、識別が困難になる。仮に、部分画像が赤みの強い画像であったとする。この場合、部分特徴量だけでは、その部分画像が夕景のシーンに属するのか、紅葉のシーンに属するのか、識別し難いことがある。このような場合に、全体特徴量を加味することで、その部分画像の属するシーンを識別できることがある。例えば、全体特徴量が全体的に黒味を帯びた画像を示す場合、赤みの強い部分画像は、夕景のシーンに属する確率が高くなる。また、全体特徴量が全体的に緑色や青色を帯びた画像を示す場合、赤みの強い部分画像は、紅葉のシーンに属する確率が高くなる。このように、各部分サポートベクターマシンにおいて、全体特徴量を加味して演算を行うことで、識別精度を高めることができる。
<統合識別器30Hについて>
統合識別器30Hは、前述したように、全体識別器30Fと部分画像識別器Gのそれぞれでシーンが確定されなかった対象画像について、シーンを識別する。この実施形態における統合識別器30Hは、各全体サブ識別器(各サポートベクターマシン)で求められた確率情報に基づいてシーンを識別する。具体的には、統合識別器30Hは、メモリ37の確率情報記憶部37fに記憶された複数の確率情報の中から正の値の確率情報を選択的に読み出す。そして、読み出した確率情報の中から最も高い値を示すものを特定し、対応するシーンをその対象画像のシーンとする。例えば、風景及び紅葉の確率情報を選択的に読み出した場合であって、風景の確率情報が値[1.25]であり、紅葉の確率情報が値[1.10]であった場合、統合識別器30Hは、対象画像を風景のシーンに識別する。また、何れの確率情報も正の値でなかった場合、統合識別器30Hは、対象画像をその他のシーンに識別する。このような統合識別器30Hを設けることにより、属するシーンについての特徴がそれほど表れていない対象画像であっても、妥当なシーンに識別できる。すなわち、識別性を高めることができる。
<結果記憶部37jについて>
結果記憶部37jは、識別処理部30Iによる識別対象の識別結果を記憶する。例えば、全体識別器30Fや部分画像識別器30Gによる識別結果に基づき、肯定フラグ記憶部37hに肯定フラグが記憶された場合には、その識別対象が肯定フラグに対応するカテゴリーに属する旨を記憶する。仮に、対象画像について、風景のシーンに属する旨を示す肯定フラグが設定された場合には、風景のシーンに属する旨の結果情報を記憶する。同様に、対象画像について、夕景のシーンに属する旨を示す肯定フラグが設定された場合には、夕景のシーンに属する旨を示す旨の結果情報を記憶する。なお、全てのシーンについて否定フラグが記憶された対象画像については、その他のシーンに属する旨を示す結果情報を記憶する。結果記憶部37jに記憶された識別結果(結果情報)は、事後の処理で参照される。この複合機1では、画像補正部30C(図3を参照。)にて参照されて画像補正に使用される。例えば、図20に示すように、識別されたシーンに応じて、コントラストや明るさ、カラーバランスなどが調整される。
<画像識別処理について>
次に、メインコントローラ31による画像識別処理について説明する。この画像識別処理の実行によってメインコントローラ31は、顔識別部30A、及び、シーン識別部30B(特徴量取得部30E、全体識別器30F、部分画像識別器30G、統合識別器30H、結果記憶部37j)として機能する。そして、メインコントローラ31によって実行されるコンピュータプログラムは、画像識別処理を実現するためのコードを有する。
図21に示すように、メインコントローラ31は、対象画像データを読み込み、顔画像の有無を判断する(S21)。顔画像の有無は種々の方法で判断できる。例えば、メインコントローラ31は、肌色の標準色の領域の有無、及び、この領域内における目画像及び口画像の有無に基づいて、顔画像の有無を判断する。本実施形態では、一定面積以上(例えば、20×20画素以上)の顔画像を検出対象とする。顔画像があると判断した場合、メインコントローラ31は、対象画像における顔画像の面積の割合を取得し、この割合が所定閾値を超えているかを判断する(S22)。例えば、顔画像の面積の割合が30%を超えているかを判断する。そして、所定閾値を超えていた場合、メインコントローラ31は、対象画像を人物のシーンに識別する。また、所定閾値を超えていなかった場合、メインコントローラ31は、この対象画像を記念写真のシーンに識別する。これらの識別結果は、結果記憶部37jに記憶される。
対象画像中に顔画像がなかった場合、メインコントローラ31は、特徴量取得処理を行う(S23)。特徴量取得処理では、対象画像データに基づいて特徴量が取得される。すなわち、対象画像の全体的な特徴を示す全体特徴量と、対象画像の部分的な特徴を示す部分特徴量とを取得する。なお、各特徴量の取得については既に説明したので(S11〜S15,図6を参照。)、ここでは説明を省略する。そして、メインコントローラ31は、取得した各特徴量を、メモリ37の特徴量記憶部37eにそれぞれ記憶する。
特徴量を取得したならば、メインコントローラ31は、シーン識別処理を行う(S24)。このシーン識別処理において、メインコントローラ31は、まず全体識別器30Fとして機能し、全体識別処理(S24a)行う。この全体識別処理では、全体特徴量に基づく識別が行われる。そして、全体識別処理で対象画像の識別ができたならば、メインコントローラ31は、対象画像のシーンを、識別されたシーンに決定する(S24bでYES)。例えば、全体識別処理で肯定フラグが記憶されたシーンに決定する。そして、識別結果を結果記憶部37jに記憶する。なお、全体識別処理の内容については後で説明する。全体識別処理でシーンが決定しなかった場合、メインコントローラ31は、部分画像識別器30Gとして機能し、部分画像識別処理を行う(S24c)。この部分画像識別処理では、部分特徴量に基づく識別が行われる。そして、部分画像識別処理で対象画像の識別ができたならば、メインコントローラ31は、対象画像のシーンを識別されたシーンに決定し(S24dでYES)、識別結果を結果記憶部37jに記憶する。なお、部分画像識別処理の内容についても後で説明する。部分画像識別器30Gでもシーンが決定しなかった場合、メインコントローラ31は、統合識別器30Hとして機能し、統合識別処理を行う(S24e)。この統合識別処理でメインコントローラ31は、前述したように、確率情報記憶部37fから正の値の確率情報を読み出し、最も値の大きい確率情報に対応するシーンに決定する。そして、統合識別処理で対象画像の識別ができたならば、メインコントローラ31は、対象画像のシーンを、識別されたシーンに決定する(S24fでYES)。一方、統合識別処理でも対象画像の識別ができなかった場合、および、全てのシーンについて否定フラグが記憶された場合には、その対象画像はその他のシーンに識別される(S24fでNO)。なお、統合識別器30Hとしてのメインコントローラ31は、統合処理において、まず、全てのシーンについて否定フラグが記憶されているかを判断する。そして、全てのシーンについて否定フラグが記憶されていると判断した場合には、この判断に基づいてその他のシーンに識別する。この場合、否定フラグの確認だけで処理ができるので、処理の高速化が図れる。
<全体識別処理について>
次に、全体識別処理について説明する。図22に示すように、メインコントローラ31は、まず、識別を行う全体サブ識別器を選択する(S31)。図5に示すように、この全体識別器30Fでは、風景識別器61、夕景識別器62、夜景識別器63、花識別器64、紅葉識別器65の順に高い優先度が定められている。従って、初回の選択処理では、最も優先度の高い風景識別器61が選択される。そして、風景識別器61による識別が終了すると、2番目に優先度の高い夕景識別器62が選択される。他の全体サブ識別器も同様である。すなわち、夕景識別器62の次には3番目に優先度の高い夜景識別器63が選択され、夜景識別器63の次には4番目に優先度の高い花識別器64が選択され、花識別器64の次には最も優先度の低い紅葉識別器65が選択される。
全体サブ識別器を選択したならば、メインコントローラ31は、選択した全体サブ識別器で識別するシーンが、識別処理の対象となるシーンであるかを判断する(S32)。この判断は、肯定フラグ及び否定フラグに基づいて行われる。すなわち、或るシーンについて肯定フラグが記憶されていた場合、その対象画像は、肯定フラグに対応するシーンに確定される。このため、他のシーンについては識別する必要がない。このため、他のシーンについては識別対象から除外することができる。同様に、或るシーンについて否定フラグが設定されていた場合、その対象画像は、否定フラグに対応するシーンには識別されない。このため、否定フラグに対応するシーンについても識別対象から除外することができる。仮に、風景識別器61による識別で、風景のシーンに肯定フラグが記憶されたとする。この場合、残りの識別器による識別は行わなくてよい。このため、処理対象となるシーンではないと判断され(S32でNO)、識別処理がスキップされる。また、風景識別器61による識別で、夜景のシーンに否定フラグが記憶されたとする。この場合、夜景識別器63による識別は行わなくてよい。このため、夕景識別器62による識別処理の終了後に、処理対象となるシーンではないと判断され(S32でNO)、識別処理がスキップされる。このような構成を採ることにより、無駄な識別処理を行わなくて済み、処理の高速化が図れる。
一方、ステップS32で処理対象のシーンであると判断された場合、サポートベクターマシンによる演算が行われる。言い換えれば、全体特徴量に基づく確率情報の取得が行われる。このとき、メインコントローラ31は、処理対象のシーンに対応する全体サブ識別器として機能し、全体色平均、全体色分散、モーメント、及び、Exifの付属情報に基づく演算により、確率情報としての識別関数値を取得する。
識別関数値を取得したならば、肯定条件の成立が判断される(S34)。すなわち、メインコントローラ31は、対象画像を或るシーンに確定するための条件が成立しているか判断する。この例では、識別関数値と肯定閾値とを比較することで判断している。例えば、風景識別器61では、図15に示すように、識別関数値が値[1.72]を超えていた場合に、風景のシーンに対応する肯定フラグを肯定フラグ記憶部37hに記憶する(S35)。また、夕景識別器62では、図16に示すように、識別関数値が値[2.99]を超えていた場合に、夕景のシーンに対応する肯定フラグを肯定フラグ記憶部37hに記憶する。
肯定条件が成立しなかった場合、否定条件の成立が判断される(S36)。すなわち、メインコントローラ31は、対象画像が或るシーンに属さないと確定するための条件が成立しているか判断する。この例では、識別関数値と否定閾値とを比較することで判断している。例えば、図15及び図16に示すように、風景識別器61では、識別関数値が値[−1.01]よりも低い場合に、風景のシーンに対応する否定フラグを否定フラグ記憶部37iに記憶する(S37)。また、識別関数値が値[1.70]よりも大きい場合に夕景のシーンに対応する否定フラグを記憶し、識別関数値が値[1.05]よりも大きい場合に紅葉のシーンに対応する否定フラグを記憶し、識別関数値が値[−0.44]よりも大きい場合に夜景のシーンに対応する否定フラグを記憶する。なお、花のシーンの否定閾値は値[1.83]に定められており、風景のシーンの肯定閾値よりも大きい。そして、否定閾値による判断よりも肯定閾値による判断が優先されるので、風景識別器61では、花のシーンに対応する否定フラグは記憶されない。なお、説明は省略するが、他のサブ識別器についても、同様に、否定閾値による判断が行われる。
肯定フラグの記憶(S35)や否定フラグの記憶(S37)が行われた後、或いは、否定条件は成立しないと判断された後(S36でNO)には、次の全体サブ識別器の有無が判断される(S38)。ここでは、メインコントローラ31は、最も優先度の低い紅葉識別器65まで処理が終わったかを判断する。そして、紅葉識別器65まで処理が終わっている場合には、次の識別器はないと判断し、一連の全体識別処理を終了する。一方、紅葉識別器65まで処理が終わっていない場合には、次に優先度の高い全体サブ識別器を選択し(S31)、前述した処理を繰り返し行う。
<部分画像識別処理について>
次に、部分画像識別処理について説明する。図23に示すように、メインコントローラ31は、まず、識別を行う部分サブ識別器を選択する(S41)。図5に示すように、この部分画像識別器30Gでは、夕景部分識別器71、花部分識別器72、紅葉部分識別器73の順に高い優先度が定められている。従って、初回の選択処理では、最も優先度の高い夕景部分識別器71が選択される。そして、夕景部分識別器71による識別が終了すると、2番目に優先度の高い花部分識別器72が選択され、花部分識別器72の次には最も優先度の低い紅葉部分識別器73が選択される。
部分サブ識別器を選択したならば、メインコントローラ31は、選択した部分サブ識別器で識別するシーンが、識別処理の対象となるシーンであるかを判断する(S42)。この判断は、全体識別器30Fと同様に、肯定フラグ及び否定フラグに基づいて行われる。ここで、肯定フラグに関しては、部分サブ識別器による識別で記憶されたものが判断に用いられ、全体サブ識別器による識別で記憶されたものは判断には用いられない。これは、全体サブ識別器で肯定フラグが設定されると、全体識別処理でシーンが確定し、部分画像識別処理は行われないからである。一方、否定フラグに関しては、部分サブ識別器による識別で記憶されたものと、全体サブ識別器による識別で記憶されたもののそれぞれが判断に用いられる。この部分画像識別処理でも、処理対象のシーンでないと判断された場合には識別処理がスキップされる(S42でNO)。このため、無駄な識別処理を行わなくて済み、処理の高速化が図れる。
一方、ステップS42で処理対象のシーンであると判断された場合、部分サポートベクターマシンによる演算が行われる(S43)。言い換えれば、部分特徴量に基づき、部分画像に対する確率情報の取得が行われる。このとき、メインコントローラ31は、処理対象のシーンに対応する部分サブ識別器として機能し、部分色平均、及び、部分色分散に基づく演算により、確率情報としての識別関数値を取得する。そして、取得した識別関数値が正の値である場合には、対応する検出数カウンタをカウントアップ(+1)する。また、識別関数値が正の値でなかった場合には、検出数カウンタのカウント値はそのままとする。なお、検出数カウンタのカウント値は、新たな対象画像(対象画像データ)についての処理を行う際にリセットされる。
部分画像に対する確率情報の取得及びカウンタの処理を行ったならば、肯定条件の成立が判断される(S44)。すなわち、メインコントローラ31は、対象画像を処理対象となっているシーンに確定するための条件が成立しているか判断する。この例では、検出数カウンタのカウント値と肯定カウント値とを比較することで判断している。例えば、図16に示すように、夕景部分識別器71では、カウント値が値[5]を超えた場合に、夕景のシーンに対応する肯定フラグを肯定フラグ記憶部37hに記憶する(S45)。また、花部分識別器72では、カウント値が値[9]を超えた場合に、花のシーンに対応する肯定フラグを肯定フラグ記憶部37hに記憶する。
肯定条件が成立しなかった場合には、否定条件の成立が判断される(S46)。すなわち、メインコントローラ31は、対象画像が或るシーンに属さないと確定するための条件が成立しているか判断する。この例では、カウント値と否定カウント値とを比較することで判断している。例えば、図16に示すように、夕景部分識別器71では、カウント値が値[1]を超えた場合に、風景のシーンに対応する否定フラグを否定フラグ記憶部37iに記憶する(S47)。また、カウント値が値[2]を超えた場合に、夜景のシーンに対応する否定フラグを記憶する。なお、他のシーン、及び、他の部分サブ識別器についても同様である。
否定条件が成立しなかった場合(S46でNO)には、処理済みの部分画像が所定数を超えたかを判断する(S48)。ここで、まだ所定数を超えていない場合には、ステップS43に移行して前述した処理を繰り返し行う。一方、所定数を超えた場合、或いは、肯定フラグや否定フラグを記憶した場合(S45,S47)には、次の部分サブ識別器の有無が判断される(S49)。ここでは、メインコントローラ31は、最も優先度の低い紅葉部分識別器73まで処理が終わったかを判断する。そして、紅葉部分識別器73まで処理が終わっている場合には、次の識別器はないと判断し、一連の全体識別処理を終了する。一方、紅葉部分識別器73まで処理が終わっていない場合には、次に優先度の高い部分サブ識別器を選択し(S41)、前述した処理を繰り返し行う。
<識別処理部30Iのまとめ>
以上の説明から判るように、この識別処理部30Iでは、全体識別器30Fが全体特徴量に基づいて対象画像が属するシーンを識別し、部分画像識別器30Gが部分特徴量に基づいてこの対象画像が属するシーンを識別している。このように、或る対象画像が属するカテゴリーを、特性の異なる複数種類の識別器を用いて識別しているので、シーンの識別精度を向上させることができる。また、全体識別器30Fは、対象画像が特定のシーンに属することを識別する全体サブ識別器を、識別可能な特定シーンの種類に応じた複数有している。これにより、全体サブ識別器毎に特性を最適化でき、識別精度を高めることができる。
各全体サブ識別器は、対象画像の識別を、特定のシーンに属する確率の大小を示す確率情報(識別関数値)に基づいて行っている。すなわち、確率情報で示される確率が、確率閾値で規定される範囲であって識別対象が前記或るカテゴリーに属すると確定し得る確率の範囲内の場合に、対象画像が特定のカテゴリーに属すると識別している。これにより、識別の精度を保証しつつ、処理を高速化できる。すなわち、処理速度と識別精度とを高いレベルで両立できる。また、部分サブ識別器は、複数の部分画像データから取得された複数の部分特徴量毎に、対応する部分が特定のシーンに属するかを確率情報に基づいて識別し、特定のシーンに属すると識別された部分の数を検出数カウンタでカウントしている。そして、このカウント値に基づき、対象画像が、全体として特定のシーンに属するかを識別している。このように、カウント値を判断基準にしているので、識別処理を効率よく行うことができる。
この識別処理部30Iにおいて、全体識別器30Fと部分画像識別器30Gのそれぞれで属するシーンが識別できなかった対象画像については、統合識別器30Hを用いて識別をしている。この統合識別器30Hでは、対象画像について複数のシーンのそれぞれについて取得された確率情報(識別関数値)のうち、最も高い確率を示す確率情報に対応するシーンを、その対象画像の属するシーンに識別している。このような統合識別器30Hを設けることで、全体識別器30Fと部分画像識別器30Gのそれぞれで属するシーンが識別できなくても、統合識別器30Hで識別が行える。このため、識別精度のさらなる向上が図れる。
識別処理部30Iが有する全体識別器30Fは、識別対象が異なる複数の全体サブ識別器を有している。そして、前段の全体サブ識別器にて、対象画像が属するシーンを確定できた場合には、後段の全体サブ識別器による識別を行わない。すなわち、前段の全体サブ識別器では、サポートベクターマシン(第1確率情報取得部に相当する。)で確率情報(識別対象が第1カテゴリーに属する確率の大小を示す第1確率情報に相当する。)を取得し、この確率情報で示される確率が、確率閾値で規定される範囲であって、対象画像がそのシーン(第1カテゴリーに相当する。)に属すると確定し得る確率の範囲内の場合に、肯定フラグを記憶する。後段の全体サブ識別器は、記憶された肯定フラグに基づき、その対象画像についての識別を行わないと判断する。この場合、サポートベクターマシン(第2確率情報取得部に相当する。)による確率情報(識別対象が第2カテゴリーに属する確率の大小を示す第2確率情報に相当する。)の取得は行われない。従って、シーンの識別における処理を高速化できる。ここで、前段の全体サブ識別器が有するサポートベクターマシンと、後段の全体サブ識別器が有するサポートベクターマシンとは、同じ特徴量を使用している。これにより、特徴量の取得処理が共通化されるので、処理の効率化が図れる。
また、識別処理部30Iが有する全体識別器30Fと部分画像識別器30Gは、同じシーンの識別を行うサブ識別器を有している。前述した実施形態では、全体識別器30Fが有する夕景識別器62と部分画像識別器30Gが有する夕景部分識別器71とが、夕景のシーンを識別している。また、花識別器64と花部分識別器72、及び、紅葉識別器65と紅葉部分識別器73についても同様である。そして、部分サブ識別器(夕景部分識別器71,花部分識別器72,紅葉部分識別器73)は、全体サブ識別器(夕景識別器62,花識別器64,紅葉識別器65)にて対象画像が属するシーンを確定できた場合には、その対象画像についての識別を行わない。これにより、シーンの識別における処理を高速化できる。そして、全体サブ識別器は、対象画像の全体的な特徴を示す全体特徴量に基づいて属するシーンを識別し、部分サブ識別器は、対象画像の全体的な特徴を示す全体特徴量に基づいて属するシーンを識別している。このように、その識別器の特性に適した特徴量を用いているので、識別の精度を高めることができる。例えば、全体サブ識別器では対象画像の全体的な特徴を加味した識別ができ、部分サブ識別器では対象画像の部分的な特徴を加味した識別ができる。
また、各全体サブ識別器では、或る全体サブ識別器が有するサポートベクターマシンで得られた確率情報に基づいて、他の全体サブ識別器による識別を行わないようにしている。すなわち、或る全体サブ識別器は、得られた確率情報を確率閾値と比較することで、対象画像が他の全体サブ識別器に対応する他のシーンに属さないかを判断している。そして、属さないと判断した場合は、他のシーンに対応する否定フラグを記憶する。この否定フラグに基づき、他の全体サブ識別器は、その対象画像についての識別を行わないと判断する。このように構成することで、処理の効率化が図れる。また、或る全体サブ識別器が有するサポートベクターマシンで得られた確率情報は、或る全体サブ識別器に対応するシーンの判断と他の全体サブ識別器に対応するシーンの判断のそれぞれに用いられる。このように、確率情報を多用途に用いているので、その点でも処理の効率化が図れる。
また、全体識別器30Fにて、各全体サブ識別器で取得された確率情報に基づき、いずれのシーンにも属さないと確定し得る場合、部分画像識別器30Gは、その対象画像に対する識別を行わない。このため、処理の高速化が図れる。
===その他の実施形態===
前述した実施形態において、識別対象は画像データに基づく画像であり、識別装置は複合機1である。ここで、画像を識別対象とする識別装置は、複合機1に限定されるものではない。例えば、デジタルスチルカメラDC、スキャナ、画像処理用のコンピュータプログラム(例えば、レタッチソフトウェア)を実行可能なコンピュータであってもよい。また、画像データに基づく画像を表示可能な画像表示装置、画像データを記憶する画像データ記憶装置であってもよい。また、識別対象は、画像に限定されるものではない。すなわち、複数の識別器を用いて複数のカテゴリーに分類されるものであれば、識別対象となりうる。
また、前述した実施形態は、対象画像のシーンを識別する複合機1について記載されているが、その中には、カテゴリー識別装置、カテゴリー識別方法、識別したカテゴリーを利用する方法(例えば、シーンに基づく画像補正方法、印刷方法及び液体吐出方法)、コンピュータプログラム、コンピュータプログラムやコードを記憶した記憶媒体等の開示も含まれている。
また、識別器に関し、前述した実施形態では、サポートベクターマシンを例示したが、識別対象のカテゴリーを分類できるものであれば、サポートベクターマシンに限られない。例えば、識別器として、ニューラルネットワークを用いてもよいし、アダブーストを用いてもよい。