PythonでCrawler(クローラー)作成!Bing Image Search APIで人工知能用の画像を集めたよ!
人工知能の顔認識システムを作ってみたい!
人工知能のプログラムを作ってみようという事で、簡単な顔認識のシステムを開発しようと思います!!
どんな顔認識システムかと言うと、顔画像を渡した際に、特定の人であるかを見分けるシステムです。
その特定の人に今回選んだのは世界の大スター、クリスティアーノ・ロナウドです。
顔画像を渡すとそれがクリロナなのか人工知能が判断するようなシステムを作りたいと思います。
完成が楽しみ♪
人工知能の開発には教材が必要
人工知能を作るには、教材が必要となります。
今回の顔認識システムの場合、クリロナの特徴を覚えさせるために、クリロナの画像を大量に集めないといけません。
検索して、保存してっていうのを繰り返しても可能ですが、そんなのやっていたら時間がバカみたいにかかるので、PythonでCrawler(クローラー)を作成したいと思います。
PythonにてCrawlerを作成!!(Bing Image Search API使用)
ちなみにCrawler(クローラー)とはWEB上の情報を収集するプログラムのことを言います。
完成したプログラムはこちら↓
import requests
import shutil
subscription_key = "****************************"
assert subscription_key
#URL for Bing Image Search Api
search_url = "https://api.cognitive.microsoft.com/bing/v7.0/images/search"
#Search Query
search_term = "Cristiano Ronaldo Face"
#Method for dawnloading image
def download_img(url, file_name):
r = requests.get(url, stream=True)
if r.status_code == 200:
with open(file_name, 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
#Setting of this Api
for offset in range(3):
headers = {"Ocp-Apim-Subscription-Key" : subscription_key}
params = {"q": search_term, "count": 150}
response = requests.get(search_url, headers=headers, params=params)
response.raise_for_status()
search_results = response.json()
#URLs in this variable
thumbnail_urls = [img["thumbnailUrl"] for img in search_results["value"][:150]]
#Downloading images
imageNum = 1
for w in thumbnail_urls:
download_img(thumbnail_urls[imageNum],r"C:\Users\Face_Judge_001\Images\Image" + str(imageNum)+".png")
imageNum += 1
if imageNum > 100:
break
Bing Image Search APIの登録方法や使い方はQiitaを参考にしました!
subscription_key = “****************************“に自身のAPIキーを入れる感じです♪
こんな感じで集まりました・・・
とりあえず、学習用教材として100枚集めて、どれくらいの精度なのか見てみたいと思います!
次に作成しないといけないプログラム
次はCrawler(クローラー)を使って集めたクリロナ画像から顔だけを抽出するプログラムです。
いろいろ調べましたが、顔が入っている画像を集めるだけでは上手く機能しないようです。。。
頑張ってコーディングしていきます( `ー´)ノ
最後までお読みいただきありがとうございました!