まちなみとAI その4 2つのまちなみの滑らかな変化

まちなみとすまい研究会

1.はじめに

まちなみは場所によって様々であるため、ある場所のまちなみには特有の特徴が存在すると考えられます。では、あるまちなみAの特徴と、別のまちなみBの特徴には、どのような違いがあるのでしょうか。また、2つのまちなみの違いをわかりやすく可視化するにはどうすればよいのでしょうか。
1つの切り口として、「まちなみAにまちなみBの要素を取り入れた画像」の生成・観察が考えられます。AからBに画像を少しずつ変化させることで、2枚の画像を見比べるだけでは観察できない微細な違いを可視化することができます。それに伴って、まちなみに抱く印象はどのように変化するのでしょうか。
前々回のまちなみの生成(まちなみとAI その2)では、飛騨地方らしいまちなみの画像を2つ生成して、両者を連続的に変化させようと試みました。ただし前々回は、実在する画像ではなく、新たに生成した架空の画像2枚を使用していました。また、2つの画像の中間に位置する画像は実在するまちなみからは遠いものとなってしまいました(図1)。
今回は前々回と異なる機械学習のアプローチによって、実在するまちなみ画像を少しずつ滑らかに変化させることにチャレンジします。


図1:前々回で生成した画像

2.分析方法

まず前準備として、Flow生成モデルという、ランダムにサンプリングした数値配列からまちなみ画像を自動的に作成してくれるモデルを作成します。Flow生成モデルはあくまで「道具」なのでここでは詳細な説明を省略しますが、興味のある方は補足をご覧ください。
Flow生成モデルを使用する利点は、画像を滑らかに変化させられる点です。図2ではモデルを簡略化して説明しています。なお、以下の説明で使用しているモデル(関数f)は、既に大量のまちなみ画像を学習したものを想定しています。

まずは画像Aと画像Bをそれぞれ数値配列に変換し、それを関数fに入力して数値配列zを出力します(図中写真から緑色、赤色)。次に、線形補間という手法で、2つの数値配列zの中間となる数値配列を複数作成します(図中赤色の部分)。これらを再度逆向きに変換(図中f-1(x))することで、画像Aと画像Bの中間を生成することができます(図中赤色から青色、右側部分)。例えば画像Aの要素を3割、画像Bの要素を7割取り入れた画像を作成することなども可能です。今回はこれを、2種類のまちなみ画像に当てはめます。


図2:分析イメージ ※D. P. Kingma, P. Dhariwal(2018)とLilian Weng(2018)を参考に筆者が作成

3.使用データ

今回の分析でも、前回 使用した西片・根津の画像を使用します。いずれも東京都文京区に位置する、住宅地又は住宅と商業が混在している地域です。両者は徒歩5分ほどの距離しか離れていませんが、少しまちなみの特徴が違います。まず、西片は区画整理された閑静な住宅街です。一方で根津は木造住宅が密度高く立地し、植栽が溢れ出す路地も多く見受けられる地区です。
なお、写真の構図がなるべく同じになるように、車道の左側の建物壁面から1m前後離れた位置を歩き、天候が似ていた9月中の三日間の同時刻に撮影しています。詳しくは前回の記事(まちなみとAI その3)をご覧ください。


写真1・2:西片のまちなみ画像例

写真3・4:根津のまちなみ画像例

4.結果

まずは、学習したFlow生成モデルがうまくまちなみ画像を生成できるかを確認します。画像生成の精度が高ければ高いほど、後段の分析でまちなみらしさを維持したまま画像を変化させることができます。

図3・4・5・6:Flow生成モデルによる画像生成の結果

これらの画像は西片や根津のまちなみを学習したモデルから新たに作成した、架空のまちなみです。2~3階建ての住宅が立ち並んでいる点、生垣や植栽などの豊富な緑、空中の電線など、西片や根津に共通する特徴を十分に再現できているように見えます。

次に、西片の画像を根津の画像に少しずつ近づけてみます。左端が実在する西片の画像、右端が実在する根津の画像です。



図7:結果その1(←西片/根津→)

西片では、区画整備が進んでいるため左端の画像のように道路が真っ直ぐな場合が多く、視界に占める空の割合が大きくなります。
一方で、右(根津側)に寄るほど、徐々に向かって右奥の建物が現れてきます。筆者は少し圧迫感が生じているように感じますが、読者の皆さまはいかがでしょうか。
さらに、右(根津)から左(西片)に目を移すことで、根津の画像の道幅が、西片の画像の白線内側の車道幅とほぼ等しいことがわかります。路側帯(白線外側)の分だけ道幅が広がることで、読者の皆さまが抱くまちなみの印象はどのように変化したでしょうか。



図8:結果その2(←西片/根津→)

この図においても、右(根津)にいくにつれて見える空の面積は小さくなっています。しかし、左から4枚目の画像と右端の画像を比較すると、右端のまちなみから筆者はさほど圧迫感を受けませんでした。それは、後者からは向かって左奥の植栽や、向かって右の建物に使われている木材などの色彩が目に入るためだと考えられます。



図9:結果その3(←西片/根津→)

右端の根津の画像は、木造とコンクリート造が入り混じっている点や、庇が飛び出ている点などから、少しごちゃごちゃした印象を受けます。しかしそうした「複雑さ」は左にいくにつれて、徐々に失われていきます。真ん中の画像は、道路や建物、空などの「まちなみの骨格」と呼べる要素のみが残っており、整っているもののやや殺風景に見えます。

上記の2例目と3例目をアニメーションにしてみました。まだまだ粗い画像ではありますが、画像が連続的に変化していく様子がよくわかります。


図10・11:結果その2・その3のアニメーション表示

5.おわりに

今回、2種類のまちなみ画像をなめらかに変化させることで、まちなみの特徴の違いを可視化しようと試みました。結果、2つの画像を見比べるだけでは気付きにくいまちなみの微妙な違いを可視化することができました。また、まちなみの微妙な変化が観察者の印象に与える影響について考察することができました。
今回は西片のまちなみを根津らしく変化させましたが、画像データ次第で様々な分析が可能です。例えば「緑が少ないまちなみ」を「緑が多いまちなみ」に少しずつ変えていくこともできます。
現状では、まちなみ画像の撮影やモデルの学習に手間と時間がかかります。ですがもし、画像取得からモデル学習、画像補間までのプログラムを自動化できれば、閲覧者は少しツマミをいじるだけでまちなみ画像を自在に変化させていくことができるようになるかもしれません。インタラクティブにまちなみ画像を操作することで、新たな気付きが得られることでしょう。

補足(Flow生成モデル)

画像生成モデルとは、大量の画像を学習することで、実際には存在しないが学習したデータによく似た画像を生成するモデルのことです。今回は、前回前々回に使用したGAN(生成モデルの代表格として知られている)ではなく、Flow生成モデルというモデルを使用しています。
Flow生成モデルの説明は図12の通りです。多変量正規分布からランダムにサンプリングした数値配列を、まちなみ画像に変換してくれるような関数f(x)を学習します。


図12:Flow生成モデルのイメージ ※D. P. Kingma, P. Dhariwal(2018)とLilian Weng(2018)を参考に筆者が作成

参考
D. P. Kingma, P. Dhariwal, Glow: Generative Flow with Invertible 1x1 Convolutions, 2018, arXiv:1807.03039. 
Lilian Weng. "Flow-based Deep Generative Models." 2018. https://lilianweng.github.io/posts/2018-10-13-flow-models/ 

今回使用したプログラムは以下のものを改変して使用させていただきました。厚く御礼申し上げます。
・https://github.com/masa-su/pixyz

文責:山田康祐