画像認識に活用できる!機械学習ライブラリ「Caffe」の使い方を解説 | AIZINE(エーアイジン)
教育

画像認識に活用できる!機械学習ライブラリ「Caffe」の使い方を解説

画像認識に活用できる!機械学習ライブラリ「Caffe」の使い方を解説

AI(人工知能)が持つ能力の中でも「画像認識」は我々の社会の中で活用できる場面も多く、今もなお開発と研究がおこなわれている注目の分野です。昨今では画像認識のためのディープラーニングに使用する無償のデータセットや、画像認識用のライブラリといった便利なものも無償で手に入れることができます。

この「画像認識」に特化したライブラリのなかでも、非常に有名なのが「Caffe」と呼ばれるものです。高速な動作と豊富な機能により画像認識をより効率化してくれることから、現在、注目を集めています。

今回は、そんなディープラーニングにて、特に「画像認識」に特化して活用できる機械学習ライブラリ「Caffe」について解説しましょう。使い方や導入のメリット、環境構築の方法などについて詳しく見ていきます。

Caffeとは

Caffeとは

「Caffe(カフェ)」とは、ディープラーニングに活用するため公開されている、オープンソースライブラリ。特に「画像認識」に特化しており、高速処理が可能であるという特徴を持ちます。もっと簡単に言うならば、ディープラーニングを行うために活用できるツールの一種、と言い換えれるかもしれませんよね。

CaffeはYangqing Jia氏がカリフォルニア大学バークレー校に在籍中、開発がスタートしました。彼だけでなく、カリフォルニア大学バークレー校の「コンピュータビジョンおよび機械学習に関する研究センター」が中心となって、Caffeの開発に携わっています。

バークレー校と言えばアメリカでも有数の名門校ですが、その名門に在籍するスペシャリスト達によってCaffeは誕生したのです。

それだけにとどまらず、2014年6月からは日本でも非常になじみの深い大手企業Yahoo Japanが、同センターのスポンサーとなり支援を行っています。そのディープラーニングへの有用性に、多くの人が注目しているのです。

Caffe | Deep Learning Framework

Caffeを使うメリット

Caffeを使うメリット

Caffeの特徴と言えば、やはり何と言っても機械学習における「画像認識」に特化している、という点です。
データベース作成用の簡単なスクリプトも用意されていますので、自前の学習モデルを定義しやすく、画像認識の場面において使いやすい構造となっています。
また、Caffeが持つ高速な実行能力も、大きなメリットの一つでしょう。
これは、Caffeの内部がC++で実装されていることに加え、データ通信でGPUに対応している、という点から高速動作を実現できています。加えて、ドキュメントやサンプルコードも充実しており、初めて使う方にとっても導入しやすい点は非常に魅力的。

資料やサンプルが少ないとそれだけでも導入を躊躇してしまうものですが、ある程度の指針が用意されているという部分は、利用する側としてもハードルが低く、活用しやすいです。

Caffeを使うために必要なもの

Caffeを使うために必要なもの

Caffeは開発当初はLinuxというOSでのみ動作していたのですが、最近では開発も進んだ結果、Windows、MacそれぞれのOSに対応したものが配布されています。このためCaffeを導入するためのPCを用意するのが大前提です。

Caffeを利用するためにはソース共有サイトであるGitHubからCaffeをダウンロードする必要があります。
ダウンロードしたものの中に付属されているREADMEテキストファイル、もしくはCaffeの公式サイトにインストール手順が記載されているので、そちらに従ってPCにインストールしていきましょう。
また、Caffeで機械学習をするためには、学習で利用するためのデータセットも用意しておく必要があります。

現在、Web上には様々な機械学習用のデータセットが配布されていますので、Caffeと合わせて用意しておきましょう。

Caffeの環境構築方法

Caffeの環境構築方法

CaffeはWindows、Macのそれぞれで動作するため、環境構築方法についても詳細な部分では異なってきます。ですが、大まかな流れは以下のような手順となります。

今回はMacにCaffeをインストールするケースを例として見ていきます。Macの場合、主にターミナル上でコマンドを入力していきます。
Cafferが動作するためのPythonをインストールする
brew install python

Cafferで利用するライブラリ群をインストールする
brew install --fresh -vd snappy leveldb gflags glog szip lmdb
brew tap homebrew/science
brew install hdf5 opencv

 PythonでCaffeを活用するため「PyCaffe」もインストールしておく
brew install --build-from-source --with-python --fresh -vd protobuf
brew install --build-from-source --fresh -vd boost boost-python

 GitHubからCaffe本体をCloneし、用意された雛形からMakefile.configを作成する
git clone https://github.com/BVLC/caffe.git
cd caffe
cp Makefile.config.example Makefile.config

Macのバージョンに応じて、Makefile内の「BLAS_INCLUDE」を書き換える(二か所あるのでご注意を)
BLAS_INCLUDE ?= /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers/

Makefile.configについて、
CPU_ONLY
のコメントを解除

(これによりCPUモードとなる)

以下、2点のpathをPython用に設定
PYTHON_INCLUDE := /usr/include/python2.7/usr/local/lib/python2.7/site-packages/numpy/core/include/
PYTHON_LIB := /usr/local/Cellar/python/{python version}/Frameworks/Python.framework/Versions/2.7/lib/

ここまでで、CaffeをBuildする準備は完了です。

Caffeの設定ファイルの変更が少し難解で、CPU modeかどうかを制御する「CPU_ONLY」や、OSのバージョンによって「BLAS_INCLUDE」のpathを書き換えたりと、Caffeを使用する環境によって適した記述を行う必要があります。
最後に、以下の手順でBuildが成功すれば、環境構築は問題ないです。
make clean
make all -j4
make test -j4
make runtest

また、今回の例で導入している「PyCaffe」についても動作環境を設定しておきます。

Caffe内のpythonフォルダに移動し、以下のコマンドでライブラリを取得
for li in $(cat requirements.txt); do sudo pip install $li; done

PyCaffeをBuildする
cd ../
make pycaffe
make distribute

ここまでで、PyCaffeも含めたCaffeの実行環境が整いました。

Caffeで画像認識を行う方法

Caffeで画像認識を行う方法

環境構築まで完了したら、いよいよCaffeを用いた画像認識へと進んでいきましょう。ここではあらかじめ用意した学習用のデータセットを用い、以下の手順で機械学習を行っていきます。

画像認識のためのデータセットを用意する

データセットから訓練、テストを行うためのデータベース形式「LMDB」もしくは「LevelDB」に変換を行う

(Caffeに同梱されているconvert_mnist_data.exeなどを利用)

機械学習用の「lenet_train_test.prototxt」「lenet_solver.prototxt」の2ファイルを作成

(GitHubに雛形があるため、こちらを流用し作成)

「caffe.exe」を用い、機械学習を実行

学習モデルである「.caffemodel」が作成されるので、これを元に指定した画像を認識する
Caffeを利用する場合、必ずLMDB、もしくはLevelDBという形式に変換したファイルで機械学習を行う必要がある、という点がポイントです。こちらはCaffeに変換用のexeファイルが用意されているので、そちらを利用しましょう。

また、機械学習用の「.prototxt」ファイルについては、Caffeが動作する上でのpath情報などが記載されていますので、こちらも動作する環境に適した設定を記す必要があります。

Caffeを使う注意点

Caffeを使う注意点

画像認識を行う上で非常に便利なCaffeですが、使用する上での注意点も存在します。

Caffeは現在、画像認識用のフレームワークとして非常に活気づいており、関連したオープンソースやコミュニティも多数あります。
Caffeには元々、学習済みモデルを配布するためのフレームワーク(Caffe Model Zoo)も存在しているため、多くの方が有用な学習済みモデルを配布、共有している点は、開発を行う方々にとっては大きなメリット。
しかし、様々な方の知見やノウハウを活用できるメリットがある一方で、これらのモデルには必ず「ライセンス情報」が存在します。このため、無償環境での利用については問題ないのですが、Caffeを商用に利用する場合には注意が必要です。
そのモデルが商用利用しても良いものか、という点を必ずチェックしてください。

 

まとめ

AI(人工知能)の能力の中でも、画像から情報を読み取り判断する画像認識は、今後も様々な場面で活用されていくでしょう。精度によっては、時には人間が気付けなかった部分を素早く見つけ、より正確な答えを導き出すことができるのも、AI(人工知能)だからこそ可能な点です。

その中で、手軽に使うことができ、かつ高速な動作を実現できるCaffeは、今もなお多くの方から注目を集める画像認識フレームワークとなっています。初心者の方にとっても導入しやすく、コミュニティが活発という点も、今後、まだまだ進化を続けていく可能性を感じますよね。

機械学習、ディープラーニングに興味のある方は、Pythonなどのプログラミング言語を学習すると共に、Caffeを導入・活用することで、モデルの作成から画像認識を行うまでの工程を学習、体験することができます。AI(人工知能)の世界をより深く知るために、Caffeに触れてみましょう。

【お知らせ】

当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。

御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。

お多福ラボコーポレートサイトへのバナー

トップへ戻る
タイトルとURLをコピーしました