디지털 잉크 인식

ML Kit의 디지털 잉크 인식 API를 사용하면 필기 텍스트를 인식하고 디지털 표면에서 수백 개의 언어로 동작을 분류하며 스케치를 분류할 수 있습니다. 디지털 잉크 인식 API는 Gboard, Google 번역, Quick, Draw! 게임에서 필기 인식을 지원하는 것과 동일한 기술을 사용합니다.

디지털 잉크 인식을 통해 할 수 있는 작업은 다음과 같습니다.

  • 가상 키보드에서 입력하는 대신 화면에 씁니다. 이렇게 하면 사용자가 키보드에서 사용할 수 없는 문자(예: 라틴어 알파벳 키보드의 경우 Agree, 森)를 그릴 수 있습니다.
  • 동작을 사용하여 기본 텍스트 작업 (탐색, 수정, 선택 등)을 실행합니다.
  • 손으로 그린 도형과 이모티콘을 인식합니다.

디지털 잉크 인식은 사용자가 화면에 그리는 획과 함께 작동합니다. 카메라로 촬영한 이미지에서 텍스트를 읽어야 하는 경우 Text Recognition API를 사용합니다.

디지털 잉크 인식은 완전히 오프라인에서 작동하며 Android와 iOS에서 지원됩니다.

iOS Android

주요 기능

  • 필기 텍스트를 유니코드 문자 시퀀스로 변환합니다.
  • 거의 실시간으로 기기에서 실행됩니다.
  • 사용자의 필기 입력이 기기에 유지되며 네트워크에 연결되지 않은 상태에서 인식이 실행됩니다.
  • 300개 이상의 언어와 25개 이상의 쓰기 시스템을 지원합니다. 지원되는 언어의 전체 목록을 참고하세요.
  • 그림 이모티콘 및 기본 도형 인식
  • 필요에 따라 언어 팩을 동적으로 다운로드하여 기기 내 저장용량을 낮게 유지

인식기는 Ink 객체를 입력으로 사용합니다. Ink는 사용자가 화면에 작성한 내용을 벡터로 표현한 것으로, 일련의 터치 포인트라고 하는 시간 정보가 포함된 좌표 목록입니다. 획은 사용자가 스타일러스나 손가락을 내려놓을 때 시작되고 위로 올리면 끝납니다. Ink는 인식기에 전달되어 하나 이상의 가능한 인식 결과를 신뢰 수준과 함께 반환합니다.

영어 필기

아래 왼쪽 이미지는 사용자가 화면에 그린 것을 보여줍니다. 오른쪽 이미지는 상응하는 Ink 객체입니다. 여기에는 각 획 내의 터치 포인트를 나타내는 빨간색 점이 있는 획이 포함되어 있습니다.

    

스트로크 4개가 있습니다. 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
인식 후보 #1 Handw
인식 후보 #2 Handrw
인식 후보 #3 Hardw
인식 후보 #4 Handu
인식 후보 #5 Handwe

동작

동작 분류기는 잉크 획을 아래에 나열된 9가지 동작 클래스 중 하나로 분류합니다.

동작
arch:above
arch:below
caret:above
caret:below
circle
corner:downleft
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
인식 후보 #1 😂 (U+1f62d)
인식 후보 #2 😅 (U+1f605)
인식 후보 #3 😹 (U+1f639)
인식 후보 #4 💌 (U+1f604)
인식 후보 #5 LR (U+1f606)