前回は、GDEPアドバンスの「 DeepLearning BOX」で、データセット「MNIST」の画像認識を「TensorFlow」「Cognitive Toolkit(CNTK)」を使って深層学習させる様子を紹介した。
好みのフレームワークが自由に使える環境であることが確認できたと思う。
今回は、Linux版の「DeepLearning BOX」で、「DIGITS + Caffe」を使って画像認識させる様子を紹介する。
前編は、データセットを作成する方法を紹介する。
使用環境
今回の使用環境は以下のとおり。
「DeepLearning BOX」には、あらかじめいくつかの深層学習フレームワークがプリインストールされていて、利用可能な状態になっている。
今回使用する「DIGITS + Caffe」も、プリインストールされているフレームワークのひとつで、日本語に翻訳された「DIGITSのマニュアル」と併せてデスクトップ上にショートカットが用意されていた。
DIGITSとは
DIGITS(ディジッツ)は、NVIDIAが提供しているWebベースのディープラーニングトレーニングシステム。
ディープラーニングで使うデータセットの作成、学習モデルの作成、学習過程の可視化、レイヤーの可視化などをサポートしている。
DIGITSは、CaffeやTensorFlowといった多くの深層学習フレームワークと連携。
「DeepLearning BOX」上のDIGITSは、Caffeを使ってディープラーニングできるようセットアップされている。
Caffeとは
Caffe(カフェ)は、Berkeley AI Research (BAIR) / The Berkeley Vision and Learning Center (BVLC)とコミュニティによって開発されたオープンソース・ソフトウェアの深層学習フレームワークで、主に画像認識を得意とする。
「コマンドライン」「Python」「MATLABのインターフェイス」などから利用できる。
コアエンジンはC++/CUDAで作られており、GPUをシームレスに使いわけることで、高速な実行が可能になっている。
また、CaffeはGitHubを中心とした開発コミュニティが活発であることも知られている。
DIGITS + Caffeで画像処理
今回は、DIGITSのチュートリアルにあるセマンティック・セグメンテーションを使った深層学習を試して見たい。
セマンティック・セグメンテーションとは、画像ファイルを読み込み、その画像ファイル内にある画素から対象物(オブジェクト)を識別、分類することを指す。
使うのはセマンティック・セグメンテーションをする際によく利用される「PASCAL VOC2012」という約2GBのデータセット。
このデータセットには、以下のような画像データと、その中の物体位置を示すラベル画像が組み合わさって含まれている。
画像に写った物体を識別するには、合わせて「画像に写る物体が何か」といったラベルも必要になる。
そこで、このVOCイメージに「写る物体が何であるか」を示すラベルデータもデータセットに含めている。
このデータは、ラベルイメージの画像に表示されている色の部分が何の物体であるかを表す凡例データになっていて、それぞれの色に対応する対象物名を示すテキストファイルとなっている。
「PASCAL VOC2012」のデータセットには、「人物」「動物」「乗り物」「屋内の風景」といった画像で構成されている。
これらの「テキスト」「イメージ」「ラベルイメージ」をトレーニングデータとして使い、画像に写る物体を識別するモデルを作成する。
次ページ:データセットの取り込み
無料メルマガ会員に登録しませんか?
IoTに関する様々な情報を取材し、皆様にお届けいたします。