以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置1は、入力された画像を2つの分類に分類する。2つの分類は、例えば、正解および不正解である。あるいは、2つの分類は、「良および不良」、「真および偽」、または、「正および負」などと表されてもよい。このような分類は、例えば、画像に写された製品の良否、画像に写された風景における天気の良し悪し、画像内における人物の顔の存在・不存在などの判定に応用され得る。
情報処理装置1は、入力された画像の分類先を判定するために、教師あり学習を行う。ただし、第1の実施の形態の例では、学習用の画像集合が予め存在していない。このため、情報処理装置1は、順次入力される画像を用いて学習を行う。情報処理装置1は、学習を行う際、入力された画像における複数の種類の特徴量の中から、学習対象とする(すなわち、分類に用いる)特徴量を絞り込む。画像における特徴量としては、例えば、明度分布、カラーヒストグラム、テクスチャなど、画像に関する特徴を数値化した量が考えられる。
情報処理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。演算部1bはプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
記憶部1aは、画像と当該画像のうち第1領域を示す情報と当該画像の分類先を示す情報とを記憶する。第1領域は、分類先を決定するために注目された領域である。第1領域は、画像内において分類先を決定するために特徴的な領域であるということもできる。例えば、ユーザU1は、画像G1と、画像G1のうち第1領域G11を示す情報と画像G1の分類先C1を示す情報(例えば、画像G1を正解または不正解のどちらに分類したかという情報)とを、端末装置2を用いて、情報処理装置1に入力できる。すなわち、ユーザU1は、画像G1の分類先C1の情報と、画像G1を分類先C1に分類する際に注目した領域とを端末装置2を用いて、情報処理装置1に入力できる。例えば、演算部1bは、端末装置2から取得した画像G1と第1領域G11を示す情報と分類先C1を示す情報とを記憶部1aに格納してもよい。
ここで、第1領域G11を示す情報は、画像G1における第1領域G11を特定するためのマーカーM1でもよい。例えば、マーカーM1は、第1領域G11を囲う多角形や楕円などを表す情報でもよい(この場合、マーカーM1で囲われた内側の領域が第1領域G11ということになる)。または、マーカーM1は、線分や、互いに交わる2つの線分などを表す情報でもよい。例えば、演算部1bは、マーカーM1を線分とした場合、線分を含む所定領域を囲う長方形の内側を第1領域G11とするなどの所定のルールにより、第1領域G11を特定できる。あるいは、マーカーM1を互いに交わる2つの線分とした場合、演算部1bは、2つの線分の交点を含む所定範囲の円の内側を第1領域G11とするなどの所定のルールにより、第1領域G11を特定できる。例えば、ユーザU1は、端末装置2を操作して、画像G1に重畳するマーカーM1を入力することができる。この場合、マーカーM1は、ユーザU1により画像G1に対して入力された軌跡の情報として、情報処理装置1に入力される。
演算部1bは、画像と当該画像のうち第1領域を示す情報と当該画像の分類先を示す情報とを端末装置2から取得し、記憶部1aに格納する。そして、演算部1bは、第1領域における複数の種類の特徴量の第1検出結果、および、当該画像のうち第1領域以外の第2領域における複数の種類の特徴量の第2検出結果を比較する。演算部1bは、比較に応じて、取得した分類先へ当該画像を分類する際の複数の種類の特徴量それぞれの重み(分類に影響する度合いであり、影響度や優先度などといってもよい)を決定する。例えば、重みは数値で表される。重みの数値が大きいほど分類に対する影響力が大きく、重みの数値が小さいほど分類に対する影響力が小さい。更に、演算部1bは、決定した重みに応じて複数の種類の特徴量それぞれの重み付けを行い、重み付けの結果に基づいて画像の分類の学習を行う。
例えば、演算部1bは、前述のように、画像G1、第1領域G11を示すマーカーM1(軌跡の情報)および画像G1の分類先の情報のユーザU1による入力を許容する。そして、演算部1bは、画像G1の第1領域G11における複数の種類の特徴量の第1検出結果を得る。また、演算部1bは、画像G1の第1領域G11以外の第2領域G12における複数の種類の特徴量の第2検出結果を得る。ここで、一例として、特徴量X,Y,Zの3種類の特徴量を考える。複数の種類の特徴量の次元をもつ空間を特徴量空間と呼ぶことがある。特徴量X,Y,Zの3種類の特徴量を考える場合、特徴量X,Y,Zそれぞれに相当する3つの軸をもつ3次元の特徴量空間を考えることができる。この場合、3種類の特徴量の検出結果を、3つの軸に対する3つの座標の組合せと考えてもよい。
例えば、演算部1bは、第1検出結果として、第1領域G11において、特徴量X=x1、Y=y1、Z=z1を得る。また、演算部1bは、第2検出結果として、第2領域G12において、特徴量X=x2、Y=y2、Z=z2を得る。そして、演算部1bは、第1検出結果と第2検出結果とを比較する。具体的には、演算部1bは、同じ種類の特徴量同士を比較し、最も差の大きな特徴量を特定する。この場合、最も差の大きな特徴量は、特徴量Xであったとする。すると、演算部1bは、分類先C1へ画像G1を分類する際の特徴量Xの重みを、特徴量Y,Zの重みよりも大きくする。第1検出結果および第2検出結果において、最も差の大きな特徴量は、分類先を分類先C1に決定した際に着目された特徴量である可能性が高いからである。
例えば、演算部1bは、最も差が大きいと判断された回数の割合を、複数の種類の特徴量それぞれの重みとすることが考えられる。具体的には、入力された画像が合計1つで、注目領域と非注目領域とで最も差が大きな特徴量が特徴量Xと判断された場合(特徴量Xに投票した場合)には、演算部1bは、特徴量Xの重みを“1”、特徴量Yの重みを“0”、特徴量Zの重みを“0”とする。あるいは、今回までに入力された画像が合計10個で、そのうち、注目領域と非注目領域とで最も差が大きな特徴量が特徴量Xであると判断された回数(特徴量Xへの投票数)が6回のとき、演算部1bは、特徴量Xの重みを“6/10=0.6”とする。また、今回までに入力された画像が合計10個で、そのうち、注目領域と非注目領域とで最も差が大きな特徴量が特徴量Yであると判断された回数(特徴量Yへの投票数)が1回のとき、演算部1bは、特徴量Yの重みを“1/10=0.1”とする。更に、今回までに入力された画像が合計10個で、そのうち、注目領域と非注目領域とで最も差が大きな特徴量が特徴量Zであると判断された回数(特徴量Zへの投票数)が3回のとき、演算部1bは、特徴量Zの重みを“3/10=0.3”とする。演算部1bは、こうして求めた特徴量X,Y,Zそれぞれの重みを、例えば、記憶部1aに記憶された重みテーブルT1に登録する。
こうして、演算部1bは、順次到着する画像と共に、分類先の情報と、当該画像のうち分類先の決定に着目された領域の情報とを受け付け、複数の種類の特徴量X,Y,Zのうち、分類先の決定に対する特徴量X,Y,Zの重みを更新する。例えば、演算部1bは、所定数の画像により重みを更新すると、決定した重みに応じて複数の種類の特徴量それぞれを重み付けする。例えば、演算部1bは、特徴量X,Y,Zそれぞれの重みを“0.6”、“0.1”、“0.3”と決定している場合を考える。この場合、演算部1bは、これまでに入力された画像それぞれについて、特徴量Xを6倍、特徴量Yを1倍、特徴量Zを3倍に補正した重み付け結果を得る(ただし、重みの値そのものを乗じてもよい)。
演算部1bは、重み付けの結果に基づいて画像の分類の学習を行う。より具体的には、演算部1bは、重み付けされた各特徴量を用いて、画像を分類するための識別モデルを生成する。識別モデルの生成には既存の機械学習の方法(例えば、サポートベクタマシン(SVM:Support Vector Machine)など)を用いることができる。作成した識別モデルを用いて画像の分類を行う際には、分類対象の画像から抽出した各特徴量を、重みテーブルT1に登録された重みによって重み付けして、識別モデルによる分類を行うことになる。
ここで、例えば、ある画像に対して、「この画像に人の顔が映っているか?」ということを認識したい場合、人の顔が映っている/映っていないというラベルが付けられた画像を大量に用意し、教師あり学習を用いることで分類用の識別モデルを作成し得る。しかし、手元に学習するべきデータセットが存在しない場合、どのような特徴量を用いて学習すればよいか不明である。単純な方法として、画像分類に良く用いられる特徴量セットを用意し、全ての特徴量を平等に扱って学習を行うことも考えられる。ところが、この方法では、本来の分類に寄与しない特徴量の次元がノイズになり、分類の精度が低下し得る。
そこで、情報処理装置1では、正解又は不正解のラベルとラベル付け時の画像中の注目領域の情報の入力を許容し、注目領域と非注目領域とで特徴量を比較して、複数種の特徴量からラベル付けに有効な特徴量を効率的に絞り込む。注目領域(第1領域)周辺とそれ以外の領域(第2領域)で大きく値の異なる特徴量は、正否のラベル付けの判断における影響が比較的大きいと考えられるからである。また、例えば、注目領域として指定された形状が凸凹であればエッジ系の特徴に注目してラベル付けされた、当該形状が長方形や楕円形であれば当該形状の広がり方向成分で色や輝度などの急激な変化がある特徴に注目してラベル付けされた、などの推定もできる。
こうして、情報処理装置1によれば、学習を効率化できる。特に、本来の分類に対する寄与が大きいと推定される特徴量に絞り込んで学習を行えるので、全ての種類の特徴量を平等に扱って学習を行うよりも、分類の精度を上げることができる。更に、全ての種類の特徴量を平等に扱う場合に比べて、分類モデルの収束が早くなることが期待されるので、学習に要する画像数を少なくでき、学習に伴うコスト(学習のための時間やユーザの作業コストなど)を減らせる。
特に、オンライン学習(時々刻々と画像データが生成され、順次生成される画像データを用いて学習を行う手法)の場合は、手元に学習用の画像データのセットがないため、どの特徴量が分類に有効であるかの試行錯誤を行えない。一方、情報処理装置1によれば、分類に有効である可能性の高い特徴量を、順次到着する画像データを用いて絞り込める。このため、情報処理装置1は、オンライン学習を行う場合に有用である。
次に、第1の実施の形態で説明した方法で学習を行う情報処理装置の機能をより具体的に説明する。例えば、情報処理装置1は、コンピュータ(サーバコンピュータやクライアントコンピュータを含む)によって実現されてもよい。
[第2の実施の形態]
図2は、第2の実施の形態の画像処理サーバのハードウェア例を示す図である。画像処理サーバ100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。各ユニットは画像処理サーバ100のバスに接続されている。
プロセッサ101は、画像処理サーバ100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、画像処理サーバ100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、画像処理サーバ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。画像処理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、画像処理サーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部105は、画像処理サーバ100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
媒体リーダ106は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ106は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク10を介して他の装置と通信を行う。通信インタフェース107は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
ここで、画像処理サーバ100は、第1の実施の形態の情報処理装置1の一例である。
図3は、画像処理サーバの機能例を示す図である。画像処理サーバ100は、記憶部110、ラベル受付部120、特徴抽出部130、優先特徴量決定部140、特徴重み付け部150および識別モデル生成部160を有する。記憶部110は、RAM102またはHDD103に確保された記憶領域として実現される。ラベル受付部120、特徴抽出部130、優先特徴量決定部140、特徴重み付け部150および識別モデル生成部160は、RAM102に記憶されたプログラムをプロセッサ101により実行することで実現される。
記憶部110は、注目領域決定ルール、特徴量テーブルおよび特徴量優先度テーブルを記憶する。注目領域決定ルールは、画像に付与されたマーカー(画像情報とは異なる情報)の種類に応じた画像内の注目領域の決定ルールを定めた情報である。ここで、注目領域とは、ユーザが、ある画像に対して正解/不正解などのラベル付けを行う際に、当該ラベルの決定のために注目した領域を示す。マーカーの種類は、例えば、マーカーの形状に応じて分類される。具体的には、閉じた線、閉じていない1本の線分、互いに交わる2本の線分など、種々の種類が考えられる。
特徴量テーブルは、画像と、画像に対するラベルと、画像における複数の種類の特徴量との対応関係を示す情報である。特徴量優先度テーブルは、複数の種類の特徴量それぞれの画像の分類に用いる優先度を示す情報である。特徴量優先度テーブルは、複数の種類の特徴量それぞれの画像の分類に対する重みを示す情報であるともいえる。なお、解析対象とする複数の種類の特徴量は、画像処理サーバ100に予め設定される。
ラベル受付部120は、画像と、画像に対するラベルと、ラベル付けの際に注目された注目領域を示す情報との入力を受け付ける。例えば、ユーザは、ディスプレイ11に表示された画像を確認して、当該画像に対して付与するラベルを決定し、入力デバイス12を用いて画像処理サーバ100に当該ラベルを入力できる。その際、ユーザは、ラベルの決定のために注目した注目領域を示す情報(マーカー)を、入力デバイス12を用いて画像処理サーバ100に入力できる。マーカーは、該当の画像内のある領域を特定するための情報である。マーカーの情報は、画像の情報とは別個の情報として、ディスプレイ11に入力される。ユーザは、ネットワーク10に接続されたクライアントコンピュータを用いて、画像と、画像に対するラベルと、注目領域を示す情報とを、画像処理サーバ100に入力することもできる。ラベル受付部120は、受け付けた画像とマーカーの情報とを記憶部110に格納する。ラベル受付部120は、受け付けたラベルを、画像の識別情報に対応付けて、記憶部110に記憶された特徴量テーブルに登録する。
特徴抽出部130は、入力された画像から、解析対象である複数の種類の特徴量を抽出する。特徴抽出部130は、抽出した特徴量を、画像の識別情報に対応付けて、記憶部110に記憶された特徴量テーブルに登録する。
優先特徴量決定部140は、受け付けた画像とマーカーの情報とに基づいて当該画像のうち注目領域を特定する。優先特徴量決定部140は、記憶部110に記憶された注目領域決定ルールに基づいて、マーカーの形状に応じた注目領域を、当該画像から特定する。優先特徴量決定部140は、注目領域において複数の種類の特徴量を抽出する。優先特徴量決定部140は、非注目領域において複数の種類の特徴量を抽出する。優先特徴量決定部140は、注目領域と非注目領域とに対して抽出した同じ種類の特徴量同士を比較する。優先特徴量決定部140は、比較に応じて、複数の種類の特徴量それぞれのラベル付け(分類)に対する優先度を決定する。優先特徴量決定部140は、決定した優先度を、記憶部110に記憶された特徴量優先度テーブルに登録する。
特徴重み付け部150は、特徴量優先度テーブルにおける複数の種類の特徴量それぞれの優先度を用いて、特徴量テーブルに登録された各特徴量を重み付けする。
識別モデル生成部160は、特徴重み付け部150により重み付けされた各特徴量を用いて、画像を分類するための識別モデルを生成する。識別モデルの生成にはSVMなどの既存の方法を用いることができる。
図4は、注目領域決定ルールの例を示す図である。注目領域決定ルール111は、記憶部110に予め格納される。注目領域決定ルール111は、マーカー種類および注目領域の項目を含む。
マーカー種類の項目には、マーカーの形状によって分類されるマーカーの種類が登録される。注目領域の項目には、マーカーの種類に応じた注目領域の決定方法が登録される。
例えば、注目領域決定ルール111には、マーカー種類が“閉じた線”、注目領域が“閉じた線の内側の領域”という情報が登録される。これは、マーカー種類が“閉じた線”である場合、注目領域を“閉じた線の内側の領域”とすることを示す。“閉じた線”とは、例えば、ある領域の外周を縁取る線である。“閉じた線”とは、始点と終点とが結ばれた線ということもできる。マーカーM11は、“閉じた線”の一例である。マーカーM11が指定された場合、注目領域は、マーカーM11の内側の領域R11である。
また、例えば、注目領域決定ルール111には、マーカー種類が“1つの線分”、注目領域が“線分の周辺を含む所定の大きさの長方形の内側の領域”という情報が登録される。これは、マーカー種類が“1つの線分”である場合、注目領域を“線分の周辺を含む所定の大きさの長方形の内側の領域”とすることを示す。“線分の周辺を含む所定の大きさの長方形”は、例えば、線分の周辺を含む所定面積の長方形でもよい。“線分の周辺を含む所定の大きさの長方形”は、線分の長さ方向に延びる当該線分と同じ長さをもつ平行な2つの辺と、当該2つの辺と直行する所定長さの2つの辺とからなる長方形でもよい。“線分”は、“閉じていない線”(始点と終点とが異なる線)により表される線を、真っ直ぐな線に近似した線でもよい。マーカーM12は、“1つの線分”の一例である。マーカーM12が指定された場合、注目領域は、例えば、マーカーM12を含む所定の大きさの長方形の内側の領域R12である。
また、例えば、注目領域決定ルール111には、マーカー種類が“交差する複数の線分”、注目領域が“交点の周辺の領域”という情報が登録される。これは、マーカー種類が“交差する複数の線分”である場合、注目領域を“交点の周辺の領域”とすることを示す。“交点の周辺の領域”とは、例えば、交点を中心とした所定半径の円の内側の領域でもよい。マーカーM13は、“交差する複数の線分”の一例である。マーカーM13は、2つの線分が交差した形状を表すマーカーである。マーカーM13が指定された場合、注目領域は、例えば、マーカーM13の交点を中心とした所定半径の円の内側の領域R13である。
このように、注目領域決定ルール111には、マーカーの種類と、注目領域の特定方法との対応関係が登録される。マーカーの種類および注目領域の特定方法には、上記以外の種類および特定方法を用いることもできる。
図5は、特徴量テーブルの例を示す図である。特徴量テーブル112は、記憶部110に格納される。特徴量テーブル112には、入力された各画像について、予め定められた複数の種類の特徴量の抽出結果が登録される。また、特徴量テーブル112には、各画像に対して入力されたラベルの値も登録される。例えば、ラベルの値は、“true”および“false”の何れかである。特徴量テーブル112の例では、「項目」の列に、“特徴量A”、“特徴量B”、“特徴量C”、・・・というように特徴量の名称が示されている。「項目」の列の最下段は、“ラベル”である。また、特徴量テーブル112の例では、最上段の行が「画像名」を表している。画像名は、例えば、“画像P1”、“画像P2”、・・・である。“画像P1”の列の各値が、画像P1に対応する特徴量の各値およびラベルの値である。
特徴量テーブル112の例では、画像P1について、特徴量Aが“0.20”、特徴量Bが“0.56”、特徴量Cが“0.11”、・・・、ラベルが“true”である。また、画像P2について、特徴量Aが“0.30”、特徴量Bが“0.14”、特徴量Cが“0.67”、・・・、ラベルが“false”である。特徴量テーブル112には、順次到着する画像毎に、各特徴量の抽出結果およびラベルの値が登録されていく。
図6は、特徴量優先度テーブルの例を示す図である。特徴量優先度テーブル113は、記憶部110に格納される。特徴量優先度テーブル113は、第1の実施の形態の重みテーブルT1の一例である。特徴量優先度テーブル113は、特徴量名および優先度の項目を含む。
特徴量名の項目には、特徴量の名称が登録される。優先度の項目には、優先度の値が登録される。優先度の値は、0以上1以下の値である。値が大きいほど、優先される度合が高い。各特徴量の優先度の合計は、“1”に正規化される。具体的には、優先度は、各画像のうち、注目領域と非注目領域とで最大の差となる特徴量として投票された回数の、各画像の合計数に対する割合である。なお、特徴量優先度テーブル113における各特徴量の優先度の初期値は“0”である。
例えば、特徴量優先度テーブル113には、特徴量名が“特徴量A”、優先度が“0.3”という情報が登録される。これは、特徴量Aの優先度が“0.3”であることを示す。また、特徴量優先度テーブル113には、特徴量名が“特徴量B”、優先度が“0.6”という情報が登録される。これは、特徴量Bの優先度が“0.6”であることを示す。また、特徴量優先度テーブル113には、特徴量名が“特徴量C”、優先度が“0.1”という情報が登録される。これは、特徴量Cの優先度が“0.1”であることを示す。この場合、特徴量A,B,C以外の特徴量は優先度“0”ということになる。また、特徴量A,B,Cの間では、特徴量Bが最も優先度が高く、特徴量Aが2番目に優先度が高く、特徴量Cが最も優先度が低いということになる。
図7は、特徴空間の例を示す図である。例えば、特徴空間は、画像の分類に用いられる複数の種類の特徴量に対応する複数の軸により表される。図7では、カラーヒストグラム、明度分布およびテクスチャの3つの軸により表される特徴空間を例示している。例えば、カラーヒストグラムは、各色のピクセルが画像中に何個存在するかを表す棒グラフである。例えば、特徴抽出部130は、画像のカラーヒストグラムを0〜1の間の値に正規化したものを1つの特徴量とする(ただし、複数の色それぞれに対して軸を設けてもよい)。同様に、特徴抽出部130は、明度分布やテクスチャも0〜1の値に正規化して特徴量とする。図7の例では、3種類の特徴量で特徴空間を表したが、例示した種類の特徴量に代えて、あるいは例示した種類の特徴量に加えて他の種類の特徴量を用いることもできる。
図8は、優先度の更新例を示す図である。例えば、優先特徴量決定部140は、マーカーが付与されたある画像の入力を受け付けると、注目領域および非注目領域のそれぞれに対して、カラーヒストグラム、明度分布およびテクスチャの特徴量を抽出する。優先特徴量決定部140は、そのうち注目領域と非注目領域とで最も差の大きな特徴量に投票し、優先度を決定する。図8の例では、優先特徴量決定部140は、各特徴量の優先度が初期値の“0”である状態で、最初に入力された画像について各特徴量を抽出した場合を示している。このとき、カラーヒストグラムについて、注目領域と非注目領域とで特徴量の差が最大であったとする。この場合、優先特徴量決定部140は、カラーヒストグラムに投票する。1回目の判定なので、特徴量優先度テーブル113におけるカラーヒストグラムの優先度が“1”に更新される。こうして、優先特徴量決定部140は、判定回数に対する投票回数の割合により、各特徴量の優先度を更新する。
図9は、特徴量の重み付けの例を示す図である。特徴重み付け部150は、特徴量テーブル112に登録された特徴量を、特徴量優先度テーブル113に登録された優先度によって重み付けする。例えば、特徴重み付け部150は、特徴量c、優先度a(aは0以上1以下の実数)に対し、c×(a×10)を、重み付け後の特徴量とする。より具体的には、特徴量テーブル112における画像P1の明度分布の特徴量がc=“0.20”であり、特徴量優先度テーブル113の明度分布の優先度がa=“0.2”の場合を考える。この場合、特徴重み付け部150は、画像P1の明度分布の特徴量を、0.20×(0.2×10)=0.20×2=0.40と重み付けする。特徴重み付け部150は、同様にして、特徴量テーブル112の各特徴量に対する重み付けを行う。その結果、特徴重み付け部150は、特徴量テーブル112を基に、重み付け後特徴量テーブル112aを作成する。識別モデル生成部160は、重み付け後特徴量テーブル112aに基づいて、識別モデルを生成する。すなわち、画像処理サーバ100は、優先度に応じて複数の種類の特徴量それぞれの重み付けを行い、重み付けの結果に基づいて、画像の分類に用いられる識別モデルを生成する。
識別モデルの生成の際に、重み付け後特徴量テーブル112aを用いるということは、特徴空間の各特徴量に対応する軸のスケールを、特徴量優先度テーブル113の優先度に応じた重みを用いて変換することに相当すると考えてもよい。こうすることで、識別モデル生成部160は、分類(ラベル付け)への影響の大きな特徴量をより際立たせて、識別モデルを生成できる。
図10は、学習の例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(S1)ラベル受付部120は、ラベル付けの結果とともにマーカー付き画像(画像の情報および当該画像のうちマーカーの領域に相当する座標などを示す情報)を受け付けたか否かを判定する。マーカー付き画像を受け付けた場合、特徴抽出部130は、受け付けた画像から特徴量を抽出し、ラベルとともに特徴量テーブル112に登録して、処理をステップS2に進める。マーカー付き画像を受け付けていない場合、処理をステップS1に進める(マーカー付き画像の到着を待機する)。前述のように、ユーザは、ラベルの決定のために注目した注目領域を示す情報(マーカー)を、マウス、タッチパッド、タッチパネルおよびキーボードなどの入力デバイス12を用いて画像処理サーバ100に入力できる。あるいは、ラベル受付部120は、ネットワーク10に接続されたクライアントコンピュータから、ラベル付けの結果とマーカー付き画像とを受け付けてもよい。
(S2)優先特徴量決定部140は、ステップS1で受け付けた画像のうち、マーカーで指定される注目領域および非注目領域それぞれの特徴量を基に、特徴量優先度テーブル113を更新する。処理の詳細は後述される。
(S3)特徴重み付け部150は、特徴量テーブル112および特徴量優先度テーブル113に基づいて、重み付け後特徴量テーブル112aを作成する。識別モデル生成部160は、重み付け後特徴量テーブル112aを用いて画像を分類するための識別モデルを生成する。そして、処理をステップS1に進める。
例えば、画像処理サーバ100は、複数の画像の入力後、生成された識別モデルを用いて既存の画像の“true”、“false”のラベル付けを所定の精度で再現できるようになるまで、ステップS1〜S3の処理を繰り返し行うことが考えられる。
より具体的には、画像処理サーバ100は、N(例えば、Nは2以上の整数)回目に入力された画像に対する特徴量の抽出結果を特徴量テーブル112に登録する。また、優先特徴量決定部140は、当該画像に対するマーカーを基に、特徴量優先度テーブル113を更新する。特徴重み付け部150は、特徴量テーブル112および特徴量優先度テーブル113に基づいて、重み付け後特徴量テーブル112aを作成する。識別モデル生成部160は、重み付け後特徴量テーブル112aに基づいて、識別モデルを生成する。識別モデルが、N個の画像に対するラベル付けを所定の割合(例えば、95%など)で再現していれば、画像処理サーバ100は、上記の学習の手順を終了し、以後は最終的に生成された識別モデルを用いて、到着した画像を分類する。一方、識別モデルがN個の画像に対するラベル付けを所定の精度で再現していなければ、画像処理サーバ100は、N+1回目に入力された画像に対して、上記の学習の手順を実行して、識別モデルを更新し、N+1個の画像に対してラベル付けの再現割合を評価する。こうして、画像処理サーバ100は、識別モデルを更新していき、分類の精度を上げる。
図11は、特徴量優先度テーブル更新の例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。以下に示す手順は、図10のステップS2に相当する。
(S11)優先特徴量決定部140は、記憶部110に記憶された注目領域決定ルール111に基づいて、受け付けた画像に付与されたマーカーに応じた注目領域を決定する。処理の詳細は後述される。
(S12)優先特徴量決定部140は、注目領域および非注目領域それぞれにおける複数の種類の特徴量を計算する。
(S13)優先特徴量決定部140は、注目領域および非注目領域での特徴量の差が最も大きい特徴量を決定する。
(S14)優先特徴量決定部140は、ステップS13で決定した特徴量に投票し、特徴量優先度テーブル113に登録された各特徴量の優先度を更新する。複数の種類の特徴量に対する総投票回数をN回とする。ある特徴量i(iは特徴量の種類を示す)について、これまでに投票された回数をn(i)(nは0以上の整数)とする。この場合、特徴量毎のn(i)の合計がNである。すると、優先特徴量決定部140は、当該特徴量の優先度を、n(i)/Nとする。優先特徴量決定部140は、Nおよび各特徴量に対するn(i)の値を記憶部110により保持しておいてもよい。
図12は、注目領域決定の例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。以下に示す手順は、図12のステップS11に相当する。
(S21)優先特徴量決定部140は、ステップS1で受け付けたマーカーおよび画像に関し、マーカーで示される閉じた領域があるか否かを判定する。閉じた領域がある場合、処理をステップS22に進める。閉じた領域がない場合、処理をステップS23に進める。「閉じた領域」とは、マーカーが閉じた線であることに相当する。したがって、優先特徴量決定部140は、ステップS21の判定を、「マーカーが閉じた線であるか否か」により判定してもよい。その場合、マーカーが閉じた線であれば、処理をステップS22に進める。一方、マーカーが閉じた線でなければ、処理をステップS23に進める。
(S22)優先特徴量決定部140は、注目領域決定ルール111に基づいて、閉じた領域(すなわち、閉じた線で表されるマーカー)の内側を注目領域と決定する。優先特徴量決定部140は、ステップS1で受け付けた画像のうち、注目領域以外の領域を非注目領域と決定する。そして、処理を終了する。
(S23)優先特徴量決定部140は、マーカーで示される軌跡に交点があるか否かを判定する。交点がある場合、処理をステップS24に進める。交点がない場合、処理をステップS25に進める。「軌跡に交点がある」とは、例えば、マーカーが交差する複数の線分である場合、前述のように当該複数の線分の交点である。
(S24)優先特徴量決定部140は、注目領域決定ルール111に基づいて、交点の周辺を注目領域と決定する。具体的には、優先特徴量決定部140は、交点を中心とした所定半径の円の内側の領域を注目領域と決定する。そして、処理を終了する。
(S25)優先特徴量決定部140は、注目領域決定ルール111に基づいて、マーカーで示される軌跡部分を覆う長方形を注目領域と決定する。ここで、ステップS21でNoかつステップS23でNoである場合、マーカーは、“1つの線分”に相当する(完全に真っ直ぐな線でなくてもよい)。この場合、優先特徴量決定部140は、当該線分の周辺を含む所定の大きさの長方形の内側の領域を注目領域と決定する。あるいは、優先特徴量決定部140は、線分の長さ方向に延びる当該線分と同じ長さをもつ平行な2つの辺と、当該2つの辺と直行する所定長さの2つの辺とからなる長方形の内側の領域を注目領域と決定してもよい。そして、処理を終了する。
なお、1つの画像内に複数のマーカーが指定されてもよい。優先特徴量決定部140は、複数のマーカーの形状それぞれに応じて1つの画像から複数の注目領域を抽出してもよい。その場合、優先特徴量決定部140は、複数の注目領域を纏めて1つの注目領域とみなして各特徴量を求め、非注目領域から抽出した各特徴量と比較することが考えられる。
ところで、例えば、ある画像について、人の顔が「映っている」「映っていない」などを分類したい場合、正解(映っている)/不正解(映っていない)のラベルが付けられた画像を大量に用意し、教師あり学習を用いることで分類用の識別モデルを作成し得る。しかし、教師あり学習を開始する際に、学習用の画像集合(訓練データの集合)が手元にないこともある。学習用の画像集合が手元にない場合、順次発生する画像データを用いて学習を行うことが考えられる。しかし、この場合、何れの特徴量を学習に用いるべきかの判断が難しい。この場合、全ての種類の特徴量を平等に扱って学習を行うことも考えられる。しかし、全ての種類の特徴量を平等に扱うと、本来の分類に寄与しない特徴量がノイズとなり、分類の精度が低下し得る。具体的には次の通りである。
図13は、分類と特徴量との関係を示す図である。図13(A)は、分類に有効な特徴量の例を示している。例えば、特徴量A,Bを用いることで、ある識別モデル(例えば、超平面)により複数の画像を適切な分類先に分類できる。一方、図13(B)は、分類に有効でない特徴量の例を示している。例えば、特徴量C,Dを用いると、複数の画像を適切に分類できる識別モデルの探索が困難になる。このため、特徴量A,B,C,Dという4つの種類の特徴量を平等に扱って学習を行うと、本来の分類に寄与しない特徴量がノイズとなり得る。
そこで、画像処理サーバ100では、正解又は不正解のラベルとラベル付け時の画像中の注目領域の情報の入力を許容し、注目領域と非注目領域とで特徴量を比較して、複数種の特徴量からラベル付けに有効な特徴量を効率的に絞り込む。注目領域とそれ以外の非注目領域とで大きく値の異なる特徴量は、正否のラベル付けの判断における影響が比較的大きいと考えられるからである。こうして、画像処理サーバ100によれば、学習を効率化できる。特に、本来の分類に寄与する特徴量に絞り込んで学習を行えるので、全ての種類の特徴量を平等に扱って学習を行うよりも、分類の精度を上げることができる。更に、全ての種類の特徴量を平等に扱う場合に比べて、分類モデルの収束が早くなることが期待されるので、学習に要する画像数を少なくでき、学習に伴うコスト(学習のための時間やユーザの作業コストなど)を減らせる。
特に、オンライン学習(時々刻々と画像データが生成され、順次生成される画像データを用いて学習を行う手法)の場合は、手元に学習用の画像データのセットがないため、どの特徴量が分類に有効であるかの試行錯誤を行えない。一方、画像処理サーバ100によれば、分類に有効である可能性の高い特徴量に対して順番に、順次到着する画像データを用いて優先度付けし、識別モデルの生成に役立てることができる。このため、画像処理サーバ100は、順次到着する画像データを用いてオンラインで学習を行う場合に特に有用である。
次に、第2の実施の形態の変形例を説明する。まず、画像処理サーバ100は、特徴量優先度テーブル113の更新を、図10の手順に代えて、次の手順により実行してもよい。
図14は、特徴量優先度テーブル更新の他の例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。以下に示す手順は、図10のステップS2に相当する。ここで、図14の手順では、ステップS11の次にステップS11aを実行し、ステップS11aの次にステップS12を実行する点が図11の手順と異なる。そこで、以下では、ステップS11aを主に説明し、他のステップの説明を省略する。
(S11a)優先特徴量決定部140は、図10のステップS1で受け付けたマーカーに応じて、各特徴量への重み付けを決定する。例えば、マーカーの形状が「閉じた線」であれば、大域特徴量に区分される特徴量の重みを他の特徴量の重みよりも大きくする。より具体的には、大域特徴量に区分される特徴量を2倍に重み付けし、他の特徴量を1倍に重み付けすることが考えられる。ここで、大域特徴量とは、画像全体を表現する特徴量であり、例えば、カラーヒストグラムなどが考えられる。他の例として、マーカーの形状が「交差する複数の線分」であれば、局所特徴量に区分される特徴量の重みを他の特徴量の重みよりも大きくする。ここで、局所特徴量とは、ある点を表現する特徴量であり、例えば、SIFT(Scale - Invariant Feature Transform)などが考えられる。そして、処理をステップS12に進める。
画像処理サーバ100は、マーカーの形状(すなわち、軌跡の情報)に応じて複数の種類の特徴量それぞれの重み付けを行う。例えば、優先特徴量決定部140は、ステップS11aで決定した重み付けの値を、ステップS13において特徴量の差を求める際に用いてもよい。具体的には、優先特徴量決定部140は、大域特徴量に対して、他の特徴量よりも重み付けするならば、注目領域および非注目領域における大域特徴量の抽出結果に対して、ステップS11aで求めた重みを乗じた上で、特徴量の差を求める。すると、優先特徴量決定部140は、マーカーの形状に応じて各特徴量への投票率(分類に対する重み)を決定できる。また、ユーザは、マーカーの形状により、着目させたい特徴量の種類を、画像処理サーバ100に対して容易に指定可能となる。
あるいは、特徴重み付け部150は、特徴量優先度テーブル113の更新の後に実行する図10のステップS3において、特徴量を重み付けする際に、ステップS11aで求めた重みを更に考慮してもよい。例えば、特徴重み付け部150は、ある特徴量に対して、投票率に応じた重みと、ステップS11aで求めた重みとの両方を乗じて、重み付け後の特徴量を求めることが考えられる。この場合も、ユーザは、マーカーの形状により、着目させたい特徴量の種類を、画像処理サーバ100に対して容易に指定可能となる。
また、第2の実施の形態の例では、画像が1つ到着するたびに、識別モデルを更新するものとしたが、ある程度の数の画像がたまってから、特徴量優先度テーブル113や識別モデルの更新を行ってもよい。例えば、ラベル受付部120は、図10のステップS1でYesと判定した回数をカウントし、当該回数が、所定数に達した場合に、ステップS1でYesと判定した回数のカウントをリセットして、処理をステップS2に進める。ラベル受付部120は、図10のステップS1でYesと判定した回数が所定数に達していない場合、ステップS1でNoの場合、画像の到着を待つ。なお、特徴抽出部130は、各画像に対して各特徴量を抽出し、受け付けたラベルとともに特徴量テーブル112に登録する。更に、ラベル受付部120は、画像とともに入力されたマーカーの情報を、当該画像に対応付けて記憶部110に格納する。
優先特徴量決定部140は、こうして保持された複数の画像、ラベルおよびマーカーの情報に基づいて、特徴量優先度テーブル113を更新することが考えられる。
図15は、優先度の更新の他の例を示す図である。ここでは、優先特徴量決定部140が、3つの画像に対して、投票先の特徴量を決定し、特徴量優先度テーブル113を更新する場合を考える。この場合、優先特徴量決定部140は、3つの画像それぞれの注目領域について、予め定められた複数の種類の特徴量を抽出し、複数の種類の特徴量で表される特徴空間上の座標を求める。すなわち、優先特徴量決定部140は、3つの画像それぞれの注目領域について、特徴空間上の3つの座標を求めることになる。そして、優先特徴量決定部140は、求めた3つの座標の重心を求める。すると、求めた重心の各成分を、3つの画像の注目領域に関する各種の特徴量とみなせる。
同様にして、優先特徴量決定部140は、3つの画像それぞれの非注目領域について、複数の種類の特徴量を抽出し、特徴空間上の3つの座標を求める。そして、優先特徴量決定部140は、求めた3つの座標の重心を求める。すると、求めた重心の各成分を、3つの画像の非注目領域に関する各種の特徴量とみなせる。
優先特徴量決定部140は、注目領域および非注目領域に対して求めた2つの重心の各成分を比較して、最も差の大きな特徴量を特定する。そして、優先特徴量決定部140は、特定した特徴量に投票し、特徴量優先度テーブル113を更新する。特徴重み付け部150は、特徴量優先度テーブル113が更新されると、特徴量テーブル112および特徴量優先度テーブル113に基づいて、重み付け後特徴量テーブル112aを作成する。識別モデル生成部160は、重み付け後特徴量テーブル112aが新たに作成されると、重み付け後特徴量テーブル112aに基づいて、画像分類用の識別モデルを更新する。
このように、画像処理サーバ100は、複数の画像が到着するたびに、特徴量優先度テーブル113や識別モデルの更新を行ってもよい。この場合、画像が到着するたびに更新を行うよりも、ノイズの影響(例えば、分類への寄与が比較的小さい特徴量に投票してしまう可能性)を低減し、分類の精度を一層向上できる。
なお、第1の実施の形態の情報処理は、演算部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。