ML Kit의 디지털 잉크 인식 API를 사용하면 필기 텍스트를 인식하고 디지털 표면에서 수백 개의 언어로 동작을 분류하며 스케치를 분류할 수 있습니다. 디지털 잉크 인식 API는 Gboard, Google 번역, Quick, Draw! 게임에서 필기 인식을 지원하는 것과 동일한 기술을 사용합니다.
디지털 잉크 인식을 통해 할 수 있는 작업은 다음과 같습니다.
- 가상 키보드에서 입력하는 대신 화면에 씁니다. 이렇게 하면 사용자가 키보드에서 사용할 수 없는 문자(예: 라틴어 알파벳 키보드의 경우 Agree, 森)를 그릴 수 있습니다.
- 동작을 사용하여 기본 텍스트 작업 (탐색, 수정, 선택 등)을 실행합니다.
- 손으로 그린 도형과 이모티콘을 인식합니다.
디지털 잉크 인식은 사용자가 화면에 그리는 획과 함께 작동합니다. 카메라로 촬영한 이미지에서 텍스트를 읽어야 하는 경우 Text Recognition API를 사용합니다.
디지털 잉크 인식은 완전히 오프라인에서 작동하며 Android와 iOS에서 지원됩니다.
주요 기능
- 필기 텍스트를 유니코드 문자 시퀀스로 변환합니다.
- 거의 실시간으로 기기에서 실행됩니다.
- 사용자의 필기 입력이 기기에 유지되며 네트워크에 연결되지 않은 상태에서 인식이 실행됩니다.
- 300개 이상의 언어와 25개 이상의 쓰기 시스템을 지원합니다. 지원되는 언어의 전체 목록을 참고하세요.
-x-gesture
확장 프로그램을 통해 이러한 언어의 동작 분류를 지원합니다.
- 그림 이모티콘 및 기본 도형 인식
- 필요에 따라 언어 팩을 동적으로 다운로드하여 기기 내 저장용량을 낮게 유지
인식기는 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 |
|
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) |