動かざることバグの如し

近づきたいよ 君の理想に

GCP Vision APIを利用してNodejsで文字認識する

やりたいこと

俺は、最近画像から文字認識をしたいと思い、いくつかの方法を試した。

しかし、自分でOCRのライブラリ環境を整えるのは面倒だと感じ、手軽に高精度なOCRを行える方法を探していた。

そこで、Google Cloud Platform(GCP)のOCR APIを利用することに決めた。

GCPは、画像に含まれるテキストを自動的に識別し、テキストを編集できるようにするためのAPIを提供している。

GCPOCR APIを利用するためには、GCPのアカウントを作成し、APIキーを取得する必要がある。

APIキーを取得したら、Pythonのクライアントライブラリをインストールして、APIキーを設定するだけで、簡単かつ高精度なOCRが可能になる。

実際に試してみたところ、GCPOCR APIは非常に高精度で、画像に含まれるテキストを正確に識別することができた。また、APIを利用することで、自分でOCRのライブラリ環境を整える手間が省け、手軽にOCRを行えるようになった。

コード

import { ImageAnnotatorClient } from '@google-cloud/vision';
import fs from 'fs';

async function ocrImage() {
  // クライアントのインスタンスを生成
  const client = new ImageAnnotatorClient();

  // Google Cloud Vision APIのリクエスト設定
  const request = {
    image: {
      content: fs.readFileSync('image.jpg')
    },
    imageContext: {
      languageHints: ['ja'], // 日本語のヒントを指定
    },
  };

  // OCRを実行し、結果を取得する
  const [result] = await client.textDetection(request);
  const detections = result.textAnnotations;

  if(detections) {
    // JSONファイルを整形して保存する
    fs.writeFileSync('./ocr.json', JSON.stringify(detections, null, 2));

    // 取得した文字をconsole.logに表示する
    detections.forEach((text) => console.log(text.description));
  }
}

// 関数を実行
ocrImage().catch(console.error);

前もってVision AIを有効化したサービスアカウントを発行しjsonをセットしておく必要がある。

export GOOGLE_APPLICATION_CREDENTIALS=credentials.json