やりたいこと
俺は、最近画像から文字認識をしたいと思い、いくつかの方法を試した。
しかし、自分で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