質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2416閲覧

Google Cloud Vision APIのOCRで文字種を制限する方法

ponponta

総合スコア1

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/05 00:59

編集2020/05/05 01:01

前提・実現したいこと

Google CloudのVisionAPIでOCRを使用したいが、出力する文字の種類をアルファベットと数字だけに制限したい

該当のソースコード

Python

1GOOGLE_CLOUD_VISION_API_URL = 'https://vision.googleapis.com/v1/images:annotate?key=' 2API_KEY = '******' 3 4# APIを呼び、認識結果をjson型で返す 5def request_cloud_vison_api(image_base64): 6 api_url = GOOGLE_CLOUD_VISION_API_URL + API_KEY 7 req_body = json.dumps({ 8 'requests': [{ 9 'image': { 10 # jsonに変換するためにstring型に変換する 11 'content': image_base64.decode('utf-8') 12 }, 13 'features': [{ 14 # ここを変更することで分析内容を変更できる 15 'type': 'TEXT_DETECTION', 16 'maxResults': 10, 17 }] 18 }] 19 }) 20 res = requests.post(api_url, data=req_body) 21 return res.json() 22 23# 画像読み込み 24def img_to_base64(filepath): 25 with open(filepath, 'rb') as img: 26 img_byte = img.read() 27 return base64.b64encode(img_byte) 28# 文字認識させたい画像を設定 29img_base64 = img_to_base64('./test.png') 30result = request_cloud_vison_api(img_base64) 31# 認識した文字を出力 32text_r = result["responses"][0]["textAnnotations"][1]["description"] 33print(text_r)

試したこと

ドキュメントを読みましたが該当の機能を見つけられませんでした

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のリンクの感じだと、TEXT_DETECTIONも言語指定の対応してそうな感じですね・・・。
英語指定すると、アルファベットと数字に制限したのと同じ意味になる気がします。
記号はもしかすると混入してしまうかも・・・。

画像内のテキストを検出する - 言語を指定する

言語を指定する(省略可)

どちらのタイプの OCR リクエストも 1 つ以上の languageHints をサポートしています。これにより、画像内のテキストの言語を指定します。しかし、ほとんどの場合、値を空にして自動言語検出を有効にしておくと最善の結果が得られます。ラテン アルファベット系の言語の場合、languageHints の設定は不要です。画像中のテキストの言語がわかっている場合などに、ヒントを設定すると結果が少し良くなります(逆に、ヒントを間違えると大きな障害となります)。サポートされる言語以外の言語が 1 つでも指定されていると、テキスト検出でエラーが返されます。
言語のヒントを指定する場合は、リクエストの本文(request.json ファイル)を変更し、以下の imageContext.languageHints フィールドにサポート対象言語の文字列を指定します。

json

1 { 2 "requests": [ 3 { 4 "image": { 5 "source": { 6 "imageUri": "image-url" 7 } 8 }, 9 "features": [ 10 { 11 "type": "DOCUMENT_TEXT_DETECTION" 12 } 13 ], 14 "imageContext": { 15 "languageHints": ["en-t-i0-handwrit"] 16 } 17 } 18 ] 19 }

言語ヒントの仕組み

languageHint の形式は、BCP47 言語コード形式のガイドラインに準拠しています。BCP47 指定の形式は次のとおりです。

language ["-" script] ["-" region] *("-" variant) *("-" extension) ["-" privateuse]

たとえば、言語ヒント「en-t-i0-handwrit」は、英語(en)、変換拡張シングルトン(t)、入力方法エンジン変換の拡張コード(i0)、手書き入力変換コード(handwrit)を指定しています。簡単にまとめると、「手書き入力から変換された英語」ということになります。スクリプト コードの指定は必要ありません。Latn は en 言語に含まれています。

参考までに
OCR言語のサポート

投稿2020/05/11 09:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問