AI(人工知能)の手法として機械学習というものがありますが、その機械学習で実現できることはさまざまあります。中でも画像認識はAI(人工知能)や機械学習の得意とする分野のひとつですよね。
そんなAI(人工知能)による画像認識ですが「Tensorflow」というライブラリを使えば画像認識が実現できます。
しかも、このTensorflowはAI(人工知能)開発初心者でも簡単に画像認識させることができます。
そこで今回は、AI(人工知能)機械学習ライブラリ「Tensorflow」を使って画像認識をおこなうための方法を、AI(人工知能)初心者の方でもわかるようにお話ししましょう。
まずはTensorflowについて解説
![AIのイメージ]()
Tensorflowを使って画像認識を行う前に、まずはTensorflowについて解説します。
Tensorflowは、Googleが2015年に開発した機械学習のオープンソフトウェアライブラリ。オープンソースということもあり、公開後数か月でユーザー数が爆発的に増えました。ちなみにライブラリとは、プログラミングの際によく利用するコードなどの必要な部品をまとめたもののことです。
「Tensor(テンソル)」とは、線形的な量を表す概念を一般化したもの。これは多次元の配列として表現できるもので、「テンソル=多次元配列」といえます。Tensorflowは「テンソル=多次元配列」による計算を行うライブラリです。
簡潔に言うとTensorflowは、ニューラルネットワークという人間の脳を模した機能の特徴を演算によってシミュレーションすることのできるライブラリ。ですからTensorflowに人間のように画像を学習させることで画像を認識するこができます。
Tensorflowをインストールしよう
![Tensorflowをインストールしよう]()
Tensorflowについて、少し理解が深まったところで、画像認識までの第一歩として、Tensorflowをインストールしていきましょう。大まかな流れとしては次のとおりです。
- Pythonのインストール
- Python標準のライブラリ管理ソフトpipを使ってvirtualenvをインストール
- virtualenvを使ってPythonの仮想環境を構築
- 作成した仮想環境にTensorflowをインストール
なお、Pythonのインストーラーは3.5から3.7までの間で選んでください。それ以外のバージョンではTensorflowを使用することができません。
まずはPythonの公式サイトからPythonのインストーラをダウンロードして、Pythonをインストールしましょう。
インストールができたら、次にpipというPythonのライブラリ管理ソフトを利用して、Pythonの仮想環境を作成するライブラリであるvirtualenvをインストールします。
インストールは、コマンドプロンプトで、
pip install virtualenv
と入力するだけ。
こうしてvirtualenvがインストールできたら、今度はPythonの仮想環境を構築していきましょう。ここではtest_envという仮想環境を作成します。
コマンドプロンプトで、
virtualenv test_env
と入力してください。これで仮想環境の構築は完了です。
それでは念のため動作確認をします。
同じくコマンドプロンプトで
test_env\Scripts\activate
と入力。
(test_env) C:\Users\ユーザ名
と表示されていれば問題はありません。
次に、仮想環境が構築できたら今度はTensorflowをインストールしましょう。
仮想環境test_envを実行した状態で
pip install Tensorflow
と入力してください。これでPCにTensorflowがインストールされます。
Tensorflowで画像認識機能を使うためのステップ
![Tensorflowで画像認識機能を使うためのステップ]()
ここまで、Tensorflowのインストールから環境構築についてご説明してきました。では、実際にTensorflowを使って画像認識を行うためにはどのようなステップを踏めばいいのでしょうか。
スクレイピング
まずはスクレイピング。
スクレイピングとはウェブサイトから自動的にデータを抽出・収集することです。
Tensorflowによる画像認識のための学習に必要なデータをひとつひとつ収集していたのではとても大変ですから、このスクレイピングという技術を使ってデータの収集を行います。
今回はGoogleから画像を一括でダウンロードできるツール「google_images_download」を使用しましょう。
コマンドプロンプトで
pip install google_images_download
と入力するとインストールできます。そしてインストールが完了したら
googleimagesdownload --k "(キーワード)"
とすれば、キーワードに合致した画像を一括でダウンロードすることが可能です。
Tensorflowを使って学習させる
次に、集まった画像をTensorflowの公式チュートリアル「TensorFlow Image Recoganization」で用意されている再学習用の「Image Retraining」を使って学習させます。
Transfer learning with TensorFlow Hub
Retraining an Image Classifier
また、下記のGithubで公開されている「retrain.py」のソースコードをダウンロードします。
学習を始めるには、下記のように「?image_dir」で学習用のデータが保存されているファイルを指定して「retrain.py」を実行してください。
tensorflow/hub
python retrain.py --image_dir (画像フォルダ)
これで学習が行われます。
検証する
学習を行ったら、実際に画像を認識させて、正確に分類できるか検証してみましょう。
Tensorboardは学習を行った後に、下記のコマンドで起動することができます。
tensorboard --logdir C:/tmp/retains_logs
コマンド実行後にURLが表示されますので、このURLにブラウザからアクセスしてみてください。すると結果がグラフ等で表示されます。
以上が、Tensorflowを用いた、画像認識のステップです。
Tensorflowの画像認識を作る時に、よくある失敗例とその対策
![Tensorflowの画像認識を作る時に、よくある失敗例とその対策]()
ここまではTensorflowのインストールや使い方の話をしてきました。しかし画像認識での不安はありますよね。そこでTensorflowで画像認識を作る時によくある失敗例やその対策についてお話しましょう。
Tensorflowを使って画像認識を行うときに失敗しがちなのが、スクレイピングの段階で、適切なデータを収集できないというところです。
例えば、Minuetというネコの画像を収集したくて、キーワードに”Minuet”と指定したところ、Minuetという曲の楽譜のデータを収集してしまったり、ネコ以外のものが一緒に写っているデータを収集してしまったりということがあります。
ですからスクレイピングでデータを収集する際は、キーワードを工夫するなどして適切なデータのみを収集するようにしてください。スクレイピングに気をつけることで画像認識で失敗を減らすことができます。そのことを気をつけて取り組んでください。
Tensorflowの画像認識を応用した活用事例
![Tensorflowの画像認識を応用した活用事例]()
最後に、Tensorflowの画像認識を活用することで、作業を効率化した事例についてご紹介しましょう。
野菜や果物は出荷の際に規格に合っているかどうか選別する作業が行われますよね。しかし野菜や果物は工業製品のように画一的に製造された製品とは異なり、農作物は形が様々ですので精度の高い選別を行うまでには、多くの経験が必要でしょう。
ですからこんな時はTensorflowによる画像認識の出番です。
例えば、トマトの選別であれば、トマトの画像を大量に学習させ、規格に合ったトマトだけを識別する仕組みを構築することが可能。このように、Tensorflowなら野菜や果物といった形が様々なものの選別もお手のものなのです。
![Tensorflowのイメージ]()
今回は、Googleが提供する機械学習のオープンソフトウェアライブラリであるTensorflowを使って、画像認識のシステムを構築する方法についてご説明してきました。
初心者の方にとっては、AI(人工知能)を用いた画像認識なんて、途方もなくハイレベルな技術のように考える方も多いかもしれません。しかしTensorflowを使えば意外にもお手軽に画像認識のシステムが構築できてしまうということがわかりました。
AI(人工知能)を用いた画像認識はいま、活躍の場が爆発的に広まろうとしています。ですから今後AI(人工知能)による画像認識はより身近なものになっていくことでしょう。
今回Tensorflowを使った画像認識についてお話しましたが、このような技術を使いこなして、仕事や日常を充実させていけると良いですよね。
【お知らせ】
当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。
御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。