画像分析ってなんか難しそう…と思っている方へ朗報です!
Cloud Vision APIを使えば、画像に写っている文字をテキスト化することができます。
エンジニアはPythonなどでSDKを使ってVision APIを呼び出すことが多いかもしれませんが、今回は、プログラムに不慣れな人でもできるように、APIを実際に試す際に便利なツール「Postman」を使って、Vision APIの検証をしてみました。
正直、PythonなどSDKでやるのに比べるとPostmanで設定するのはひと工夫必要でした。特にアクセストークンの取得が面倒でしたね。
でも、この手順に沿って進めれば、PostmanでもVision APIを呼び出すことは可能です。画像分析に興味がある方は、ぜひ参考にしてください!
Vision API とは?
Vision APIは、Google Cloud Platform が提供する画像分析サービスです。画像に何が写っているのか、どんなオブジェクトがあるのか、文字情報などを抽出することができます。
公式:https://cloud.google.com/vision?hl=ja
OCR検証方法
今回は、Cloud Storageに保存した画像ファイルをVision APIで分析する方法で検証しました。
https://cloud.google.com/vision/docs/ocr?hl=ja
1. APIキーの取得
Vision API を利用するには、API キーが必要です。 Google Cloud Console で API キーを作成し、取得しておきましょう。
2. アクセストークンの取得
API への認証には、APIキーだけでなく、加えてアクセストークンが必要です。
このアクセストークンの取得が少々面倒です。(トークンを発行し、そのトークンをコピペしてあげる必要がある上、有効期限がデフォルトで1時間)
ターミナルで以下のコマンドを実行し、アクセストークンを取得します。
gcloud auth login [YOUR_ACCOUNT]
echo $(gcloud auth print-access-token)
Vision API及びCloud Storageへのアクセス権を持ったユーザーアカウントでログインします。
ユーザーアカウントが必要なので、RPAなどで自動化する際は気をつけないといけないかもしれません。
そもそもgcloud
を叩くのが初めてな人は、ローカルでインストールが必要です。
参考:https://cloud.google.com/sdk/docs/install-sdk?hl=ja
3. Cloud Storageに画像を保存
説明は割愛
4. Postman でのリクエスト設定
Postman を起動し、以下の設定を行います。
- リクエストメソッド: POST
- リクエストURL:
https://vision.googleapis.com/v1/images:annotate?key=YOUR_API_KEY
- (YOUR_API_KEY は1で取得した API キーに置き換えてください)
- ヘッダー:
Content-Type
:application/json
x-goog-user-project
:YOUR_GC_PROJECT_ID
- YOUR_GC_PROJECT_IDはご自身のプロジェクトIDに置き換える
Authorization
:Bearer YOUR_ACCESS_TOKEN
- YOUR_ACCESS_TOKEN は2で取得したアクセストークンに置き換える
- Body:
JSON
{ "requests": [ { "image": { "source": { "imageUri": "gs://YOUR_BUCKET_NAME/YOUR_IMAGE_FILE.jpg" } }, "features": [ { "type": "TEXT_DETECTION" } ] } ] }
(YOUR_BUCKET_NAME と YOUR_IMAGE_FILE.jpg は、それぞれ 3で画像を保存したCloud Storage のバケット名と画像ファイル名に置き換えてください)
実行結果
リクエストを送信すると、以下のようなレスポンスが返ってきます。
JSON
{
"responses": [
{
"textAnnotations": [
{
"locale": "en",
"description": "検出された文字列",
"boundingPoly": {
"vertices": [
{
"x": 147,
"y": 205
},
{
"x": 695,
"y": 205
},
{
"x": 695,
"y": 295
},
{
"x": 147,
"y": 295
}
]
}
}
]
}
]
}
レスポンスには、画像から検出された文字列の言語、検出された文字、位置情報(4点)が含まれています。
まとめ
今回は、Postman を使って Vision API を検証してみました。
PythonなどのSDKを使うのに比べると、API キーやアクセストークンの取得など、ひと手間かかる部分もありました。
とはいえ、Postman を使えば、GUIで手軽にAPIを呼び出せるので、一度設定してしまえば、その後のちょっとした検証には便利だと思います。
ぜひ、皆さんも Vision API を活用して、文字認識に挑戦してみてください!
※ 注意
- 上記のコードや設定はあくまで一例です。
- API キーやアクセストークンは、厳重に管理してください。