Blind Vision Assistant — 画像を音声で説明する支援ツール
Blind Vision Assistant は、画像を音声による説明に変換するアクセシビリティのプロジェクトです。視覚言語モデルが画像の内容を自然言語で記述し、音声合成がそれを読み上げることで、目で見ることができない利用者にも画像の内容が伝わります。
解決しようとしている問題
スクリーンリーダーはテキストは得意ですが、画像は苦手です。Webプラットフォームが適切なalt属性を提供していればそれを読み上げますが、altが無い、一般的すぎる、あるいは自動生成されただけの場合、利用者には何も伝わりません。さらにaltは一度だけ、全員に向けて書かれるため、作者が言及しなかった細部について後から質問することができません。
任意の画像をその場で説明できるモデルがあれば、状況が変わります。説明はこの画像のために生成されるものであって、用意されたものを取り出すのではありません。重要な点が抜けていれば、別の観点で生成し直せます。
パイプラインの構成
3段階のパイプラインとして構成されており、それがインターフェースを3つ用意している理由でもあります。
- 入力 — ファイルパス、アップロード、RESTリクエストのいずれかから画像を受け取ります
- 説明 — 視覚言語モデル LLaVA が、画像に見える内容を自然言語で記述します
- 読み上げ — Edge-TTS が説明を音声に変換し、読まずに聞ける形にします
- Webインターフェース — 画像をアップロードすると、テキストと音声の両方が得られます
- CLI — 同じパイプラインをローカルコマンドとして実行でき、バッチ処理やブラウザ無しの検証に便利です
- REST API — HTTPエンドポイントとして公開し、他のアプリケーションが再実装せずに呼び出せます
設計上の判断
ひとつのパイプラインに3つのインターフェースを載せたのは意図的です。アクセシビリティツールで本質的なのはパイプラインそのものであり、インターフェースは届け方の選択にすぎません。まずパイプラインを作り、後から包んだことで、モデル部分を特定の入口に依存せず評価できました。
ホスト型APIではなくローカルの視覚言語モデルを使うことで、有料キー無しで動作し、アップロードされた画像が実行環境の外に出ません。個人的な写真を説明させることが想定されるツールでは、この点は重要です。
この作品を強くするために足りないもの
正直に言えば、このプロジェクトに欠けているのは評価です。誤り率を測定していない説明システムは、貢献ではなくデモンストレーションです。重要なのは、モデルが画像に存在しない内容をどれくらいの頻度で作り出すかです。自信を持って述べられた誤った説明は、説明が無いことよりも視覚障害のある利用者にとって有害だからです。
測定するには、固定した画像サンプルに対してパイプラインを実行し、生成された説明を参照となる説明と比較し、ハルシネーション率と遅延を定性的な例とあわせて報告する必要があります。この評価が、このプロジェクトにおける自然な次の作業です。
主な特徴
- Webインターフェース
- CLIツール
- REST API
- アクセシビリティ重視