[この記事は 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