以下、地図変換装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、受け付けた第一種の地図を分割し、2以上の第一種地図部分を取得し、第一種の地図の一部分から第二種の地図の一部分を生成するための生成情報を用いて、各第一種地図部分から第二種地図部分を取得し、2以上の第二種地図部分を合成して第二種の地図を生成し、出力する地図変換装置について説明する。なお、実施の形態1において、生成情報は、後述する学習器、または後述する学習器と地図の特徴量である。
また、本実施の形態において、地図変換の前処理として、受け付けた第一種の地図から文字列の部分を除く処理を行い、後処理として、除いた文字列を第二種の地図に配置する地図変換装置について説明する。
また、本実施の形態において、第一種の地図を分割する場合に、切り抜かれた文字列の部分を用いずに分割する地図変換装置について説明する。
さらに、本実施の形態において、第二種の地図で用いる文字の属性値を採用した文字を第二種の地図に配置する地図変換装置について説明する。なお、文字の属性値の情報は、例えば、予め格納されている。
図1は、本実施の形態における地図変換装置Aのブロック図である。地図変換装置Aは、格納部1、受付部2、処理部3、および出力部4を備える。格納部1は、生成情報格納部11を備える。処理部3は、文字取得部31、文字切除部32、分割部33、変換部34、および合成部35を備える。
格納部1には、各種の情報が格納される。各種の情報は、例えば、後述する生成情報、第二種の地図で用いる文字の属性値を特定する情報である。
生成情報格納部11には、1または2以上の生成情報が格納される。生成情報とは、第一種の地図の一部分から第二種の地図の一部分を生成するための情報である。なお、第一種の地図の種類、第二種の地図の種類は、問わない。第一種の地図は、例えば、平面地図、デジタル標高地図、立体地図、鳥瞰図等である。第二種の地図は、第一種の地図とは異なる種類の地図であり、例えば、鳥瞰図、平面地図、デジタル写真標高地図、立体地図である。ただし、第一種の地図の領域および第二種の地図の領域は、通常、同じである。
なお、第一種の地図、第二種の地図は、例えば、ビットマップであるが、ベクトルデータ、ビットマップとベクトルデータとの組み合わせでも良く、そのデータ構造は問わない。また、ビットマップは、jpeg、gif、bmp等、そのデータ形式は問わないことは言うまでもない。
実施の形態1における生成情報は、第一種の地図の一部分である第一種地図部分と第一種の地図と同じ領域の第二種の地図の一部分である第二種地図部分との組を、複数組、機械学習のアルゴリズムにより学習し、取得された学習器である。機械学習のアルゴリズムとは、例えば、深層学習、決定木、ランダムフォレスト、SVM等、問わない。
生成情報は、第一種の地図の一部分である第一種地図部分と第一種の地図と同じ領域の第二種の地図の一部分である第二種地図部分と第二種の地図の特徴量であり鳥瞰図に関する特徴量の集合を複数、機械学習のアルゴリズムにより学習し、取得された学習器であっても良い。鳥瞰図に関する特徴量の集合は、鳥瞰図に関する1または2以上の特徴量である。鳥瞰図に関する特徴量の集合は、特徴量ベクトルと言っても良い。鳥瞰図に関する特徴量は、例えば、視点の位置を示す位置情報、投射角度である。
なお、1以上の各生成情報は、第一種類情報と第二種類情報とに対応付けられていても良い。また、1以上の各生成情報は、第一種類情報と第二種類情報と鳥瞰図の特徴量(例えば、投影角度)とに対応付けられていても良い。第一種類情報とは、第一種の地図の種類を示す情報である。第二種類情報とは、第二種の地図の種類を示す情報である。
なお、学習器を生成する学習装置について、実施の形態3で説明する。
受付部2は、各種の指示や情報を受け付ける。各種の指示や情報とは、例えば、第一種の地図、動作の開始指示である。受付部2は、第一種の地図とともに、第一種の地図の第一種類情報と第二種類情報とを受け付けても良い。受付部2は、投射角度等の鳥瞰図の特徴量を受け付けても良い。
ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
各種の指示や情報の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部2は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
処理部3は、各種の処理を行う。各種の処理とは、例えば、文字取得部31、文字切除部32、分割部33、変換部34、合成部35等が行う処理である。各種の処理とは、例えば、受け付けられた第一種の地図をビットマップ化する処理である。なお、かかる場合、第一種の地図はビットマップではなく、例えば、ラスターデータである。各種の処理とは、例えば、受付部2が受け付けた第一種の地図の種類である第一種類情報を取得する処理である。なお、第一種類情報と第一種の地図との多数の組を機械学習により学習しておけば、受付部2が受け付けた第一種の地図を入力し、第一種類情報を取得することは、公知の機械学習のアルゴリズムにより可能である。
文字取得部31は、受付部2が受け付けた第一種の地図から文字の部分を検知し、文字を取得する。文字取得部31は、受付部2が受け付けた第一種の地図から文字の部分を検知し、1または2以上の文字列を取得することは好適である。なお、文字列は、通常、2以上の文字であるが、1つの文字でも良い。文字列は、例えば、地名、名勝等である。文字取得部31は、受付部2が受け付けた第一種の地図から文字の部分を検知し、文字列と当該文字列の属性値とを取得することは好適である。文字列の属性値は、例えば、文字のサイズ、文字の色、フォント等である。文字取得部31は、第一種の地図に対して文字認識処理を行い、文字の部分を検知し、文字コードと、当該文字コードに対応する領域情報を取得する。文字取得部31は、第一種の地図に対して文字認識処理を行い、文字の部分を検知し、文字コードと、文字の属性値と、当該文字の部分に対応する領域情報を取得する。なお、文字の画像から文字属性値(サイズ、色、フォント等)を取得する技術は公知技術であるので詳細な説明は省略する。
領域情報は、第一種の地図の中の相対的な領域を示す情報である。領域情報は、例えば、第一種の地図の中の相対的な位置を示す座標値(x,y)である。領域情報は、例えば、文字の領域の中の左上座標と右下座標、文字の領域の中の左上座標と文字サイズ、または文字の領域の中の左上座標と幅と高さ等である。なお、文字認識処理は公知技術であるので、詳細な説明を省略する。また、文字を取得することは、通常、文字コードを取得することであるが、文字の画像を取得することでも良い。
文字切除部32は、第一種の地図から文字取得部31が検知した文字の部分を切り抜く。文字切除部32は、第一種の地図から文字の領域部分を切り抜いて、切り抜き後の第一種の地図を取得する。文字の部分を切り抜く処理は、文字の部分に文字以外の情報を上書きする処理でも良い。文字の部分を切り抜く処理は、結果として、文字が表出しなければ良い。文字切除部32は、文字取得部31が検知した文字の部分を、当該部分の周辺の画素値を用いて、補間し、文字が無い第一種の地図を構成することは好適である。着目する画素の周辺の1または2以上の画素の画素値を用いて、着目する画素の画素値を決定する処理は公知技術であるので詳細な説明を省略する。
分割部33は、受付部2が受け付けた第一種の地図を分割し、2以上の第一種地図部分を取得する。第一種地図部分は、第一種の地図の部分の情報であれば良い。第一種地図部分は、通常、ビットマップであるが、ラスターデータ等でも良く、そのデータタイプは問わない。
分割部33は、文字切除部32が文字の部分を切り抜いた後の第一種の地図を分割し、2以上の第一種地図部分を取得することは好適である。
分割部33は、文字切除部32が文字の部分を切り抜いた後の第一種の地図のうち、文字切除部32が切り抜いた領域を除く領域を分割し、2以上の第一種地図部分を取得することは好適である。
また、分割部33が第一種の地図を分割する際の分割のサイズ、分割のアルゴリズムは問わない。つまり、第一種地図部分のサイズは問わない。ただし、第一種地図部分は、通常、2画素以上である。また、分割部33が第一種の地図を分割する際の分割のサイズ、分割のアルゴリズムは、予め決められていることは好適である。
また、分割部33は、通常、相対的位置情報に対応付けて、第一種地図部分を取得する。なお、相対的位置情報は、第一種地図部分の第一種の地図全体の中の相対的な位置を示す情報である。相対的位置情報は、例えば、座標値(x,y)、第一種地図部分に対応するブロックを識別するブロックID、相対的位置情報の領域を特定する情報(例えば、左上座標と右下座標)である。
変換部34は、2以上の各第一種地図部分から、生成情報を用いて、第二種地図部分を取得する。第二種地図部分は、第二種の地図の部分である。
変換部34は、受付部2が受け付けた第一種の地図の第一種類情報と、変換する地図の種類を示す第二種類情報とを取得し、当該第一種類情報と第二種類情報とに対応する生成情報を用いて、2以上の各第一種地図部分から、2以上の第二種地図部分を取得することは好適である。
変換部34は、受付部2が受け付けた第一種の地図の第一種類情報と、変換する地図の種類を示す第二種類情報と鳥瞰図の特徴量(例えば、投影角度、視点位置)とを取得し、当該第一種類情報と第二種類情報とに対応する生成情報を用いて、2以上の各第一種地図部分から、2以上の第二種地図部分を取得することは好適である。なお、視点位置は、例えば、地図上における相対的な座標値(x,y,z)であるが、視点の位置を特定する情報であれば何でも良い。
なお、第二種類情報と鳥瞰図の特徴量とは、通常、受付部2が受け付けた情報である。第一種類情報は、受付部2が受け付けた情報または処理部3が受付部2が受け付けた第一種の地図から自動取得した情報である。また、第一種類情報と第二種類情報と鳥瞰図の特徴量は、格納部1に格納されていても良い。
以下、変換部34の第一および第二の動作例について説明する。まず、第一の動作例について説明する。変換部34は、例えば、画像である第一種地図部分から1以上の特徴量を抽出し、特徴量ベクトルを構成する。次に、変換部34は、1以上の特徴量を学習器である生成情報に適用し、機械学習のアルゴリズムにより、第二種地図部分を取得する。変換部34は、かかる処理を、2以上の各第一種地図部分ごとに行う。なお、1以上の特徴量は、例えば、画素値、輝度、アクティビティ、時空間相関、動きベクトル、周波数分布、第一種地図部分の画素値分布、複数の画素値(例えば、周辺の隣接する複数の画素の画素値、隣接しない予め決められた位置関係にある複数の画素の画素値)の演算値(例えば、平均値、差、和など)等である。また、アクティビティとは、例えば、複数の画素の最大値および最小値、ダイナミックレンジ(DR)、複数の画素の間の差分値などである。複数の画素の間の差分値は、例えば、空間内の複数画素間の差分値である。
次に、変換部34の第二の動作例について説明する。変換部34は、例えば、第一種地図部分を学習器である生成情報に適用し、機械学習のアルゴリズムにより、第二種地図部分を取得する。変換部34は、かかる処理を、2以上の各第一種地図部分ごとに行う。
なお、変換部34は、第一種地図部分から取得された第二種地図部分を、当該第一種地図部分と対になる相対的位置情報に対応付ける。
合成部35は、2以上の第二種地図部分を用いて第二種の地図を取得する。合成部35は、2以上の第二種地図部分を合成し、第二種の地図を取得する。合成部35は、例えば、2以上の各第二種地図部分に対応付いている相対的位置情報が示す位置に、2以上の各第二種地図部分を配置し、第二種の地図を取得する。
合成部35は、例えば、2以上の第二種地図部分と文字取得部31が取得した文字とを用いて第二種の地図を取得する。
合成部35は、例えば、2以上の第二種地図部分を合成し、切り抜かれた領域に対応する領域であり、第二種の地図の領域に、文字取得部31が取得した文字を配置し、第二種の地図を取得する。なお、切り抜かれた領域に対応する領域とは、切り抜かれた第一種地図の領域に対応する第二種地図の領域である。
合成部35は、例えば、2以上の各第二種地図部分に対応付いている相対的位置情報が示す位置に、2以上の各第二種地図部分を配置し、かつ文字取得部31が取得した文字を、文字に対応する領域情報が示す領域に配置する。
合成部35は、例えば、文字取得部31が取得した文字コードを、予め決められた属性値にし、当該文字に対応する領域情報が示す領域に配置し、第二種の地図を取得する。予め決められた属性値は、文字の属性値であり、例えば、フォント、文字色、文字の大きさである。また、予め決められた属性値は、例えば、格納部1に予め格納されている。
合成部35は、例えば、2以上の各第二種地図部分に対応付いている相対的位置情報が示す位置に、2以上の各第二種地図部分を配置し、かつ文字取得部31が取得した文字を、文字に対応する領域情報が示す領域に配置する。
出力部4は、合成部35が取得した第二種の地図を出力する。なお、出力とは、ここでは、例えば、記録媒体への蓄積であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念と考えても良い。
格納部1、および生成情報格納部11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部1等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部1等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部1等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部1等で記憶されるようになってもよい。
処理部3、文字取得部31、文字切除部32、分割部33、変換部34、合成部35、および出力部4は、通常、MPUやメモリ等から実現され得る。処理部3等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部4は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現されても良い。出力部4は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。
次に、地図変換装置Aの動作について、図2のフローチャートを用いて説明する。
(ステップS201)受付部2は、第一種の地図を受け付けたか否かを判断する。第一種の地図を受け付けた場合はステップS202に行き、第一種の地図を受け付けなかった場合はステップS201に戻る。
(ステップS202)文字取得部31は、受付部2が受け付けた第一種の地図から、1または2以上の文字列の部分を検知する。
(ステップS203)文字取得部31は、カウンタiに1を代入する。
(ステップS204)文字取得部31は、ステップS202で検知した文字列のうち、i番目の文字列が存在するか否かを判断する。i番目の文字列が存在する場合はステップS205に行き、i番目の文字列が存在しない場合はステップS210に行く。
(ステップS205)文字取得部31は、i番目の文字列の各文字の文字コードを取得する。つまり、文字取得部31は、i番目の文字列の文字コードを取得する。
(ステップS206)文字取得部31は、i番目の文字列の領域情報を取得する。なお、領域情報は、例えば、第一種の地図の中のi番目の文字列の領域を特定する情報である。
(ステップS207)文字取得部31は、i番目の文字列の各文字の文字コードとi番目の文字列の領域情報とを対応付けて、図示しないバッファまたは格納部1に一時蓄積する。
(ステップS208)文字切除部32は、ステップS201で受け付けられた第一種の地図から、i番目の文字列の部分を切り抜く。
(ステップS209)文字取得部31は、カウンタiを1、インクリメントする。ステップS204に戻る。
(ステップS210)分割部33は、ステップS208での切り抜きの処理が行われた後の第一種の地図を分割し、2以上の第一種地図部分を取得する。そして、分割部33は、2以上の各第一種地図部分を、当該各第一種地図部分の相対的な位置を示す相対的位置情報または領域を特定する領域情報に対応付けて、図示しないバッファまたは格納部1に一時蓄積する。
(ステップS211)変換部34は、カウンタjに1を代入する。
(ステップS212)変換部34は、j番目の第一種地図部分が存在するか否かを判断する。j番目の第一種地図部分が存在する場合はステップS213に行き、j番目の第一種地図部分が存在しない場合はステップS216に行く。
(ステップS213)変換部34は、j番目の第一種地図部分に対して変換処理を行い、第二種地図部分を取得する。なお、変換処理の詳細については上述したので、ここでの説明は省略する。
(ステップS214)変換部34は、ステップS213で取得した第二種地図部分を、j番目の第一種地図部分に対応付いている相対的位置情報または領域情報と対にして、図示しないバッファまたは格納部1に一時蓄積する。
(ステップS215)変換部34は、カウンタiを1、インクリメントする。ステップS12に戻る。
(ステップS216)合成部35は、2以上の第二種地図部分を合成し、第二種の地図を取得する。つまり、合成部35は、2以上の各第二種地図部分と対になる相対的位置情報または領域情報が示す位置に各第二種地図部分を配置し、第二種の地図を取得する。また、合成部35は、ステップS207で文字取得部31により蓄積された1以上の各文字コード列に対応する文字列を、対応する領域情報に対する位置に配置することは好適である。この場合、合成部35は、予め決められた文字の属性値の文字列を配置することは好適である。
(ステップS217)出力部4は、ステップS216で取得された第二種の地図を、図示しないバッファまたは格納部1に一時蓄積する。処理を終了する。
以上、本実施の形態によれば、第一種の地図から第一種とは異なる種類の第二種の地図を適切に生成できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における地図変換装置Aを実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、第一種の地図の一部分から第二種の地図の一部分を生成するための情報である生成情報が格納される生成情報格納部にアクセス可能なコンピュータを、第一種の地図を受け付ける受付部と、前記受付部が受け付けた第一種の地図を分割し、当該地図の部分である2以上の第一種地図部分を取得する分割部と、前記2以上の各第一種地図部分から、前記生成情報を用いて、第二種の地図の部分である2以上の第二種地図部分を取得する変換部と、前記2以上の第二種地図部分を用いて第二種の地図を取得する合成部と、前記合成部が取得した第二種の地図を出力する出力部として機能させるためのプログラムである。
また、上記プログラムにおいて、前記生成情報は、第一種の地図の一部分である第一種地図部分と当該第一種の地図と同じ領域の第二種の地図の一部分である第二種地図部分との組を複数組機械学習のアルゴリズムにより学習し、取得された学習器であることは好適である。
(実施の形態2)
本実施の形態において、実施の形態1との違いは、機械学習のアルゴリズムを用いずに、第一種の地図から第二種の地図を取得する点である。
本実施の形態において、受け付けた第一種の地図を分割し、第一種の地図の一部分と第二種の地図の一部分との対応を取るための情報である生成情報を用いて、第一種の地図から第二種の地図を取得する。
図3は、本実施の形態における地図変換装置Bのブロック図である。地図変換装置Bは、格納部5、受付部2、処理部6、および出力部4を備える。格納部5は、生成情報格納部51を備える。処理部6は、文字取得部31、文字切除部32、分割部33、変換部64、および合成部35を備える。
格納部5には、各種の情報が格納される。各種の情報は、例えば、後述する生成情報、文字の属性値である。
生成情報格納部51は、1または2以上の生成情報が格納される。生成情報は、第一種の地図の一部分である第一種地図部分から第二種の地図の一部分である第二種地図部分を生成するための情報である。生成情報は、画像である第一種地図部分から画像である第二種地図部分を取得するための情報である。生成情報は、例えば、画像を変換する演算式である。生成情報は、例えば、第一種地図部分と第二種地図部分との対の情報である。生成情報は、例えば、第一種地図部分の特徴量ベクトルと第二種地図部分との対の情報である。生成情報は、例えば、第二種地図部分である。
生成情報格納部51には、見出情報に対応付いている2以上の生成情報が格納されていることは好適である。見出情報は、画像である第一種地図部分または第一種地図部分の1以上の特徴量である。ここでの生成情報は、例えば、第二種地図部分、第二種地図部分の特徴量ベクトル、または画像を変換する演算式である。なお、演算式は、予め格納されている演算式に与える1以上のパラメータでも良い。
処理部6は、各種の処理を行う。各種の処理とは、例えば、変換部64等が行う処理である。
変換部64は、2以上の各第一種地図部分から、生成情報を用いて、第二種の地図の部分である2以上の第二種地図部分を取得する。
変換部64は、例えば、2以上の各第一種地図部分から1以上の特徴量を取得し、1以上の特徴量に最も近似する見出情報を決定し、当該見出情報に対応付いている生成情報を用いて、2以上の各第一種地図部分から、第一種地図部分に対応する第二種地図部分を取得する。
格納部5、および生成情報格納部51は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部5等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部5等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部5等で記憶されるようになってもよい。
処理部6、および変換部64は、通常、MPUやメモリ等から実現され得る。処理部6等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、地図変換装置Bの動作について、図4のフローチャートを用いて説明する。図4のフローチャートにおいて、図2のフローチャートと同一のステップについて説明を省略する。
(ステップS413)変換部64は、j番目の第一種地図部分から1以上の特徴量を取得し、特徴量ベクトルを構成する。次に、変換部64は、当該特徴量ベクトルに最も近似する見出情報(ここでは、特徴量ベクトル)を、生成情報格納部51の見出情報から決定する。次に、変換部64は、決定した見出情報と対になる生成情報を生成情報格納部51から取得する。次に、変換部64は、当該取得した生成情報を用いて、第一種地図部分を変換し、第二種地図部分を取得する。
以上、本実施の形態によれば、第一種の地図から第一種とは異なる種類の第二種の地図を適切に生成できる。
なお、本実施の形態における地図変換装置Bを実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、第一種の地図の一部分から第二種の地図の一部分を生成するための情報である生成情報が格納される生成情報格納部にアクセス可能なコンピュータを、第一種の地図を受け付ける受付部と、前記受付部が受け付けた第一種の地図を分割し、当該地図の部分である2以上の第一種地図部分を取得する分割部と、前記2以上の各第一種地図部分から、前記生成情報を用いて、第二種の地図の部分である2以上の第二種地図部分を取得する変換部と、前記2以上の第二種地図部分を用いて第二種の地図を取得する合成部と、前記合成部が取得した第二種の地図を出力する出力部として機能させるためのプログラムである。
また、上記プログラムにおいて、前記生成情報格納部には、画像である第一種地図部分または当該第一種地図部分の1以上の特徴量である見出情報に対応付いている2以上の生成情報が格納され、前記生成情報は、画像である第一種地図部分から画像である第二種地図部分を取得するための情報であり、前記変換部は、前記2以上の各第一種地図部分から1以上の特徴量を取得し、当該1以上の特徴量に最も近似する見出情報を決定し、当該見出情報に対応付いている生成情報を用いて、前記2以上の各第一種地図部分から2以上の第二種地図部分を取得するものとして、コンピュータを機能させるプログラムであることは好適である。
(実施の形態3)
本実施の形態において、実施の形態1で説明した地図変換装置Aが使用する生成情報を取得する学習装置について説明する。
図5は、本実施の形態における学習装置Cのブロック図である。学習装置Cは、格納部7、受付部2、処理部8、および出力部9を備える。格納部7は、地図格納部71を備える。処理部8は、文字取得部31、文字切除部32、分割部83、および学習部86を備える。出力部9は、蓄積部91を備える。
格納部7には、各種の情報が格納される。各種の情報は、例えば、後述する地図情報、鳥瞰図の1以上の特徴量である。ここでの特徴量は、例えば、投射角度、視点位置である。
地図格納部71には、第一種の地図と、当該第一種の地図と同じ領域の第二種の地図とが、対応付けて格納される。第一種の地図と第二種の地図の大きさ、縮尺等は同じでなくても良い。なお、同じ領域とは、完全に同一の領域であることは好適であるが、閾値以上の割合の領域が同じであることでも良い。また、ここでの閾値は、「90%」など、大きい値である方が好適である。
地図格納部71には、通常、第一種の地図と第二種の地図との組が、2組以上、格納される。第一種の地図と第二種の地図との組に、1以上の特徴量が対応付いていることは好適である。
受付部2は、鳥瞰図の1以上の特徴量を受け付ける。なお、ここで、受け付けとは、格納部7からの読み出しでも良い。
1以上の特徴量の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部2は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
処理部8は、各種の処理を行う。各種の処理とは、例えば、文字取得部31、文字切除部32、分割部83、学習部86が行う処理である。
分割部83は、第一種の地図を分割し、2以上の第一種地図部分を取得する。また、分割部83は、第二種の地図を分割し、2以上の第二種地図部分を取得する。なお、第一種の地図と第二種の地図は、地図格納部71に格納されている地図情報である。分割部83は、同じ領域の第一種地図部分と第二種地図部分とを対応付ける。
分割部83は、例えば、文字切除部32が文字の部分を切り抜いた後の第一種の地図を分割し、2以上の第一種地図部分を取得する。また、分割部83は、文字切除部32が文字の部分を切り抜いた後の第二種の地図を分割し、2以上の第二種地図部分を取得する。
分割部83は、例えば、文字切除部32が文字の部分を切り抜いた後の第一種の地図の領域と、文字切除部32が文字の部分を切り抜いた後の第二種の地図の領域の中で、対応する領域のみを使用して、2以上の第一種地図部分を取得し、かつ2以上の第二種地図部分を取得する。
なお、分割部83が取得した第一種地図部分と第二種地図部分との組は、同じ領域の地図であり、対応付けられている。
学習部86は、2以上の各第一種地図部分を入力とし、2以上の各第二種地図部分を出力とする学習器を、機械学習のアルゴリズムにより取得する。学習部86は、分割部83が取得した第一種地図部分と第二種地図部分との組、複数組を用いて、機械学習のアルゴリズムにより学習器を取得する。なお、かかる第一種地図部分と第二種地図部分とは、同じ領域の地図情報である。また、機械学習のアルゴリズムは、深層学習、決定木、ランダムフォレスト、SVM等、問わない。
また、学習部86は、例えば、組を構成する第一種地図部分と第二種地図部分について、当該第一種地図部分の入力があった場合に、当該第二種地図部分を正例とし、他の1以上の組の第二種地図部分を負例として用いて、機械学習のアルゴリズムにより学習器を取得する。
学習部86は、2以上の各第一種地図部分と1以上の特徴量とを入力とし、2以上の各第二種地図部分を出力とする学習器を、機械学習のアルゴリズムにより取得する。
学習部86は、文字列を有さない第一種地図部分と、文字列を有さない第二種地図部分との組を用いて、機械学習のアルゴリズムにより学習器を取得することは好適である。
出力部9は、学習部86が取得した学習器を出力する。ここでの出力とは、通常、蓄積であるが、他の装置への送信等でも良い。
蓄積部91は、学習部86が取得した学習器を蓄積する。
格納部7、および地図格納部71は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部7等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部7等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部7等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部7等で記憶されるようになってもよい。
処理部8、分割部83、学習部86、出力部9、および蓄積部91は、通常、MPUやメモリ等から実現され得る。処理部8等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、学習装置Cの動作について、図6のフローチャートを用いて説明する。
(ステップS601)処理部8は、カウンタiに1を代入する。
(ステップS602)処理部8は、i番目の地図の組が地図格納部71に存在するか否かを判断する。i番目の地図の組が存在する場合はステップS603に行き、存在しない場合はステップS613に行く。なお、地図の組は、同じ領域の第一種の地図と第二種の地図である。また、複数の各組に存在する第一種の地図は、通常、すべて同じ種類の地図である。また、複数の各組に存在する第二種の地図は、通常、すべて同じ種類の地図である。
(ステップS603)処理部8は、i番目の地図の組に対応する1以上の特徴量を、格納部7から取得する。なお、ここで、1以上の特徴量を取得できない場合があっても良い。また、1以上の特徴量は、例えば、i番目の地図の組に対応付けて格納されている。
(ステップS604)文字取得部31は、i番目の地図の組の第一種の地図から文字列の部分を検知する。文字切除部32は、すべての文字列の部分を第一種の地図から切り抜き、切り抜き後の第一種の地図を得る。
(ステップS605)文字取得部31は、i番目の地図の組の第二種の地図から文字列の部分を検知する。文字切除部32は、すべての文字列の部分を第二種の地図から切り抜き、切り抜き後の第二種の地図を得る。
(ステップS606)分割部83は、ステップS604で取得された切り抜き後の第一種の地図を分割する。
(ステップS607)分割部83は、ステップS605取得された切り抜き後の第二種の地図を分割する。
(ステップS608)学習部86は、カウンタjに1を代入する。
(ステップS609)学習部86は、j番目の第一種地図部分と第二種地図部分との組が存在するか否かを判断する。j番目の組が存在する場合はステップS610に行き、存在しない場合はステップS612に行く。なお、j番目を構成する第一種地図部分と第二種地図部分とは、同じ領域の地図である。
(ステップS610)学習部86は、j番目の第一種地図部分とj番目の第二種地図部分のいずれかまたは両方に空白部分(文字が切り抜かれた部分)が存在するか否かを判断する。空白部分が存在する場合はステップS612に行き、空白部分が存在しない場合はステップS611に行く。
(ステップS611)学習部86は、j番目の第一種地図部分と第二種地図部分との組を用いて、学習元情報を構成し、図示しないバッファに一時蓄積する。なお、学習元情報は、第一種地図部分を入力とし、第二種地図部分を出力とするための情報である。学習元情報は、例えば、第一種地図部分と第二種地図部分である。学習元情報は、例えば、第一種地図部分の1以上の特徴量と、第二種地図部分の1以上の特徴量である。学習元情報は、例えば、第一種地図部分と1以上の特徴量、および第二種地図部分である。学習元情報は、例えば、第一種地図部分の1以上の特徴量と当該第一の地図(鳥瞰図)の1以上の特徴量、および第二種地図部分の1以上の特徴量である。
(ステップS612)学習部86は、カウンタjを1、インクリメントする。ステップS609に戻る。
(ステップS613)処理部8は、カウンタiを1、インクリメントする。ステップS602に戻る。
(ステップS614)学習部86は、バッファに一時蓄積した2以上の学習元情報を学習し、学習器を取得する。
(ステップS615)蓄積部91は、ステップS614で取得された学習器を格納部7に蓄積する。処理を終了する。
なお、図6のフローチャートにおいて、地図から文字を切り抜かずに、学習しても良い。また、図6のフローチャートにおいて、ステップS610は無くても良い。つまり、学習部86は、空白部分が第一種地図部分、第二種地図部分をも用いて、学習器を取得しても良い。
以上、本実施の形態によれば、第一種の地図から第一種とは異なる種類の第二種の地図を生成するための学習器を取得できる。
なお、本実施の形態における学習装置Cを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第一種の地図と当該第一種の地図と同じ領域の第二種の地図とが格納される地図格納部にアクセス可能なコンピュータを、前記第一種の地図を分割し、2以上の第一種地図部分を取得し、前記第二種の地図を分割し、2以上の第二種地図部分を取得する分割部と、前記2以上の各第一種地図部分を入力とし、前記2以上の各第二種地図部分を出力とする学習器を、機械学習のアルゴリズムにより取得する学習部と、前記学習器を蓄積する蓄積部として機能させるためのプログラムである。
以下、上記実施の形態に関して、3つの実施例について説明する。実施例1は、上空から写した写真画像と鳥瞰図との対応を学習装置Cが学習し、地図変換装置Aが写真画像から鳥瞰図を取得する例である。なお、学習する写真画像と鳥瞰図の組は、同じ領域の写真画像と鳥瞰図であることは言うまでもない。
また、実施例2は、トレース平面図と鳥瞰図との対応を学習装置Cが学習し、地図変換装置Aがトレース平面図から鳥瞰図を取得する例である。なお、学習するトレース平面図と鳥瞰図の組は、同じ領域のトレース平面図と鳥瞰図であることは言うまでもない。
実施例3は、写真画像とトレース平面図との対応を学習装置Cが学習し、地図変換装置Aが写真画像からトレース平面図を取得する例である。なお、学習する写真画像とトレース平面図の組は、同じ領域の写真画像とトレース平面図であることは言うまでもない。
(実施例1)
今、写真画像と当該写真画像の対象地域と同一の地域の鳥瞰図との多数のセットが地図格納部71に格納されている。また、各鳥瞰図には、投射角度が対応付いている、とする。
かかる状況において、学習装置Cの処理部8は、各セットの写真画像から文字列の領域を認識し、当該文字列を消去する。また、処理部8は、各セットの鳥瞰図から文字列の領域を認識し、当該文字列を消去する。
次に、分割部83は、文字列が切り抜かれた各写真画像を分割し、多数の第一種地図部分を取得する。また、分割部83は、文字列が切り抜かれた各鳥瞰図を分割し、多数の第二種地図部分を取得する。なお、分割部83は、同一の領域の第一種地図部分と第二種地図部分とを対応付けて取得する。
次に、学習部86は、対応付いている第一種地図部分と第二種地図部分の両方が空白部分(文字が切り抜かれた部分)を含まないか否かを判断する。そして、両方が空白部分を含まない第一種地図部分と第二種地図部分の組を取得する。学習部86が取得した第一種地図部分と第二種地図部分の組の集合は、例えば、図7である。
次に、学習部86は、図7の組(レコード)ごとに、第一種地図部分の特徴量と第二種地図部分の特徴量とを取得し、図示しないバッファに一時蓄積する。なお、第二種地図部分の特徴量は、鳥瞰図に対応付いている投射角度を含むとする。
次に、学習部86は、バッファに一時蓄積した第一種地図部分の特徴量と、第二種地図部分の特徴量とを学習元情報として、機械学習のアルゴリズムにより学習し、学習器L1を構成し、格納部7に蓄積する。以上により、学習フェーズが完了する。
次に、ユーザは、図8の写真画像および投射角度(ここでは、例えば、「x」)を、地図変換装置Aに与える。なお、地図変換装置Aの生成情報格納部11には、学習装置Cが取得した学習器L1が格納されている、とする。
次に、地図変換装置Aの受付部2は、第一種の地図である図8の写真画像を受け付ける。次に、文字取得部31は、受付部2が受け付けた第一種の地図から、1または2以上の文字列の部分を検知する。なお、図8の写真画像には、一部、人手で入力された文字列が記載されている。
次に、文字取得部31は、検知した各文字列の文字コードを取得する。そして、各文字列の各文字の文字コードの相対的な位置を示す領域情報(通常、座標値)を取得し、文字コード列に対応付けて、バッファに蓄積する。
次に、文字切除部32は、受け付けられた図8の地図から、各文字列の部分を切り抜く。
次に、分割部33は、切り抜きの処理が行われた後の図8の地図を分割し、2以上の第一種地図部分を取得する。なお、第一種地図部分は空白部分を含まないことが好適である。
次に、変換部34は、各第一種地図部分の1または2以上の特徴量を取得する。変換部34は、各第一種地図部分から取得した1以上の特徴量と投射角度「x」とを学習器L1に適用し、第一種地図部分ごとに、第二種地図部分の1または2以上の特徴量を取得する。
なお、変換部34は、第一種地図の種類情報「写真画像」と第二種地図の種類情報「鳥瞰図」とに対応する学習器を生成情報格納部11から選択し、使用しても良い。また、変換部34は、第一種地図の種類情報「写真画像」と第二種地図の種類情報「鳥瞰図」と投射角度「y」とに対応する学習器を生成情報格納部11から選択し、使用しても良い。第一種地図の種類情報「写真画像」は、処理部3が自動認識しても良いし、ユーザにより入力され、受付部2が受け付けても良い。また、第二種地図の種類情報「鳥瞰図」と投射角度「x」とは、通常、ユーザにより入力され、受付部2が受け付ける。
次に、変換部34は、第一種地図部分ごとに、第二種地図部分の1または2以上の特徴量から、第二種地図部分を構成する。なお、画像の1または2以上の特徴量から画像を構成する処理は公知技術であるので、詳細な説明は省略する。
次に、合成部35は、取得した第二種地図部分を、対応する第一種地図部分の位置に基づいて合成する。また、合成部35は、合成した地図に対して、文字取得部31により蓄積された1以上の各文字コード列に対応する文字列を、対応する領域情報に対する位置に配置する。以上により、図8の写真画像および投射角度「x」に対応する鳥瞰図の地図を取得できた。
次に、出力部4は、取得された鳥瞰図の地図(第二種地図)を、図示しないバッファまたは格納部1に一時蓄積する。かかる地図は、図9である。
(実施例2)
今、トレース平面図と当該トレース平面図の対象地域と同一の地域の鳥瞰図との多数のセットが地図格納部71に格納されている。また、各鳥瞰図には、投射角度が対応付いている。
かかる状況において、学習装置Cの処理部8は、各トレース平面図から文字列の領域を認識し、当該文字列を消去する。また、処理部8は、各鳥瞰図から文字列の領域を認識し、当該文字列を消去する。
次に、分割部83は、文字列が切り抜かれた各トレース平面図を分割し、第一種地図部分を取得する。また、分割部83は、文字列が切り抜かれた各鳥瞰図を分割し、第二種地図部分を取得する。なお、分割部83は、同一の領域の第一種地図部分と第二種地図部分とを対応付けて取得する。
次に、学習部86は、対応付いている第一種地図部分と第二種地図部分の両方が空白部分(文字が切り抜かれた部分)を含まないか否かを判断する。そして、両方が空白部分を含まない第一種地図部分と第二種地図部分の組を取得する。学習部86が取得した第一種地図部分と第二種地図部分の組の集合は、例えば、図10である。
次に、学習部86は、図10の組ごとに、第一種地図部分の特徴量と第二種地図部分の特徴量とを取得し、図示しないバッファに一時蓄積する。なお、第二種地図部分の特徴量は、鳥瞰図に対応する投射角度を含むとする。
次に、学習部86は、バッファに一時蓄積した第一種地図部分の特徴量と、第二種地図部分の特徴量とを学習元情報として、機械学習のアルゴリズムにより学習し、学習器L2を構成し、格納部7に蓄積する。以上により、学習フェーズが完了する。
次に、ユーザは、図11のトレース平面図および投射角度(ここでは、例えば、「y」)を、地図変換装置Aに与える。なお、地図変換装置Aの生成情報格納部11には、学習装置Cが取得した学習器L2が格納されている、とする。
次に、地図変換装置Aの受付部2は、第一種の地図である図11のトレース平面図を受け付ける。次に、文字取得部31は、受付部2が受け付けた第一種の地図から、1または2以上の文字列の部分を検知する。
次に、文字取得部31は、検知した各文字列の文字コードを取得する。そして、各文字列の各文字の文字コードの相対的な位置を示す領域情報(通常、座標値)を取得し、文字コード列に対応付けて、バッファに蓄積する。
次に、文字切除部32は、受け付けられた図11の地図から、各文字列の部分を切り抜く。
次に、分割部33は、切り抜きの処理が行われた後の図11の地図を分割し、2以上の第一種地図部分を取得する。なお、第一種地図部分は空白部分を含まないことが好適である。
次に、変換部34は、各第一種地図部分の1または2以上の特徴量を取得する。変換部34は、各第一種地図部分から取得した1以上の特徴量と投射角度「y」とを学習器L2に適用し、第一種地図部分ごとに、第二種地図部分の1または2以上の特徴量を取得する。
なお、変換部34は、第一種地図の種類情報「トレース平面図」と第二種地図の種類情報「鳥瞰図」とに対応する学習器を生成情報格納部11から選択し、使用しても良い。また、変換部34は、第一種地図の種類情報「トレース平面図」と第二種地図の種類情報「鳥瞰図」と投射角度「y」とに対応する学習器を生成情報格納部11から選択し、使用しても良い。第一種地図の種類情報「トレース平面図」は、処理部3が自動認識しても良いし、ユーザにより入力され、受付部2が受け付けても良い。また、第二種地図の種類情報「鳥瞰図」と投射角度「x」とは、通常、ユーザにより入力され、受付部2が受け付ける。
次に、変換部34は、第一種地図部分ごとに、第二種地図部分の1または2以上の特徴量から第二種地図部分を構成する。
次に、合成部35は、取得した第二種地図部分を、対応する第一種地図部分の位置に基づいて合成する。また、合成部35は、合成した地図に対して、文字取得部31により蓄積された1以上の各文字コード列に対応する文字列を、対応する領域情報に対する位置に配置する。以上により、図11のトレース平面図および投射角度「x」に対応する鳥瞰図の地図を取得できた。
次に、出力部4は、取得された鳥瞰図の地図を、図示しないバッファまたは格納部1に一時蓄積する。かかる地図は、図9である。
(実施例3)
今、写真地図と当該写真地図の対象地域と同一の地域のトレース平面図との多数のセットが地図格納部71に格納されている。
かかる状況において、学習装置Cの処理部8は、各写真地図から文字列の領域を認識し、当該文字列を消去する。また、処理部8は、各トレース平面図から文字列の領域を認識し、当該文字列を消去する。
次に、分割部83は、文字列が切り抜かれた各写真地図を分割し、第一種地図部分を取得する。また、分割部83は、文字列が切り抜かれた各トレース平面図を分割し、第二種地図部分を取得する。なお、分割部83は、同一の領域の第一種地図部分と第二種地図部分とを対応付けて取得する。
次に、学習部86は、対応付いている第一種地図部分と第二種地図部分の両方が空白部分(文字が切り抜かれた部分)を含まないか否かを判断する。そして、両方が空白部分を含まない第一種地図部分と第二種地図部分の組を取得する。学習部86が取得した第一種地図部分と第二種地図部分の組の集合は、例えば、図12である。
次に、学習部86は、図12の組ごとに、第一種地図部分の特徴量と第二種地図部分の特徴量とを取得し、図示しないバッファに一時蓄積する。
次に、学習部86は、機械学習のアルゴリズムにより、バッファに一時蓄積した第一種地図部分の特徴量と、第二種地図部分の特徴量とを学習元情報として、学習し、学習器L3を構成し、格納部7に蓄積する。以上により、学習フェーズが完了する。
次に、ユーザは、図8の写真地図を、地図変換装置Aに与える。なお、地図変換装置Aの生成情報格納部11には、学習装置Cが取得した学習器L3が格納されている、とする。
次に、地図変換装置Aの受付部2は、第一種の地図である図8の写真地図を受け付ける。次に、文字取得部31は、受付部2が受け付けた第一種の地図から、1または2以上の文字列の部分を検知する。
次に、文字取得部31は、検知した各文字列の文字コードを取得する。そして、各文字列の各文字の文字コードの相対的な位置を示す領域情報(通常、座標値)を取得し、文字コード列に対応付けて、バッファに蓄積する。
次に、文字切除部32は、受け付けられた図8の地図から、各文字列の部分を切り抜く。
次に、分割部33は、切り抜きの処理が行われた後の図8の地図を分割し、2以上の第一種地図部分を取得する。なお、第一種地図部分は空白部分を含まないことが好適である。
次に、変換部34は、各第一種地図部分の1または2以上の特徴量を取得する。変換部34は、各第一種地図部分から取得した1以上の特徴量を学習器L3に適用し、第一種地図部分ごとに、第二種地図部分の1または2以上の特徴量を取得する。
なお、変換部34は、第一種地図の種類情報「写真画像」と第二種地図の種類情報「トレース平面図」とに対応する学習器を生成情報格納部11から選択し、使用しても良い。また、変換部34は、第一種地図の種類情報「写真画像」と第二種地図の種類情報「トレース平面図」とに対応する学習器を生成情報格納部11から選択し、使用しても良い。第一種地図の種類情報「写真画像」は、処理部3が自動認識しても良いし、ユーザにより入力され、受付部2が受け付けても良い。また、第二種地図の種類情報「トレース平面図」は、通常、ユーザにより入力され、受付部2が受け付ける。
次に、変換部34は、第一種地図部分ごとに、第二種地図部分の1または2以上の特徴量から第二種地図部分を構成する。
次に、合成部35は、取得した第二種地図部分を、対応する第一種地図部分の位置に基づいて合成する。また、合成部35は、合成した地図に対して、文字取得部31により蓄積された1以上の各文字コード列に対応する文字列を、対応する領域情報に対する位置に配置する。以上により、図11のトレース平面図を取得できた。
次に、出力部4は、取得されたトレース平面図を、図示しないバッファまたは格納部1に一時蓄積する。かかる地図は、図11である。
また、図13は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の地図変換装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図13は、このコンピュータシステム300の概観図であり、図14は、システム300のブロック図である。
図13において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図14において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、CD−ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の地図変換装置等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の地図変換装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。