[秒でPython]たった3行で画像を自動収集するツールを作ってみた

Pythonで画像認識の人工知能を作ってみたいと思う時、始めに必要なことはデータ(学習テスト用の画像)集めです。
画像は多くの情報を持つデータなので、数万単位でたくさん集める必要があります。
(あらかじめデータセットが用意されている場合もあるので、まずは欲しいデータセットが存在するか探してみましょう)

これをPythonを使ってネットから画像を自動収集できるようになれば、余った時間で人工知能のチューニングを行ったり、好きなことに時間を使うことができるようになります。
今回、Pythonで指定したキーワードについて、適当な画像を指定した数だけ集めてくれるプログラムを紹介します。
Pythonモジュールを使えば初心者でも簡単にできますので、ぜひ参考にしてみてください。

Pythonで特定のキーワードから画像を自動収集するツールを3行で作る

ネットに溢れる画像をPythonに収集させるプログラムコードは3行だけです。
使用するモジュールは”icrawler"というネット探索に特化したものになります。
3行だけなら初心者でもプログラム知識がなくても頑張れば覚えられるレベルですね。
とても簡単で実用性が高いため、プログラミングの楽しさを感じやすいはずです。

今回動作確認した環境

画像収集のPythonプログラムを作成した環境は下記の通りになります。

  • PC:Macbook Air 2019
  • Python:3.8.5
    (Homebrewにインストール)
  • 開発エディタ:jupyter
    (pipにjupyterをインストール)
  • モジュール:icrawler
    (ネットをクロール[探索]する機能を持っています)

Pythonで画像を収集する処理手順

ここでは実際に画像を自動で集めるプログラムの手順を紹介します。
集める画像は”阿部寛”を15枚でいきたいと思います

1:jupyterを起動する

2:icrawlerモジュールからBingImageCrawlerをインポートします

BingImageCrawlerだけあればいいので、それだけimportして使います

3:Bing検索エンジンから画像収集するためのインスタンス(オブジェクト)作成

他の検索エンジン(Chrome)などで収集することも可能

4:取得したい画像キーワードと枚数を指定

5:画像が指定したフォルダ”output_image”に出力されていることを確認

"output_image"フォルダは自動作成されます

6:集めた”阿部寛”を確認する

Pythonの処理時間と自力で画像を集めた時間

処理時間は体感にして数秒程度になります。
PCのスペックやインターネット環境によって時間の長さは変化しますが、今回負荷が少ないのでだいたい同じになるかと思います。
これを自力で集めた場合は下記の工数を15回繰り返すため、数分から10分ほどの時間がかかるでしょう。
ブラウザ立ち上げ→”阿部寛”を検索→画像を選択→右クリックで画像を保存する
特に画像の種類はなんでも良くて、人工知能のデータセットを自作する場合はかなり有効な手段になります。
枚数が多ければ多いほどプログラムに任せた方がいいので、ぜひ覚えておきましょう。
忘れてしまっても検索して欲しい情報に辿り着ければ全然問題ないです。

たった2~3行で自動化ツールが開発できるのがPythonメリット

私がPythonの勉強をして一番感じるメリットは一見複雑に見えるプログラムが簡単に組めるところです。
他のC言語やJavaでも画像を収集するプログラムを書くことは可能ですが、”おまじない"と呼ばれる記述が必要だったり、外部ライブラリをリンクさせる作業があったりします。
Pythonは必要なモジュールをpipにインストールすれば、あとはimportで呼ぶだけで機能が使えるようになるので分かりやすいプログラミング言語だと言えます。
他のモジュールを使えば自動でメール配信する処理も5行程度で書けますし、人工知能を作るモジュールまで大抵のものは揃っている感じがします。

ただし、利用規約などには十分注意すること

Pythonにはネットを探索する機能が備わっており、特別なネットワーク知識がなくとも簡単に利用することができます。
Amazonページに自動ログインして情報を集めたりもできます。
そんな外部にアクセスする場合は利用規約に違反していないか注意して自動化ツールを作りましょう。
例えばあらかじめAmazonの利用規約を確認するなどになります。
プログラミングは人が行う何十倍の速さで繰り返し処理を行えるので、気づかぬうちにサイトへ思い負荷を与えてしまう場合があります。

本や動画、オンラインスクールでPythonを効率的に学習

今回、Pythonプログラミングで自動的に画像を収集するツールを3行で作成してみました。
この知識は本やネットで簡単に見つけることができます。
ただし、アップデートや仕様の変更でそのままでは使えなくなってしまう場合が多々あり、初心者には対処が難しいこともあります。
紹介した画像収集のプログラムについても、今回はBingの検索エンジンを利用して収集を行いましたが、始めはGoogleの検索エンジンを使う予定でした。
しかし、原因不明のエラーが発生してなぜか画像が取得できないことがわかったので、急遽Bingに変更したという背景があります。
こんな時はネットで調べるしかないですが、専門家に聞く方が無駄な時間を消費せずに済むので身近にPython知識を持った人がいて欲しいものです。
今はオンラインスクールがあって、現役エンジニアに教えてもらったり、相談を聞いてくれるサービスもあるので利用してみるといいと思います。

おすすめの記事