Delen via


Windows 7 필기 입력 인식 성능 향상

 

 

Microsoft는 Windows 3.0 용 펜 확장기능에 대해 15 년이상 필기 입력 인식 향상을 위해 노력해 왔습니다. Windows Vista 의 필기 입력 구성요소의 새로운 폴더 통합 및 광범위한 가용성에 의해, Windows PC 필기 입력이 한층 더 많이 사용되고 있습니다. 우리는 학교, 병원, 은행, 보험 등 여러가지 응용 프로그램에서 필기 입력 기능을 사용하고 있는 많은 사용자를 볼 수 있습니다. 이 자연스러운 상호작용 방식이 새로운 폴더 시나리오에서 사용되어 매우 기쁩니다. 물론, 우리가 지속적으로 해야 할 일은 인식 품질을 향상시키는 일과 세계의 많은 언어에서 인식 엔진을 사용할 수 있도록 하는 일입니다. 이 글에서는 Yvonne (User Interface Platform 팀의 프로그램 관리자)가 Windows 7의 새로운 폴더 인식 엔진 및 인식 향상 엔지니어링에 관한 분석을 제공합니다. --Steven

Tablet PC & Handwriting Recognition 팀의 프로그램 관리자인 Yvonne 입니다.
이 글은 Windows 7 용 필기 입력 인식을 향상하기 위한 실행한 과정을 소개하는 글입니다.

Microsoft 는 1990 년대 초부터 펜 기반의 컴퓨팅에 지속적으로 투자하여 Windows Vista 출시에서는 필기 입력 인식 엔진을 영어, 독일어, 프랑스어, 스페인어, 이탈리아어, 네델란드어, 브라질 포르투갈어, 중국어 (번자체와 간자체), 일본어 및 한국어를 포함한 12 개의 언어에서 사용할 수 있습니다. 사용자 여러분은 한층 더 많은 언어 지원과 왜 특정 언어가 아직 지원되지 않는지 자주 문의합니다. 우리는 Windows 7에서 노르웨이 스웨덴어, 핀란드어, 덴마크어, 러시아어 및 폴란드 등 새로운 폴더에서 많은 언어 인식 엔진을 출시하려고 계획하고 있습니다. 이 목록은 계속 추가될 것입니다.
그럼, 새로운 폴더 필기 입력 인식 엔진을 개발하기 위해서 무엇이 필요한지 고찰해 나가겠습니다.

Windows 는 속필 필기 입력도 인식합니다. 특별한 쓰기 방법을 배울 필요는 없습니다. 실제로 우리가 Windows 에 몇 천명의 사용자 필기 입력 스타일을 가르치고 있으며 (「트레이닝」), Windows 는 사용자가 그것을 사용할 때의 필기 입력 스타일에 대해 실제로 자주 학습하고 있습니다. 지난 16 년에 걸쳐서 우리는 필기 입력 인식용의 강력한 엔진을 개발해 왔습니다. 그리고, 보다 정확하고, 보다 빠르게 하기 위해서 이것들을 조정하여, 새로운 폴더 기능 (Vista 의 사용자에서 배우는 기능 등)을 계속 추가하고 있습니다. 새로운 언어를 지원하는 것은 새로운 폴더 사전을 추가하는 이상으로, 새로운 폴더 언어에는 큰 투자가 필요합니다. 우선, 네이티브 필기 입력의 수집에서 시작되어, 데이터를 분석하여, 트레이닝과 튜닝을 반복하여, 마지막으로 이 시스템이 사용자에게 가게되고, 사용자가 사용하면서 지속적으로 향상해 갈 것입니다.

데이터 수집

새로운 필기 입력 인식 엔진의 개발은 방대한 데이터 수집에서 시작했습니다. 우리는 전세계에서 몇 만 명의 작가가 쓴 텍스트의 몇 백만 개의 단어 및 문자를 수집했습니다.

데이터 수집을 설명하기 전에 자주 물어보는 질문에 대답하고 싶습니다.「새로운 사전에서 기존 인식 엔진을 사용할 수 없습니까?」이런 경우 하는의 이유는 각 언어에 특수 문자 또는 엑센트 부호가 있는 경우입니다. 그러나, 대부분의 이유는 다른 지역의 사용자는 (영국과 미국과 같은 언어를 가지는 나라들 사이에도) 각각 다른 쓰기 방법을 배웁니다. 사람들은 많이 비슷해 보이는 문자가 컴퓨터에서는 실제로 완전히 다른 경우가 있습니다. 따라서  우리는 문자 및 자형이 어떻게 쓰여져 있는지 정확하게 capture 하는 실제 데이터를 수집해야 했습니다.

확실하고 「정확한 데이터」를 수집해야 했기 때문에 데이터 수집에 많이 시간이 걸렸습니다. 인식 엔진을 개발하는 각각의 나라에서 컬렉션 실습을 신중하게 헸습니다.

실습으로 데이터 수집을 시작하기 전에 수집 도구를 구성하여, 문서를 준비하고, 수집 프로세스에서 지원자를 가이드하는 언어 스크립트를 컴파일 했습니다. 스크립트는 올바른 데이터, 다른 필기 입력 스타일의 데이터 및 특정 언어에 관련된 모든 문자, 숫자, 기호 및 부호를 모두 다루는 데이터가 확실히 수집되도록, 각각의 언어 네이티브 스피커들에 의해  신중하게 준비되었습니다. 스크립트는 컬렉션 실습에서 사용되기 전에 모두 교정되어 편집되었습니다.

도구와 스크립트가 준비된후 우리는 실습을 통해 필기 인식 샘플을 제공해줄 지원자를 모집했습니다. 신인 모집에서는 성별, 연령, 교육 등의 비율이 그 나라의 대다수를 맞도록 밸런스를 유지했습니다. 

실습 감독자는 지원자에게, 수집 도구에 표시된 텍스트를 지원자가 독자적인 필기 입력 스타일로 쓰도록 지시했습니다. 주의해야 할 중요한 것은 우리가 사용자의 자연스러운 쓰기 방법을 정확하게 나타내는 필기 인식 샘플을 수집행야 하는 것입니다. 따라서 우리는 「펜과 종이」와 같이 「펜과 태블릿」을 취급하도록, 지원자에게 당부했습니다.

이것은 수집 도구가 어떤 것인지 보여주는 스냅샷입니다.

Figure 1. Collection tool.

그림1: 수집 도구

 

수집 세션은 60  ~ 90 분으로, 지원자가 꽤 많은 양의 필기 입력 데이터를 피로를 느끼지 않고 제공할 수 있는 정도의 시간입니다. 그 후, 제공된 데이터는 앞으로의 사용에 대비하여 업로딩되어 Microsoft 데이터베이스에 보관됩니다. 필기 인식 샘플에는 스트로크의 순서와 시작점과 종점, 간격, 새로운 폴더 인식 엔진을 트레이닝하는데 꼭 필요 여러가지 특성에 대한 중요한 정보가 포함되어 있습니다.

실로 다양한 필기 인식 샘플이 있다는 것을 보여주기 위해, 데이터베이스 샘플을 몇가지를 보여드립니다.

Figure 2. Ink samples illustrating stroke order.

그림2: 다른 스트로크 순서를 보여주는 필기 인식 샘플

이 스크린 샷은 3 명의 다른 지원자가 어떻게 「black」이라는 단어를 손으로 썼는지 보여줍니다. 다른 색으로 필기 입력된 단어내에서의 정확한 스트로크 순서를 보여줍니다. 처음 2 명의 지원자는 「black」이라는 단어를 쓰기 위해서 5 개의 스트로크를 사용했습니다. 3 번째 지원자는 4 개의 스트로크로 쓰고 있습니다. 또한 문자 「ck」를 쓰기 위해서 3 번째 지원자는 하나의 스트로크를 사용하는 반면, 첫번째 지원자는 이 문자와 같은 조합을 위해 세개의 스트로크를 사용했다는 것에 주의해 주세요. 이 정보는 모두 인식 엔진의 트레이닝용으로 사용됩니다.

신경망과 언어 모델

일단 충분한 양의 필기 입력 데이터를 수집하여, 우리는 데이터를 개발 팀이 사용하는 트레이닝 집합과 테스트 팀이 사용하는 「블라인드」집합에 분할합니다. 그리고 트레이닝 집합은 신경망 네트워크를 트레이닝하기 위해서 사용됩니다. 그것은 인식 프로세스 결과를 크게 좌우합니다. 자연스럽게 쓰여진 데이터는 고품질인식 엔진 개발에 대해 꼭 필요하며, 인식 엔진은 그 트레이닝 집합 없이는 조금도 향상되지 않습니다. 신경망에 의해 많은 고품질의 데이터 공급하는 만큼, 우리는 한층 더 복잡한 필기체의 필기 입력을 처리할 수 있습니다.

신경망은 필기체 스크립트가 접속하고 있는 문자를 처리할 수 있는 Time-Delay Neural Network (TDNN)입니다. TDNN 는 필기 입력의 각 세그먼트 문자, 숫자 및 기호의 가능성을 계산하는 경우,스트로크와 이후에 계속되는 스트로크의 각 필기 입력 세그먼트를 고려합니다. TDNN 결과는 도움이 되지만, 정리가 없는 필기 입력의 경우는 충분하지는 않습니다. 인간에 의한 인식의 정확도가 동일한 정도가 되기 위해서 우리는 문자 형태를 넘는 정보를 사용해야 합니다. 이것을 언어 모델의 문맥이라고 부릅니다. 이 언어 모델 문맥의 대부분은 사전 형식이 되어 있습니다. 그것은 임의의 언어 용무의 유효한 처리 단어 목록입니다. 많은 언어의 경우, 이것은 spelling checker가 사용하는 것과 같은 사전입니다. TDNN 와 사전은 긴밀히 공동으로 기능하고, 임의의 입력에 대해서 단어의 확률을 계산하고 가장 확률의 높은 결과를 출력합니다.

신경망 트레이닝은 시간이 걸리는 복잡한 프로세스입니다. 인식의 정확성 향상이라는 최종 목표를 위해서 우리는 다른 언어에서 데이터를 차용하여 트레이닝 데이터를 늘리려면 실험합니다. 다른 언어의 문자 차용은 언제나 성공적 이지는 않습니다. 위에서 말한 것처럼, 스트로크 순서 문자 형태, 필기 입력 스타일 및 문자 크기는 나라 마다 다르고, TDNN  성능에 마이너스의 영향을 가져올 가능성이 있습니다. 그 때문에 인식의 정확성을 높이는 「올바른 공식」을 찾아내기 전에 자주 트레이닝, 재트레이닝, 그리고 튜닝을 몇 번이나 반복해야 합니다.

새로운 인식 엔진을 구축할 때, 올바를 방향을 향하고 있는지 어떻게 알 수 있을까요? 이것은 테스트 팀이나 네이티브 스피커가 우리에게 묻는 중요한 질문입니다. 테스트 팀은 인식 엔진의 품질을 반영하는 인식의 정확도 메트릭 생성을 담당하고 있습니다. 정확도 메트릭은 개발에서 트레이닝에 사용하지 않았던 수집 데이터인 블라인드 테스트 집합에 근거합니다. 정확도 메트릭에 추가하여 피드백 및 더 많은 입력을 얻기 위해서 사내 및 세계적인 자회사의 네이티브 스피커와 협력하고 있습니다

개인 설정에 의한 인식 엔진 향상

앞 단락에서는 우리가 다양한 다른 필기 입력 스타일을 처리할 수 있는 고품질 인식 엔진을 개발하는 방법을 소개했습니다. 그러나, 각 사용자가 자신의 독특한 필기 입력 스타일에 대해 인식 엔진을 트레이닝할 수 있으면 한층 더 향상됩니다. 개인의 필기 입력 스타일에 대해 인식 엔진에 가르치기 위한 트레이닝은 Microsoft 가 출시 전에 실시하는 것과 같은 트레이닝입니다. 유일한 차이점은 특정 사용자 (몇 천명의 사용자 대신)로 부터 독특한 트레이닝 데이터를 수집합니다. 우리는 이 프로세스를 「개인 설정」이라 부릅니다.

Figure 3: Personalization Wizard (Sentence module).

그림 3: 개인 설정 마법사 (문장 모듈)

개인 설정 마법사의 스크린 샷과 같이, 사용자는 필기 인식 샘플을 제공하기 위해 요청되는 문장을 쓰도록 지시됩니다. 사용자가 개인 설정 프로세스에서 보다 많은 데이터를 제공하는 만큼, 인식 엔진은 향상됩니다. 지정된 문장에 근거한 필기 인식 샘플의 제공에 추가하여, 사용자는 트레이닝에 사용되는 특정 인식 오류, 자체 및 문자를 손으로 쓸 수 있습니다. 개인 설정 기능은 복잡하여, 사용자가 최적으로 인식 엔진을 튜닝할 수 있도록 다양한 모듈을 제공합니다. 개인 설정이 모든 Vista 의 언어 및 모든 새로운 폴더 Windows 7 의 언어에서 이용할 수 있습니다. 인식의 정확도를 향상시키는 이 기능을 사용하도록 꼭 권장합니다.

우리는 지속적으로 인식 엔진을 향상시키기 위해 노력하고 있습니다. 이것은 온라인 원격 측정 (익명, 사적, 임의, 옵트인)을 통해 사용자의 피드백을 받는 것을 의미합니다. Windows Vista에서 「필기 입력 인식 오류 보고」라는 새로운 폴더 기능을 출시했습니다. 이것에 의해, 사용자는 인식 엔진이 올바르게 인식하지 못했던 필기 인식 샘플을 제출할 수 있습니다. 사용자가 Tablet 입력 패널 (TIP)로 단어를 수정한 후에 우리 팀에 잘못 인식된 필기 입력을 수정한 것과 함께 송신할 수 있는 메뉴가 제공됩니다.

다음 스크린 샷은 오류 보고 도구가 어떠한 것인지 보여줍니다.

Figure 4: With “Report Handwriting Recognition Errors” people can choose which of the misrecognized ink samples they want to submit.

그림4: 「필기 입력 인식 오류 보고」에서 사용자는 잘못 인식된 잉크 샘플의 어디를 제출할지 선택할 수 있습니다.

우리는 일주일에 대략 2,000 건의 오류 보고를 받고 있습니다. 오류 보고를 분석하여 차세대 인식 엔진 향상을 위해 사용하기 위해,데이터베이스에 보관합니다. 실제 데이터는 우리의 인식 엔진의 결점을 명확하게 말해주는 유일한 데이터이므로, 많은 도움이 됩니다.

우리는 모든 오류 보고를 귀중하게 생각하며, 진심으로 감사드립니다. 현재와 미래의 인식 엔진 기능을 향상시키기 위해서 사용할 수 있도록, 계속하여 많은 피드백을 보내주시길 바랍니다.  

Yvonne.

 

Published Thursday, March 05, 2009 7:35 AM by e7blog

Filed under: input