ブロック オーバーレイの解説:翻訳が写真にどう載るか
結果ページは翻訳を元の写真の上にレンダリングし、OCR ブロックごとに 1 つのオーバーレイを表示します。各ブロックの翻訳は、OCR エンジンがソース テキストを検出した正確な矩形内に表示されます。この記事では、オーバーレイのレイアウト、写真とのインタラクション、読み方を説明します。\n\n## ブロック単位の理由\n\nOCR は単一の文字列ではなく、ブロックのリストを返します。各ブロックには独自の境界ボックス、検出されたテキスト、信頼度スコアが含まれます。結果ページは各ブロックを独立した単位として扱います。\n\n- レイアウト保持。 翻訳はソースと同じ矩形に表示されるため、テキスト ブロック間の空間的な関係が維持されます。\n- 障害の分離。 1 つのブロックが翻訳できなくても、ページ全体の翻訳は止まりません。\n- 混合スクリプト。 英語のヘッドラインと日本語のキャプションがあるページは、ブロック単位のソース言語ヒントを使用できます。\n\n## 翻訳のストリーミング\n\n検出された各ブロックは、独立した翻訳ジョブとして ML Kit に送信されます。翻訳は完了した順にオーバーレイにストリームされ、ユーザーはブロックがエンジンで完了した順に翻訳されるのを見ます。オーバーレイは段階的に更新されます。ページ全体にブロッキング スピナーは表示されません。\n\n## オーバーレイの位置決め\n\n翻訳テキストはソース ブロックの境界ボックスに合わせて折り返され、配置されます。ブロックが狭い場合、翻訳は複数行に折り返され、ソース矩形をわずかにオーバーフローする場合があります。エンジンは厳密な含有よりも可読性を優先します。\n\nオーバーレイは写真の上にレンダリングされ、写真に焼き込まれるわけではありません。履歴に保存すると、元の写真とブロック単位の翻訳レコードの両方が保存されます。保存したエントリを開くと、オーバーレイが正確に再現されます。\n\n## 透明度スライダー\n\nシート上部のスライダーでオーバーレイ レイヤーの不透明度を制御できます。完全に透明にスライドすると元の写真が見え、完全に不透明にすると翻訳が読めます。半透明は、ページを離れることなく原文と翻訳を並べて比較する一般的な設定です。\n\n## タップでフォーカス\n\n翻訳されたブロックをタップすると、ボトム シートが開き、「全文翻訳」ビューの同じブロックにスクロールします。これは、写真上の翻訳が切り詰められたり折り返されたりして完全な文が隠れているブロックで便利です。\n\n## 結果ページの構造\n\n- トップ バー。 閉じるボタンのみ。他にコントロールはなく、結果ページは意図的にミニマルです。\n- メイン領域。 写真を全画面で表示し、その上にオーバーレイ レイヤーがレンダリングされます。InteractiveViewer を使用すると、テキストをズームおよびパンして確認できます。\n- ボトム シート。 3 つの状態:折りたたまれた状態(デフォルト)、中間(約半画面)、展開(画面の大部分)。折りたたまれた状態は小さなハンドルと概要を表示します。中間はブロック単位の翻訳をカードとして表示します。展開はすべてのブロック翻訳を全幅で表示します。\n- シート内の 2 つのタブ。 「Blocks」タブは OCR ブロックごとにグループ化された翻訳を表示し、「Full」タブは結合された段落全体の翻訳を表示します。\n\n## 一部のブロックに警告が表示される理由\n\nOCR の信頼度がしきい値を下回ると、ブロックに警告バッジが表示されます。ブロックは引き続き翻訳されてレンダリングされますが、ユーザーは確認するよう求められます。一般的な原因:低光、グレア、手書き、装飾フォント、非常に小さなテキスト。\n\n## 保存\n\n履歴に保存すると、写真(サムネイルに圧縮)、OCR ブロック、ブロック単位の翻訳、結合された段落全体がキャプチャされます。保存したエントリを開くと、オーバーレイが正確に再現されます。写真の編集はサポートされていません。