Google Cloud Vision で画像から手書き文字の検出(TEXT_DETECTION)
今日もテッペン越えてから、記事を書いている@うしです。
Alibab Cloud の「Image Search 」のRequest structure(APIエンドポイント)の
ドキュメントを読んでいたら、 そう言えば、以前、Google Cloud Vision (画像のAI分析API)で、
手書き文字の画像をテキストに起こすAPI(OCR的な感じの)を使用した事を思い出し、突発的にブログを書き始めました。
- 参考記事 (以下を参考にさせて頂きました。)
○ 取りあえずコード(適当に「test.py」とか名前を付ける)
from base64 import b64encode from sys import argv import json import requests ENDPOINT_URL = 'https://vision.googleapis.com/v1/images:annotate' if __name__ == '__main__': api_key, *image_filenames = argv[1:] img_requests = [] for imgname in image_filenames: with open(imgname, 'rb') as f: ctxt = b64encode(f.read()).decode() img_requests.append({ 'image': {'content': ctxt}, 'features': [{ 'type': 'TEXT_DETECTION' }] }) response = requests.post(ENDPOINT_URL, data=json.dumps({"requests": img_requests}).encode(), params={'key': api_key}, headers={'Content-Type': 'application/json'}) for idx, resp in enumerate(response.json()['responses']): enc = json.dumps( resp["fullTextAnnotation"]["text"], indent=2) dec = json.loads(enc) print( dec ) ## print(json.dumps(resp , indent=2))
○ 実行方法(コマンドラインやターミナルで以下を実行)
$ python text.py (取得したAPIキー) (画像ファイルのフルパス)
○ 実行した見た
以下の手書き文字の写真をPOSTすると「今夜が山田」と返却されました。
○ まとめ
- 画像関連処理は、用途が色々広がりそうで面白い。
- 認識率の向上により、手書き文字のテキスト化が簡易に数行のコードで実行できそう。
- AWS、GCPなど色々画像関連処理について、調査&触ったことが有るが、Alibaba Cloud の「Image Search 」も今度触ってみようと思った。
- 今度は、そもそも画像ってどんな作り?ってことについて、記事を書きたいと思います。(畳み込み)