DHWR APIs Document

Introduction

본 문서는 SELVAS AI의 필기인식 솔루션인 DHWR(DioPen HandWriting Recognition)의 API 가이드이다.
DHWR은 손으로 필기한 글씨를 인식하여 Digital Text로 변경해 주는 솔루션이다.
표준 C언어 기반의 라이브러리로 Android, iOS, Tizen, Windows, Linux 등의 플랫폼을 지원하며, 그 외 플랫폼 및 Non-OS는 커스터마이징을 통해 지원이 가능하다.
전 세계 73개 언어의 필기인식이 가능하며, 필기 방식에 따라 다음과 같이 인식 언어를 제공한다.

  • 낱자 쓰기 인식 : 낱자 한 글자만 쓰고 인식하는 방식 (73개 언어)
  • 정자 쓰기 인식 : 낱자를 연속해서 필기하고 인식하는 방식 (54개 언어)
  • 흘려 쓰기 인식 : 여러 낱자 및 단어를 연속된 획으로 이어쓴 후 인식하는 방식 (50개 언어)
  • 겹쳐 쓰기 인식 : 협소한 필기 영역에 겹쳐서 쓴 글자를 인식하는 방식 (9개 언어)

Setting

Touch Event

필기 입력기 구현을 위해서는 다음과 같은 터치 이벤트 사양이 요구된다.

  • Touch Down : 펜을 터치 디바이스상에 처음 대는 순간 발생하는 이벤트.
  • Touch Move : 펜을 터치 디바이스에서 떼지 않은 상태로 있을 경우 발생하는 이벤트.
  • Touch Up : 펜을 터치 디바이스 상에서 떼는 순간 발생하는 이벤트. Touch Down이 발생한 경우라면 항상 Touch Up이 발생하여야 한다. 즉, 사용자가 필기 도중 터치 패드 영역을 벗어난 경우에도 드라이버에서는 Touch Up 이벤트를 발생 시켜야 한다.

Sampling Rate

'Sampling Rate’란 터치 디바이스에서 터치 이벤트를 체크하는 시간(or 양)을 말한다.
필기 입력기 적용을 위해서는 보통 10~40mSec(초당 25~100개의 터치이벤트) 정도로 조정한다.
유의할 점은 Sampling Rate가 40mSec를 넘게 되면 필기한 모양이 자연스럽지 못하고 인식률도 떨어지게 된다. 대개의 경우 10~20mSec를 권장한다.

Delay time

인식 대기 시간은 필기 입력이 끝났다고 판단하는데 걸리는 시간이다.
즉, 터치 디바이스에서 펜을 뗀 후 일정 시간 동안 필기 입력이 없으면 사용자의 입력이 끝났다고 판단하고 인식 엔진을 호출하게 된다.
인식 대기 시간은 설정 메뉴를 두어 사용자로 하여 적당한 값을 선택할 수 있도록 할 수도 있으며, 일반적으로 300~500mSec의 값을 사용한다.
인식 대상 문자를 지정하는 경우 대상 문자의 종류에 따라 차등 적용할 수도 있다.(예, 한글 - 400mSec, 영숫자 - 200mSec)
물론, 인식 대기 시간을 활용하지 않고 특정 버튼을 두어 시간에 관계없이 버튼을 클릭하면 바로 인식 엔진을 호출하도록 구현할 수도 있다.

Porting

Android 플랫폼에서 Java로 필기인식을 사용하려면, 포팅에 필요한 파일들은 다음과 같다.
그 외 플랫폼이나 다른 언어로 개발할 경우, 파일명이나 확장자는 다를 수 있다.

  • DHWR.java : 필기 인식에 사용되는 API가 정의되어 있다.
  • libdhwr.so, libdhwr-base.so, libdhwr-core.so : 필기인식 엔진 Main 라이브러리
  • llibdhwr-xxxx.so : 동적으로 로드 되는 Sub 라이브러리, 파일의 path를 SetExternalLibraryPath()의 파라미터로 설정해야 한다.
  • xx_XX.hdb : 각 언어의 인식을 위한 리소스 파일, 파일의 path를 SetExternalResourcePath()의 파라미터로 설정해야 한다.
  • dhwr.key : License를 위한 key 파일로써, key파일이 없으면 필기인식 엔진은 동작하지 않는다. 파일명을 포함한 path를 Create()의 파라미터로 설정해야 한다

Link

SELVAS AI http://www.selvasai.com/