宙畑 Sorabatake

解析ノートブック

京都と似ている街は?熊本城近辺と似ている場所は? 宇宙から見た街の近似度チェック!

宇宙から見て似ている街探しを3つのテーマで実施してみました。宇宙から見て、似ている街探しができることでどのような応用ができるかも記事の中で紹介しています。

突然ですが、自分の顔が芸能人だと誰に似ているかを判定するアプリを使ったことはありますか?

その仕組みは、顔の画像データから特徴を読み取り、近似度を判定するというもの。いやいや自分があの○○さんに似ているなんてと思っても、好きな芸能人だったときは嬉しくなりますよね。

この嬉しい体験を、衛星データを用いて街レベルでできないかと考えたのが本記事で実験した内容です。ぜひ本記事で試した実験を楽しんでいただけますと幸いです。

また、記事では街の近似度を判定する方法も紹介しておりますので、思いついたアイデアがあればぜひ実践してみてください。

(1)衛星データから街の近似度を計測する方法

可視光の衛星データから似ている街を探すため、画像分類や物体検知で高い精度が出ているNN(ニューラルネットワーク)モデルを使用して近似度を計測しました。

今回は「ResNet(Residual Network)」というNNモデルを使用して衛星画像から各街の特徴を抽出します。この際に、街の構成の特徴を数値化したものをベクトル形式で表現したものを特徴ベクトルと呼びます。2枚の画像を並べただけだと、定性的に似ているかどうかを感覚的にしか言えませんが、数値化することで一致度がどれほどか定量的に比較できるようになるのです。

今回は特徴ベクトルを「コサイン類似度」という方法を用いることで、基準とする画像の特徴ベクトルに対して比較対象とする画像の特徴ベクトルが似ているかどうかベクトル同士を比較します。2つのベクトルについてコサインで類似度を取るので、1に近ければ近いほど一致している、ということになります。

ここからNNモデルである「ResNet(Residual Network)」と「コサイン類似度」について詳しく紹介していきます。

1.ResNet(Residual Network)

ResNetとは

ResNet(Residual Network)とは残差ニューラルネットワークと呼ばれており、従来のCNN(Convolutional Neural Network)で発生する「層を増やすと性能が悪化する」という課題を解決したモデルです。

ある層で求める最適な出力を学習するのが従来のNNモデルの考えに対し、「層の入力を参照した残差関数を学習する」というアイデアに基づいており、手前の層の入力を後ろの層の出力を足し合わせるショートカット接続を繰り返した導入した構成になっています。

(参照:https://deepage.net/deep_learning/2016/11/30/resnet.html

従来のNNモデル通り最適な出力をH(x)とすると、入力との差分F(x)=H(x)-xとなります。ResNetではこの入力と最適な出力の差F(x)を学習するため、残差F(x)(residue)を出力するネットワークモデル「ResNet」と呼ばれています。

ResNetモデル登場前のCNN(Convolutional Neural Network)は、層数を増やすことで抽象的な情報を抽出可能であることは発見されていましたが、層数を増やしすぎると学習に必要な勾配が消失してしまい効率的に学習ができない結果、性能が悪化していました。

この問題に対しResNetは、ある層で変換が不要な場合でもF(x)を0にすれば良いため、層数を増やせたことで精度向上することができています。

今回はpythonのオープンソースの機械学習ライブラリであるPyTourchで利用できる学習済みのResNetモデルを使用し、画像から特徴ベクトルを抽出してみます。

2.コサイン類似度

コサイン類似度とは

コサイン類似度とはベクトル同士の近さを表現する計算手法です。
よく機械学習・深層学習で距離関数(データの距離を定義する関数)として使用され、ベクトルにしたデータ特徴の類似度を計算できます。

コサイン類似度は図のようにベクトルのなす角度をθとした時のcosθの値を考えます。
ベクトルの向きが近ければなす角度θが0°に近くなるためcosθの値は1に近くなります。逆にベクトルの向きが遠ければなす角度θが大きくなるため、cosθの値は1より小さくなるというわけです。つまり、「ベクトルの近さ」=「画像の特徴の近さ」と理解できます。

今回はResNetで衛星画像から特徴ベクトルを抽出しているので、「街画像から算出したベクトルの近さ」=「街の特徴の近さ」と考え、街の類似度を計測します。

コサイン類似度の利点「ベクトルの大きさを無視できる」
コサイン類似度の最大の利点はベクトルの大きさを無視できることにあります。

よく使われる距離関数であるユークリッド距離を比較してみます。上記の図より、点A-点Bと点C-点Dのユークリッド距離・コサイン類似度を見ると、ユークリッド距離はd1<d2とベクトルの大きさによって距離が異なるのに対して、コサイン類似度はどちらもなす角度θのためcosθと同じ値になります。

特徴ベクトルの大きさは出現頻度を表すため、特徴の出現頻度に依存せず類似度を計測したいときに有効な方法です。

(2)街の近似度を計測する3つのテーマと利用するデータ

本記事では、街の近似度の調査内容として、以下3つのお題を設定しました。

1.世界の主要都市
2.20の城下町とお城
3.京都と小京都

それぞれどのような内容かを簡単に紹介したあとで、解析結果を紹介します。

1.世界の主要都市

最初のお題は、東京、ニューヨーク、パリ……といった、世界の主要都市の近似度を確認します。このお題で利用するのは夜間の光を撮影した画像です。

2.20の城下町とお城

2つ目のテーマはお城です。お城一つとっても、お城の構造やその周りの城下町の姿は様々。複数の視点から似ているお城と城下町を探し出し、それぞれのお城がどのような意図をもってその場所にあるのかを考えます。

このお題で利用するのは、Sentinel-2の「true」「false color」「NDWI」と標高データです。

3.京都と小京都

最後のテーマは「京都と小京都」です。小京都とは、日本全国各地にある、古い町並みや風情が京都に似ている街のこと。衛星データから見ても京都と似ているのか。また、日本各地にある小京都と呼ばれる街で、最も京都と似ているのはどこなのでしょうか。

このお題で利用するのは、Sentinel-2の「false color(Urban)」です。

(3)街の近似度の解析結果

では、3つの解析事例それぞれの結果を見てみましょう。

1.世界の主要都市

今回、近似度を調査した主要都市は「北京」「ベルリン」「シカゴ」「ニューヨーク」「上海」「東京」の6つ。比較した画像は以下の通りです。
夜間の光の写真は宇宙飛行士が撮影した写真が集積したサイトより引用しております。

Credit : Image courtesy of the Earth Science and Remote Sensing Unit, NASA Johnson Space Center

そして、近似度を調査した結果は以下です。

これを見ると、最も近似度が高いと判断されたのは東京とベルリンのようです。

Credit : Image courtesy of the Earth Science and Remote Sensing Unit, NASA Johnson Space Center

ふたつの都市を並べてみると、たしかに東京とベルリンとでは、1点を中心として、放射状に都市が広がっているという点で似ていると分かります。

街がどのように整備されているのかという点で、似ている都市が抽出されるという点ではある程度納得できる結果と言えるのではないでしょうか。

2.20の城下町とお城

続いては宙畑が任意にピックアップした以下20のお城の近似度を調査します。

Credit : European Union,contains modifired Copernicus Sentinel data 2021,processed with EO browser

今回は、どのような場所にお城を築城したのかという観点を重視し、お城だけではなく、周辺の街の状態も含めた近似度を調査しました。調査したデータは以下の4つです。

Credit : European Union,contains modifired Copernicus Sentinel data 2021,processed with EO browser,国土地理院(標高データ)

そして、4つのデータの近似度を調査し、値を合計した結果は以下になります。

これを見ると、熊本城と金沢城が最も似ているという結果になりました。特に近似値が高いと出たのはfalse(植生を目立たせるもの)のデータでした。

Credit : European Union,contains modifired Copernicus Sentinel data 2021,processed with EO browser,国土地理院(標高データ)

たしかに、街があり、その周辺の一方に山があるような形はとても似ていますね。

また、この二つのお城はお城のある場所に注目してみると、標高データを見ても似ている部分があります。

Credit : 国土地理院

ご覧いただくと分かる通り、いずれも台地の先端にお城があり、繋がっている部分は一部を残して削り取られているように見えます。

これは、「熊本城は令和時代でも落とせない!? 城の専門家が語る加藤清正の選地の妙」で加藤先生が話されていたような、人工的なお堀なのでしょうか。また、加藤先生にお話を伺ってみたいものです。

3.京都と小京都

最後に調査したのは本物の京都に最も似ている小京都はどこだ?というもの。

今回比較した小京都は、全国京都会議加盟自治体として登録されている35の自治体です。

Credit : European Union,contains modifired Copernicus Sentinel data 2021,processed with EO browser

さっそく結果を見てみましょう。

Credit : European Union,contains modifired Copernicus Sentinel data 2021,processed with EO browser

解析の結果、最も京都に似ている街並みだと判断されたのは、伊達な小京都とも呼ばれる大崎市岩出山地区でした。

Credit : European Union,contains modifired Copernicus Sentinel data 2021,processed with EO browser

2枚のスライドを並べてみると、これは似てる!と言えるような画像ではないことが分かります。しいて言えば、蛇行している川の形が似ているという点でしょうか。

要因としては、京都と小京都では、その広さも違うため、小京都の方がズーム率が高く、解像度が悪い状態であることが考えられます。

今回利用した画像ではなく、より高解像度な衛星データを用いることで、より似ている街の発見ができるかもしれません。

(4)街の近似度解析、利活用アイデア「日本の○○探し」

現代の主要都市、約400年前に築城されたお城の城下町、京都と小京都という近似度がありそうな場所を3つピックアップして調査してみました。

今回のような近似度解析、応用する余地はあるのでしょうか?

宙畑編集部のいちアイデアとして、地域振興にあるのではないかと考えています。

今回、京都と小京都を調査しましたが、日本に限らず、世界各国の有名都市と似ている場所を国内で探すということもできるでしょう。

例えば、「日本のフレンツェ」や「日本のグランド・キャニオン」といった、新たな観光名所の創出につなげることで、国内外からの新たな観光客誘致につながり、地域振興のきっかけを作れるかもしれません。

まとめ

衛星データを用いた街の近似度解析の方法と実例、利活用アイデアを紹介しました。

主要都市の拡がりや熊本城の金沢城など、思っていた以上に近似度があると判断できたこともあれば、京都と小京都のように、衛星データの解像度によってうまく判別できない結果となったものもありました。

今回は衛星データのみを用いましたが、気温データや人口密度など、衛星データだけでは取得できないデータも組み合わせることで、今回の調査だけでは分からなかったような新たな街の近似度を発見できるかもしれません。

ぜひ気になった方は試してみていただければと思います。