はじめに
Watson Visual RecognitionのCollectionにデータを投入する際、コードを書く以外では、1つ1つコードを実装しなくてはならず、手間がかかります。
今回Javaのコードで複数の画像を一気にトレーニングできるコードを実装しました。
Javaの実行環境構築
- JDKのインストール
JDKのインストールは下記URLから行います。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
インストール方法は、下記URLを参考にしてください。
http://qiita.com/hiesiea/items/54e49dabfb5606edb54d#2-jdk%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
2. eclipseのインストール
eclipseのインストールは下記URLから行います。
http://www.eclipse.org/downloads/
インストール方法は、下記URLを参考にしてください。
http://qiita.com/hiesiea/items/54e49dabfb5606edb54d#3-eclipse%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
3. Maven projectの作成
eclipseの「New」→「Project」→「Maven Project」を作成します。
コードの入手、設定
- コードのダウンロード
下記のURLから、コードをダウンロードします。
https://github.com/takana-at/VisualRecognition-training
ダウンロードしたら、コードを展開します。
- コードの配置
sample.appプロジェクトに下記クラスをコピーします。
・AddToCollection.java
・AddToCollectionThread.java
・TrainingDefinition.java
Visual RecognitionのCollectionにトレーニングデータをアップロード
Visual Recognitionサービスの作成
- Bluemix上でVisual Recognitionのサービスを作成します。
下記URLからBluemixにログインし、「カタログ」→「Watson」→「Visual Recognition」サービスを作成します。
https://console.bluemix.net/
2. Visual Recognitionのサービスを作成したら、「サービス資格情報」→「Credentials-1」から、{api_key}を確認し、メモしておきます。
Visual RecognitionにCollection作成
- Visual Recognitionサービスにcollectionを作成します。
下記URLにアクセスし、「Parameters」→「api_key」に先ほどメモしたapi_key、「name」に任意の名前を入れて、「try it out!」をクリックします。
https://watson-api-explorer.mybluemix.net/apis/visual-recognition-v3#!/visual45recognition/post_v3_collections
2. collectionが作成できたら、下記の画面になりますので、「collection_id」をメモしておきます。
また、「status」が「Available」になっていることを確認します。
Javaのコードを実行する
AddToCollection.javaを実行します。
- AddToCollectionThread.javaのコードを変更します。
このクラスのコードの{api_key}を先ほどメモしたapi_keyに変更します。
2. アップロードする画像を配置します。
画像は、project直下に「trainImage」フォルダを作成し、「trainImage」フォルダ内に「画像ID名」のフォルダを作成し、「画像ID名」のフォルダに画像を配置してください。
この画像IDは、人物ごとに振り分けるために使用していますので、同一人物は同じ画像ID名のフォルダ内に配置してください。
PROJECTNAME
|-trainImage
|-IMGID_NAME
|-IMG
|-IMG
たとえば、下記のように「female」という画像ID名のフォルダに、「m010469.jpg」、「m010462.jpg」の画像を格納します。
※今回使用した画像
・https://model.foto.ne.jp/free/product_info.php/cPath/24_252_256/products_id/300378
・https://model.foto.ne.jp/free/product_info.php/cPath/24_252_256/products_id/302141
3. アップロードするメタファイルの配置します。
画像は、project直下に「trainMetafile」フォルダを作成し、「trainMetafile」フォルダ内にtrainImageフォルダ内と同じ「画像ID名」のフォルダを作成し、「画像ID名」のフォルダにその画像IDに関する人物の情報をjsonファイルで配置してください。
このときjsonファイルのファイル名は「画像ID名.json」にしてください。
「trainMetafile」フォルダに格納したjsonファイルによって、trainImageに格納した画像の追加情報を登録することができます。
PROJECTNAME
|-trainMetafile
|-IMGID_NAME
|-IMGID_NAME.json
たとえば、下記のように「female」という画像ID名のフォルダに、「female.json」という名前のjsonファイルを格納します。
Metafileを作成する際は、下記コードを参考にしてください。
{"name":"女性A","img_name":"femaleA","img_url":"https://model.foto.ne.jp/free/product_info.php/cPath/24_252_256/products_id/300378"}
4. 引数には、下記を入れて実装します。
「./trainImage」
Collectionを確認する
Collectionにトレーニングデータが追加されたか確認します。
- 下記URLにアクセスし、「Parameters」→「api_key」、「collection_id」にAddToCollection.javaを実装した際に入力したapi_key、collection_idを入れて、「try it out!」をクリックします。
https://watson-api-explorer.mybluemix.net/apis/visual-recognition-v3#!/visual45recognition/get_v3_collections_collection_id_images!
2. collectionに登録した画像の一覧を表示し、collectionの「images」に登録した画像が登録されていたら、トレーニングまで完了です。