ABBYY의 기술로 버마어를 읽다! 



안녕하세요, 레티아 이주임입니다.

OCR 문자인식 기술에 조금이라도 관심있으신 분들이라면,굉장히 흥미로울만한 이야기를 들고 왔습니다 :)


여러분 도대체 ABBYY 파인리더는 어떻게 '이미지' 를 '텍스트' 로 인식하는 지 궁금하셨죠? 


이미지의 텍스트를 읽어내기 위해 어떤 개발 과정이 필요한 지, 아래 내용을 보시면 좀 더 쉽게 이해가 되실거에요! ABBYY의 새로운 버마어 인식 프로젝트를 소개합니다!  


 

( *참고 : ABBYY 파인리더는 현재 버마어 인식을 지원하지 않습니다. 

아래 내용은 ABBYY의 버마어 OCR 인식 프로젝트를 소개하는 것이며 향후 OCR패키지프로그램에서도 새로운 인식언어가 추가될 수 있습니다. ) 






동남아시아에 위치한 미얀마 연방공화국은 이전에 버마로 알려져있던 나라입니다. 버마는 1962년부터 2010년까지 군사 정권에 의해 통치되었지만, 지난 5년 간은 다른 나라들과 무역, 문화 링크를 구축하면서 외부 세계에 개발되었습니다. 



버마언어는 많은 방언을 포함하지만, 공식 문헌과 인쇄 매체에 사용되는 코어 알파벳을 공유합니다. 이 공유 알파벳은 33개의 자음과 12 보조 문자를 가지고 있습니다. 지역 방언들은 이외에 다른 글자들도 사용하며, 전체 글자의 수는 코어 알파벳의 약 3배입니다. 



다행히 ABBYY의 작업은 가장 대중적인 미얀마의 세가지 폰트를 최소 10포인트 이상의 크기로 인쇄된 텍스트를 인쇄 하는 것이었습니다. 텍스트 이미지들은 최소 300dpi 이상되는 그레이(회색조), 흑백 또는 칼라 이미지를 선택하였습니다. 





 


위 그림은 전형적인 버마어 텍스트의 모습입니다! 


이 프로젝트의 예비 단계에서 ABBYY는 OCR 정확도 75% , 최소 샘플에 대한 정확도 94% 의 인식률을 달성할 수 있었습니다. 


버마 텍스트는 각 자음이 기본 모음의 소리를 전달하는 소위 "알파실너버리(alphasyllabray)" 입니다. 다른 모음 소리는 특수한 문자들과 자음의 위,아래,전,후 또는 주위에 있는 발음 구별 부호를 사용하여 표현합니다. 흥미로운 사실은, 과거의 텍스트들이 야자수 잎에 씌어졌고 이것들은 직선 자국에 의해 쉽게 손상되기 때문에 대부분의 글자들은 '반원형' 으로 이루어져 있습니다. 


또한 버마어는 '톤' 이 있는 언어입니다. 높은 톤, 낮은 톤, 끽 소리가 나는 주요 세가지 톤과 억지모음 소리와 떨어지는 두 가지의 보조 톤이 있습니다.





버마어의 톤들도 글을 쓸 때 표현되어야 하기 때문에 버마어 텍스트들은 두가지의 발음기호를 주 글자의 위,아래에 효과적으로 배치하고 있습니다. 이런 두 계층 발음 기호 체계는 OCR 소프트웨어에 심각한 문제를 야기합니다! 문자의 일부 조합은 새로운 캐릭터를 형성하기 위해 함께 융합할 수 있어 상황은 더 복잡해집니다. 



OCR 작업에 대해 가장 대중적인 방식으로 설명하자면, OCR은 다음과 같은 처리를 합니다.  


OCR 소프트웨어가 이미지를 수신하면 먼저 이미지를 흑백으로 변화하고 왜곡을 보정합니다. 다음으로 문서에서 '텍스트' '그림' '표' 등 서로 다른 종류들에 대한 영역을 검출합니다. '텍스트' 영역은 다시 라인으로 나뉘어 지고, 라인은 다시 단어로, 단어는 글자 단위로 쪼개어집니다. 각 글자들이 인식된 후 문서의 아래 위로 재조립됩니다.



이미지 프로세싱 및 인식 영역 검출은 버마어도 다른 대부분의 언어와 동일하게 처리가 되지만, 버마어의 라인 검출은 다양한 발음기호 때문에 짧은 라인을 식별할 수 있도록 OCR 프로그램을 훈련하는 것이 어려워, 까다로운 작업일 수 밖에 없습니다. 



ABBYY의 알고리즘은 텍스트 라인을 특정 짓는 몇 가지 특성들을 사용하며, 이 특성 중 하나가 바로 '가상의' 베이스라인입니다. 

이 베이스 라인 위에 모든 다른 특성값들이 존재하게 됩니다. OCR 프로그램은 개별 문자에 대한 설득력 있는 가설을 생성하기 위해 베이스 라인의 위치를 알아야 합니다. 






OCR 프로그램은 베이스 라인들을 검출하기 위해 통계 데이터를 사용합니다.

필요한 통계를 수집하기 위해 문자들을 구성하는 검은 점으로 생성되는 히스토그램의 피크들을 찾습니다. 유럽어 알파벳에 대한 히스토그램에는, 베이스 라인 및 소문자의 높이에 대응하는 세 개의 선명하게 보이는 피크가 있습니다. 


그러나 버마어에는, 라인의 정상적인 폭 밖에 있는 여러가지 발음기호들 대문에 히스토그램상에 통계적으로 의미있는 추가적인 피크들이 생깁니다. 이런 이유로, 유럽어 텍스트를 대상으로 만들어진 ABBYY의 알고리즘은 버마어 텍스트 라인의 중요한 파라미터를 식별하는 데 실패할 수 밖에 없었습니다. 






위 그림을 보면 OCR 프로그램이 제대로 처음 두 개의 베이스 라인을 검출하지만, 세번째는 검출하는 데 실패한 것을 보실 수 있습니다. 



버마어 텍스트를 정상적으로 인식하려면, 라인 검출 알고리즘의 수정이 필요했습니다. 

라인이 검출되면, 단어와 단어 사이, 글자와 글자 사이의 간격을 찾고 시작할 수 있습니다! 이제 수평 히스토그램을 사용하여 큰 간격은 단어 사이의 공간으로, 작은 간격은 글자 사이의 공백으로 해석할 수 있습니다. 버마어 텍스트에서 간격을 검출하는것은 문제가 거의 없었습니다. 반면 타이어(Thai language)는 거의 간격이 없기 때문에 문제가 있기도 했습니다. (ABBYY의 OCR 기술은 태국어 또한 인식 가능합니다!) 


라인들이 작은 단위로 분리되면 이것들은 다시 독립적은 문자들로 구분합니다. 다시 히스토그램에서 글자 간격에 대응하는 피크들을 찾습니다. 간격들 중 일부는 확실하게 찾아지는 반면, 다른 것들은 여러 시행 착오에 의해 검증되어야 합니다. 




위 그림은 영어 단어에 대한 히스토그램입니다! 버마어 문서의 무수히 많은 반원형 글자들은 간격 검출이 어렵게 만드는 'False' 피크들을 많이 만들지만, 버마어에도 히스토그램 방식은 잘 동작합니다. :) 






이제 각 개별 문자들, 즉 그래핌(grapheme)을 인식합니다. 그래핌은 한 문자의 그래픽적인 표현이지만 유럽어에서 1대1로 대응되지는 않습니다. 한 그래핌이 한 개 이상의 글자에 대응이 될 수도 있고, (예를 들어 대문자 'C' 와 소문자 'c' 는 하나의 그래핌입니다.) 한 글자가 여러 그래핌으로 표현될 수도 있습니다. (예를 들어 'a'는 서로 다른 폰트의 그래핌으로 표현될 수 있습니다)





그래핌의 표준 목록은 없습니다. 

그래서 ABBYY는 각 그래핌에 대한 모든 가능한 글자들을 구체화할 수 있도록 수동으로 만들어 냅니다. 그래핌은 단어 후보가 생성된 이후의 단계에서 문자로 변환됩니다! 







앞서 언급한 바와 같이 버마어 텍스트에는 많은 발음기호 문자들이 있고, 그 중 많은 글자가 주요 글자와 융합되어 새로운 글자를 만들 수 있습니다.  발음기호 표시가 글자와 물리적으로 분리된 경우, 먼저 문자를 인식하고 다음으로 발음 기호를, 그 다음으로 인식결과를 결합하여 그래핌을 얻습니다. 발음기호 표시와 글자가 개별 단위를 형성한다면 전체를 인식합니다. 


융합 글자들은 버마어 문자 체계에서 아주 흔해서 ABBYY 는 3,500개의 새로운 그래핌을 인식하도록 OCR 기술을 훈련해야만 했습니다! 


그래핌을 인식한 후 ABBYY는 그것을 유니코드 문자들로 번역하고 단어들을 만들어야 합니다. 이 과정은 유럽어에서는 아주 간단해서 한 글자씩 인식을 해서 유니코드로 변경하면 됩니다. 그러나 버마어의 융합 글자들은 특별한 처리를 해줘야 합니다. 



Windows가 글자들을 합하기 위해 버마어 글자들이 키보드로부터 입력되어야 하는 특정한 순서가 있습니다. 어떤 글자들은 Windows가 음절의 시작 부분에 입력할 수 있도록 다른 모든 글자들이 타이핑 된 후에 타이핑되어야 합니다. 




예를 들어 텍스트 편집기에서 이 단어를 입력할 때, 사용자는 다음의 순서로 문자를 입력해야 합니다. 






ABBYY는 이런 타이핑 룰을 따르기 위해서 특별한 보정 모듈을 추가했습니다. 모든 텍스트가 인식되면 모듈이 다시 인식 결과를 읽어서 글자 순서가 맞는지를 검사합니다. 버마어는 잘 구조화된 언어이며, 이러한 검사를 수행할 수 있는 충분한 형식적인 규칙이 있습니다. 


단히 버마어 텍스트를 OCR로 인식할 때 ABBYY의 OCR 기술이 직면한 주요 문제들을 간단하게 설명했습니다. ABBYY는 이 프로젝트의 97% 인식 정확도를 만들어내면서 완료하는데 4개월이 걸렸습니다 (고객의 요구사항은 최소 94% 의 정확도) 향후 더 많은 버마어 폰트들이 추가 될 예정입니다! 




 





레티아 블로그를 방문해주셔서 감사합니다! 레티아 블로그에서만 보실 수 있는 다양한 OCR 이야기, 앞으로도 많은 관심부탁 드립니다. 



더 많은 OCR 솔루션이 궁금하시다면? 


> 레티아 홈페이지 바로가기 


> 세계 최고의 OCR 프로그램 'ABBYY 파인리더' 무료 시험판 사용해보기 





블로그 이미지

OCR전문기업 레티아

OCR프로그램, PDF변환프로그램 리뷰를 포함하여 ABBYY의 OCR엔진, 모바일, 데이터캡처 솔루션, 서버형 솔루션, 명함인식 솔루션 등 다양한 정보를 제공합니다.

,