【文献】
篠原 伸之,複合外乱対応のためのDNNを用いたマッチングパラメータの自動決定,第23回 画像センシングシンポジウム SSII2017 [USB] The 23rd Symposium on Sensing via Image Information,日本,画像センシング技術研究会,2017年 6月 7日,IS1-04
【文献】
ZHOU, Bolei et al.,Object Detectors Emerge in Deep Scene CNNs,ICLR 2015 conference paper,arXiv,2015年 4月15日,pp.1-12.,URL,https://arxiv.org/abs/1412.6856
(58)【調査した分野】(Int.Cl.,DB名)
前記第1処理部および前記第2処理部において使用されるニューラルネットワークは、畳み込み層とプーリング層とを含み、全結合層を除外した畳み込みニューラルネットワークであり、当該畳み込みニューラルネットワークでは、1×1の空間次元を有する処理結果に対して、前記畳み込み層のフィルタの学習がなされていることを特徴とする請求項3に記載の処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
建築図面のような画像から、電気記号のようなパターンを抽出するために、ニューラルネットワークを使用することが可能である。パターンを抽出できれば、画像に含まれた複数のパターンをパターンの種類毎に積算することも可能になる。しかしながら、パターンには多くの種類が存在するので、すべてのパターンに対してニューラルネットワークを学習させることは困難である。一方、学習が不十分であると、処理の正確性が低下する。
【0005】
本開示はこうした状況に鑑みなされたものであり、その目的は、学習の作業量の増加を抑制しながら、処理の正確性の低下を抑制する技術を提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本開示のある態様の処理装置は、画像に含まれた複数のパターンをパターンの種類毎に積算する処理装置であって、画像を入力する入力部と、入力部に入力した画像に対して、パターンの種類を分類した系統であって、かつパターンの種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、画像に含まれた複数のパターンのそれぞれをいずれかの系統として検出する第1処理部と、第1処理部において検出した各系統の位置をもとに、画像から、系統が含まれた部分を複数抽出する抽出部と、抽出部において抽出した複数の部分に対して、パターンの種類を分類した系統であって、かつパターンの種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、各系統に対する特定の中間層の中間データを取得する第2処理部と、第2処理部において取得した中間データに対して、パターンの種類の数に応じたクラスタリングを実行するクラスタリング部と、クラスタリング部におけるクラスタリングの結果である各クラスタに含まれたパターンの数を算出する算出部と、を含む。
【0007】
本開示の別の態様は、処理方法である。この方法は、画像に含まれた複数のパターンをパターンの種類毎に
コンピュータで積算する処理方法であって、
コンピュータに画像を入力するステップと、
コンピュータが、入力した画像に対して、パターンの種類を分類した系統であって、かつパターンの種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、画像に含まれた複数のパターンのそれぞれをいずれかの系統として検出するステップと、
コンピュータが、検出した各系統の位置をもとに、画像から、系統が含まれた部分を複数抽出するステップと、
コンピュータが、抽出した複数の部分に対して、パターンの種類を分類した系統であって、かつパターンの種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、各系統に対する特定の中間層の中間データを取得するステップと、
コンピュータが、取得した中間データに対して、パターンの種類の数に応じたクラスタリングを実行するステップと、
コンピュータが、クラスタリングの結果である各クラスタに含まれたパターンの数を算出するステップと、を含む。
【0008】
なお、以上の構成要素の任意の組合せ、本開示の表現を方法、装置、システム、コンピュータプログラム、またはコンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本開示の態様として有効である。
【発明の効果】
【0009】
本開示によれば、学習の作業量の増加を抑制しながら、処理の正確性の低下を抑制できる。
【発明を実施するための形態】
【0011】
本開示の実施例を具体的に説明する前に、本実施例の概要を説明する。実施例は、複数の電気記号が示されている建設図面から、電気記号の種類毎に個数を積算する処理装置に関する。建設図面から電気記号を抽出する精度を向上するために、ニューラルネットワークを使用することが有力である。しかしながら、電気記号の種類は数十種類以上と多いとともに、類似した形状の電気記号も存在する。そのため、すべての電気記号に対してニューラルネットワークを学習させることは困難であるとともに、新たな電気記号が出現した場合に誤判定が生じる可能性がある。さらに、学習が不十分であっても誤判定が生じる可能性がある。
【0012】
これに対応するために、本実施例では、類似した形状の電気記号をグループとしてまとめることによって、電気記号の種類数よりも少ない種類数のグループに複数のパターンが分類されることを利用する。以下では、電気記号を「パターン」と呼び、グループを「系統」と呼び、さらに建設図面を「画像」と呼ぶ。ここでは、例えば、インターホン系統、差動式煙感知器系統、光電式煙感知器系統の3種類の系統にパターンが分類される。このような状況下において、処理装置におけるニューラルネットワークは、これらの系統に対して学習されている。処理装置に画像が入力されると、ニューラルネットワークの処理によって画像中に示された各系統が検出されるとともに、各系統の位置が特定される。処理装置は、各系統の位置をもとに、各系統が含まれた部分を画像から抽出する。また、処理装置は、抽出した各部分に対してニューラルネットワークの処理を実行することによって、特定の中間層の中間データを出力する。さらに、処理装置は、中間データに対してクラスタリングを実行してから、各クラスタに含まれたパターンの数を算出する。
【0013】
図1は、処理対象となる画像10を示す。画像10の一例は、前述のごとく建設図面である。画像10には、パターン20と総称される第1パターン20aから第26パターン20z、第27パターン20aa、第28パターン20ab、第29パターン20ac、第30パターン20adが含まれる。各パターン20は電気記号である。ここでは、画像10に含まれるパターン20を「30」としたが、それに限定されない。パターン20の形状が異なれば、別の電気記号を示すので、別の機器に相当する。例えば、第5パターン20eと第6パターン20fは同じ形状であるが、第5パターン20eと第1パターン20aは異なる形状である。このような画像10をもとに見積書を作成する場合、ユーザは、パターン20の種類毎にパターン20の数を数える必要がある。画像10のサイズが大きくなり、画像10に含まれるパターン20の数が増加するほど、その作業にかかる手間が大きくなる。
【0014】
図2は、画像10に含まれうるパターン20と系統を示す。類似した機器に対して、類似した形状のパターン20が定められる。ここでは、類似した形状のパターン20を系統としてまとめる。図示のごとく、インターホン系統、差動式煙感知器系統、光電式煙感知器系統という3種類の系統が規定される。また、インターホン系統には、インターホン30と総称される第1インターホン30aから第4インターホン30dが含まれる。差動式煙感知器系統には、差動式煙感知器32と総称される第1差動式煙感知器32aから第6差動式煙感知器32fが含まれる。光電式煙感知器系統には、光電式煙感知器34と総称される第1光電式煙感知器34aから第6光電式煙感知器34fが含まれる。インターホン30、差動式煙感知器32、光電式煙感知器34もパターン20の1つである。例えば、
図1の第1パターン20aは第2インターホン30bであり、第2パターン20bは第6光電式煙感知器34fである。このように系統は、パターン20の種類を分類しているといえる。また、系統の種類の数は、パターン20の種類の数よりも少ない。
【0015】
図3(a)−(b)は、処理装置100の構成を示す。特に、
図3(a)は、学習処理のための構成を示し、
図3(b)は、積算処理ための構成を示す。積算処理とは、画像10に対してニューラルネットワークを使用することによって、パターン20を系統に分類する処理を実行しながら、画像10に含まれた複数のパターン20をパターン20の種類毎に積算する処理である。
図3(a)における処理装置100と
図3(b)における処理装置100とは、同一の装置であってもよいし、別の装置であってもよい。
【0016】
処理装置100は、学習処理ための構成として、第1入力部110、第2入力部112、処理部114を含み、積算処理のための構成として、入力部120、処理部114、抽出部124、クラスタリング部128、算出部130、出力部132を含む。また、処理部114は、第1処理部122、第2処理部126を含む。ここで、学習処理において処理部114が学習され、積算処理において処理部114が使用される。処理装置100の構成を説明する前に、処理部114の構成を説明する。
【0017】
図4は、処理部114における処理の概要を示す。処理部114は、畳み込み層142と総称する第1畳み込み層142a、第2畳み込み層142b、第3畳み込み層142c、第4畳み込み層142d、第5畳み込み層142e、第6畳み込み層142f、プーリング層144と総称する第1プーリング層144a、第2プーリング層144b、第3プーリング層144c、第4プーリング層144d、第5プーリング層144eを含む。このような畳み込み層142、プーリング層144は、各処理を実行するブロックのイメージを示す。入力画像140は、処理装置100における処理対象となる画像である。処理部114におけるニューラルネットワークには、全結合層が含まれないので、入力画像140のサイズに対する制限が設けられない。そのため、入力画像140は、前述の画像10であってもよい。入力画像140は、第1畳み込み層142aに入力される。
【0018】
各畳み込み層142は、直六面体で示される。畳み込み層142の奥行き方向と高さ方向を有する正方形の面の大きさは、畳み込み層142において処理される画像の空間次元の大きさ、つまり画像のサイズを示す。畳み込み層142は、画像に対して、画像のサイズよりも小さいサイズの空間フィルタをずらしながら空間フィルタリングを実行する。空間フィルタリングは公知の技術であるので、ここでは説明を省略するが、この空間フィルタリングが畳み込み処理に相当し、畳み込み処理によって画像の特徴量が抽出される。畳み込み層142においてパディング等が実行されてもよい。さらに、畳み込み層142は、画像に対して、複数の空間フィルタを並列に使用して、複数の空間フィルタリングを並列して実行してもよい。このような複数の空間フィルタの並列使用によって、画像が増加する。畳み込み層142において並列に使用される空間フィルタの数は、チャンネル数と呼ばれ、これは畳み込み層142の左右方向の長さによって示される。
【0019】
各プーリング層144も畳み込み層142と同様に構成される。プーリング層144は、画像内の任意の領域に含まれた複数の画素を1つの画素にまとめることによって、画像のサイズを小さくする。ここで、複数の画素を1つの画素にまとめるために、平均プーリングあるいは最大プーリングが実行される。平均プーリングでは、領域内の複数の画素値の平均値が1つの画素に対して使用され、最大プーリングでは、領域内の複数の画素値のうちの最大値が1つの画素に対して使用される。プーリング処理は、着目領域における代表値あるいは平均値の並進移動に対してロバスト性を強化するためになされる。
【0020】
ここでは、第1畳み込み層142a、第1プーリング層144a、第2畳み込み層142b、第2プーリング層144b、第3畳み込み層142c、第3プーリング層144c、第4畳み込み層142d、第4プーリング層144d、第5畳み込み層142e、第5プーリング層144e、第6畳み込み層142fが順に配置される。つまり、畳み込み処理とプーリング処理とが繰り返し実行される。また、畳み込み処理とプーリング処理とが繰り返されることによって、画像のサイズが順に小さくされ、第6プーリング層144fは、1以上のチャンネル数を有する画像(以下、「出力画像」という)を出力する。ここでは、一例として、出力画像のチャンネル数を「3」とする。
【0021】
このような処理部114の構成をもとにして、ここでは、
図3(a)を使用しながら、処理装置100における学習処理を説明する。第1入力部110は、既知の出力画像となる教師データを受けつけ、第2入力部112は、第1入力部110において受けつけた教師データに対応した学習用画像を受けつける。処理部114は、
図4の構成を有し、第1入力部110において受けつけた教師データと、第2入力部112において受けつけた学習用画像とをもとに、各畳み込み層142の空間フィルタの係数を学習させる。
【0022】
学習用画像には、インターホン30、差動式煙感知器32、光電式煙感知器34のいずれかのパターン20が含まれる。教師データは、学習用画像にインターホン30が含まれている場合にインターホン系統であり、学習用画像として差動式煙感知器32が含まれている場合に差動式煙感知器系統であり、学習用画像として光電式煙感知器34が含まれている場合に光電式煙感知器系統である。
図5は、第1入力部110に入力される教師データのデータ構造を示す。教師データは、3チャンネルを有しており、インターホン系統、差動式煙感知器系統、光電式煙感知器系統のいずれかが学習用画像に応じて示される。
【0023】
つまり、教師データのサイズは1×1の空間次元を有する。そのため、教師データは、学習用画像に含まれたパターン20の位置情報を有さず、1つのチャンネルに対する教師データは、インターホン系統、差動式煙感知器系統、光電式煙感知器系統のいずれかを示すだけである。一方、学習用画像は、積算処理が正確に実行された場合に教師データが出力されるような元の画像であり、そのサイズは教師データが1×1の空間次元となるように定められる。ここで、入力画像140のサイズに対する制限が設けられないので、学習用画像と入力画像140は異なったサイズでもよい。このような教師データと学習用画像を使用する状況下における空間フィルタの係数の学習自体には公知の技術が使用されればよいので、ここでは説明を省略する。
【0024】
次に、
図3(b)を使用しながら、処理装置100における積算処理を説明する。
図3(a)と
図3(b)における処理装置100とが別の装置として構成される場合、
図3(a)における処理部114に対する学習によって導出された空間フィルタの係数が、
図3(b)における処理部114に設定される。
【0025】
入力部120は、画像10を受けつける。ここで、画像10のサイズは学習用画像のサイズよりも大きいとする。入力部120は、画像10を第1処理部122に出力する。第1処理部122は、画像10を入力部120から受けつける。第1処理部122は、
図4に示される構成を有しており、受けつけた画像10は入力画像140に相当する。そのため、以下では、画像10を入力画像140と呼ぶ。第1処理部122は、入力画像140に対して、全結合層が除外された畳み込みニューラルネットワークの処理を実行する。第1処理部122における畳み込みニューラルネットワークでは、パターン20の種類の数よりも少ない種類の数の系統を教師データに対して、畳み込み層142の空間フィルタの学習がなされている。特に、畳み込み層142の空間フィルタの学習は、3チャンネルと1対1で対応する系統に対してなされている。その結果、第1処理部122は、画像10に含まれた複数のパターン20のそれぞれをいずれかの系統として検出する。前述のごとく、画像10のサイズは学習用画像のサイズよりも大きいので、第1処理部122は、系統の位置も検出する。
図6(a)−(b)は、処理装置100による処理結果を示す。
図6(a)は、
図1の画像10に対して、第1処理部122の処理を実行した場合に検出された各系統の個数を示す。
図6(b)は後述して
図3(b)に戻る。第1処理部122は、検出した系統と位置との複数の組合せを抽出部124に出力する。
【0026】
抽出部124は、第1処理部122から複数の組合せを受けつける。抽出部124は、各組合せから、検出した系統と位置を取得し、画像10から、系統に対応したパターン20が含まれた部分を抽出する。当該部分は、系統に対応したパターン20を中心にして、任意の形状および任意のサイズを有する。部分のサイズは、画像10のサイズよりも小さい。また、部分のサイズは、学習用画像のサイズよりも大きくてもよい。このような処理によって、抽出部124は、複数の部分を抽出する。抽出部124は、複数の部分を第2処理部126に出力する。
【0027】
第2処理部126は、第1処理部122との間でニューラルネットワークを共用するので、第1処理部122において使用したニューラルネットワークを使用する。第2処理部126は、抽出部124において抽出した複数の部分に対して、ニューラルネットワークの処理を実行する。ニューラルネットワークの処理は第1処理部122での処理と同様であるので、ここでは説明を省略する。ここで、第2処理部126は、
図4のごとく、各部分に対する特定の中間層の中間データ148を取得する。中間データ148は、第2処理部126の出力の1つあるいは2つ手前の中間層から出力されるデータであり、(v
1,v
2,・・・,v
n)のようにn次元のデータとして示される。第2処理部126は、中間データ148を部分毎、つまり検出した系統毎にクラスタリング部128に出力する。
【0028】
クラスタリング部128は、第2処理部126において取得した複数の中間データ148に対して、パターン20の種類の数に応じたクラスタリングを実行する。ここで、クラスタリングには、例えば、K−means法、自己組織化マップ、最小平均分散法、NN(Nearest Neighbor)法、最短距離法、K−NN(K Nearest Neighbor)法、Ward法等が使用される。これらは公知の技術であるので、ここでは説明を省略する。
【0029】
図7は、クラスタリング部128における処理の概要を示す。ここでは、説明を明瞭にするために、中間データ148が(v
1,v
2)の2次元データであると仮定する。クラスタリング部128は、v
1とv
2とを軸とする直交座標系に複数の中間データ148を配置させる。クラスタリング部128は、直交座標系に配置された複数の中間データ148に対してクラスタリングを実行することによって、クラスタ150と総称される第1クラスタ150aから第11クラスタ150kを生成する。各クラスタ150は、いずれかのパターン20に対応する。例えば、第1クラスタ150aは、第2インターホン30bに対応する。
図3(b)に戻る。
【0030】
算出部130は、クラスタリング部128におけるクラスタリングの結果である各クラスタに含まれたパターン20の数を算出する。
図6(b)は、算出部130における算出結果を示す。第2インターホン30bが1個、第2差動式煙感知器32bが8個算出される。
図3(b)に戻る。出力部132は、算出部130における算出結果を出力する。
【0031】
本開示における装置、システム、または方法の主体は、コンピュータを備えている。このコンピュータがプログラムを実行することによって、本開示における装置、システム、または方法の主体の機能が実現される。コンピュータは、プログラムにしたがって動作するプロセッサを主なハードウェア構成として備える。プロセッサは、プログラムを実行することによって機能を実現することができれば、その種類は問わない。プロセッサは、半導体集積回路(IC)、またはLSI(Large Scale Integration)を含む1つまたは複数の電子回路で構成される。複数の電子回路は、1つのチップに集積されてもよいし、複数のチップに設けられてもよい。複数のチップは1つの装置に集約されていてもよいし、複数の装置に備えられていてもよい。プログラムは、コンピュータが読み取り可能なROM、光ディスク、ハードディスクドライブなどの非一時的記録媒体に記録される。プログラムは、記録媒体に予め格納されていてもよいし、インターネット等を含む広域通信網を介して記録媒体に供給されてもよい。
【0032】
以上の構成による処理装置100の動作を説明する。
図8は、処理装置100における処理手順を示すフローチャートである。入力部120は、画像10を入力する(S10)。第1処理部122は、系統を検出する(S12)。抽出部124は、系統が含まれた部分を抽出する(S14)。第2処理部126は、中間層の中間データ148を取得する(S16)。クラスタリング部128は、クラスタリングを実行する(S18)。算出部130は、パターン20の数を算出する(S20)。
【0033】
本実施例によれば、画像10から検出した系統が含まれた部分に対してニューラルネットワークの処理を実行するので、画像10に含まれるパターン20以外のものの影響を低減できる。また、画像10に含まれるパターン20以外のものの影響が低減されるので、処理の精度を向上できる。ニューラルネットワークの処理における中間データ148を取得するので、情報量を増加できる。また、情報量が増加されるので、処理の精度を向上できる。また、中間データ148に対してクラスタリングを実行することによって、各クラスタ150に含まれたパターン20の数を算出するので、学習の作業量の増加を抑制しながら、処理の正確性の低下を抑制できる。
【0034】
また、出力の1つあるいは2つ手前の中間層の中間データ148を取得するので、精度が高く、かつ情報量の多いデータを取得できる。また、第2処理部126は、第1処理部122において使用したニューラルネットワークを使用するので、学習の結果を共有できる。また、1×1の空間次元を有する教師データに対して、畳み込み層142の空間フィルタの学習がなされている畳み込みニューラルネットワークを使用するので、教師データの作成の作業量を低減できる。また教師データの作成の作業量が低減されるので、学習の作業量の増加を抑制できる。また教師データの作成の作業量が低減されるので、教師データの数を多くできる。また、教師データの数が多くなるので、学習の精度を向上できる。
【0035】
本開示の一態様の概要は、次の通りである。本開示のある態様の処理装置(100)は、画像(10)に含まれた複数のパターンをパターンの種類毎に積算する処理装置(100)であって、画像(10)を入力する入力部(120)と、入力部(120)に入力した画像(10)に対して、パターン(20)の種類を分類した系統であって、かつパターン(20)の種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、画像(10)に含まれた複数のパターン(20)のそれぞれをいずれかの系統として検出する第1処理部(122)と、第1処理部(122)において検出した各系統の位置をもとに、画像(10)から、系統が含まれた部分を複数抽出する抽出部(124)と、抽出部(124)において抽出した複数の部分に対して、パターン(20)の種類を分類した系統であって、かつパターン(20)の種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、各系統に対する特定の中間層の中間データ(148)を取得する第2処理部(126)と、第2処理部(126)において取得した中間データ(148)に対して、パターン(20)の種類の数に応じたクラスタリングを実行するクラスタリング部(128)と、クラスタリング部(128)におけるクラスタリングの結果である各クラスタ(150)に含まれたパターン(20)の数を算出する算出部(130)と、を含む。
【0036】
第2処理部(126)は、出力の1つあるいは2つ手前の中間層の中間データ(148)を取得してもよい。
【0037】
第2処理部(126)は、第1処理部(122)において使用したニューラルネットワークを使用してもよい。
【0038】
第1処理部(122)および第2処理部(126)において使用されるニューラルネットワークは、畳み込み層(142)とプーリング層(144)とを含み、全結合層を除外した畳み込みニューラルネットワークであり、当該畳み込みニューラルネットワークでは、1×1の空間次元を有する処理結果に対して、畳み込み層(142)のフィルタの学習がなされていてもよい。
【0039】
本開示の別の態様は、処理方法である。この方法は、画像(10)に含まれた複数のパターン(20)をパターン(20)の種類毎に積算する処理方法であって、画像(10)を入力するステップと、入力した画像(10)に対して、パターン(20)の種類を分類した系統であって、かつパターン(20)の種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、画像(10)に含まれた複数のパターン(20)のそれぞれをいずれかの系統として検出するステップと、検出した各系統の位置をもとに、画像(10)から、系統が含まれた部分を複数抽出するステップと、抽出した複数の部分に対して、パターン(20)の種類を分類した系統であって、かつパターン(20)の種類の数よりも少ない種類の数の系統を教師データとして学習させたニューラルネットワークの処理を実行することによって、各系統に対する特定の中間層の中間データ(148)を取得するステップと、取得した中間データ(148)に対して、パターン(20)の種類の数に応じたクラスタリングを実行するステップと、クラスタリングの結果である各クラスタ(150)に含まれたパターン(20)の数を算出するステップと、を含む。
【0040】
以上、本開示を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解されるところである。
【0041】
本実施例における処理部114の構成は、複数の畳み込み層142と複数のプーリング層144とが交互に並んでいる。しかしながらこれに限らず例えば、処理部114は、GoogLeNet系、DenseNet系等の構成を有していてもよい。本変形例によれば、構成の自由度を向上できる。
【0042】
本実施例における処理部114は、全結合層が除外された畳み込みニューラルネットワーク、つまり完全畳み込みニューラルネットワークが使用される。しかしながらこれに限らず例えば、全結合層が含まれた畳み込みニューラルネットワークが使用されてもよい。この場合、入力部120に入力すべき画像のサイズが固定であるので、画像10が固定サイズに分割されて入力部120に入力される。本変形例によれば、構成の自由度を向上できる。