Computer Vision

Python, Computer Vision, AI, Transhumanism 関連

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で判定もできそうですが。今回の桜はちょっと難しそうな感じでした。

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


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

 

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