>

스마트폰으로 카드결제를 할 때 카메라로 카드를 인식하면 자동으로 카드번호가 입력될 수 있습니다. 또한 주차장에 들어서면 차량 번호가 자동으로 인식되어 주차시간과 주차요금이 부과되는 경우를 경험해 보셨을 겁니다. 여기에 사용된 기술이 “OCR”입니다. 화상 속의 문자를 컴퓨터가 인식할 수 있는 디지털 문자로 변환하는 기술로, 최근에는 다양한 서비스와 결합하여 자주 사용되고 있습니다. 일상에 스며든 기술, ‘OCR’에 대해 함께 알아보겠습니다.

>

“OCR”란 “Optimal Character Recognition”의 줄임말로 광학 문자 인식 기술이라고도 불립니다. 사람이 직접 쓰거나 이미지 속에 있는 문자를 이미지 스캔으로 얻은 뒤 이를 컴퓨터가 인식할 수 있도록 문자를 디지털화하는 기술입니다. 문자를 디지털화함으로써 인쇄물을 영구히 보관하고 내용을 검색할 수 있으며 일상생활과 업무처리를 효율적으로 하기 위해 주변 각지에서 사용됩니다.

>

이런 ‘OCR’은 생각보다 오랜 역사를 지니고 있습니다. 1928년에 독일에서 G. Taushek가 특허로 등록한 pattern matching 기법이 최초의 OCR 기술이라고 할 수 있습니다. “pattern matching” 기법은 입력되는 문자를 이미 저장해 둔 표준 pattern 문자와 비교하여 가장 유사한 것을 해당 문자로 선정하는 기법입니다. 연구소나 기업에서 대형 컴퓨터로 행해지고 있던 이 기술이, 친밀하게 보급된 것은 벌써 30년 이상입니다. 국내에는 90년대 초 한글 문자인식 프로그램이 처음 소개되었고, 모바일과 의 처리능력 강화로 인해 사람들이 모르게 자주 접하고 사용하는 기술이 되었습니다.

전통적인 OCR은 텍스트 라인을 찾는 모듈, 문자를 나누는 모듈 등 세분화된 다양한 모듈에서 동작하고 문자를 구분하는 기준이 되는 특징(feature)을 사람이 직접 등록해야 했습니다. 게다가 고품질의 이미지로만 제한적으로 작동할 뿐, 손글씨나 필기체에 대한 인식률은 상대적으로 낮다는 단점이 있었습니다.

명함이나 서류 등 문서 이미지의 문자만을 인식하던 과거와 달리, 현재의 “OCR”는 사진이나 영상의 문자까지 인식하는 기술로 발전했습니다. 오늘날 컴퓨터 비전(Computer Vision)의 기술적 발전으로 딥러닝 기반의 알고리즘을 활용해 사람이 직접 문자를 등록하는 대신 컴퓨터가 직접 대량의 데이터 학습을 통해 이미지를 통해 텍스트를 인식하는 규칙(feature)을 스스로 만들어 내게 되었습니다. 이에 따라 인식률과 정확도가 이전보다 향상되어 “OCR”의 인식 오류를 보완하고 있으며, “OCR”의 단점을 보완하기 위한 알고리즘은 현재에도 지속적으로 개발되어 점차 발전하는 추세입니다.

그렇다면, 어떠한 방식으로 “OCR”가 문자를 인식하는 것일까요? 오늘의 딥러닝 기반의 OCR의 원리를 살펴보겠습니다. 1. 전처리(pre-processing) 컴퓨터는 인간처럼 직감적으로 문자를 구별하지 못하고 이미지로 색 분석을 통해 비슷한 밝기를 가진 픽셀을 덩어리처럼 인식하기 때문에 색의 차이를 명확히 하고 인식률을 높여야 효과적인 문자 인식이 가능합니다. 전처리 단계는 이미지로부터 텍스트인 영역을 컴퓨터가 보다 쉽게 인식할 수 있도록 이미지를 보정하는 역할을 합니다.이전 처리 과정에 사용되는 다양한 기술이 있는데, 대표적인 기술은 컬러 이미지를 먼저 회색조로 변환하고 픽셀 값을 분석하여 밝기와 명암 대비를 크게 한 후 픽셀 값을 두 범위로 나누어 0과 1로 분류하는 2진화 작업을 하는 것입니다. 그 외에도 얼룩 제거, 라인 제거, 레이아웃 분석 등 여러 기술이 사용됩니다.

>

2. 문자검출(text detection) 딥러닝 시스템을 이용하여 전체 이미지에서 텍스트인 영역을 골라내는 작업을 하는 단계입니다. 아래 사진처럼 텍스트 영역과 그 영역의 회전 각도를 구하고 텍스트를 수평 형태로 만듭니다. 이렇게 텍스트 영역을 수평으로 만들면 다음 단계에서 컴퓨터가 더 정확하게 글자를 인식할 수 있습니다.

>

3. 문자인식(text recognition)의 전처리와 문자검출 단계에서 이미지에서 문자영역을 골라냈다면 이제부터는 그 문자가 어떤 글자인지 알아봐야 합니다.아래 그림과 같이 먼저 텍스트 영역의 문자를 하나의 문자로 각각 인식합니다. 그 다음, 딥러닝 시스템의 역할이 중요합니다. 문자를 구별하는 다양한 특징들을 많은 양의 데이터에서 컴퓨터가 학습하고 그 문자가 어떤 글자인지 알아봅니다.

>

4. 후처리(post-processing)의 마지막에 후처리 단계는 출력된 텍스트의 내용적인 부분을 체크하고, 부자연스러운 단어나 문자가 포함되면 이를 고침으로써 정확도를 더 향상시키는 단계입니다. 예를 들어 ‘헛길동’이라는 단어는 문맥상 이름임을 알 수 있고, ‘헛’이라는 성은 존재하지 않기 때문에 ‘홍길동’으로 수정됩니다.

이러한 “OCR”는 생활 도처에 침투해 사람들을 편안하게 합니다.앞서 언급한 스마트폰의 신용카드 인식 서비스부터 공항여권 자동 인식기까지 저희가 알게 모르게 다양한 방면에서 사용되고 있습니다.

>

미국의 기업 Kurzweil Computer Products는 시각장애인들이 독서를 할 수 있도록 하는 프로그램을 개발했습니다. 종이책을 OCR로 인식해 컴퓨터에서 음성으로 출력되도록 만든 프로그램이었어요. 그 밖에도, 과속 단속 카메라가 차량 번호를 인식할 때나, 폰트를 제작할 때, 대량의 문서로부터 정보를 추출할 때 등, “OCR”는, 신변의 생활이나 업무의 편리성을 높이고 있습니다.

>

‘OCR’은 다양한 알고리즘을 통해 보다 정확한 기술로 발전하고 있으며, 최근에는 딥러닝과의 접목을 통해 적은 오차율과 높은 인식률로 문자를 인식하게 되었습니다. 이러한 추세로 인해 OCR은 앞으로 더욱 발전하고 다양한 부분에 적용되어 우리의 생활을 더욱 편리하게 할 수 있을 것으로 예상됩니다. ‘OCR’을 통한 보다 편리한 세상, 함께 기대해 볼까요? ​

>

태그: