カメラ OCR:指す、撮る、翻訳する

Last updated: 2026-09-03

カメラ OCR は、ローカルにフォークされた vision_text_recognition パッケージを使用して OCR を実行します。ラテン文字、中国語(簡体字および繁体字)、日本語、韓国語のスクリプトをサポートしています。認識のためにアップロードされるデータはありません。OCR エンジンから返される各ブロックには独自の境界ボックスと検出テキストが含まれ、結果ページでは同じ座標に翻訳が描画されるため、元のレイアウトが保持されます。

撮影パイプライン

  1. カメラの初期化。 カメラコントローラーは明示的な initializing / ready / failed 状態で非同期に初期化されます。失敗時には再試行ボタンが表示され、initializing ガードに再入することなく初期化を再実行できます。
  2. 実際の方向。 アプリが縦向きにロックされていると、iOS の DeviceOrientation と EXIF は信頼できません。アプリは sensors_plus を介して生の加速度計を読み取り、最新のフレームをキャッシュするため、UI がロックされていても、シャッターは実際 のグリップ方向でキャプチャします。EXIF の方向はこの真値と照合されます。
  3. シャッター。 タップで現在 のプレビューアスペクト比で撮影します。キャプチャしたフレームは、OCR の前に設定可能な最大辺長にダウンスケールされます。ほとんどのページでは、精細な文字をメモリを肥大化させずに読み取るために長辺 1500〜2000 ピクセルが必要です。
  4. フラッシュ。 ファインダーには 4 つのモード(オート、オフ、オン、トーチ)が公開されており、トグルはシステムフラッシュ API にバインドされています。

OCR が返すもの

なぜデバイス上で処理するのか

正確な OCR のためのベストプラクティス

  1. 均一で間接的な光。 窓からの光はオーバーヘッドのスポットライトよりも優れています。ページを横切る影は、文字の誤読の最も一般的な原因です。
  2. タップしてフォーカス。 オートフォーカスが間違った被写体(デスク、指、ページの端)を選択した場合は、キャプチャ前にテキストの中心をタップしてください。
  3. 平らなページ。 本の背に向かって弓状になったページは、ガター付近の文字を失います。可能であれば、もう一方の手でページを平らに押してください。
  4. 1 回のキャプチャで 1 つの言語。 混合スクリプトのページは 1 回のパスで動作 but、ラテン文字と縦書きの日本語が混在するページは 2 回のキャプチャに分割することをお勧めします。