Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

誰でも手軽にNTTドコモのサービスのような機能を持つアプリが作れる ~Androidアプリから画像認識APIを実行する

スマホアプリを豊かにする「docomo Developer support」で遊ぼう(2)

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/12/12 14:00
目次

画像認識APIを利用するには

 では次に、実際のアプリで画像認識APIのSDKを利用してみましょう。

画像認識API

 画像認識APIは、公開されたばかりの最新APIで、画像に写っている物を認識、解析して、その名称などの情報を取得することができます。

 認識できるものは、書籍やDVD、CD、PCソフト、ゲームソフト、食品パッケージといった商品です。現在、500万件以上の市販品情報が登録されていて、その名称や関連情報のWebページURL、認識の確からしさを表すスコアなども取得可能です。

画像認識API
画像認識API

 画像認識では、3つのAPIが利用できます。

画像認識API
API名 処理内容
画像認識 画像に写る商品を認識し、名称を含む商品情報を返却する。
認識結果の候補全体に対するフィードバック 画像認識の結果一覧が妥当だったか否かをフィードバックする。
認識結果の各候補に対するフィードバック 画像認識の個々の結果が妥当だったか否かをフィードバックする。

 なお認識できる画像ファイルは、JPEG、PNG、GIF、BMP、TIFF形式で、サイズの上限は10MBです。推奨画像サイズは、VGA(640×480)相当ということですが、スマートフォンで撮影した画像程度なら、そのまま処理できるようです。

SDK

 画像認識APIのSDKは、APIのページからダウンロードすることができます。

SDKのダウンロードページ
SDKのダウンロードページ

 提供されているファイル(執筆時点では、Image_Recognition_SDK_for_Android_v1.0.0.zip)には、ライブラリ本体に、サンプルアプリ、利用ガイドなどが含まれています。

 利用ガイド(画像認識SDK for Android利用ガイド_v1.0.0.pdf)には、SDKの使い方が詳しく載っていますので、実際のAPI利用の際には、併せて参考にしてください。

ライブラリについて

 SDKで提供されるライブラリファイルは、次のようなファイルで構成されています。

SDKに含まれるライブラリファイル
ファイル名 ライブラリ概要
docomo-common-android-sdk-1.0.1.jar docomo SDK共通ライブラリ
docomo-imagerecognition-android-sdk-1.0.0.jar 画像認識ライブラリ
jackson-annotations-2.2.3.jar Jacksonライブラリ
jackson-core-2.2.3.jar
jackson-databind-2.2.3.jar

 画像認識API用の他に、JSONデータを扱うためのオープンソースライブラリである、Jacksonライブラリが含まれています。

サンプルアプリ

 SDKには、サンプルアプリも含まれています。まずは、このサンプルをビルドしてみましょう。サンプルアプリは、Eclipseのプロジェクトとして提供されています。SDKのsampleフォルダにzipファイルがありますので、解凍して、Eclipseにインポートします。

 プロジェクトのlibsフォルダには、前述のライブラリファイルが含まれています。プロジェクトからSDKのライブラリを使うには、このように、libsフォルダにコピーするだけです。

サンプルアプリの起動画面
サンプルアプリの起動画面

APIキーの設定とAPIの実行手順

 このアプリを実行するには、先ほど取得したAPIキーの設定が必要です。APIキーは、プロジェクトのRecognitionActivity.javaにある、RecognitionActivityクラスのフィールドに設定します。

// API キー
static final String APIKEY = "";

 画像認識APIには3つの処理がありますが、いずれも同様のコードで実行することができます。メインとなる画像認識は、次のようなコードで情報を取得できます。resultDataに、結果のJSONデータが格納されていますので、必要に応じて、そのデータから情報を抽出します。

// 画像認識クラスを作成する
ImageRecognition recognize = new ImageRecognition();

// 画像認識リクエストデータクラスを用いてパラメータを設定する
ImageRecognitionRequestParam requestParam = new ImageRecognitionRequestParam();
requestParam.setRecog(Recog.ALL);
requestParam.setFilePath(画像ファイル名);

// 画像認識クラスにリクエストデータを渡し、レスポンスデータを取得する
ImageRecognitionResultData resultData = recognize.request(requestParam);

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 高江 賢(タカエ ケン)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:スマホアプリを豊かにする「docomo Developer support」で遊ぼう
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5