JP7166784B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP7166784B2
JP7166784B2 JP2018085259A JP2018085259A JP7166784B2 JP 7166784 B2 JP7166784 B2 JP 7166784B2 JP 2018085259 A JP2018085259 A JP 2018085259A JP 2018085259 A JP2018085259 A JP 2018085259A JP 7166784 B2 JP7166784 B2 JP 7166784B2
Authority
JP
Japan
Prior art keywords
learning
task
recognition
neural network
evaluation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018085259A
Other languages
English (en)
Other versions
JP2019192009A (ja
Inventor
貴之 猿田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018085259A priority Critical patent/JP7166784B2/ja
Priority to US16/389,546 priority patent/US11113576B2/en
Publication of JP2019192009A publication Critical patent/JP2019192009A/ja
Application granted granted Critical
Publication of JP7166784B2 publication Critical patent/JP7166784B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
コンピュータ等の機械が画像や音声などのデータの内容を学習して認識を行う技術が存在する。認識処理の目的を、ここでは認識タスクと呼ぶ。認識タスクには、例えば、画像中から人間の顔の領域を検出する顔認識タスクがある。その他にも、画像中にある物体(被写体)のカテゴリ(猫、車、建物など)を判別する物体カテゴリ認識タスクや、シーンのカテゴリ(都市、山間、海岸など)を判別するシーン種別認識タスク等の多様な認識タスクがある。
このような認識タスクを学習・実行する技術として、ニューラルネットワーク(NN:Neural Network)の技術が知られている。深い(層の数が多い)多層ニューラルネットワークは、深層ニューラルネットワーク(DNN:Deep Neural Network)と呼ばれる。特に、非特許文献1に開示されているように深い畳み込みニューラルネットワークは、Deep Convolutional Neural Network(DCNN)と呼ばれる。DCNNは、性能が高いことで近年注目されている。
DCNNとは、各層において、前の層からの出力結果に対して畳み込み処理を行い次の層に出力するようなネットワーク構造をもつニューラルネットワークである。各層には畳み込み演算用のフィルタ(カーネル)が複数用意される。最終層は認識結果を出力する出力層となる。DCNNにおいて、出力層に近い層は、畳み込みによる結合ではなく通常のニューラルネットワークのような全結合層(fullconnect)の構造とするのが一般的である。または、非特許文献2に開示されているように、全結合層のかわりに畳み込み演算層(中間層)の出力結果を線形識別器に入力して識別を行う手法もある。
DCNNの学習フェーズでは、畳み込みフィルタの値や全結合層の結合重み(両者をあわせて学習パラメータと呼ぶ)を誤差逆伝搬法(バックプロパゲーション:BP)などの方法を用いて教師付きデータから学習する。認識フェーズでは、学習済みのDCNNにデータを入力し、各層において学習済みの学習パラメータによってデータを順次処理し、出力層から認識結果を得るか、又は中間層の出力結果を集計して識別器に入力することで認識結果を得る。
通常のDCNNでは、最終層に認識結果を出力する出力層が接続され、そのDCNNが学習及び認識を実行する認識タスクは1つである。例えば、非特許文献1に開示されているDCNNは、1000クラスの画像分類タスクを学習して、認識時には識別対象画像に対して各クラスの尤度を出力する。一方、DCNNに対して2つ以上の認識結果を出力させるように出力層を複数接続することもできる。例えば、非特許文献3には、髪領域、目領域、鼻領域、口領域、及びあご領域をそれぞれ出力する出力層を接続して、それらの結果を統合して顔領域を検出する技術が開示されている。
また、特許文献1には、入力画像に人が存在する否かの識別問題と、入力画像における人の位置の回帰問題とを同時に学習することで、人の一部が隠れている場合でも精度よく人の位置を検知できる技術が開示されている。また、特許文献2や非特許文献4には、詳細クラスのいくつかを包含した粗クラスを定義し、粗クラス定義したクラスを識別するタスクと詳細クラス定義したクラスを識別するタスクによって学習及び認識を行う技術が開示されている。
特開2016-6626号公報 特開2017-84320号公報
Krizhevsky,A.,Sutskever,I.,&Hinton,G.E.,"Imagenet classification with deep convolutional neural networks.",In Advances in neural information processing systems(pp.1097-1105),2012. Jeff Donahue,Yangqing Jia,Judy Hoffman,Trevor Darrell,"DeCAF:A Deep Convolutional Activation Feature for Generic Visual Recognition",arxiv 2013. Shuo Yang,Ping Luo,Chen Change Loy,Xiaoou Tang,"From Facial Parts Responses To Face Detection:A Deep Learning Approach",International Conference on Computer Vision 2015. Zhicheng Yan,Robinson Piramuthu,et al,"HD-CNN:Hierarchical Deep Convolutional Neural Network for Large Scale Visual Recognition",International Conference on Computer Vision 2015. Ross Girshick,"Fast R-CNN",International Conference on Computer Vision 2015. J.R.R.Uijlings,et al,"Selective Search for Object Recognition",International Journal of Computer Vision 104.2(2013) Shai shalev-Shwartz,"Pegasos:Primal Estimated sub-GrAdient SOlver for SVM",International Conference on Machine Learning 2007.
ニューラルネットワークを用いて2つ以上の認識タスクを同時に学習する場合において効率よくパラメータを学習することが必要になる。つまり、ニューラルネットワークを用いて2つ以上の認識タスクを同時に学習する際に、学習パラメータを学習精度が向上するように調整する必要がある。学習パラメータとは、例えば認識結果と学習データの教師値との誤差に対する学習率や、複数の認識タスク間の重要度である。タスク間の重要度とは、学習が進んでいく過程で学習を加速させたいタスクを決めるための重みである。
しかし、ニューラルネットワークを用いて2つ以上の認識タスクを同時に学習する場合に、学習パラメータを適切に設定する技術がなかった。本発明は、ニューラルネットワークに2つ以上の認識タスクを学習させる場合に、認識タスクの識別精度が向上するように学習パラメータを設定できるようにすることを目的とする。
本発明に係る情報処理装置は、ニューラルネットワークに学習させる複数の認識タスクを設定するタスク設定手段と、学習データを前記ニューラルネットワークに入力した際の前記複数の認識タスクの出力結果と教師値との誤差に基づいて、前記複数の認識タスクを前記ニューラルネットワークに学習させる学習手段と、前記学習手段による前記ニューラルネットワークの学習結果を評価する評価手段と、前記評価手段での評価結果に基づいて、前記学習手段による学習において前記誤差に対する重み付け度合いを認識タスクごとに設定するパラメータ設定手段とを有することを特徴とする。
本発明によれば、2つ以上の認識タスクに係る識別精度の高いニューラルネットワークを効率よく学習することができる。
本発明の実施形態における情報処理システムの構成例を示す図である。 画像分類を行う識別対象画像の例を示す図である。 識別対象物体の検出例を示す図である。 識別対象画像の領域分割例を示す図である。 本実施形態における情報処理装置のハードウェア構成例を示す図である。 DCNNの構造及びDCNNを用いた識別処理の例を説明する図である。 DCNNを用いた複数の認識タスクに係る識別処理の例を説明する図である。 本実施形態における識別処理を行う情報処理装置の機能構成例を示す図である。 本実施形態における識別処理の例を示すフローチャートである。 本実施形態における学習処理を行う情報処理装置の機能構成例を示す図である。 本実施形態における学習処理の例を示すフローチャートである。 領域分割タスク及び物体検出タスクを設定した例を説明する図である。 本実施形態におけるニューラルネットワークの一例を示す図である。 第1の実施形態における評価データに対する誤差の一例を示す図である。 第1の実施形態における評価データに対する誤差及びその変位量を説明する図である。 第1の実施形態における評価データに対する誤差の一例を示す図である。 第2の実施形態における学習パラメータの設定例を説明する図である。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。図1は、本発明の一実施形態における情報処理システムの概略的な構成例を示す図である。本実施形態における情報処理システムは、カメラ110と、認識タスクに係る認識フェーズでの処理(識別処理)を行う情報処理装置120とが、ネットワーク115を介して接続されている。なお、情報処理装置120とカメラ110は、一体に構成されていてもよい。また、情報処理装置120と、認識タスクに係る学習フェーズでの処理(学習処理)を行う情報処理装置130とが、ネットワーク115を介して接続されている。なお、情報処理装置120と情報処理装置130が、一体に構成されていてもよい。
カメラ110は、情報処理装置120による情報処理の対象となる画像を撮影する。図1には、被写体として木141、自動車142、建物143、空144、道145、人体146等が画角(撮影範囲)内に存在するシーン(撮影状況)140を、カメラ110が撮影する例を示している。情報処理装置120は、カメラ110により撮影(撮像)されたシーン140において、各被写体が画像内に存在するか否かを識別する画像分類タスクや、被写体の位置を検出する物体検出タスクや、被写体領域を抽出する領域分割タスクを行う。なお、本実施形態においては、画像分類(classification)タスク、物体検出(detection)タスク、及び被写体領域を抽出する領域分割(segmentation)タスクを例に説明するが、他のタスクの場合でもよい。
図2は、画像分類の例を示す図である。図2(a)には建物、図2(b)には木(林・森)、図2(c)には車と画像分類される例を示している。図3は、物体検出の例を示す図である。図3には、車301を識別対象物体として物体検出し、検出結果をバウンディングボックス(BoundingBox)302で示した例を示している。図4は、領域分割の例を示す図である。図4(a)に示されるように撮影された識別対象画像401の各画素のクラスを識別する例を示している。ここでいうクラスとは、図4(b)に示すような各画素に対応して振られるsky(空)、tree(木)、car(自動車)等といった被写体の分類に関するクラスカテゴリー名である。
図5は、情報処理装置120、130のハードウェア構成の一例を示す図である。CPU(Central Processing Unit)501は、情報処理装置全体を制御する。CPU501が、ROM(Read Only Memory)503や記憶部504等に格納されたプログラムを実行することにより、後述する情報処理装置が有する各機能構成及び情報処理装置に係るフローチャートの処理が実現される。RAM(Random Access Memory)502は、CPU501がプログラムを展開して実行するワークエリア等として機能する記憶領域である。ROM503は、CPU501が実行するプログラム等を格納する記憶領域である。記憶部504は、例えばハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)等であり、CPU501が処理を実行する際に要する各種のプログラム、閾値に関するデータ等を含む各種のデータを格納する記憶領域である。操作部505は、ユーザによる入力操作を受け付ける。表示部506は、各種情報を表示する。ネットワークインターフェース(I/F)507は、情報処理装置と外部の機器とを接続する。
ニューラルネットワークを用いて画像を識別する際の処理(識別処理)について説明する。なお、以下ではDeep Convolutional Neural Network(DCNN)を一例として説明するが、ニューラルネットワークはこれに限定されるものではない。DCNNは、畳み込み演算を多く行うニューラルネットワークである。DCNNは、非特許文献1に開示されているように畳み込み処理(convolution)と、relu処理やプーリング処理(pooling)等の非線形処理との組み合わせで特徴層が実現される。DCNNは、例えば、この特徴層のあとに全結合層(fullconect)を経て画像分類結果(各クラスに対する尤度)を出力する。
図6は、DCNNの構造及びDCNNを用いた識別処理の一例を説明する図である。図6(a)には、入力(Input)600として入力画像を入力すると、畳み込み処理601、relu処理602、畳み込み処理603、relu処理604、及びプーリング処理605を行う例を示している。これらの処理601~605を、例えば処理606~610として示すように所定回数繰り返して、全結合層611、relu処理612、全結合層613、relu処理614、全結合層615を行って、最終層の出力結果(Output)650を出力する。図6(a)においては、畳み込み処理を行う層を“conv”、relu処理を行う層を“relu”、プーリング処理を行う層を“pool”、全結合層を“fc”と示している(図6(b)~図6(d)においても同様)。
ここで、relu処理とは、非線形処理の1つであり、下記(式1)に示すように入力x又は0のうちの最大値を出力yとする処理、すなわち前層の出力結果のうち、負の値を0とする処理である。なお、relu処理に限らず、その他の非線形処理でもよい。
y=max(0,x) …(式1)
また、本例でのプーリング処理は、所定範囲内の最大値を取得して出力するマックスプーリング処理(maxpooling)とする。プーリング処理は、マックスプーリング処理に限定されるものではなく、所定範囲内における何らかの統計値等を取得して出力するような処理でもよい。なお、入力画像は、所定の画像サイズで画像をクロップもしくはリサイズしてDCNNに入力するのが一般的である。
また、図6(a)に示した例に限らず、例えば非特許文献2に開示されているように、ニューラルネットワークの中間層の出力結果を特徴ベクトルとして識別器に入力することで識別を行うことも可能である。例えば、図6(b)に示すように中間層であるrelu処理609を行う層の出力結果を特徴ベクトル(feature)616としてサポートベクタマシン(SVM:Support-Vector-Machine)617に入力することで識別を行う。なお、図6(b)に示した例では、途中のrelu処理609を行う層の出力結果を利用したが、その前段の畳み込み処理608を行う層や後段のプーリング処理610を行う層の出力結果でもよいし、他の中間層の出力結果や、それらの組み合わせでもよい。また、ここでは識別器としてサポートベクタマシンを用いた例を示したが、他の識別器を用いてもよい。
また、図6(b)に示した例では入力画像に対して識別結果を一意に出力するが、図4に示したように識別対象領域を識別する場合などで画素や小領域毎に識別する必要がある場合には、図6(c)に示すような構成を用いる。その場合、所定の中間層の出力結果を、入力画像サイズと同じサイズにリサイズするリサイズ処理618を行う。リサイズ処理を行った後に、注目している画素もしくは小領域における所定の中間層の出力結果619を特徴ベクトル(feature)620として、サポートベクタマシン(SVM)621に入力することで識別を行う。一般的にDCNNを用いる場合、中間層の出力結果は入力画像サイズに比べて小さくなるため、中間層の出力結果を入力画像サイズにリサイズする必要がある。リサイズ方法は、補間点に最も近い位置での値で補間する最近傍法(Nearest-Neighbor-Algorithm)などの補間手法であれば何でもよい。なお、識別器としてサポートベクタマシンを用いた例を示したが、それ以外の識別器を用いてもよい。
また、図3に示したように識別対象物体を検出する場合には、非特許文献5に開示されているように物体領域候補を関心領域として推定して対象物体領域のバウンディングボックスの位置・サイズ及びスコアを出力するニューラルネットワークを用いてもよい。関心領域(ROI:Region-Of-Interest)は、例えば非特許文献6に開示されている物体らしさ(Objectness)を見つけるSelective Searchと呼ばれる手法などを用いて物体候補領域を算出する。通常は2000個程度の物体候補領域を算出するが、ここでは1つである場合で説明する。図6(d)に示すように、途中の中間層の出力結果を先の方法で推定した関心領域(ROI)内でプーリング処理(ROIpooling)622する。関心領域(ROI)内でプーリング処理した出力結果を複数の全結合層に接続して、バウンディングボックスの位置・サイズ及びその対象物体のスコア等を出力する。
次に、ニューラルネットワークを用いて複数の認識タスクに係る識別を行う場合の処理について説明する。ここでは、認識タスクが2つである場合を例に説明するが、認識タスクの数は3つ以上でもよい。図7は、DCNNを用いた複数の認識タスクに係る識別処理の一例を説明する図である。図7には、ニューラルネットワークに識別対象画像を入力した場合に2つの認識タスクに対してそれぞれ識別結果が出力される例を示している。図7においては、処理に関して図示しており各処理に関する出力結果は図示していないが、最終的な識別結果のみ点線で図示している。
図7(a)には、入力される識別対象画像(Input)700に関し、演算処理層701を経て、それぞれの認識タスクに対して識別層702、704によって識別結果703、705をそれぞれ出力する例を示している。演算処理層701は、先に説明した畳み込み処理と、relu処理やプーリング処理などの非線形処理とを適宜組み合わせて構成されている(図7(b)~図7(d)に示す他の演算処理層711、714、717についても同様)。演算処理層の構成についてはニューラルネットワークの学習時に設定する。ニューラルネットワークによって識別結果が出力される認識タスクは、図2~図4に示したような画像分類タスクや物体検出タスクや領域分割タスクなどなんでもよい。
認識タスクの1つが物体検出タスクである場合、図7(b)に一例を示すように演算処理層701の出力結果に対して、所定の方法で推定した関心領域(ROI)内でのプーリング処理(ROIpooling)706を行う。そして、物体検出タスクに対応する識別層709によって、関心領域(ROI)内でプーリング処理した出力結果を用いてバウンディングボックスの位置・サイズを識別し、識別結果710を出力する。また、図7(b)に示す例では、演算処理層701の出力結果を用いて識別層707で処理を行うことにより、別の認識タスクの識別結果708を出力する。例えば、識別結果708が画像分類結果であり、識別結果710が対象物体の位置やサイズである。
また、識別結果の出力方法には様々な方法があり、その例を図7(c)や図7(d)に示す。図7(c)に示す例では、入力される識別対象画像(Input)700に対して、演算処理層711及び識別層712で処理を行うことで、ある認識タスクに対する識別結果713を出力する。さらに、ある認識タスクに対する識別結果713を演算処理層714及び識別層715で処理することで、別の認識タスクに対する識別結果716を出力する。また、図7(d)に示す例では、途中の演算処理層717の出力結果を識別層720で処理することで、ある認識タスクに対する識別結果721を出力する。その識別結果721と演算処理層717の出力結果とを入力として、識別層718で処理を行うことにより、別の認識タスクに対する識別結果719が出力される。
図8(a)は、第1の実施形態における情報処理装置120の機能構成例を示す図である。図8(a)には、情報処理装置120における識別処理に係る機能構成を示している。また、図8(a)には、情報処理装置120が有する機能ブロックの他に、カメラ10に相当し、識別対象画像を取得する撮影部800も合わせて図示している。第1の実施形態における情報処理装置120は、ニューラルネットワーク(NN)入力部801、ニューラルネットワーク(NN)出力部802、及びパラメータ保持部803を有する。NN入力部801及びNN出力部802は、情報処理装置120のCPU501がROM503や記憶部504に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部803は、不揮発性の記憶装置として情報処理装置120と接続された構成としてもよい。
図9(a)は、第1の実施形態における情報処理装置120で実行される識別処理の一例を示すフローチャートである。識別処理を開始すると、ニューラルネットワーク(NN)入力工程T901にて、NN入力部801が、シーン30として図1に例示したような撮影部800によって撮影された画像を識別対象画像として取得する。なお、識別対象画像は、図示しない外部装置に格納されている画像であってもよく、その場合にはNN入力部801は、外部装置から読み出された画像を識別対象画像として取得する。外部装置に格納されている画像は、例えば撮影部800等で予め撮影された画像であってもよいし、ネットワーク等を経由するなどの他の方法で取得されてから格納された画像であってもよい。NN入力部801で取得された識別対象画像は、NN出力部802に送信される。
次に、ニューラルネットワーク(NN)出力工程T902にて、NN出力部802が、NN入力工程T901において入力された識別対象画像を、ニューラルネットワークを用いて識別し、出力層の出力結果を識別結果として出力する。識別に用いるニューラルネットワークの構造は、パラメータ保持部803に保持されている。また、識別に用いるニューラルネットワークにおける各認識タスクについての畳み込みフィルタの値や全結合層の結合重み等は、学習処理によって予め学習を行うことにより取得されてパラメータ保持部803に保持されている。なお、識別結果は、後述する学習処理内のマルチタスク設定工程S1101において設定された複数の認識タスクに対してそれぞれ出力してもよいし、その複数の認識タスクのうち設定した所定の認識タスクのみの出力結果を出力してもよい。
次に、本実施形態において用いられるニューラルネットワークを学習する際の処理(学習処理)について説明する。図10(a)は、第1の実施形態における情報処理装置130の機能構成例を示す図である。図10(a)には、情報処理装置130における学習処理に係る機能構成を示している。第1の実施形態における情報処理装置130は、マルチタスク設定部1001、ニューラルネットワーク(NN)学習部1002、ニューラルネットワーク(NN)評価部1003、学習パラメータ設定部1004、及び表示部1005を有する。また、第1の実施形態における情報処理装置130は、パラメータ保持部1006、学習データ保持部1007、及び評価データ保持部1008を有する。
マルチタスク設定部1001、NN学習部1002、NN評価部1003、及び学習パラメータ設定部1004は、情報処理装置130のCPU501がROM503や記憶部504に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部1006、学習データ保持部1007、及び評価データ保持部1008の一部又は全部は、不揮発性の記憶装置として情報処理装置130と接続された構成としてもよい。本実施形態では、情報処理装置130において学習データ保持部1007に保持されているデータにより複数の認識タスクに対して学習を行った後に、ニューラルネットワークの学習精度を評価して学習パラメータを設定する。しかし、これに限定されず、予め学習されたニューラルネットワークを保持しておいて、ニューラルネットワークを評価してもよい。
図11(a)は、第1の実施形態における情報処理装置130で実行される学習処理の一例を示すフローチャートである。学習処理を開始すると、まずマルチタスク設定工程S1101にて、マルチタスク設定部1001が、ニューラルネットワークに学習させる少なくとも2つ以上の認識タスクを設定する。設定された複数の認識タスクに関する情報はNN学習部1002に送信される。なお、マルチタスク設定部1001は、表示部1005に接続されており、設定された認識タスクを表示部1005上で表示することによりユーザが確認することが可能となっている。
本実施形態では、設定する認識タスクの数が2つである場合を例に説明する。設定する認識タスクは、例えば、前述した画像分類タスク、物体検出タスク、及び領域分割タスク等の内から異なる2つのタスクを選択してもよいし、同じタスクを2回選択してもよい。本実施形態では、領域分割タスクと物体検出タスクとの2つの認識タスクを設定した例について説明する。領域分割タスクでは道路領域とそれ以外の抽出を行い、物体検出タスクでは車の検出を行うタスクについて説明する。その例を図12に示す。識別対象画像1200に対して、領域分割タスクの識別結果を1201、物体検出タスクの識別結果を1204に示している。道路領域を1202、非道路領域を1203、車の位置及びサイズを表すバウンディングボックスを1204で示している。
次に、ニューラルネットワーク(NN)学習工程S1102にて、NN学習部1002が、設定されたニューラルネットワークの学習パラメータで、学習データ保持部1007に保持されている学習データを用いてニューラルネットワークに学習させる。NN学習工程S1102では、マルチタスク設定工程S1101においてマルチタスク設定部1001が設定した複数の認識タスクに関して学習を行う。本実施形態では、ニューラルネットワークとしてDCNNを用いるとする。設定されるパラメータとは、ニューラルネットワークにおける層の数や層の処理内容(構造)及びフィルタサイズや出力チャンネル数などである。学習されたニューラルネットワークはNN評価部1003に送信される。
ここで、学習されるニューラルネットワークの例を、図13を参照して説明する。図13(a)には、入力される各学習画像に対するニューラルネットワークの各層での処理内容を示している。図13(a)において、物体検出タスクの結果である、対象物体であるか否かの尤度がOutput1314、対象物体の位置及びサイズに関する出力結果がOutput1327、領域分割タスクの識別結果がOutput1320で表されている。それぞれのタスクに対するニューラルネットワークの構造及び処理内容を説明する。
物体検出タスクの場合、入力された学習画像(Input)1300に対して畳み込み処理1301、relu処理1302、畳み込み処理1303、relu処理1304、及びプーリング処理1305が、この順で行われる。さらに畳み込み処理1306、relu処理1307、及びROI内でのプーリング処理1308が行われた後、全結合層1309に入力される。そして、全結合層1309、relu処理1310、全結合層1311、relu処理1312、及び全結合層1313を経て、物体検出タスクの結果(Output)1314を出力する。また、relu処理1312の出力結果を全結合層1326に入力することで、対象物体の位置及びサイズに関する出力結果(Output)1327が得られる。一方、領域分割タスクでは、中間層の出力結果を入力画像サイズにリサイズをして識別を行う。具体的には、relu処理1302の出力結果、relu処理1304の出力結果、及びrelu処理1307の出力結果を、それぞれ入力画像サイズにリサイズ処理1315~1317した後に結合処理(concat)1318する。結合処理した結果を識別層1319によって識別し識別結果(Output)1320が出力される。
図13(b)には、図13(a)に示した処理内容を行った際のニューラルネットワークの各層での出力結果を示している。図13(b)において、relu処理は省略している。DCNNでは各層に入力されるN(n)(n=1、2、…)チャンネルの入力が畳み込みによりN(n+1)チャンネルの出力に変換される。畳み込み処理を行う各層で用いるフィルタ群(カーネル)は4次元のテンソル表現で表される。例えば、(フィルタサイズ)×(フィルタサイズ)×((入力)チャネル数)×(フィルタ数=出力チャンネル数)で表される。図13(b)に示した例では、入力画像1300は、256×256のサイズにリサイズされており、RGBの3チャンネルで定義されているとする。畳み込み処理1301で用いるフィルタ(カーネル)は、7×7×3×96で表現される。図13(b)に示しているようにstride4(4ピクセルおきに畳み込み演算を行う)で処理を行うため、畳み込み処理1301(及びrelu処理1302)による出力結果1331は、64×64×96でサイズが表される結果となる。次に、畳み込み処理1303で用いるフィルタは、5×5×96×128で表される。そのため、畳み込み処理1303による出力結果1332は、64×64×128となる。次に、プーリング処理1305は、2×2の範囲の最大値をstride2で取得するとすれば、プーリング処理1305による出力結果1333は、32×32×128となる。次に、畳み込み処理1306で用いるフィルタは、3×3×128×256で表される。そのため、畳み込み処理1306による出力結果1334は、32×32×256となる。次に、畳み込み処理1306による出力結果1334に対してROI内でプーリング処理1308を行う。ここでは16×16で表される領域をROIプーリング処理して、出力結果1335を次の全結合層1309に入力する。その後、全結合層で処理を行い、ROI内の物体尤度、及び位置及びサイズを出力する。
例えば、図12に示した例においては、ROI内に車が存在するか否かについての尤度及び車領域の位置及びサイズが出力される。ROI内の物体尤度は全結合層1313で処理を行い、対象の物体であるか否かの尤度を出力結果(Output)1314として出力する。学習時には、学習データに対するソフトマックス(softmax)誤差を算出することで学習される。また、ROI内の物体の位置及びサイズは全結合層1326で処理を行い、ROI内での位置及びサイズについて、対象物体領域とのずれ量を出力結果(Output)1327として出力する。学習時には、ROI内の位置及びサイズと、学習データの対象物体の位置及びサイズに関する回帰誤差を算出することで学習する。なお、学習データ内に車が存在しない場合には対象物体であるか否かの尤度に関する誤差のみ算出する。
一方、領域分割タスクでは、各層の出力結果を入力画像のサイズにリサイズして結合する。具体的には、畳み込み処理1301による64×64×96のサイズの出力結果1331を入力画像サイズである256×256のサイズにリサイズする。リサイズされた結果は256×256×96となる。リサイズ処理方法は最近傍処理などでよい。また、畳み込み処理1303による64×64×128のサイズの出力結果1332、及び畳み込み処理1306による32×32×256のサイズの出力結果1334も、同様の方法でリサイズされる。リサイズされた出力結果はチャンネル方向に結合することにより256×256×480の出力結果1336となる。その出力結果1336を入力として、識別層1319で処理を行い識別結果1320が256×256のサイズで出力される。そのため、識別層1319で用いるフィルタ(カーネル)のサイズは、例えば、1×1×480×1で表される。この処理により256×256の各点に対して識別結果が出力されるので、学習時には入力画像サイズと同じサイズの教師値を用意して、各画素に対してソフトマックス(softmax)誤差を算出することで学習される。
図11(a)に戻り、次にニューラルネットワーク(NN)評価工程S1103にて、NN評価部1003が、評価データ保持部1008に保持されている評価データを用いて、NN学習工程S1102において学習されたニューラルネットワークの評価を行う。本実施形態では、学習データの他に評価データを保持しているものとするが、学習データの一部を用いて評価してもよい。NN評価部1003によるニューラルネットワークの評価結果は、学習パラメータ設定部1004及び表示部1005に送信される。表示部1005上では、ニューラルネットワークの学習結果及びその評価結果をユーザが確認することができる。次に、ステップS1104にて、その評価結果に基づいてニューラルネットワークの学習を継続するか否かを決定する。
ここで、本実施形態におけるNN評価部1003によるニューラルネットワークの評価では、複数の認識タスクの学習精度及びある所定間隔での学習精度の変位量を評価する。各認識タスクに対する学習精度は、評価データに対する誤差を用いることにする。誤差の算出方法は、学習時に学習データに対して算出している方法と同様でよい。各認識タスクに対する評価データに対する学習精度は、例えば図14に示すように得られる。図14は、NN学習工程S1102において学習されたニューラルネットワークで評価データを評価した際の誤差をプロットしたものであり、各学習時間tで得られるニューラルネットワークによる評価データに対する誤差をLoss(t)で示している。図14において、1401及び1402は、各認識タスクにおける評価データに対する誤差を示している。各認識タスクにおける評価データに対する誤差が、いずれも所定のしきい値より小さい場合には、ステップS1104において学習を終了すると判断する。一方、評価データに対する誤差が所定のしきい値よりも大きい場合には、ステップS1104において学習を継続すると判断する。そして、次のニューラルネットワーク(NN)学習パラメータ設定工程S1105で、評価データに対する誤差を用いてニューラルネットワークの学習パラメータを設定する。
NN学習パラメータ設定工程S1105では、学習パラメータ設定部1004が、NN評価工程S1103において評価された結果(評価データに対する誤差)に基づいて、ニューラルネットワークの学習パラメータを設定する。設定された学習パラメータは、NN学習部1002に送信される。その後、設定された学習パラメータで再度NN学習工程S1102及びNN評価工程S1103の処理を行い、学習終了か否かの判定を行って終了すると判定した場合には学習処理を終了する。
ここで学習パラメータとは、各認識タスクに対する重要度や学習率、各認識タスクに関連するニューラルネットワークの層の学習率などがあげられる。各認識タスクに対する重要度とは、学習時に各認識タスクに対する誤差に重みつけされる値であり、重要度が大きいとその認識タスクに対してより学習される。本実施形態では、例えば図15に示すように学習時間tで得られる誤差Loss(t)と、学習時間tよりある所定時間前の学習時間t’で得られる誤差Loss(t’)とを用いて重要度Wを算出する。ニューラルネットワークの場合には、学習時間として、ミニバッチ学習回数(iteration)を用いてもよいし、すべての学習データに対して何回学習が行われたかを表すエポック(epoch)数を用いてもよい。重要度Wは、下記(式2)によって各認識タスクについて算出する。
W=α・Loss(t)+β/(ΔLoss+γ) …(式2)
なお、(式2)において、α、β、γは、0~1の実数で表される定数である。また、ΔLossは、下記(式3)のように表され、単位時間あたりの誤差の変位量を表している。
ΔLoss=|Loss(t)-Loss(t’)|/(t-t’) …(式3)
また、下記(式4)に示すように重要度Wを所定時間の間での総和を基に取得してもよい。
W=Σ(α・Loss(t)+β/(ΔLoss+γ)) …(式4)
これは、例えば図16に示すように認識タスクに対する誤差が、ある範囲を振動していて学習が進まない場合に、重要度Wを大きい値にすることによりニューラルネットワークの学習を促進する。
前述した例では、物体検出タスクである場合には、ROI領域の位置及びサイズと、学習データの対象物体の位置及びサイズに関する回帰誤差に対して重要度Wを積算する。領域分割タスクである場合には、出力結果の各画素に対して算出されるソフトマックス(softmax)誤差に重要度Wを積算する。物体検出タスクに関する回帰誤差をEr、領域分割タスクに関するソフトマックス(softmax)誤差をEsとし、それぞれのタスクに関する重要度をWr、Wsとすれば、誤差の総和であるEは下記(式5)のように表される。
E=Wr・Er+Ws・Es …(式5)
(Wr+Ws=1)
このようにして算出された重要度Wで重みづけした誤差によって誤差逆伝播法によりニューラルネットワークを学習すればよい。
なお、ここでは算出された重要度Wを誤差に対して積算したが、下記(式6)に示すように重要度W、学習時間tを入力とする関数を定義して、学習時間毎に重要度を変化させてもよい。
W=f(W、t) …(式6)
その際も各認識タスクの重要度の総和が1になるように正規化しておく。この重要度Wを用いてNN学習工程S1102においてニューラルネットワークの学習を再度行う。なお、本実施形態では評価データに対する各学習時間の誤差を用いたが、他の評価値を用いてもよい。例えば、評価データの正解率を用いる場合でも、評価データに対する正解率と再現率から算出されるF値や、所定の誤検出率のときの再現率などを算出してもよい。もしくは各認識タスクの評価データのサンプルに対する識別結果から統計量を算出してもよい。
また、各認識タスクの評価データに対する各学習時間の誤差を表示部1005に表示して、その誤差を見てユーザが重要度を設定してもよい。また、本実施形態では学習したニューラルネットワークの評価データに対する誤差を用いて、次のニューラルネットワークの学習時のパラメータを一つ設定している。評価データに対する誤差に基づいて複数の学習パラメータを設定し、それぞれの学習パラメータにおいて所定時間のニューラルネットワークの学習後に最も識別精度の高いニューラルネットワークを選択してもよい。また、ニューラルネットワークに学習させる複数の認識タスクのうち、選択した認識タスクの識別精度に基づいて学習パラメータを設定するようにしてもよい。
第1の実施形態によれば、情報処理装置130がニューラルネットワークに学習させる2つ以上の認識タスクを設定して、その認識タスクの学習結果を評価してニューラルネットワークの学習パラメータを設定する。これらの処理により、ニューラルネットワークに2つ以上の認識タスクを学習させる場合に、学習パラメータを適切に設定して複数の認識タスクに係る学習を行うことができ、識別精度の高いニューラルネットワークを効率よく学習することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第2の実施形態においては、第1の実施形態の処理に加えて、複数の認識タスクのうち、いくつかのタスクを他のタスクから生成する。以下では、生成する側の認識タスクをメインタスクと呼び、生成される側の認識タスクをサブタスクと呼ぶこととする。例えば、メインタスクが物体検出タスクであった場合に、サブタスクを対象の物体が画像上に存在するか否かを識別するタスク(画像分類タスク)に設定する。メインタスクの教師値は学習データ内の対象物体の位置を表すデータが入力されているため、その画像内に対象の物体が存在するか否かについてのサブタスクにおける教師値は自動的に生成することができる。メインタスクである物体検出タスクの精度が向上するように、メインタスク及びサブタスクの学習パラメータを設定する。
ここで、多層ニューラルネットワークを学習する場合、学習するパラメータが多いために学習データや学習する認識タスクによっては学習が発散することや、局所最適解(local minimum)に収束してしまうことがある。本実施形態では、学習したい認識タスク(メインタスク)の他にサブタスクを設定し、そのメインタスクとサブタスクを学習する学習パラメータを調整することでメインタスクの学習精度を向上させる。サブタスクの教師値はメインタスクの教師値を基に生成するため、サブタスクのクラス定義はメインタスクのクラス定義を包含したものになる。したがって、メインタスクとサブタスクを比較した場合、サブタスクのほうが認識タスクとしては易しい問題となる。そのため、学習初期の段階ではサブタスクの重要度を高く設定し、メインタスクの重要度を低く設定することでニューラルネットワークの学習が促進される。また、学習が進むにつれてサブタスクの重要度を下げて、メインタスクの重要度を上げることでメインタスクの学習を促進する。
第2の実施形態において、画像を識別する際の処理は、第1の実施形態と同様であるので、以下では学習時の処理について説明する。ただし、第2の実施形態におけるNN出力工程T902では、メインタスクを基に生成されたサブタスクの識別結果を出力せずに、学習時に設定したメインタスクの識別結果のみを出力するようにしてもよい。
図10(b)は、第2の実施形態における情報処理装置130の機能構成例を示す図である。図10(b)には、情報処理装置130における学習処理に係る機能構成を示している。図10(b)において、図10(a)に示したブロックと同一の機能を有するブロックには同一の符号を付し、重複する説明は省略する。
第2の実施形態における情報処理装置130は、マルチタスク設定部1001、NN学習部1002、NN評価部1003、学習パラメータ設定部1004、及び表示部1005を有する。また、第2の実施形態における情報処理装置130は、パラメータ保持部1006、学習データ保持部1007、及び評価データ保持部1008に加え、サブタスク教師値設定部1009を有する。マルチタスク設定部1001、NN学習部1002、NN評価部1003、学習パラメータ設定部1004、及びサブタスク教師値設定部1009は、情報処理装置130のCPU501がROM503等に格納されたプログラムを実行することで実現される。
図11(b)は、第2の本実施形態における情報処理装置130で実行される学習処理の一例を示すフローチャートである。学習処理を開始すると、まずマルチタスク設定工程S1111にて、マルチタスク設定部1001が、第1の実施形態と同様にニューラルネットワークに学習させる2つ以上の認識タスクを設定する。本実施形態では、複数の認識タスクのうち、1つ以上の認識タスクの定義及び教師値(サブタスク)を他のタスクの定義及び教師値から生成する。そのため、マルチタスク設定工程S1111では、マルチタスク設定部1001は、メインタスクとなる認識タスクから定義及び教師値を生成することができるサブタスクを設定する必要がある。本実施形態では、メインタスクを物体検出タスクに設定して、サブタスクを対象の物体が画像上に存在するか否かを判別する画像分類タスクに設定して、これら複数の認識タスクを学習する例について説明する。
なお、マルチタスク設定工程S1111において設定するサブタスクは、メインタスクの学習データから生成できるものであれば任意である。例えば、メインタスクを物体検出タスクに設定して、サブタスクを所定の範囲の位置もしくはサイズである対象の物体が画像上に存在するか否かの画像分類タスクに設定してもよい。もしくはメインタスクと同様にサブタスクを物体検出タスクとするが、位置の定義を量子化してもよい。他にもメインタスクが1000クラスの画像分類タスクである場合に、そのクラス定義をいくつか包含したクラスを定義し、例えば20クラスの画像分類タスクをサブタスクとしてもよい。包含したクラス定義はユーザが設定してもよいし、画像特徴などを用いて学習データをクラスタリングして定義してもよい。
次に、サブタスク教師値設定工程S1112にて、サブタスク教師値設定部1009が、マルチタスク設定工程S1111において設定された認識タスクのうちのサブタスクの学習データの教師値を設定する。本実施形態では、メインタスクは物体検出タスクであり、サブタスクは対象の物体に係る画像分類タスクであるため、サブタスクの教師値は、学習データ保持部1007に保持されている学習データから自動生成することができる。対象の物体の位置及びサイズが1つ以上付与されている学習データは、対象の物体が画像上に存在する画像となる。
次に、設定された学習データの教師値を用いて、NN学習工程S1113にてニューラルネットワークの学習を行う。なお、NN学習工程S1113、NN評価工程S1114、及びステップS1115での処理は、第1の実施形態におけるNN学習工程S1102、NN評価工程S1103、及びステップS1104での処理と同様であるので、その説明は省略する。
次に、NN学習パラメータ設定工程S1116の処理について説明する。NN学習パラメータ設定工程S1116での処理は、第1の実施形態におけるNN学習パラメータ設定工程S1105での処理とほぼ同様であるが、メインタスクの学習精度を向上させるようにニューラルネットワークの学習パラメータを設定する。
図17に、メインタスク及びサブタスクの各学習時間で得られる評価データに対する誤差とそれに基づいて設定した重要度の一例を示す。図17(a)には、メインタスクの評価データに対する誤差1701、及びサブタスクの評価データに対する誤差1702を示している。また、図17(b)には、メインタスクの重要度1703、及びサブタスクの重要度1704を示している。例えば、第1の実施形態と同様にして、学習時間tにおいて、メインタスク、サブタスクの評価データに対する誤差により重要度を算出して、メインタスク及びサブタスクの誤差に積算してニューラルネットワークでの学習を行う。サブタスクに対する重要度をWsub、メインタスクに対する重要度をWmainとして、それぞれのタスクに関する誤差をEsub、Emainとすれば、誤差の総和Eは下記(式7)のように表される。
E=Wsub・Esub+Wmain・Emain …(式7)
メインタスクに対する重要度を大きく設定すれば、メインタスクに対しての学習が促進されるので、図17(b)に示すように徐々にサブタスクに対する重要度をさげ、メインタスクの重要度をあげることでメインタスクの学習精度を向上させることができる。この重要度を用いてNN学習工程S1113においてニューラルネットワークの学習を再度行った後、NN評価工程S1114においてニューラルネットワークの評価を再度行う。このNN学習パラメータ設定工程S1116、NN学習工程S1113、NN評価工程S1114での処理を学習終了と判定するまで繰り返し行う。
なお、認識タスクの評価データに対する各学習時間の誤差を表示部1005に表示して、その誤差を見てユーザが重要度を設定してもよい。また、学習時の誤差を用いて各認識タスクの重要度を設定したが、学習初期の段階ではサブタスクの重要度を大きくしたほうがニューラルネットワークの学習が促進されやすい。そこで、所定の学習時間まではサブタスクの重要度を大きく、メインタスクの重要度を小さく設定して、所定時間からタスクの評価データに対する誤差を用いて調整するようにしてもよい。
第2の実施形態によれば、情報処理装置130がニューラルネットワークに学習させるメインタスク及びそのメインタスクから生成できるサブタスクを設定する。その設定されたメインタスク及びサブタスクに係る学習を行い、そのメインタスクの学習結果を評価してニューラルネットワークの学習パラメータを設定する。これらの処理により、メインタスクに対して識別精度の高いニューラルネットワークを効率よく学習することができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。第3の実施形態においては、前述した第1及び第2の実施形態とは異なり、ニューラルネットワークとは異なる識別器を学習する。識別器は、例えば、サポートベクタマシン(SVM)や線形判別器等である。SVM等の識別器は、一般的に学習時にはバッチ処理と呼ばれる学習データのすべてを用いて学習を行う。一方、ニューラルネットワークの学習はミニバッチ処理と呼ばれる学習データの一部のデータを用いて学習(パラメータの更新)を随時行う。SVM等の識別器も非特許文献7に開示されているような技術を用いてオンライン学習する場合には、第1の実施形態や第2の実施形態において説明したように学習精度を評価して学習パラメータを決定することができる。また、通常のバッチ処理による学習の場合でも、学習結果を評価して再度学習する際の学習パラメータを決定することができる。その方法については後述する。
まず、識別対象画像を識別する際の処理について説明する。
図8(b)は、第3の実施形態における情報処理装置120の機能構成例を示す図である。図8(b)には、情報処理装置120における識別処理に係る機能構成を示している。また、図8(b)には、情報処理装置120が有する機能ブロックの他に、カメラ10に相当し、識別対象画像を取得する撮影部810も合わせて図示している。第3の実施形態における情報処理装置120は、識別器入力部811、識別器出力部812、及びパラメータ保持部813を有する。識別器入力部811及び識別器出力部812は、情報処理装置120のCPU501がROM503や記憶部504に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部813は、不揮発性の記憶装置として情報処理装置120と接続された構成としてもよい。
図9(b)は、第3の実施形態における情報処理装置120で実行される識別処理の一例を示すフローチャートである。識別処理を開始すると、識別器入力工程T911にて、識別器入力部811が、撮影部810によって撮影された画像を識別対象画像として取得する。なお、識別対象画像は、図示しない外部装置に格納されている画像であってもよく、その場合には識別器入力部811は、外部装置から読み出された画像を識別対象画像として取得する。外部装置に格納されている画像は、例えば撮影部810等で予め撮影された画像であってもよいし、ネットワーク等を経由するなどの他の方法で取得されてから格納された画像であってもよい。識別器入力部811で取得された識別対象画像は、識別器出力部812に送信される。
次に、識別器出力工程T912にて、識別器出力部812が、識別器入力工程T911において入力された識別対象画像を、識別器を用いて識別し識別結果を出力する。なお、識別結果は、後述する学習処理内のマルチタスク設定工程S1121において設定された複数の認識タスクに対してそれぞれ出力してもよいし、その複数の認識タスクのうち設定した所定の認識タスクのみの出力結果を出力してもよい。
次に、本実施形態において用いられる識別器を学習する際の処理(学習処理)について説明する。図10(c)は、第3の実施形態における情報処理装置130の機能構成例を示す図である。図10(c)には、情報処理装置130における学習処理に係る機能構成を示している。第3の実施形態における情報処理装置130は、マルチタスク設定部1011、識別器学習部1012、識別器評価部1013、学習パラメータ設定部1014、及び表示部1015を有する。また、第3の実施形態における情報処理装置130は、パラメータ保持部1006、学習データ保持部1007、及び評価データ保持部1008を有する。
マルチタスク設定部1011、識別器学習部1012、識別器評価部1013、及び学習パラメータ設定部1014は、情報処理装置130のCPU501がROM503や記憶部504に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部1006、学習データ保持部1007、及び評価データ保持部1008の一部又は全部は、不揮発性の記憶装置として情報処理装置130と接続された構成としてもよい。本実施形態では、情報処理装置130において学習データ保持部1007に保持されているデータにより複数の認識タスクに対して学習を行った後に、識別器を評価して学習パラメータを設定する。しかし、これに限定されず、予め学習された識別器を保持しておいて、識別器を評価してもよい。
図11(c)は、第3の実施形態における情報処理装置130で実行される学習処理の一例を示すフローチャートである。学習処理を開始すると、まずマルチタスク設定工程S1121にて、マルチタスク設定部1011が、識別器に学習させる少なくとも2つ以上の認識タスクを設定する。設定された複数の認識タスクに関する情報は識別器学習部1012に送信される。なお、マルチタスク設定部1011は、表示部1015に接続されており、設定された認識タスクを表示部1015上で表示することによりユーザが確認することが可能となっている。
次に、識別器学習工程S1122にて、識別器学習部1012が、設定された識別器の学習パラメータで、学習データ保持部1007に保持されている学習データを用いて識別器に学習させる。識別器学習工程S1122では、マルチタスク設定工程S1121においてマルチタスク設定部1011が設定した複数の認識タスクに関して学習を行う。本実施形態では、簡単のため、識別器として線形判別器を用いるとする。学習された識別器は識別器評価部1013に送信される。
線形判別器は、識別器に入力される特徴量から直接クラスを推定する。その際に、フィッシャーの線形判別に基づいて射影することでクラス分離がしやすくなる。フィッシャーの線形判別ではKクラス認識問題において、同じクラスに属するデータ内での変動(クラス内分散)を最小化し、各クラスの平均データ間の変動(クラス間分散)を最大化する(K-1)個の判別ベクトルV={V1、…、V(k-1)}を求める。これには、N個のデータに対して、クラス間分散行列Sbとクラス内分散行列Swを求め、下記(式8)に示すクラス分離度J(V)を最大化するVを求めることになる。
J(V)=tr{(VTwV)-1((VTbV)} …(式8)
ここで、tr{・}は行列のトレースを表す。
(式8)に示したクラス分離度J(V)を最大にするVは、一般化固有値問題を解くことにより求められる。2つの認識タスクがある場合、各認識タスクに対してクラス間分散を大きくし、クラス内分散を小さくすればよい。それぞれの認識タスクに対するクラス間分散行列をS1b、S2bとし、クラス内分散行列をS1w、S2wとすれば、下記(式9)のように表される。
J(V)=tr{(VT1wV)-1((VT1bV)+(VT2wV)-1((VT2bV)} …(式9)
識別時には、求められた判別ベクトルVを用いて、入力xに対して下記(式10)に示すようにクラス分類結果yを求める。
y(x)=VTx+V0 …(式10)
さらに、一般的に事後確率を予測するために、下記(式11)に示すように非線形関数f(・)によって一般化する。f(・)を活性化関数(activation function)とよぶ。
y(x)=f(VTx+V0) …(式11)
次に、識別器評価工程S1113にて、識別器評価部1013が、評価データ保持部1008に保持されている評価データを用いて、識別器学習工程S1122において学習された識別器の評価を行う。本実施形態では、学習データの他に評価データを保持しているものとするが、学習データの一部を用いて評価してもよい。識別器評価部1013による識別器の評価結果は、学習パラメータ設定部1014及び表示部1015に送信される。表示部1015上では、識別器の学習結果及びその評価結果をユーザが確認することができる。
次に、ステップS1114にて、識別器評価工程S1113における識別器評価部1013による評価結果に基づいて識別器の学習を継続するか否かを判定する。識別器の学習を継続すると判定した場合には、次の識別器学習パラメータ設定工程S1115に進み、識別器の学習を継続しない、すなわち学習を終了すると判定した場合には、学習処理を終了する。
識別器学習パラメータ設定工程S1115では、学習パラメータ設定部1014が、識別器評価工程S1113において評価された結果に基づいて、識別器の学習パラメータを設定する。設定された学習パラメータは、識別器学習部1012に送信される。その後、設定された学習パラメータで再度識別器学習工程S1112及び識別器評価工程S1113の処理を行い、学習終了か否かの判定を行って終了すると判定した場合には学習処理を終了する。
ここで、バッチ学習した場合の識別器評価工程S1113及び識別器学習パラメータ設定工程S1115での処理について説明する。本実施形態では、識別器学習工程S1113において、識別器評価部1013は、学習された識別器の評価データに対する正解率を評価する。識別器学習パラメータ設定工程S1115では、学習パラメータ設定部1014は、識別器評価工程S1113において評価された各認識タスクの正解率に基づいて重要度Wを下記(式12)に示すように算出する。
W=α・(1-正解率(t))+β …(式12)
なお、(式12)において、α、βは定数である。ここで、tは学習時間ではなく、学習回数を示している。この(式12)により算出された重要度Wを用いて再度識別器を学習する。具体的には、下記(式13)のように判別ベクトルVを求める際に各認識タスクの重要度W1、W2を用いる。
J(V)=tr{W1(VT1wV)-1(VT1bV)+W2(VT2wV)-1(VT2bV)} …(式13)
その他の処理は、第1の実施形態や第2の実施形態と同様である。
第3の実施形態によれば、情報処理装置130が識別器に学習させる2つ以上の認識タスクを設定して、その認識タスクの学習結果を評価して識別器の学習パラメータを設定する。これらの処理により、2つ以上の認識タスクを学習させる場合に、学習パラメータを適切に設定して複数の認識タスクに係る学習を行うことができ、識別精度の高い識別器を効率よく学習することができる。
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
110:カメラ 115:ネットワーク 120、130:情報処理装置 501:CPU 502:RAM 503:ROM 504:記憶部 1001、1011:マルチタスク設定部 1002:ニューラルネットワーク学習部 1003:ニューラルネットワーク評価部 1004、1014:学習パラメータ設定部 1005、1015:表示部 1006:パラメータ保持部 1007:学習データ保持部 1008:評価データ保持部 1009:サブタスク教師値設定部 1012:識別器学習部 1013:識別器評価部

Claims (17)

  1. ューラルネットワークに学習させる複数の認識タスクを設定するタスク設定手段と、
    学習データを前記ニューラルネットワークに入力した際の前記複数の認識タスクの出力結果と教師値との誤差に基づいて、前記複数の認識タスクを前記ニューラルネットワークに学習させる学習手段と、
    前記学習手段による前記ニューラルネットワークの学習結果を評価する評価手段と、
    前記評価手段での評価結果に基づいて、前記学習手段による学習において前記誤差に対する重み付け度合いを認識タスクごとに設定するパラメータ設定手段とを有することを特徴とする情報処理装置。
  2. 前記評価手段は、前記ニューラルネットワークでの前記認識タスクの学習精度を評価することを特徴とする請求項1に記載の情報処理装置。
  3. 前記評価手段は、前記ニューラルネットワークでの前記認識タスクの学習精度の所定間隔での変位量を評価することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記タスク設定手段は、前記複数の認識タスクとして、前記ニューラルネットワークに学習させる第1の認識タスク、及び前記第1の認識タスクから生成した第2の認識タスクを設定し、
    前記パラメータ設定手段は、前記学習手段による学習が進むにつれて、前記第1の認識タスクの前記重み付け度合いを大きくする、及び、前記第2の認識タスクの前記重み付け度合いを小さくする、のうち少なくとも一方を実行することを特徴とする請求項1~の何れか1項に記載の情報処理装置。
  5. 前記第2の認識タスクの教師値を、前記第1の認識タスクの学習データ及び教師値に基づいて設定する教師値設定手段を有することを特徴とする請求項に記載の情報処理装置。
  6. ニューラルネットワークに学習させる複数の認識タスクを設定するタスク設定手段と、
    前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記ニューラルネットワークに学習させる学習手段と、
    前記学習手段による前記ニューラルネットワークの学習結果を評価する評価手段と、
    前記評価手段での評価結果に基づいて、前記ニューラルネットワークに前記複数の認識タスクを学習させる際の重要度を設定するパラメータ設定手段とを有し、
    前記評価手段は、前記ニューラルネットワークでの前記認識タスクの学習精度の所定間隔での変位量を評価することを特徴とする情報処理装置。
  7. 前記評価手段は、前記認識タスクの学習データとは異なる評価データを用いて、前記ニューラルネットワークの学習結果の評価を行うことを特徴とする請求項1~6の何れか1項に記載の情報処理装置。
  8. 前記評価手段は、前記認識タスクの学習データを用いて、前記ニューラルネットワークの学習結果の評価を行うことを特徴とする請求項1~6の何れか1項に記載の情報処理装置。
  9. 前記タスク設定手段が設定する前記複数の認識タスクは、被写体が画像内に存在するか否かを識別する画像分類タスク、被写体の位置を検出する物体検出タスク、及び被写体領域を抽出する領域分割タスクのうちの少なくとも1つのタスクを含むことを特徴とする請求項1~8の何れか1項に記載の情報処理装置。
  10. 前記パラメータ設定手段は、前記ニューラルネットワークに学習させる前記複数の認識タスクのうち、選択した前記認識タスクの学習精度に基づいて重要度を設定することを特徴とする請求項1~9の何れか1項に記載の情報処理装置。
  11. 前記タスク設定手段により設定された前記認識タスク及び前記評価手段での評価結果の少なくとも一方を表示する表示手段を有することを特徴とする請求項1~10の何れか1項に記載の情報処理装置。
  12. 請求項1~11の何れか1項に記載の情報処理装置により学習された前記ニューラルネットワークの構造及び重要度の情報を保持する保持手段と、
    前記保持手段に保持されている情報に応じた前記ニューラルネットワークに識別対象画像を入力する入力手段と、
    記ニューラルネットワークによる前記識別対象画像の識別結果を出力する出力手段とを有することを特徴とする情報処理装置。
  13. 識別器に学習させる複数の認識タスクを設定するタスク設定手段と、
    学習データを前記識別器に入力した際の前記複数の認識タスクの出力結果と教師値との誤差に基づいて、前記複数の認識タスクを前記識別器に学習させる学習手段と、
    前記学習手段による前記識別器の学習結果を評価する評価手段と、
    前記評価手段での評価結果に基づいて、前記学習手段による学習において前記誤差に対する重み付け度合いを認識タスクごとに設定するパラメータ設定手段とを有することを特徴とする情報処理装置。
  14. ューラルネットワークに学習させる複数の認識タスクを設定するタスク設定工程と、
    学習データを前記ニューラルネットワークに入力した際の前記複数の認識タスクの出力結果と教師値との誤差に基づいて、前記複数の認識タスクを前記ニューラルネットワークに学習させる学習工程と、
    前記学習工程による前記ニューラルネットワークの学習結果を評価する評価工程と、
    前記評価工程での評価結果に基づいて、前記学習工程による学習において前記誤差に対する重み付け度合いを認識タスクごとに設定するパラメータ設定工程とを有することを特徴とする情報処理方法。
  15. 識別器に学習させる複数の認識タスクを設定するタスク設定工程と、
    学習データを前記識別器に入力した際の前記複数の認識タスクの出力結果と教師値との誤差に基づいて、前記複数の認識タスクを前記識別器に学習させる学習工程と、
    前記学習工程による前記識別器の学習結果を評価する評価工程と、
    前記評価工程での評価結果に基づいて、前記学習工程による学習において前記誤差に対する重み付け度合いを認識タスクごとに設定するパラメータ設定工程とを有することを特徴とする情報処理方法。
  16. ューラルネットワークに学習させる複数の認識タスクを設定するタスク設定ステップと、
    学習データを前記ニューラルネットワークに入力した際の前記複数の認識タスクの出力結果と教師値との誤差に基づいて、前記複数の認識タスクを前記ニューラルネットワークに学習させる学習ステップと、
    前記学習ステップによる前記ニューラルネットワークの学習結果を評価する評価ステップと、
    前記評価ステップでの評価結果に基づいて、前記学習ステップによる学習において前記誤差に対する重み付け度合いを認識タスクごとに設定するパラメータ設定ステップとをコンピュータに実行させるためのプログラム。
  17. 識別器に学習させる複数の認識タスクを設定するタスク設定ステップと、
    学習データを前記識別器に入力した際の前記複数の認識タスクの出力結果と教師値との誤差に基づいて、前記複数の認識タスクを前記識別器に学習させる学習ステップと、
    前記学習ステップによる前記識別器の学習結果を評価する評価ステップと、
    前記評価ステップでの評価結果に基づいて、前記学習ステップによる学習において前記誤差に対する重み付け度合いを認識タスクごとに設定するパラメータ設定ステップとをコンピュータに実行させるためのプログラム。
JP2018085259A 2018-04-26 2018-04-26 情報処理装置、情報処理方法及びプログラム Active JP7166784B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018085259A JP7166784B2 (ja) 2018-04-26 2018-04-26 情報処理装置、情報処理方法及びプログラム
US16/389,546 US11113576B2 (en) 2018-04-26 2019-04-19 Information processing apparatus for training neural network for recognition task and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018085259A JP7166784B2 (ja) 2018-04-26 2018-04-26 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2019192009A JP2019192009A (ja) 2019-10-31
JP7166784B2 true JP7166784B2 (ja) 2022-11-08

Family

ID=68291196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018085259A Active JP7166784B2 (ja) 2018-04-26 2018-04-26 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US11113576B2 (ja)
JP (1) JP7166784B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055854B2 (en) * 2018-08-23 2021-07-06 Seoul National University R&Db Foundation Method and system for real-time target tracking based on deep learning
WO2021151277A1 (zh) * 2020-05-26 2021-08-05 平安科技(深圳)有限公司 目标物损伤程度判定方法、装置、电子设备及存储介质
AU2021289232A1 (en) * 2020-06-09 2023-01-19 Annalise-Ai Pty Ltd Systems and methods for automated analysis of medical images
JP6872214B1 (ja) * 2020-08-20 2021-05-19 株式会社医療情報技術研究所 分類システム
CN112686996A (zh) * 2020-12-28 2021-04-20 北京像素软件科技股份有限公司 游戏山脉地形创建方法、模型训练方法及相关装置
JP2022133872A (ja) * 2021-03-02 2022-09-14 株式会社Jvcケンウッド 機械学習装置、推論装置、機械学習方法、および機械学習プログラム
CN113086799B (zh) * 2021-04-09 2022-01-04 新沂慧科智能科技有限公司 一种基于图像识别的电梯故障检测及预警方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016006626A (ja) 2014-05-28 2016-01-14 株式会社デンソーアイティーラボラトリ 検知装置、検知プログラム、検知方法、車両、パラメータ算出装置、パラメータ算出プログラムおよびパラメータ算出方法
JP2017084320A (ja) 2015-03-06 2017-05-18 パナソニックIpマネジメント株式会社 学習方法およびプログラム
US20170236057A1 (en) 2016-02-16 2017-08-17 Carnegie Mellon University, A Pennsylvania Non-Profit Corporation System and Method for Face Detection and Landmark Localization
JP2017211799A (ja) 2016-05-25 2017-11-30 キヤノン株式会社 情報処理装置および情報処理方法
JP2018026040A (ja) 2016-08-12 2018-02-15 キヤノン株式会社 情報処理装置および情報処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100442835B1 (ko) * 2002-08-13 2004-08-02 삼성전자주식회사 인공 신경망을 이용한 얼굴 인식 방법 및 장치
JP5025893B2 (ja) * 2004-03-29 2012-09-12 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US8904312B2 (en) * 2006-11-09 2014-12-02 Navisense Method and device for touchless signing and recognition
CN106548127B (zh) * 2015-09-18 2022-11-04 松下电器(美国)知识产权公司 图像识别方法
JP6656357B2 (ja) * 2016-04-04 2020-03-04 オリンパス株式会社 学習方法、画像認識装置およびプログラム
WO2018213841A1 (en) * 2017-05-19 2018-11-22 Google Llc Multi-task multi-modal machine learning model
US11315019B2 (en) * 2017-11-15 2022-04-26 Google Llc Learning neural network structure

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016006626A (ja) 2014-05-28 2016-01-14 株式会社デンソーアイティーラボラトリ 検知装置、検知プログラム、検知方法、車両、パラメータ算出装置、パラメータ算出プログラムおよびパラメータ算出方法
JP2017084320A (ja) 2015-03-06 2017-05-18 パナソニックIpマネジメント株式会社 学習方法およびプログラム
US20170236057A1 (en) 2016-02-16 2017-08-17 Carnegie Mellon University, A Pennsylvania Non-Profit Corporation System and Method for Face Detection and Landmark Localization
JP2017211799A (ja) 2016-05-25 2017-11-30 キヤノン株式会社 情報処理装置および情報処理方法
JP2018026040A (ja) 2016-08-12 2018-02-15 キヤノン株式会社 情報処理装置および情報処理方法

Also Published As

Publication number Publication date
JP2019192009A (ja) 2019-10-31
US20190332898A1 (en) 2019-10-31
US11113576B2 (en) 2021-09-07

Similar Documents

Publication Publication Date Title
JP7166784B2 (ja) 情報処理装置、情報処理方法及びプログラム
US10684681B2 (en) Neural network image processing apparatus
JP4767595B2 (ja) 対象物検出装置及びその学習装置
JP6664163B2 (ja) 画像識別方法、画像識別装置及びプログラム
US9104907B2 (en) Head-pose invariant recognition of facial expressions
JP4575917B2 (ja) 構成要素に基づいて構成された物体を識別するシステムを訓練するシステム、方法及びプログラム
JP6032921B2 (ja) 物体検出装置及びその方法、プログラム
US20220148328A1 (en) Pedestrian detection method and apparatus, computer-readable storage medium, and chip
CN113302620A (zh) 使用机器学习模型确定对象与人之间的关联
KR102306658B1 (ko) 이종 도메인 데이터 간의 변환을 수행하는 gan의 학습 방법 및 장치
JP7228961B2 (ja) ニューラルネットワークの学習装置およびその制御方法
JP2018022360A (ja) 画像解析装置、画像解析方法およびプログラム
KR102476022B1 (ko) 얼굴검출 방법 및 그 장치
JP6185919B2 (ja) 人物検出モダリティ結果を融合して人物カウンティングを向上させる方法及びシステム
WO2016179808A1 (en) An apparatus and a method for face parts and face detection
JP2014093023A (ja) 物体検出装置、物体検出方法及びプログラム
US20220237943A1 (en) Method and apparatus for adjusting cabin environment
US9904843B2 (en) Information processing device, information processing method, and program
WO2012046426A1 (ja) 物体検出装置、物体検出方法および物体検出プログラム
JP2020123244A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2006268563A (ja) 個人認証装置、個人認証処理方法、そのためのプログラム及び記録媒体
JP2020126622A (ja) 非最大値抑制を学習する併合ネットワークを利用した異種センサ融合のための学習方法及び学習装置{learning method and learning device for heterogeneous sensor fusion by using merging network which learns non−maximum suppression}
WO2019171779A1 (ja) 物体検出装置、物体検出方法、およびプログラム
JP2021018477A (ja) 情報処理装置、情報処理方法、及びプログラム
JP7388258B2 (ja) アクセシビリティ判定装置、アクセシビリティ判定方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221026

R151 Written notification of patent or utility model registration

Ref document number: 7166784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151