(57)【要約】【課題】多クラス識別器、方法、及びプログラムに関し、識別率を向上させることができるカテゴリ分けを自動的に行えるようにする。【解決手段】ステップＳ２０１にて識別対象として選定されたメインカテゴリごとに、ステップＳ２０２のサブカテゴリ分け処理で、例えば花のカテゴリなどの画像分類において、ユーザに提供する花のカテゴリであるメインカテゴリそのままではなく、各メインカテゴリに属する学習用データから抽出される特徴ベクトルごとの分散が少なくなるように、例えば色特徴ベクトルについてサブカテゴリ分けが自動的に行われる。そして、ステップＳ２０３の多クラス識別器生成処理において、サブカテゴリについても個別に２クラス識別器が生成される。これにより、識別率の向上をはかることが可能となる。【選択図】図２
2014115920.tif 000002
【特許請求の範囲】
【請求項１】
識別対象として選定されたメインカテゴリごとに、該メインカテゴリにおける学習用データから抽出される１つ以上の各特徴情報に対応する特徴ベクトル別に、該特徴ベクトルのばらつき度合いを算出し、該ばらつき度合いが所定の閾値以上である場合に、該特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて該メインカテゴリをさらに複数のサブカテゴリに分類するサブカテゴリ分け手段と、
前記サブカテゴリ分けが行われたメインカテゴリ内の前記各サブカテゴリまたは前記サブカテゴリ分けが行われなかった前記メインカテゴリをそれぞれ識別器生成対象カテゴリとして、複数の学習用データからそれぞれ抽出した各特徴ベクトルを入力して該各学習用データが表す特徴が前記識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理を、複数の前記識別器生成対象カテゴリごとに実行することで、前記各学習用データが表す特徴が前記各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の前記２クラス識別器からなる多クラス識別器を生成する多クラス識別器生成手段と、
を備え、
入力されたデータを前記複数の多クラス識別器に入力させることにより最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリを、前記入力されたデータが表す特徴が属するカテゴリとして識別する、
ことを特徴とする多クラス識別器。
【請求項２】
前記サブカテゴリ分け手段は、前記メインカテゴリごとかつ前記特徴ベクトル別に、
指定された前記メインカテゴリ内の全ての学習用データの指定された前記特徴ベクトル群の分散度を分類前分散度として計算し、
前記指定されたメインカテゴリ内の全ての学習用データの前記指定された特徴ベクトル群を２個以上の所定数のクラスタにクラスタリングし、
前記各クラスタの分散度を分類後分散度として計算し、
前記各分類後分散度が前記分類前分散度に比較して所定の閾値以上小さいときに、前記各クラスタに属する前記学習用データにおいて、前記指定された特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて前記指定されたメインカテゴリに前記各クラスタに対応するサブカテゴリを追加する、
処理を実行することを特徴とする請求項１に記載の多クラス識別器。
【請求項３】
前記多クラス識別器生成手段は、複数の前記メインカテゴリを順次指定メインカテゴリとして指定して該指定メインカテゴリごとに、
前記指定メインカテゴリ以外のメインカテゴリに属する前記学習用データに対応する全ての前記特徴ベクトルをネガティブデータとして入力し、さらに、
前記指定メインカテゴリがさらに複数の前記サブカテゴリに分類されていれば、該複数のサブカテゴリをさらに順次指定サブカテゴリとして指定して該指定サブカテゴリごとに、該指定サブカテゴリに属する前記学習用データに対応する全ての特徴ベクトルおよび前記複数のサブカテゴリに共通の特徴ベクトルをポジティブデータとして入力し、前記複数のサブカテゴリに共通でない特徴ベクトルをネガティブデータとして入力し、
前記指定メインカテゴリがサブカテゴリに分類されていなければ、前記指定メインカテゴリに属する前記学習用データに対応する全ての前記特徴ベクトルをポジティブデータとして入力して、
前記ポジティブデータが入力されたときに最大のスコア値を出力するように演算することにより、前記各学習用データが表す特徴が前記指定メインカテゴリまたは前記指定サブカテゴリに属するか否かを識別する前記２クラス識別器を生成する処理を実行する、
ことを特徴とする請求項１または２のいずれかに記載の多クラス識別器。
【請求項４】
前記入力されたデータが表す特徴が属するカテゴリを識別したときに、前記最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリの名称を識別結果として表示するとともに、該２クラス識別器に前記サブカテゴリも対応しているときには該サブカテゴリの代表データを表示し、該２クラス識別器に前記メインカテゴリのみが対応しているときには該メインカテゴリの代表データを表示する識別結果表示手段をさらに備える、
ことを特徴とする請求項１ないし３のいずれかに記載の多クラス識別器。
【請求項５】
前記特徴は画像の特徴であり、
前記多クラス識別器生成手段は、
前記学習用データが示す画像内の各グリッドに対応させて特徴情報を抽出する処理を前記複数の学習用データのそれぞれに対して実行する特徴抽出処理と、
全ての前記学習用データが示す画像内の全ての前記グリッドに対応して抽出された全ての前記特徴情報を複数のクラスタにクラスタリングするクラスタリング処理と、
前記複数の学習用データのそれぞれについて、該学習用データが示す画像内の前記各グリッドに対応して抽出された前記特徴情報ごとに、該特徴情報と前記各クラスタの重心データとの距離をそれぞれ算出し、該算出した距離のうち最小の距離に対応するクラスタを最近傍クラスタとして抽出し、該抽出した最近傍クラスタの重心データを該特徴情報のベクトル量子化値とするベクトル量子化処理と、
前記複数の学習用データのそれぞれについて、該学習用データが示す画像内の前記各グリッドに対応して抽出された前記ベクトル量子化値ごとに該ベクトル量子化値に対応する前記最近傍クラスタのヒストグラム度数を積算する処理を繰り返し実行することにより該学習用データに対応するヒストグラムを生成し、該ヒストグラムのビンごとの各度数値を各要素値とする前記特徴ベクトルを生成する特徴ベクトル生成処理と、
を実行することを特徴とする請求項１ないし４のいずれかに記載の多クラス識別器。
【請求項６】
前記特徴情報は色および形状であり、
前記クラスタリング処理において、前記色および前記形状ごとに、個別にクラスタリングを行い、
前記ベクトル量子化処理において、前記色および前記形状ごとに、それぞれ前記クラスタリングにより得られる色のクラスタおよび形状のクラスタを用いて個別にベクトル量子化値を抽出し、
前記特徴ベクトル生成処理において、前記色および前記形状ごとに、それぞれ前記色および前記形状ごとに抽出した前記ベクトル量子化値を用いて個別に、前記学習用データごとの色のヒストグラムおよび形状のヒストグラムを生成し、該色のヒストグラムのビンごとの各度数値を各要素値とする色特徴ベクトルと、該形状のヒストグラムのビンごとの各度数値を各要素値とする形状特徴ベクトルを生成する、
ことを特徴とする請求項５に記載の多クラス識別器。
【請求項７】
識別対象として選定されたメインカテゴリごとに、該メインカテゴリにおける学習用データから抽出される１つ以上の各特徴情報に対応する特徴ベクトル別に、該特徴ベクトルのばらつき度合いを算出し、該ばらつき度合いが所定の閾値以上である場合に、該特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて該メインカテゴリをさらに複数のサブカテゴリに分類するサブカテゴリ分けステップと、
前記サブカテゴリ分けが行われたメインカテゴリ内の前記各サブカテゴリまたは前記サブカテゴリ分けが行われなかった前記メインカテゴリをそれぞれ識別器生成対象カテゴリとして、複数の学習用データからそれぞれ抽出した各特徴ベクトルを入力して該各学習用データが表す特徴が前記識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理を、複数の前記識別器生成対象カテゴリごとに実行することで、前記各学習用データが表す特徴が前記各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の前記２クラス識別器からなる多クラス識別器を生成する多クラス識別器生成ステップと、
を実行することを備え、
入力されたデータを前記複数の多クラス識別器に入力させることにより最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリを、前記入力されたデータが表す特徴が属するカテゴリとして識別する、
ことを特徴とする多クラス識別方法。
【請求項８】
識別対象として選定されたメインカテゴリごとに、該メインカテゴリにおける学習用データから抽出される１つ以上の各特徴情報に対応する特徴ベクトル別に、該特徴ベクトルのばらつき度合いを算出し、該ばらつき度合いが所定の閾値以上である場合に、該特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて該メインカテゴリをさらに複数のサブカテゴリに分類するサブカテゴリ分けステップと、
前記サブカテゴリ分けが行われたメインカテゴリ内の前記各サブカテゴリまたは前記サブカテゴリ分けが行われなかった前記メインカテゴリをそれぞれ識別器生成対象カテゴリとして、複数の学習用データからそれぞれ抽出した各特徴ベクトルを入力して該各学習用データが表す特徴が前記識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理を、複数の前記識別器生成対象カテゴリごとに実行することで、前記各学習用データが表す特徴が前記各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の前記２クラス識別器からなる多クラス識別器を生成する多クラス識別器生成ステップと、
をコンピュータに実行させることを備え、
入力されたデータを前記複数の多クラス識別器に入力させることにより最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリを、前記入力されたデータが表す特徴が属するカテゴリとして識別する、
ことをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多クラス識別器、方法、及びプログラムに関する。
【背景技術】
【０００２】
野山や道端で見かけた花の名前を知りたくなることがある。そこで、撮影等により得た花と葉のディジタル画像より、クラスタリング法を用いて対象物である花と葉の局所特徴を多数抽出し、更にその抽出特徴群をヒストグラム化した情報を特徴量とする単数又は複数の特徴量を求め、その求められた特徴量と、あらかじめデータベースに登録してある各種の植物の特徴量とを統計的手法を用いて解析して野草の種類を判別する技術が提案されている（例えば特許文献１に記載の技術）。
【０００３】
ここで入力された花などの画像データに対して画像分類を行うときに、機械学習では、あるカテゴリ（種類）の画像自身かそれ以外かという２通りの画像分類を行ういわゆる２クラス識別器は容易に実現できる。一方、複数カテゴリの画像の中から各カテゴリの画像を識別する多クラスの画像分類を行うときには、２クラス識別器を組み合わせていわゆる多クラス識別器を構成することが一般に行われる。例えば、花の画像が６つのカテゴリに分類される場合に、２クラス識別器が６個生成される。各識別器は、それぞれに割り当てられたカテゴリの画像が入力されたときに、それぞれ最大の識別スコア値を出力するように生成される。そして、画像が各識別器に入力されたときに、最も高い識別スコア値を出力した識別器に対応するカテゴリが識別結果とされる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２０３２４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、例えば花の種の分類において、２クラス識別器を組み合わせて多クラス識別器を構成した場合、２クラス識別器を構成する基準となるカテゴリ分けは、人間の都合で経験的な勘に頼って考えられたものである場合が多いため、必ずしも識別率が向上するようにはカテゴリ分けされていない。従って、カテゴリによっては識別率が低くなってしまうケースがあった。
【０００６】
特に、色が異なることにより識別率が変わってしまうような種別グループについて、人間は適切にカテゴリ分けをすることが困難な場合があった。それらについて、一括して同一のカテゴリを与えてしまうと、結果的にそのカテゴリのクラスタの分散が大きくなってしまい、識別率が低下してしまうという問題点が存在していた。
【０００７】
本発明は、識別率を向上させることができるカテゴリ分けを自動的に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
態様の一例では、識別対象として選定されたメインカテゴリごとに、そのメインカテゴリにおける学習用データから抽出される所定の特徴情報に対応する特徴ベクトルであるサブカテゴリ分け対象特徴ベクトルのばらつき度合いを算出し、そのばらつき度合いが所定の閾値以上である場合にそのメインカテゴリをさらに複数のサブカテゴリに分類するサブカテゴリ分け手段と、複数の学習用データからそれぞれ抽出した各特徴ベクトルを入力してその各学習用データが表す特徴が識別対象のカテゴリであるサブカテゴリ分けが行われたメインカテゴリ内の各サブカテゴリまたはサブカテゴリ分けが行われなかったメインカテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理を、複数の識別対象のカテゴリごとに実行することで、各学習用データが表す特徴が各識別対象のカテゴリのそれぞれに属するか否かを個別に識別する複数の２クラス識別器からなる多クラス識別器を生成する多クラス識別器生成手段とを備え、入力されたデータを複数の多クラス識別器に入力させることにより最大のスコア値を出力した２クラス識別器に対応するメインカテゴリを、入力されたデータが表す特徴が属するカテゴリとして識別する構成を有する。
【発明の効果】
【０００９】
本発明によれば、識別率を向上させることができるカテゴリ分けを自動的に行うことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る多クラス識別器のハードウェア構成例を示すブロック図である。
【図２】本実施形態による多クラス識別器生成処理の全体動作を示すフローチャートである。
【図３】サブカテゴリを識別する２クラス識別器の生成処理の動作説明図である。
【図４】サブカテゴリを含まないメインカテゴリを識別する２クラス識別器の生成処理の動作説明図である。
【図５】図２のサブカテゴリ分け処理の詳細を示すフローチャートである。
【図６】図２の多クラス識別器生成処理の詳細を示すフローチャートである。
【図７】図６の特徴抽出処理を示すフローチャートである。
【図８】図６のベクトル量子化処理を示すフローチャートである。
【図９】図６の特徴ベクトル生成処理（ヒストグラム生成処理）を示すフローチャートである。
【図１０】図６の識別器生成処理を示すフローチャートである。
【図１１】サブカテゴリを識別する２クラス識別器の生成処理例を示す図である。
【図１２】サブカテゴリを含まないメインカテゴリを識別する２クラス識別器の生成処理例を示す図である。
【図１３】本実施形態による多クラス識別器の識別動作を示すフローチャートである。
【図１４】本実施形態による多クラス識別器の識別結果表示例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【００１２】
図１は、本発明の一実施形態に係る多クラス識別器１０１のハードウェア構成例を示すブロック図である。
【００１３】
この多クラス識別器１０１は例えば、いわゆるスマートフォンなどの携帯情報端末から花などの撮影画像データを受信して、識別器によってその花などの種類を検索して識別し、その識別結果を携帯情報端末に返す検索システムのコンピュータ上に実現される。
【００１４】
多クラス識別器１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算処理装置）１０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４を備える。また、多クラス識別器１０１は例えば、ハードディスク記憶装置やソリッドステートドライブ記憶装置等の外部記憶装置１０５と、通信インタフェース１０６と、カメラ装置、キーボード装置又はマウス装置などの入力装置１０７と、ディスプレイ装置などの出力装置１０８を備える。さらに、多クラス識別器１０１は例えば、ＳＤメモリカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリカード、ＣＤ（Ｃｏｎｐａｃｔ  Ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などの可搬記録媒体１１０をセット可能な可搬記録媒体駆動装置１０９を備える。上述の各機器１０２〜１０９は、バス１１１によって相互に接続される。
【００１５】
ＲＯＭ１０３には、後述する図２および図５から図１０のフローチャートによって示される多クラス識別器生成処理の制御プログラムが記憶されている。ＣＰＵ１０２は、ＲＯＭ１０３から、これらの制御プログラムを読み出し、ＲＡＭ１０４をワークメモリとして実行する。このハードウェア構成に基づいて動作する多クラス識別器は例えば図１３のフローチャートによって示されるソフトウェアであり、ＲＯＭ１０３、ＲＡＭ１０４、又は外部記憶装置１０５に記憶される。なお、多クラス識別器生成処理において入力される学習用データは、例えば外部記憶装置１０５、あるいは可搬記録媒体駆動装置１０９にセットされる可搬記録媒体１１０から供給される。
【００１６】
多クラス識別器が生成された後は、ＣＰＵ１０２は、ＲＯＭ１０３、ＲＡＭ１０４、又は外部記憶装置１０５に記憶された図１３のフローチャートによって示される多クラス識別器の制御プログラムを読み出して実行することにより、多クラス識別器として動作する。或いは、多クラス識別器は、他のコンピュータシステムで実行されてもよい。この多クラス識別器は、例えばいわゆるスマートフォンなどの携帯情報端末からインターネットを経由して通信インタフェース１０６で花の撮影画像データを受信する。そして、多クラス識別器は、その花の種類を検索して識別し、その識別結果を通信インタフェース１０６からインターネットを経由して、携帯情報端末に返す。なお、多クラス識別器は、例えばスマートフォンの搭載アプリケーションとしてスマートフォンに直接提供されてもよい。
【００１７】
図２は、図１のハードウェア構成で示される多クラス識別器１０１によって実行される、本実施形態による多クラス識別器生成処理の全体動作を示すフローチャートである。
【００１８】
このフローチャートで示される処理は、その詳細を示す図５から図１０までのフローチャートで示される処理とともに、図１において、ＣＰＵ１０２がＲＯＭ１０３に記憶された制御プログラムを実行する処理として実現される。
【００１９】
まず、識別対象のカテゴリを選定する処理が実行される（図２のステップＳ２０１）。ここでは、多クラス識別器のアプリケーションの要求仕様に沿った学習用データのカテゴリ（種別）が選定される。学習用データが例えば花の画像であれば、花の種別、例えばアサガオ、ヒルガオ、ヒマワリの３種のカテゴリが選定される。この処理は例えば、システムの設計者が、図１の入力装置１０７を使って、カテゴリを図１の多クラス識別器１０１に入力する処理である。この結果入力されたカテゴリは、例えば図１のＲＡＭ１０４に記憶される。
このステップＳ２０１で例えばシステムの設計者によって選定された識別対象のカテゴリを、これ以降、メインカテゴリと呼ぶ。
【００２０】
次に、サブカテゴリ分け処理（サブカテゴリ分け手段の機能を実現する）が実行される（図２のステップＳ２０２）。このステップＳ２０２では、ステップＳ２０１にて識別対象として選定されたメインカテゴリごとに、以下の処理が実行される。メインカテゴリにおける学習用データから抽出される１つ以上の各特徴情報に対応する特徴ベクトル（例えば、色特徴ベクトルと形状特徴ベクトル）別に、その特徴ベクトルのばらつき度合いが算出される。そして、このばらつき度合いが所定の閾値以上である場合に、その特徴ベクトル（例えば、色特徴ベクトル）をサブカテゴリ分け対象特徴ベクトルとして、そのサブカテゴリ分け対象特徴ベクトルに対応させて、メインカテゴリがさらに複数のサブカテゴリに分類される。
【００２１】
次に、多クラス識別器生成処理（多クラス識別器生成手段の機能を実現する）が実行される（図２のステップＳ２０３）。このステップＳ２０３では、ステップＳ２０２にてサブカテゴリ分けが行われたメインカテゴリ内の各サブカテゴリまたはサブカテゴリ分けが行われなかったメインカテゴリをそれぞれ識別器生成対象カテゴリとして、以下の処理が実行される。複数の学習用データからそれぞれ抽出した各特徴ベクトルが入力されて、その各学習用データが表す特徴が識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理が実行される。この処理が複数の識別器生成対象カテゴリごとに実行されることで、各学習用データが表す特徴が各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の２クラス識別器からなる多クラス識別器が生成される。
【００２２】
図２のフローチャートで示される多クラス識別器生成処理において例えば、学習用データから抽出される特徴情報およびその特徴情報に対応する特徴ベクトルが複数種類あるとする。例えば、特徴情報が色と形状であり、色特徴ベクトルと形状特徴ベクトルが学習用データから抽出されるとする。
【００２３】
図２のステップＳ２０３の多クラス識別器生成処理では、ステップＳ２０１で選定された複数のメインカテゴリが順次指定メインカテゴリとして指定されて、指定メインカテゴリごとに、例えば以下の処理が実行される。
【００２４】
指定メインカテゴリがさらに複数のサブカテゴリに分類されていれば、それらの複数のサブカテゴリがさらに順次指定サブカテゴリとして指定されて、指定サブカテゴリごとに、図３で示される、指定メインカテゴリ／指定サブカテゴリｖｓ残りのメインカテゴリまたはサブカテゴリを識別する２クラス識別器３０１の生成処理が実行される。
【００２５】
まず、２クラス識別器の生成のために入力される学習用データが、指定メインカテゴリに属しかつ指定サブカテゴリに属する学習用データ３０２である場合は、次の処理が実行される。その学習用データ３０２に対応する全ての特徴ベクトル（例えば、色特徴ベクトルと形状特徴ベクトル）３０５が、ｐｏｓｉｔｉｖｅデータ（ポジティブデータ）として入力される。ここで、ｐｏｓｉｔｉｖｅデータとは、２クラス識別器が識別対象とするカテゴリに属するべき学習用データをいう。
【００２６】
次に、入力される学習用データが、指定メインカテゴリに属しかつ指定サブカテゴリ以外のサブカテゴリに属する学習用データ３０３である場合は、次の処理が実行される。上記学習用データ３０３に対応する複数種類の特徴ベクトル（例えば、色特徴ベクトルと形状特徴ベクトル）のうち、指定サブカテゴリに対応するサブカテゴリ分け対象特徴ベクトル（例えば、色特徴ベクトル）以外の特徴ベクトル（例えば、形状特徴ベクトル）３０６については、ｐｏｓｉｔｉｖｅデータとして入力される。
【００２７】
上記学習用データ３０３に対応する複数種類の特徴ベクトルのうち、指定サブカテゴリに対応するサブカテゴリ分け対象特徴ベクトル（例えば、色特徴ベクトル）３０７については、ｎｅｇａｔｉｖｅデータ（ネガティブデータ）として入力される。ここで、ｎｅｇａｔｉｖｅデータとは、２クラス識別器が識別対象とするカテゴリ以外のカテゴリに属するべき学習用データをいう。
【００２８】
そして、入力される学習用データが、指定メインカテゴリ以外のメインカテゴリに属する学習用データ３０４である場合は、次の処理が実行される。その学習用データ３０４に対応する全ての特徴ベクトル（例えば、色特徴ベクトルと形状特徴ベクトル）３０８がｎｅｇａｔｉｖｅデータとして入力される。
【００２９】
以上説明した図３のようにして、２クラス識別器を生成する対象となる指定メインカテゴリがさらに複数のサブカテゴリに分類されていれば、指定メインカテゴリおよび指定サブカテゴリｖｓ残りのメインカテゴリまたはサブカテゴリを識別する２クラス識別器３０１を生成する処理が実行される。
【００３０】
一方、指定メインカテゴリがサブカテゴリに分類されていなければ、図４で示される、指定メインカテゴリｖｓ残りのメインカテゴリまたはサブカテゴリを識別する２クラス識別器４０１の生成処理が実行される。
【００３１】
入力される学習用データが、指定メインカテゴリに属する学習用データ４０２である場合は、次の処理が実行される。その学習用データ４０２に対応する全ての特徴ベクトル（例えば、色特徴ベクトルと形状特徴ベクトル）４０４がｐｏｓｉｔｉｖｅデータとして入力される。
【００３２】
入力される学習用データが、指定メインカテゴリ以外のメインカテゴリに属する学習用データ４０３である場合は、次の処理が実行される。その学習用データ４０３に対応する全ての特徴ベクトル４０５がｎｅｇａｔｉｖｅデータとして入力される。
【００３３】
以上説明した図４のようにして、２クラス識別器を生成する対象となる指定メインカテゴリがサブカテゴリに分類されていなければ、指定メインカテゴリｖｓ残りのメインカテゴリまたはサブカテゴリを識別する２クラス識別器４０１を生成する処理が実行される。
【００３４】
以上、図２から図４で示した多クラス識別器生成処理により、例えば花のカテゴリなどの画像分類において、内部の機械学習の分類の問題設定を、ユーザに提供する花のカテゴリであるメインカテゴリそのままではなく、各メインカテゴリに属する学習用データから抽出される特徴ベクトルごとの分散が少なくなるように、サブカテゴリ分けが自動的に行われる。そして、サブカテゴリについても個別に２クラス識別器が生成される。これにより、識別率の向上をはかることが可能となる。
【００３５】
この場合、指定サブカテゴリを識別する２クラス識別器の生成処理においては、指定サブカテゴリに属する学習用データについては、その学習用データから抽出される全特徴ベクトルがｐｏｓｉｔｉｖｅデータとされる。また、指定サブカテゴリが属する指定メインカテゴリ内の他のサブカテゴリに属する学習用データについては、その学習用データから抽出される特徴ベクトルのうち指定サブカテゴリに対応するサブカテゴリ分け対象特徴ベクトル以外の特徴ベクトルがｐｏｓｉｔｉｖｅデータとされ、サブカテゴリ分け対象特徴ベクトルはｎｅｇａｔｉｖｅデータとされる。さらに、指定サブカテゴリが属する指定メインカテゴリ以外のメインカテゴリに属する学習用データについては、その学習用データから抽出される全特徴ベクトルがｎｅｇａｔｉｖｅデータとされる。これにより、サブカテゴリを精度良く識別する２クラス識別器を生成することが可能となる。
【００３６】
図５は、図２のステップＳ２０２のサブカテゴリ分け処理の詳細を示すフローチャートである。
【００３７】
図５において、本実施形態では、ステップＳ５０１にて図２のステップＳ２０１で選定されたメインカテゴリから１つずつメインカテゴリが指定されながら、ステップＳ５０９で未処理のメインカテゴリがなくなったと判定されるまで、ステップＳ５０２からステップＳ５０８までの一連の処理が指定されたメインカテゴリごとに実行される。
さらに、指定されたメインカテゴリごとの上記一連の処理において、ステップＳ５０２にて複数の特徴ベクトル（例えば、色特徴ベクトルと形状特徴ベクトル）の中から１つずつ特徴ベクトルが指定されながら、ステップＳ５０８で未処理の特徴ベクトルがなくなったと判定されるまで、ステップＳ５０３からステップＳ５０７までの一連の処理が指定された特徴ベクトルごとに実行される。ステップＳ５０３からステップＳ５０７までの一連の処理では、下記の処理が実行される。
【００３８】
まず、ステップＳ５０１で指定されたメインカテゴリ内の全ての学習用データについて、ステップＳ５０２で指定された特徴ベクトル群（例えば、色特徴ベクトル群）の分散度が分類前分散度として計算される（ステップＳ５０３）。分類前分散度は、例えば次のようにして計算できる。まず、全ての学習用データの特徴ベクトル群の重心ベクトルとして、例えば、各特徴ベクトルの各要素値ごとの平均値を各要素値とするベクトルが計算される。そして、例えば、各学習用データの特徴ベクトルと重心ベクトルとの距離の二乗の全ての学習用データでの平均値として、分類前分散度が算出される。
【００３９】
次に、ステップＳ５０１で指定されたメインカテゴリ内の全ての学習用データについて、ステップＳ５０２で指定された特徴ベクトル群がＮ個（Ｎ個は、例えば２個、あるいは数個）のクラスタにクラスタリングされる（ステップＳ５０４）。クラスタリングアルゴリズムとしては例えば、ｋ−ｍｅａｎｓ法が用いられる。
【００４０】
ステップＳ５０４で算出された各クラスタの分散度が、分類後分散度として計算される（ステップＳ５０５）。クラスタごとの分類後分散度は、例えば次のようにして計算できる。まず、クラスタに属する学習用データの特徴ベクトル群の重心ベクトルが計算される。そして、例えば、クラスタに属する各学習用データの特徴ベクトルと重心ベクトルとの距離の二乗のクラスタに属する学習用データでの平均値として、そのクラスタに対応する分類後分散度が算出される。
【００４１】
ステップＳ５０５で算出されたクラスタごとの分類後分散度が、ステップＳ５０３で算出された分類前分散度に対して、所定値以上小さいか否かが判定される（ステップＳ５０６）。
【００４２】
各分類後分散度が分類前分散度に比較して所定の閾値以上小さくステップＳ５０６の判定がＹＥＳならば、ステップＳ５０７で、次の処理が実行される。まず、ステップＳ５０２で指定された特徴ベクトルが、サブカテゴリ分け対象特徴ベクトルとされる。そして、各クラスタに属する学習用データにおいて、そのサブカテゴリ分け対象特徴ベクトルに対応させて、ステップＳ５０１で指定されたメインカテゴリに各クラスタに対応するサブカテゴリが追加される。
【００４３】
例えば、図１の外部記憶装置１０５に記憶されている花の学習用データのデータベースにおいて、指定メインカテゴリがアサガオのカテゴリで、ステップＳ５０４で、この指定メインカテゴリが２つのクラスタにクラスタリングされたとする。そして、例えば色特徴ベクトルについて、これらのクラスタの分類後分散度が分類前分散度に比較して所定の閾値以上大きくなったとする。この場合、第１のクラスタに属するアサガオの学習用データに、指定メインカテゴリであるアサガオの情報に加えて、例えばクラスタ番号１番がサブカテゴリの情報として登録され、また、色特徴ベクトルであることを示す特徴ベクトルの識別情報が登録される。また、第２のクラスタに属するアサガオの学習用データに、指定メインカテゴリであるアサガオの情報に加えて、例えばクラスタ番号２番がサブカテゴリの情報として登録され、色特徴ベクトルであることを示す特徴ベクトルの識別情報が登録される。この場合、サブカテゴリ番号１番は例えば白アサガオに対応し、サブカテゴリ番号２番は例えば青アサガオに対応する。ただし、システム内では、白アサガオや青アサガオの色が明示的に認識される必要はなく、上述のように例えば単なる識別番号で認識されればよい。結果として、第１のクラスタには例えば白アサガオがクラスタリングされ、第２のクラスタには例えば青アサガオがクラスタリングされるということである。
【００４４】
あるいは例えば、外部記憶装置１０５に記憶されている花の学習用データのデータベースにおいて、指定メインカテゴリがマーガレットのカテゴリで、ステップＳ５０４で、この指定メインカテゴリが２つのクラスタにクラスタリングされたとする。そして、例えば形状特徴ベクトルについて、これらのクラスタの分類後分散度が分類前分散度に比較して所定の閾値以上大きくなったとする。この場合、第１のクラスタに属するマーガレットの学習用データに、指定メインカテゴリであるマーガレットの情報に加えて、例えばクラスタ番号１番がサブカテゴリの情報として登録され、また、形状特徴ベクトルであることを示す特徴ベクトルの識別情報が登録される。また、第２のクラスタに属するマーガレットの学習用データに、指定メインカテゴリであるマーガレットの情報に加えて、例えばクラスタ番号２番がサブカテゴリの情報として登録され、形状特徴ベクトルであることを示す特徴ベクトルの識別情報が登録される。この場合、サブカテゴリ番号１番は例えば一重咲きのマーガレットに対応し、サブカテゴリ番号２番は例えば八重咲きのマーガレットに対応する。この場合も、システム内では、一重咲きのマーガレットや八重咲きのマーガレットの形状（一重、八重）が明示的に認識される必要はなく、上述のように例えば単なる識別番号で認識されればよい。
【００４５】
各分類後分散度が分類前分散度に比較して所定の閾値以上小さくはなくステップＳ５０６の判定がＮＯならば、ステップＳ５０７は実行されずに、ステップＳ５０８に進む。
【００４６】
以上のようにして、本実施形態では、指定されたメインカテゴリおよび指定された特徴ベクトルについて、その指定されたメインカテゴリのばらつき度合いを分散度として算出することができる。そして、分散度が大きい場合に、指定された特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、そのサブカテゴリ分け対象特徴ベクトルに対応させて、指定されたメインカテゴリをさらに複数のサブカテゴリに自動的に分類することが可能となる。
【００４７】
図６は、図２のステップＳ２０３の多クラス識別器生成処理の詳細を示すフローチャートである。このフローチャートは、入力されるデータ中の特徴が画像の特徴であって例えば、アサガオ、ヒルガオ、ヒマワリの３クラスの花画像の特徴の識別を行う多クラス識別器を作成する処理を示している。また、画像の特徴抽出では、ＢＯＦ（Ｂａｇ  Ｏｆ  Ｆｅａｔｕｒｅｓ）と呼ばれる画像分類において一般的な方式が実行されることにより、各画像から特徴抽出が行われる。
【００４８】
まず、学習用データとラベルの収集処理が実行される（図６のステップＳ６０１）。ここでは、例えば図１のＲＡＭ１０４または外部記憶装置１０５に、学習用データが用意される。学習用データは、図２のステップＳ２０１で選定された識別対象のメインカテゴリ、例えば花の画像であれば、アサガオ、ヒルガオ、ヒマワリ等の花の種別ごとに用意される。そして、各学習用データには、その学習用データが表す特徴のメインカテゴリを示すラベルが付与される。全体として、複数のクラス×複数枚の学習用データが用意される。より具体的には例えば、アサガオ、ヒルガオ、ヒマワリの３種の花画像について、それぞれ５０枚ずつの画像データが学習用データとして収集される。集められた画像データそれぞれについて、花の名前と関連付けるラベルデータベースが作成される。
【００４９】
次に、特徴抽出処理が実行される（図６のステップＳ６０２）。この処理では、学習用データのそれぞれにおいて、学習用データが示す画像内の各グリッドに対応させて１つ以上の特徴情報を抽出する処理が実行され、その特徴情報が図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。特徴情報としては例えば、画像内のグリッドに対応させて、色および形状が抽出される。色は例えば、グリッド内のＲＧＢ値の平均値である。形状は例えば、グリッド内から抽出される２値形状画像をあらかじめ定めた複数の形状テンプレート画像と比較したときの最も近い形状である。この処理の詳細は、図７のフローチャートを用いて後述する。
【００５０】
次に、クラスタリング処理が実行される（図６のステップＳ６０３）。この処理では、ステップＳ６０２で抽出された、全ての学習用データが示す例えば３種の花の各５０枚の画像内の全てのグリッドに対応する全ての色の特徴情報が、複数（例えば５００個）のクラスタにクラスタリングされる。クラスタリングアルゴリズムとしては例えば、ｋ−ｍｅａｎｓ法が用いられる。形状の特徴情報についても同様に、複数（例えば５００個）のクラスタにクラスタリングされる。クラスタリングの結果は、図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。
【００５１】
次に、ベクトル量子化処理が実行される（図６のステップＳ６０４）。この処理では、学習用データのそれぞれにおいて、次の処理が実行される。ステップＳ６０２にて学習用データが示す画像内の各グリッドに対応して抽出され図１のＲＡＭ１０４または外部記憶装置１０５に保存されていた各特徴情報ごとに、その特徴情報とステップＳ６０３で算出され図１のＲＡＭ１０４または外部記憶装置１０５に記憶されている各クラスタの重心のＲＧＢデータとの距離がそれぞれ算出される。そして、その算出された距離のうち最小の距離に対応するクラスタが最近傍クラスタとして抽出され、その抽出された最近傍クラスタの重心データがその特徴情報のベクトル量子化値とされる。このベクトル量子化処理は例えば、色および形状の特徴情報ごとに実行され、それぞれステップＳ６０３でのクラスタリングにより得られる色のクラスタおよび形状のクラスタを用いて個別にベクトル量子化値が抽出される。学習用データ内の各グリッドの色および形状の特徴情報ごとに抽出された色および形状の各ベクトル量子化値は、図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。この処理の詳細は、図８のフローチャートを用いて後述する。
【００５２】
次に、特徴ベクトル生成処理（ヒストグラム生成処理）が実行される（図６のステップＳ６０５）。この処理では、複数の学習用データのそれぞれにおいて、学習用データが示す画像内の各グリッドに対応してステップＳ６０４にてＲＡＭ１０４または外部記憶装置１０５に得たベクトル量子化値ごとに、そのベクトル量子化値に対応する最近傍クラスタのヒストグラム度数を積算する処理が繰り返し実行される。これにより、その学習用データに対応するヒストグラムが生成され、ヒストグラムのビンごとの各度数値を各要素値とする特徴ベクトルが生成されて、その学習用データに付与されているメインカテゴリを示すラベルとともに図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。ヒストグラムの生成においては例えば、色および形状ごとにステップＳ６０４にて抽出されたベクトル量子化値を用いて個別に、色のヒストグラムおよび形状のヒストグラムが生成される。そして、色のヒストグラムのビンごとの各度数値を各要素値とする色特徴ベクトルと、形状のヒストグラムのビンごとの各度数値を各要素値とする形状特徴ベクトルがそれぞれ生成される。これらの色特徴ベクトルおよび形状特徴ベクトルは、各学習用データに対応付けて図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。この処理の詳細は、図９のフローチャートを用いて後述する。
【００５３】
最後に、識別器生成処理が実行される（図６のステップＳ６０６）。ここでは、図２のステップＳ２０２にてサブカテゴリ分けが行われたメインカテゴリ内の各サブカテゴリまたはサブカテゴリ分けが行われなかったメインカテゴリをそれぞれ識別器生成対象カテゴリとして、以下の処理が実行される。まず、図６のステップＳ６０１からステップＳ６０５によって複数の学習用データからそれぞれ抽出した各特徴ベクトルがＲＡＭ１０４または外部記憶装置１０５から入力される。次に、各学習用データが表す特徴が識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理が実行される。そして、この処理が複数の識別器生成対象カテゴリごとに実行されることで、各学習用データが表す特徴が各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の２クラス識別器からなる多クラス識別器が生成される。この処理の詳細は、図１０のフローチャートを用いて後述する。
【００５４】
以上の識別器の生成処理において、図６のステップＳ６０１からＳ６０５までの一連の処理は、各学習用データに対して１回だけ実行し、その結果を図１のＲＡＭ１０４または外部記憶装置１０５に保持しておけばよい。そして、ステップＳ６０６の識別器生成処理においては、ＲＡＭ１０４または外部記憶装置１０５に保持されているステップＳ６０１からＳ６０５までの実行結果を繰り返し読み出して実行することにより、高速に処理を実行することができる。
【００５５】
図７は、図６のステップＳ６０２の特徴抽出処理を示すフローチャートである。
【００５６】
このフローチャートでは、ステップＳ７０１において、学習用データが図１のＲＡＭ１０４または外部記憶装置１０５から１枚分ずつ入力されながら、ステップＳ７０４で処理すべき次の学習用データがなくなったと判定されるまで、ステップＳ７０２とＳ７０３の一連の処理が実行される。
【００５７】
まず、ステップＳ７０１で１枚分の学習用データが入力された後、その学習用データが示す画像内の最初のグリッドに対応する色および形状の特徴情報が抽出され、ＲＡＭ１０４または外部記憶装置１０５に記憶される（図７のステップＳ７０２）。
【００５８】
次に、ステップＳ７０３で未処理の次のグリッドがなくなったと判定されるまで、学習用データからグリッドごとにステップＳ７０２の特徴情報の抽出処理が実行される（図７のステップＳ７０２→Ｓ７０３→Ｓ７０２の繰返し処理）。
【００５９】
学習用データ上のグリッドごとの全ての特徴情報の抽出処理が完了すると、次の学習用データがあるか否かが判定される（図７のステップＳ７０４）。
【００６０】
ステップＳ７０４の判定がＹＥＳならば、ステップＳ７０１の処理に戻って、ステップＳ７０１からＳ７０３の一連の処理が繰り返される。
【００６１】
全ての学習用データに対する処理が完了してステップＳ７０４の判定がＮＯになると、図７のフローチャートで示される図６のステップＳ６０２の特徴抽出処理を終了する。
【００６２】
図８は、図６のステップＳ６０４のベクトル量子化処理を示すフローチャートである。
【００６３】
このフローチャートでは、ステップＳ８０１において、図１のＲＡＭ１０４または外部記憶装置１０５上で学習用データが１枚分ずつ指定されながら、ステップＳ８０５で指定すべき次の学習用データがなくなったと判定されるまで、ステップＳ８０２からＳ８０４の一連の処理が実行される。
【００６４】
ステップＳ８０１で学習用データが指定された後、ステップＳ８０４でＲＡＭ１０４または外部記憶装置１０５からその学習用データに対応する特徴情報が取得されなくなったと判定されるまで、ステップＳ８０２とＳ８０３の処理が繰り返し実行される。
【００６５】
まず、現在の学習用データに対応するグリッドごとの色および形状の特徴情報が、ＲＡＭ１０４または外部記憶装置１０５から読み出される（図８のステップＳ８０２）。
【００６６】
次に、ステップＳ８０２で読み出された色の特徴情報と図６のステップＳ６０３で算出された色の各クラスタの重心のＲＧＢデータとの距離がそれぞれ算出される。そして、その算出された距離のうち最小の距離に対応する色のクラスタが最近傍クラスタとして抽出され、その抽出した最近傍クラスタの重心データがその色の特徴情報のベクトル量子化値とされる。形状についても同様に、ステップＳ８０２で読み出された形状の特徴情報と図６のステップＳ６０３で算出された形状の各クラスタの重心のＲＧＢデータとの距離がそれぞれ算出される。そして、その算出された距離のうち最小の距離に対応する形状のクラスタが最近傍クラスタとして抽出され、その抽出した最近傍クラスタの重心データがその形状の特徴情報のベクトル量子化値とされる。このようにして、一組の色および形状の各特徴情報について抽出された各ベクトル量子化値が、ＲＡＭ１０４または外部記憶装置１０５に記憶される（以上、図８のステップＳ８０３）。
【００６７】
次に、現在の学習用データに対応するグリッドごとの次の特徴情報がまだＲＡＭ１０４または外部記憶装置１０５上にあるか否かが判定される（図８のステップＳ８０４）。
【００６８】
ステップＳ８０４の判定がＹＥＳならば、ステップＳ８０２の処理に戻って、次の特徴情報に対して、ステップＳ８０２とＳ８０３の処理が繰り返し実行される。
【００６９】
全ての特徴情報に対するベクトル量子化が完了しステップＳ８０４の判定がＮＯとなると、次の学習用データがあるか否かが判定される（図８のステップＳ８０５）。
【００７０】
ステップＳ８０５の判定がＹＥＳならば、ステップＳ８０１の処理に戻って、ステップＳ８０１からＳ８０４の一連の処理が繰り返される。
【００７１】
全ての学習用データに対するベクトル量子化処理が完了してステップＳ８０５の判定がＮＯになると、図８のフローチャートで示される図６のステップＳ６０４のベクトル量子化処理を終了する。
【００７２】
図９は、図６のステップＳ６０５の特徴ベクトル生成処理（ヒストグラム生成処理）を示すフローチャートである。
【００７３】
このフローチャートでは、ステップＳ９０１において、図１のＲＡＭ１０４または外部記憶装置１０５上で学習用データが１枚分ずつ指定されながら、ステップＳ９０６で指定すべき次の学習用データがなくなったと判定されるまで、ステップＳ９０２からＳ９０５の一連の処理が実行される。
【００７４】
ステップＳ９０１で学習用データが指定された後、ステップＳ９０４でＲＡＭ１０４または外部記憶装置１０５からその学習用データに対応するベクトル量子化値が取得されなくなったと判定されるまで、ステップＳ９０２とＳ９０３の処理が繰り返し実行される。
【００７５】
まず、現在の学習用データに対応するグリッドごとのベクトル量子化値、より具体的には色および形状の各ベクトル量子化値が、ＲＡＭ１０４または外部記憶装置１０５から読み出される（図９のステップＳ９０２）。
【００７６】
次に、その読み出されたそのベクトル量子化値に対応する最近傍クラスタのＲＡＭ１０４または外部記憶装置１０５上に記憶されているヒストグラム度数がプラス１される。より具体的には、色のベクトル量子化値に対応する色の最近傍クラスタのＲＡＭ１０４または外部記憶装置１０５上に記憶されている色のヒストグラム度数がプラス１される。同様に、形状のベクトル量子化値に対応する形状の最近傍クラスタのＲＡＭ１０４または外部記憶装置１０５上に記憶されている形状のヒストグラム度数がプラス１される（以上、図９のステップＳ９０３）。
【００７７】
続いて、現在の学習用データに対応するグリッドごとのベクトル量子化値がまだＲＡＭ１０４または外部記憶装置１０５上にあるか否かが判定される（図９のステップＳ９０４）。
【００７８】
ステップＳ９０４の判定がＹＥＳならば、ステップＳ９０２の処理に戻って、次のベクトル量子化値に対して、ステップＳ９０２とＳ９０３の処理が繰り返し実行される。
【００７９】
全てのベクトル量子化値に対するヒストグラムカウントが完了しステップＳ９０４の判定がＮＯとなると、次の処理が実行される。ＲＡＭ１０４または外部記憶装置１０５に記憶されている全クラスタのヒストグラム度数値を要素値とする特徴ベクトルが算出される。より具体的には、色のヒストグラムのビンごと（色の全クラスタ）の各度数値を各要素値とする色特徴ベクトルが生成される。同様に、形状のヒストグラムのビンごと（形状の全クラスタ）の各度数値を連結したものを各要素値とする形状特徴ベクトルが生成される。このようにして生成された現在の学習用データに対応する各特徴ベクトル（例えば、色特徴ベクトルおよび形状特徴ベクトル）がＲＡＭ１０４または外部記憶装置１０５に記憶される（以上、図９のステップＳ９０５）。
【００８０】
その後、次の学習用データがあるか否かが判定される（図９のステップＳ９０６）。
【００８１】
ステップＳ９０６の判定がＹＥＳならば、ステップＳ９０１の処理に戻って、ステップＳ９０１からＳ９０５の一連の処理が繰り返される。
【００８２】
全ての学習用データに対するヒストグラム生成処理が完了してステップＳ９０６の判定がＮＯになると、図９のフローチャートで示される図６のステップＳ６０５の識別器生成処理（ヒストグラム生成処理）を終了する。
【００８３】
図１０は、図６のステップＳ６０６の識別器生成処理を示すフローチャートである。
【００８４】
図１０の識別器生成処理では、ステップＳ１００１にて図２のステップＳ２０１で選定された複数のメインカテゴリが１つずつ順次指定メインカテゴリとして指定されながら、ステップＳ１０１３で未処理のメインカテゴリがなくなったと判定されるまで、以下に説明するステップＳ１００２からステップＳ１０１２の一連の処理が実行される。
【００８５】
まず、ステップＳ１００１で指定された指定メインカテゴリに関して、ＲＡＭ１０４または外部記憶装置１０５に記憶されている学習用データに、サブカテゴリ（図５のステップＳ５０７参照）が登録されているか否かが判定される（図１０のステップＳ１００２）。
【００８６】
指定メインカテゴリに関して学習用データにサブカテゴリが登録されておりステップＳ１００２の判定がＹＥＳならば、ステップＳ１００３でサブカテゴリが１つずつ指定サブカテゴリとして指定されながら、ステップＳ１００９でその指定メインカテゴリ内で未処理のサブカテゴリがなくなったと判定されるまで、ステップＳ１００４からＳ１００８の一連の処理が指定サブカテゴリごとに実行される。
なお、図５のステップＳ５０７のサブカテゴリの登録処理の実行時に、各指定メインカテゴリごとに登録されたサブカテゴリの一覧を管理するテーブルデータを例えば図１のＲＡＭ１０４に生成し、このテーブルデータをステップＳ１００２やステップＳ１０１１で参照するようにすれば、これらの判定処理を効率的に実行することができる。
【００８７】
ステップＳ１００３で指定メインカテゴリ内で１つのサブカテゴリが指定サブカテゴリとして指定された後、まず、ＲＡＭ１０４に外部記憶装置１０５に記憶されている学習用データのうちから、指定メインカテゴリに属しかつ指定サブカテゴリに属する学習用データ３０２（図３参照）が読み出される。そして、それらの学習用データ３０２に対応して図６のステップＳ６０５で算出されている全ての特徴ベクトル３０５（図３参照）が、ｐｏｓｉｔｉｖｅデータとして指定される（以上、図１０のステップＳ１００４）。
図１１は、サブカテゴリを識別する２クラス識別器の生成処理として、アサガオ／白アサガオｖｓ残りのメインカテゴリまたはサブカテゴリを識別する２クラス識別器３０１の生成例を示す図である。なお、前述したように、システム上ではサブカテゴリとしては、白アサガオとは認識されておらず、単にサブカテゴリの１つの識別番号（例えば１番）が認識されているだけである。この場合、アサガオに対応する指定メインカテゴリに属し白アサガオに相当する指定サブカテゴリに属する学習用データ３０２が読み出される。そして、それらの学習用データに対応する色特徴ベクトルおよび形状特徴ベクトルが、ｐｏｓｉｔｉｖｅデータとして指定される。
【００８８】
次に、ＲＡＭ１０４に外部記憶装置１０５に記憶されている学習用データのうちから、指定メインカテゴリに属しかつ指定サブカテゴリ以外の他サブカテゴリに属する学習用データ３０３（図３参照）が読み出される。そして、それらの学習用データ３０３に対応して図６のステップＳ６０５で算出されている特徴ベクトルのうち、指定サブカテゴリに対応するサブカテゴリ分け対象特徴ベクトル以外の特徴ベクトル３０６（図３参照）が、ｐｏｓｉｔｉｖｅデータとして指定される（以上、図１０のステップＳ１００５）。
図１１の例では、アサガオに対応する指定メインカテゴリに属し白アサガオに相当する指定サブカテゴリ以外の青アサガオに相当する他サブカテゴリに属する学習用データ３０３が読み出される。そして、それらの学習用データに対応する形状特徴ベクトルが、ｐｏｓｉｔｉｖｅデータとして指定される。青アサガオは、色は指定サブカテゴリに対応する白アサガオとは異なるが、形状は同じであるため、その形状特徴ベクトルはｐｏｓｉｔｉｖｅデータとされる。なお、この場合も、前述したように、システム上では青アサガオとしては認識されておらず、単にサブカテゴリの１つの識別番号（例えば指定サブカテゴリに対応する１番のサブカテゴリ以外の例えば２番のサブカテゴリ）が認識されているだけである。
【００８９】
次に、ステップＳ１００５で読み出された、指定メインカテゴリに属しかつ指定サブカテゴリ以外の他サブカテゴリに属する学習用データ３０３（図３参照）に対応して図６のステップＳ６０５で算出されている特徴ベクトルのうち、指定サブカテゴリに対応するサブカテゴリ分け対象特徴ベクトル３０７（図３参照）が、ｎｅｇａｔｉｖｅデータとして指定される（図１０のステップＳ１００６）。
図１１の例では、アサガオに対応する指定メインカテゴリに属し白アサガオに相当する指定サブカテゴリ以外の青アサガオに相当する他サブカテゴリに属する学習用データ３０３に対応する色特徴ベクトルが、ｎｅｇａｔｉｖｅデータとして指定される。青アサガオは、色は指定サブカテゴリに対応する白アサガオとは異なるため、その色特徴ベクトルはｎｅｇａｔｉｖｅデータとされる。
【００９０】
そして、ＲＡＭ１０４に外部記憶装置１０５に記憶されている学習用データのうちから、指定メインカテゴリ以外の他メインカテゴリに属する学習用データ３０４（図３参照）が読み出される。そして、それらの学習用データ３０４に対応して図６のステップＳ６０５で算出されている全ての特徴ベクトル３０８（図３参照）が、ｎｅｇａｔｉｖｅデータとして指定される（以上、図１０のステップＳ１００７）。
図１１の例では、指定メインカテゴリのアサガオ以外のメインカテゴリに属する学習用データ３０４に対応する色特徴ベクトルおよび形状特徴ベクトルが、ｎｅｇａｔｉｖｅデータとして指定される。アサガオ以外の花は、色および形状ともに白アサガオとは異なるため、その色特徴ベクトルおよび形状特徴ベクトルともにｎｅｇａｔｉｖｅデータとされる。
【００９１】
以上のステップＳ１００４からステップＳ１００７の処理によりｐｏｓｉｔｉｖｅデータおよびｎｅｇａｔｉｖｅデータが指定された後、ｐｏｓｉｔｉｖｅデータとされた各学習用データに対応する各特徴ベクトルが図１のＲＡＭ１０４または外部記憶装置１０５から読み込まれて第１のグループとされる。また、ｎｅｇａｔｉｖｅデータとされた各学習用データに対応する各特徴ベクトルがＲＡＭ１０４または外部記憶装置１０５から読み込まれて第２のグループとされる。そして、このようにして得られた特徴ベクトルの第１および第２のグループに基づいて、指定メインカテゴリおよび指定サブカテゴリに属するデータが入力されたときに最大のスコア値を出力する指定メインカテゴリ／指定サブカテゴリｖｓ残りのメインカテゴリまたはサブカテゴリ識別器３０１（図３参照）の識別用パラメータが演算される（以上、図１０のステップＳ１００８）。
【００９２】
具体的には例えば、そのような２クラス識別器多クラス識別器３０１において、例えば下記（１）式に示されるような特徴ベクトルが入力されたとする。ここで、Ｍは、第１の特徴ベクトルである例えば色特徴ベクトルの要素数であり、例えば色のヒストグラムのビン数である。Ｎは、第２の特徴ベクトルである例えば形状特徴ベクトルの要素数であり、例えば形状のヒストグラムのビン数である。特徴ベクトルの種類が３種類以上であっても同様である。ｘi （１≦ｉ≦Ｍ）は、第１の特徴ベクトルである例えば色の特徴ベクトルに対応するヒストグラムのビン番号におけるｉ番目のビン番号におけるヒストグラム度数である。ｘM+i （１≦ｉ≦Ｎ）は、第２の特徴ベクトルである例えば形状の特徴ベクトルに対応するヒストグラムのビン番号におけるｉ番目のビン番号におけるヒストグラム度数である。
【００９３】
特徴ベクトル＝（ｘ1 ，・・・，ｘM ，ｘM+1 ・・・，ｘM+N ）      ・・・（１）
【００９４】
次に、下記（２）式のように、（１）式のベクトルの各要素ｘ1 ，・・・，ｘM ，ｘM+1 ・・・，ｘM+N にそれぞれ個別の重み値ｃ1 ，・・・，ｃM ，ｃM+1 ・・・，ｃM+N を乗算し、その各乗算結果の総和として、２クラス識別器３０１に対応するスコア値ｆ（ｘ）を出力する。
【００９５】
ｆ（ｘ）＝ｃ1 ｘ1 ，＋・・・＋ｃM ｘM ＋ｃM+1 ｘM+1 ，＋・・・＋ｃM+N ｘM+N 
・・・（２）
【００９６】
この場合、ステップＳ１００８では、上記第１のグループの特徴ベクトルが上記２クラス識別器３０１に入力されたときに最大のスコア値を出力し、上記第２のグループの特徴ベクトルが上記２クラス識別器３０１に入力されたときになるべく小さいスコア値を出力するように、上記各重み値ｃ1 ，・・・，ｃM ，ｃM+1 ・・・，ｃM+N が算出される。
【００９７】
これらの重み値の算出方法としては例えば、機械学習における線形分類器において用いられる線形判別分析と呼ばれるような公知の手法を採用することができる。
【００９８】
図１０のステップＳ１００８において、このようにして算出された重み値は、ステップ１００１およびステップＳ１００３によって現在指定されているメインカテゴリ／サブカテゴリに対応する２クラス識別器３０１の重み値として、図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。メインカテゴリ／サブカテゴリに対応する２クラス識別器３０１は、この重み値と、（２）式の演算式を実行するプログラムとによって定義される。このようにして構成される２クラス識別器３０１は、後述する図１３のフローチャートにおけるステップＳ１３０５の識別器演算処理において実行され、対応するスコア値を出力する。
【００９９】
また、図１０のステップＳ１００８において、図１のＲＡＭ１０４または外部記憶装置１０５に記憶されている学習用データのうち、ステップ１００１およびステップＳ１００３によって現在指定されているメインカテゴリ／サブカテゴリに属する任意のものが、現在指定されているメインカテゴリ／サブカテゴリに対応する２クラス識別器３０１に対応する代表画像データとして、ＲＡＭ１０４または外部記憶装置１０５に記憶される。
【０１００】
その後、指定メインカテゴリにおいて次の未処理のサブカテゴリがあるか否かが判定される（図１０のステップＳ１００９）。
【０１０１】
ステップＳ１００９の判定がＹＥＳならばステップＳ１００３の処理に戻って、指定メインカテゴリにおける新たなサブカテゴリが指定サブカテゴリとされて、その指定サブカテゴリに対応する２クラス識別器３０１（図３参照）の生成処理が繰り返し実行される。
【０１０２】
指定メインカテゴリにおける全てのサブカテゴリに対する処理が終了してステップＳ１００９の判定がＮＯとなると、現在の指定メインカテゴリにおけるそれに属するサブカテゴリに対する２クラス識別器３０１の生成処理を終了し、ステップＳ１０１３に移行する。
【０１０３】
指定メインカテゴリに関して学習用データにサブカテゴリが登録されておらずステップＳ１００２の判定がＮＯならば、ステップＳ１０１０からＳ１０１２の一連の処理が指定メインカテゴリに対して実行される。
【０１０４】
まず、ＲＡＭ１０４に外部記憶装置１０５に記憶されている学習用データのうちから、指定メインカテゴリに属する学習用データ４０２（図４参照）が読み出される。そして、それらの学習用データ４０２に対応して図６のステップＳ６０５で算出されている全ての特徴ベクトル４０４（図４参照）が、ｐｏｓｉｔｉｖｅデータとして指定される（以上、図１０のステップＳ１０１０）。
図１２は、メインカテゴリを識別する２クラス識別器の生成処理として、ヒルガオｖｓ残りのメインカテゴリまたはサブカテゴリを識別する２クラス識別器４０１の生成例を示す図である。この場合、ヒルガオに対応する指定メインカテゴリに属する学習用データ４０２が読み出される。そして、それらの学習用データに対応する色特徴ベクトルおよび形状特徴ベクトルが、ｐｏｓｉｔｉｖｅデータとして指定される。
【０１０５】
そして、ＲＡＭ１０４に外部記憶装置１０５に記憶されている学習用データのうちから、指定メインカテゴリ以外の他メインカテゴリに属する学習用データ４０３（図４参照）が読み出される。そして、それらの学習用データ４０３に対応して図６のステップＳ６０５で算出されている全ての特徴ベクトル４０５（図４参照）が、ｎｅｇａｔｉｖｅデータとして指定される（以上、図１０のステップＳ１０１１）。
図１２の例では、指定メインカテゴリのヒルガオ以外のメインカテゴリに属する学習用データ４０３に対応する色特徴ベクトルおよび形状特徴ベクトルが、ｎｅｇａｔｉｖｅデータとして指定される。ヒルガオ以外の花は、色および形状ともにヒルガオとは異なるため、その色特徴ベクトルおよび形状特徴ベクトルともにｎｅｇａｔｉｖｅデータとされる。
【０１０６】
以上のステップＳ１０１０およびステップＳ１０１１の処理によりｐｏｓｉｔｉｖｅデータおよびｎｅｇａｔｉｖｅデータが指定された後、ｐｏｓｉｔｉｖｅデータとされた各学習用データに対応する各特徴ベクトルが図１のＲＡＭ１０４または外部記憶装置１０５から読み込まれて第１のグループとされる。また、ｎｅｇａｔｉｖｅデータとされた各学習用データに対応する各特徴ベクトルがＲＡＭ１０４または外部記憶装置１０５から読み込まれて第２のグループとされる。そして、このようにして得られた特徴ベクトルの第１および第２のグループに基づいて、指定メインカテゴリに属するデータが入力されたときに最大のスコア値を出力する指定メインカテゴリｖｓ残りのメインカテゴリまたはサブカテゴリ識別器４０１（図４参照）の識別用パラメータが演算される（以上、図１０のステップＳ１０１２）。２クラス識別器４０１は、前述した図１０のステップＳ１００８の場合と同様の演算手法により、前述した（２）式の重み値ｃ1 ，・・・，ｃM ，ｃM+1 ・・・，ｃM+N を決定する。
【０１０７】
図１０のステップＳ１０１２において、このようにして算出された重み値は、ステップ１００１によって現在指定されているメインカテゴリに対応する２クラス識別器４０１の重み値として、図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。メインカテゴリに対応する２クラス識別器４０１は、この重み値と、（２）式の演算式を実行するプログラムとによって定義される。このようにして構成される２クラス識別器４０１は、後述する図１３のフローチャートにおけるステップＳ１３０５の識別器演算処理において実行され、対応するスコア値を出力する。
【０１０８】
また、図１０のステップＳ１０１２において、図１のＲＡＭ１０４または外部記憶装置１０５に記憶されている学習用データのうち、ステップ１００１によって現在指定されているメインカテゴリに属する任意のものが、現在指定されているメインカテゴリに対応する２クラス識別器４０１に対応する代表画像データとして、ＲＡＭ１０４または外部記憶装置１０５に記憶される。
【０１０９】
その後、現在の指定メインカテゴリに対する２クラス識別器４０１（図４参照）の生成処理を終了し、ステップＳ１０１３に移行する。
【０１１０】
ステップＳ１００９またはステップＳ１０１２の処理の後、次の未処理のメインカテゴリがあるか否かが判定される（図１０のステップＳ１０１３）。
【０１１１】
次の未処理のメインカテゴリがあってステップＳ１０１３の判定がＹＥＳになると、ステップＳ１００１の処理に戻って、次のメインカテゴリが指定メインカテゴリとして指定され、上記と同様の２クラス識別器３０１（図３参照）または４０１（図４参照）の生成処理が実行される。
【０１１２】
全てのメインカテゴリに対する処理が終了しステップＳ１０１３の判定がＮＯになると、図１０のフローチャートで示される図６のステップＳ６０６の識別器生成処理を終了する。
【０１１３】
図１３は、上述の図２および図５〜図１０の処理によって生成された多クラス識別器の識別動作を示すフローチャートである。
【０１１４】
まず、図１の多クラス識別器が組み込まれている例えばスマートフォンなどの携帯情報端末のカメラ機能によって、例えば花などのカテゴリが未知の画像データが入力される（ステップＳ１３０１）。
【０１１５】
次に、特徴抽出処理が実行される（図１３のステップＳ１３０２）。この処理は、図６のステップＳ６０２と同様の処理である。ステップＳ１３０１でユーザされた画像データのそれぞれにおいて、画像データが示す画像内の各グリッドに対応させて１つ以上の特徴情報、例えば色および形状の情報を抽出する処理が実行される。そして、この結果得られる特徴情報が図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。
【０１１６】
次に、ベクトル量子化処理が実行される（図１３のステップＳ１３０３）。この処理は、図６のステップＳ６０４と同様の処理である。ステップＳ１３０１で入力された画像データのそれぞれにおいて、次の処理が実行される。ステップＳ１３０２にて入力された画像データが示す画像内の各グリッドに対応して抽出され図１のＲＡＭ１０４または外部記憶装置１０５に保存されていた各特徴情報ごとに、その特徴情報と図６のステップＳ６０３で算出され図１のＲＡＭ１０４または外部記憶装置１０５に記憶されている各クラスタの重心のＲＧＢデータとの距離がそれぞれ算出される。そして、その算出された距離のうち最小の距離に対応するクラスタが最近傍クラスタとして抽出され、その抽出された最近傍クラスタの重心データがその特徴情報のベクトル量子化値とされる。このベクトル量子化処理は、図６のステップＳ６０４の場合と同様に、例えば色および形状の特徴情報ごとに実行され、それぞれステップＳ６０３でのクラスタリングにより得られる色のクラスタおよび形状のクラスタを用いて個別にベクトル量子化値が抽出される。入力された画像データ内の各グリッドの色および形状の特徴情報ごとに抽出された色および形状の各ベクトル量子化値は、図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。
【０１１７】
次に、特徴ベクトル生成処理（ヒストグラム生成処理）が実行される（図１３のステップＳ１３０４）。この処理は、図６のステップＳ６０５と同様の処理である。ステップＳ１３０１で入力された画像データが示す画像内の各グリッドに対応してステップＳ１３０３にてＲＡＭ１０４または外部記憶装置１０５に得たベクトル量子化値ごとに、そのベクトル量子化値に対応する最近傍クラスタのヒストグラム度数を積算する処理が繰り返し実行される。これにより、入力された画像データに対応するヒストグラムが生成され、ヒストグラムのビンごとの各度数値を各要素値とする特徴ベクトルが生成されて、図１のＲＡＭ１０４または外部記憶装置１０５に記憶される。ヒストグラムの生成においては例えば、色および形状ごとにステップＳ１３０３にて抽出されたベクトル量子化値を用いて個別に、色のヒストグラムおよび形状のヒストグラムが生成される。そして、色のヒストグラムのビンごとの各度数値を各要素値とする色特徴ベクトルと、形状のヒストグラムのビンごとの各度数値を各要素値とする形状特徴ベクトルがそれぞれ生成される。
【０１１８】
次に、識別器演算処理が実行される（図１３のステップＳ１３０５）。ここでは、図１０のステップＳ１００８または図１０のステップＳ１０１２で生成された各２クラス識別器に、ステップＳ１３０４で生成された特徴ベクトルが入力され、各スコア値が演算される。そして、最も高いスコア値を出力したメインカテゴリまたはメインカテゴリ／サブカテゴリが識別結果として出力される。
具体的にはまず、例えば色特徴ベクトルと形状特徴ベクトルを連結した特徴ベクトルが、前述した（１）式の形式で入力される。次に、各メインカテゴリごと、各メインカテゴリがサブカテゴリ分けされている場合には各サブカテゴリごとに、図１０のステップＳ１００８またはステップＳ１０１２で生成され図１のＲＡＭ１０４または外部記憶装置１０５に記憶されている対応する重み値ｃ1 ，・・・，ｃM ，ｃM+1 ・・・，ｃM+N が読み出される。そして、（１）式の形式で入力された特徴ベクトルを用いて、（２）式に対応する演算処理が実行され、スコア値ｆ（ｘ）が出力される。すべてのメインカテゴリまたはメインカテゴリ／サブカテゴリごとに演算されたスコア値のうち最大値を出力したメインカテゴリまたはメインカテゴリ／サブカテゴリが、識別結果として出力される。
【０１１９】
最後に、識別結果代表画像表示処理が実行される（図１３のステップＳ１３０６）。ここでは、図１の出力装置１０８を構成する例えばディスプレイ装置に、識別結果の名称と画像が表示される。この場合、ステップＳ１３０５にて識別結果として出力されたのがメインカテゴリ／サブカテゴリである場合には、次のような表示が実行される。識別結果のテキスト表示としてはメインカテゴリに対応する名称が表示される。また、画像表示としては、ステップＳ１３０５で最大のスコア値を出力した２クラス識別器３０１（図３参照）に対応して図１０のステップＳ１００８によって図１のＲＡＭ１０４または外部記憶装置１０５に記憶されているサブカテゴリに属する代表画像が表示される。一方、ステップＳ１３０５にて識別結果として出力されたのがメインカテゴリのみである場合には、次のような表示が実行される。識別結果のテキスト表示としてはメインカテゴリに対応する名称が表示される。また、画像表示としては、ステップＳ１３０５で最大のスコア値を出力した２クラス識別器３０１（図３参照）に対応して図１０のステップＳ１０１２によって図１のＲＡＭ１０４または外部記憶装置１０５に記憶されているメインカテゴリに属する代表画像が表示される。
【０１２０】
図１４は、図１３のフローチャートで示される多クラス識別器の識別結果表示動作による表示例を示す図である。例えば、未知カテゴリの画像データとして、白アサガオの画像データ１４０１が多クラス識別器に入力されたとする。特徴ベクトル抽出処理１４０２により生成された特徴ベクトルが、＃１から＃４の４つの２クラス識別器１４０３に入力され、それぞれスコア値が出力される。この場合、＃２の白アサガオｖｓ残り識別器１４０３と＃３の青アサガオｖｓ残り識別器１４０３は、本実施形態による図２のステップＳ２０２のサブカテゴリ分け処理によって、アサガオから自動的にサブカテゴリ分けされて生成されたものである。この場合、ＭＡＸスコア判定１４０４において＃２の白アサガオｖｓ残り識別器１４０３が出力するスコア値が最大値であると判定されることにより、ディスプレイ１４０５には、「アサガオ」というテキスト表記１４０７（画像が付随してもよい）と並べて、白アサガオの画像データ１４０６を表示させることができる。白アサガオは、システム内において明示的に白色と認識されているわけではないが、本実施形態によるサブカテゴリ分け処理によるクラスタリング処理によって、白アサガオの代表画像を適切に表示させることが可能となる。
【０１２１】
図１３のステップＳ１３０６の後、多クラス識別器の識別動作が終了する。
【０１２２】
以上説明したように、本実施形態によれば、分散度が大きいカテゴリの分類に対してサブカテゴリ分けを自動的に行うことにより、２クラス識別器を組み合わせて構成される多クラス識別器の識別精度を向上させることが可能となる。
この場合、個々のカテゴリの分散が小さくなることにより、境界領域をより正確に掴みやすくすることが可能となる。
また、本実施形態によれば、サブカテゴリ分けされた、より詳細な識別情報を得ることが可能となり、例えば代表画像の選択情報などに利用することが可能となる。
また、一般に分散の大きいカテゴリほど多くの学習用データの数が必要とされるが、本実施形態にように、分散の大きいカテゴリについてサブカテゴリ分けし、サブカテゴリ単位に所定数を割り当てることにより、収集する学習用データの数の最適化をはかることが可能となる。
【０１２３】
以上説明した実施形態において、識別の対象を花の画像として説明を行ったが、本発明はこれに限られるものではない。また、画像データから特徴情報を抽出する処理は、ＢＯＦ（Ｂａｇ  Ｏｆ  Ｆｅａｔｕｒｅｓ）の手法に加えて、例えばＧｒａｐｈ  Ｃｕｔｓ法によって花の領域を切り出してから特徴情報を抽出するような方式であってもよい。その他、種々の特徴情報抽出方式が適用できる。
【０１２４】
更に、本実施形態では花に代表される画像の識別を例にとって説明したが、画像に限定されるものではなく、音声データや、所定の特徴を表すデータ群の識別に適用することができる。すなわち、機械学習で多クラス分類しようとした場合に適用可能である。
【０１２５】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
識別対象として選定されたメインカテゴリごとに、該メインカテゴリにおける学習用データから抽出される１つ以上の各特徴情報に対応する特徴ベクトル別に、該特徴ベクトルのばらつき度合いを算出し、該ばらつき度合いが所定の閾値以上である場合に、該特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて該メインカテゴリをさらに複数のサブカテゴリに分類するサブカテゴリ分け手段と、
前記サブカテゴリ分けが行われたメインカテゴリ内の前記各サブカテゴリまたは前記サブカテゴリ分けが行われなかった前記メインカテゴリをそれぞれ識別器生成対象カテゴリとして、複数の学習用データからそれぞれ抽出した各特徴ベクトルを入力して該各学習用データが表す特徴が前記識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理を、複数の前記識別器生成対象カテゴリごとに実行することで、前記各学習用データが表す特徴が前記各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の前記２クラス識別器からなる多クラス識別器を生成する多クラス識別器生成手段と、
を備え、
入力されたデータを前記複数の多クラス識別器に入力させることにより最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリを、前記入力されたデータが表す特徴が属するカテゴリとして識別する、
ことを特徴とする多クラス識別器。
（付記２）
前記サブカテゴリ分け手段は、前記メインカテゴリごとかつ前記特徴ベクトル別に、
指定された前記メインカテゴリ内の全ての学習用データの指定された前記特徴ベクトル群の分散度を分類前分散度として計算し、
前記指定されたメインカテゴリ内の全ての学習用データの前記指定された特徴ベクトル群を２個以上の所定数のクラスタにクラスタリングし、
前記各クラスタの分散度を分類後分散度として計算し、
前記各分類後分散度が前記分類前分散度に比較して所定の閾値以上小さいときに、前記各クラスタに属する前記学習用データにおいて、前記指定された特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて前記指定されたメインカテゴリに前記各クラスタに対応するサブカテゴリを追加する、
処理を実行することを特徴とする付記１に記載の多クラス識別器。
（付記３）
前記多クラス識別器生成手段は、複数の前記メインカテゴリを順次指定メインカテゴリとして指定して該指定メインカテゴリごとに、
前記指定メインカテゴリ以外のメインカテゴリに属する前記学習用データに対応する全ての前記特徴ベクトルをネガティブデータとして入力し、さらに、
前記指定メインカテゴリがさらに複数の前記サブカテゴリに分類されていれば、該複数のサブカテゴリをさらに順次指定サブカテゴリとして指定して該指定サブカテゴリごとに、該指定サブカテゴリに属する前記学習用データに対応する全ての特徴ベクトルおよび前記複数のサブカテゴリに共通の特徴ベクトルをポジティブデータとして入力し、前記複数のサブカテゴリに共通でない特徴ベクトルをネガティブデータとして入力し、
前記指定メインカテゴリがサブカテゴリに分類されていなければ、前記指定メインカテゴリに属する前記学習用データに対応する全ての前記特徴ベクトルをポジティブデータとして入力して、
前記ポジティブデータが入力されたときに最大のスコア値を出力するように演算することにより、前記各学習用データが表す特徴が前記指定メインカテゴリまたは前記指定サブカテゴリに属するか否かを識別する前記２クラス識別器を生成する処理を実行する、
ことを特徴とする付記１または２のいずれかに記載の多クラス識別器。
（付記４）
前記入力されたデータが表す特徴が属するカテゴリを識別したときに、前記最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリの名称を識別結果として表示するとともに、該２クラス識別器に前記サブカテゴリも対応しているときには該サブカテゴリの代表データを表示し、該２クラス識別器に前記メインカテゴリのみが対応しているときには該メインカテゴリの代表データを表示する識別結果表示手段をさらに備える、
ことを特徴とする付記１ないし３のいずれかに記載の多クラス識別器。
（付記５）
前記特徴は画像の特徴であり、
前記多クラス識別器生成手段は、
前記学習用データが示す画像内の各グリッドに対応させて特徴情報を抽出する処理を前記複数の学習用データのそれぞれに対して実行する特徴抽出処理と、
全ての前記学習用データが示す画像内の全ての前記グリッドに対応して抽出された全ての前記特徴情報を複数のクラスタにクラスタリングするクラスタリング処理と、
前記複数の学習用データのそれぞれについて、該学習用データが示す画像内の前記各グリッドに対応して抽出された前記特徴情報ごとに、該特徴情報と前記各クラスタの重心データとの距離をそれぞれ算出し、該算出した距離のうち最小の距離に対応するクラスタを最近傍クラスタとして抽出し、該抽出した最近傍クラスタの重心データを該特徴情報のベクトル量子化値とするベクトル量子化処理と、
前記複数の学習用データのそれぞれについて、該学習用データが示す画像内の前記各グリッドに対応して抽出された前記ベクトル量子化値ごとに該ベクトル量子化値に対応する前記最近傍クラスタのヒストグラム度数を積算する処理を繰り返し実行することにより該学習用データに対応するヒストグラムを生成し、該ヒストグラムのビンごとの各度数値を各要素値とする前記特徴ベクトルを生成する、
ことを特徴とする付記１ないし４のいずれかに記載の多クラス識別器。
（付記６）
前記特徴情報は色および形状であり、
前記クラスタリング処理において、前記色および前記形状ごとに、個別にクラスタリングを行い、
前記ベクトル量子化処理において、前記色および前記形状ごとに、それぞれ前記クラスタリングにより得られる色のクラスタおよび形状のクラスタを用いて個別にベクトル量子化値を抽出し、
前記特徴ベクトル生成処理において、前記色および前記形状ごとに、それぞれ前記色および前記形状ごとに抽出した前記ベクトル量子化値を用いて個別に、前記学習用データごとの色のヒストグラムおよび形状のヒストグラムを生成し、該色のヒストグラムのビンごとの各度数値を各要素値とする色特徴ベクトルと、該形状のヒストグラムのビンごとの各度数値を各要素値とする形状特徴ベクトルを生成する、
ことを特徴とする付記５に記載の多クラス識別器。
（付記７）
識別対象として選定されたメインカテゴリごとに、該メインカテゴリにおける学習用データから抽出される１つ以上の各特徴情報に対応する特徴ベクトル別に、該特徴ベクトルのばらつき度合いを算出し、該ばらつき度合いが所定の閾値以上である場合に、該特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて該メインカテゴリをさらに複数のサブカテゴリに分類するサブカテゴリ分けステップと、
前記サブカテゴリ分けが行われたメインカテゴリ内の前記各サブカテゴリまたは前記サブカテゴリ分けが行われなかった前記メインカテゴリをそれぞれ識別器生成対象カテゴリとして、複数の学習用データからそれぞれ抽出した各特徴ベクトルを入力して該各学習用データが表す特徴が前記識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理を、複数の前記識別器生成対象カテゴリごとに実行することで、前記各学習用データが表す特徴が前記各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の前記２クラス識別器からなる多クラス識別器を生成する多クラス識別器生成ステップと、
を実行することを備え、
入力されたデータを前記複数の多クラス識別器に入力させることにより最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリを、前記入力されたデータが表す特徴が属するカテゴリとして識別する、
ことを特徴とする多クラス識別方法。
（付記８）
識別対象として選定されたメインカテゴリごとに、該メインカテゴリにおける学習用データから抽出される１つ以上の各特徴情報に対応する特徴ベクトル別に、該特徴ベクトルのばらつき度合いを算出し、該ばらつき度合いが所定の閾値以上である場合に、該特徴ベクトルをサブカテゴリ分け対象特徴ベクトルとして、該サブカテゴリ分け対象特徴ベクトルに対応させて該メインカテゴリをさらに複数のサブカテゴリに分類するサブカテゴリ分けステップと、
前記サブカテゴリ分けが行われたメインカテゴリ内の前記各サブカテゴリまたは前記サブカテゴリ分けが行われなかった前記メインカテゴリをそれぞれ識別器生成対象カテゴリとして、複数の学習用データからそれぞれ抽出した各特徴ベクトルを入力して該各学習用データが表す特徴が前記識別器生成対象カテゴリのうちの１つのカテゴリに属するか否かを識別する２クラス識別器を生成する処理を、複数の前記識別器生成対象カテゴリごとに実行することで、前記各学習用データが表す特徴が前記各識別器生成対象カテゴリのそれぞれに属するか否かを個別に識別する複数の前記２クラス識別器からなる多クラス識別器を生成する多クラス識別器生成ステップと、
をコンピュータに実行させることを備え、
入力されたデータを前記複数の多クラス識別器に入力させることにより最大のスコア値を出力した前記２クラス識別器に対応するメインカテゴリを、前記入力されたデータが表す特徴が属するカテゴリとして識別する、
ことをコンピュータに実行させるためのプログラム。
【符号の説明】
【０１２６】
１０１  多クラス識別器
１０２  ＣＰＵ
１０３  ＲＯＭ
１０４  ＲＡＭ
１０５  外部記憶装置
１０６  通信インタフェース
１０７  入力装置
１０８  出力装置
１０９  可搬記録媒体駆動装置
１１０  可搬記録媒体
１１１  バス
【図１】
2014115920.tif 000003
【図２】
2014115920.tif 000004
【図５】
2014115920.tif 000005
【図６】
2014115920.tif 000006
【図７】
2014115920.tif 000007
【図８】
2014115920.tif 000008
【図９】
2014115920.tif 000009
【図１０】
2014115920.tif 000010
【図１３】
2014115920.tif 000011
【図３】
2014115920.tif 000012
【図４】
2014115920.tif 000013
【図１１】
2014115920.tif 000014
【図１２】
2014115920.tif 000015
【図１４】
2014115920.tif 000016