ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자료수집] 알아봅시다 필기인식 기술
    정리필요2 2007. 11. 22. 20:22
    [알아봅시다] 필기인식 기술
    터치스크린에 직접 문자 입력

    비뚤어진 글씨까지 보정 처리
    차세대 입력방식으로 '각광'
    PCㆍ휴대폰ㆍMP3P 등으로 확산
     











































    최근 들어 터치스크린을 장착한 IT제품들이 늘어나면서 사용자가 직접 전자펜을 터치스크린에 입력하는 필기인식 기술이 늘어나고 있습니다.

    초기에는 팜, 포켓PC 등 PDA를 중심으로 필기인식 기술이 사용됐지만 현재는 PC, 휴대전화, MP3플레이어에도 사용되고 있습니다.

    ◇온라인과 오프라인 필기인식=먼저 필기 인식이라고 하면 터치스크린이나 디지타이저(digitizer)와 같은 장치를 통해 필기되는 것을 즉각적으로 인식하는 온라인(Online) 필기 인식과, 스캐너나 카메라를 이용하여 문자가 쓰여진 문서를 입력받아 인식하는 오프라인(Offline) 필기 인식 등으로 구분됩니다. 물론 온라인과 오프라인 필기 인식은 입력 장치가 다르므로 인식기에 입력되는 데이터에도 차이가 있습니다. 온라인에서는 터치 센서(sensor)의 궤적에 따른 (x,y) 좌표가 시간 순서대로 들어오고, 오프라인에서는 스캐너나 카메라로부터 이차원 이미지가 입력됩니다. 입력 데이터의 특성이 다르므로 이에 따른 인식 엔진의 처리 방식도 서로 상이해지게 됩니다.

    온라인 필기 인식 프로그램은 터치 센서에 필기되는 순서에 따라 들어오는 (x,y)좌표 열을 가지고 어떤 문자인지를 판정합니다. 이 좌표 열은 이미지와는 달리 필기 순서 정보가 포함되어 있고 정보량도 적어 인식하는 데 필요한 계산 량도 일반적으로 작은 편입니다. 이러한 입력 데이터에서 불필요한 변형을 줄이는 작업을 거쳐 이미 저장된 모델 패턴(model pattern)과 비교하여 가장 근접한 것을 인식된 결과로 내어놓는 것입니다.

    필기인식은 각 기술마다 조금씩 차이가 있지만 국내업체 디오텍 `디오펜' 기술을 중심으로 알아보겠습니다.

    ◇실제 필기인식의 과정은=디오펜 필기인식 과정은 크게 전처리(preprocessing), 대분류(pre-classification), 상세분류(matching), 그리고 후처리(postprocessing)의 네 단계로 나눌 수 있습니다.



    전처리 단계에서는 필기의 다양한 변형을 가능한 한 줄여서 대분류와 상세분류에서 정확도를 높이기 위한 처리를 합니다. 사용자에 따라서 또한 터치 센서에 따라서 동일한 글자를 필기하더라도 입력되는 데이터가 조금씩 달라집니다. 사용자마다 필기하는 행태가 다르기 때문에 발생할 수 있는 변형으로는 `삐침', `필기 크기(size)', `필기 속도(speed)', 그리고 `필기 방향(rotation)'이 있습니다.

    이러한 변형을 판단하여 글자의 기울기를 보정하는 처리를 합니다. 이와 같은 필기하는 사람에 따른 문자의 변화들을 보정하여 대분류나 상세분류에 사용할 특징을 추출합니다.

    전체적인 필기 인식 알고리즘(algorithm)이 구성되면 인식 대상의 모델 라이브러리를 만드는 단계가 필요합니다. 기준이 되는 모델들을 세워 놓고 그와 비슷한 필기입력이 만들어졌을 때 이와 비교해서 정확한 문자를 입력하는 것입니다. 각각 필기 문자를 인식하기 위해서는 각 글자에 대한 모델이 있어야 합니다. 이 모델들이 있어야 상세분류 단계에서 모델과 매칭을 해서 거리가 가장 가까운 모델의 문자 코드가 인식된 결과로 나오게 됩니다. 숫자 `8'의 경우 사람마다 쓰는 방식이 다르기 때문에 여러 가지 모델이 필요합니다. 많은 사람들의 필기 데이터를 수집할수록 필기한 글자를 좀 더 잘 인식하는 데 도움이 됩니다.

    대분류는 모델 라이브러리에 포함된 모델의 수가 많아 상세분류에 소요되는 시간을 줄이는 역할을 하는 단계로서 1~2 가지의 간단한 특징만을 이용하여 상세분류 단계로 넘어갈 지 아니면 그냥 건너 뛸 지를 결정하는 것입니다.

    대분류에 사용하는 특징으로는 획의 수가 될 수 있고, 획의 시작점이나 끝점의 위치도 사용될 수 있습니다. 대분류는 과거 CPU의 속도가 느릴 때는 매우 절실한 단계이긴 했지만, 최근에는 임베디드 시스템(embedded system)이라고 해도 CPU 속도가 빨라져서 굳이 할 필요는 없습니다.

    상세 분류는 앞에서 훈련된 모델 라이브러리에 있는 모델의 특징 값과 입력된 필기 데이터의 특징 값의 거리를 구하는 단계입니다. 여러 가지 알고리즘(Linear Matching, Elastic Matching, Neural Network, Hidden Markov Model)을 적용해 사용자가 어떤 글씨를 썼는지 파악합니다.

    마지막으로 `후처리 단계'는 인식된 결과를 가지고 사전(dictionary)에 존재하는 단어인지 확인하는 방식으로 인식 결과를 수정하게 되는데, 한글의 경우 보통 이 단계를 사용하지 않고 영어로 쓸 때 많이 사용됩니다.

    이런 복잡한 과정을 통해서 사용자는 버튼이 아니라 자신이 직접 필기를 해서 명령어나 메모를 입력할 수 있습니다. 물론 아직까지 문자인식이 완벽하게 구현되지는 않지만 계속해서 발전이 되고 있으며, 차세대 입력방식으로 각광받고 있기 때문에 이를 적용한 제품들은 앞으로 계속해서 늘어날 것입니다.

    이형근기자 bass007@
Designed by Tistory.