Published Date : 2019年11月4日14:32

Pexels APIを使用した画像の収集
Using the Pexels API to collect images


This blog has an English translation



最初に何をするか説明すると、まず人とは関係のない生き物の画像をPexels APIを使って集めていきます。 次に、Tensorflowを使って画像の特徴を学習し、分類モデルを作成する。 最後に、人の顔の画像を分類器に入れたとき、どのよう結果になるかを実験する。 以上です。

I'll explain what I'm going to do. First, I'll use Pexels API to collect images of creatures that have nothing to do with people. Next, I use Tensorflow to learn image features and create a classification model. Finally, I do an experiment what will happen when I put an image of a person's fase into the classifier.


この手のものはやり尽くされていますが、ただ一から全部やってみたかった。それだけです。 つーことでまず最初にPexels APIを利用して画像を集めていきます。

This kind of thing is done by many people, but I just wanted to do it all from scratch. That's all. So first, I'm going to use the Pexels API to collect images.



目次

Table of Contents



概要
Overview


取り敢えず人と関係の無い画像を集める。 具体的には犬、猫、猿、鳥、魚、トカゲ。 一つの種類に付き大体200枚。

First of all, I collect images that are not related to people. Dogs, Cats, Monkeys, birds, Fish, and Lizards. About 200 sheets per kind.



集めるのに使うサイトはフリー素材が揃う「Pexels」。 そのAPIを使用する。

The site I'm using to collect the images is [Pexels], a free image material site. The image acquisition method uses the API provided by the [Pexels].



APIの制限として、1時間ごとに200リクエストまで。 一ヶ月で20000リクエストまでです。

The API has a limit of 200 requests per 1 hour. Another API limitation is 20,000 requests per month.




Pexels APIの準備
Preparing the Pexels API



PexelsのAPIを利用できるようにします。

Enables access to Pexels APIs.



https://www.pexels.com/api/へアクセスする。

Access the https://www.pexels.com/api/.



[Request access]をクリック。

Click [Request access].



Responsive image


アカウントを持っている人はログインする。

Log in. If you have an account.



Responsive image


アカウントを持っていないなら新規で作る。

If you don't have an account, create a new one. click [join] in the upper right.



Responsive image




Responsive image


使用目的と使用サイトを入力する。 試してないから分からんけど、適当でもいいんじゃね?

Enter your brief intended use and the site you want to use in the text box.



Responsive image


「Pexels」からメールが来たら、開いて、「Confirm Email」をクリックする。

When you receive an email from [Pexels], open it and click [Confirm Email].



Responsive image


表示されたAPIキーをメモしておく。

Make note of the displayed API key.



Responsive image





Pexels APIモジュールのインストール
Installing the Pexels API Module



PexelのAPIを扱えるモジュールをインストールする。

Install a module that can handle Pexel APIs.

しかし、Pythonってほんとライブラリが充実している。 偉大なる先人達が便利なモジュールを配布してくれている。 最高級の感謝です。

I think Python has a lot of libraries. Greate predecessors have distributed useful modules. I'm really thankful.



取り敢えず、適当な作業用フォルダを作成してから、PIPを使ってモジュールをインストールします。

First, create a suitable working folder and install the module using the pip.


working folder
working folder
      collector.py

pip install pexels-api

PyPIに書いてあるエグザンプルコードを試してみる。

Let's try the examples code from PyPI.


collector.py
# Import API class from pexels_api package
from pexels_api import API
# Type your Pexels API
PEXELS_API_KEY = 'YOUR-PEXELS-API-KEY'
# Create API object
api = API(PEXELS_API_KEY)
# Search one 'kitten' photos
api.search('kitten', page=1, results_per_page=1)

とりあえず一枚だけリクエストする。 結果は以下のJSON形式で返される。

I'll just request one for now. The result is returned in JSON format.

{'total_results': 1844,
  'page': 1,
  'per_page': 1,
  'photos': [{'id': 416160,
    'width': 3888,
    'height': 2592,
    'url': 'https://www.pexels.com/photo/animal-cat-face-close-up-feline-416160/',
    'photographer': 'Pixabay',
    'photographer_url': 'https://www.pexels.com/@pixabay',
    'photographer_id': 2659,
    'src': {'original': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg',
      'large2x': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940',
      'large': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg?auto=compress&cs=tinysrgb&h=650&w=940',
      'medium': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg?auto=compress&cs=tinysrgb&h=350',
      'small': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg?auto=compress&cs=tinysrgb&h=130',
      'portrait': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg?auto=compress&cs=tinysrgb&fit=crop&h=1200&w=800',
      'landscape': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg?auto=compress&cs=tinysrgb&fit=crop&h=627&w=1200',
      'tiny': 'https://images.pexels.com/photos/416160/pexels-photo-416160.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280'},
    'liked': False}],
  'next_page': 'https://api.pexels.com/v1/search/?page=2&per_page=1&query=kitten'}


細かい説明と実際の取得コードは次回へ。

For a detailed explanation and actual images acquidition python script, see next time.





See You Next Page!