Reconhecimento de tinta digital

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.

iOS Android

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
  • 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.

Gesto Exemplo
arch:above
arch:below
caret:above
caret:below
circle
corner:para a esquerda
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)