#はじめに
GANを学習させていると生成結果が歪むことがありますよね。原因の1つとして背景も含めて学習してしまうということがあると思います。アニメイラストでGANを実装している方できれいな画像が生成されているものを見ると、背景が白1色のデータセットを使ったりしていることが多い印象です。また高解像度の生成に成功したProgressive Growing of GANsを見るとデータの前処理として、背景にガウスフィルタをかけてぼやかしたものを使っています。つまり、学習対象とそれ以外を分けて扱えるようにすることが効果的だと考えられます。
ということでSemantic Segmentationをやろうとしたんですが、いい感じのデータセットがなかったんですよね。なら自分で作るしかないな!と思ったわけですが、手作業でアノテーションするのってかなりしんどいですね。OpencvのGrabcutを使って作成しました。それで100枚終わったところで取りあえず公開しようと。(あわよくば誰か手伝ってくれないかなーなんて)
GoogleDriveに置いてあります。
##少し解説
zipを解凍すると、*.npzファイルがあります。numpy.loadで読み込めます。あとは辞書型と同様にkeyを指定して下さい。以下で各keyについて説明します。
####URL, sec_URL
元画像はhttp://danbooru.donmai.us にあるものを使っています。URLにはその画像のページのURL, src_URLには画像への直リンクURLの文字列が保存されています。
####fg, bg
fgは前景, bgは背景です。データはすべて画像のwidth, heightと同じshapeの配列で、該当ピクセルが1それ以外は0のデータになります。
以下サンプル画像です。赤い部分が該当部になります。
元画像 | fg | bg |
---|---|---|
####hair, skin, face
これは単語のままですね。
hair | face | skin |
---|---|---|
以上の5つにアノテーションしていました。
###おわりに
データ数100程度ではいいモデルを作るのは難しいですよね。Unsupervised SegmentationやSemi-supervised Segmentationの研究もあるみたいなのでそちらの勉強もしていきたいとおもいます。