ML Kit のデジタルインク認識 API を使用すると、手書きのテキストを認識し、何百もの言語でデジタル表示面上のジェスチャーを分類し、スケッチを分類できます。デジタルインク認識 API は、Gboard、Google 翻訳、Quick, Draw! ゲームの手書き入力認識と同じテクノロジーを使用しています。
デジタルインク認識では、次のことができます。
- 仮想キーボードではなく、画面に書くことができます。これにより、ラテン アルファベット キーボードの Э、ヘイト キーボード、森など、キーボードでは使用できない文字を描画できます。
- ジェスチャーを使用して、基本的なテキスト操作(ナビゲーション、編集、選択など)を行います。
- 手書きの図形と絵文字を認識する。
デジタルインク認識は、ユーザーが画面上に描画したストロークに基づいて動作します。カメラで撮影した画像からテキストを読み取る必要がある場合は、Text Recognition API を使用します。
デジタルインク認識は完全にオフラインで動作し、Android と iOS でサポートされています。
主な機能
- 手書き文字を Unicode 文字の文字列に変換します
- ほぼリアルタイムでデバイス上で実行
- ユーザーの手書き入力はデバイス上に保持され、ネットワーク接続がなくても認識が行われます。
- 300 以上の言語と 25 以上の書記体系をサポートしています。サポートされている言語の一覧をご覧ください。
-x-gesture
拡張機能により、これらの言語のジェスチャー分類をサポートします。
- 絵文字と基本的な図形を認識
- 必要に応じて言語パックを動的にダウンロードすることで、デバイス上のストレージ使用量を抑える
認識ツールは、Ink
オブジェクトを入力として受け取ります。Ink
は、ユーザーが画面に書き込んだもののベクトル表現です。ストロークのシーケンスはそれぞれ、「タッチポイント」と呼ばれる時間情報を持つ座標のリストです。ストロークは、ユーザーがタッチペンまたは指を下に置いたときに開始し、上にスワイプすると終了します。Ink
が認識機能に渡されます。これにより、1 つ以上の認識結果候補が信頼度とともに返されます。
例
英語の手書き入力
下の左側の画像は、ユーザーが画面に何を描画したかを示しています。右側の画像は、対応する Ink
オブジェクトです。各ストローク内のタッチポイントを表す赤いドットのストロークが含まれています。
ストロークは 4 本です。Ink
オブジェクトの最初の 2 つのストロークは次のようになります。
インク | ||
---|---|---|
ストローク 1 | x
|
392、391、389、287、... |
y
|
52、60、76、97、... | |
t
|
0、37、56、75、... | |
ストローク 2 | x
|
497、494、493、490、... |
y
|
167、165、165、165、... | |
t
|
694、742、751、770、... | |
... |
この Ink
を英語の認識機能に送信すると、5 文字または 6 文字を含む複数の音声文字変換テキストが返されます。これらは信頼度が高い順に並べられます。
RecognitionResult | |
---|---|
RecognitionCandidate #1 | Handw |
RecognitionCandidate #2 | Handrw |
RecognitionCandidate #3 | ハードウ |
RecognitionCandidate #4 | Handu |
RecognitionCandidate #5 | Handwe |
操作
ジェスチャー分類器は、インク ストロークを下記の 9 つのジェスチャー クラスのいずれかに分類します。
arch:above arch:below |
|
caret:above caret:below |
|
circle |
|
scribble |
|
strike |
|
verticalbar |
|
writing |
絵文字のスケッチ
下の左側の画像は、ユーザーが画面に何を描画したかを示しています。右側の画像は、対応する Ink
オブジェクトです。各ストローク内のタッチポイントを表す赤いドットのストロークが含まれています。
Ink
オブジェクトには 6 つのストロークがあります。
インク | ||
---|---|---|
ストローク 1 | x
|
269、266、262、255、... |
y
|
40、40、40、41、... | |
t
|
0、36、56、75、... | |
ストローク 2 | x
|
179、182、183、185、... |
y
|
157、158、159、160、... | |
t
|
2475、2522、2531、2541、... | |
... |
この Ink
を絵文字認識ツールに送信すると、音声文字変換テキストの候補が信頼度の降順で表示されます。
RecognitionResult | |
---|---|
RecognitionCandidate #1 | 😂?(U+1f62d) |
RecognitionCandidate #2 | 🙁?(U+1f605) |
RecognitionCandidate #3 | 😹?(U+1f639) |
RecognitionCandidate #4 | 🎉?(U+1f604) |
RecognitionCandidate #5 | ❤(U+1f606) |