Google Play サービスでのバーコード検出
2015年9月30日水曜日
[この記事は Laurence Moroney、デベロッパー アドボケートによる Android Developers Blog の記事 "Barcode Detection in Google Play services" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]
Google Play サービス 7.8 のリリースに併せ、新しい Mobile Vision API を追加したことを発表します。この API では、多種多様なバーコード タイプを迅速かつ容易にローカルで読み取ってデコードする Barcode Scanner API が提供されます。
バーコードの検出
バーコードを検出して解析するためのクラスは com.google.android.gms.vision.barcode 名前空間で入手できます。BarcodeDetector クラスは、Frame オブジェクトを処理し、SparseArray<Barcode> タイプを返す主要なクラスです。バーコードのタイプは、認識された 1 つのバーコードとその値を表します。UPC コードなどの 1D バーコードの場合は、単にバーコードにエンコードされた番号となります。そしてこれは、format フィールド内の検出されたエンコーディング タイプ セットとともに、rawValue プロパティに表示されます。
QR コードなどの構造化されたデータが含まれる 2D バーコードの場合、valueFormat フィールドが、検出された値のタイプに設定され、対応するデータ フィールドが設定されます。そのため、たとえば、URL タイプが検出された場合、定数の URL が valueFormat に読み込まれ、URL プロパティが目的の値を含みます。URL のほかにも、QR コードでサポートできる多数のさまざまなデータ タイプがあります。ここのドキュメントで確認してください。
API を使用する場合、あらゆる方向でバーコードを読み取ることができます。真っ直ぐでなくでもよく、上下逆さまでも読み取ることができます。
すべてのバーコードの解析はローカルで行われるため、PDF-417 などの場合は非常に短時間で終わります。必要な情報はすべてバーコード自体に含まれているため、その後のルックアップが不要です。
API の使用に関する詳細は、GitHub のサンプルで確認できます。同じ画像内から顔とバーコードの両方を検出するには、Mobile Vision API とカメラ プレビューを使用します。
サポートされるバーコードのタイプ
この API では、1D と 2D の両方のバーコードが多数のサブ フォーマットでサポートされます。1D バーコードの場合、次のサブ フォーマットがあります:
AN-13
EAN-8
UPC-A
UPC-E
Code-39
Code-93
Code-128
ITF
Codabar
2D バーコードの場合、次のサブ フォーマットがあります:
QR Code
Data Matrix
PDF 417
詳細はこちらから
Barcode Scanner API によるバーコード検出を使用したアプリケーションは簡単に構築でき、そのための便利なリソースを多数ご用意しています。ここで確認してください:Code Lab をフォロー
Mobile Vision ドキュメントを読む
サンプルを活用する
Posted by Yoshifumi Yamaguchi - Developer Relations Team