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:abovearch:below |
![]() |
caret:abovecaret: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) |







