Giter Club home page Giter Club logo

face_dataset_scraping's Introduction

FACE DATASET SCRAPING

概要

どこかのサイトから画像を集めてきて、その顔画像をデータセットとして収集するスクリプト群。おまけとして、それらを利用した超解像度CNNの学習も添えている。

超解像度部分は、自分のPytorch templeteプロジェクトにのっとっているため参考に。

1.スクレイピング

構成ファイル:scraping.py

PythonライブラリBeautifulSoup4を利用し画像ファイルを収集する。

とあるwebページのように、メインとなるurlから各archiveページにリンクが貼ってあり、その中に各画像へのリンクが存在している事を想定しているため、このスクリプトで対応できない場合はBeautifulSoupについて調べ拡張を施してほしい。

$ pip install beautifulsoup4

ほか、実行して無いと言われたPythonライブラリは適時pipインストールのこと。

$ python scraping.py url

として実行すると、scrapedディレクトリが生成され中に画像ファイルが収集される。

2.酷似画像の選別

構成ファイル:separate.py

opencvの特徴点マッチングを用いて、同一の画像をサブディレクトリ内に生成したseparateディレクトリに隔離する。

scraping.pyによって集めた画像にはスクレイピング対象のサイトによっては同じような画像を含む場合がある。データセットとしてそのような画像は不適切であるため、選別を行う。

$ python separate.py threshold

とすると、thresholdが小さいほど「本当に似ている」画像だけをseparateする。80~100程度が実用的と思われる。

3.顔部分の取り出し

構成ファイル:face.py

opencvのアニメ顔の検出器を用いて、厳選されたファイルについて顔検出を行う。

それと同時にリサイズを行い128*128のサイズとする。

$python face.py

とすると、scrapedディレクトリ内の各サブディレクトリ直下の画像ファイルから検出した結果をfaceディレクトリを作成した上でそこに出力する。

4.super_resolution

校正ディレクトリ:super_resolution

おまけ。pytorchで6464の画像を128128に超解像度するシンプルなCNNを組んで学習したのでそのコードと学習パラメータをおいておく。

dataset.py:学習に必要なファイル。

generate.py:modelとparameterを参照してinputからoutputを生成する。

learn.py:学習プログラム。

model.py:モデルの定義ファイル。

shrink.py:学習データ生成のため128128画像を6464相当の解像度に落とすプログラム。

なおexampleの2画像はGANで生成した64*64画像に適用した結果である。

face_dataset_scraping's People

Contributors

reito48916 avatar

Watchers

James Cloos avatar  avatar

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.