Computer Vision

Python, Computer Vision, AI, Transhumanism 関連

人工衛星で見る停電(台風15号)

台風15号により千葉県では、停電が発生し、地域によっては現在も復旧作業が続けられている。

伊豆大島も含め、復旧にご尽力されている方々の安全と、被害にあわれた方々が本来の生活を一日も早く取り戻せることを心より願います。

 

電力と情報通信

電力の重要性は、情報通信も含め以前にも増して高まっている。

その点、今回の停電は、他人事では無いと思うのだが、県外からのボランティアや支援は、まだ受け入れ準備が整ってないようである。

 

今回、初動で出遅れた報道はやや信用に欠けるし、Twitterなどのソーシャル情報も、通信が復旧していない以上、断片的で不明瞭だったり、2次情報で正確性に欠けていたり、いまいちよくわからない。
ということで、宇宙から見たらどうだろうと、人工衛星から様子を見てみることに。

2019/9/7

f:id:tsubute:20190915154425p:plain

 

2019/9/9

f:id:tsubute:20190915154432p:plain

 

それぞれ画像は NASA Worldview からのものである。

詳しくは把握できてないが、地上の明かりを撮影したか、センサーで可視化した画像だと思う。明かりのある部分が白くなっている。
ただ、雲の影響で暗くなったり、雲の関係で見にくかったりするので、比較画像は9/7と9/9とで比較した。

これをみると、 9/7では明るかった部分のうち、9/9では暗くなっている部分があるのを、見てとれる。

おそらくこの辺りが、停電で多くの人が影響を受けたエリアなのかと思う。

 

衛星画像に限定せずとも、ドローン空撮による上空からの写真でも良いのだが、今後に期待するところは、災害発生後、迅速に状況が把握できるようになり、復旧に必要な物資や条件なども把握できるようになれば良いと思う。

 

台風15号 衛星画像で停電地域を見る

https://news.yahoo.co.jp/byline/akiyamaayano/20190911-00142246/

 
停電がもたらすもの

近代の社会は、電気により、大幅にエンパワーメントされて、高度化されてきた。
しかし、一度電源を喪失すると、その文明は脆(もろ)くも機能不全に陥る。

だからといって、私は、昔ながらの生活をしましょうねという気はさらさらない。

我々は競争原理の中で、テクノロジーによりエンパワーメントされたライバル・敵との戦いの最中(さなか)なのだから。


もし東京でブラックアウトが一ヶ月に渡っておきたらどうなるだろうか。
六本木ヒルズをはじめ、超高層ビルなら、自前の発電施設を備えていて、まあ良いとして、 短時間の予備電源しかもたない、ビルの場合は、企業はエレベーターが使えず、営業できなくなるだろう。


そもそもコンピューターが利用できない会社で、進められる業務が、どれほどのもんなのかは想像すらできない。

さらに、高層マンションで水道・エレベータが使えないとなると、住民は、生活が著しく不便になり、 避難を余儀なくされるだろう。物流がストップし、ペットの餌が十分に確保でき無い場合は、ペットが放たれ、街を徘徊することになるかもしれない。

ゴミは収集されず、異臭が漂い、周囲の環境も様変わりする。

さらに都内では、私も含めマイカーを持たない人も多いと思う。
バス電車が動けば良いが、それが使えないとなると、まさに難民と化すだろう。

現状で思うのは、ある一定以上の階を有する建物には、発電機、蓄電器、貯水設備を設けることと、 住民には、ガスコンロ、蓄電、小型発電機、蓄電器、などを含め、備蓄を促す事が重要だと思う。
電柱の地中化は、反対もあり、なかなか進んで無いと思うが、これもやはりすすめて欲しい防災対策のひとつである。

あとは、これだけ住居が密集しているのに、停電になると、通信も寸断されるのは馬鹿げている。 独立した最低限の電力が確保できれば、インターネットに接続できるような、アドホックな通信インフラを解放して欲しい。

なにはともあれ、防災で大事なのは、事前の準備と、危険が差し迫った時の適切な避難。
被害にあった場合は、助け合いと、自治による初動により、防災は大きく変わってくると思う。

Runway MLを使ってみる

Runway ML

https://runwayml.com/

Runway MLは、インストールしてアカウント登録するだけで、色々な機械学習系の画像変換が試せる、アプリケーション。


現在機械学習の世界は、多数の無料プログラムが公開されている。しかし、環境構築して、インストールして使うとなると、なかなか厄介な作業である。
そんな中、こんな風に手軽に試せるのは非常にありがたい。

 

ということで、実際にためしてみたので、いくつかを紹介。

YOLACT

セグメント、タグ付けをやってくれるプログラムのようだ。

ペンギンがちゃんと鳥として検出されている。ただし、右側はヒトと検出されている。

AttnGAN

テキストから画像を生成する。

上記は"Three Sleep Sheep"の結果。

なんだかわからないが、なんとなく雰囲気はある。いずれは文章だけで、リアルな絵がかけるようになるかもしれない。

Cycle GAN : Horse2Zebra

馬をシマウマに変換する、cycleGAN。
人間も一緒にシマシマしている。比較的なんでもシマシマにしてくれるので、先ほどのペンギンも試してみると、シマシマになった。

 

DenseDepth

これは、遠近をグレースケールで表現するプログラムのようだ。

物体検出において、遠近情報を条件で使用したり、背景画像を消すとか、そいう点で深度の検出というのは意味があったりする。

 

他にも色々なモデルを試せるので、プログラミング経験や、機械学習系の環境構築の知識がない人でも、Runway MLを使って、様々な画像変換や、生成を試し、活用してみてはどうだろうか。

 

 

今回使用した画像について

acworksさんによる写真ACからの写真 : 室内 / 乗馬

久遠さんによる写真ACからの写真: ペンギン

 

GauGAN(2回目)

前回と同じGauGANを改めて使ってみる。

http://nvidia-research-mingyuliu.com/gaugan

f:id:tsubute:20190815170301p:plain

Upload Landscpeで、鉄塔のような写真を入れてみた。

建物っぽい画像が出現したが、これは学習しているデーターから出現したものなのかもしれない。どことなく右の建物は燃えている感じもする。

タイトルとか入れれば、なにかのジャケット写真に使えそうなもんである。

 

次は、単に生成するだけなのもなんなので、出現した画像をベースにフォトショップでやや加工してみる。

f:id:tsubute:20190815170140p:plain

連想される部分を強調したり、少しエフェクトを使ったり、文字を入れてみるなどで、よりそれっぽくなったと個人的には思う。

 

ちなみにこれは、前回使ったSegmentation Mapを利用しているので、

前回の構図に似たものになっている。

 

とくに何かしたわけではないが、なかなかの力作だと思う。

GauGAN を使ってみる

Nvidea のGauGAN(Beta)が面白そうだったので使ってみる。

ラベリング付きのpix2pixのようだ。


以前から、輪郭や、周りの要素から類推して画像の損失部分を埋めるというというものがあるが、 その場合は、たまたま輪郭にひきずられて、とんでもないものが出現したりしてしまう場合がそれなりにあった。

 

それを、ラベリングすることで、指定の位置に、意味が同じようなテクスチャを出現させることができる。

 

これで絵を書くとしたら、ラベリングされた要素の配置を行えば、なんとなくリアルな絵が作れてしまう。

 

そういう意味でいうと、アイデアがあれば、だれでも手軽に創作に参加できるようになりつつあるんだと思う。


参考:
[最新論文]NVIDIAさんがまた本気を出してしまった。 - Qiita

ビルから廃墟を生成したい

CycleGAN and pix2pix in PyTorch

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

 

プログラムは前回と同じ。今回は、ビルを廃墟化できるか試してみた。

 

廃墟画像は、軍艦島や、アンコールワットの遺跡など、20枚弱。

建物の画像はimagenetから取得。

 

結論からすると今回はあまりうまくいかなかった。

そこそこうまくいった感じの画像はこちら。左が元画像、右が生成画像。

 f:id:tsubute:20190502102023p:plainf:id:tsubute:20190502102020p:plain

元画像が、やや古そうな様式の建物、そして建物にある程度接近している写真だと少し馴染むようだ。

 

f:id:tsubute:20190502102017p:plainf:id:tsubute:20190502102015p:plain

失敗例。遠景は無理があった。

加えて、空との違いが不明瞭な画像という事もあり、とりあえず全体が緑っぽくなっただけでした。

 

逆に廃墟を入れたらどうか試してみた。

f:id:tsubute:20190502111317p:plain

左が元画像、右は生成画像。緑が増えている。

廃墟にみどりが増えたよ!やったー。

 

f:id:tsubute:20190502102645p:plain

今回廃墟データとして使用した画像の一つ。

学習データと、元画像。構成や構図はある程度近い方がうまくいきそうだ。

 

ということで、廃墟を生成したい場合は、廃墟画像と同じぐらいのスケールの画像を用意する事。

生成元となる画像は、同じぐらいのスケール感で、古そうな建物が良い。

さらに、廃墟画像にある程度似た構造の建物を使うと、古い建物の緑化事業が捗りそうという話でした。

 

東京タワー to エッフェル塔


CycleGAN and pix2pix in PyTorch

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

 

GWで時間ができたので、東京タワーからエッフェル塔を生成してみる。

普段使いのMacでもなんとか動いたが、自前で用意したデータセットの学習には結構な時間を要する。 その間、メインのPCが使えないとなると、不便この上ない。

 

そんなわけで、少々お金はかかるが、AmazonのEC2環境(Ubuntu)を使用して生成。

使用したインスタンスは t2.xlarge。本当はGPUモードで動かしたいが、うまくいかなかったので、CPUモードで実行した。CROP_SIZE は 128 として 2日ぐらいでなんとかここまでたどり着いた。



どことなく東京タワーなエッフェル塔

f:id:tsubute:20190430191139p:plainf:id:tsubute:20190430191135p:plain

 

どことなくエッフェル塔な東京タワー

f:id:tsubute:20190430191132p:plainf:id:tsubute:20190430191142p:plainf:id:tsubute:20190502101159p:plain

2枚目は結構うまくできている感じがする。

 

エッフェル塔と、東京タワーの写真はそれぞれグーグルの画像検索から拾ったものを拝借しているので、元画像は割愛させていただく。

もしかすると、画像はそれぞれ1毎づつでも良いのかもしれないが、仕組みを十分に理解していないので、それぞれ10〜20毎程度を入れて実行。

やってみた感想としては、エッジを使って反対側の色つけを持ってきてくれる感じ。

実際の原理などは、よく調べてないので、興味のある方はご自身で調べてみてください。

形状が似たものを、別の着色をする事で、別物に変わる。

小学生の夏の自由研究に、なかなか良さそうな題材だと思う。

 

EC2を使う時の注意点としては、立ち上げっぱなしだと、どんどん課金されるので、自動停止の設定することと、ちゃんと手動で停止を実行、さらに課金状況やアラート設定もしっかり確認しましょう。

 

宇宙(そら)から桜を見てみよう

人工衛星画像が一般人でも手に入るようになった現在、せっかくだからなにか活用してみようと思い、さくら(さくらの開花)を衛星画像で見てみることに。
できれば今年の画像でいきたかったが、衛星写真は1、2週間おきぐらいで撮影されており、更にに雲が邪魔していたりして、昨年の画像のほうが、雰囲気をつかめたので、そっちからの参照です。

https://www.sentinel-hub.com/
今回見た、衛星画像は sentinel-hub から、2018/03/14と2018/03/29の上野公園の大噴水よりちょっと南の画です。

 

f:id:tsubute:20190419083926p:plain

上記、3/14 の画像だと大噴水から続く、その先に、下の向かった細い線があります。

 

f:id:tsubute:20190419084020p:plain

上の、3/29 の画像ではその部分がやや薄く広がって白っぽくなってます。たぶんこの辺に桜が開花していた感じです。

 

f:id:tsubute:20190419084121p:plain
開花前と、開花中と照らし合わせるのに、この2枚の画像の差分をとってみるとこんな感じ。悪夢っぽい感じになっちゃいましたが、ピンクっぽいところが桜のような気がします。

 

上野公園の桜マップ
http://www.guidenet.jp/tk/hanami/pdf/2013sakuramap.pdf
大噴水から左側の部分がその道なので、やはりなんとなくそれっぽい感じはあります。

さくらインターネットの宙畑のブログに同様のネタで、もう少し専門的な解説があるので、
興味のある方はそちらもどうぞ。

 

衛星から桜は見える! 衛星画像を使った桜の探し方
https://sorabatake.jp/1108/

 

宇宙衛星の画像は、普通の航空写真ではないので、花の部分がそのままピンクに見えるというものではありません。
電波を利用した画像なので、波長により特性があって、ターゲットとする対象物により見つけやすかったり、見つけにくかったりします。

 

もう少し大きなものであれば、ブロック状に区切ってAIで判定もできそうですが。今回の桜はちょっと難しそうな感じでした。

ということで、宇宙からのさくらの検出が今ひとつだったので、何か別の方法も考えてみる。


例えば、グーグルストリートビューから画像を拾って、さくらの木(咲いてない状態)を人工知能で検出させるというのはどうだろう。

 

同様に、ストリートビューで街路樹を検出していくと、街路樹マップなんかが作れそうですがこれも規約的な部分で、
どうなってるか未確認ですので、あしからず。