やりたいこと
俺は、最近画像から文字認識をしたいと思い、いくつかの方法を試した。
しかし、自分でOCRのライブラリ環境を整えるのは面倒だと感じ、手軽に高精度なOCRを行える方法を探していた。
そこで、Google Cloud Platform(GCP)のOCR APIを利用することに決めた。
GCPは、画像に含まれるテキストを自動的に識別し、テキストを編集できるようにするためのAPIを提供している。
GCPのOCR APIを利用するためには、GCPのアカウントを作成し、APIキーを取得する必要がある。
APIキーを取得したら、Pythonのクライアントライブラリをインストールして、APIキーを設定するだけで、簡単かつ高精度なOCRが可能になる。
実際に試してみたところ、GCPのOCR 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