ArchiGAN実装②

こんにちは!Onplanetzです。

前回よりしばらく間が空いてしまいましたが、ArchiGAN実装① に続き、GANを用いた間取り図生成プロジェクト[1]のアップデートをしていきたいと思います!

tech-onplanetz.hatenablog.com

 

詳細についてはArchiGAN実装①を見ていただきたいと思いますが、

前回の記事ではベースラインとしてレイアウト生成を行ってみたものの、

アノテーション[2]が上手くいっていない/部屋の境界が上手くとれていないといった問題点がありました。

本記事ではその中でも、教師データの作成にあたる、アノテーションが上手くいっていなかった問題を解決していきたいと思います。

 

f:id:tech_onplanetz:20191230150641p:plain

事例:アノテーションが上手くいかなかった例(Onplaentz作成)

 

上記に示したのが前回アノテーションに失敗した画像ですが、これには以下のような問題点がありました。

・部屋と部屋の間隔が空いてしまい、GANのタスクが部屋を分割しレイアウトを生成することではなく、分割された部屋が何の部屋かを予想するだけのモデルになってしまった。

・図では納戸が黒く塗られていないなど、各部屋の機能に対してきちんとカテゴリが与えられていなかった。

・レイアウトを生成する際に、最初から決まっている部分(例えば、窓など)に何を指定すればよいか分からなかった。

 

そこで今回は、間取り図生成を行ったことのある方にまずニーズ調査や、実態調査を行い、以下のようにアノテーションを改善しました。


・部屋同士の間隔が空かないようにし、GANに部屋分割を学習させられるようにした。

・クローゼットと納戸を区別する、お風呂・お手洗い・洗面所を区別するなどし、部屋のカテゴリを増やしてより実用的な予測が行えるようにした。(詳細は図を参照)

・最初に与える情報として、玄関、窓、バルコニーの他に、パイプスペース(水回り)を加え、実際のマンションの施工時のレイアウト立案に近いタスクとした。

 

 

事例:アノテーション結果(Onplaentz作成)

f:id:tech_onplanetz:20200320171300p:plain

事例:アノテーション結果(Onplaentz作成)



結果として、以上のようなアノテーションを行うことができ、より実用に則したモデルに近づけられました!

 

今後は、もう一つの問題、精度が悪く画像がぐにゃぐにゃしてしまう問題を解決していきたいと思います。(ArchiGAN実装③へ続く)

 

tech-onplanetz.hatenablog.com



参考文献

[1]今回使用したGANのモデルは、pix2pixで、先行研究としてArchiGANを参考にしています。

pix2pix論文:Image-to-Image Translation with Conditional Adversarial Networks, Phillip Isola et.al., https://arxiv.org/abs/1611.07004

pix2pixコード:CycleGAN and pix2pix in Pytorch, junyanz github, https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

先行研究:ArchiGAN: a Generative Stack for Apartment Building Design, NVIDIA, https://devblogs.nvidia.com/archigan-generative-stack-apartment-building-design/

 

[2]アノテーションは、labelImgを使用しています。

GitHub:Tzutalin. LabelImg. Git code (2015), https://github.com/tzutalin/labelImg