特許第5754310号(P5754310)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

特許5754310識別情報付与プログラム及び識別情報付与装置
<>
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000002
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000003
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000004
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000005
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000006
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000007
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000008
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000009
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000010
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000011
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000012
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000013
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000014
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000015
  • 特許5754310-識別情報付与プログラム及び識別情報付与装置 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5754310
(24)【登録日】2015年6月5日
(45)【発行日】2015年7月29日
(54)【発明の名称】識別情報付与プログラム及び識別情報付与装置
(51)【国際特許分類】
   G06F 17/30 20060101AFI20150709BHJP
   G06N 5/04 20060101ALI20150709BHJP
【FI】
   G06F17/30 210D
   G06F17/30 414A
   G06N5/04 580A
【請求項の数】4
【全頁数】20
(21)【出願番号】特願2011-191726(P2011-191726)
(22)【出願日】2011年9月2日
(65)【公開番号】特開2013-54512(P2013-54512A)
(43)【公開日】2013年3月21日
【審査請求日】2014年8月22日
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士ゼロックス株式会社
(74)【代理人】
【識別番号】100071526
【弁理士】
【氏名又は名称】平田 忠雄
(74)【代理人】
【識別番号】100124246
【弁理士】
【氏名又は名称】遠藤 和光
(72)【発明者】
【氏名】福井 基文
【審査官】 野崎 大進
(56)【参考文献】
【文献】 特開2006−155344(JP,A)
【文献】 米国特許第06055539(US,A)
【文献】 米国特許第6567815(US,B1)
【文献】 福井 基文 他,変形ランダムフォレストを用いた画像自動アノテーション,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2011年 2月10日,Vol.110,No.414(PRMU2010-209),pp.7-9.
【文献】 栗山 繁,ランダムフォレスト法を用いた動作検索 識別器学習を用いた人間動作の分類法,画像ラボ,日本,日本工業出版株式会社,2011年 8月10日,第22巻,第8号,pp.49-53.
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06N 5/04
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
学習対象から抽出された特徴ベクトルと前記学習対象に付与された識別情報とを組にした学習データに基づいて決定木を作成する決定木作成手段と、
前記決定木に前記学習データを流したとき、各葉に到達した前記識別情報の頻度を示す頻度分布情報を互いに近似するもの同士で複数に分類し、前記分類毎に代表の頻度分布情報を前記葉に関係付けて記憶手段に記憶する分類手段として機能させるための識別情報付与プログラム。
【請求項2】
前記分類手段は、各葉が複数の前記分類に対応するように第2の決定木を作成し、前記頻度分布情報を前記第2の決定木に流したとき、前記頻度分布情報が到達する前記第2の決定木の葉に基づいて、前記頻度分布情報の分類を行う請求項1に記載の識別情報付与プログラム。
【請求項3】
前記分類手段は、前記頻度分布情報を前記第2の決定木に流したとき、各葉に到達した前記頻度分布情報を前記葉に対応する前記第1の決定木の前記葉の前記代表の頻度分布情報とする請求項2に記載の識別情報付与プログラム。
【請求項4】
学習対象から抽出された特徴ベクトルと前記学習対象に付与された識別情報とを組にした学習データに基づいて決定木を作成する決定木作成手段と、
前記決定木に前記学習データを流したとき、各葉に到達した前記識別情報の頻度を示す頻度分布情報を互いに近似するもの同士で複数の分類し、前記分類毎に代表の頻度分布情報を前記葉に関係付けて記憶手段に記憶する分類手段とを備えた識別情報付与装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、識別情報付与プログラム及び識別情報付与装置に関する。
【背景技術】
【0002】
近年、画像全体及び画像の部分領域に対して、その領域の内容を説明するクラスラベルを自動的に付与する技術の研究が行われている。この技術は、画像アノテーション技術と呼ばれ、画像特徴とその画像特徴を説明する言語的意味を持つラベルとを対応付ける技術である。画像アノテーション技術は、画像検索をはじめとする画像関連のアプリケーションへの応用が期待されている。
【0003】
決定木は非常に高速にデータ群を複数のクラスに同時に分類することが可能であるため、近年、幅広くデータ分類、認識等で利用されている(例えば、特許文献1〜4参照)。特に決定木を複数用いることで、特定のクラスのみの識別能力を上昇させる過学習の問題を解決することができる。
【0004】
特許文献1に開示された装置及び方法は、複数の決定木を用いて画像特徴を量子化し、そのヒストグラムから識別器の学習を行うものである。特許文献2に開示された装置及び方法は、決定木を通貨するデータに付随するラベルの頻度分布により決定木間の類似性を見出すものである。特許文献3に開示された方法は、複数の訓練文書のペアを検査し、このペアを2つの子ノードに分けるように木構造を学習するものである。特許文献4に開示された装置及び方法は、ノード間で似たノード同士をリンクで繋げ、検索の際にジャンプすることを許すようにしたものである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−271890号公報
【特許文献2】特開2010−44649号公報
【特許文献3】特開2006−18829号公報
【特許文献4】特開2001−134594号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、木型識別器において個々の決定木のサイズが大きくなった場合、葉の数が増加してしまい、葉に対するラベルの頻度分布をメモリにすべて保持することが困難となる。
【0007】
本発明の課題は、決定木の各葉に到達した識別情報の頻度分布情報をすべて記憶する場合と比べて記憶情報量を少なくした識別情報付与プログラム及び識別情報付与装置を提供することにある。
【課題を解決するための手段】
【0008】
[1]コンピュータを、学習対象から抽出された特徴ベクトルと前記学習対象に付与された識別情報とを組にした学習データに基づいて決定木を作成する決定木作成手段と、前記決定木に前記学習データを流したとき、各葉に到達した前記識別情報の頻度を示す頻度分布情報を互いに近似するもの同士で複数に分類し、前記分類毎に代表の頻度分布情報を前記葉に関係付けて記憶手段に記憶する分類手段として機能させるための識別情報付与プログラム。
[2]前記分類手段は、各葉が複数の前記分類に対応するように第2の決定木を作成し、前記頻度分布情報を前記第2の決定木に流したとき、前記頻度分布情報が到達する前記第2の決定木の葉に基づいて、前記頻度分布情報の分類を行う前記[1]に記載の識別情報付与プログラム。
[3]前記分類手段は、前記頻度分布情報を前記第2の決定木に流したとき、各葉に到達した前記頻度分布情報を前記葉に対応する前記第1の決定木の前記葉の前記代表の頻度分布情報とする前記[2]に記載の識別情報付与プログラム。
[4]学習対象から抽出された特徴ベクトルと前記学習対象に付与された識別情報とを組にした学習データに基づいて決定木を作成する決定木作成手段と、前記決定木に前記学習データを流したとき、各葉に到達した前記識別情報の頻度を示す頻度分布情報を互いに近似するもの同士で複数の分類し、前記分類毎に代表の頻度分布情報を前記葉に関係付けて記憶手段に記憶する分類手段とを備えた識別情報付与装置。
【発明の効果】
【0009】
請求項1及び4に記載された発明によれば、決定木の各葉に到達した識別情報の頻度分布情報をすべて記憶する場合と比べて記憶情報量を少なくすることができる。
請求項2に記載された発明によれば、本構成を採用しない場合と比べて識別情報の分類がより高精度になる。
請求項3に記載された発明によれば、本構成を採用しない場合と比べて代表の頻度分布情報を速く取得することができる。
【図面の簡単な説明】
【0010】
図1図1は、本発明の第1の実施の形態に係る識別情報付与装置の概略の構成例を示すブロック図である。
図2図2は、図1に示す識別情報付与装置の頻度分布作成部及び頻度分布量子化部を説明するための概念図である。
図3図3(a)、(b)は、図1に示す識別情報付与装置の記憶部に記憶されるデータの一例を示す図である。
図4図4は、図1に示す識別情報付与装置の頻度分布量子化部の動作の一例を示すフローチャートである。
図5図5は、本発明の第2の実施の形態に係る識別情報付与装置の概略の構成例を示すブロック図である。
図6図6(a)、(b)は、図5に示す識別情報付与装置の記憶部に記憶されるデータの一例を示す図である。
図7図7は、第2の実施の形態に係る頻度分布量子化部及び量子化頻度分布作成部の動作例を示すフローチャートである。
図8図8は、第2の実施の形態の変形例を示すフローチャートである。
図9図9は、本発明の第3の実施の形態に係る識別情報付与装置の概略の構成例を示すブロック図である。
図10図10は、図9に示す識別情報付与装置の頻度分布作成部及び頻度分布量子化部を説明するための概念図である。
図11図11は、第3の実施の形態の頻度分布量子化部の動作例を示すフローチャートである。
図12図12は、第3の実施の形態の識別対象の識別段階を示すフローチャートである。
図13図13は、第3の実施の形態の動作例の概略を示す模式図である。
図14A図14Aは、本発明の実施例を示す概念図である。
図14B図14Bは、本発明の実施例を示す概念図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。なお、各図中、実質的に同一の機能を有する構成要素については、同一の符号を付してその重複した説明を省略する。
【0012】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る識別情報付与装置の概略の構成例を示すブロック図、図2は、図1に示す識別情報付与装置の頻度分布作成部及び頻度分布量子化部を説明するための概念図、図3(a)、(b)は、図1に示す識別情報付与装置の記憶部に記憶されるデータの一例を示す図である。
【0013】
図1に示すように、識別情報付与装置1は、学習データ作成部2、決定木作成部3、頻度分布作成部4、頻度分布量子化部5、識別対象データ作成部7、識別部8、識別結果出力部9及び記憶部10を有する。本実施の形態は、決定木ベースの識別器において、学習時に必要となる識別器モデルのパラメータを少ないメモリ容量で保持することにより、マルチクラスの識別を実現するものである。
【0014】
(学習データ作成部)
学習データ作成部2は、学習対象から特徴ベクトルfを抽出し、特徴ベクトルfと特徴ベクトルfに付随するラベルCとのペア(組)から構成される学習データを作成する。ラベルCは、複数のラベルcにより構成されていてもよい。学習データ作成部2は、学習データ作成手段の一例であり、作成した学習データを記憶部10に格納する。
【0015】
ここで、「学習データ」は、学習対象となるコンテンツから抽出された特徴ベクトルfとそれに付随するラベルCにより構成されるものである。
【0016】
「コンテンツ」は、テキストデータや画像などである。「特徴ベクトル」は、コンテンツが例えばテキストデータの場合は、単語の出現頻度を正規化したものであり、コンテンツが画像の場合は、色やテクスチャなどの画像特徴を並べたものである。
【0017】
「ラベル」は、識別情報の一例であり、抽出した特徴ベクトルを説明するものであり、通常単語などのテキスト情報により構成される。例えばコンテンツが画像の場合は、画像中に存在するオブジェクト名(犬、空など)や、その画像を説明するもの(風景画像、屋内画像など)などである。このようなラベルは、一般に複数存在してもよく、1つの特徴ベクトルに対して複数のラベルが与えられてもよい。
【0018】
(決定木作成部)
決定木作成部3は、学習データ作成部2により作成された学習データ102のすべて又はその一部を使用して図2に示すように決定木30なる識別器を作成する。決定木作成部3は、決定木作成手段の一例であり、作成した決定木30を決定木データ103として記憶部10に格納する。なお、決定木30を構成するノード31のうち最終のノード31を葉あるいは葉ノード32という。各ノード31の分岐条件は評価関数を決めて、その評価関数の値が最大となるような分け方を採用する。決定木30は、単体又は複数の木型識別器により構成される。決定木30を複数作成する場合、決定木によりランダムに選択した学習データを使用することで、互いに類似していない決定木を作り出す手法がしばしば用いられている。
【0019】
学習の際には、特徴ベクトルとラベルの関係が学習される。SVMやAdaboostなどの識別アルゴリズムが著名であるが、ここでは決定木ベースの識別器について考える。SVMなどの識別器は、1つの識別器で正事例と負事例を分離するが、識別対象が複数存在する場合には、その個数分の識別器が必要となる。
【0020】
一方、決定木ベースの識別器は、1つの決定木で複数のラベルを識別することが可能であり、かつ高速な識別器であることが知られている。決定木は、全学習データまたはその部分集合を用いて学習される。学習データは特徴ベクトルとラベルのペア(fi,Ci)であり、Ciは複数のラベルにより構成される(C1={c1},C2={c1,c3},C3={c2,c3,c4},...)。cj(1≦j≦K)は、各ラベルである。Kは、ラベルの総数である。決定木の中では二分木が最もよく利用されている。ここでは二分木を用いて本実施の形態を説明するが、他のモデル(四分木など)を用いてももちろんよい。
【0021】
二分木の左右分岐条件は簡単な閾値条件、例えばある特徴次元を選択してその値が閾値以上か未満かで左右に分岐させる。特徴次元及びその閾値の選択方法は、左右のラベル分布になるべく偏りが見られるように、かつ左右に分けられる学習データ数がほぼ同じ数になるように選ばれる。また、決定木間はできるだけ差がないようにすることも必要である。例えばGini IndexやShannon Entropyを用いるものが一般的である。決定木30は、その葉ノード32に到達する学習データ数が一定値以下になったり、その階層が事前に設定した階層(=D)に達すると、拡張を止める。この場合、終点である葉ノード32は、最大で2(D−1)個作成される。一般的に、ラベルの個数が多いと、必要な階層数は増加する傾向にある。
【0022】
(頻度分布作成部)
頻度分布作成部4は、図2に示すように、各葉ノード(図2ではlp(p=1〜8)で示す。)32のラベルの頻度分布ベクトル(図2ではAp(p=1,2,・・・)で示す。)40を作成する。頻度分布ベクトル40を作成する際は、決定木30を作成するのに使用した学習データ102の部分集合か全学習データを用いて作成する。各葉ノード32に流れ込んだ学習データの各ラベルの個数を数えることにより、ラベルの頻度分布を作成することができる。ここで、ラベルの「頻度分布」とは、その葉ノード32に到達するデータのラベルの度数もしくは度数に応じた値であり、確率分布、確率テーブルと呼んでもよい。なお、本実施の形態では度数分布を扱ったが、度数分布と関連がある他の分布でもよい。
【0023】
(頻度分布量子化部)
頻度分布量子化部5は、頻度分布作成部4によって作成された各葉ノード32の頻度分布ベクトル40を図2に示すように正規化した頻度分布ベクトル(図2ではap(p=1、2、・・・)で示す。)50を作成し、正規化した頻度分布ベクトル50を量子化する。ここで、「頻度分布ベクトルの量子化」とは、頻度分布ベクトルを近似した頻度分布ベクトル同士でグループ化することである。本実施の形態では、頻度分布量子化部5は、具体的には各頻度分布ベクトル50を比較して、似た頻度分布ベクトル50に対して同じ葉ノードIDを与え、葉ノード32を特定する葉ノードNo.、葉ノードID及び頻度分布ベクトル50の対応関係を葉ノード情報104として記憶部10に格納する。ここで、頻度分布ベクトル40、50は、頻度分布情報の一例である。
【0024】
決定木ベースの識別器の場合、過学習を避けるために複数の決定木30を使用することが多い。決定木30の個数をTとすると、木型識別器に必要とされるモデルパラメータのメモリ容量のオーダーは頻度分布ベクトルで最大O(T×K×2(D−1))であり、分岐条件でO(2×T×(2(D−1)−1))である。Kが増加すると性能を高めるためには階層数を増やす必要があり、そのため必要なメモリ容量が増加する。分岐条件を表現するために必要なメモリ容量は頻度分布ベクトルを表現するために必要なメモリ容量の約2/Kであるから、Kが大きい場合ほとんど無視できるメモリ容量であり、メモリ総容量を抑制するためには頻度分布ベクトルのメモリ容量を削減することが望まれる。本実施の形態の頻度分布量子化部5によれば、すべての頻度分布ベクトルを表現するのに必要なメモリ容量が削減できる。
【0025】
(識別対象データ作成部)
識別対象データ作成部7は、識別対象となるデータから学習データで獲得したものと同一の特徴次元の特徴ベクトルを抽出する。識別対象は、学習対象の種類と同一の種類であり、学習対象がテキストデータなら識別対象はテキストデータであり、学習対象が画像なら識別対象は画像である。
【0026】
(識別部)
識別部8は、作成された決定木30を用いて識別対象を識別する。各決定木30に識別対象から抽出した特徴ベクトルfを流し、到達する葉ノード32に対応する葉ノードIDを記憶部10から取得し、その葉ノードIDに対する頻度分布ベクトル50から各ラベルの事後確率を(P(c|f))算出する。そして、識別部8は、例えば頻度(事後確率)が最も高いラベルを識別結果とする。
【0027】
(識別結果出力部)
識別結果出力部9は、識別部8による識別結果を外部に出力するものであり、例えば液晶ディスプレイ等の表示部や、プリンタ等の印刷部を用いることができる。
【0028】
(記憶部)
記憶部10は、識別情報付与プログラム101等の各種のプログラムや、特徴ベクトルfルとラベルCとのペアからなる学習データ102、決定木データ103、葉ノード情報104等の各種のデータを記憶するものであり、例えばROM、RAM、HDD等から構成されている。
【0029】
葉ノード情報104は、具体的には、図3(a)に示すように、葉ノード32を特定する葉ノードNo.(同図ではl〜l)と、葉ノードNo.に付与された葉ノードID(同図では0、1、2、3)との関係を示す葉ノード情報104a、及び図3(b)に示すように、葉ノードIDと葉ノードIDに対応する頻度分布ベクトル(同図ではa、a、a、a)との関係を示す葉ノード情報104bを含む。
【0030】
頻度分布作成部4及び頻度分布量子化部5は、ラベルの頻度分布ベクトル50を、互いに近似するもの同士で複数に分類し、分類毎に代表の頻度分布情報を葉ノード32に関連付けて記憶部10に記憶する分類手段の一例である。本実施の形態では、代表の頻度分布情報は、頻度分布ベクトル50である。
【0031】
(第1の実施の形態の動作)
次に、第1の実施の形態の動作の一例を、学習データの作成から頻度分布ベクトルの量子化までの学習段階と識別対象にラベルを付与する識別段階とに分けて説明する。
【0032】
(1)学習段階
まず、学習データ作成部2は、学習対象から特徴ベクトルfを抽出し、特徴ベクトルfと特徴ベクトルfに付随するラベルCとのペアから学習データ102を作成し、その学習データ102を記憶部10に格納する。
【0033】
次に、決定木作成部3は、学習データ作成部2により作成され、記憶部10に格納されている学習データ102のすべて又はその一部を使用して図2に示すような決定木30を作成し、その決定木データ103を記憶部10に格納する。ここでは、決定木作成部3は、複数の決定木(決定木群ともいう。)30を作成したものとする。
【0034】
次に、頻度分布作成部4は、記憶部10に格納されている学習データ(特徴ベクトルfとラベルCのペア)を記憶部10に格納されている決定木データ103による決定木30に流して、各葉ノード32に到達したラベルの図2に示すような頻度分布ベクトル40を作成する。
【0035】
次の動作は、図4に従って説明する。図4は、図1に示す識別情報付与装置の頻度分布量子化部の動作の一例を示すフローチャートである。頻度分布量子化部5は、例えば最初に作成された決定木(特定の決定木)30の頻度分布ベクトル40を収集する(S1)。なお、決定木30を1つのみ構築する場合、頻度分布量子化部5は、葉ノード32の親ノードなど上位ノードでの頻度分布を集めてもよい。また、頻度分布量子化部5は、複数の決定木30を作成する場合でも、特定の決定木30の上位ノードの頻度分布を集めてもよい。
【0036】
次に、頻度分布量子化部5は、集めた頻度分布ベクトル40を正規化し(S2)、その正規化した頻度分布ベクトル50を量子化する。
量子化の際に重要なのは、
1)お互いに頻度分布が似たものが同じグループに属すること
2)同じグループに属する頻度分布の上位の度数に相当するラベルが同じであること
である。特に2番目の項目は度数が上位であるものが識別結果に影響を及ぼすからである(特にT=1の場合、最大の度数となるラベルが識別結果となる)。最も簡単な例として集めた頻度分布ベクトル群を汎用のクラスタリングアルゴリズムであるKMeans法を用いて量子化する方法が考えられる。
【0037】
事前にM個のグループに分けるとすると、このクラスタリング処理によって葉ノードは0からM−1までのM種類のIDが付与される。
【0038】
本実施の形態では、KMeans法によって重心ベクトルを算出し、その距離が最も近いグループにその葉ノード32の頻度分布ベクトルに対して葉ノードIDを与える(S3)。このようにすれば、すべての決定木30の葉ノード32に葉ノードIDが付与される。
【0039】
次に、葉ノードIDが付与されたノード数(IDの数)をカウントする(S4)。他の決定木30についても上記ステップS1〜S4を実施する(S5)。頻度分布量子化部5は、決定木30毎に葉ノード32に葉ノードIDを付与し、葉ノードNo.、葉ノードID、及び頻度分布ベクトル50を互いに関連付けた葉ノード情報104として記憶部10に格納する。
【0040】
なお、KMeans法を用いた場合、頻度分布ベクトル間の距離を計算して、代表ベクトル(重心ベクトル)を更新していくが、距離がそれら重心ベクトルから近いことが保証されるものの、上位の度数が同一のものが同じグループに属する保証はない。
【0041】
(2)識別段階
識別対象データ作成部7は、学習データで作成した同じ特徴量の次元を用いて、識別対象から特徴ベクトルfを抽出する。
【0042】
次に、識別部8は、識別対象データ作成部7が作成した特徴ベクトルfを記憶部10に格納されている決定木データ103による決定木30に流し込む。決定木30ごとに最終的に到達する葉ノード32が決定する。到達した葉ノード32に与えられた葉ノードIDは、記憶部10の図3(a)に示すような葉ノード情報104aを検索することで取得することができる。識別部8は、葉ノードIDに対応する頻度分布ベクトル50を記憶部10の図3(b)に示すような葉ノード情報104bを検索することで取得する。識別部8は、取得した頻度分布ベクトル50から事後確率を算出し、頻度(事後確率)が最も高いラベルを識別対象の識別結果とする。
【0043】
識別結果出力部9は、識別部8による識別結果を、例えば表示部に表示し、又は印刷部で印刷して出力する。
【0044】
(第1の実施の形態の効果)
第1の実施の形態によれば、すべての決定木30の各葉ノード32について収集された頻度分布ベクトルは、近似した頻度分布ベクトル同士でグループ化し、グループに対応した葉ノードIDとして保存されるため、全ての頻度分布ベクトルを記憶する場合と比べて格段に記憶する情報量が減る。
【0045】
[第2の実施の形態]
図5は、本発明の第2の実施の形態に係る識別情報付与装置の概略の構成例を示すブロック図、図6は、図5に示す識別情報付与装置の記憶部に記憶されるデータの一例を示す図である。
【0046】
本実施の形態は、図1に示す第1の実施の形態の識別情報付与装置1に対して頻度分布量子化部5の機能が異なるとともに、量子化頻度分布作成部6を付加したものである。また、第1の実施の形態の頻度分布量子化部5は、全ての特定木の葉ノード32に葉ノードIDを付与したが、本実施の形態の頻度分布量子化部5は、2つ目以降の決定木については、1つ目の決定木を用いて取得した葉ノード情報を利用するものである。以下、第1の実施の形態との相違点を中心に説明する。
【0047】
頻度分布量子化部5は、頻度分布作成部4によって作成された各葉ノード32の頻度分布ベクトル40を正規化し、その正規化した頻度分布ベクトル50を量子化する。本実施の形態では、量子化するとき、頻度分布ベクトル50から代表ベクトルを作成し、代表ベクトル間の距離が一定の閾値以下ならば、一対の頻度分布ベクトルを近似したものと判断する。そして頻度分布量子化部5は、似た代表ベクトルに対しては同じ葉ノードIDを与え、葉ノードNo.、葉ノードID、代表ベクトルを互いに関係付けた葉ノード情報104として記憶部10に格納する。代表ベクトルの作成方法として、例えば頻度分布ベクトルから最大度数のラベル、上位N個の度数のラベル、又は閾値以上の度数を持つラベルを有する頻度分布ベクトルを収集してその平均値を代表ベクトルとしてもよい。一度も収集されない頻度分布ベクトルがある場合、それらのみで一つのカテゴリを作って、それらを平均化することにより代表ベクトルとすることができる。また、頻度分布ベクトルと代表ベクトル間の類似性の判断方法として、ベクトル間の距離計算に基づく以外に、代表(頻度分布)ベクトルの各要素に対応するラベルの度数をソートしてそれらの一致度を観測する等の方法がある。
【0048】
量子化頻度分布作成部6は、同じ葉ノードIDが付与された葉ノード32に対する代表ベクトルを平均化し、記憶部10の記憶内容を更新する。代表ベクトルの平均化は、対応するラベルの頻度を平均化する。
【0049】
記憶部10は、識別情報付与プログラム101等の各種のプログラムや、特徴ベクトルfとラベルCとのペアからなる学習データ102、第1の決定木データ103a、第2の決定木データ103b、葉ノード情報104等の各種のデータを記憶するものであり、例えばROM、RAM、HDD等から構成されている。
【0050】
葉ノード情報104は、具体的には、図6(a)に示すように、葉ノード32を特定する葉ノードNo.(同図ではl〜l)と、葉ノードNo.に付与された葉ノードID(同図では0、1、2、3)との関係を示す葉ノード情報104a、及び図6(b)に示すように、葉ノードIDと葉ノードIDに対応する代表ベクトル(同図ではcv、cv、cv、cv)との関係を示す葉ノード情報104cを含む。
【0051】
頻度分布作成部4及び頻度分布量子化部5は、ラベルの頻度分布ベクトル50を、互いに近似するもの同士で複数に分類し、分類毎に代表の頻度分布情報を葉ノード32に関連付けて記憶部10に記憶する分類手段の一例である。本実施の形態では、代表の頻度分布情報は、代表ベクトルである。
【0052】
図7は、第2の実施の形態に係る頻度分布量子化部5及び量子化頻度分布作成部6の動作例を示すフローチャートである。
【0053】
頻度分布量子化部5は、第1の実施の形態と同様に、特定の決定木30の頻度分布ベクトル40を集め(S11)、集めた頻度分布ベクトル40を正規化し(S12)、各葉ノード32に葉ノードIDを付与し(S13)、各葉ノードIDが付与されたノード数をカウントする(S14)。
【0054】
次に、頻度分布量子化部5は、次の決定木30の頻度分布ベクトル40を収集する(S15)。続いて、量子化頻度分布作成部6は、収集した頻度分布ベクトル40から代表ベクトルを算出し、最初の決定木30で求めた頻度分布ベクトルから代表ベクトルを算出し、代表ベクトル間の距離計算により最も近い頻度分布ベクトルを探し、その探した頻度分布ベクトルに付与された葉ノードIDを当該決定木30の葉ノード32に対する葉ノードIDとする(S16)。
【0055】
各葉ノードIDが付与されたノード数をカウントする(S17)。各葉ノードIDに対して代表ベクトルを更新する(S18)。次の決定木30へ進み(S19)、上記ステップS11〜S18を実施し、全ての決定木30について葉ノードIDを付与する。
【0056】
(変形例)
図8は、第2の実施の形態の変形例を示すフローチャートである。第2の実施の形態において、各葉ノード32に葉ノードIDを与えた後(S16)、距離の最小値が閾値より大きい場合、その頻度分布ベクトルを新たなグループの代表ベクトルとして葉ノードIDの個数を増やしてもよい(S17a)
【0057】
(第2の実施の形態の効果)
第2の実施の形態によれば、葉ノードIDに対応して保存する頻度分布情報として頻度分布ベクトルよりも情報量の少ない代表ベクトルとしているので、第1の実施の形態と比べて記憶する情報量が減る。
【0058】
[第3の実施の形態]
図9は、本発明の第3の実施の形態に係る識別情報付与装置の概略の構成例を示すブロック図、図10は、図9に示す識別情報付与装置の頻度分布作成部及び頻度分布量子化部を説明するための概念図である。
【0059】
第1及び第2の実施の形態では、学習―識別用に一種類の決定木を用いたが、本実施の形態は、決定木を二種類用いるものである。本実施の形態の頻度分布量子化部5は、第1及び第2の実施の形態とは機能が異なる。以下、第1及び第2の実施の形態との相違点を中心に説明する。
【0060】
本実施の形態の識別情報付与装置1は、第2の実施の形態と同様に、学習データ作成部2、決定木作成部3、頻度分布作成部4、頻度分布量子化部5、量子化頻度分布作成部6、識別対象データ作成部7、識別部8、識別結果出力部9及び記憶部10を有して構成されている。
【0061】
本実施の形態の決定木作成部3は、第1の実施の形態と同様に図10に示す第1の決定木30Aを作成する。すなわち、分岐条件としては左右のノードに落ちるデータ群のラベルができるだけ偏りが出るように、また第1の決定木30A間はできるだけ差がないように第1の決定木30Aを作成する。
【0062】
本実施の形態の頻度分布作成部4は、第1の実施の形態と同様に図10に示す第1の決定木30Aに学習データを第1の決定木30Aに流したとき、各葉ノード32に到達したラベルの頻度分布ベクトル40を作成する。
【0063】
本実施の形態の頻度分布量子化部5は、図10に示すように、頻度分布ベクトルを得るために第1の決定木30Aを用い、第1の決定木30Aで収集した頻度分布ベクトルをクラスタリングするために第2の決定木30Bを用いる。
【0064】
記憶部10は、識別情報付与プログラム101等の各種のプログラムや、特徴ベクトルfとラベルCとのペアからなる学習データ102、第1の決定木データ103a、第2の決定木データ103b、葉ノード情報104等の各種のデータを記憶するものであり、例えばROM、RAM、HDD等から構成されている。
【0065】
葉ノード情報104は、第2の実施の形態と同様に、図6(a)に示すように、葉ノード32を特定する葉ノードNo.(同図ではl〜l)と、葉ノードNo.に付与された葉ノードID(同図では0、1、2、3)との関係を示す葉ノード情報104a、及び図6(b)に示すように、葉ノードIDと葉ノードIDに対応する代表ベクトル(同図ではcv、cv、cv、cv)との関係を示す葉ノード情報104cを含む。
【0066】
上記第1の形態で採用した上述のKMeans法は、教師なしクラスタリングであったため、同一IDを有する頻度分布が同じ傾向を保持する保証はない。また事前に分類数を指定する必要があった。本実施形態ではできるだけ似た傾向の頻度分布が同じグループに属するようなクラスタリング手法の導入を提案する。最も単純な例は各頻度分布の大きな度数を持つラベルを選択し、このラベルに応じてクラスタリングすることである。最大度数のみを用いれば、最大でK個のグループが作成でき、上位2個で最大K(K−1)/2個のグループを作ることができる。しかし、このような単純なグループ分けは、グループ内で頻度分布が似ている保証はなく、グループ(分類)数がたとえ上位2個のみを選択してもKの2乗オーダーで増加する。
【0067】
そこで、第3の実施の形態は、各頻度分布ベクトルを新たな特徴ベクトルとし、度数が高いラベルをその特徴ベクトルに対応するラベルとし、これらをデータとして教師ありクラスタリングする手法を提案する。
【0068】
この場合、ラベルとして選ばれるものは、以下のものなどが考えられる。
1)最大度数のもの、2)上位N個の度数、3)閾値以上の度数を持つもの
その一例として再度これら頻度分布をクラスタリングするために第2の決定木を構築する手法を具体例として挙げる。上述のコンテンツの識別のために作成した特徴ベクトルの次元数は選択したその特徴数(画像でRGBを使う場合3)であったのに対し、この特徴ベクトルの次元は識別対象の個数つまりKである。
【0069】
また、第1の決定木30Aは識別器として作動し、第2の決定木30Bはクラスタリング装置として作動する。クラスタリング装置として作動する第2の決定木30Bのデータは、第1の実施の形態と同様に特定の第1の決定木30Aから作成した頻度分布ベクトル及びそれに付随するラベルである。頻度分布ベクトル及びそれに付随するラベルのデータを使用して第2の決定木30Bを作成する。
【0070】
分岐条件としては左右のノードに落ちるデータ群のラベルができるだけ偏りが出るように、またそれらの個数間はできるだけ差がないようにするのは第1の決定木30Aの作成時と同様である。
【0071】
第2の決定木30Bの階層の深さ(D’)は識別対象数Kに比例して大きく取るものとする。このようにして作成された第2の決定木30Bの葉ノード32に対して葉ノードIDを順に与えておく。図10の場合、第2の決定木30Bの4つの葉ノード32に対して葉ノードIDとしてそれぞれID=0、ID=1、ID=2、ID=3を与える。第2の決定木30Bに頻度分布ベクトルapとラベルLを流して葉ノード32に流れ込んだ頻度分布ベクトルapを持つ第1の決定木30Aの葉ノード32に対してその葉ノードIDを与える。図10の場合、頻度分布ベクトルa1を第2の決定木30Bに流したとき、その頻度分布ベクトルa1が最も左の葉ノード32に到達したので、その葉ノード32に与えられている葉ノードID=0を第1の決定木30Aの頻度分布ベクトルa1に対応する葉ノード32に与えている。
【0072】
まだ葉ノードIDが与えられていない他の第1の決定木30Aの葉ノード32に対しては、該当する頻度分布ベクトルを第2の決定木30Bに流し、その到達した葉ノード32の葉ノードIDを与えることにより、すべての葉ノード32に対して葉ノードIDを付与する。また、この第2の決定木30Bは複数の(決定)木で構成することも可能である。
【0073】
(頻度分布量子化部及び量子化頻度分布作成部の動作)
図11は、第3の実施の形態の頻度分布量子化部5の動作例を示すフローチャートである。図13は、第3の実施の形態の動作例の概略を示す模式図である。
【0074】
決定木作成部3は、図10及び図13に示すように、第1の決定木30Aを作成する。
【0075】
頻度分布作成部4は、第1の決定木30Aに学習データ102を流し、各葉ノード32に到達したラベルの頻度分布ベクトル40を作成する。
【0076】
次に、頻度分布量子化部5について説明する。頻度分布量子化部5は、図13に示すように、第1の決定木30Aの頻度分布ベクトル、及びそれに付随するラベルを取得する(S21)。データ(頻度分布ベクトル、ラベル)から第2の決定木30Bを作成する(S22)。作成した第2の決定木30Bの各葉ノード32に葉ノードIDを付与する(S23)。第1の決定木30Aの葉ノード32で葉ノードIDが与えられていないものを選び、それを第2の決定木30Bに流入する(S24)。流れ込んだ第2の決定木30Bの葉ノード32の葉ノードIDを第1の決定木30Aの対応する葉ノード32の葉ノードIDとする(S25)。
【0077】
量子化頻度分布作成部6は、頻度分布量子化部5で作成した頻度分布のグループの代表ベクトルを作成する。典型的には該当IDを持つ頻度分布の平均値、つまり重心ベクトルを代表ベクトルとする。その場合、最初に作成した第1の決定木30Aから第2の決定木30Bを作成し、逐次的に第2の決定木30Bの作成に貢献していない第1の決定木30Aの葉ノード32にラベルを付与することで、各第1の決定木30Aの各IDの個数を数えることにより、容易に重心ベクトルを更新することができる。なお、第2の決定木30Bにより作成した葉ノード32の頻度分布をその葉ノードIDの代表ベクトルとすることもできる。このようにして決定木群の各葉ノードに対して葉ノードIDを与え、その葉ノードIDに対する代表ベクトルのみを保持するようにすれば、頻度分布を保持するために必要なメモリ容量は最終的にO(K×2(D’−1)+2×(2(D’−1)−1))と代表ベクトル群及び第2の決定木30Bを作成するのに必要な分岐条件パラメータの和となる。ここで2(D’−1)は葉ノードの分類数Mに近い値であり、D’はDより大幅に小さいため、メモリ容量を小さくすることができる。
【0078】
(識別対象データ作成部及び識別部の動作)
図12は、識別対象の識別段階を示すフローチャートである。次に、識別対象データ作成部7及び識別部8について説明する。識別対象データ作成部7は、学習データで作成した同じ特徴量の次元を用いて、識別対象から特徴ベクトルを抽出する(S41)。特徴ベクトルは同様に正規化しておく。
【0079】
次に、識別部8は、識別対象データ作成部7が作成した特徴ベクトルを第1の決定木30Aに流し込む。第1の決定木30Aごとに最終的に到達する葉ノード32が決定し、その葉ノード32に与えられた葉ノードIDを基に記憶部10を検索して葉ノードに対応する代表ベクトルを読み出す(S42)。各第1の決定木30Aから選択された代表ベクトルは、最終的に統合的に加工され(例えば複数の決定木を用いる場合その平均ベクトル)、最終的な頻度分布を獲得する(S43)。この頻度分布の最も高い度数を持つラベルを識別結果とする(S44)。
【0080】
なお、上記実施の形態では、葉ノードごとに抽出した代表ベクトルをすべて選択したが、すべて選択するのではなく、識別能力が高いもののみを使ってもよい。例えば代表ベクトルのエントロピーを計算し、それが一定値以下のもののみを使用するなどが考えられる。
【0081】
(第3の実施の形態の効果)
第3の実施の形態によれば、頻度分布を第2の決定木を用いて量子化することで、頻度分布間の距離計算を行って量子化する場合と比べて、頻度分布を高速に量子化することができる。
【実施例1】
【0082】
図14A及び図14Bは、本発明の実施例を示す概念図である。
【0083】
具体的な実施例として画像自動アノテーションについて説明する。画像自動アノテーションは画像全体に対して複数のアノテーションを付与する技術であり、アノテーションは対象画像に関係のあるテキスト情報を付与する。例えば「犬」、「猫」、「風景画」などである。
【0084】
学習データ作成部2は、学習画像の全体もしくは部分領域から画像特徴量を抽出する。本実施例では、学習画像として、空を飛んでいる飛行機の画像P、道路を走行している車の画像P、・・・、草原にいる象の画像Pが含まれている。特徴ベクトルは、例えば色特徴、テクスチャ特徴などを繋げたものとする。学習データのラベルは、画像全体に対して付与されたものを用いる場合、部分領域から抽出した特徴ベクトルに対してはこれらのラベル群すべてが付与される(例えたとえ間違っていても)。本実施例では、画像Pの学習データは、特徴ベクトルf1、ラベルC1={飛行機、空}からなり、画像Pの学習データは、特徴ベクトルf2、ラベルC2={飛行機、空}からなり、・・・、画像Pの学習データは、特徴ベクトルfN、ラベルCN={象、草}からなる。
【0085】
次に、決定木作成部3は、学習データから識別器となる第1の決定木30Aを作成する。識別対象数、学習データ数に応じた決定木30Aの数、階層数を事前に設定する。複数の決定木30Aを作成する際、決定木30A間の相異を明確にするために、学習データからランダムサンプリングを行い、各決定木ごとに異なる学習データを用いる。
【0086】
次に、頻度分布作成部4は、全学習データを用いて、これらを作成した第1の決定木30Aに流入させる。特徴ベクトルに付与されているラベルの個数を数えることにより、各葉ノードに対するラベルの度数分布を作成することができる。実際には特定の決定木(例えば特定の1つの決定木)の葉ノードの頻度分布のみを構築する。さらに高頻度の度数であるラベルを頻度分布ベクトルに対するラベルとする。
【0087】
次に、頻度分布量子化部5は、これらを教師データとして第2の決定木30Bを作成する。作成した第2の決定木30Bの葉ノードに対して順に葉ノードIDを与える。これら葉ノードIDの総数は第1の決定木で作成した葉ノードの個数よりもずっと少ない。第1の決定木30Aの葉ノードに対する頻度分布ベクトルを順に算出し、この第2の決定木30Bに流入させる。たどり着いた葉ノードのIDが第1の決定木30Aの各葉ノードの葉ノードIDである。こうして各第1の決定木30Aのすべての葉ノードに対して葉ノードIDを与え、葉ノードIDに対する代表ベクトルを計算しておく。例えばその葉ノードIDを持つ葉ノードに対する頻度分布ベクトルの平均ベクトルがその代表ベクトルである。
【0088】
以上のようにして図6に示したような、葉ノードNo.、葉ノードID、代表ベクトルからなる代表ベクトルテーブルが完成する。
【0089】
次に、識別時にはアノテーションを付与したい画像から学習時と同様な特徴ベクトルを抽出し、第1の決定木に流す。各第1の決定木において最終的にたどり着く葉ノードの代表ベクトルを参照し、それらの平均ベクトルを計算することで、最終的なラベルの頻度分布を獲得する。頻度分布で度数の高いものが識別結果となる。
【0090】
[他の実施の形態]
なお、本発明は、上記実施の形態に限定されず、本発明の要旨を変更しない範囲で種々に変形が可能である。例えば、学習データ作成部2、決定木作成部3、頻度分布作成部4、頻度分布量子化部5、量子化頻度分布作成部6、識別対象データ作成部7及び識別部8の各機能は、コンピュータ読み取り可能な識別情報付与プログラム101に従ってCPUが動作することにより実現してもよい。また、上記実施の形態の学習データ作成部2、決定木作成部3、頻度分布作成部4、頻度分布量子化部5、量子化頻度分布作成部6、識別対象データ作成部7及び識別部8の全て又は一部をASIC等のハードウエアによって実現してもよい。
【0091】
また、上記実施の形態で用いたプログラムをCD−ROM等の記録媒体に記憶して提供することもできる。また、上記実施の形態で説明した上記ステップの入替え、削除、追加等は、本発明の要旨を変更しない範囲内で可能である。
【符号の説明】
【0092】
1…識別情報付与装置、2…学習データ作成部、3…決定木作成部、4…頻度分布作成部、5…頻度分布量子化部、6…量子化頻度分布作成部、7…識別対象データ作成部、8…識別部、9…識別結果出力部、10…記憶部、30…決定木、30A…第1の決定木、30B…第2の決定木、31…ノード、32…葉ノード、40…頻度分布ベクトル、50…頻度分布ベクトル(正規化)、101…識別情報付与プログラム、102…学習データ、103…決定木データ、103a…第1の決定木データ、103b…第2の決定木データ、104、104a、104b、104c…葉ノード情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B