Giter VIP home page Giter VIP logo

management-charactors-domain's Introduction

Arangement-Girls-Domain

女の子の画像のドメインを整理するためのプロジェクトです.

プロジェクトの流れ

  • 画像の収集
  • 顔画像の抽出
  • 顔パーツのパラメータ設定

画像の収集

wikipediaのアニメ一覧を調べて, yahoo検索から1アニメについて約20の画像をクローリングしておく. 以前に作ったスクリプトで試してみてね.

顔画像の抽出

画像から顔領域のみを抽出します. アニメ画像のカスケード分類器はココからダウンロードしてください. 最近はCNNで自分で学習させたほうが良い精度の矩形回帰ができるかもしれません.

$ git clone [email protected]:elasticnet12345/Arangement-Girls-Domain.git
$ cd Arangement-Girls-Domain/src
$ wget https://raw.githubusercontent.com/nagadomi/lbpcascade_animeface/master/lbpcascade_animeface.xml
$ python face_crop.py 

画像hoge.pngに対しての操作を説明します. 元画像
この画像に顔抽出器をかけると以下の画像郡のように画像中の顔領域の画像郡が出力されます. 5人いるけど4人しか抽出されていないのは一定の大きさ以下は画質が悪いデータを学習データになるべく入れたくないため, 一定のサイズ以下の画像は保存しないようにしているからです.
croped

顔パーツのパラメータ設定

本家で使われているパラメータのうち,

  • 髪の色(金, 茶, 黒, 青, 桃, 紫, 緑, 赤, 銀, 白, 橙)
  • 髪型(ロング, ショート, ツインテ, ドリルヘア, ポニテ)
  • 目の色(青, 赤, 茶, 緑, 紫, 黄, 桃, 黒, 橙)
  • 開口(ON, OFF)
  • 帽子(ON, OFF)
  • メガネ(ON, OFF)

顔パーツを登録する操作を単純化するために下のようなGUIを作りました. 各画像に対して引数--dst_dirで指定したディレクトリにJSONファイルを吐きます. ある程度JSONファイルが溜まったら, CSVに統合しデータベースをつくります.

$ python set_label_GUI.py --src_dir=data --dst_dir=json_output

set_label_GUI
operation GUI
一通り終わったら, 顔画像が入っているディレクトリと, GUIで顔パーツの情報を入力してJSONを作った出力先のディレクトリの2つを以下のようなディレクトリ構成でdata直下に入れます. GUIの操作が時間がかかるため途中でGUIを終了しても起動ごとにデータを読み込むので, 作業中断してもOKです.

make_girl_kit
└ data
  └ parts_directory
     ├ face_images 
     |    | hoge.png
     |    | fuga.png
     └ face_images_output
          | hoge.json
          └ fuga.json

このJSONをCSVファイルに統合します.

$ python union.py

次に, 学習データセットの作成を行います. 例えば金髪のロングヘアー, 緑目の女の子を生成したいと思ったら, 以下のように実行します. 引数--dataset_directoryは, data直下に今まで追加してきた画像について引数で指定した条件の女の子のみがコピーされます.

$ python crate_dataset.py --height_size=256 --width_size=256 --hair_color="gold" --hair_type="long" --eye_color="green" --dataset_directory dataset1

これを実行すると"data/dataset1"に以下のようなファイルが出力されます. gold_green

参考

最後は, 適当なGANで自動生成してみてね. CycleGANやStarGANなどを試すと面白い結果になると思うよ! DCGANでやる場合は例えばこんな感じに動かしてね!

$ git clone https://github.com/carpedm20/DCGAN-tensorflow.git
$ cd DCGAN-tensorflow
$ mkdir data
$ mv ../make_girl_kit/data/dataset1 ./data/
$ python main.py --input_height 128 --input_width 128 --output_height 48 --output_width 48 --dataset dataset1 --crop --train --epoch 300 --input_fname_pattern "*.png"

management-charactors-domain's People

Contributors

gesoges0 avatar

Stargazers

uco_physics avatar Snowhite avatar

Forkers

cirq susake

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.