以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
本実施形態にかかる建築物抽出システムでは、ニューラルネットワークを用いた学習済みモデルである建物検出器に、建物を抽出する処理の対象領域とする地表を撮影した航空写真や衛星画像等(航空写真や衛星画像に基づくオルソ画像であってよく、以下では「処理対象画像」と表記する)の特徴情報を入力し、建物検出器から出力された画像に基づいて建物領域を判定・抽出する。建築物抽出システムは、処理対象画像から建物を識別する際には、3つの建物検出器を用いる。また、3つの建物検出器は、それぞれ、面積がS,M,Lの範囲に属する建物をより高精度に検出するように構成されている。例えば、面積の範囲Sは45m2未満であり、面積の範囲Mは、45m2以上131m2未満であり、面積の範囲Lは131m2以上である。おおむね、面積の範囲Lに属する建物はマンションや大型商業施設に対応し、面積の範囲Mはアパートや小売店に対応し、面積の範囲Sは一般家屋に対応する。
また、本実施形態にかかる建築物抽出システムでは、面積の範囲S,M,Lのそれぞれについて、ニューラルネットワークの種類や、入力される学習用画像のスケール(縮尺)が互いに異なる複数の建物検出器に対して学習が行われ、面積の範囲S,M,Lのそれぞれについて、複数の建物検出器から最も良い建物検出器が選択され、選択された建物検出器が、処理対象データからの建物領域の検出に用いられる。
図1は、本発明の実施形態にかかる建築物抽出システムのハードウェア構成を示す図である。建築物抽出システムは、学習サーバ1を含む。学習サーバ1は、サーバコンピュータであり、プロセッサ11、記憶部12、通信部13、入出力部14を含む。
プロセッサ11は、記憶部12に格納されているプログラムに従って動作する。またプロセッサ11は通信部13を制御し、入出力部14に接続されたデバイスを制御する。ここでは、プロセッサ11は、いわゆるCPU(Central Processing Unit)や、並列計算機として用いられるGPU(Graphics Processing Unit)を含んでよい。なお、上記プログラムは、インターネット等を介して提供されるものであってもよいし、フラッシュメモリやDVD-ROM等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよい。
記憶部12は、RAMやフラッシュメモリ等のメモリ素子やハードディスクドライブによって構成されている。記憶部12は、上記プログラムを格納する。また、記憶部12は、各部から入力される情報や演算結果を格納する。
通信部13は、他の装置と通信する機能を実現するものであり、例えば有線LANの集積回路などにより構成されている。通信部13は、それぞれプロセッサ11の制御に基づいて、他の装置との間で情報を送受信する。また通信部13は、受信された情報をプロセッサ11や記憶部12に入力する。通信部13は、例えばLANにより他の機器と接続されている。
入出力部14は、表示出力デバイスをコントロールするビデオコントローラや、入力デバイスからのデータを取得するコントローラなどにより構成される。入力デバイスとしては、キーボード、マウス、タッチパネルなどがある。入出力部14は、プロセッサ11の制御に基づいて、表示出力デバイスに表示データを出力し、入力デバイスをユーザが操作することにより入力されるデータを取得する。表示出力デバイスは例えば外部に接続されるディスプレイ装置である。
次に、建築物抽出システムの機能の概要について説明する。図2は、建築物抽出システムの機能構成を示すブロック図である。建築物抽出システムは、機能的に、学習データ取得部51と、学習実行部52と、学習検出器セット53と、評価データ取得部56と、評価実行部57と、検出器選択部58と、実行検出器セット61と、対象データ入力部65と、出力取得部66と、フィルタ部67と、統合部68と、画像出力部69とを含む。これらの機能は、主に、プロセッサ11が記憶部12に格納されたプログラムを実行し、記憶部12に格納されるデータにアクセスすることで実現される。これらの全ての機能が、学習サーバ1により実行されてもよいし、その一部の機能が他のサーバで実行されてもよい。例えば、対象データ入力部65、実行検出器セット61、出力取得部66、フィルタ部67、統合部68、画像出力部69の機能が、プロセッサ11、記憶部12、通信部13、入出力部14を有する他のサーバにより実現されてもよい。
学習検出器セット53は、複数の学習検出器54を有する。本実施形態では、学習検出器54の数は6であり、学習検出器54のそれぞれは、面積の範囲S,M,Lに関わらず共通の学習がなされる共通部540と、それぞれ面積の範囲S,M,Lに応じた学習がなされる個別部541,542,543とを有する。学習検出器54のそれぞれは、互いに異なる、ニューラルネットワークの種類と入力される学習用画像のスケールの組み合わせについて学習がなされる。
学習データ取得部51は、学習用入力画像と、その学習用入力画像に含まれる建物の形状を示す教師データとを取得する。学習実行部52は、学習用入力画像と教師データとを用いて学習検出器54を学習させる。
評価データ取得部56は、評価用入力画像と、その評価用入力画像に含まれる建物の形状を示す正解データとを取得する。評価用入力画像および正解データは、学習用入力画像および教師データと同じであってもよい。評価実行部57は、評価用入力画像と正解データとを用いて、学習検出器54のそれぞれについて、個別部541,542,543のそれぞれについて、その建物の形状の検出精度を評価する。
検出器選択部58は、評価実行部57により評価された検出精度に基づいて、面積の範囲S,M,Lのそれぞれについて、入力対象データに対する建物の検出を行う学習検出器54を選択する。選択された学習検出器54の少なくとも一部は、実行検出器セット61を構成する実行検出器62,63,64として使用される。より具体的には、面積の範囲Sについて選択された学習検出器54に含まれる共通部540および個別部541の組み合わせが、面積の範囲Sに対応する実行検出器62に含まれる、共通部620および個別部621となる。面積の範囲Mについて選択された学習検出器54に含まれる共通部540および個別部542の組み合わせが、面積の範囲Mに対応する実行検出器63に含まれる、共通部630および個別部631となる。面積の範囲Lについて選択された学習検出器54に含まれる共通部540および個別部543の組み合わせが、面積の範囲Lに対応する実行検出器64に含まれる、共通部640および個別部641となる。
対象データ入力部65は、入力対象画像を取得し、その入力対象画像を必要に応じ加工し、入力対象画像を実行検出器62,63,64に入力する。出力取得部66は、実行検出器62,63,64が出力する出力画像を取得する。
フィルタ部67は、実行検出器62,63,64の出力画像に含まれる建物を、面積に基づいて除去し、フィルタされた出力画像を生成する。
統合部68は、フィルタされた、実行検出器62,63,64の出力画像を統合する。統合部68は、実行検出器62,63,64の出力画像のいずれかにおいて建物と認識された領域が、建物のある領域と判定された画像を生成する。
画像出力部69は、統合部68により統合された画像を記憶部12や表示出力デバイスへ出力する。
次に、学習検出器セット53およびそれに含まれる学習検出器54の詳細について説明する。図3は、学習検出器54の種類を説明する図である。図3に示される表の「No」は、6つの学習検出器54に振られた番号を示す。「スケール」はその番号の学習検出器54に投入される学習用入力画像のスケールを示し、はじめに用意される学習用入力画像をスケールに示される倍率で調整(必要に応じた拡大または縮小)され、スケールにかかわらず同じピクセル数を有するように切り出された学習用入力画像(以下では切り出された学習用入力画像を「窓画像」と記載する)が学習検出器54に入力される。「モデル種類」はその番号の学習検出器54の内部を構成するニューラルネットワークの種類を示す。「Pooling」はCNN(Convolutional Neural Network)の中でも畳み込み層とプーリング層とを組み合わせたモデル(以下では「プーリングモデル」と記載する)であることを示し、「Dilation」は拡張畳み込み演算を行う畳み込み層を用いるモデル(以下では「ダイレーションモデル」と記載する)であることを示す。
図4は、スケールの違いを説明する図である。図4(a)は、スケールが0.5倍の場合の窓画像の一例であり、図4(b)、図4(c)は、それぞれ、スケールが1倍、2倍の場合の窓画像の一例である。図4(a)~(c)に示される窓画像は、同じ領域を含んでいる。窓画像のピクセル数は、どれもPx×Pyである。PxおよびPyの値は、例えば32や64であってよい。スケールが0.5倍の場合の学習用入力画像は、スケールが1.0の場合の学習用入力画像を、縦横のドット数が1/2倍になるように縮小する(間引く)ことで得られ、スケールが2.0倍の場合の学習用入力画像は、スケールが1.0の場合の学習用入力画像を縦横のドット数が2倍になるように拡大する(ドット間に線形補間等によるドットを配置する)ことで得られる。この学習用入力画像の拡大または縮小は、学習データ取得部51により行われる。
図5は、学習検出器54の構成の概要を示す図である。学習検出器54は、前述のように、共通部540と個別部541,542,543を有する。共通部540は複数の層を有し、また個別部541,542,543は、同じ数の層を有する。共通部540の1番目の層には調整された学習用入力画像が入力され、最後の層の出力である特徴情報は、個別部541,542,543のそれぞれの1番目の層に入力される。個別部541,542,543の出力は、例えば16×16ドットの画像であり、その各ドットはそのドットの位置における建物の存在確率を示す。
図6は、プーリングモデルの学習検出器54に含まれる層を説明する図であり、図6には各層が、処理順に記載されている。所属の欄において、「共通」と記載される層は共通部540に存在し、「個別」と記載される層は個別部541,542,543に存在する。ここで、「個別」に記載される層は、個別部541,542,543のそれぞれに存在している。処理種類は、各層の種類を示しており、「input」は入力層、「convolution」は畳み込み層、「pooling(s2)」は、ストライド(カーネルの適用間隔)が2であるプーリング層を示している。カーネルサイズは、畳み込みフィルタのサイズを表すパラメータである。ここでは処理対象が画像であることに対応して、カーネルは2次元であり、カーネルサイズの値「k」は“k×k”フィルタであることを意味する。各層の「特徴マップ数」は、当該層にて抽出される特徴マップの数であり、チャネルともよばれる。なお、ストライドは特に記載のない限り1であり、層ごとの記載を省略している。
図7は、ダイレーションモデルの学習検出器に含まれる層を説明する図である。図7の記載も図6の記載に準じているが、ダイレーションモデルにおける「convolution」の層は拡張畳み込み層を示しており、その拡張畳み込み層の設定が拡張係数の欄に示されている。
拡張畳み込み演算についてさらに説明する。図8は、拡張畳み込み演算における層構造の一例を説明する図である。学習用入力画像などの入力画像は空間的に2次元のデータであるが、ここでは図示及び説明の簡素化のため、学習検出器54への入力データを1次元データに単純化して説明する。具体的には、図8にて一番下に位置する入力層にて水平方向に並ぶ複数の“○”印が入力データを構成する。“○”印で表す入力データの要素30は、入力画像における画素(又は画素値)に相当する。図8に示される畳み込み層はいわゆる特徴抽出層であり、特徴抽出層に続く層の記載を省略している。
図8に示されるニューラルネットワークは特徴抽出層として7層の畳み込み層を有し、各畳み込み層が拡張畳み込み演算を行う。入力層の上に位置する第1層の畳み込み層は拡張係数d=1の拡張畳み込み演算を行う。具体的には第1層にて“○”印で表す複数のユニット31それぞれにて畳み込み演算が行われ、各ユニット31は入力層の隣り合う2つの要素30の値に重みを乗じて足し合わせた値を出力する。
第2層の畳み込み層は拡張係数d=2の拡張畳み込み演算を行う。具体的には第2層にて“○”印で表す複数のユニット32それぞれにて畳み込み演算が行われ、各ユニット32は第1層にて1つ置きのユニット31の出力値に重みを乗じて足し合わせた値を出力する。
また、第3層の畳み込み層は拡張係数d=3の拡張畳み込み演算を行い、第3層の“○”印で表す各ユニット33は第2層にて3つ置きのユニット32の出力値に重みを乗じて足し合わせた値を出力し、第4層の畳み込み層は拡張係数d=4の拡張畳み込み演算を行い、第4層の“○”印で表す各ユニット34は第3層にて7つ置きのユニット33の出力値に重みを乗じて足し合わせた値を出力する。第5層の各ユニット35は、d=3の拡張畳み込み演算を行い、また、第6層の各ユニット36、第7層の各ユニット37は、それぞれd=2,d=1の拡張畳み込み演算を行う。
ここで、図8に示す特徴抽出層の構造において、第1層~第4層からなる部分をフロントエンド部と称し、これに続く第5層~第7層からなる部分を局所特徴抽出部と称することにする。フロントエンド部は、入力層に続く複数の畳み込み層であり、フロントエンド部では、当該畳み込み層の並び順に従って拡張係数dが特徴抽出層における最大値まで増加する。一方、局所特徴抽出部は、フロントエンド部に続く複数の畳み込み層であり、局所特徴抽出部では当該畳み込み層の並び順に従って拡張係数が減少する。
図8は、第7層の或る1つのユニット37の出力に畳み込まれる第1層から第6層のユニット及び入力層の接続関係を線で例示している。拡張畳み込み演算では、拡張係数dに応じて指数関数的にカーネルの適用範囲が拡張される。例えば、図8のd=1~4の畳み込み演算のカーネルは、いずれも2つの入力を畳み込むフィルタ、つまりサイズが2のフィルタであるが、d=1のカーネルにより畳み込まれる2つの入力の1次元データの並びでの間隔は1であるのに対して、d=2のカーネルにより畳み込まれる2つの入力の間隔は2であり、またd=3では当該間隔は4、d=4では当該間隔は8となる。つまり、間隔は2d-1に設定されている。
フロントエンド部におけるユニットおよび入力層の接続関係からわかるように、拡張畳み込み演算では、カーネルの適用範囲を拡張することで、少ない層数で受容野を広げることができる。そして、畳み込みだけで受容野を広げるので、一般的なCNNで用いるプーリング層が不要となり、プーリング層による解像度低下を回避できる。また、適用範囲を拡大する一方で、当該範囲内の要素を間引いて残った一部の要素しか畳み込まないことで、重みパラメータの増大が抑制される。
一方、フロントエンド部のように、順に拡張係数dが増加するように層を積み重ねる構造は、最上層における近傍ユニット間の相関が弱まるという問題や、入力データのローカルな特徴を拾いにくくなるという問題を有する。局所特徴抽出部はこの問題を解決するために設けられており、フロントエンド部と局所特徴抽出部とを組み合わせることで、第7層のあるユニットにおいて近傍ユニット間の相関が弱まるという問題や、第1層のユニット31a,31bが隣り合っているというローカルな情報を把握できないという問題が解決されている。
言い換えると、フロントエンド部の後に局所特徴抽出部を設けた構成とすることで、フロントエンド部にて拡張畳み込み演算を積極的に利用し解像度を一切落とさずにコンテキストを得ると共に、局所特徴抽出部ではフロントエンド部により分散された局所特徴を集約する。これにより、コンテキストの情報と局所特徴の情報を有効活用でき、小さく密集したオブジェクトも認識可能となっている。
次に、これまでに説明した学習検出器54を、スケールに応じた学習用入力画像と、その学習用画像に含まれる建物の形状を示す教師データとを用いて学習させる処理の詳細について説明する。
図9は、学習検出器54を学習させる処理の一例を示すフロー図である。図9には、学習データ取得部51および学習実行部52の処理が記載されており、この処理により、学習検出器54が学習される。また、図9に示される処理は、学習検出器54ごとに繰り返し回数だけ行われる。
学習データ取得部51は、記憶部12に格納された学習用画像を取得する(ステップS101)。学習用画像は、建物を抽出する処理の対象領域とする地表を撮影した航空写真や衛星画像等(航空写真や衛星画像に基づくオルソ画像であってよい)である。次に、学習データ取得部51は、学習用画像のサイズを、学習検出器54のスケールに合わせるように設定する(ステップS102)。例えば、学習検出器54のスケールが0.5倍であれば学習用画像を0.5倍に縮小し、スケールが2倍であれば学習用画像を2倍に拡大する。なお、ステップS102の処理をする代わりに、予めスケールの種類のそれぞれに対応した複数の学習用画像を準備しておき、学習データ取得部51が学習検出器54のスケールに対応する画像を読み込んでもよい。
そして、学習実行部52は、スケールに合わせるように設定された学習用画像から、学習検出器54に入力する窓画像を切出す(ステップS103)。窓画像は、Px×Pyのサイズであり、1つの学習用画像から、ランダムに位置を選択し、選択した位置をもとに学習用画像から窓画像を切り出す。
学習実行部52は、学習用画像から切り出された窓画像を入力し、出力を教師データと比較することで学習検出器54を学習させる(ステップS104)。
図10は、窓画像のそれぞれに対する学習実行部52の処理の一例を示すフロー図であり、ステップS104の処理をさらに詳細に説明する図である。ステップS104では、はじめに、学習実行部52は、学習検出器54の共通部540へ、学習用画像から切り出された窓画像を入力する(ステップS121)。これにより、学習検出器54の共通部540が窓画像を処理し、さらに共通部540の出力を個別部541,542,543が処理する。そして、学習実行部52は、学習検出器54の個別部541,542,543のそれぞれの出力画像を取得する(ステップS122)。ここで、以下では、面積の範囲Sに対応する個別部541の出力画像を出力画像(S)、面積の範囲Mに対応する個別部542の出力画像を出力画像(M)、面積の範囲Lに対応する個別部543の出力画像を出力画像(L)と記載する。また、個別部541,542,543の出力画像をまとめて出力画像(S,M,L)と記載する。ここで、出力画像(S,M,L)の各ドットの値は、建物の領域の存在確率を示している。
次に、学習実行部52は、学習検出器54の出力画像(S,M,L)と、教師データとの誤差を算出する(ステップS123)。ここで、教師データは、学習用画像データに含まれる建物の形状を示す情報である。
図11は、教師データの一例を示す図である。図11に示される教師データは、図4に示される窓画像を含む学習用画像に対応しているビットマップ画像である。図11に示される教師データは、面積が範囲Sに属する建物の領域(例えばA)と、範囲Mに属する建物の領域(例えばB)と、範囲Lに属する建物の領域(例えばC)とが区別されている。教師データは、例えば、建物のない領域のドットの値を0、面積が範囲S,M,Lの建物の領域のドットの値をそれぞれ1,2,3に設定された画像であってもよい。また、教師データは、面積が範囲Sに属する建物の領域のドットの値が1である画像と、面積が範囲Mに属する建物の領域のドットの値が1である画像と、面積が範囲Lに属する建物の領域のドットの値が1である画像との複数のレイヤーに相当する画像であってもよい。
学習実行部52は、誤差の算出において、学習用画像の窓画像の中央の16×16ドットに相当する位置の画像を教師データから切り出し、そして、出力画像(S,M,L)のそれぞれと、教師データとを比較する。ここで、学習実行部52は、教師データのうち建物のない領域および範囲Sに属する建物の領域については出力画像(S)との誤差を算出するが、範囲M,Lに属する建物の領域については誤差を算出しない。同様に、学習実行部52は、範囲S,Lに属する建物の領域について出力画像(M)との誤差を算出せず、範囲S,Mに属する建物の領域について出力画像(L)との誤差を算出しない。これにより、個別部541,542,543のそれぞれが、面積の範囲S,M,Lの建物の検出に適するように学習が進む。
次に、学習実行部52は、算出された誤差に基づいて、誤差逆伝播法(バックプロパゲーション)などにより、個別部541,542,543における重み等のパラメータの値を変更する(ステップS124)。また、学習実行部52は、個別部541,542,543のそれぞれの最上位の層から共通部の最下層に伝播させるべき誤差を積算し(ステップS125)、積算された誤差に基づいて、誤差逆伝播法などにより、共通部540における重み等のパラメータの値を変更する(ステップS126)。
ステップS103およびステップS104(図9)に示される学習の処理は、ある学習用画像から学習に用いるすべての窓画像が取得されるまで繰り返される。この処理のセットは、すべての学習検出器54のそれぞれに対して繰り返し行われ、それにより、各学習検出器54が学習される。ここで、ステップS103の処理の代わりに、学習に用いる複数の窓画像をまとめて切り出す処理を行ってもよい。この場合、窓画像を入力し学習検出器54を学習させる処理が切り出された窓画像のそれぞれについて行われるように、ステップS104の処理が繰り返し実行されてよい。
次に、学習済の学習検出器54を評価し、実際に処理対象画像から建物の領域を抽出する処理を実行させるための学習検出器54を実行検出器62,63,64として選択する処理の詳細について説明する。
図12は、学習検出器54を評価する処理の一例を示すフロー図である。この処理では、はじめに、評価データ取得部56は、記憶部12から評価用画像および正解データを取得する(ステップS201)。評価用画像は学習用画像と同じであってもよく、異なってもよい。評価用画像の縮尺は学習用画像と同じである。正解データは評価用画像のうち面積の範囲S,M,Lのそれぞれに属する建物の領域を示す画像であり、評価用画像と学習用画像とが同じ場合は、正解データは教師データであってよい。また、図12には図示されていないが、評価データ取得部56は、学習データ取得部51と同様に、評価用画像のサイズを学習検出器54のスケールに合わせるように設定する。
次に、評価実行部57は、評価用画像から、学習検出器54に入力する窓画像を切出す(ステップS202)。より具体的には、評価実行部57は、切り出される領域がこれまでに切り出された窓領域と比べて所定数のドットがずれるように窓画像を切り出す。所定数のドットは1ドット以上、16ドット以下の任意の大きさとすることができる。所定数の上限である16は、学習検出器54の出力が16×16ドットの画像であることに対応している。所定数は学習検出器54の出力の縦または横の大きさ以下である。評価実行部57は、評価用画像から切り出された窓画像を学習検出器54へ入力し(ステップS203)、学習検出器54の個別部541,542,543のそれぞれの出力画像(S,M,L)を取得する(ステップS204)。ここで、評価実行部57は、取得された出力画像を、各ドットの存在確率の値が閾値より大きいか小さいかに基づいて2値化し、2値化された出力画像を記憶部12に格納する。以下の処理では、出力画像は2値化された出力画像を指すものとする。そして、すべての窓画像について学習検出器54の処理を行うまで、ステップS202からS204の処理を繰り返す(ステップS205参照)。
すべての窓画像についての出力画像(S,M,L)が得られると、評価実行部57は、それらの窓画像に対応する位置に出力画像(S)が配置された全体画像(S)と、それらの窓画像に対応する位置に出力画像(M)が配置された全体画像(M)と、それらの窓画像に対応する位置に出力画像(L)が配置された全体画像(L)と、を生成する(ステップS206)。より具体的には、評価実行部57は出力画像(S,M,L)を窓画像の配置に対応するように互いに所定数のドットずれるように配置することで、全体画像(S,M,L)を生成する。ここで、窓画像を切出す際のずれの大きさである所定数のドットが16ドットより小さい場合、各窓画像から得られる出力画像(S,M,L)のうち少なくとも一部のドットが他の窓画像についての出力画像(S,M,L)と重なる。評価実行部57は、複数の窓画像の出力において位置が重なるドットについては、出力画像のドットの値が平均された平均値を全体画像(S,M,L)におけるドットの値とする。これにより、隣り合う出力画像(S,M,L)の境界が滑らかにつながらない場合であっても、それに起因する不整合が全体画像に表れることを防ぐことができる。
そして、評価実行部57は全体画像と正解データとを比較し、学習検出器54の個別部541,542,543のそれぞれについて精度を評価する(ステップS207)。精度の評価は、例えば、評価実行部57は正解データのうち面積の範囲Sに属する建物が存在する領域に、出力画像(S)において建物と判定された領域が存在する割合(Recall)を求めることで行う。評価実行部57は、正解データのうち面積の範囲M,Lに属する建物の領域と、出力画像(M)、出力画像(L)に存在する建物の領域とにおいても、同様に精度を評価する。
ステップS202からステップS207の処理により、1つの学習検出器54の精度が評価される。そして、評価実行部57は、すべての学習検出器54について精度を評価していない場合、ステップS202からの処理を繰り返し(ステップS208)、これにより、評価実行部57は、すべての学習検出器54の精度を評価する。
図13は、評価実行部57による評価結果を示す図である。図13における「No」は、図3に示されるものと同じく、学習検出器54に振られた番号を示す。図13の例では、面積の範囲がSである、個別部541の出力については、スケールが1.0倍かつダイレーションモデルである学習検出器54が最も精度がよい。また、面積の範囲がMである個別部542の出力については、スケールが1.0倍かつプーリングモデルの学習検出器54が最も精度がよく、面積の範囲がLである個別部543の出力については、スケールが0.5倍かつプーリングモデルの学習検出器54が最も精度がよい。
学習検出器54の精度が評価されると、検出器選択部58は、面積の範囲S,M,Lのそれぞれについて、最も精度の高い学習検出器54を、実行検出器62,63,64として選択する(ステップS209)。実行検出器62は、面積の範囲Sについて最も精度の高い学習検出器54に含まれる、共通部540(以下では共通部620という)と個別部541(以下では個別部621という)との組み合わせである。実行検出器63は、面積の範囲Mについて最も精度の高い学習検出器54に含まれる、共通部540(以下では共通部630という)と個別部542(以下では個別部631という)との組み合わせである。実行検出器64は、面積の範囲Lについて元も精度の高い学習検出器54に含まれる、共通部540(以下では共通部640という)と個別部543(以下では個別部641という)との組み合わせである。
ここで、図13の記載からもわかるように、ダイレーションモデルはプーリングモデルに比べて小さな変化をとらえやすい傾向があるため、面積の範囲(の最大値)が小さいものではダイレーションモデルが有利になり、面積の範囲が大きいものではプーリングモデルが有利になる。また、スケールが小さいと細かな情報が減る一方、大規模な建物の形状を判定しやすくなる傾向がある。そのため、面積の範囲(の最大値)が小さいものではスケールが大きい方が有利になり、面積の範囲が大きいものではスケールが小さい方が有利になる。
したがって、図13の例においても、面積の範囲の最大値が小さいものに対応する実行検出器62として、スケールが大きめの1.0倍であり、ダイレーションモデルである学習検出器54が選択され、面積の範囲の最大値が大きいものに対応する実行検出器64として、スケールが小さめの0.5倍であり、プーリングモデルである学習検出器54が選択されている。
検出器選択部58は、単に後述の対象データ入力部65が処理対象画像を入力し出力画像を取得する対象となる学習検出器54を示す情報を記憶部12に保存することで、学習検出器54を選択してもよいし、実行検出器62,63,64の実体として、選択された学習検出器54の共通部540、個別部541等をコピーすることで学習検出器54を実行検出器62,63,64として選択してもよい。
次に、実行検出器62,63,64を用いて、処理対象画像から建物の領域を判定する処理について説明する。図14は、建物の領域を判定する処理の概要を説明する図である。
はじめに、対象データ入力部65は、処理対象画像を面積の範囲Sに適した実行検出器62に入力し、出力取得部66は、実行検出器62の出力に基づいて全体出力画像(S)を取得する(ステップS301)。全体出力画像(S)は、処理対象画像の全体について、実行検出器62により建物が存在すると判定された領域を示す画像である。後述の全体出力画像(M)、全体出力画像(L)は、同様に、それぞれ、実行検出器63,64により建物が存在すると判定された領域を示す画像である。
図15は、処理対象画像から全体出力画像を生成する処理の流れを示すフロー図であり、ステップS301の処理を詳細に説明する図である。はじめに、対象データ入力部65は、処理対象画像のスケールを、実行検出器62に設定されたスケールに合わせる(ステップS321)。対象データ入力部65は、処理対象画像のスケールと実行検出器62のスケールが異なる場合には処理対象画像を拡大または縮小することにより、スケールを合わせる。次に、対象データ入力部65は、スケールが合わせられた処理対象画像から窓画像を切出す(ステップS322)。窓画像のサイズや処理対象画像から窓画像を切出す手法については、評価用画像から窓画像を切出す手法と同じであるので説明を省略する。次に、対象データ入力部65は、実行検出器62へ窓画像を入力する(ステップS323)。すると、実行検出器62は、入力された窓画像について建物の領域を検出する処理を行い、出力取得部66は、実行検出器62の出力画像を取得する(ステップS324)。ここで、図示していないが、出力取得部66は、取得された出力画像を、各ドットの存在確率の値が閾値より大きいか小さいかに基づいて2値化し、2値化された出力画像を記憶部12に格納する。以下の処理では、出力画像は2値化された出力画像を指すものとする。そして、すべての窓画像について学習検出器54の処理を行うまで、ステップS322からS324の処理を繰り返す(ステップS325参照)。
なお、建物検出器が実行検出器62,63,64の個別部621,631,641に対応し、建物検出器へ入力される処理対象画像の特徴情報が、それぞれ共通部620,630,640の出力であってよい。なお、学習検出器54や実行検出器62,63,64は、共通部540,620、630,640を含まなくてもよい。この場合、面積の範囲S、M、Lのそれぞれについて学習用入力画像や処理対象画像が入力され、建物検出器へ入力される処理対象画像の特徴情報は、単なる処理対象画像やその窓画像であってよい。
すべての窓画像についての出力画像が得られると、評価実行部57は、それらの窓画像に対応する位置に出力画像が配置された全体出力画像(S)を生成する(ステップS326)。
次に、フィルタ部67は、全体出力画像(S)に、面積に基づくフィルタをかける(ステップS302)。この処理は、より具体的には、フィルタ部67は、全体出力画像(S)において建物が存在すると判定された領域の面積(領域のドット数とスケールから求められる)を算出し、その面積が面積の範囲Sに応じた許容範囲にない領域を全体出力画像(S)から削除する。具体的には許容範囲は、89.2m2未満である。なお、フィルタ部67の処理は行われなくてもよい。
また、対象データ入力部65は、処理対象画像を面積の範囲Mに適した実行検出器63に入力し、出力取得部66は、実行検出器63の出力に基づいて全体出力画像(M)を取得する(ステップS303)。この処理の詳細は、実行検出器62から全体出力画像(S)を取得する処理と同様であるので詳細の説明は省略する。
次に、フィルタ部67は、全体出力画像(M)に、面積に基づくフィルタをかける(ステップS304)。この処理は、より具体的には、フィルタ部67は、全体出力画像(M)において建物が存在すると判定された領域の面積(領域のドット数とスケールから求められる)を算出し、その面積が面積の範囲Mに応じた許容範囲にない領域を全体出力画像(M)から削除する。具体的には許容範囲は、22.3m2以上89.2m2未満である。
また、対象データ入力部65は、処理対象画像を面積の範囲Lに適した実行検出器64に入力し、出力取得部66は、実行検出器64の出力に基づいて全体出力画像(L)を取得する(ステップS305)。この処理の詳細は、実行検出器62から全体出力画像(L)を取得する処理と同様であるので詳細の説明は省略する。
次に、フィルタ部67は、全体出力画像(L)に、面積に基づくフィルタをかける(ステップS306)。この処理は、より具体的には、フィルタ部67は、全体出力画像(L)において建物が存在すると判定された領域の面積(領域のドット数とスケールから求められる)を算出し、その面積が面積の範囲Lに応じた許容範囲にない領域を全体出力画像(M)から削除する。具体的には許容範囲は、65.4m2以上である。
そして、統合部68は、全体出力画像(S)、全体出力画像(M)、全体出力画像(L)の縮尺が一致するように、これらのうち少なくとも1つを拡大または縮小する処理を実行する(ステップS307)。なお、この処理は、フィルタ部67の処理の前に行われてもよい。
統合部68は、その処理がなされた全体出力画像(S)、全体出力画像(M)、全体出力画像(L)を統合する(ステップS308)。言い換えると、統合部68は、全体出力画像(S)、全体出力画像(M)、全体出力画像(L)のいずれかにおいて建物と認識された領域を、建物のある領域と判定し、その判定がされた領域を示す統合された画像を生成する。より具体的には、統合部68は、フィルタされた全体出力画像(S)、全体出力画像(M)、全体出力画像(L)の各ドットの論理和をとることで、統合された画像を生成する。ここで、全体出力画像(S)、全体出力画像(M)、全体出力画像(L)の各ドットは、建物が存在すると判定された領域において1であり、そうでない領域において0であるとする。
そして、画像出力部69は、統合部68により生成された画像を記憶部12や表示出力デバイスへ出力する。
面積の範囲S,M,Lのそれぞれに好適なスケールやモデルの種類を有する実行検出器62,63,64を用いて建物の領域が判定された画像を取得し、さらに統合部68によりそれらの画像を統合することで、処理対象画像から判定される建物の精度を向上させ、特に見逃しを減らすことができる。
例えば、図13に示される評価結果に基づいて、検出器選択部58が、実行検出器62,63,64として、それぞれ、スケールが1.0倍かつダイレーションモデル、スケールが1.0倍でプーリングモデル、スケールが0.5倍でプーリングモデルの学習検出器54を選択した場合、ある実験では、見逃しの指標であるRecallの値が87.0%であり、実行検出器62,63,64として、どれもスケールが1.0倍でプーリングモデルとした場合における値である82.0%や、実行検出器62,63,64として、どれもスケールが1.0倍でダイレーションモデルとした場合における値である83.8%を上回っている。ここで、Recallの値は、正解として与えられる建物の領域のうち、建物が存在すると判定された領域の数を、正解として与えられる建物の領域の数でわった数である。建物の領域の判定において、見落としを減らすことは一般的に容易ではないので、この効果は非常に大きいものとなる。
これまでに説明した実行検出器62,63,64を組み合わせた建築物抽出システムを用いることで、航空写真や衛星画像といったリモートセンシング画像から様々なサイズの構造物や建築物等をより高精度に認識できるようになる。そして、建築物抽出システムを、建物の新築や滅失などの把握に利用することができ、家屋異動に関する統計の基礎情報の取得を可能とする。さらに、建物領域を精度良く抽出可能となることで、個々の建物の時間的変移をより容易に把握し、また、抽出された建物領域の大きさや形状から建物の詳細属性(例えば、戸建、マンション、工場といった建物の種類)を判別することもより容易になる。
そして、画像からの建物に関するこれらの情報抽出作業の自動化が図られることで、広範囲の地表を処理対象とした当該作業を低コストで高速に行うことが可能となる。
これまでに、本発明の実施形態について説明してきたが、本発明の趣旨の範囲内で様々な変形をすることができる。例えば、面積の範囲が3つではなく、2つや4つ以上でもよい。また、モデルの種類の数やスケールの種類の数が異なっていてもよい。また、個別部は建物の面積の範囲に応じて最適化されなくてもよい。例えば建物の高さなど、他の手法で分類されたグループに応じて個別部が最適化されてもよい。