画像認識

サクッと10分!GCPのVisionAPIで画像からテキスト抽出してみる

ぐぅ

ぐぅ

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。ノーコードで企業し、サブスク型サービスを運営。26歳大阪在住

★この記事は10分で読み終えることができます。

現役エンジニアである筆者がGCPの VisionAPIを使ってテキスト抽出の方法を解説しています。

今回は、GCP(Google Cloud Platform)のVision APIを使って画像からテキストを抽出してみましょう!

本記事ではPythonを利用しています。サンプルコードもあるのでサクッと10分ほどでコピペして画像からテキスト抽出できると思います!!

Vision APIを使って10分で画像からテキスト抽出

今回はこの平家物語の冒頭をGCPのVisionAPIでテキスト抽出していこうと思います!

あと、GCPを理解するのに参考になった本を載せておきますね。参考書探していた人は是非!!

created by Rinker
¥3,762 (2021/08/03 05:58:33時点 Amazon調べ-詳細)

Vision APIとは?

VisionAPIとは、Googleが一般ユーザに向けて提供している画像認識APIのことです。

APIを使うメリットは、機械学習でコストの大きいモデル学習の部分を我々が行う必要がないことです。

ただ逆を言うと、Googleが学習したモデルを利用することになるので予測の精度や日本語への対応なども全てGoogleに依存することになります。

とはいえ、現状でも日本語の認識精度は飛躍的に向上しており、VisionAPIを使って会議のホワイトボードの文字起こしするなんてことも可能になってきています!!

テキスト抽出してみよう

プロジェクトの作成

ではプロジェクトの作成をしましょう!!(もうしてる人は飛ばしてね!!)

下の画像のプロジェクトの選択というボタンをクリックして、自分で好きなプロジェクト名をつけてあげましょう〜!!

サービスアカウントの取得

これはGoogle Cloud Platformのサービスを使用する為に取得しなければならない認証キーです。

以下のようにサービスアカウントをjson形式のファイルで作成します!!

1. 左上のボタンから「IAMと管理」>>「サービスアカウント」を選択

2. サービスアカウントの作成を選択してjsonファイルをダウンロード

Cloud Shellの起動

Cloud Shellを起動するためには、GCPの画面の右上にあるShellボタンを押します。

下の画像の左から二番目のボタンです。

Shellを起動してサービスアカウントのjsonファイルを「ファイルのアップロード」でアップロードしてください(下の画像参照)

pythonのサンプルコード

続いて必要なpythonファイルを作成しましょう!!

下のコードをコピーしてpythonファイルを作成し、先ほどのようにpythonファイルをアップロードしましょう。

このコードは「document_text_detection」という画像に対して認識した文章を返してくれる機能です!便利!

「document_text_detection」を「label_detection」とすると画像のオブジェクト認識ができたり、「text_detection」とすると抽出した単語を返してくれます!!!

同じように、テキスト抽出したい画像をアップロードして、「hoge.jpg」の部分に画像の名前を入れてくださいね

# 画像1枚をテキスト抽出にかけるプログラムです
from pathlib import Path
from google.cloud import vision
import os

# 画像のパスを指定してあげます
p = Path(__file__).parent / "heike_story.jpg"
# インスタンス作成
client = vision.ImageAnnotatorClient()
# 画像ファイルを読み込む
with p.open('rb') as image_file:
    content = image_file.read()
image = vision.Image(content=content)

# Vision APIのライブラリ指定
response = client.document_text_detection(
    image=image,
    image_context={'language_hints': ['ja']} # この引数で日本語の認識してほしいと指定

)
document = response.full_text_annotation.text
# 結果取得
print(document)

【最速で学ぶ - Google Cloud Platform(GCP)入門完全攻略コース】

GCPを学ぶためにオススメのUdemy講座です。筆者も体系的な知識をつけるのに役立ちました。

講座の最初は無料で受けられるので、雰囲気だけでもみてみてください!

受講はこちら

画像認識を実行してみよう!

まず、サービスアカウントキーを使って自分を認証してあげます。

Shellに下のコマンドを打ち込みましょう!!

export GOOGLE_APPLICATION_CREDENTIALS="取得したjson名.json"

これでVisioAPIが利用できるようになりました。

今いるディレクトリにサービスアカウントのjson、python、jpgがあればOKです。

では、pythonを実行しましょう

python doc_detection.py

すると、下のように文章が返ってきました!
少し間違っていますが笑。。。悪くない精度ですね

私が参考になったUdemyの講座を載せておきます。GCP利用したい人にはおすすめです。

現役エンジニアが教える、手を動かして学ぶGoogle Cloud Platform(GCP) 入門


受講はこちら

まとめ

VisionAPIによるテキスト抽出はいかがだったでしょうか??

10分程度でGoogleのサービスを利用して画像のテキスト抽出ができてしまいました!

GCPには他にも数多くのサービス・機能があるので、今後もGCPについてまた紹介記事を書いていこうと思います!!

読んでいただきありがとうございました!

  • この記事を書いた人
ぐぅ

ぐぅ

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。ノーコードで企業し、サブスク型サービスを運営。26歳大阪在住

-画像認識
-, , ,

© 2021 はやぶさエンジニア Powered by AFFINGER5