以下、本発明の実施の形態(以下実施形態という)である領域分割装置1について、図面に基づいて説明する。本発明に係る領域分割装置は、空間に分布するデータ群を複数のクラスに分類する分類処理を行い空間をクラスで識別されるラベル領域に分割するものであり、本実施形態にて一例として示す領域分割装置1は、監視空間を撮影した画像を領域分割する。すなわち、本実施形態において、分類されるデータ群は二次元画像、それを構成するデータは画素であり、分割される空間は画像に対応する二次元空間である。
領域分割装置1は上記分類処理を行う分類器を備える。また、領域分割装置1は当該分類器を学習する学習装置を含む。
[領域分割装置1の構成]
図1は領域分割装置1の概略の構成を示すブロック図である。領域分割装置1は撮影部2、通信部3、記憶部4、画像処理部5および表示部6からなる。
撮影部2は、分類対象のデータ群として画像を取得するカメラであり、本実施形態においては監視カメラである。本実施形態では複数の撮影部2が用いられ、具体的には、撮影部2を撮影部2a,2b,2cの3つとした例を説明する。複数の撮影部2(2a,2b,2c)はそれぞれ通信部3を介して画像処理部5と接続され、監視空間を所定の時間間隔で撮影して画像を生成し、生成した画像を順次、画像処理部5に入力する。複数の撮影部2は監視空間を異なる視点から、視野に互いに共通する部分を有するように撮影する。つまり、当該複数の撮影部2により基本的に同時刻にて共通する空間が撮影された画像のセットは、互いに相関して取得された複数のデータ群からなるデータ群セットを構成する。例えば、各撮影部2は、監視空間である市街地の一角に設置されたポールに当該監視空間を俯瞰する所定の固定視野を有して設置され、監視空間をフレーム周期1秒で撮影してカラー画像を生成する。なお、撮影部2はカラー画像の代わりにモノクロ画像を生成してもよい。
通信部3は通信回路であり、その一端が画像処理部5に接続され、他端が撮影部2および表示部6と接続される。通信部3は撮影部2から画像を取得して画像処理部5に入力する。また、通信部3は画像処理部5からクラスへの分類結果やラベル領域へのセグメンテーションの結果を入力され表示部6へ出力する。
なお、撮影部2、通信部3、記憶部4、画像処理部5および表示部6の間は各部の設置場所に応じた形態で適宜接続される。例えば、撮影部2と通信部3および画像処理部5とが遠隔に設置される場合、撮影部2と通信部3との間をインターネット回線にて接続することができる。また、通信部3と画像処理部5との間はバスで接続する構成とすることができる。その他、接続手段として、LAN(Local Area Network)、各種ケーブルなどを用いることができる。
記憶部4は、ROM(Read Only Memory)、RAM(Random Access Memory)等のメモリ装置であり、各種プログラムや各種データを記憶する。例えば、記憶部4は学習用のデータや、学習済みモデルである分類器の情報を記憶し、画像処理部5との間でこれらの情報を入出力する。すなわち、分類器の学習に用いる情報、分類処理に必要な情報や当該処理の過程で生じた情報などが記憶部4と画像処理部5との間で入出力される。
画像処理部5は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)、GPU(Graphics Processing Unit)等の演算装置で構成される。画像処理部5は記憶部4からプログラムを読み出して実行することにより各種の処理手段・制御手段として動作し、必要に応じて、各種データを記憶部4から読み出し、生成したデータを記憶部4に記憶させる。例えば、画像処理部5は分類器を学習し生成すると共に、生成した分類器を通信部3経由で記憶部4に記憶させる。また、画像処理部5は分類器を用いて撮影部2からの画像のセグメンテーションを行う。
表示部6は、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等であり、通信部3を経由して画像処理部5から入力される分類処理やセグメンテーションの結果を表示する。
領域分割装置1は、画像を構成する各画素を分類器を用いてクラス分類し、画像をラベル領域に分割する装置であると共に、当該分類器を構築する学習動作を行う学習装置としての機能を有する。以下、領域分割装置1の構成について、先ず、セグメンテーション処理に関する構成、つまり領域分割装置としての構成について説明し、次いで、学習装置としての構成について説明する。
[領域分割装置としての構成]
図2はセグメンテーションを行う際の領域分割装置1の概略の機能ブロック図であり、記憶部4が分類器記憶手段40として機能し、画像処理部5がバイアス設定手段50、領域分割手段51として機能する。また、通信部3が画像処理部5と協働し、画像入力手段30および領域情報出力手段31として機能する。
画像入力手段30は撮影部2が撮影した画像を順次取得して領域分割手段51に入力する。
バイアス設定手段50は、分類処理に偏りを持たせるためのバイアス情報を領域分割手段51に入力する。バイアス設定手段50は、画像入力手段30から入力された画像(入力画像)に対する領域分割手段51による領域分割処理の開始に際して、初期バイアス情報を領域分割手段51に与える機能と共に、その領域分割結果に基づき、当該入力画像について修正バイアス情報を設定するバイアス修正部としての機能を有する。
上述のようにバイアス情報とは、分類処理に偏りを持たせるために与える情報であり、例えば、画像中に出現するであろうクラス、出現しないであろうクラスの情報を表現したものである。分類器にバイアス情報を入力することで、バイアス情報が与える制約の下にセグメンテーションが行われ、セグメンテーション結果に含まれるクラスを制御できるようになる。例えば、バイアス情報は、予め定められたN個のクラスそれぞれについて画像中に含まれるであろうクラスか否かの情報である。例えば、分類器が分類対象とする全クラスが当該Nクラスとして設定される。本実施形態では、バイアス設定手段50は、バイアス情報を、画像に含まれるであろうクラスを値“1”、含まれないであろうクラスを“0”で表したN次元のベクトルで設定する。
すなわち、バイアス情報(後述する初期バイアス情報および修正バイアス情報)は、予め定義された全クラスのそれぞれと一対一に対応した要素で表される情報であり、情報の当該要素は画素の位置に依存しない形式となっている。つまり、バイアス情報による上記制約は入力画像に対し一律に与えられる。そして、バイアス設定手段50が設定するバイアス情報は、画素の位置に依存しない形式とすることで、異なる視点で撮影された複数の入力画像、または/および異なる時刻に撮影された複数の入力画像に対して、画像間の位置合わせをせずとも適用できる。つまり当該形式のバイアス情報は、複数の入力画像に共通して適用することが容易である。
分類器記憶手段40は学習により生成された分類器を記憶している。本実施形態では、分類器は深層学習(Deep Learning)で用いられるような多層のネットワークで構成され、例えば、畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)でモデル化することができる。分類器記憶手段40は、CNNなどのネットワークを構成するフィルタのフィルタ係数やネットワーク構造などを含めた情報を分類器として記憶する。
領域分割手段51は、分類器記憶手段40に格納されている分類器を用いて、画像入力手段30から入力された入力画像、および当該入力画像に対しバイアス設定手段50により設定されるバイアス情報を入力として、画素について、事前定義された複数クラスのどれに属するかを推定する分類処理を行う。そして、領域分割手段51は分類器から出力されるクラス分類結果に基づいてラベル領域を求める。領域分割結果であるラベル領域は領域情報出力手段31およびバイアス設定手段50に入力される。
領域情報出力手段31は、領域分割手段51が求めたラベル領域を表示部6に出力する。例えば、領域情報出力手段31は、ラベル領域ごとに色分けされた画像を生成して表示部6に出力する。
図3は分類器の概略の機能ブロック図である。分類器は、画像とバイアス情報とを入力され、画像の各画素についてクラス分類を行い、その結果を出力する。
本実施形態の分類器を構成するネットワークは、特徴量抽出部400、バイアス情報圧縮部401、特徴量合成部402、およびクラス分類部403を含む。これらのうち特徴量抽出部400、特徴量合成部402およびクラス分類部403は直列に接続された複数層からなるネットワーク構造であり、この部分は画像を入力されクラス分類結果を出力する。以下、当該部分をネットワーク主部と呼ぶことにする。
特徴量抽出部400およびクラス分類部403は、畳み込み層や活性化関数、プーリング(pooling)層などから構成され、ネットワーク主部は例えば、近傍画素の特徴量を畳み込んだ特徴量マップを求める処理を繰り返し行って周囲の画素との関係を集約し、さらに元の画像の画素についてクラスを識別する処理を行う。本実施形態では、ネットワーク主部はその途中に特徴量合成部402を挿入され、特徴量合成部402の前と後との2つの部分に分かれる。これら2つの部分が特徴量抽出部400、クラス分類部403であり、特徴量抽出部400は画像を入力され、当該画像から特徴量の計算を行い、一方、クラス分類部403は特徴量合成部402が生成する合成特徴量に基づいて画素のクラス分類を行い画像を領域分割する処理を行う。つまり、特徴量合成部402とクラス分類部403とが、特徴量とバイアス情報とを入力され、バイアス情報が与える制約の下に特徴量に基づいて空間をラベル領域に領域分割する分割部を構成する。なお、クラス分類部403における処理は特徴量を計算する処理の一部を含み得る。
バイアス情報圧縮部401は全結合層などから構成され、低次元表現でのバイアス情報を得て特徴量合成部402へ出力する。つまり、バイアス情報は画像に映っているものやそのシーンに基づいて設定されるが、入力される画像中に現れるクラスの数は、分類器が分類可能な全クラスの数よりも十分小さいことが多く、また例えば屋外の画像に屋内のクラスは含まれにくい、屋内では壁と床は同時に含まれやすいなどの共起性を持つため、バイアス情報は比較的低次元の情報で表すことができ、バイアス情報圧縮部401はこの低次元化の変換処理を行う。例えば、バイアス情報圧縮部401は、予め定義された全クラスに応じた数の変数で表されるバイアス情報を入力され、当該情報を次元圧縮し、より少ない変数で表現されるバイアス情報に変換して出力する。
特徴量合成部402は、特徴量抽出部400にて抽出された特徴量に、バイアス情報圧縮部401にて圧縮されたバイアス情報を合成して合成特徴量を生成し、クラス分類部403へ入力する。
[学習装置としての構成]
図4は分類器の学習を行う学習装置としての領域分割装置1の概略の機能ブロック図であり、記憶部4が学習用データ記憶手段41および学習モデル記憶手段42として機能し、画像処理部5が学習用バイアス生成手段52および学習手段53として機能する。
学習用データ記憶手段41は、学習用データ群である多数の画像および当該画像に対し予め与えられた正解のクラスと、当該正解のクラスから導出したバイアス情報である学習用バイアス情報とを記憶する。学習用画像と当該画像それぞれに対応する正解のクラスとは、学習処理に先立って予め学習用データ記憶手段41に記憶される。一方、学習用バイアス情報は学習用バイアス生成手段52により生成され、学習用データ記憶手段41に記憶される。
学習用バイアス生成手段52は、学習用データ記憶手段41に記憶される学習用画像それぞれに対応して、その正解のクラスから学習用バイアス情報を生成して、学習用データ記憶手段41に記憶させる。
学習手段53は学習用画像、正解のクラスおよび学習用バイアス情報を入力とし、出力のクラス分類結果の正解に対する誤差に基づいて学習モデルを更新する学習を行う。
学習モデル記憶手段42は上述の分類器についての学習モデルを記憶する。学習手段53による学習処理に伴い、学習モデル記憶手段42に記憶される学習モデルは更新される。そして、学習が完了すると、学習モデル記憶手段42は分類器の学習済みモデルを記憶し、分類器記憶手段40として機能する。
[領域分割装置1の動作]
次に、領域分割装置1の動作を、領域分割処理と学習処理とに分けて説明する。
[領域分割処理での動作]
図5は領域分割処理での領域分割装置1の動作に関する概略のフロー図である。
領域分割装置1が領域分割処理を開始すると、撮影部2は所定時間おきに監視空間を撮影した画像を順次出力する。通信部3は画像入力手段30として機能し、撮影部2から画像を受信すると当該画像を画像処理部5に入力する。画像処理部5は、複数の撮影部2から画像を取得して(ステップS100)、図5のフロー図に示す動作を行う。本実施形態では、具体的には、撮影部2a,2b,2cにより撮影される3枚の画像を取得する。
画像処理部5は領域分割手段51として機能し、入力された複数の画像(入力画像)を、分類器記憶手段40から読み出した分類器に入力する。分類器の特徴量抽出部400は各入力画像から特徴量を抽出する(ステップS101)。
また、画像処理部5はバイアス設定手段50として機能し、入力画像に対し、セグメンテーション結果を操作するためのバイアス情報として、適当な初期バイアス情報を設定し、領域分割手段51は当該初期バイアス情報をバイアス設定手段50から取得して、分類器に入力する(ステップS102)。
例えば、屋外・屋内など入力画像中のシーンが既知であり入力画像中に含まれるクラスが限定できる場合は、それをもとに初期バイアス情報を定めることができる。例えば、初期バイアス情報は、入力画像中に含まれることが想定されるクラスをラベル領域に現れやすく指定し、それ以外のクラスを現れにくく指定する情報とすることができる。例えば、撮影部2を屋外に設置する場合は、屋外にて出現可能性のある物体等のクラス(屋外用クラス)に対応する要素に値“1”を設定し、それ以外のクラスに“0”を設定したN次元ベクトルを、予め屋外用の初期バイアス情報として設定する。本実施形態で示す例では、屋外用クラスに、少なくとも車両のクラス、コンテナのクラス、道路のクラス、建物のクラスを含ませる。
分類器は、入力されたバイアス情報をバイアス情報圧縮部401にて圧縮し、特徴量合成部402へ出力する(ステップS103)。特徴量合成部402は、入力画像ごとに、特徴量抽出部400から出力される特徴量に、バイアス情報圧縮部401から出力されるバイアス情報を合成して、合成特徴量を生成する(ステップS104)。
図6は合成特徴量の生成処理を説明する模式図である。図6は図3に示した分類器内におけるデータを模式的に表しており、図の左側には、ネットワーク主部をなす図3の特徴量抽出部400、特徴量合成部402およびクラス分類部403の並びに対応して、分類器へ入力される画像100、特徴量合成部402により生成される合成特徴量110、分類器から出力されるクラス分類結果140が並んでいる。また、図の右側には、バイアス情報圧縮部401の入力ノード120および当該ノードに入力されるバイアス情報121、並びにバイアス情報圧縮部401の出力ノード130が示されている。
図6の左側に並ぶネットワーク主部のデータに関し、入力画像100の幅方向にx軸、高さ方向にy軸をとり、また特徴量のチャンネルに対応する次元をc軸で表している。入力画像100の大きさはx方向にWI画素、y方向にHI画素である。特徴量抽出部400にて生成される特徴量マップはx方向にWF画素、y方向にHF画素の大きさで、c方向の大きさ、つまりチャンネル数はCチャンネルとする。ちなみに、特徴量マップのx,y方向のサイズは一般に入力画像100のサイズとは一致せず、通常、WF<WI,HF<HIとなる。
図6に例示するバイアス情報121は、予め定められたN個のクラスそれぞれについて画像中に含まれるであろうクラスか否かを表す上述したN次元ベクトルの情報である。なお、図6にはバイアス情報121の具体的な内容の一例を示しており、上述した屋外用クラスのうち“車両”、“コンテナ”、“道路”のクラスは画像に含まれるとして、ベクトルにて対応する要素に“1”が設定され、一方、それ以外のクラスは画像に含まれないとして、対応する要素に“0”が設定されている。
バイアス情報圧縮部401の入力ノード120はバイアス情報121の要素と一対一に対応しており、その数はNであり、一方、出力ノード130の数DはN未満である。バイアス情報圧縮部401は、入力ノード120に入力されたバイアス情報121を次元圧縮して、出力ノード130から圧縮されたバイアス情報を出力する。つまり、バイアス情報121はN次元のベクトルからD次元のベクトルに圧縮される。ちなみに、図6では、バイアス情報圧縮部401として、入力ノード120と出力ノード130とが全結合された構成を示している。
特徴量合成部402は、バイアス情報圧縮部401の出力ノード130から圧縮されたバイアス情報を入力され、当該バイアス情報を特徴量抽出部400から入力された特徴量マップと合成して、合成特徴量110を生成する。合成特徴量110は、特徴量抽出部400からの入力特徴量マップにてx座標、y座標の組で指定されるC次元の特徴量ベクトルそれぞれにD次元ベクトルで表されるバイアス情報を連結したものであり、当該入力特徴量マップと幅と高さが同じで、チャンネル数が(C+D)チャンネルとなった構造を有する。例えば、合成特徴量110の第1~第Cチャンネルは特徴量抽出部400からの特徴量マップの画像特徴量で、第(C+1)~第(C+D)チャンネルに、バイアス情報圧縮部401の出力ノード130の第1~第Dノードの出力値が設定される。
本実施形態では各(x,y)座標のバイアス情報は共通であるので、合成特徴量110の構造は、バイアス情報のD個の要素それぞれをx,y方向に複製して特徴量抽出部400の出力と同じWF×HF画素の大きさに拡大し、それを入力特徴量マップに積層した構造である。つまり、例えば、第1~第Cチャンネルの画像特徴量は座標(x,y)に応じて異なり得るのに対し、本実施形態では第(C+1)~第(C+D)の各チャンネルには全ての座標(x,y)に共通の値が設定される。
クラス分類部403は合成特徴量110に基づき入力画像100の各画素についてクラス分類を行い、クラス分類結果140を出力する。つまり、クラス分類結果140は入力画像100の画素ごとの分類結果からなる。例えば、各画素に、分類対象とするクラス数に当たるN個の値が対応付けられる。この場合、図6に示すように、クラス分類結果140はx方向にWI画素、y方向にHI画素、c方向にNチャンネルであるデータとなる。クラス分類結果140のチャンネルはN個のクラスと一対一に対応しており、例えば、各画素の各チャンネルには、当該チャンネルに対応するクラスに当該画素が属する確からしさが高いほど大きな値が与えられる。
領域分割手段51は、クラス分類結果140に基づいて、入力画像100の各画素についてクラス分類を行い、これにより入力画像100が領域分割されラベル領域が定義される(ステップS105)。例えば、領域分割手段51は入力画像100の座標(x,y)の画素を、クラス分類結果140の当該座標(x,y)において最大値が出力されたチャンネルに対応するクラスに分類することができる。
領域分割手段51は、ステップS100にて取得した複数の画像それぞれを入力画像100として、ステップS101にて特徴量を抽出し、当該特徴量を用いてステップS104にて合成特徴量110を生成し、ステップS105にてラベル領域に領域分割する。ステップS105で得られた領域分割結果はバイアス設定手段50に入力され、バイアス設定手段50はバイアス修正部として機能し、複数の撮影部2により取得された画像セットについて修正バイアス情報を設定する。本実施形態では、修正バイアス情報はバイアス情報と共通の形式であり、バイアス情報を構成するクラス別の要素を修正して作られる。 具体的には、バイアス設定手段50は、当該画像セットに対する領域分割結果にて、各クラスが当該画像セットのうちの何枚の画像に現れたかをカウントする(ステップS105)。そのカウントの値が大きいクラスは正しい分類により現れたクラスであり、当該値が小さいクラスは誤分類により現れたクラスである可能性が高いとの仮定の下、バイアス設定手段50は当該画像セットに対するバイアス情報を修正する。具体的には、バイアス設定手段50は、ステップS100にて取得された画像セットの領域分割結果に現れたクラスのうち過半数の画像に共通して現れたものを共通クラスとして抽出し(ステップS106)、共通クラスを用いて修正バイアス情報を生成する(ステップS107)。例えば、クラス分類結果に共通クラスのみが強く出るように、それ以外のクラスは出にくくなるような修正バイアス情報を設定する。例えば、ラベル領域に付与されるクラスに当該共通クラスが含まれることを修正バイアス情報として設定することができ、具体的には、バイアス情報を上述のN次元ベクトルの形式で定義する場合に、共通クラスのみに値“1”を設定したベクトルを修正バイアス情報とすることができる。
領域分割手段51はバイアス設定手段50から修正バイアス情報を取得し、ステップS100にて取得された複数の画像に関して、修正バイアス情報の下でステップS103~S105の処理を行い領域分割をやり直す。
ここで、この再度の領域分割処理では、バイアス情報の圧縮(ステップS103)と合成特徴量110の生成(ステップS104)以降の処理が行われる。つまり、ステップS101の各入力画像から特徴量を抽出する処理は繰り返されない。領域分割手段51はステップS101を一度行うと、得られた特徴量を例えば、記憶部4に記憶させるなどして保持し、再度の領域分割処理では保持された同じ特徴量が繰り返して使用される。分類器での処理の負荷は専ら特徴量抽出の部分によって占められ、他の部分の負荷は低いので、領域分割装置1では、特徴量の抽出を繰り返さないことで、領域分割処理の反復の高速化が図られる。
この再度の領域分割は例えば、修正バイアス情報が収束する、つまり、バイアス情報がその修正処理で変化しなくなるまで繰り返すことができる。また、バイアス情報の修正の上限回数を予め定めておき、当該回数に達した場合は、バイアス情報が収束しなくても領域分割処理の反復を打ち切る構成とすることができる。例えば、領域分割手段51は、ステップS107で生成された修正バイアス情報が直前の領域分割処理で用いたバイアス情報からの修正を含んでおり、且つ修正バイアス情報の生成回数、つまりバイアス情報の修正回数が上限回数以下である場合(ステップS108にて「YES」の場合)、ステップS103に戻って領域分割処理を繰り返す。
一方、修正バイアス情報が収束した場合、または修正回数が上限回数を超えた場合には(ステップS108にて「NO」の場合)、領域分割手段51は領域分割の反復処理を終了し、領域情報出力手段31は各入力画像について領域分割手段51から最後のラベル領域情報を入力され、これを分割処理の最終結果として表示部6に出力する(ステップS109)。
領域分割装置1は、ステップS100にて入力された画像セットについてステップS109にてラベル領域情報を出力するとステップS100に戻り、次に入力される画像セットについて上述のステップS100~S109の処理を繰り返す。
図7は、領域分割装置1の領域分割処理の処理例を説明するための模式図である。図7には、複数の撮影部2それぞれからの入力画像200、当該入力画像から生成されたラベル領域情報210、当該ラベル領域情報における出現クラス220、および修正バイアス情報230についての例が示されている。
入力画像200a,200b,200cはそれぞれステップS100にて撮影部2a,2b,2cから入力される画像であり、トラックの像201a,201b,201c、道路の像202a,202b,202c、建物の像203a,203b,203cを含んでいる。入力画像200a,200b,200cが共通の監視空間を互いに異なる方向から撮影した画像であることに対応して、同一のトラックについての像201a,201b,201cも互いに異なる方向から撮影されている。
ラベル領域情報210a,210b,210cはステップS105にて、入力画像200a,200b,200cをそれぞれ初期バイアス情報を用いて領域分割した画像である。上述したように本実施形態では初期バイアス情報は屋外用クラスに値“1”を設定したN次元ベクトルであり、少なくとも車両、コンテナ、道路、建物のクラスに値“1”が設定されている。
各入力画像200の道路の像202a,202b,202cを構成する各画素は正しく道路のクラスに分類され、当該像に対する領域分割結果として道路領域としてのラベル領域212a,212b,212cが得られ、また、建物の像203a,203b,203cを構成する各画素は正しく建物のクラスに分類され、当該像に対する領域分割結果として建物領域としてのラベル領域213a,213b,213cが得られる。
一方、トラックの像に関しては、トラックを側方から撮影した像201b,201cを構成する各画素は正しく車両のクラスに分類され、当該像に対応するラベル領域211b,211cは正しく車両領域となるが、トラックを後方から撮影した像201aにおいてはキャブが荷室に隠れて専ら荷室が写ることに起因して、当該像を構成する画素がコンテナのクラスに分類され、当該像に対する領域分割結果としては、期待される車両領域ではなくコンテナの領域としてのラベル領域211aが得られる。つまり、この点で入力画像200aと入力画像200b,200cとで整合しない領域分割結果となる。
出現クラス220a,220b,220cは各入力画像の領域分割で現れたクラスであり、出現クラス220aはラベル領域情報210aに対応して、“コンテナ”、“道路”、“建物”からなり、出現クラス220b,220cはそれぞれラベル領域情報210b,210cに対応して、“車両”、“道路”、“建物”からなる。
バイアス設定手段50はステップS107にて、出現クラス220a,220b,220cから修正バイアス情報230を生成する。具体的には、修正バイアス情報230におけるクラスごとのベクトル要素のうち、3つの入力画像200のうちの2つで出現した車両クラスには値“1”が設定され、一方、3つの入力画像200のうちの1つでしか出現しなかったコンテナクラスには値“0”が設定される。また、3つの入力画像200のすべてで出現した道路クラス及び建物クラスには値“1”が設定される。すなわち、修正バイアス情報230では、コンテナクラスの値が初期バイアス情報における“1”から“0”に変更されている。
領域分割手段51は、修正バイアス情報230を用いてステップS103~S105の処理を行うことで、再度、各入力画像200の画素を分類する。この修正バイアス情報230を用いたクラス分類では、車両クラスの出現は抑制されないままコンテナクラスの出現が抑制されるため、トラックの像201a内の各画素が正しく車両クラスに分類され、ラベル領域211aを車両クラスに修正することが可能となる。
[学習処理での動作]
領域分割装置1は入力画像を領域分割する動作に先立って、分類器を学習する動作を行う。以下、この分類器の学習について説明する。領域分割装置1における分類器の学習は、学習用画像とそれに対応する領域分割の正解データである正解のクラスと正解のクラスから作成したバイアス情報(学習用バイアス情報)とを用い、学習用画像に対して分類器の学習モデルが分類した結果と正解データとの誤差をもとに、誤差逆伝播法などの既知の最適化手法を用いて、学習モデルのパラメータを繰り返し誤差が収束するまで更新する。この学習によって分類処理を偏らせる制御が可能な分類器を学習させることができる。また、当該分類器の学習は、特徴量抽出部400およびクラス分類部403の学習に加え、学習用バイアス情報を用いてバイアス情報圧縮部401を学習する動作を含む。
図8は学習処理での領域分割装置1の動作に関する概略のフロー図である。
当該学習処理では、学習用データとして、学習用画像、正解のクラスおよび学習用バイアス情報を用いる。そこで、学習動作開始が指示されると、画像処理部5は学習用バイアス生成手段52として機能し、学習用データ記憶手段41に記憶される各学習用画像について学習用バイアス情報を生成する。具体的には、学習用バイアス生成手段52は、学習用データ記憶手段41に学習用画像に対応付けて記憶されている正解のクラスから学習用バイアス情報を生成し、これを当該学習用画像に対応付けて学習用データ記憶手段41に記憶させる(ステップS200)。
学習用バイアス情報は上述のバイアス情報121に整合する形式であり、本実施形態ではN個のクラスに対応した要素からなるN次元ベクトルである。当該ベクトルを{Bi}(1≦i≦N)と表し、また、正解のクラスが、対応する学習用画像に含まれるクラスの集合Lを与える場合に、一例として、学習用バイアス情報のベクトルの各要素Biの値は、当該要素に対応するクラスが集合Lに含まれるクラスであるか否かに応じて設定することができる。つまり、この例では、分類器が分類対象とする全クラスをNクラスとし、そのi番目(1≦i≦N)のクラスをCiで表すと、学習用バイアス生成手段52は当該クラスCiに対応する学習用バイアス情報のベクトルの要素Biを次式で設定する。
ステップS200での学習用バイアス情報の生成により学習用データが揃うと、画像処理部5は学習手段53として機能し、学習モデル記憶手段42から分類器の学習モデルを読み出す(ステップS201)。なお、この段階での学習モデルのパラメータは初期値である。
次に、学習手段53は学習用データ記憶手段41から、学習用画像、正解のクラスおよび学習用バイアス情報のセットからなる学習用データを読み出し(ステップS202)、学習モデルを更新するための処理(ステップS203~S207)を行う。なお、ステップS202で読み出す学習用データは、学習用データ記憶手段41に記憶されている学習用データの全セットではなく一部のセットであり、学習手段53は学習データを一部分ずつ順次読み出し学習モデルを更新する処理を繰り返す。本実施形態ではステップS202にて複数セットの学習用データを読み出す。例えば、10枚の学習用画像に対応する学習用データのセットが読み出される。
学習手段53は、読み出した学習用データを1セットずつ順次処理対象に設定し(ステップS203)、処理対象の学習用画像とその学習用バイアス情報とを学習モデルに入力して処理対象の学習用画像の各画素を分類させる(ステップS204)。ステップS204では、その時点でのバイアス情報圧縮部401のパラメータを使用して学習用バイアス情報が圧縮され、また、その時点での特徴量抽出部400のパラメータを用いて学習用画像の特徴量が算出される。それ以外の点ではステップS204での処理は基本的に、上述した領域分割処理の図5のステップS102~S105と同様であり、特徴量合成部402によって、圧縮された学習用バイアス情報と特徴量抽出部400にて抽出された特徴量とから合成特徴量が作成され、クラス分類部403によって、各画素が属するクラスの分類が行われる。
ステップS203、S204の処理はステップS202で読み出した全ての学習用データに対して繰り返される(ステップS205にて「NO」の場合)。
全ての学習用データについて処理を終えると(ステップS205にて「YES」の場合)、学習手段53は、分類結果として得られたクラスと、正解のクラスとを比較して、分類結果の誤差を計算し(ステップS206)、その誤差をもとに学習モデルを更新する(ステップS207)。例えば、学習手段53はステップS207にて、誤差逆伝播法などを用いて、特徴量抽出部400、クラス分類部403およびバイアス情報圧縮部401のパラメータを更新する。
学習手段53は、所定の反復終了条件が満たされていなければ(ステップS208にて「NO」の場合)、ステップS202~S208の処理を繰り返す。例えば、ステップS206で求める誤差が収束すること、および、反復回数が予め定めた上限回数に達することのいずれかを満たすことが反復終了条件とされる。
反復終了条件が満たされた場合には(ステップS208にて「YES」の場合)、学習手段53はステップS207で更新された学習モデルを学習済みモデルとして学習モデル記憶手段42に保存する(ステップS209)。具体的には、ステップS207で更新された各パラメータが保存される。これにより学習処理が終了し、上述したように、学習モデル記憶手段42は分類器記憶手段40となり、当該学習済みモデルは分類器として領域分割装置1の領域分割処理に供される。
[変形例]
(1)初期バイアス情報の設定の仕方は上記実施形態に限られず、様々な手法が可能である。例えば、初期バイアス情報として、全てのクラスが均等に出現することを設定してもよい。
また、或るデータ取得手段から時系列でデータ群セットが得られる場合は、前時刻のデータ群セットでのバイアス情報を再利用してもよい。例えば、領域分割装置1は、時刻Tにて取得した入力画像に対する初期バイアス情報として、時刻Tの前時刻にて取得した画像セットを領域分割した際の最後の修正バイアス情報を用いることができる。
(2)バイアス情報の修正の仕方は上記実施形態に限られず、様々な手法が可能である。例えば、上記実施形態では、共通クラスを過半数のデータ群の領域分割結果に現れたクラスとしたが、これを緩和して共通クラスを2以上のデータ群の領域分割結果に現れたクラスとすることができる。
また例えば、トラックのように大きな物体は複数のカメラに同時に映りこみやすいが、人のように比較的小さい物体は、1つのカメラにしか映らない場合も考えられる。バイアス条件を修正する際に、このように対象の想定される大きさなど各クラスの情報を考慮してバイアス情報を設定してもよい。具体的には、上記実施形態或いはその変形例では、修正バイアス情報の或るクラスの値を“1”に設定する条件は、複数の入力画像200のうちの過半数或いは2以上に当該クラスが出現することであり、当該条件は全てのクラスについて一律であったが、カメラへ映りにくいクラスについては条件を緩和することができ、例えば、トラックについては3つの入力画像200のうち2つ以上に出現することを条件とするところ、人のように映りにくいクラスについては3つの入力画像200のうち1つ以上に出現することを条件とすることができる。すなわち、バイアス修正部としてのバイアス設定手段50を、データ群セットの領域分割結果に現れたクラスのうち、当該各クラスが表す物体の大きさに応じて定められた個数以上のデータ群に現れた出現クラスを求め、修正バイアス情報として、ラベル領域に付与されるクラスに当該出現クラスが含まれることを設定する構成とすることができる。
また、本発明に係る領域分割装置は、領域分割結果に現れたクラスごとに分類処理の信頼度を算出する信頼度算出部を備え、バイアス修正部としてのバイアス設定手段50は、データ群セットにて信頼度が最も高い領域分割結果に現れたクラスに従って修正バイアス情報を設定する構成とすることができる。例えば、信頼度が高い領域のみを用いてバイアス情報を修正してもよい。
信頼度の算出には周知の手法を用いることができ、例えば、以下の論文(i),(ii)の手法が利用できる。
(i)Alex Kendall, Vijay Badrinarayanan and Roberto Cipolla, “Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding”, BMVC, 2017
(ii)Rupprecht, Christian, et al. “Learning in an uncertain world: Representing ambiguity through multiple hypotheses”, Proceedings of the IEEE International Conference on Computer Vision. 2017
例えば、(i)の手法を用いた場合、分割部は分類器におけるネットワークの一部を切断して切断箇所を変更しながら分類処理を複数回繰り返す。このとき初期バイアス情報や修正バイアス情報は変更しない。分割部は繰り返しの過程でクラス分類部403の中間結果である、各画素におけるクラスごとの確からしさを保持しておく。そして、分割部は各画素についてクラスごとに、繰り返し回数分だけ取得した確からしさに関しばらつきと平均値を求める。分割部は、画素ごとに、平均値が最も高いクラスについて、ばらつきが小さいほど高い信頼度(「クラスごとの信頼度」)を算出する。各画素における「平均値が最も高いクラス」が分類結果となる。バイアス修正部は、画像ごとに各クラスの信頼度の平均値を算出し、さらに全画像にわたってクラスごとに平均し、当該平均値が予め定めた閾値以上であるクラスを現れやすいクラスに設定し、閾値未満であるクラスを現れにくいクラスに設定した修正バイアス情報を生成する。
また例えば、(ii)の手法を用いた場合、分類器のクラス分類部403は複数通りの確からしさを、各画素についてクラスごとに算出する。分割部は各画素についてクラスごとに、複数通り算出した確からしさのばらつきと平均値を求める。分割部は、画素ごとに、平均値が最も高いクラスについて、ばらつきが小さいほど高い信頼度(「クラスごとの信頼度」)を算出する。各画素における「平均値が最も高いクラス」が分類結果となる。バイアス修正部は、画像ごとに各クラスの信頼度の平均値を算出し、さらに全画像にわたってクラスごとに平均し、当該平均値が予め定めた閾値以上であるクラスを現れやすいクラスに設定し、閾値未満であるクラスを現れにくいクラスに設定した修正バイアス情報を生成する。
また、データ群セットを全ての撮影部2により取得されたデータ群とせず、任意の部分的な撮影部2の組み合わせで取得されたデータ群としてもよい。例えば、4台の撮影部2を2台ずつの組に分け、2つの組それぞれでバイアス情報を修正してもよい。また、例えば、右隣の撮影部2の領域分割結果からバイアス情報を作成し、自身の領域分割結果を更新するという手順を繰り返し各撮影部2について行い、バイアス情報が更新されなくなるか、最大更新回数に達するまで処理を行ってもよい。
(3)上記実施形態では、互いに相関して取得された複数のデータ群からなるデータ群セットとして、複数の撮影部2により取得される複数の画像を示したが、データ群セットはこれに限られない。例えば、1台の撮影部2で同じ視野を比較的近接した複数タイミングで順次撮影した時系列画像は、互いに相関して取得された複数のデータ群からなるデータ群セットを構成する。例えば、上記実施形態の領域分割装置1にて、図5のステップS100での分類器への入力画像を、複数の撮影部2からの画像に代えて、時系列画像とすることができる。また、複数の撮影部2による時系列画像で上述のデータ群セットを構成することもできる。
(4)上記実施形態および各変形例では、データ群を二次元画像とする例を示したが、この例に限られない。例えばデータ群を二次元画像の時系列とすることができる。その場合、空間は時空間であり、データは画素である。また例えば、データ群を距離画像、空間を二次元空間、データを画素(距離値)とすることもできる。なお、その場合、撮像部2は距離画像センサとなる。また例えば、データ群をポイントクラウド等の三次元計測データ、空間を三次元空間、データを計測点とすることもできる。なお、その場合は撮像部2に代えて三次元計測器が用いられる。
(5)上記実施形態およびその変形例では、バイアス情報においてラベル領域に付与されるクラスに含まれやすくさせる(現れやすくさせる)ために値“1”を設定し、含まれにくくさせる(現れにくくさせる)ために値“0”を設定する例を示したが、バイアス情報は2値表現に限らず、3値以上の多値で表現されるものであってもよいし、連続値で表現されるものであってもよい。
例えば、上述した共通クラスの例においては修正バイアス情報を、データ群セットにおいて各共通クラスが領域分割結果に現れたデータ群の数の割合とすることができる(3つの入力画像のうちの2つに現れた共通クラスに対応する要素値に2/3を設定するなど)。
また、例えば上述した「クラスごとの信頼度」を修正バイアス情報の要素値に設定することができる。