Com a API de reconhecimento de tinta digital do Kit de ML, é possível reconhecer texto escrito à mão e classificar gestos em uma superfície digital em centenas de idiomas, além de classificar esboços. A API de reconhecimento de tinta digital usa a mesma tecnologia que usa o reconhecimento de escrita manual no Gboard, Google Tradutor e o jogo Quick, Draw!.
O reconhecimento de tinta digital permite:
- Escreva na tela em vez de digitar em um teclado virtual. Isso permite que os usuários desenhem caracteres que não estão disponíveis no teclado, como ệ, अ ou 森 para teclados alfabéticos latinos.
- Realizar operações básicas de texto (navegação, edição, seleção e assim por diante) usando gestos.
- Reconhecer formas e emojis desenhados à mão
O reconhecimento de tinta digital funciona com os traços que o usuário desenha na tela. Se você precisar ler texto de imagens tiradas com a câmera, use a API Text Recognition.
O reconhecimento de tinta digital funciona totalmente off-line e é compatível com Android e iOS.
Principais recursos
- Converte texto escrito à mão em sequências de caracteres Unicode.
- É executado no dispositivo quase em tempo real
- A escrita à mão do usuário permanece no dispositivo, e o reconhecimento é realizado sem qualquer conexão de rede.
- Oferece suporte a mais de 300 idiomas e mais de 25 sistemas de escrita. Veja a lista completa de idiomas com suporte
- Suporta classificação de gestos para esses idiomas por meio de
extensões
-x-gesture
- Suporta classificação de gestos para esses idiomas por meio de
extensões
- Reconhece emojis e formas básicas
- Mantém o armazenamento no dispositivo baixo fazendo o download dinâmico de pacotes de idiomas, conforme necessário.
O reconhecedor usa um objeto Ink
como entrada. Ink
é uma representação vetorial
do que o usuário escreveu na tela: uma sequência de traços, cada uma sendo
uma lista de coordenadas com informações de tempo chamadas pontos de contato. Um derrame começa quando o usuário coloca a stylus ou o dedo para baixo e termina quando o levantar. O Ink
é transmitido para um reconhecedor, que retorna um ou mais resultados de reconhecimento possíveis, com níveis de confiança.
Exemplos
Escrita manual em inglês
A imagem à esquerda abaixo mostra o que o usuário desenhou na tela. A imagem à
direita é o objeto Ink
correspondente. Ele contém os traços com pontos vermelhos que representam os pontos de contato dentro de cada traço.
Há quatro traços. Os dois primeiros traços no objeto Ink
têm esta aparência:
Tinta | ||
---|---|---|
Traço 1 | x
|
392, 391, 389, 287... |
y
|
52, 60, 76, 97... | |
t
|
0, 37, 56, 75... | |
Traço 2 | x
|
497, 494, 493, 490... |
y
|
167, 165, 165, 165... | |
t
|
694, 742, 751, 770... | |
… |
Quando você envia essa Ink
para um reconhecedor para o idioma inglês, ela retorna
várias transcrições possíveis, contendo cinco ou seis caracteres. Eles são ordenados por confiança decrescente:
RecognitionResult (em inglês) | |
---|---|
Candidato 1 | Handw |
Reconhecimento candidato 2 | Handrw |
Reconhecimento candidato 3 | trabalhou |
Reconhecimento candidato 4 | Handu |
Candidato 5 | Handwe |
Gestos
Os classificadores de gestos classificam um traço de tinta em uma das nove classes de gestos listadas abaixo.
arch:above arch:below |
![]() |
caret:above caret:below |
![]() |
circle |
![]() |
![]() |
|
scribble |
![]() |
strike |
![]() |
verticalbar |
![]() |
writing |
![]() |
Desenhos de emojis
A imagem à esquerda abaixo mostra o que o usuário desenhou na tela. A imagem à
direita é o objeto Ink
correspondente. Ele contém os traços com pontos vermelhos que representam os pontos de contato dentro de cada traço.
O objeto Ink
contém seis traços.
Tinta | ||
---|---|---|
Traço 1 | x
|
269, 266, 262, 255... |
y
|
40, 40, 40, 41... | |
t
|
0, 36, 56, 75... | |
Traço 2 | x
|
179, 182, 183, 185... |
y
|
157, 158, 159, 160... | |
t
|
2475, 2522, 2531, 2541... | |
… |
Ao enviar este Ink
para o reconhecedor de emojis, você recebe várias
transcrições possíveis, ordenadas em ordem decrescente de confiança:
RecognitionResult (em inglês) | |
---|---|
Candidato 1 | PLURAL (U+1f62d) |
Reconhecimento candidato 2 | // (U+1f605) |
Reconhecimento candidato 3 | 😹 (U+1f639) |
Reconhecimento candidato 4 | 👀 (U+1f604) |
Candidato 5 | 🎥 (U+1f606) |