借助机器学习套件的数字手写识别 API,您可以识别手写文本,对数字表面上数百种语言的手势进行分类,还可以对素描进行分类。数字手写识别 API 采用的技术与 Gboard、Google 翻译和 Quick, Draw! 游戏中的手写识别功能提供支持。
借助数字手写识别功能,您可以:
- 在屏幕上书写,不必使用虚拟键盘输入内容。这样,用户就可以绘制键盘上无法使用的字符,例如拉丁字母键盘的 Built、key 或 森。
- 使用手势执行基本文本操作(导航、修改、选择等)。
- 识别手绘形状和表情符号。
数字手写识别适用于用户在屏幕上绘制的笔画。如果您需要读取使用相机拍摄的图片中的文本,请使用 Text Recognition API。
数字手写识别完全可以离线工作,且在 Android 和 iOS 上受支持。
主要功能
- 将手写文本转换为 Unicode 字符序列
- 在设备上近乎实时地运行
- 用户的手写内容会保留在设备上,该识别过程无需任何网络连接即可执行
- 支持 300 多种语言和 25 多种书写系统,请参阅所支持语言的完整列表
- 支持通过
-x-gesture
扩展对这些语言进行手势分类
- 支持通过
- 识别表情符号和基本形状
- 可根据需要动态下载语言包,从而节省设备上的存储空间
识别器将 Ink
对象作为输入。Ink
是用户在屏幕上所写内容的矢量表示:一系列笔触,每个笔画都是一系列坐标,其中包含时间信息,称为“接触点”。当用户松开触控笔或手指时,笔画开始,当用户抬起触控笔或手指时,笔画结束。Ink
会传递给识别器,识别器会根据置信度返回一个或多个可能的识别结果。
示例
英文手写
下面的左图显示了用户在屏幕上绘制的内容。右侧图片是相应的 Ink
对象。它包含一些笔触,红点表示每个笔画中的接触点。
一共分为四笔。Ink
对象中的前两个笔画如下所示:
墨水 | ||
---|---|---|
描边 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 | 手 |
RecognitionCandidate 2 | Handrw |
候选识别 3 | 硬硬件 |
RecognitionCandidate 4 | 手图 |
RecognitionCandidate 5 | Handwe |
手势
手势分类器将手写笔触分类为下面列出的九种手势类别之一。
arch:above arch:below |
|
caret:above caret:below |
|
circle |
|
scribble |
|
strike |
|
verticalbar |
|
writing |
表情符号素描
下面的左图显示了用户在屏幕上绘制的内容。右侧图片是相应的 Ink
对象。它包含一些笔触,红点表示每个笔画中的接触点。
Ink
对象包含六笔画。
墨水 | ||
---|---|---|
描边 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) |
候选识别 3 | 😹? (U+1f639) |
RecognitionCandidate 4 | 😄? (U+1f604) |
RecognitionCandidate 5 | 😝? (U+1f606) |