【文献】
LEISTNER,C., ROTH P.M., GRABNER H., BISCHOF H., STARZACHER, A. and RINNER B.,Visual on-line Learning in Distributed Camera Networks,2008 Second ACM/IEEE International Conference on Distributed Smart Cameras,米国,IEEE [online],2008年09月30日,p.1-10
(58)【調査した分野】(Int.Cl.,DB名)
第2の識別手段が第2のモデル記憶手段に記憶されている個々のモデル毎に導出した識別結果を統合することによって、第1の識別手段が識別対象としたデータに対するラベルを特定する統合手段を備え、
学習手段は、
前記統合手段によって特定されたラベルと、前記データとを含む教師データを用いて、モデルを再学習し、
モデル送信手段は、
前記第1の識別手段が再学習された前記モデルを用いて導出した前記データの識別結果と、前記統合手段によって特定された前記データに対するラベルとが一致する場合に、再学習された前記モデルを第2の識別システムに送信する
請求項1に記載の識別システム。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態を図面を参照して説明する。
【0018】
図1は、本発明の識別システムが複数設けられている状況を示す模式図である。
図1では、6個の識別システム100が各所に設けられている場合を例示しているが、各所に設けられる識別システム100の数は、特に限定されない。本実施形態では、複数の識別システム100が同様の構成であるものとして説明する。
【0019】
各識別システム100は、例えば、通信ネットワークを介して、通信可能である。
【0020】
個々の識別システム100はそれぞれ、データ収集部(後述の
図3に示すデータ収集部101)を備える。各識別システム100のデータ収集部(
図1において図示略。後述の
図3を参照。)は、データを収集する各地に設置される。データ収集部は、データ収集部の設置場所におけるデータを収集する。例えば、データ収集部は、設置場所において画像や音声データを収集する。データ収集部は、カメラやマイクロホンによって実現される。例えば、データ収集部は、監視場所を撮影することによって画像を収集してもよい。また、例えば、設置場所において録音することによって音声データを収集してもよい。
【0021】
個々の識別システム100は、データ収集部とは別にコンピュータを備え、そのコンピュータは、データ(画像や音声データ等)が表わす物体を識別する。
【0022】
また、個々の識別システム100は、データ収集部が収集したデータを教師データとしてモデルを学習する。このモデルは、データが表わす物体を識別するためのモデルである。
【0023】
そして、各識別システム100は、モデルを提供し合い、他の識別システム100から提供されたモデルを利用して、自身のモデルを学習し直す。
【0024】
ここで、1つの識別システム100に着目した場合、着目している識別システム100に対してモデルを送信する他の識別システム100が予め定められている。着目している識別システム100に対してモデルを送信する他の識別システム100を、第1の識別システムと称する。本実施形態では、着目している識別システム100に対して、第1の識別システムが複数定められているものとして説明する。着目している識別システム100は、第1の識別システムからモデルの提供を受けると言うことができる。
【0025】
また、着目している識別システム100がモデルを送信するときの送信先となる他の識別システム100が予め定められている。着目している識別システム100がモデルを送信するときの送信先となる他の識別システム100を、第2の識別システムと称する。本実施形態では、着目している識別システム100に対して、第2の識別システムが1つまたは複数定められているものとして説明する。着目している識別システム100は、第2の識別システムにモデルを提供すると言うことができる。
【0026】
第1の識別システムおよび第2の識別システムは、個々の識別システム100毎に予め定められている。例えば、各識別システム100を管理する管理者が、個々の識別システム100毎に、第1の識別システムおよび第2の識別システムを予め定めておけばよい。
【0027】
各識別システム100は、同様の構成であるが、第1の識別システムおよび第2の識別システムは、識別システム100毎に個別に定められる。
【0028】
図2は、第1の識別システムおよび第2の識別システムの例を示す説明図である。ここでは、
図2に示す識別システム100aに着目するものとする。また、
図2において、矢印は、モデルが送られる方向を表わしている。
図2に示す例では、着目している識別システム100aに関して、識別システム100b,100cが第1の識別システムとして定められ、識別システム100b,100c,100dが第2の識別システムとして定められている。識別システム100b,100c,100dに関しても、それぞれ個別に、第1の識別システムおよび第2の識別システムが定められている。
【0029】
図3は、本発明の実施形態の識別システム100の構成例を示すブロック図である。識別システム100は、データ収集部101と、コンピュータ102とを備える。データ収集部101とコンピュータ102とは、有線または無線で通信可能に接続される。以下の説明では、データ収集部101がカメラである場合を例にして説明し、データ収集部101をカメラ101と記す。カメラ101は、そのカメラ101の設置場所から撮影を行う。なお、カメラ101の設置場所と、コンピュータ102の設置場所とが異なっていてもよい。
【0030】
コンピュータ102は、学習部103と、第1のモデル記憶部104と、データ取得部105と、第1の識別部106と、決定部107と、領域修正GUI(Graphical User Interface)表示制御部108と、領域抽出部109と、第2のモデル記憶部110と、モデル更新部121と、第2の識別部111と、表示制御部112と、属性データ記憶部113と、統合部114と、ディスプレイ装置115と、マウス116と、結果記憶部117と、モデル送信部122とを備える。
【0031】
学習部103は、カメラ101が撮影によって得た画像を教師データとして、機械学習によってモデルを学習する。以下、学習部103が、ディープラーニングによってモデルを学習する場合を例にして説明する。教師データは、例えば、カメラ101が撮影によって得た画像と、その画像に写っている物体を示すラベルとの組の集合である。ラベルは、識別システム100のオペレータが決定すればよい。学習は、そのような組の集合を教師データとして、モデルを学習(生成)する。
【0032】
また、学習部103は、所定の画像と、その画像に対するラベルが特定された場合、その画像とラベルの組を教師データに追加して、ディープラーニングによって、モデルを再学習する。所定の画像とは、後述の決定部107が、第2の識別部111に識別処理を実行させると決定した画像である。なお、本実施形態では、そのように決定された画像において、物体が写っている領域が抽出され、抽出された領域の画像とラベルとの組が教師データに追加される場合を例にして説明する。
【0033】
学習部103が学習によって生成したモデルを、以下、内部生成モデルと記す場合がある。また、後述するように、第2のモデル記憶部110は、
図3に示す識別システム100に対して予め定められている第1の識別システムで同様に生成されたモデルを記憶する。以下、内部生成モデルと区別するために、第1の識別システムで生成されたモデルを、外部生成モデルと記す場合がある。なお、後述のモデル更新部121が、第1の識別システムからモデルを受信し、そのモデルを、外部生成モデルとして第2のモデル記憶部110に記憶させる。
【0034】
内部生成モデルおよび外部生成モデルは、与えられた新たな画像に写っている物体を識別するためのモデルである。以下、内部生成モデルおよび外部生成モデルがいずれも、画像に写っている物体が「自動車」、「オートバイ」、「バス」、「背景(すなわち、自動車、オートバイおよびバスは写っていない。)」の何れであるかを判定するためのモデルであるものとして説明する。このようなモデルを学習する場合、オペレータは、教師データで画像と対になるラベルとして「自動車」、「オートバイ」、「バス」、「背景」のいずれかを画像毎に定める。また、外部生成モデルが第1の識別システムで生成される場合にも、第1の識別システムのオペレータは、教師データで画像と対になるラベルとして「自動車」、「オートバイ」、「バス」、「背景」のいずれかを画像毎に定める。
【0035】
本実施形態では、第1の識別部106が、モデルを用いて、画像に写っている物体が「自動車」、「オートバイ」、「バス」、「背景」の何れであるかを判定する場合を例にして説明するが、モデルを用いて判定される対象は、「自動車」、「オートバイ」、「バス」、「背景」に限られない。オペレータは、識別処理の目的に応じた教師データを用意して、その教師データを用いて学習部103にモデルを学習させればよい。なお、モデルを用いて判定される対象(本例では、「自動車」、「オートバイ」、「バス」および「背景」)は、各識別システム100で共通である。
【0036】
学習部103は、ディープラーニングによって生成した内部生成モデルを第1のモデル記憶部104に記憶させる。第1のモデル記憶部104は、内部生成モデルを記憶する記憶装置である。
【0037】
図4は、内部生成モデルおよび外部生成モデルの例を示す模式図である。モデルに適用される画像の画素数がnであるとすると、その画像は、n個の画素の各画素値を要素とするベクトル(X1,X2,・・・,Xn)
Tと表すことができる。例えば、X1は、画像における1番目の画素の画素値を表す。X2〜Xnに関しても同様である。また、ここで、Tは、転置を意味する。モデルは、複数の層を有し、層毎に複数の係数を含んでいる。
図4に示す例では、1番目の層は、係数a1〜amを含み、2番目の層は、係数b1〜bjを含んでいる。画像を表すベクトルの個々の要素X1〜Xnは、1番目の層の各係数a1〜amと関連付けられる。
図4では、この関連付けを線で表している。また、ある層の各係数は、その次の層の各係数と関連付けられる。
図4では、この関連付けも線で表している。関連付けられた要素間には重みが定められる。例えば、関連付けられたa1とb1や、関連付けられたa1とb2等にそれぞれ重みが定められる。
【0038】
学習部103は、教師データを用いてディープラーニングを行うことによって、層の数、各層に含まれる係数の数、各層における個々の係数の値、関連付けられた要素間の重みの値をそれぞれ決定する。これらの値が定めることが、内部生成モデルを生成することに該当する。
【0039】
教師データが異なれば、層の数、各層に含まれる係数の数、各層における個々の係数の値、関連付けられた要素間の重みの値は、変化する。従って、内部生成モデルおよび外部生成モデルは
図4に例示する形式のように表すことができるが、層の数、各層に含まれる係数の数、各層における個々の係数の値、関連付けられた要素間の重みの値等は、内部生成モデルと外部生成モデルとで異なる。また、本実施形態では、第2のモデル記憶部110は、複数の第1の識別システムで学習された個々の外部生成モデルをそれぞれ記憶する。個々の外部生成モデルも、それぞれ異なる識別システム100において異なる教師データに基づいて生成されているので、層の数等は、外部生成モデル毎に異なる。
【0040】
データ取得部105は、カメラ101が撮影によって得た新たな画像をカメラ101から取得する。データ取得部105は、カメラ101から画像を受信するためのインタフェースである。
【0041】
第1の識別部106は、データ取得部105が新たな画像をカメラ101から取得したときに、第1のモデル記憶部104に記憶されている内部生成モデルにその画像を適用することによって、その画像が表わす物体を識別する。本例では、第1の識別部106は、内部生成モデルに画像を適用することによって、画像に写っている物体が「自動車」であるのか、「オートバイ」であるのか、「バス」であるのか、あるいは、「背景」しか写っていないのかを判定する。
【0042】
画像が得られた場合、画像を表すベクトル(X1,X2,・・・,Xn)
Tが定まる。第1の識別部106は、そのベクトル(X1,X2,・・・,Xn)
Tと、内部生成モデルに含まれる各層の各係数およびモデルに含まれる各重みとを用いた演算により、「自動車」、「オートバイ」、「バス」、「背景」の信頼度を算出する。そして、第1の識別部106は、「自動車」、「オートバイ」、「バス」、「背景」のうち、最も高い信頼度が得られたラベルを、画像に写っている物体を示すラベルとして定める。例えば、第1の識別部106が、画像を表すベクトルをモデルに適用した結果、「自動車」、「オートバイ」、「バス」、「背景」それぞれの信頼度として、“0.6”、“0.2”、“0.1”、“0.1”が得られたとする。この場合、第1の識別部106は、画像に写っている物体は、最も高い信頼度“0.6”が得られた「自動車」であると識別する。また、定めたラベルが「背景」以外である場合、第1の識別部106は、画像に写っている物体(「自動車」、「オートバイ」または「バス」)を囲む矩形領域を、画像を表すベクトルと内部生成モデルとを用いた演算によって判定する。定めたラベルが「背景」であるということは、画像に物体が写っていないと判定したことを意味しているので、この場合には、第1の識別部106は、画像に写っている物体を囲む矩形領域を判定しない。
【0043】
第1の識別部106は、識別処理の対象とした画像と、識別結果に該当するラベルと、そのラベルに対応する信頼度とを対応付けて、結果記憶部117に記憶させる。例えば、上記の例のように、第1の識別部106が、画像に写っている物体が、最も高い信頼度“0.6”が得られた「自動車」であると判定したとする。この場合、第1の識別部106は、その画像と、ラベル「自動車」と、信頼度“0.6”とを対応付けて、結果記憶部117に記憶させる。結果記憶部117は、識別結果等を記憶する記憶装置である。ただし、結果記憶部117は、後述するように、画像内における矩形領域を示す情報等も追加して記憶する。
【0044】
第2のモデル記憶部110は、内部生成モデル(学習部103が生成したモデル)とは異なるモデルを記憶する記憶装置である。より具体的には、第2のモデル記憶部110は、
図3に示す識別システム100に対して予め定められている複数の第1の識別システムで学習された個々のモデル(外部生成モデル)を記憶する。第2のモデル記憶部110に記憶される個々のモデルは、いずれも
図4に模式的に示すモデルと同様の形式で表される。
【0045】
モデル更新部121は、
図3に示す識別システム100に対して予め定められている複数の第1の識別システムからそれぞれモデルを受信し、そのモデルを、外部生成モデルとして第2のモデル記憶部110に記憶させる。
【0046】
個々の第1の識別システムは、
図3に示す識別システム100と同様に、後述のモデル送信部122を備えている。そして、個々の第1の識別システムのモデル送信部122は、その第1の識別システムが学習したモデルを、適宜、
図3に示す識別システム100に送信する。
【0047】
モデル更新部121は、第1の識別システムが送信したモデルを受信する。その第1の識別システムが、
図3に示す識別システム100に対して初めてモデルを送信したとする。その場合、第2のモデル記憶部110は、その第1の識別システムで学習されたモデルを、まだ記憶していない。このとき、モデル更新部121は、受信したモデルを外部生成モデルとして、送信元となる第1の識別システムを示す情報と関連付けて、第2のモデル記憶部110に記憶させる。また、その第1の識別システムが、
図3に示す識別システム100に対して以前にモデルを送信したことがあるとする。その場合、第2のモデル記憶部110は、その第1の識別システムで学習されたモデルを既に記憶している。このとき、モデル更新部121は、その第1の識別システムで学習されたモデルとして既に第2のモデル記憶部110に記憶されているモデルを、新たに受信したモデルに更新する。
【0048】
以下の説明では、第2のモデル記憶部110は、
図3に示す識別システム100に対して予め定められている複数の第1の識別システムで学習された個々のモデル(外部生成モデル)を全て記憶済みであるものとする。この状態で、モデル更新部121は、第1の識別システムからモデルを受信すると、第2のモデル記憶部110に記憶されているモデルを、受信したモデルに更新する。
【0049】
第2の識別部111は、第1の識別部106が識別対象とした各画像のうち、所定の画像を、第2のモデル記憶部110に記憶されている外部生成モデルに適用することによって、その所定の画像に写っている物体を識別する。第2の識別部111は、この処理を、個々の外部生成モデル毎に実行する。第2の識別部111は、所定の画像を外部生成モデルに適用することによって、「自動車」、「オートバイ」、「バス」、「背景」の信頼度をそれぞれ算出する。そして、第2の識別部111は、「自動車」、「オートバイ」、「バス」、「背景」のうち、最も高い信頼度が得られたラベルを、画像に写っている物体を示すラベルとして定める。
【0050】
また、第1の識別部106が識別対象とした各画像のうちの所定の画像とは、第1の識別部106が識別対象とした各画像のうち、決定部107が、第2の識別部111に識別処理を実行させると決定した画像である。
【0051】
決定部107は、第1の識別部106が識別対象とした各画像のうち、第2の識別部111に識別処理を実行させる画像を決定する。以下、決定部107が、第1の識別部106が識別対象とした各画像のうち、第2の識別部111に識別処理を実行させる画像を決定する方法として、3種類の決定方法を例示して説明する。決定部107は、以下に示す3種類の決定方法のうちの1つの決定方法のみを採用してもよい。あるいは、決定部107は、以下に示す3種類の決定方法のうちの複数の決定方法を採用してもよい。この場合、決定部107は、複数の決定方法のうちのいずれかの決定方法で、ある画像に対して第2の識別部111に識別処理を実行させると決定した場合には、その画像に対して第2の識別部111に識別処理を実行させることを確定する。
【0052】
[第1の決定方法]
第1の決定方法は、画像に写っている物体を表わすラベルとして第1の識別部106によって定められたラベルが、誤りであった場合に、決定部107が、その画像に対して第2の識別部111に識別処理を実行させると決定する方法である。すなわち、決定部107が、第1の識別部106が誤識別した画像に対して、第2の識別部111に識別処理を実行させると決定する方法である。第1の識別部106によって定められたラベルが、誤りであるか否かは、例えば、識別システム100のオペレータによって判断されてもよい。以下、この場合を例にして説明する。第1の識別部106が画像に対するラベルを定めた場合、決定部107は、その画像と、その画像に対して定められたラベルと、そのラベルが正しいか否かをオペレータが入力するためのGUI(本例では、2つのボタンとする。)とを表わす画面を、ディスプレイ装置115上に表示する。
図5は、第1の決定方法において決定部107がディスプレイ装置115上に表示する画面の例を示す模式図である。
【0053】
決定部107は、第1の識別部106が画像に対するラベルを定めた場合、
図5に例示するように、第1の識別部106が識別対象とした画像301と、第1の識別部106によって定められたラベル302(
図5に示す例では「オートバイ」)と、第1ボタン304および第2ボタン305とを表わす画面を、ディスプレイ装置115上に表示する。第1ボタン304は、画像に対するラベルが正しいことを入力するためのボタンであり、第1ボタン304がクリックされたということは、画像に対するラベルが正しい旨の情報がオペレータから入力されたことを意味する。また、第2ボタン305は、画像に対するラベルが誤っていることを入力するためのボタンであり、第2ボタン305がクリックされたといういことは、画像に対するラベルが誤っている旨の情報がオペレータから入力されたことを意味する。
図5に示す例では、画像301には自降車が写っているが、第1の識別部106によって定められたラベルとして「オートバイ」が表示されている。従って、オペレータは、マウス116を用いて第2ボタン305をクリックする。なお、
図5に示す例では、第1の識別部106によって定められたラベルとして「自動車」が表示されているならば、オペレータは、第1ボタン304をクリックする。
【0054】
決定部107は、
図5に例示する画面において、第2ボタン305がクリックされると、第1の識別部106によって定められたラベルが誤っていると判定し、第1の識別部106が識別対象とした画像301に対して、第2の識別部111に識別処理を実行させると決定する。
【0055】
なお、第1ボタン304がクリックされた場合には、決定部107は、第1の識別部106が識別対象とした画像301に対して、第2の識別部111に識別処理を実行させないと決定する。
【0056】
[第2の決定方法]
第2の決定方法は、画像に対して定められたラベルに対応する信頼度が予め定められた閾値以下である場合に、決定部107が、その画像に対して第2の識別部111に識別処理を実行させると決定する方法である。
【0057】
すなわち、第1の識別部106が画像に対して定めたラベルに対応する信頼度が閾値以下である場合、決定部107は、その画像に対して第2の識別部111に識別処理を実行させると決定する。また、第1の識別部106が画像に対して定めたラベルに対応する信頼度が閾値を超えている場合には、決定部107は、その画像に対して第2の識別部111に識別処理を実行させないと決定する。閾値は、例えば、“0.5”であるが、“0.5”以外の値であってもよい。
【0058】
第2の決定方法は、決定部107は、第1の識別部106が導出した信頼度と閾値との比較によって、画像に対して第2の識別部111に識別処理を実行させるか否かを決定する。従って、第2の決定方法では、
図5に例示する画面を表示する必要はない。
【0059】
[第3の決定方法]
第3の決定方法は、第1の識別部106が画像に対して定めたラベルが「背景」であるにも関わらず、その画像に「自動車」、「オートバイ」または「バス」が写っている場合に、決定部107が、その画像に対して第2の識別部111に識別処理を実行させると決定する方法である。換言すれば、第3の決定方法は、第1の識別部106が画像に「自動車」、「オートバイ」および「バス」のいずれも写っていないと判定したにも関わらず、その画像に「自動車」、「オートバイ」または「バス」が写っている場合に、決定部107が、その画像に対して第2の識別部111に識別処理を実行させると決定する方法である。特定されたラベルが「背景」である場合に、画像に「自動車」等が写っているか否かの判断は、識別システム100のオペレータが行う。
【0060】
第3の方法では、画像に対するラベルとして「背景」が定められた場合、決定部107は、その画像と、そのラベル「背景」と、前述の第1ボタン304および第2ボタン305とを表わす画面を、ディスプレイ装置115上に表示する。
図6は、第3の決定方法において決定部107がディスプレイ装置115上に表示する画面の例を示す模式図である。
【0061】
決定部107は、第1の識別部106が画像に対してラベルとして「背景」を定めた場合、
図6に例示するように、第1の識別部106が識別対象とした画像301と、ラベル302と、第1ボタン304および第2ボタン305とを表わす画面を、ディスプレイ装置115上に表示する。第3の決定方法で表示される画面では、ラベル302として「背景」が表示される。第1ボタン304および第2ボタン305は、
図5に示す第1ボタン304および第2ボタン305と同様であり、説明を省略する。
【0062】
図6に示す例では、第1の識別部106が画像301に対して定めたラベルが「背景(自動車、オートバイおよびバスは写っていない。)」であるにも関わらず、画像301には、自動車が写っている。従って、オペレータは、マウス116を用いて第2ボタン305をクリックする。なお、画像301に、自動車、オートバイおよびバスのいずれもが写っていないならば、オペレータは、第1ボタン304をクリックする。
【0063】
決定部107は、
図6に例示する画面において、第2ボタン305がクリックされると、ラベル「背景」が特定されているが、画像には「自動車」、「オートバイ」および「バス」のいずれかが写っていると判定し、その画像に対して第2の識別部111に識別処理を実行させると決定する。
【0064】
なお、
図6に例示する画面において第1ボタン304がクリックされた場合には、決定部107は、画像には「自動車」、「オートバイ」および「バス」のいずれも写っておらず、ラベル「背景」は正しいと判断し、その画像に対して第2の識別部111に識別処理を実行させないと決定する。
【0065】
次に、領域修正GUI表示制御部108について説明する。前述のように、第1の識別部106は、画像に対して定めたラベルが「背景」以外である場合、画像に写っている物体(「自動車」、「オートバイ」または「バス」)を囲む矩形領域を判定する。領域修正GUI表示制御部108は、決定部107によって第2の識別部111に識別処理を実行させると決定した画像を、その矩形領域とともにディスプレイ装置115上に表示し、さらに、その矩形領域を修正するためのGUIを示す画面をディスプレイ装置115上に表示する。ただし、前述の第3の方法で決定された画像に対しては、「背景」というラベルが定められているので、矩形領域は判定されていない。この場合、領域修正GUI表示制御部108は、矩形領域を表示しない。
【0066】
図7は、領域修正GUI表示制御部108がディスプレイ装置115に表示する画面の一例を示す模式図である。
図7に示す矩形領域309は、第1の識別部106が、画像301内で「自動車」を囲む領域として定めた矩形領域である。また、領域修正GUI表示制御部108は、画面内に確定ボタン307および修正ボタン308を含める。確定ボタン307は、表示された矩形領域を確定することをオペレータが指示するためのボタンである。修正ボタン308は、矩形領域309の修正を受け付けることをオペレータが指示するためのボタンである。
【0067】
図7に示す例では、矩形領域309は、画像301内で「自動車」を囲む矩形領域として適切である。オペレータは、このように判断した場合、確定ボタン307をクリックする。確定ボタン307がクリックされると、領域抽出部109は、その時点で、画像301内における矩形領域309を確定する。
【0068】
図8は、領域修正GUI表示制御部108がディスプレイ装置115に表示する画面の他の例を示す模式図である。
図8に示す例では、矩形領域309は、画像301内で「自動車」を囲む矩形領域として適切でない。この場合、領域修正GUI表示制御部108は、オペレータの操作に応じて、「自動車」を囲む矩形領域として適切な矩形領域を受け付ける。
図8に例示する適切でない矩形領域309が表示された場合には、オペレータは、修正ボタン308をクリックする。修正ボタン308がクリックされた後には、領域修正GUI表示制御部108は、オペレータによるマウス116を用いた操作に応じて、矩形領域309の頂点や辺の位置の修正を受け付ける。オペレータは、頂点や辺の位置を修正することによって、矩形領域309を、
図7に例示するような適切な位置や大きさに修正することができる。領域修正GUI表示制御部108、そのような修正を受け付ける。オペレータは、矩形領域309を、画像301内に写っている物体(本例では「自動車」)を囲む適切な位置や大きさに矩形領域309が修正した後、確定ボタン307をクリックする。前述のように、確定ボタン307がクリックされると、領域抽出部109は、その時点で、画像301内における矩形領域309を確定する。本例では、領域抽出部109は、修正後の矩形領域309を確定する。
【0069】
また、既に説明したように、前述の第3の方法で決定された画像に対しては、「背景」というラベルが定められているので、矩形領域は判定されていない。この場合、領域修正GUI表示制御部108は、
図7に例示する画面において、矩形領域309を表示しない。この場合、オペレータが修正ボタン308をクリックすると、領域修正GUI表示制御部108は、画像301の任意の場所に任意の大きさで矩形領域309を表示し、オペレータによるマウス116を用いた操作に応じて、矩形領域309の頂点や辺の位置の修正を受け付ける。オペレータは、表示された矩形領域309を、画像301内に写っている物体を囲む適切な位置や大きさに修正した後、確定ボタン307をクリックすればよい。確定ボタン307がクリックされると、領域抽出部109は、その時点で、画像301内における矩形領域309を確定する。
【0070】
上記のように、領域抽出部109は、確定ボタン307がクリックされると、その時点で、画像301内における矩形領域309を確定する。そして、領域抽出部109は、その画像から、確定した矩形領域を抽出する。この矩形領域は、画像に写っている物体を囲む領域である。領域抽出部109は、結果記憶部117に記憶されている画像、第1の識別部106による識別結果となるラベル、および、そのラベルに対応する信頼度に対応させて、確定した矩形領域を表わす情報も結果記憶部117に記憶させる。矩形領域を表わす情報は、例えば、矩形領域の各頂点の座標である。
【0071】
第2の識別部111は、領域抽出部109によって抽出された矩形領域の画像を対象にして、その矩形領域の画像に写っている物体を識別する。第2の識別部111は、この処理を、第2のモデル記憶部110に記憶されている個々の外部生成モデル毎に実行する。
【0072】
第2の識別部111は、抽出された矩形領域の画像を外部生成モデルに適用することによって、「自動車」、「オートバイ」、「バス」、「背景」の信頼度をそれぞれ算出する。そして、第2の識別部111は、「自動車」、「オートバイ」、「バス」、「背景」のうち、最も高い信頼度が得られたラベルを、画像に写っている物体を示すラベルとして定める。また、第2の識別部111は、ラベル毎に求めた信頼度、並びに、画像に写っている物体を示すラベルおよびそのラベルに対応する信頼度を、既に、結果記憶部117に記憶されているその画像に対応付けて、結果記憶部117に記憶させる。第2の識別部111は、この処理を外部生成モデル毎に実行する。以下、説明を簡単にするために、
図3に示す識別システム100に対して定められている第1の識別システムが2つであり、第2のモデル記憶部110に記憶されている外部生成モデルの数が2個であるものとして説明する。そして、その2個の外部生成モデルの一方を符号“A”で表し、他方を符号“B”で表す。
【0073】
この場合、結果記憶部117には、画像と、第1の識別部106がその画像に対して識別処理を行って定めたラベルと、そのラベルに対応する信頼度と、確定された画像内の矩形領域を表わす情報とが記憶される。さらに、それらの情報に対応付けて、第2の識別部111が外部生成モデルAに矩形領域の画像を適用して得たラベル毎の信頼度、および、最も信頼度が高いラベルとそのラベルに対応する信頼度、並びに、第2の識別部111が外部生成モデルBに矩形領域の画像を適用して得たラベル毎の信頼度、および、最も信頼度が高いラベルとそのラベルに対応する信頼度も、結果記憶部117に記憶される。
【0074】
結果記憶部117は、上記のような情報のセットが蓄積される
【0075】
ただし、決定部107が第2の識別部111に識別処理を実行させると決定しなかった画像に関しては、画像と、第1の識別部106がその画像に対して識別処理を行って定めたラベルと、そのラベルに対応する信頼度が結果記憶部117に記憶され、画像内の矩形領域を表わす情報等は記憶されない。
【0076】
表示制御部112は、結果記憶部117に記憶された情報から、1組の情報のセットを読み出し、画像と、第1の識別部106が導出したラベルおよびそのラベルに対応する信頼度と、第2の識別部111が外部生成モデル毎に導出したラベルおよびそのラベルに対応する信頼度とを含む画面を、ディスプレイ装置115上に表示する。
【0077】
図9は、表示制御部112が表示する画面の例を示す模式図である。表示制御部112は、第1の識別部106が導出したラベルおよびそのラベルに対応する信頼度501と、第2の識別部111が外部生成モデルAを用いて導出したラベルおよびそのラベルに対応する信頼度502と、第2の識別部111が外部生成モデルBを用いて導出したラベルおよびそのラベルに対応する信頼度503とを、画像301に重畳した画面を、ディスプレイ装置115上に表示する。
図9に示す例では、表示制御部112は、確定している矩形領域309も、画像301に重畳させて表示する。本例では、第2のモデル記憶部110に記憶されている外部生成モデルが2個である場合を例示しているが、外部生成モデルの数は3個以上であってもよい。
【0078】
さらに、表示制御部112は、この画面内に、チェックボックス504と、再学習ボタン505と、画面切り替えボタン506,507を表示させる。
【0079】
チェックボックス504は、画面内に表示されている画像301(より具体的には、画像301から抽出される矩形領域309の画像)を教師データに含めるか否かを指定するためのGUIである。チェックボックス504がチェックされている場合、画像301から抽出される矩形領域309の画像を教師データに含めることを意味する。チェックボックス504がチェックされていない場合、画像301を教師データに含めないことを意味する。なお、表示制御部112は、外部生成モデルを用いて導出された信頼度に応じて、予めチェックされた状態でチェックボックス504を表示してもよい。例えば、外部生成モデルを用いて導出されたラベルおよび信頼度の組において、信頼度が閾値(例えば、“0.5”)よりも大きい組が1組以上あれば、表示制御部112は、予めチェックされた状態でチェックボックス504を表示してもよい。オペレータは、チェックボックス504をマウス116でクリックすることによって、チェックボックス504にチェックを入れたり、チェックボックス504からチェックを外したりすることができる。オペレータは、画像301と、外部生成モデル毎に導出されたラベルおよび信頼度を参照することによって、画像301から抽出される矩形領域309の画像を教師データに含めるか否かを判断すればよい。そして、オペレータは、その判断に基づいて、チェックボックス504にチェックを入れるか否かを決定すればよい。
【0080】
画面切り替えボタン506,507は、異なる画像を表示する画面に切り替えるためのボタンである。例えば、画面切り替えボタン506がクリックされた場合、表示制御部112は、時系列順で画像301よりも前の画像を含んでいる、
図9に示す画面と同様の画面に切り替える。また、例えば、画面切り替えボタン507がクリックされた場合、表示制御部112は、時系列順で画像301よりも後の画像を含んでいる、
図9に示す画像と同様の画面に切り替える。オペレータは、切り替えた各画面において、チェックボックス504にチェックを入れるか否かを決定すればよい。
【0081】
再学習ボタン505は、オペレータが識別システム100に、内部生成モデルの再学習を指示するためのボタンである。再学習ボタン505がクリックされた場合、統合部114は、チェックボックス504がチェックされた画面の画像毎に、ラベルを特定する。以下の説明では、説明を簡単にするために、
図9に例示する画面のみで、チェックボックス504がチェックされている場合を例にして説明する。この場合、統合部114は、
図9に例示する画像301のラベルを特定する。
【0082】
以下、統合部114が1つの画像のラベルを特定する処理について説明する前に、まず、属性データ記憶部113について説明する。属性データ記憶部113は、属性データ記憶部113を含むコンピュータ102(
図3に示すコンピュータ102)に接続されているカメラ101の属性を示すデータ(属性データ)と、第2のモデル記憶部110に記憶されている各外部生成モデルを生成した各識別システム100(すなわち、各第1の識別システム)のカメラ101の属性データとを記憶する記憶装置である。ある外部生成モデルを生成した識別システム100(第1の識別システム)のカメラ101の属性データを、その外部生成モデルに対応する属性データと記す。
【0083】
カメラ101の属性として、カメラ101自体の属性や、カメラ101が設置されている環境に依存する属性等が挙げられる。各属性の値は数値で表される。また、各属性の値は、各識別システム100の管理者がカメラ101の設定や設置環境に応じて予め決定すればよい。属性データは、このような属性の値(数値)を要素とするベクトルで表される。
【0084】
カメラ101の属性データは、少なくとも、「カメラ101の画角」、「カメラ101が屋内に設置されているか屋外に設置されているか」、「カメラ101の撮影対象」、「カメラ101の撮影対象の移動方向」という各属性のうちの少なくとも一部の属性の値を含む。また、ベクトルで表される属性データが、どの属性の値を要素としているかは、全ての識別システム100で共通であり、どの属性の値がベクトルの何番目の要素なっているかに関しても、全ての識別システム100で共通である。ベクトルの各要素となる数値は、識別システム100毎に異なっていてよい。
【0085】
「カメラ101の画角」は、数値で表されるので、管理者は、画角を表わす数値をベクトルの要素として定めればよい。
【0086】
「カメラ101が屋内に設置されているか屋外に設置されているか」という属性に関しては、例えば、カメラ101が屋内に設置されている場合には、この属性の値を“0”に定め、カメラ101が屋外に設置されている場合には、この属性の値を“1”に定めればよい。
【0087】
また、「カメラ101の撮影対象」という属性に関しては、例えば、カメラ101が車両を撮影するように設置されている場合(例えば、カメラ101が車道に向けて設置されている場合)、この属性の値を“0”に定める。また、カメラ101が歩行者を撮影するように設置されている場合(例えば、カメラ101が歩道に向けて設置されている場合)、この属性の値を“1”に定める。また、カメラ101が車両と歩行者の両方を撮影するように設置されている場合(例えば、カメラ101が車両と歩行者の両方が通る道に向けて設置されている場合)、この属性の値を“0.5”に定める。
【0088】
「カメラ101の撮影対象の移動方向」という属性に関しては、カメラ101の主軸方向等に基づいた基準軸を定め、その基準軸と、撮影対象の主たる移動方向とのなす角度を、この属性の値として定めればよい。
【0089】
また、上記以外の属性の値を属性データに含めてもよい。例えば、「カメラ101の設置場所の高さ」、「カメラ101の俯角」、「カメラ101の解像度」等の値を属性データに含めてもよい。「カメラ101の設置場所の高さ」、「カメラ101の俯角」、「カメラ101の解像度」はいずれも数値で表されるので、それらの数値をベクトルの要素として定めればよい。
【0090】
属性データ記憶部113は、属性データ記憶部113を含むコンピュータ102(
図3に示すコンピュータ102)に接続されているカメラ101の属性データ(ベクトル)を記憶する。この属性データを基準属性データと記す。さらに、属性データ記憶部113は、第2のモデル記憶部110に記憶されている各外部生成モデルを生成した各第1の識別システムのカメラ101の属性データを記憶する。本実施形態では、第2のモデル記憶部110は、外部生成モデルAおよび外部生成モデルBを記憶する。従って、属性データ記憶部113は、基準属性データの他に、外部生成モデルAに対応する属性データ(属性データAと記す。)、および、外部生成モデルBに対応する属性データ(属性データBと記す。)も記憶する。属性データAは、外部生成モデルAを生成した第1の識別システムのカメラ101の属性データである。同様に、属性データBは、外部生成モデルBを生成した第1の識別システムのカメラ101の属性データである。
【0091】
各識別システム100を管理する管理者は、
図3におけるカメラ101の属性データを基準属性データとして、属性データ記憶部113に記憶させればよい。また、管理者は、
図3に示す識別システム100に対して定められた2つの第1の識別システムそれぞれのカメラ101の属性データを、属性データA、属性データBとして、属性データ記憶部113に記憶させればよい。
【0092】
統合部114は、第2の識別部111が、画像に対して個々の外部生成モデル毎に導出した各ラベルの信頼度(本実施形態では、「自動車」、「オートバイ」、「バス」、「背景」それぞれの信頼度)を、ラベル毎に統合し、その統合結果に基づいてその画像のラベルを特定する。
【0093】
このとき、統合部114は、基準属性データ(すなわち、統合部114を含む識別システム100のカメラ101の属性データ)と、外部生成モデルAや外部生成モデルBを生成した複数の第1の識別システムのカメラ101の属性データとの類似度を、第1の識別システム毎に算出する。本実施形態では、統合部114は、基準属性データと属性データAとの類似度と、基準属性データと属性データBとの類似度とを、それぞれ算出する。基準属性データと属性データAとの類似度を、外部生成モデルAに対応する類似度と記す。また、基準属性データと属性データBとの類似度を、外部生成モデルBに対応する類似度と記す。
【0094】
属性データはベクトルで表される。統合部114は、2つの属性データ(ベクトル)の類似度を算出する場合、その2つのベクトルの距離の逆数を、類似度として算出すればよい。
【0095】
統合部114は、個々の外部生成モデル毎に導出した各ラベルの信頼度を、ラベル毎に統合するときに、外部生成モデルに対応する類似度で重み付けして、統合する。統合部114は、信頼度の統合結果が最も高くなったラベルを、画像のラベルとして特定すればよい。
【0096】
外部生成モデル毎に導出した各ラベルの信頼度を、ラベル毎に統合する演算について、具体的に説明する。統合部114が信頼度を統合する演算方法として2つの演算方法を説明する。ここでは、1つのラベルに関して、外部生成モデル毎に導出した信頼度を統合する場合を説明する。統合部114は、他のラベルに関しても、同様の演算を行って、外部生成モデル毎に導出した信頼度を統合すればよい。
【0097】
[第1の演算方法]
まず、信頼度を統合する第1の演算方法について説明する。i番目の外部生成モデルを用いて得られた、着目しているラベルの信頼度をLiとする。また、i番目の外部生成モデルに関して算出された類似度(基準属性データと、i番目の外部生成モデルに対応する属性データとの類似度)をWiとする。また、第2のモデル記憶部110に記憶されている外部生成モデルの数をN個とする。この場合、統合部114は、着目しているラベルの信頼度を、以下に示す式(1)の計算によって統合すればよい。
【0099】
すなわち、統合部114は、外部生成モデル毎にLiとWiとの積を算出し、その積の平均値を、着目しているラベルの信頼度の統合結果とすればよい。統合部114は、他のラベルに関しても、同様の演算を行う。そして、統合部114は、統合結果が最も高くなったラベルを、画像のラベルとして特定する。
【0100】
図10は、第1の演算方法の具体例を示す説明図である。2つの外部生成モデルA,Bがあるとする。外部生成モデルAを用いて導出された「自動車」、「オートバイ」、「バス」および「背景」の信頼度がそれぞれ、“0.1”,“0.7”,“0.1”,“0.1”であるとする。また、外部生成モデルAに関して算出された類似度が“0.9”であるとする。統合部114は、上記の信頼度毎に、類似度“0.9”を乗じた結果を算出する。この結果、「自動車」、「オートバイ」、「バス」および「背景」それぞれに関して、“0.09”,“0.63”,“0.09”,“0.09”という乗算結果(積)が得られる。
【0101】
また、外部生成モデルBを用いて導出された「自動車」、「オートバイ」、「バス」および「背景」の信頼度がそれぞれ、“0.1”,“0.6”,“0.2”,“0.1”であるとする。また、外部生成モデルBに関して算出された類似度が“0.8”であるとする。統合部114は、上記の信頼度毎に、類似度“0.8”を乗じた結果を算出する。この結果、「自動車」、「オートバイ」、「バス」および「背景」それぞれに関して、“0.08”,“0.48”,“0.16”,“0.08”という乗算結果(積)が得られる。
【0102】
統合部114は、「自動車」、「オートバイ」、「バス」および「背景」毎に得られた乗算結果(積)の平均値を計算する。「自動車」、「オートバイ」、「バス」および「背景」それぞれに関して算出された平均値は、”0.085”,”0.555”,”0.125”,”0.085”である。従って、統合部114は、平均値(統合結果)が最も高い「オートバイ」を、画像のラベルとして特定する。
【0103】
[第2の演算方法]
次に、信頼度を統合する第2の演算方法について説明する。前述の場合と同様に、i番目の外部生成モデルを用いて得られた、着目しているラベルの信頼度をLiとする。また、i番目の外部生成モデルに関して算出された類似度(基準属性データと、i番目の外部生成モデルに対応する属性データとの類似度)をWiとする。また、個々の外部生成モデルに関して算出された個々の類似度の総和をWtとする。また、第2のモデル記憶部110に記憶されている外部生成モデルの数をN個とする。統合部114は、Wtを以下に示す式(2)の計算によって算出すればよい。
【0105】
この場合、統合部114は、着目しているラベルの信頼度を、以下に示す式(3)の計算によって統合すればよい。
【0107】
すなわち、統合部114は、外部生成モデル毎に、類似度の総和に対する外部生成モデルに対応する類似度の割合を算出し、その割合の算出結果を重みとして、着目しているラベルの信頼度の重み付け和を算出し、その算出結果を、着目しているラベルの信頼度の統合結果とすればよい。統合部114は、他のラベルに関しても、同様の演算を行う。そして、統合部114は、統合結果が最も高くなったラベルを、画像のラベルとして特定する。
【0108】
図11は、第2の演算方法の具体例を示す説明図である。2つの外部生成モデルA,Bがあるとする。外部生成モデルAを用いて導出された「自動車」、「オートバイ」、「バス」および「背景」の信頼度がそれぞれ、“0.1”,“0.7”,“0.1”,“0.1”であるとする。外部生成モデルBを用いて導出された「自動車」、「オートバイ」、「バス」および「背景」の信頼度がそれぞれ、“0.1”,“0.6”,“0.2”,“0.1”であるとする。外部生成モデルAに関して算出された類似度が“0.9”であり、外部生成モデルBに関して算出された類似度が“0.8”であるとする。この場合、類似度の総和は、0.9+0.8=1.7である。よって、類似度の総和“1.7”に対する、外部生成モデルAに対応する類似度“0.9”の割合は、“0.9/1.7”である。また、類似度の総和“1.7”に対する、外部生成モデルBに対応する類似度“0.8”の割合は、“0.8/1.7”である。統合部114は、“0.9/1.7”および“0.8/1.7”を重みとして、ラベル毎に、信頼度の重み付け和を算出し、その算出結果を、ラベルの信頼度の統合結果とする。すると、「自動車」、「オートバイ」、「バス」および「背景」それぞれの統合結果は、“0.0999”,“0.6528”,“0.1470”,“0.0999”となる。従って、統合部114は、統合結果が最も高い「オートバイ」を、画像のラベルとして特定する。
【0109】
第1の演算方法および第2の演算方法は、いずれも、個々の外部生成モデル毎に導出したラベルの信頼度を、外部生成モデルに対応する類似度で重み付けして統合する演算であると言える。
【0110】
統合部114が、各ラベルの信頼度の統合結果に基づいて、画像のラベルを特定すると、学習部103は、その画像において確定している矩形領域を抽出し、その矩形領域の画像と、統合部114によって特定されたラベルとの組を、既存の教師データに含める。そして、学習部103は、その教師データを用いて、ディープラーニングによって、内部生成モデルを再学習する。さらに、学習部103は、第1のモデル記憶部104に記憶されている既存の内部生成モデルを、再学習によって生成した新たな内部生成モデルに更新する。
【0111】
次に、モデル送信部122について説明する。モデル送信部122は、学習部103によって学習されたモデルを、予め定められている第2の識別システムに送信する。モデルの送信先となる第2の識別システムの数は、1つであっても、複数であってもよい。なお、第2の識別システムは、受信したモデルを外部生成モデルとして記憶する。
【0112】
モデル送信部122が第2の識別システムにモデルを送信する態様として、4つのモデル送信態様を例示して説明する。
【0113】
[第1のモデル送信態様]
第1のモデル送信態様では、モデル送信部122は、学習部103がモデル(内部生成モデル)を再学習した場合に、そのモデルを第2の識別システムに送信する。第1のモデル送信態様では、学習部103によってモデルが再学習される度に、モデル送信部122は、再学習によって新たに得られたモデルを第2の識別システムに送信する。従って、第1のモデル送信態様では、モデル送信部122は、最新のモデルを第2の識別システムに送信することができる。
【0114】
[第2のモデル送信態様]
第2のモデル送信態様では、モデル送信部122は、定期的に、第1のモデル記憶部104に記憶されているモデルを第2の識別システムに送信する。すなわち、モデル送信部122は、第1のモデル記憶部104に記憶されているモデルを第2の識別システムに送信してから一定期間経過したときに、再び、第1のモデル記憶部104に記憶されているモデルを第2の識別システムに送信することを繰り返す。この一定期間において、第1のモデル記憶部104に記憶されているモデルが複数回、更新されたとしても、モデル送信部122は、前回のモデル送信時から一定期間経過した時点で第1のモデル記憶部104に記憶されているモデルを第2の識別システムに送信する。また、この一定期間において、第1のモデル記憶部104に記憶されているモデルが更新されなかった場合には、モデル送信部122は、前回送信したモデルと同一のモデルを再度、送信することになる。
【0115】
[第3のモデル送信態様]
第3のモデル送信態様では、学習部103がモデル(内部生成モデル)を再学習した場合に、モデル送信部122は、そのモデルを第2の識別システムに送信するか否かを判定する。
【0116】
統合部114がラベルの特定対象とする画像は、第1の識別部106が識別対象とした画像のうち、決定部107が、前述の第1の決定方法、第2の決定方法、または、第3の決定方法によって、第2の識別部111に識別処理を実行させると決定した画像である。すなわち、統合部114がラベルの特定対象とする画像は、第1の識別部106によって誤識別されたり、閾値より大きい信頼度が得られなかったりした画像である。学習部103がモデルを再学習する前に、統合部114は、そのような画像のラベルを、外部生成モデル毎に得られた各ラベルの信頼度を利用することによって、特定している。第3のモデル送信態様では、学習部103がモデル(内部生成モデル)を再学習した場合に、第1の識別部106が、再学習されたそのモデルにその画像を適用することによって、その画像の識別結果(ラベル)を再度、導出する。モデル送信部122は、第1の識別部106が再学習されたモデルを用いて再度、導出したその画像の識別結果(ラベル)と、統合部114によって特定されたラベルとが一致している場合に、再学習されたモデルを第2の識別システムに送信すると判定し、再学習されたモデルを第2の識別システムに送信する。一方、その2つのラベルが一致していない場合、モデル送信部122は、再学習されたモデルを第2の識別システムに送信しないと判定し、モデルを第2の識別システムに送信しない。
【0117】
モデル送信部122は、学習部103がモデルを再学習する毎に、上記のように、そのモデルを第2の識別システムに送信するか否かを判定し、送信すると判定した場合に、そのモデルを第2の識別システムに送信する。
【0118】
統合部114は、外部生成モデル毎に得られた各ラベルの信頼度を利用することによって、画像のラベルを特定している。従って、第1の識別部106によって誤識別されたり、閾値より大きい信頼度が得られなかったりした画像であっても、統合部114によって特定されたラベルの正確性は高いと考えられる。従って、第1の識別部106が再学習されたモデルを用いて再度、導出したその画像の識別結果(ラベル)と、統合部114によって特定されたラベルとが一致しているということは、再学習によって得られたモデルの識別精度が再学習前のモデルの識別精度よりも向上したということができる。また、再学習前のモデルでは、正しい識別結果が得られなかったが、再学習によって得られたモデルでは、正しい識別結果が得られるようになったということもできる。従って、第3のモデル送信態様は、再学習によって得られたモデルの識別精度が再学習前のモデルの識別精度よりも向上した場合に、再学習によって得られたモデルを第2の識別システムに送信する態様であるということができる。また、第3のモデル送信態様は、再学習前のモデルでは、正しい識別結果が得られなかったが、再学習によって得られたモデルでは、正しい識別結果が得られるようになった場合に、再学習によって得られたモデルを第2の識別システムに送信する態様であるというということもできる。
【0119】
[第4のモデル送信態様]
第4のモデル送信態様でも、モデル送信部122は、学習部103がモデル(内部生成モデル)を再学習した場合に、モデル送信部122は、そのモデルを第2の識別システムに送信するか否かを判定する。
【0120】
第4のモデル送信態様では、モデルが再学習された場合に、所定時間内で、第1の識別部106がそのモデルを用いて導出した識別結果(ラベル)の正解率に基づいて、モデル送信部122は、モデルを第2の識別システムに送信するか否かを判定する。モデル送信部122は、その正解率が予め定められた閾値以上である場合に、再学習されたモデルを第2の識別システムに送信すると判定し、そのモデルを第2の識別システムに送信する。一方、その正解率が閾値未満である場合、モデル送信部122は、再学習されたモデルを第2の識別システムに送信しないと判定し、モデルを第2の識別システムに送信しない。
【0121】
所定時間内における識別結果(ラベル)の正解率の算出例を説明する。ここでは、決定部107が、前述の「第1の決定方法」によって、第2の識別部111に識別処理を実行させる画像を決定する場合を例にして説明する。第1の識別部106が画像に対するラベルを定めると、決定部107は、
図5に例示する画面をディスプレイ装置115上に表示する。従って、決定部107が
図5に例示する画面を表示した回数は、第1の識別部106が画像に対する識別を行った回数であると言える。そして、表示された画面(
図5参照)において、第1ボタン304がクリックされた回数は、第1の識別部106が導出したラベルが正しかった回数であると言える。モデル送信部122は、モデルが再学習された場合に、所定時間内で決定部107が
図5に例示する画面を表示した回数に対する、第1ボタン304がクリックされた回数の割合を計算し、その結果を、正解率とすればよい。そして、モデル送信部122は、その正解率と閾値とを比較することによって、前述のように、再学習されたモデルを第2の識別システムに送信するか否かを判定すればよい。
【0122】
本実施形態において、モデル更新部121およびモデル送信部122は、例えば、モデル提供プログラムに従って動作するコンピュータ102のCPU(Central Processing Unit )およびコンピュータ102の通信インタフェースによって実現される。例えば、CPUが、コンピュータ102のプログラム記憶装置等のプログラム記録媒体からモデル提供プログラムを読み込み、モデル提供プログラムに従って、通信インタフェースを用いて、モデル更新部121およびモデル送信部122として動作すればよい。
【0123】
また、学習部103、第1の識別部106、決定部107、領域修正GUI表示制御部108、領域抽出部109、第2の識別部111、表示制御部112および統合部114は、例えば、モデル提供プログラムに従って動作するコンピュータ102のCPUによって実現される。例えば、CPUが、コンピュータ102のプログラム記憶装置等のプログラム記録媒体からモデル提供プログラムを読み込み、モデル提供プログラムに従って、学習部103、第1の識別部106、決定部107、領域修正GUI表示制御部108、領域抽出部109、第2の識別部111、表示制御部112および統合部114として動作すればよい。
【0124】
また、第1のモデル記憶部104、第2のモデル記憶部110、属性データ記憶部113および結果記憶部117は、コンピュータ102が備える記憶装置によって実現される。
【0125】
次に、本発明の実施形態の処理経過について説明する。
図12は、カメラ101が撮影を行ってから、第2の識別部111が画像に対する識別処理を行うまでの処理経過の例を示すフローチャートである。なお、既に説明した動作については、詳細な説明を省略する。
【0126】
なお、予め、学習部103がディープラーニングによって内部生成モデルを学習し、その内部生成モデルを第1のモデル記憶部104に記憶させているものとする。
【0127】
また、モデル更新部121は、
図3に示す識別システム100に対して予め定められている複数の第1の識別システムからそれぞれモデルを受信し、そのモデルを、外部生成モデルとして第2のモデル記憶部110に記憶させているものとする。すなわち、第2のモデル記憶部110は、個々の第1の識別システムで学習されたモデルを、外部生成モデルとして記憶しているものとする。なお、モデル更新部121は、第1の識別システムから新たにモデルを受信した場合には、その第1の識別システムで学習されたモデルとして既に第2のモデル記憶部110に記憶されているモデルを、新たに受信したモデルに更新すればよい。
【0128】
まず、カメラ101が、そのカメラ101の設置場所で撮影を行うことによって、画像を得る(ステップS1)。カメラ101は、その画像をコンピュータ102に送信する。
【0129】
コンピュータ102の第1の識別部106は、データ取得部105を介して、その画像を受け取る。そして、第1の識別部106は、その画像を内部生成モデルに適用することによって、画像に写っている物体を識別する(ステップS2)。ステップS2において、第1の識別部106は、画像に写っている物体を表わすラベルと、そのラベルの信頼度を導出する。第1の識別部106は、画像と、導出したラベルおよび信頼度とを対応付けて結果記憶部117に記憶させる。また、第1の識別部106は、特定したラベルが「背景」でない場合には、画像に写っている物体を囲む矩形領域を判定する。
【0130】
次に、決定部107は、ステップS2で第1の識別部106が識別対象とした画像に対して、第2の識別部111に識別処理を実行させるか否かを決定する(ステップS3)。第2の識別部111に識別処理を実行させないと決定した場合には(ステップS3のNo)、ステップS1以降の処理を繰り返す。
【0131】
第2の識別部111に識別処理を実行させると決定した場合には(ステップS3のYes)、領域修正GUI表示制御部108が、画像をディスプレイ装置115上に表示する。例えば、領域修正GUI表示制御部108は、
図7や
図8に例示する画面をディスプレイ装置115上に表示する。そして、領域抽出部109は、その画面に対するオペレータの操作に応じて、画像に写っている物体を囲む矩形領域を確定し、画像からその矩形領域を抽出する(ステップS4)。
【0132】
次に、第2の識別部111は、予め第2のモデル記憶部110に記憶されている個々の外部生成モデル毎に、ステップS4で抽出された矩形領域の画像に写っている物体を識別する(ステップS5)。第2の識別部111は、個々の外部生成モデル毎に、各ラベル(「自動車」、「オートバイ」、「バス」および「背景」)それぞれの信頼度を導出する。そして、外部生成モデル毎に導出した各ラベルの信頼度を結果記憶部117に記憶させる。また、第2の識別部111は、個々の外部生成モデル毎に、信頼度が最も高かったラベルと、そのラベルに対応する信頼度の組も、結果記憶部117に記憶させる。信頼度が最も高かったラベルは、画像に写っていると判定された物体を表わしている。
【0133】
ステップS5の後、ステップS1以降の処理を繰り返す。
【0134】
図13は、モデル(内部生成モデル)を再学習し、そのモデルを第2の識別システムに送信する場合の処理経過の例を示すフローチャートである。以下の説明においても、既に説明した動作については、詳細な説明を省略する。
図13では、前述の「第1のモデル送信態様」を例にして説明する。
【0135】
表示制御部112は、第1の識別部106が導出したラベルおよびそのラベルに対応する信頼度と、第2の識別部111が外部生成モデル毎に導出した各ラベルおよびその各ラベルに対応する信頼度とを、画像に重畳した画面を、ディスプレイ装置115上に表示する(ステップS11)。このとき、表示制御部112は、この画面内に、チェックボックス504と、再学習ボタン505と、画面切り替えボタン506,507とを含める。表示制御部112は、ステップS11において、例えば、
図9に例示する画面を表示する。
【0136】
オペレータは、
図9に例示する画面を確認し、表示されている画像301(より具体的には、画像301において確定している矩形領域309の画像)を教師データに含めるか否かを判断する。オペレータは、チェックボックス504にチェックを入れることで、表示されている画像301を教師データの含めることを指定する。すなわち、チェックボックス504にチェックが入れられた画面に表示された画像は、教師データに含める画像として指定された画像である。また、オペレータは、教師データの含める画像を指定した後、再学習ボタン505をクリックする。
【0137】
オペレータによって再学習ボタン505がクリックされると、統合部114は、基準属性データと、個々の外部生成モデルに対応する個々の属性データとの類似度をそれぞれ算出する(ステップS12)。既に説明したように、属性データはベクトルで表される。統合部114は、2つの属性データ(ベクトル)の類似度を算出する場合、その2つのベクトルの距離の逆数を、類似度として算出すればよい。
【0138】
次に、統合部114は、個々の外部生成モデル毎に導出したラベルの信頼度を、ステップS12で算出した各類似度を用いて、統合する。統合部114は、この処理をラベル毎に行い、信頼度の統合結果が最も高いラベルを、教師データに含める画像に対するラベルとして特定する(ステップS13)。
【0139】
教師データの含める画像がオペレータによって複数指定されている場合には、統合部114は、その画像毎に、ステップS13の処理を実行する。
【0140】
次に、学習部103は、教師データに含める画像において確定している矩形領域を抽出し、その矩形領域の画像と、統合部114によって特定されたラベルとの組を既存のデータに含める。そして、学習部103は、その教師データを用いて、ディープラーニングによって内部生成モデルを再学習し、再学習によって得た内部生成モデルを第1のモデル記憶部104に記憶させる(ステップS14)。学習部103は、第1のモデル記憶部104に記憶されている既存の内部生成モデルを、再学習によって生成した新たな内部生成モデルに更新する。
【0141】
この後、第1の識別部106が、画像に写っている物体を識別する場合には、再学習によって生成された新たな内部生成モデルを用いる。
【0142】
ステップS14の次に、モデル送信部122は、ステップS14で再学習されたモデル(内部生成モデル)を、第2の識別システムに送信する(ステップS15)。各識別システム100は、同様の構成である。第2の識別システムのモデル更新部121は、ステップS15で送信されたモデルを受信すると、第2の識別システム内の第2のモデル記憶部110に記憶されているモデルを、受信したモデルに更新する。従って、ステップS15でモデル送信部122が第2の識別システムに送信したモデルは、第2の識別システム内で外部生成モデルとして記憶される。
【0143】
図13では、「第1のモデル送信態様」を例にして説明した。モデル送信部122が、前述の「第2のモデル送信態様」でモデルを第2の識別システムに送信する場合、コンピュータ102は、ステップS14で処理を終了してよい。そして、モデル送信部122は、ステップS11〜S14の処理とは別に、定期的に、第1のモデル記憶部104に記憶されているモデルを第2の識別システムに送信すればよい。
【0144】
図14は、前述の「第3のモデル送信態様」の処理経過の例を示すフローチャートである。ステップS14までの処理は、
図13に示すフローチャートと同様であり、説明を省略する。
【0145】
ステップS14の後、第1の識別部106は、チェックボックス504にチェックが入れられた画面内に表示された画像(
図9参照)のラベルを、ステップS14で再学習された内部生成モデルを用いて導出する(ステップS21)。チェックボックス504にチェックが入れられた画面内に表示された画像は、教師データに含めることがオペレータによって指定された画像である。
【0146】
次に、モデル送信部122は、ステップS21で導出されたラベルと、同一画像に対して統合部114がステップS13(
図13参照)で特定したラベルとが一致するか否かを判定する(ステップS22)。
【0147】
2つのラベルが一致する場合(ステップS22のYes)、モデル送信部122は、ステップS14(
図13参照)で再学習されたモデル(内部生成モデル)を第2の識別システムに送信すると判定し、そのモデルを第2の識別システムに送信する(ステップS23)。
【0148】
また、2つのラベルが一致しない場合(ステップS22のNo)、モデル送信部122は、ステップS14で再学習されたモデルを第2の識別システムに送信しないと判定し、処理を終了する。
【0149】
図15は、前述の「第4のモデル送信態様」の処理経過の例を示すフローチャートである。ステップS14までの処理は、
図13に示すフローチャートと同様であり、説明を省略する。
【0150】
ステップS14の後、モデル送信部122は、所定時間内における、再学習されたモデル(内部生成モデル)を用いた場合の画像の識別結果の正解率を算出する(ステップS31)。この正解率の算出例については既に説明しているので、ここでは、説明を省略する。
【0151】
次に、モデル送信部122は、ステップS31で算出した正解率が、予め定められた閾値以上であるか否かを判定する(ステップS32)。
【0152】
正解率が閾値以上である場合(ステップS32のYes)、モデル送信部122は、ステップS14(
図13参照)で再学習されたモデル(内部生成モデル)を第2の識別システムに送信すると判定し、そのモデルを第2の識別システムに送信する(ステップS33)。
【0153】
また、正解率が閾値未満である場合(ステップS32のNo)、モデル送信部122は、ステップS14で再学習されたモデルを第2の識別システムに送信しないと判定し、処理を終了する。
【0154】
本実施形態によれば、決定部107は、前述の第1の決定方法、第2の決定方法および第3の決定方法のうちの少なくとも1つの方法で、第1の識別部106が識別処理の対象とした画像に対して、第2の識別部111に識別処理を実行させるか否かを決定する。従って、第2の識別部111によって識別処理が行われる画像は、第1の識別部106によって定められたラベルが誤りであった画像、画像に対して定められたラベルに対応する信頼度が閾値以下であった画像、または、第1の識別部106によって定められたラベルが「背景」であるにも関わらず、物体(「自動車」、「オートバイ」または「バス」)が写っている画像である。本実施形態では、このような画像を、内部生成モデルとは異なるモデル(より具体的には、着目している識別システム100に対して予め定められている第1の識別システムで生成されたモデル(外部生成モデル))に適用した結果に基づいて特定されるラベルと、その画像との組を、既存の教師データに追加して、学習部103が内部生成モデルを再学習する。従って、内部生成モデルの識別精度を向上させることができる。
【0155】
そして、モデル送信部122は、学習部103によって学習されたモデルを、例えば、前述の第1のモデル送信態様、第2のモデル送信態様、第3のモデル送信態様、または、第4のモデル送信態様等で、予め定められている第2の識別システムに送信する。第2の識別システムにおいて、モデル更新部121は、受信したモデルを、外部生成モデルとして第2のモデル記憶部110に記憶させる。従って、個々の識別システム100は、自身のモデルの識別精度を向上させるように、自身のモデルを学習し直すことができ、また、他の識別システム100のモデルの識別精度向上に寄与することができる。
【0156】
次に、本発明の実施形態の種々の変形例について説明する。
【0157】
上記の実施形態では、
図7や
図8に例示する画面に対するオペレータの操作に応じて、領域抽出部109が、画像に写っている物体を囲む矩形領域を確定し、画像からその矩形領域を抽出する。そして、第2の識別部111が、外部生成モデル毎に、抽出された矩形領域の画像に写っている物体を識別する。第2の識別部111は、抽出された矩形領域の画像ではなく、第1の識別部106が処理対象とした1つの画像全体を対象にして、画像に写っている物体を識別する処理を行ってもよい。この場合、識別システム100(
図3参照)は、領域修正GUI表示制御部108および領域抽出部109を備えていなくてもよい。そして、識別システム100は、ステップS4(
図12参照)を実行しなくてもよい。第2の識別部111は、ステップ5において、第1の識別部106が処理対象とした1つの画像全体を対象にして、画像に写っている物体を識別すればよい。
【0158】
また、学習部103は、1つの画像全体と、統合部114が特定したラベルとの組を、既存の教師データに含め、その教師データを用いて、内部生成モデルを再学習すればよい。
【0159】
また、学習部103は、画像と統合部114によって特定されたラベルとの組、および、既存の内部生成モデルを教師データとして、ディープラーニングによって内部生成モデルを再学習してもよい。
【0160】
また、第2のモデル記憶部110が、1つの外部生成モデルを記憶していてもよい。この場合、学習部103は、画像と、第2の識別部111で導出された、信頼度が最も高いラベルとの組を、既存の教師データに含め、その教師データを用いて、内部生成モデルを再学習すればよい。
【0161】
図16は、本発明の実施形態やその変形例における識別システム100が備えるコンピュータ102の構成例を示す概略ブロック図である。
図16では、コンピュータを符号“1000”で表す。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、入力デバイス1006と、通信インタフェース1007と、データ収集部101(例えば、カメラ)とのインタフェース1008とを備える。
【0162】
識別システム100が備えるコンピュータの動作は、モデル提供プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、そのモデル提供プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開する。そして、CPU1001は、そのモデル提供プログラムに従って、上記の実施形態やその変形例におけるコンピュータ102(
図3を参照)の処理を実行する。
【0163】
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM(Compact Disk Read Only Memory )、DVD−ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、上記の処理を実行してもよい。
【0164】
また、プログラムは、実施形態やその変形例における示したコンピュータ102の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
【0165】
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0166】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0167】
次に、本発明の概要について説明する。
図17は、本発明の識別システムの概要を示すブロック図である。本発明の識別システムは、学習手段701と、第1のモデル記憶手段702と、第1の識別手段703と、第2のモデル記憶手段704と、モデル更新手段705と、第2の識別手段706と、モデル送信手段707とを備える。
【0168】
学習手段701(例えば、学習部103)は、データ(例えば、画像)が表わす物体を識別するためのモデルを、教師データを用いて学習する。
【0169】
第1のモデル記憶手段702(第1のモデル記憶部104)は、学習手段701によって学習されたモデルを記憶する。
【0170】
第1の識別手段703(例えば、第1の識別部106)は、学習手段701によって学習されたモデルを用いて、データが表わす物体を識別する。
【0171】
第2のモデル記憶手段704(例えば、第2のモデル記憶部110)は、予め定められた複数の第1の識別システムで学習された個々のモデルをそれぞれ記憶する。
【0172】
モデル更新手段705(例えば、モデル更新部121)は、第1の識別システムから当該第1の識別システムで学習されたモデルを受信した場合に、第2のモデル記憶手段704に記憶されているその第1の識別システムで学習されたモデルを、その第1の識別システムから受信したモデルに更新する。
【0173】
第2の識別手段706(例えば、第2の識別部111)は、所定の場合に、第2のモデル記憶手段704に記憶されている個々のモデル毎に、第1の識別手段703が識別対象としたデータが表わす物体を識別する。
【0174】
学習手段701は、第2の識別手段706が導出した識別結果に基づいて定まるデータに対するラベルと、そのデータとを含む教師データを用いて、モデルを再学習し、第1のモデル記憶手段702に記憶されているモデルを再学習したモデルに更新する。
【0175】
モデル送信手段707(例えば、モデル送信部122)は、学習手段701によって学習されたモデルを、予め定められた1つまたは複数の第2の識別システムに送信する。
【0176】
そのような構成によって、本発明の識別システムは、自身のモデルの識別精度を向上させるように、自身のモデルを学習し直すことができ、また、他の識別システムのモデルの識別精度向上に寄与することができる。
【0177】
モデル送信手段707が、学習手段701がモデルを再学習した場合に、当該モデルを第2の識別システムに送信する構成であってもよい。
【0178】
モデル送信手段707が、定期的に、第1のモデル記憶手段702に記憶されているモデルを第2の識別システムに送信する構成であってもよい。
【0179】
第2の識別手段706が第2のモデル記憶手段704に記憶されている個々のモデル毎に導出した識別結果を統合することによって、第1の識別手段703が識別対象としたデータに対するラベルを特定する統合手段(例えば、統合部114)を備え、学習手段701が、統合手段によって特定されたラベルと、そのデータとを含む教師データを用いて、モデルを再学習し、モデル送信手段707が、第1の識別手段703が再学習されたモデルを用いて導出したそのデータの識別結果と、統合手段によって特定されたそのデータに対するラベルとが一致する場合に、再学習されたモデルを第2の識別システムに送信する構成であってもよい。
【0180】
モデル送信手段707が、学習手段701がモデルを再学習した場合に、所定時間内で、第1の識別手段703がそのモデルを用いて導出した識別結果の正解率が、予め定められた閾値以上である場合に、そのモデルを第2の識別システムに送信する構成であってもよい。
【0181】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0182】
本発明は、データをモデルに適用することによって、そのデータが表わす物体を識別する識別システムに好適に適用される。