説明

カテゴリ識別方法、及びプログラム

【課題】識別処理の速度を向上させる。
【解決手段】
識別対象と、サポートベクタとの関係に応じた関数値を算出し、各サポートベクタに対する関数値を積算した積算値を算出し、積算値と閾値との比較に基づいて、識別対象が特定のカテゴリに属することを識別する、カテゴリ識別方法であって、積算値の算出は、関数値が正負のいずれか一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行い、積算される関数値が他方の符号である場合に、そのときの積算値と、残りのサポートベクタに対する関数値を積算した値の予測値と、閾値と、に基づいて、識別対象が特定のカテゴリに属することを識別する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カテゴリ識別方法、及びプログラムに関する。
【背景技術】
【0002】
従来、画像のシーン等のカテゴリの識別方法として、サポートベクタマシンを用いた識別方法が知られている(例えば特許文献1参照)。サポートベクタマシンでは、学習用サンプルを用いた学習により、識別境界に寄与するサポートベクタが定められる。そして、識別対象と各サポートベクタとの関係に基づいた演算によって判別式が算出される。この判別式の値と閾値との比較によって、識別対象が特定のカテゴリに属するか否かの識別が行われる。
【特許文献1】特開2005−134966号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
サポートベクタマシンを用いた識別処理では、学習用サンプルが多いほど、すなわちサポートベクタの数が多いほど、識別の精度を高めることができる。ところで、後述するようにサポートベクタマシンによる判別式の演算時間はサポートベクタの数に比例する。つまり、識別精度を高めるためにサポートベクタの数を多くすると、判別式の演算に要する時間が増加し、識別処理の速度が低下することになる。このように、従来、識別処理の速度を向上させることが困難であるという問題点があった。
【0004】
本発明は、上記のような課題に鑑みてなされたものであり、その目的は、識別処理の速度を向上させることにある。
【課題を解決するための手段】
【0005】
前記目的を達成するための主たる発明は、識別対象と、サポートベクタとの関係に応じた関数値を算出し、各サポートベクタに対する前記関数値を積算した積算値を算出し、前記積算値と閾値との比較に基づいて、前記識別対象が特定のカテゴリに属することを識別する、カテゴリ識別方法であって、前記積算値の算出は、前記関数値が正負のいずれか一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行い、積算される前記関数値が前記他方の符号である場合に、そのときの前記積算値と、残りの前記サポートベクタに対する前記関数値を積算した値の予測値と、前記閾値と、に基づいて、前記識別対象が前記特定のカテゴリに属することを識別する、ことを特徴とする。
【0006】
本発明の他の特徴は、本明細書、及び添付図面の記載により、明らかにする。
【発明を実施するための最良の形態】
【0007】
===開示の概要===
本明細書及び添付図面の記載により、少なくとも以下の事項が明らかになる。
【0008】
すなわち、識別対象と、サポートベクタとの関係に応じた関数値を算出し、各サポートベクタに対する前記関数値を積算した積算値を算出し、前記積算値と閾値との比較に基づいて、前記識別対象が特定のカテゴリに属することを識別する、カテゴリ識別方法であって、前記積算値の算出は、前記関数値が正負のいずれか一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行い、積算される前記関数値が前記他方の符号である場合に、そのときの前記積算値と、残りの前記サポートベクタに対する前記関数値を積算した値の予測値と、前記閾値と、に基づいて、前記識別対象が前記特定のカテゴリに属することを識別するカテゴリ識別方法が明らかになる。
このようなカテゴリ識別方法によれば、識別処理の速度を向上させることができる。
【0009】
かかるカテゴリ識別方法であって、前記他方の符号は負であり、前記予測値は、残りの前記サポートベクタに対する前記関数値を積算した値として予測される最小値であることが望ましい。
このようなカテゴリ識別方法によれば、残りの関数値が負の値のみの場合に、予測値が予測されるうちの最小値であると、識別対象が特定のカテゴリに属していることの識別をより速く行うことができる。よって、識別処理の速度をより速めることができる。
【0010】
かかるカテゴリ識別方法であって、前記積算値と前記予測値との加算値が前記閾値よりも大きい場合、残りの前記サポートベクタに対する前記関数値を積算することなく、前記識別対象が前記特定のカテゴリに属すると識別することが望ましい。
このようなカテゴリ識別方法によれば、最終的な積算値が閾値より大きくなると演算の途中で判断できるので、演算を途中で打ち切ることができる。よって識別速度を向上させることができる。
【0011】
かかるカテゴリ識別方法であって、前記他方の符号は正であり、前記予測値は、残りの前記サポートベクタに対する前記関数値を積算した値として予測される最大値であることが望ましい。
このようなカテゴリ識別方法によれば、残りの関数値が正の値のみの場合に、予測値が予測されるうちの最大値であると、識別対象が特定のカテゴリに属していることの識別をより速く行うことができる。よって、識別処理の速度をより速めることができる。
【0012】
かかるカテゴリ識別方法であって、前記積算値と前記予測値との加算値が前記閾値よりも小さい場合、残りの前記サポートベクタに対する前記関数値を積算することなく、前記識別対象が前記特定のカテゴリに属すると識別することが望ましい。
このようなカテゴリ識別方法によれば、最終的な積算値が閾値より小さくなると演算の途中で判断できるので、演算を途中で打ち切ることができる。よって識別速度を向上させることができる。
【0013】
かかるカテゴリ識別方法であって、前記予測値は、前記関数値が前記他方の符号となる前記サポートベクタ毎にそれぞれ求められていることが望ましい。
このようなカテゴリ識別方法によれば、各サポートベクタに対する演算毎に比較を行うことができるので、識別処理の精度を高めることができる。
【0014】
かかるカテゴリ識別方法であって、残りの前記サポートベクタのうちの一つを前記識別対象に定めた場合の、残りの前記サポートベクタに対する前記関数値を積算した仮予測値を算出し、残りの各サポートベクタのそれぞれを前記識別対象に定めた場合について算出された前記仮予測値の最小値に基づいて前記予測値を決定する、ことが望ましい。
このようなカテゴリ識別方法によれば、サポートベクタ毎に対する予測値を、予め容易に算出しておくことができる。
【0015】
また、カテゴリ識別装置に、識別対象と、サポートベクタとの関係に応じた関数値を算出させ、各サポートベクタに対する前記関数値を積算した積算値を算出させ、前記積算値と閾値との比較に基づいて、前記識別対象が特定のカテゴリに属することを識別させる、プログラムであって、前記カテゴリ識別装置に、前記積算値の算出を、前記関数値が一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行わせ、積算される前記関数値が前記他方の符号である場合に、そのときの前記積算値と、残りの前記サポートベクタに対する前記関数値を積算した値の予測値との加算値と、前記閾値と、に基づいて、前記識別対象が前記特定のカテゴリに属することを識別させる、ことを特徴とするプログラムが明らかになる。
【0016】
また、識別対象と、サポートベクタとの関係に応じた関数値を算出し、各サポートベクタに対する前記関数値を積算した積算値を算出し、前記積算値と閾値との比較に基づいて、前記識別対象が特定のカテゴリに属しないことを識別する、カテゴリ識別方法であって、前記積算値の算出は、前記関数値が正負のいずれか一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行い、積算される前記関数値が前記他方の符号である場合に、そのときの前記積算値と、残りの前記サポートベクタに対する前記関数値を積算した値の予測値と、前記閾値と、に基づいて、前記識別対象が前記特定のカテゴリに属しないことを識別する、ことを特徴とするカテゴリ識別方法が明らかになる。
このようなカテゴリ識別方法によれば、識別処理の速度を向上させることができる。
【0017】
===全体構成===
図1は、画像処理システムの説明図である。この画像処理システムは、デジタルスチルカメラ2と、プリンタ4とを備える。
【0018】
デジタルスチルカメラ2は、被写体をデジタルデバイス(CCDなど)に結像させることによりデジタル画像を取得するカメラである。デジタルスチルカメラ2には、モード設定ダイヤル2Aが設けられている。ユーザは、モード設定ダイヤル2Aによって、撮影条件に応じた撮影モードを設定することができる。例えば、モード設定ダイヤル2Aによって、「夜景」モードが設定されると、デジタルスチルカメラ2は、シャッター速度を遅くしたり、ISO感度を高くしたりして、夜景撮影に適した撮影条件にて撮影を行う。
【0019】
デジタルスチルカメラ2は、ファイルフォーマット規格に準拠して、撮影により生成した画像ファイルをメモリカード6に保存する。画像ファイルには、撮影した画像のデジタルデータ(画像データ)だけでなく、撮影時の撮影条件(撮影データ)等の付加データも保存される。
【0020】
プリンタ4は、画像データの示す画像を紙に印刷する印刷装置である。プリンタ4には、メモリカード6を挿入するスロット21が設けられている。ユーザは、デジタルスチルカメラ2で撮影した後、デジタルスチルカメラ2からメモリカード6を取り出し、スロット21にメモリカード6を挿入することができる。
【0021】
図2はプリンタ4の構成の説明図である。プリンタ4は、印刷機構10と、この印刷機構10を制御するプリンタ側コントローラ20とを備える。印刷機構10は、インクを吐出するヘッド11と、ヘッド11を制御するヘッド制御部12と、紙を搬送するため等のモータ13と、センサ14とを有する。プリンタ側コントローラ20は、メモリカード6からデータを送受信するためのメモリ用スロット21と、CPU22と、メモリ23と、モータ13を制御する制御ユニット24と、駆動信号(駆動波形)を生成する駆動信号生成部25とを有する。
【0022】
メモリカード6がスロット21に挿入されると、プリンタ側コントローラ20は、メモリカード6に保存されている画像ファイルを読み出してメモリ23に記憶する。そして、プリンタ側コントローラ20は、画像ファイルの画像データを印刷機構10で印刷するための印刷データに変換し、印刷データに基づいて印刷機構10を制御し、紙に画像を印刷する。この一連の動作は、「ダイレクトプリント」と呼ばれている。
【0023】
なお、「ダイレクトプリント」は、メモリカード6をスロット21に挿入することによって行われるだけでなく、デジタルスチルカメラ2とプリンタ4とをケーブル(不図示)で接続することによっても可能である。
【0024】
===自動補正機能の概要===
「人物」の写真を印刷するときには、肌色をきれいにしたいという要求がある。また、「風景」の写真を印刷するときには、空の青色を強調し、木や草の緑色を強調したいという要求がある。そこで、本実施形態のプリンタ4は、画像ファイルを分析して自動的に適した補正処理を行う自動補正機能を備えている。
【0025】
図3は、プリンタ4の自動補正機能の説明図である。図中のプリンタ側コントローラ20の各要素は、ソフトウェアとハードウェアによって実現される。
記憶部31は、メモリ23の一部の領域及びCPU22によって実現される。メモリカード6から読み出された画像ファイルの画像データは、記憶部31の画像記憶部31Aに展開される。また、プリンタ側コントローラ20の各要素の演算結果は、記憶部31の結果記憶部31Bに格納される。
【0026】
顔識別部32は、CPU22と、メモリ23に記憶された顔識別プログラムとによって実現される。顔識別部32は、画像記憶部31Aに記憶された画像データを分析し、顔の有無を確認する。顔識別部32によって顔が有ると識別された場合、識別対象となる画像が「人物」のシーンに属すると識別される。この場合、シーン識別部33によるシーン識別処理は行われない。顔識別部32による顔識別処理は、既に広く行われている処理と同様なので、詳細な説明は省略する。
【0027】
シーン識別部33は、CPU22と、メモリ23に記憶されたシーン識別プログラムとによって実現される。シーン識別部33は、画像記憶部31Aに記憶された画像ファイルを分析し、画像データの示す画像のシーンを識別する。シーン識別部33によるシーン識別処理は、顔識別部32によって顔がない(「人物」のシーンでない)と識別された場合に行われる。後述するように、シーン識別部33は、識別対象となる画像が「風景」、「夕景」、「夜景」、「花」、「紅葉」、「その他」のいずれの画像であるかを識別する。
【0028】
図4は、画像のシーンと補正内容との関係の説明図である。
画像補正部34は、CPU22と、メモリ23に記憶された画像補正プログラムとによって実現される。画像補正部34は、記憶部31の結果記憶部31B(後述)に記憶されている識別結果(顔識別部32やシーン識別部33の識別結果)に基づいて、画像記憶部31Aの画像データを補正する。例えば、シーン識別部33の識別結果が「風景」である場合には、青色を強調し、緑色を強調するような補正が行われる。なお、画像補正部34は、シーンの識別結果だけでなく、画像ファイルの撮影データの内容も反映して、画像データを補正しても良い。例えば、露出補正がマイナスの場合、暗い雰囲気の画像を明るくしないように画像データを補正してもよい。
【0029】
プリンタ制御部35は、CPU22、駆動信号生成部25、制御ユニット24及びメモリ23に記憶されたプリンタ制御プログラムによって、実現される。プリンタ制御部35は、補正後の画像データを印刷データに変換し、印刷機構10に画像を印刷させる。
【0030】
===シーン識別処理===
図5は、シーン識別部33によるシーン識別処理のフロー図である。図6は、シーン識別部33の機能の説明図である。図中のシーン識別部33の各要素は、ソフトウェアとハードウェアによって実現される。シーン識別部33は、図6に示す特徴量取得部40と、全体識別器50と、部分識別器60と、統合識別器70とを備えている。
【0031】
最初に、特徴量取得部40が、記憶部31の画像記憶部31Aに展開された画像データを分析し、部分特徴量を取得する(S101)。具体的には、特徴量取得部40は、画像データを8×8の64ブロックに分割し、各ブロックの色平均と分散を算出し、この色平均と分散を部分特徴量として取得する。なお、ここでは各画素はYCC色空間における階調値のデータをもっており、各ブロックごとに、Yの平均値、Cbの平均値及びCrの平均値がそれぞれ算出され、Yの分散、Cbの分散及びCrの分散がそれぞれ算出される。つまり、各ブロックごとに3つの色平均と、3つの分散が部分特徴量として算出される。これらの色平均や分散は、各ブロックにおける部分画像の特徴を示すものである。なお、RGB色空間における平均値や分散を算出してもよい。
【0032】
ブロックごとに色平均と分散が算出されるので、特徴量取得部40は、画像記憶部31Aには画像データのすべてを展開せずに、ブロック分の画像データをブロック順に展開する。このため、画像記憶部31Aは、必ずしも画像ファイルの全てを展開できるだけの容量を備えていなくとも良い。
【0033】
次に、特徴量取得部40が、全体特徴量を取得する(S102)。具体的には、特徴量取得部40は、画像データの全体の色平均、分散、重心及び撮影情報を全体特徴量として取得する。なお、これらの色平均や分散は、画像の全体の特徴を示すものである。画像データ全体の色平均、分散及び重心は、先に算出した部分特徴量を用いて算出される。このため、全体特徴量を算出する際に画像データを展開する必要がないので、全体特徴量の算出速度が速くなる、全体識別処理(後述)は、部分識別処理(後述)よりも先に行われるにも関わらず、全体特徴量が部分特徴量よりも後に求められるのは、このように算出速度を速めるためである。なお、撮影情報は、画像ファイルの撮影データから抽出される。具体的には、絞り値、シャッター速度、フラッシュ発光の有無などの情報が全体特徴量として用いられる。但し、画像ファイルの撮影データの全てが全体特徴量として用いられるわけではない。
【0034】
次に、全体識別器50が、全体識別処理を行う(S103)。全体識別処理とは、全体特徴量に基づいて、画像データの示す画像のシーンを識別(推定)する処理である。全体識別処理の詳細については、後述する。
【0035】
全体識別処理によってシーンの識別が出来る場合(S104でYES)、シーン識別部33は、記憶部31の結果記憶部31Bに識別結果を記憶することによってシーンを決定し(S109)、シーン識別処理を終了する。つまり、全体識別処理によってシーンの識別ができた場合(S104でYES)、部分識別処理や統合識別処理が省略される。これによりシーン識別処理の速度が速くなる。
全体識別処理によってシーンの識別ができない場合、(S104でNO)、次に部分識別器60が、部分識別処理を行う(S105)。部分識別処理とは、部分特徴量に基づいて、画像データの示す画像全体のシーンを識別する処理である。部分識別処理の詳細については後述する。
【0036】
部分識別処理によってシーンの識別ができる場合(S106でYES)、シーン識別部33は、記憶部31の結果記憶部31Bに識別結果を記憶することによってシーンを決定し(S109)、シーン識別処理を終了する。つまり、部分識別処理によってシーンの識別ができた場合(S106でYES)、統合識別処理が省略される。これにより、シーン識別処理の速度が速くなる。
部分識別処理によってシーンの識別ができない場合(S106でNO)、次に統合識別器70が、統合識別処理を行う(S107)。統合識別処理の詳細については後述する。
【0037】
統合識別処理によってシーンの識別ができる場合(S108でYES)、シーン識別部33は、記憶部31の結果記憶部31Bに識別結果を記憶することによってシーンを決定し(S109)、シーン識別処理を終了する。一方、統合識別処理によってシーンの識別ができない場合(S108でNO)、画像データの示す画像が「その他」のシーン(「風景」、「夕景」、「夜景」、「花」又は「紅葉」以外のシーン)である旨の識別結果を結果記憶部31Bに記憶する(S110)。
【0038】
===全体識別処理===
図7は、全体識別処理のフロー図である。ここでは、図6も参照しながら全体識別処理について説明する。
【0039】
まず、全体識別器50は、複数のサブ識別器51の中から1つのサブ識別器51を選択する(S201)。全体識別器50には、識別対象となる画像(識別対象画像)が特定のシーンに属するか否かを識別するサブ識別器51が5つ設けられている。5つのサブ識別器51は、それぞれ風景、夕景、夜景、花、紅葉のシーンを識別する。ここでは、全体識別器50は、風景→夕景→夜景→花→紅葉の順に、サブ識別器51を選択する。このため、最初には、識別対象画像が風景のシーンに属するか否かを識別するサブ識別器51(風景識別器51L)が選択される。
【0040】
次に、全体識別器50は、識別対象テーブルを参照し、選択したサブ識別器51を用いてシーンを識別すべきか否かを判断する(S202)。
【0041】
図8は、識別対象テーブルの説明図である。この識別対象テーブルは、記憶部31の結果記憶部31Bに記憶される。識別対象テーブルは、最初の段階では全ての欄がゼロに設定される。S202の処理では、「否定」欄が参照され、ゼロであればYESと判断され、1であればNOと判断される。ここでは、全体識別器50は、識別対象テーブルにおける「風景」欄の「否定」欄を参照し、ゼロであるのでYES(S202でYES)と判断する。
【0042】
次に、サブ識別器51は、識別対象画像が特定のシーンに属すか否かを識別する。具体的には、サブ識別器51は、全体特徴量に基づいて、識別対象画像が特定のシーンに属する確率(確信度)を算出する(S203)。本実施形態のサブ識別器51には、サポートベクタマシン(SVM)による識別手法が用いられている。なお、サポートベクタマシンについては、後述する。識別対象画像が特定のシーンに属する場合、サブ識別器51で算出される判別式は、プラスの値になりやすい。識別対象画像が特定のシーンに属しない場合、サブ識別器51で算出される判別式は、マイナスの値になりやすい。また、判別式は、識別対象画像が特定のシーンに属する確信度が高いほど、大きな値になる。このため、判別式の値が大きければ、識別対象画像が特定のシーンに属する確率が高くなり、判別式の値が小さければ、識別対象画像が特定のシーンに属する確率が低くなる。
【0043】
次に、サブ識別器51は、判別式の値が肯定閾値より大きいか否かを判断する(S204)。判別式の値が肯定閾値よりも大きければ、サブ識別器51は、識別対象画像が特定のシーンに属すると判断することになる。
【0044】
図9は、全体識別処理の肯定閾値の説明図である。同図において、横軸は肯定閾値を示し、縦軸はRecall又はPrecisionの確率を示す。図10は、RecallとPrecisionの説明図である。判別式の値が肯定閾値以上の場合には識別結果はPositiveであり、判別式の値が肯定閾値以上でない場合には識別結果はNegativeである。
【0045】
Recallは、再現率や検出率を示すものである。Recallは、特定のシーンの画像の総数に対する、特定のシーンに属すると識別された画像の割合である。言い換えると、Recallは、特定のシーンの画像をサブ識別器51に識別させたときに、サブ識別器51がPositiveと識別する確率(特定のシーンの画像が特定のシーンに属すると識別される確率)を示すものである。例えば、風景画像を風景識別器51Lに識別させたときに、風景のシーンに属すると風景識別器51Lが識別する確率を示すものである。
【0046】
Precisionは、正答率や正解率を示すものである。Precisionは、Positiveと識別された画像の総数に対する、特定のシーンの画像の数の割合である。言い換えると、Precisionは、特定のシーンを識別するサブ識別器51がPositiveと判断したときに、識別対象の画像が特定のシーンである確率を示すものである。例えば、風景識別器51Lが風景のシーンに属すると識別したときに、その識別した画像が本当に風景画像である確率を示すものである。
【0047】
図9から分かる通り、肯定閾値を大きくするほど、Precisionが大きくなる。このため、肯定閾値を大きくするほど、例えば風景のシーンに属すると識別された画像が風景画像である確率が高くなる。つまり、肯定閾値を大きくするほど、誤識別の確率が低くなる。
【0048】
一方、肯定閾値を大きくするほど、Recallは小さくなる。この結果、例えば、風景画像を風景識別器51Lで識別した場合であっても、風景のシーンに属すると正しく識別しにくくなる。ところで、識別対象画像が風景のシーンに属すると識別できれば(S204でYES)、残りの別のシーン(夕景など)の識別を行わないようにして全体識別処理の速度を速めている。このため、肯定閾値を大きくするほど、全体識別処理の速度は低下することになる。また、全体識別処理によってシーンが識別できれば部分識別処理を行わないようにしてシーン識別処理の速度を速めているため(S104)、肯定閾値を大きくするほど、シーン識別処理の速度は低下することになる。
【0049】
つまり、肯定閾値が小さすぎると誤識別の確率が高くなり、大きすぎると処理速度が低下することになる。本実施形態では、正答率(Precision)を97.5%に設定するため、風景の肯定閾値は1.27に設定されている。
【0050】
判別式の値が肯定閾値より大きければ(S204でYES)、サブ識別器51は、識別対象画像が特定のシーンに属すると判断し、肯定フラグを立てる(S205)。「肯定フラグを立てる」とは、図8の「肯定」欄を1にすることである。この場合、全体識別器50は、次のサブ識別器51による識別を行わずに全体識別処理を終了する。例えば、風景画像であると識別できれば、夕景などの識別を行わずに、全体識別処理を終了する。この場合、次のサブ識別器51による識別を省略しているので、全体識別処理の速度を速めることができる。
判別式の値が肯定閾値より大きくなければ(S204でNO)、サブ識別器51は、識別対象画像が特定のシーンに属すると判断できず、次のS206の処理を行う。
【0051】
次にサブ識別器51は、判別式の値と否定閾値とを比較する(S206)。これにより、サブ識別器51は、識別対象画像が所定のシーンに属しないかを判断する。このような判断としては、2種類ある。第1に、ある特定のシーンのサブ識別器51の判別式の値が第1否定閾値よりも小さければ、その特定のシーンに識別対象画像が属しないと判断されることになる。例えば、風景識別器51Lの判別式の値が第1否定閾値よりも小さければ、識別対象画像が風景のシーンに属しないと判断されることになる。第2に、ある特定のシーンのサブ識別器51の判別式の値が第2否定閾値よりも大きければ、その特定のシーンとは別のシーンに識別対象画像が属しないと判断されることになる。例えば、風景識別器51Lの判別式の値が第2否定閾値よりも大きければ、識別対象画像が夜景のシーンに属しないと判断されることになる。
【0052】
図11は、第1否定閾値の説明図である。同図において、横軸は第1否定閾値を示し、縦軸は確率を示す。グラフの太線は、True Negative Recallのグラフであり、風景画像以外の画像を風景画像ではないと正しく識別する確率を示している。グラフの細線は、False Negative Recallのグラフであり、風景画像なのに風景画像ではないと誤って識別する確率を示している。
【0053】
図11から分かる通り、第1否定閾値を小さくするほど、False Negative Recallが小さくなる。このため、第1否定閾値を小さくするほど、例えば風景のシーンに属しないと識別された画像が風景画像である確率が低くなる。つまり、誤識別の確率が低くなる。
【0054】
一方、第1否定閾値を小さくするほど、True Negative Recallも小さくなる。この結果、風景画像以外の画像を風景画像ではないと識別しにくくなる。その一方、識別対象画像が特定のシーンでないことを識別できれば、部分識別処理の際に、その特定のシーンのサブ部分識別器61による処理を省略してシーン識別処理速度を速めている(後述、図14のS302)。このため、第1否定閾値を小さくするほど、シーン識別処理速度は低下する。
【0055】
つまり、第1否定閾値が大きすぎると誤識別の確率が高くなり、小さすぎると処理速度が低下することになる。本実施形態では、False Negative Recallを2.5%に設定するため、第1否定閾値は−1.10に設定されている。
【0056】
ところで、ある画像が風景のシーンに属する確率が高ければ、必然的にその画像が夜景のシーンに属する確率は低くなる。このため、風景識別器51Lの判別式の値が大きい場合には、夜景ではないと識別できる場合がある。このような識別を行うために、第2否定閾値が設けられている。
【0057】
図12は、第2否定閾値の説明図である。同図において、横軸は風景の判別式の値を示し、縦軸は確率を示す。同図には、図9のRecallとPrecisionのグラフとともに、夜景のRecallのグラフが点線で描かれている。この点線のグラフに注目すると、風景の判別式の値が−0.45よりも大きければ、その画像が夜景画像である確率は2.5%である。言い換えると、風景の判別式の値が−0.45よりも大きい場合にその画像が夜景画像でないと識別しても、誤識別の確率は2.5%にすぎない。そこで、本実施形態では、第2否定閾値が−0.45に設定されている。
【0058】
そして、判別式の値が第1否定閾値より小さい場合、又は、判別式の値が第2否定閾値より大きい場合(S206でYES)、サブ識別器51は、識別対象画像が所定のシーンに属しないと判断し、否定フラグを立てる(S207)。「否定フラグを立てる」とは、図8の「否定」欄を1にすることである。例えば、第1否定閾値に基づいて識別対象画像が風景のシーンに属しないと判断された場合、「風景」欄の「否定」欄が1になる。また、第2否定閾値に基づいて識別対象画像が夜景のシーンに属しないと判断された場合、「夜景」欄の「否定」欄が1になる。
【0059】
図13Aは、閾値テーブルの説明図である。この閾値テーブルは、記憶部31に記憶されていても良いし、全体識別処理を実行させるプログラムの一部に組み込まれていても良い。閾値テーブルには、前述の肯定閾値や否定閾値に関するデータが格納されている。
【0060】
図13Bは、上記で説明した風景識別器51Lにおける閾値の説明図である。風景識別器51Lには、肯定閾値及び否定閾値が予め設定されている。肯定閾値として1.27が設定されている。否定閾値には第1否定閾値と第2否定閾値とがある。第1否定閾値として−1.10が設定されている。また、第2否定閾値として、風景以外の各シーンにそれぞれ値が設定されている。
【0061】
図13Cは、上記で説明した風景識別器51Lの処理の概要の説明図である。ここでは、説明の簡略化のため、第2否定閾値については夜景についてのみ説明する。風景識別器51Lは、判別式の値が1.27よりも大きければ(S204でYES)、識別対象画像が風景のシーンに属すると判断する。また、判別式の値が1.27以下であり(S204でNO)、−0.45よりも大きければ(S206でYES)、風景識別器51Lは、識別対象画像が夜景のシーンに属しないと判断する。また、判別式の値が−1.10よりも小さければ(S206でYES)、風景識別器51Lは、識別対象画像が風景のシーンに属しないと判断する。なお、風景識別器51Lは、夕景や花や紅葉についても、第2否定閾値に基づいて、識別対象画像がそのシーンに属しないかを判断する。但し、これらの第2否定閾値は肯定閾値よりも大きいため、識別対象画像がこれらのシーンに属しないことを風景識別器51Lが判断することはない。
【0062】
S202においてNOの場合、S206でNOの場合、又はS207の処理を終えた場合、全体識別器50は、次のサブ識別器51の有無を判断する(S208)。ここでは風景識別器51Lによる処理を終えた後なので、全体識別器50は、S208において、次のサブ識別器51(夕景識別器51S)があると判断する。
【0063】
そして、S205の処理を終えた場合(識別対象画像が特定のシーンに属すると判断された場合)、又は、S208において次のサブ識別器51がないと判断された場合(識別対象画像が特定のシーンに属すると判断できなかった場合)、全体識別器50は、全体識別処理を終了する。
【0064】
なお、既に説明した通り、全体識別処理が終了すると、シーン識別部33は、全体識別処理によってシーンの識別ができたか否かを判断する(図5のS104)。このとき、シーン識別部33は、図8の識別対象テーブルを参照し、「肯定」欄に1があるか否かを判断することになる。
全体識別処理によってシーンの識別ができた場合(S104でYES)、部分識別処理や統合識別処理が省略される。これによりシーン識別処理の速度が速くなる。
【0065】
ところで、上記の説明には無いが、全体識別器50は、サブ識別器51によって判別式の値を算出したときには、判別式の値に対応するPrecisionを、確信度に関する情報として結果記憶部31Bに記憶する。もちろん、判別式の値そのものを確信度に関する情報として記憶しても良い。
【0066】
===部分識別処理===
図14は、部分識別処理のフロー図である。部分識別処理は、全体識別処理によってシーンの識別ができなかった場合(図5のS104でNO)に行われる。以下に説明するように、部分識別処理は、分割された部分画像のシーンをそれぞれ識別することによって、画像全体のシーンを識別する処理である。ここでは、図6も参照しながら部分識別処理について説明する。
【0067】
まず、部分識別器60は、複数のサブ部分識別器61の中から1つのサブ部分識別器61を選択する(S301)。部分識別器60には、サブ部分識別器61が3つ設けられている。各サブ部分識別器61は、8×8の64ブロックに分割された部分画像がそれぞれ特定のシーンに属するか否かを識別する。ここでの3つのサブ部分識別器61は、それぞれ、夕景、花、紅葉のシーンを識別する。ここでは、部分識別器60は、夕景→花→紅葉の順に、サブ部分識別器61を選択する(なお、サブ部分識別器61の選択順序については、後述する)。このため、最初には、部分画像が夕景のシーンに属するか否かを識別するサブ部分識別器61(夕景部分識別器61S)が選択される。
【0068】
次に、部分識別器60は、識別対象テーブル(図8)を参照し、選択したサブ部分識別器61を用いてシーンを識別すべきか否かを判断する(S302)。ここでは、部分識別器60は、識別対象テーブルにおける「夕景」欄の「否定」欄を参照し、ゼロであればYESと判断し、1であればNOと判断する。なお、全体識別処理の際に、夕景識別器51Sが第1否定閾値により否定フラグを立てたとき、又は、他のサブ識別器51が第2否定閾値により否定フラグを立てたとき、このS302でNOと判断される。仮にNOと判断されると夕景の部分識別処理は省略されることになるので、部分識別処理の速度が速くなる。但し、ここでは説明の都合上、YESと判断されるものとする。
【0069】
次に、サブ部分識別器61は、8×8の64ブロックに分割された部分画像の中から、1つの部分画像を選択する(S303)。
【0070】
図15は、夕景部分識別器61Sが選択する部分画像の順番の説明図である。部分画像から画像全体のシーンを特定するような場合、識別に用いられる部分画像は被写体が存在する部分であることが望ましい。そこで、本実施形態では、数千枚のサンプルの夕景画像を用意し、各夕景画像を8×8の64ブロックに分割し、夕景部分画像(夕景の太陽と空の部分画像)を含むブロックを抽出し、抽出されたブロックの位置に基づいて各ブロックにおける夕景部分画像の存在確率を算出した。そして、本実施形態では、存在確率の高いブロックから順番に、部分画像が選択される。なお、図に示す選択順序の情報は、プログラムの一部としてメモリ23に格納されている。
【0071】
なお、夕景画像の場合、画像の中央付近から上半分に夕景の空が広がっていることが多いため、中央付近から上半分のブロックにおいて存在確率が高くなる。また、夕景画像の場合、画像の下1/3では逆光で陰になり、部分画像単体では夕景か夜景か区別がつかないことが多いため、下1/3のブロックにおいて存在確率が低くなる。花画像の場合、花を中央に配置させる構図にすることが多いため、中央付近における花部分画像の存在確率が高くなる。
【0072】
次に、サブ部分識別器61は、選択された部分画像の部分特徴量に基づいて、その部分画像が特定のシーンに属するか否かを評価する(S304)。サブ部分識別器61には、全体識別器50のサブ識別器51と同様に、サポートベクタマシン(SVM)による判別手法が用いられている。なお、サポートベクタマシンについては、後述する。判別式の値が正の値であれば、部分画像が特定のシーンに属すると判断し、サブ部分識別器61は正カウント値をインクリメントする。また、判別式の値が負の値であれば、部分画像が特定のシーンに属しないと判断し、サブ部分識別器61は負カウント値をインクリメントする。
【0073】
次に、サブ部分識別器61は、正カウント値が肯定閾値よりも大きいか否かを判断する(S305)。なお、正カウント値は、特定のシーンに属すると判断された部分画像の数を示すものである。正カウント値が肯定閾値よりも大きければ(S305でYES)、サブ部分識別器61は、識別対象画像が特定のシーンに属すると判断し、肯定フラグを立てる(S306)。この場合、部分識別器60は、次のサブ部分識別器61による識別を行わずに部分識別処理を終了する。この場合、次のサブ部分識別器61による識別を省略しているので、部分識別処理の速度を速めることができる。
正カウント値が肯定閾値より大きくなければ(S305でNO)、サブ部分識別器61は、識別対象画像が特定のシーンに属すると判断できず、次のS307の処理を行う。
【0074】
サブ部分識別器61は、正カウント値と残りの部分画像数との和が肯定閾値よりも小さければ(S307でYES)、S309の処理へ進む。正カウント値と残りの部分画像数との和が肯定閾値よりも小さい場合、残り全ての部分画像によって正カウント値がインクリメントされても、正カウント値が肯定閾値よりも大きくなることがないので、S309に処理を進めることによって、残りの部分画像についてサポートベクタマシンによる識別を省略する。これにより識別処理の速度を速めることができる。
【0075】
サブ部分識別器61がS307でNOと判断した場合、サブ部分識別器61は、次の部分画像の有無を判断する(S308)。なお、本実施形態では、64個に分割された部分画像の全てを順に選択していない。図15において、太枠で示された上位10番目までの10個の部分画像だけを順に選択している。このため、10番目の部分画像の識別を終えれば、サブ部分識別器61は、S308において次の部分画像はないと判断する(この点を考慮して、S307の「残り部分画像数」も決定される。)。
【0076】
図16は、64個に分割された部分画像のうち、上位10番目までの10個の部分画像だけで夕景画像を識別したときのRecall及びPrecisionのグラフである。図に示すような肯定閾値を設定すれば、正答率(Precision)を80%程度に設定でき、再現率(Recall)を90%程度に設定でき、精度の高い識別が可能である。
【0077】
本実施形態では、10個の部分画像だけで夕景画像の識別を行っている。このため、本実施形態では、64個の全ての部分画像を用いて夕景画像の識別を行うよりも、部分識別処理の速度を速めることができる。
【0078】
また、本実施形態では、夕景部分画像の存在確率の高い上位10番目の部分画像を用いて夕景画像の識別を行っている。このため、本実施形態では、存在確率を無視して抽出された10個の部分画像を用いて夕景画像の識別を行うよりも、RecallやPrecisionをともに高く設定することが可能になる。
【0079】
また、本実施形態では、夕景部分画像の存在確率の高い順に部分画像を選択している。この結果、早い段階でS305の判断がYESになりやすくなる。このため、本実施形態では、存在確率の高低を無視した順で部分画像を選択したときよりも、部分識別処理の速度を速めることができる。
【0080】
S307においてYESと判断された場合、又は、S308において次の部分画像がないと判断された場合、サブ部分識別器61は、負カウント値が否定閾値よりも大きいか否かを判断する(S309)。この否定閾値は、前述の全体識別処理における否定閾値(図7のS206)とほぼ同様の機能を果たすものなので、詳しい説明は省略する。S309でYESと判断された場合、図7のS207と同様に否定フラグを立てる。
【0081】
S302においてNOの場合、S309でNOの場合、又はS310の処理を終えた場合、部分識別器60は、次のサブ部分識別器61の有無を判断する(S311)。夕景部分識別器61Sによる処理を終えた後の場合、サブ部分識別器61として花部分識別器61Fや紅葉部分識別器61Rがまだあるので、部分識別器60は、S311において、次のサブ部分識別器61があると判断する。
【0082】
そして、S306の処理を終えた場合(識別対象画像が特定のシーンに属すると判断された場合)、又は、S311において次のサブ部分識別器61がないと判断された場合(識別対象画像が特定のシーンに属すると判断できなかった場合)、部分識別器60は、部分識別処理を終了する。
【0083】
なお、既に説明した通り、部分識別処理が終了すると、シーン識別部33は、部分識別処理によってシーンの識別ができたか否かを判断する(図5のS106)。このとき、シーン識別部33は、図8の識別対象テーブルを参照し、「肯定」欄に1があるか否かを判断することになる。
部分識別処理によってシーンの識別ができた場合(S106でYES)、統合識別処理が省略される。これにより、シーン識別処理の速度が速くなる。
【0084】
ところで、上記の説明では、夕景部分識別器61Sは、10個の部分画像を用いて夕景画像の識別を行っているが、識別に用いられる部分画像の数は10個に限られるものではない。また、他のサブ部分識別器61が、夕景部分識別器61Sとは異なる数の部分画像を用いて画像を識別しても良い。本実施形態では、花部分識別器61Fは20個の部分画像を用いて花画像を識別し、また、紅葉部分識別器61Rは、15個の部分画像を用いて紅葉画像を識別するものとする。
【0085】
===サポートベクタマシン===
統合識別処理について説明する前に、全体識別処理のサブ識別器51や部分識別処理のサブ部分識別器61において用いられているサポートベクタマシン(SVM)について説明する。
【0086】
図17Aは、線形サポートベクタマシンによる判別の説明図である。ここでは、2つの特徴量x1、x2によって、学習用サンプルを2次元空間に示している。学習用サンプルは2つのクラスA、Bに分けられている。図中では、クラスAに属するサンプルは丸で示されており、クラスBに属するサンプルは四角で示されている。
学習用サンプルを用いた学習によって、2次元空間を2つに分ける境界が定義される。境界は、<w・x>+b=0で定義される(なお、x=(x1,x2)であり、wは重みベクトルであり、<w・x>はwとxの内積である)。但し、境界は、マージンが最大になるように、学習用サンプルを用いた学習によって定義される。つまり、図の場合、境界は、太点線ではなく、太実線のようになる。
判別は、f(x)=<w・x>+bを用いて行われる。ある入力x(この入力xは、学習用サンプルとは別である)について、f(x)>0であればクラスAに属すると判別され、f(x)<0であればクラスBに属すると判別される。
ここでは2次元空間を用いて説明しているが、これには限定されない(つまり特徴量は2以上でも良い)。この場合、境界は超平面で定義される。
【0087】
ところで、2つのクラスに線形関数で分離できないことがある。このような場合に線形サポートベクタマシンによる判別を行うと、判別結果の精度が低下する。そこで、入力空間の特徴量を非線形変換すれば、すなわち入力空間からある特徴空間へ非線形写像すれば、特徴空間において線形関数で分離することができるようになる。非線形サポートベクタマシンでは、これを利用している。
【0088】
図17Bは、カーネル関数を用いた判別の説明図である。ここでは、2つの特徴量x1、x2によって、学習用サンプルを2次元空間に示している。図17Bの入力空間からの非線形写像が図17Aのような特徴空間になれば、線形関数で2つのクラスに分離することが可能になる。この特徴空間においてマージンが最大になるように境界が定義されれば、特徴空間における境界の逆写像が、図17Bに示す境界になる。この結果、図17Bに示すように、境界は非線形になる。
【0089】
本実施形態では、ガウスカーネルを利用することにより、判別式f(x)は次式(1)のようになる(なお、Mは特徴量の数、Nは学習用サンプルのうち識別境界に寄与するサポートベクタの数、wは重み係数、yijはサポートベクタの特徴量、xは入力xの特徴量である)。
【数1】

【0090】
ある入力x(この入力xは学習用サンプルとは別である)について、f(x)>0であればクラスAに属すると判別され、f(x)<0であればクラスBに属すると判別される。また、f(x)の値が大きい値になるほど、入力xがクラスAに属する確率が高くなる。逆に、判別式f(x)の値が小さい値になるほど、入力xがクラスAに属する確率が低くなる。前述の全体識別処理のサブ識別器51や部分識別処理のサブ部分識別器61では、上記のサポートベクタマシンの判別式f(x)の値を用いている。サポートベクタマシンによる判別式f(x)の値の算出には、学習用サンプルの数(本実施形態では数万個)が多いほど、すなわちサポートベクタの数が多いほど時間がかかる。
【0091】
また、式(1)のうち次式(2)に示すk(x)は、識別対象と各サポートベクタとの関係に応じた関数である。以下、このk(x)のことをカーネルともいう。
【数2】

【0092】
なお、学習用サンプルとは別に評価用サンプルが用意されている。前述のRecallやPrecisionのグラフは、評価用サンプルに対する識別結果(判別式f(x)の値)に基づくものである。
【0093】
===統合識別処理===
前述の全体識別処理や部分識別処理では、サブ識別器51やサブ部分識別器61における肯定閾値を比較的高めに設定し、Precision(正解率)を高めに設定している。なぜならば、例えば全体識別器51の風景識別器51Lの正解率が低く設定されると、風景識別器51が紅葉画像を風景画像であると誤識別してしまい、紅葉識別器51Rによる識別を行う前に全体識別処理を終えてしまう事態が発生してしまうからである。本実施形態では、Precision(正解率)が高めに設定されることにより、特定のシーンに属する画像が特定のシーンのサブ識別器51(又はサブ部分識別器61)に識別されるようになる(例えば、紅葉画像が紅葉識別器51R(又は紅葉部分識別器61R)によって識別されるようになる)。
【0094】
但し、全体識別処理や部分識別処理のPrecision(正解率)を高めに設定すると、全体識別処理や部分識別処理ではシーンの識別ができなくなる可能性が高くなる。そこで、本実施形態では、全体識別処理及び部分識別処理によってシーンの識別ができなかった場合、以下に説明する統合識別処理が行われる。
【0095】
図18は、統合識別処理のフロー図である。以下に説明するように、統合識別処理は、全体識別処理の各サブ識別器51の判別式の値に基づいて、最も確信度の高いシーンを選択する処理である。
【0096】
まず、統合識別器70は、5つのサブ識別器51の判別式の値に基づいて、正となるシーンを抽出する(S401)。このとき、全体識別処理の際に各サブ識別器51が算出した判別式の値が用いられる。
【0097】
次に、統合識別器70は、判別式の値が正のシーンが存在するか否かを判断する(S402)。判別式の値が正のシーンが存在する場合(S402でYES)、最大値のシーンの欄に肯定フラグを立てて(S403)、統合識別処理を終了する。これにより、最大値のシーンに識別対象画像が属すると判断される。
一方、判別式の値が正であるシーンが存在しない場合(S402でNO)、肯定フラグを立てずに、統合識別処理を終了する。これにより、図8の識別対象テーブルの肯定欄において、1のシーンが無いままの状態になる。つまり、識別対象画像が、どのシーンに属するか識別できなかったことになる。
【0098】
なお、既に説明した通り、統合識別処理が終了すると、シーン識別部33は、統合識別処理によってシーンの識別ができたか否かを判断する(図5のS108)。このとき、シーン識別部33は、図8の識別対象テーブルを参照し、「肯定」欄に1があるか否かを判断することになる。S402でNOとの判断の場合、S108の判断もNOになる。
【0099】
===第1実施形態===
<概要>
前述したように、全体識別処理のサブ識別器51や部分識別処理のサブ部分識別器61では、サポートベクタマシンを用いたシーンの識別処理が行われる。各サブ識別器は、サポートベクタマシンによって判別式を算出し、判別式の値と閾値(肯定閾値、否定閾値)とを比較することによって識別対象画像が特定のシーンに属するか否かを識別する。
【0100】
式(1)からわかるように、サポートベクタマシンは、識別対象とサポートベクタとの関係に応じた関数値を算出し、その関数値を積算していくことによって判別式を算出している。すなわち、判別式の演算の実行時間は、サポートベクタの数に比例する。なお、サポートベクタは、識別境界に寄与する学習用サンプルのことである。以下の説明において、サポートベクタのことを単にサンプルともいい、サポートベクタの数のことをサンプル数ともいう。
【0101】
ところで、サポートベクタマシンで識別精度を高めるには大量の学習用サンプルを用意する必要があり、これによりサンプル数も多くなる。よって、サポートベクタマシンによる判別式の演算に時間がかかり、識別処理の速度を速めるのが困難となっていた。特に、シーン識別部33における全体識別処理や部分識別処理のように、複数のサブ識別器によってシーン毎に順に識別を行う場合、各サブ識別器で識別処理に時間がかかると、後段の識別処理に進むのが遅くなり、識別処理全体の速度が低下することになる。
【0102】
そこで、本実施形態では、サポートベクタマシンの判別式の演算の途中で識別結果を予測して、演算の打ち切りを行なうことで識別処理の速度の向上を図る。第1実施形態では、全体識別器50のサブ識別器51に本発明の識別処理を適用することとする。
【0103】
<予測について>
各サブ識別器51では、サポートベクタマシンによる学習用サンプルを用いた学習により、識別境界に寄与するサポートベクタが定められている。そして、サポートベクタマシンは、前述した式(1)の演算により判別式を算出する。つまり、サポートベクタの特徴量(yij)と識別対象の特徴量(x)との関係に応じて式(2)のカーネルk(x)を算出し、さらにカーネルk(x)に重み係数(w)を乗算して、その値(関数値)を順次積算していく。
【0104】
ここで、式(2)において、カーネルk(x)は常に正の値となる。よって、カーネルk(x)に重み係数を乗算して得られる関数値は、重み係数が正の場合には正の値となり、重み係数が負の場合には負の値となる。
【0105】
図19A及び図19Bは、サポートベクタマシンでの演算に用いられる識別用テーブルの一例を示す図である。なお、本実施形態では、この識別用テーブルは外部装置であるコンピュータ(不図示)によって作成されることとする。コンピュータは、サポートベクタマシンの学習に基づいて図19Aの識別用テーブルを作成し、それを図19Bに示すように重み係数の大きい順にソートする。つまり、重み係数が正から負の順になるように並び替える。そして、コンピュータは図19Bの識別用テーブルを記憶部31に記憶させる。サブ識別器51は、図19Bの識別用テーブルに基づいて、重み係数の大きい順に(紙面上側から順に)式(1)の演算を行なう。
【0106】
ところで、各サンプルに対する演算の順序が固定である場合、サブ識別器51が式(1)の判別式を計算する過程において、重み係数が負であるi番目のサンプルまで計算した時点で、残りのサンプルに対する関数値を積算することによる最小値を予め予測しておくことができる。以下、この最小値のことを予測最小値ともいう。なお、i番目のサンプルまでの演算で得られた積算値と、当該サンプルに対して求められた予測最小値との加算値は、最終的な積算値(判別式)の取り得る値の最小値となる。つまり、判別式の値は、この加算値以上になると判断できる。このことを利用すれば、判別式の演算の途中であっても、加算値と閾値との比較に基づいて識別を行うことができる(後述する)。
【0107】
i番目のサンプルまで計算したときの予測最小値lは、次式(3)で表される。
【数3】

【0108】
重み係数の大きい順に演算を行い、残りのサンプルに対する重み係数が負の値のみである場合、式(3)は、次式(4)で近似することができる。
【数4】

【0109】
ここで、Kは定数(1.05〜1.20程度)であり、Xは入力xの特徴量ベクトル、Yは各サポートベクタの特徴量ベクトルである。式(4)では、まず残りのサンプルのうちの一つを入力xに定めることにより、残りのサンプルに対する関数値を積算した値(以下、仮予測値ともいう)を算出する。そして、残りのサンプルのそれぞれを入力xに定めた場合について同様に算出された仮予測値のうちの最小値にKを乗じた値を予測値としている。このように、式(4)の近似式を用いることにより、サンプル毎の予測最小値を、予め容易に算出しておくことができる。
【0110】
上述したコンピュータは、この式(4)の計算を重み係数が負である各サンプルについて行い、図19Bに示すように各サンプルに対する予測最小値を予め求める。ここで、重み係数が負であるので、式(4)の予測最小値も負の値になる。つまり、予測最小値は、残りのサンプル数が多いほど小さく(絶対値が大きく)なり、残りのサンプル数が少ないほど大きく(絶対値が小さく)なる。よって、図19Bにおいて、紙面上側から順に演算が行われるとすると、l1<l2<l3となる。
【0111】
なお、本実施形態では、コンピュータが識別用テーブルを重み係数でソートし、予測最小値を算出することとしたが、これらの処理を、例えばサブ識別器51が行うようにしてもよい。
【0112】
<識別処理について>
以下、図面を参照しつつ、本発明の第1実施形態にかかる識別処理について説明する。図20は、本発明の第1実施形態にかかる識別処理を説明するためのフロー図である。図21は、本発明の第1実施形態にかかるサンプル数と積算値の関係の一例を示す図である。なお、図20は、図7の全体識別処理の一点鎖線の部分における本実施形態の識別処理のフローを示したものである。
【0113】
サブ識別器51は、図7のS202で、識別対象のシーンであると判断すると(S202でYES)、サポートベクタマシンによる判別式の演算を行う。まず、図20に示すように積算値の初期値としてゼロを設定する(S501)。そして、サブ識別器51は、図19Bの識別用テーブルに基づいて、重み係数の正の側(紙面上側)から順に対応するサンプルを選択し(S502)、式(2)によってカーネルk(x)の値を算出する(S503)。図19Bの場合、重み係数wに対応するサンプルが最初に選択され、その特徴量(y51,y52,y53・・・)を用いて式(2)のカーネルk(x)が算出される。そして、サブ識別器51は、このカーネルk(x)に重み係数(w)を乗算して、その乗算で得られた関数値を積算値に積算する(S504)。
【0114】
前述したように、カーネルk(x)に重み係数を乗算して得られる関数値は、カーネルk(x)が常に正であるため、重み係数が正の場合には正の値となり、重み係数が負の場合には負の値となる。図19Bの識別用テーブルでは、重み係数は正から負となる順にソートされているので、積算値は、例えば図21に示すSのように変化する。つまり、積算値は、重み係数が正のときは、サンプル数が増加するにつれて大きくなり、重み係数が負になると、サンプル数が増加するにつれて小さくなる。図21では、演算したサンプル数がa個のとき積算値sa、サンプル数がb(>a)個のとき積算値sbとなっている。重み係数が負でありa<bであるので、sa>sbである。
【0115】
また、図19Bの識別用テーブルには、式(4)により予測最小値が予め定められている。この予測最小値も、演算されるサンプル数に依存して変化する値である。予測最小値とサンプル数の関係は、例えば図21のLのようになる。前述したように、予測最小値は、重み係数が負の場合のみに設定されているので常に負の値となる。そのため、演算されるサンプル数が増える(残りのサンプル数が少なくなる)につれて値が大きくなる(絶対値が小さくなる)。例えば図21において、サンプル数がa個のとき予測最小値la、サンプル数がb個のとき予測最小値lbとなっている。重み係数が負でありa<bであるので、la<lbである。この予測最小値は、演算の残りのサンプルについての関数値を予測するものであるので、全サンプル数がn個の場合、予測最小値が求められるのはサンプル数が(n−1)個までである。
【0116】
なお、図21においてPTは肯定閾値であり、判別式の値がPTより大きい場合、サブ識別器51は、識別対象画像が当該サブ識別器51に対応するシーンに属すると識別する。一方、判別式の値がPT以下の場合、サブ識別器51は、識別対象画像が対応するシーンに属すると識別できないことになる。
【0117】
サブ識別器51は、S504で乗算した重み係数の符号が負であるか否かの判断を行う(S505)。すなわち、演算で得られる関数値が負の値になるか否かを判断する。そして、重み係数が負であると判断した場合(S505でYES)、サブ識別器51は、積算値と予測最小値の加算値が肯定閾値よりも大きいか否かの判断を行う(S506)。
【0118】
ここで、前述したように積算値と予測最小値との加算値は判別式として予測される最小値であるので、この加算値が肯定閾値よりも大きいと、判別式の値も肯定閾値よりも大きくなると予測できる。例えば図21において、b個のサンプルまで演算した時点で、sb+lb>PTになるとする。lbは、残りのサンプル(n−b)に対する関数値を積算した結果が最も小さく(絶対値が大きく)なる場合を予測した値であるので、sb+lbは判別式の値の取り得る値の最小値になる。よって、この時点で、判別式の値が肯定閾値(PT)以下になることはないと判断でき、識別対象画像が対応するシーンに属すると識別できることになる。
【0119】
そこで、サブ識別器51は、積算値と予測最小値の加算値が肯定閾値よりも大きいと判断した場合(S506でYES)、識別対象画像が当該サブ識別器51に対応するシーン(例えば「風景」のシーン)に属すると判断して、そのシーンの欄に肯定フラグを立てる(図7のS205)。
【0120】
一方、積算値と予測最小値の加算値が肯定閾値以下の場合には、判別式の値が肯定閾値よりも大きくなるとは判断できない。例えば図21において、a個のサンプルまで演算した時点で、sa+la<PTであるとする。残りの(n−a)個のサンプルに対する実際の演算結果はlaより大きい(laより絶対値が小さい)と考えられるので、この場合には判別式の値が肯定閾値よりも大きくなるか否かを判断することはできない。そこで、積算値と予測最小値の加算値が肯定閾値以下であると判断した場合(S506でNO)、又は、S505において重み係数が正であると判断した場合(S505でNO)、サブ識別器51は、次のサンプルが有るか否かの判断を行う(S507)。
【0121】
次のサンプルが有ると判断した場合(S507でYES)、サブ識別器51は、図19Bの識別用テーブルの重み係数の大きい側からサンプルを選択するS502を実行する。次のサンプルが無いと判断した場合(S507でNO)、S506において、全サンプルについての積算値(判別式の値)が肯定閾値以下であると判断されたことになる。そこで、サブ識別器51は、判別式の値と否定閾値(第1否定閾値及び第2否定閾値)との比較を行い(図7のS206)、識別対象画像が所定のシーンに属しないかを判断する。
【0122】
以上のように本実施形態では、予測最小値を用いることにより、識別処理の速度を向上させることができる。例えば、図21においてb個のサンプルまでの演算結果によって、sb+lb>PTとなり、この時点で識別対象画像がサブ識別器51に対応するシーンに属すると予測できることになる。これにより、判別式の演算において、残りの(n−b)個のサンプルの演算処理を省略することができる。さらに、後段の識別処理(他のサブ識別器51による識別処理、部分識別処理、統合識別処理)を省略することができる。よって、識別処理の速度を速めることができる。
【0123】
また、本実施形態では、残りのサンプルが負の値である場合に、残りのサンプルの関数値を積算した値として予測されるうちの最小値を用いるので、識別対象画像が対応するシーンに属していることをより速く識別することができる。
【0124】
また、予測最小値は重み係数が負のサンプル毎に対して予め算出されているので、各サンプルに対する積算値とそのときの予測最小値との加算値と、肯定閾値との比較をサンプル毎に行うことができる。よって判別式の演算において、識別処理の精度を高めることができる。
【0125】
===第2実施形態===
第1実施形態では、重み係数が正から負となる順、すなわち関数値が正から負となる順に判別式の演算を行ったが、関数値が負から正となる順に判別式の演算を行うようにしてもよい。この場合、判別式として次式(5)を用いる。
【数5】

【0126】
図22は、第2実施形態で使用する識別用テーブルの一例を示す図である。なお、図22は、第1実施形態と同様に、図19Aの識別用テーブルが重み係数の大きい順にソートされたものである。
【0127】
ただし、第2実施形態では、判別式の演算に式(5)を用いることにより、各サンプルごとに得られる関数値の符号は、第1実施形態の場合と逆になる。つまり、式(2)のカーネルk(x)は常に正であるので、関数値は、重み係数が正の場合には負の値になり、重み係数が負の場合には正の値になる。また、これにより、第2実施形態では、重み係数が負の各サンプルについて、残りのサンプルの関数値(正の値)を積算した値の最大値が予測されることとなる(以下、この値のことを予測最大値ともいう)。予測最大値の算出方法は予測最小値の算出方法と同じ(符号が逆になるのみ)である。
【0128】
このように、重み係数が負の場合、得られる関数値は正の値となり、予測最大値も正の値となる。よって、図22において紙面上側から順に演算が行われるとすると、演算されるサンプル数が増えるにつれて(残りのサンプル数が少なくなるにつれて)予測最大値は小さくなるので、h1>h2>h3となる。なお、各サンプルについての演算で得られた関数値を積算した積算値と予測最大値との加算値は、判別式の取り得る値の最大値となる。
【0129】
以下、図面を参照しつつ、本発明の第2実施形態にかかる識別処理について説明する。
図23は、本発明の第2実施形態にかかる識別処理を説明するためのフロー図である。図24は、本発明の第2実施形態にかかるサンプル数と積算値の関係の一例を示す図である。なお、図23は、図7の全体識別処理の一点鎖線の部分における本実施形態の識別処理のフローを示したものである。
【0130】
図23において、S601〜S603は、図20のS501〜S503と対応しており、それぞれ同じ処理を行う。よってこの部分の説明を省略する。
サブ識別器51は、式(5)によりサンプルについてカーネルk(x)と重み係数(w)を乗算した関数値を求め、積算値に積算する(S604)。
【0131】
前述したように、カーネルk(x)が常に正であるため、式(5)の演算で得られる関数値は、重み係数が正の場合には負の値となり、重み係数が負の場合には正の値となる。図22の識別用テーブルでは、重み係数が正から負となる順にソートされているので、積算値は、例えば図23のS´のようになる。つまり、積算値は、重み係数が正のときはサンプル数が増加するにつれて小さくなり、重み係数が正になるとサンプル数が増加するにつれて大きくなる。
【0132】
また、重み係数が負のとき、関数値g(x)は常に正の値であるので、予測最大値は、演算されるサンプル数が増える(残りのサンプル数が少なくなる)につれて値が小さくなる。よって予測最大値とサンプル数の関係は、例えば図23のHのようになる。
【0133】
なお、図23においてPT´は本実施形態における肯定閾値であり、第1実施形態の肯定閾値PTに対して、PT´=−PTの関係となっている。第2実施形態の場合、積算値と判別式との比較の大小関係が第1実施形態の場合と逆になるので、判別式の値がPT´より小さい場合、サブ識別器51は、識別対象画像が当該サブ識別器51に対応するシーンに属すると識別することになる。一方、判別式の値がPT´以上の場合、サブ識別器51は、識別対象画像が対応するシーンに属すると識別できないことになる。
【0134】
次に、サブ識別器51は、重み係数の符号が負であるか否かの判断を行う(S605)。すなわち、演算で得られる関数値が正の値であるか否かを判断する。そして、重み係数が負(関数値が正)であると判断した場合(S605でYES)、サブ識別器51は、積算値と予測最大値の加算値が肯定閾値(PT´)よりも小さいか否かの判断を行う(S606)。
【0135】
ここで、前述したように、積算値と予測最大値との加算値は、判別式の取り得る値の最大値であるので、この加算値がPT´よりも小さいと、判別式の値もPT´よりも小さくなると予測できる。例えば、図24でサンプル数がcの場合における積算値をsc、予測最大値をhcとすると、sc+hc<PT´であれば判別式がPT´以上にはならないと予測できる。
【0136】
そこで、サブ識別器51は、積算値と予測最大値の加算値が肯定閾値よりも小さいと判断した場合(S606でYES)、識別対象画像が当該サブ識別器51に対応するシーン(例えば「風景」のシーン)に属すると判断して、そのシーンの欄に肯定フラグを立てる(図7のS205)。こうすることで、例えば図24の場合(n−c)個のサンプルに対する演算を省略することができる。
【0137】
一方、積算値と予測最大値の加算値が肯定閾値以上であると判断した場合には、この時点では判別式の値が肯定閾値よりも小さくなるとは識別できない。そこで、積算値と予測最大値の加算値が肯定閾値以上であると判断した場合(S606でNO)、又は、S605において重み係数が正であると判断した場合(S605でNO)、サブ識別器51は、次のサンプルが有るか否かの判断を行う(S607)。
【0138】
次のサンプルが有ると判断した場合(S607でYES)、サブ識別器51は、識別用テーブル(図22)の重み係数の大きい側からサンプルを選択するS602を実行する。次のサンプルが無いと判断した場合(S607でNO)、S606において、全サンプルについての積算値(判別式の値)が肯定閾値以上であると判断されたことになる。そこで、サブ識別器51は、判別式の値と否定閾値(第1否定閾値及び第2否定閾値)との比較を行う(図7のS206)。なお、否定閾値との比較を行う際には、判別式g(x)に−1を乗じた判別式f(x)を用いることにより、前述したような否定閾値との比較による識別を行うことができる。つまり、判別式f(x)の値が否定閾値よりも小さければ、識別対象画像が対応するシーンには属しないと識別できる。
【0139】
以上のように、判別式g(x)による関数値が負の値のものを積算し、その後に、関数値が正の値のものを積算する場合でも、予測最大値を用いることによって、演算の途中で識別対象画像がサブ識別器51に対応するシーンに属すると判断することができる。これにより、第1実施形態と同様に識別処理の速度を向上させることができる。
【0140】
また、残りのサンプルが正の値である場合に、残りのサンプルの関数値を積算した値として予測されるうちの最大値を用いるので、識別対象画像が対応するシーンに属していることをより速く識別することができる。
【0141】
また、予測最大値は重み係数が負のサンプル毎に対して予め求められているので、第1実施形態と同様に、判別式の演算において、識別処理の精度を高めることができる。
【0142】
===第3実施形態===
第1実施形態及び第2実施形態では、判別式の演算の途中で識別対象画像が特定のシーンに属することを識別する場合について説明したが、判別式の演算の途中で識別対象画像が特定のシーンに属しないことを識別することもできる。そこで、第3実施形態では、判別式の演算の途中で識別対象画像が特定のシーンに属しないことを識別する場合について説明する。なお、この第3実施形態では、判別式として式(1)を適用することとする。
【0143】
図25は、第3実施形態で使用する識別用テーブルの一例を示す図である。この識別用テーブルは、図19Aの識別用テーブルが重み係数の小さい順(負から正の順)にソートされたものである。前述したように式(2)のカーネルk(x)は常に正であるので、式(1)の演算において各サンプルの関数値(重み係数×カーネル)は、重み係数が負の場合には負の値になり、重み係数が正の場合には正の値になる。第3実施形態では、この識別用テーブルを用いて、重み係数の小さい順(負から正となる順)に演算を行うこととする。
【0144】
また、重み係数が正の各サンプルについて、第2実施形態と同様に、残りのサンプルの関数値を積算した値の最大値(予測最大値)をサンプル毎に予め算出しておく。図25において紙面上側から順に演算が行われるとすると、演算されるサンプル数が増えるにつれて(残りのサンプル数が少なくなるにつれて)予測最大値は小さくなるので、h1´>h2´>h3´となる。なお、各サンプルについての演算で得られた関数値を積算した積算値と予測最大値との加算値は、判別式の取り得る値の最大値となる。
【0145】
以下、図面を参照しつつ、本発明の第3実施形態にかかる識別処理について説明する。
図26は、本発明の第3実施形態にかかる識別処理を説明するためのフロー図である。図27は、本発明の第3実施形態にかかるサンプル数と積算値の関係の一例を示す図である。なお、図26は、図7の全体識別処理の破線部分における本実施形態の識別処理のフローを示したものである。
【0146】
サブ識別器51は、図7のS202で、識別対象のシーンであると判断すると(S202でYES)、サポートベクタマシンによる判別式の演算を行う。まず、図26に示すように積算値の初期値としてゼロを設定する(S701)。そして、サブ識別器51は、図25の識別用テーブルに基づいて、重み係数の負の側(紙面上側)から順に対応するサンプルを選択し(S702)、式(2)によってカーネルk(x)の値を算出する(S703)。そして、サブ識別器51は、このカーネルk(x)に重み係数(w)を乗算して、その乗算で得られた関数値を積算値に積算する(S704)。
【0147】
図25の識別用テーブルは、重み係数の小さい順(負から正となる順)にソートされたものであるので、この順に判別式の演算を行うと、積算値は、例えば図27に示すS″のように変化する。つまり、積算値は、重み係数が負のときは、サンプル数が増加するにつれて小さくなり、重み係数が正になると、サンプル数が増加するにつれて大きくなる。
【0148】
また、重み係数が正のとき、関数値は常に正の値であるので、予測最大値は、演算されるサンプル数が増える(残りのサンプル数が少なくなる)につれて値が小さくなる。よって予測最大値とサンプル数の関係は、例えば図23のH′のようになる。
【0149】
図23においてNTは、第1否定閾値である。つまり、最終的な積算値である判別式の値が第1否定閾値(NT)より小さい場合、サブ識別器51は、識別対象画像が対応するシーンに属しないと識別する。
【0150】
次に、サブ識別器51は、重み係数の符号が正であるか否かの判断を行う(S705)。すなわち、演算で得られる関数値が正の値であるか否かを判断する。そして、重み係数が正(関数値が正)であると判断した場合(S705でYES)、サブ識別器51は、積算値と予測最大値の加算値が第1否定閾値よりも小さいか否かの判断を行う(S706)。
【0151】
ここで、第2実施形態と同様に、積算値と予測最大値との加算値は、判別式の取り得る値の最大値である。よって、この加算値が第1否定閾値よりも小さいと、判別式の値も第1否定閾値よりも小さくなると予測できる。
【0152】
そこで、サブ識別器51は、積算値と予測最大値の加算値が第1否定閾値よりも小さいと判断した場合(S706でYES)、識別対象画像が当該サブ識別器51に対応するシーン(例えば「風景」のシーン)に属しないと判断して、対応するシーンの欄に否定フラグを立てる(図7のS207)。例えば図27において、サンプル数dのときの積算値をsd、そのときの予測最大値をhdとしたとき、sd+hd<NTであると、全サンプルについての積算値(判別式の値)が第1否定閾値(NT)より小さくなると予測できる。よって、この時点で識別対象画像がそのシーンに属しないと判断することができ、(n−d)個のサンプルに対する演算を省略することができる。
【0153】
一方、積算値と予測最大値の加算値が第1否定閾値以上である場合には、この時点で判別式の値が第1否定閾値よりも小さくなるとは識別できない。そこで、積算値と予測最大値の加算値が第1否定閾値以上であると判断した場合(S706でNO)、又は、S705において重み係数が負であると判断した場合(S705でNO)、サブ識別器51は、次のサンプルが有るか否かの判断を行う(S707)。
【0154】
次のサンプルが有ると判断した場合(S707でYES)、サブ識別器51は、識別用テーブル(図25)の重み係数の小さい側からサンプルを選択するS702を実行する。次のサンプルが無いと判断した場合(S707でNO)、S706において、全サンプルについての積算値(判別式の値)が第1否定閾値以上であると判断されたことになる。つまり、対応するシーンを除外することができなかったことになる。そこで、サブ識別器51は、判別式の値が肯定閾値よりも大きいかを判断する(S708)。そして、判別式の値が肯定閾値よりも大きいと判断した場合(S708でYES)、識別対象画像がサブ識別器51に対応するシーンに属すると判断して、対応するシーンの欄に肯定フラグを立てる(図7のS205)。一方、判別式の値が肯定閾値以下であると判断した場合(S708でNO)、次のサブ識別器が有るか否かの判断を行う(図7のS208)。
【0155】
以上のように、式(1)を用いて重み係数が負(関数値が負の値)のものを積算し、その後に、重み係数が正(関数値が正)のものを積算する場合、予測最大値を用いることによって、演算の途中で識別対象画像がサブ識別器51に対応するシーンに属しないと判断することができる。これにより、判別式の演算を途中で打ち切ることができるので、識別処理の速度を向上させることができる。
【0156】
===第4実施形態===
第1実施形態と第2実施形態との関係と同様に、第3実施形態において、判別式の演算の符号を逆にした識別を行うこともできる。すなわち、判別式として式(5)を用いて、図25の識別用テーブルの重み係数の小さい順(負から正の順)に演算を行い、重み係数が正(関数値が負)の場合に、積算値と予測最小値との加算値が第1否定閾値より大きくなれば、識別対象画像が対応するシーンに属しないと識別するようにしてもよい。
【0157】
===第5実施形態===
本発明は、第2否定閾値によってシーンを除外する場合にも適用することができる。前述したように、サブ識別器51は、判別式の値が第2否定閾値よりも大きくなる場合に、識別対象画像が当該第2否定閾値に対応するシーンに属しないと判断する。よって、例えば、第1実施形態と同様に、図19Aの識別用テーブルを準備しておき、判別式として式(1)を用いて重み係数の大きい順に演算を行ない、重み係数が負(関数値が負)の場合に、積算値と予測最小値との加算値が第2否定閾値よりも大きくなれば、識別対象画像がその第2否定閾値に対応するシーンに属しないと判断するようにしてもよい。
【0158】
===第6実施形態===
前述した実施形態では、全体識別器50のサブ識別器51での識別処理について説明したが、部分識別器60のサブ部分識別器61の場合、部分画像毎にサポートベクタマシンによる識別(部分識別処理)を行っている。部分識別処理では、部分画像の部分特徴量に基づいて、特定のシーンに属するか否かが部分画像毎に識別される。具体的には、サブ部分識別器61は、算出した判別式の値が正であればその部分画像が対応するシーンに属すると識別し、負であればその部分画像が対応するシーンには属しないと識別する。つまり、部分識別処理では、サポートベクタマシンの識別対象は部分画像であり、その識別の閾値はゼロである。そして、判別式の値が正となった部分画像の数(カウント数)が肯定閾値を超えた場合に、識別対象画像が対応するシーンに属すると識別する。
この部分画像毎に対する部分識別処理においても、前述した識別処理と同様の処理を行うことができる。
【0159】
例えば、第1実施形態と同様にして、サブ識別器61が、重み係数の大きい側から式(1)の演算を行うようにすると、重み係数が負(関数値が負)の場合に、積算値と予測最小値との加算値が閾値(ゼロ)より大となった時点で、その部分画像が対応するシーンに属すると識別することができる。
【0160】
あるいは、第2実施形態と同様にして、重み係数の大きい側から式(5)の演算を行うようにすると、重み係数が負(関数値が正)の場合に、積算値と予測最大値との加算値が閾値(ゼロ)より小となった時点で、その部分画像が対応するシーンに属すると識別することができる。
【0161】
また、第3実施形態と同様にして、重み係数の小さい側から式(1)の演算を行うようにすると、重み係数が正(関数値が正)の場合に、積算値と予測最大値との加算値が閾値(ゼロ)より小となった時点で、その部分画像が対応するシーンに属しないと識別することができる。
【0162】
さらに、第4実施形態と同様にして、重み係数の小さい側から式(5)の演算を行うようにすると、重み係数が正(関数値が負)の場合に、積算値と予測最小値との加算値が閾値(ゼロ)より大となった時点で、その部分画像が対応するシーンに属しないと識別することができる。
【0163】
これにより、部分画像毎に対する演算を早く打ち切ることができ、識別に時間のかかりがちである部分識別処理の処理速度を速めることができる。
【0164】
===その他の実施形態===
一実施形態としてプリンタ4によって画像のシーンの識別処理を行う場合について説明したが、上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは言うまでもない。
【0165】
例えば、本発明の識別処理の識別対象は、画像に限定されるものではない。すなわち、サポートベクタマシンを用いた識別によって、複数のカテゴリに分類できるものであれば、識別対象となりうる。
【0166】
また、例えば、第1実施形態において図20のフローのS506で、積算値と、肯定閾値から予測最小値を減算した値とを比較するようにしてもよい。そして、積算値が、肯定閾値から予測最小値を減算した値よりも大きければ、識別対象画像が対応するシーンに属すると識別するようにしてもよい。他の実施形態においても同様である。要するに、重み係数の符号が変わった後に、積算値と、予測最小値(又は予測最大値)と、閾値とに基づいて識別処理を行うようにすればよい。これにより、識別処理の速度を向上させることができる。
【図面の簡単な説明】
【0167】
【図1】画像処理システムの説明図である。
【図2】プリンタの構成の説明図である。
【図3】プリンタの自動補正機能の説明図である。
【図4】画像のシーンと補正内容との関係の説明図である。
【図5】シーン識別部によるシーン識別処理のフロー図である。
【図6】シーン識別部の機能の説明図である。
【図7】全体識別処理のフロー図である。
【図8】識別対象テーブルの説明図である。
【図9】全体識別処理の肯定閾値の説明図である。
【図10】RecallとPrecisionの説明図である。
【図11】第1否定閾値の説明図である。
【図12】第2否定閾値の説明図である。
【図13】図13Aは、閾値テーブルの説明図である。図13Bは、風景識別器における閾値の説明図である。図13Cは、風景識別器の処理の概要の説明図である。
【図14】部分識別処理のフロー図である。
【図15】夕景部分識別器が選択する部分画像の順番の説明図である。
【図16】上位10番目までの10個の部分画像だけで夕景画像の識別をしたときのRecall及びPrecisionのグラフである。
【図17】図17Aは、線形サポートベクタマシンによる判別の説明図である。図17Bは、カーネル関数を用いた判別の説明図である。
【図18】統合識別処理のフロー図である。
【図19】図19Aは、識別用テーブルを示す図である。図19Bは、重み係数の大きい順にソートされた識別用テーブルを示す図である。
【図20】本発明の第1実施形態にかかる識別処理を説明するためのフロー図である。
【図21】本発明の第1実施形態にかかるサンプル数と積算値の関係を示す図である。
【図22】第2実施形態で使用する識別用テーブルを示す図である。
【図23】本発明の第2実施形態にかかる識別処理を説明するためのフロー図である。
【図24】本発明の第2実施形態にかかるサンプル数と積算値の関係を示す図である。
【図25】第3実施形態で使用する識別用テーブルを示す図である。
【図26】本発明の第3実施形態にかかる識別処理を説明するためのフロー図である。
【図27】本発明の第3実施形態にかかるサンプル数と積算値の関係を示す図である。
【符号の説明】
【0168】
2 デジタルスチルカメラ、2A モード設定ダイヤル、
4 プリンタ、6 メモリカード、10 印刷機構、
11 ヘッド、12 ヘッド制御部、13 モータ、14 センサ
23 メモリ、24 制御ユニット、25 駆動信号生成部、
31 記憶部、31A 画像記憶部、31B 結果記憶部、
32 顔識別部、33 シーン識別部、34 画像補正部、35 プリンタ制御部、
40 特徴量取得部、50 全体識別器、51 サブ識別器、51L 風景識別器、
51S 夕景識別器、51N 夜景識別器、51F 花識別器、51R 紅葉識別器、
60 部分識別器、61 サブ部分識別器、61S 夕景部分識別器、
61F 花部分識別器、61R 紅葉部分識別器、70 統合識別器

【特許請求の範囲】
【請求項1】
識別対象と、サポートベクタとの関係に応じた関数値を算出し、
各サポートベクタに対する前記関数値を積算した積算値を算出し、
前記積算値と閾値との比較に基づいて、前記識別対象が特定のカテゴリに属することを識別する、
カテゴリ識別方法であって、
前記積算値の算出は、前記関数値が正負のいずれか一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行い、
積算される前記関数値が前記他方の符号である場合に、そのときの前記積算値と、残りの前記サポートベクタに対する前記関数値を積算した値の予測値と、前記閾値と、に基づいて、前記識別対象が前記特定のカテゴリに属することを識別する、
ことを特徴とするカテゴリ識別方法。
【請求項2】
請求項1に記載のカテゴリ識別方法であって、
前記他方の符号は負であり、
前記予測値は、残りの前記サポートベクタに対する前記関数値を積算した値として予測される最小値である、
ことを特徴とするカテゴリ識別方法。
【請求項3】
請求項2に記載のカテゴリ識別方法であって、
前記積算値と前記予測値との加算値が前記閾値よりも大きい場合、残りの前記サポートベクタに対する前記関数値を積算することなく、前記識別対象が前記特定のカテゴリに属すると識別する、
ことを特徴とするカテゴリ識別方法。
【請求項4】
請求項1に記載のカテゴリ識別方法であって、
前記他方の符号は正であり、
前記予測値は、残りの前記サポートベクタに対する前記関数値を積算した値として予測される最大値である、
ことを特徴とするカテゴリ識別方法。
【請求項5】
請求項4に記載のカテゴリ識別方法であって、
前記積算値と前記予測値との加算値が前記閾値よりも小さい場合、残りの前記サポートベクタに対する前記関数値を積算することなく、前記識別対象が前記特定のカテゴリに属すると識別する、
ことを特徴とするカテゴリ識別方法。
【請求項6】
請求項1〜5の何れかに記載のカテゴリ識別方法であって、
前記予測値は、前記関数値が前記他方の符号となる前記サポートベクタ毎にそれぞれ求められている、
ことを特徴とするカテゴリ識別方法。
【請求項7】
請求項1〜6の何れかに記載のカテゴリ識別方法であって、
残りの前記サポートベクタのうちの一つを前記識別対象に定めた場合の、残りの前記サポートベクタに対する前記関数値を積算した仮予測値を算出し、
残りの各サポートベクタのそれぞれを前記識別対象に定めた場合について算出された前記仮予測値の最小値に基づいて前記予測値を決定する、
ことを特徴とするカテゴリ識別方法。
【請求項8】
カテゴリ識別装置に、
識別対象と、サポートベクタとの関係に応じた関数値を算出させ、
各サポートベクタに対する前記関数値を積算した積算値を算出させ、
前記積算値と閾値との比較に基づいて、前記識別対象が特定のカテゴリに属することを識別させる、
プログラムであって、
前記カテゴリ識別装置に、
前記積算値の算出を、前記関数値が一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行わせ、
積算される前記関数値が前記他方の符号である場合に、そのときの前記積算値と、残りの前記サポートベクタに対する前記関数値を積算した値の予測値との加算値と、前記閾値と、に基づいて、前記識別対象が前記特定のカテゴリに属することを識別させる、
ことを特徴とするプログラム。
【請求項9】
識別対象と、サポートベクタとの関係に応じた関数値を算出し、
各サポートベクタに対する前記関数値を積算した積算値を算出し、
前記積算値と閾値との比較に基づいて、前記識別対象が特定のカテゴリに属しないことを識別する、
カテゴリ識別方法であって、
前記積算値の算出は、前記関数値が正負のいずれか一方の符号となるものを積算し、その後、前記関数値が他方の符号となるものを積算することによって行い、
積算される前記関数値が前記他方の符号である場合に、そのときの前記積算値と、残りの前記サポートベクタに対する前記関数値を積算した値の予測値と、前記閾値と、に基づいて、前記識別対象が前記特定のカテゴリに属しないことを識別する、
ことを特徴とするカテゴリ識別方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2009−80678(P2009−80678A)
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願番号】特願2007−249860(P2007−249860)
【出願日】平成19年9月26日(2007.9.26)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】