Ⅴ. 감각과 인지 – 2. 문자인식이란 무엇인가요?

인간의 소통 도구 중 가장 큰 비율을 차지하는 것은 바로 언어 입니다. 그 중에서도 시간과 공간을 초월하여 전해질 수 있는 것은 바로 “문자”입니다. 인간이 출현하고 난 뒤 아주 긴 시간동안 인간은 문자를 통해 엄청나게 많은 지식을 축적해왔습니다. 만약 인공지능이 이러한 지식들을 다 받아들일 수 있다면 얼마나 더 똑똑해질 수 있을까요. 또 현재 의사소통이 이루어지고 있는 문자들을 인식할 수 있다면 우리의 삶을 얼마나 더 편하게 만들어줄 수 있을까요?

2. 문자 인식

가. 문자 인식

 문자인식이란 사용자가 손으로 쓰거나 인쇄된 문자를 컴퓨터가 인식하여 어떤 문자인지를 판별하고 인식하는 기술을 말합니다. 문자인식 기술은 필기체 인식, 우편번호 인식 등 다양한 분야에서 활용되고 있습니다. 
출처: https://slidesplayer.org/slide/15987381/
  <문자인식의 처리과정>

전처리

배경과 문자를 구분

세그먼테이션

개별 문자의 정보획득

특징 추출

문자를 구별할 수 있는 특징과 필터를 새롭게 정의

분류

개별 문자를 분류

(성상하, 딥러닝을 활용한 이미지 내 한글 텍스트 인식 알고리즘 개선에 관한 연구)

나. 숫자 인식

숫자의 자동인식에는 다양한 방법이 있습니다. 숫자를 인식하는 방법에는 원형정합방법, 형태적 분석방법, 특징기반방법, 통계적 해석방법 등 여러 접근방법이 있습니다.

원형정합방법은 입력된 글자과 템플릿을 비교하여 가장 유사한 숫자로 인식하는 방법입니다. 각각의 픽셀을 특징으로 하기 때문에 간단하게 숫자를 인식할 수 있으며 패턴의 회전과 크기의 변화가 적은 경우 효과적입니다. 그림1처럼 입력된 글자를 템플릿과 비교하여 불일치하는 픽셀이 가장 적은 템플릿을 결과로 인식합니다. 

(정민철, 가중원형정합을 이용한 인쇄체 숫자 인식)

입력글자의 형태가 달라지거나 잡음이 있을 경우 인식율이 낮아집니다.

이 외에도 숫자가 갖는 구조적 특징을 이용한 숫자 판독 방법을 활용해 숫자를 판독할 수 있습니다. 숫자의 위, 아래와 열림방향의 형태적 특징을 이용하면 형태의 변화나 잡음이 있을 때에도 구별을 할 수 있습니다.

10개의 숫자에 대해 열림과 닫힘으로 분류하면 다음과 같습니다.

일단 영상이 입력되면 불필요한 요소를 제거합니다.
그런 다음, 숫자의 위와 아래를 나누는 절단선을 정합니다.
다음으로 숫자의 열림방향을 판정합니다.

숫자

123

4

567890

열림 방향

상부직선5560직선5닫힘닫힘6

하부

직선1323닫힘직선닫힘직선2

(유쟁, 김동욱, 열림방향을 이용한 자동차 번호판 숫자인식)

자동차 번호판을 인식하는 또 다른 방법은 다음과 같습니다.
자동차 번호판 이미지 준비

흑백으로 변경

색상과 색상이 경계 두드러지게 하기(Thresholding)
색이 연결된 부분을 그룹화 하기 (Contour)
그룹화된 부분마다 자동차 번호판 체계에 맞는 서체 비율 판단하기
Contour의 근접한 Contour가 번호판 체계에 맞는 배치도인지 판단하기
번호판 범위 정하기
기울어진 배치도를 일반 글자의 각도로 맞추기
기울어진 배치도를 일반 글자의 각도로 맞추기

출처: https://dalgonakit.tistory.com/130

다. MNIST 데이터베이스

출처: 위키백과

MNIST 데이터베이스는 일반적으로 사용되는 손으로 쓴 숫자의 큰 데이터베이스로 다양한 이미지 처리 시스템의 트레이닝 세트입니다. 이 데이터베이스는 기계 학습 분야의 교육과 및 테스트에도 널리 사용됩니다.

MNIST 데이터베이스는 60,000개의 교육 이미지와 10,000개의 세스트 이미지를 갖고 있습니다. MNIST 데이터베이스의 이미지 세트는 NIST 데이터베이스인 특수 데이터베이스1과 특수 데이터3의 조합입니다.

일부 연구자들은 MNIST 데이터베이스에서 “인간에 가까운 성능”을 달성했다고 했으며 다른 인식 작업에서 인간의 두배 성능을 달성하기도 합니다.

(위키백과-MNIST 데이터베이스)

라. 딥러닝을 활용한 텍스트 인식

1) 인공신경망을 이용한 필기체 인식

인공신경망을 이용한 인식은 두 가지 방향으로 이루어져 있습니다.

가) 입력 데이터를 넣어 출력데이터를 출력하는 forward 과정 : 여러 단계의 레이어를 사용하며 가중치와 활성화함수에 따라 각 레이어의 출력값이 만들어집니다.

(인공뉴런구조)
(계층화된 인공신경망 구조)

                                              (김승주,이재영, 한종기, 효과적인 필기체 인식을 위한 인공지능 알고리즘)

나) 출력 데이터와 목표 데이터의 차이, 즉 오류를 줄이는 방향으로 역전파를 통해 학습하는 과정

2) 합성곱 신경망을 이용한 필기체 인식

인공신경망은 입력데이터를 넣으면 출력데이터를 얻을 수 있는 구조입니다. 이 구조는 입력데이터간의 연관관계를 처음에 고려하지 않는 방식으로 오직 업데이트되는 가중치에 대해서만 의존하는 방식입니다. 이러한 문제를 해결하기 위해 입력데이터에 전처리 하는 방식을 사용하기도 했으나 입력데이터 자체에 필터를 넣어서 사용하는 합성곱 과정을 넣어 서로 연관성을 찾아내어 결과를 출력하는 합성곱신경망의 성능이 더 좋아 많이 활용되고 있습니다. 합성곱신경망은 3가지의 단계로 이루어져 있습니다.
가) 합성곱 단계로 필터를 활용하여 입력데이터의 특징을 추출하여 피쳐맵을 만듭니다.

필터예시(가우시안 필터, 샤프닝필터)

피쳐맵 예시(가우시안 필터, 샤프닝필터)

나) 피쳐 맵의 크기를 줄이는 단계로 영향을 주는 가장 큰 값을 추출해 냅니다.

다) 앞의 단계를 거쳐온 데이터들을 입력 데이터로 하여 인공신경망의 단계를 진행하여 출력값을 얻어 낸 뒤, 오류를 구해 역전파방법을 통해 학습시킵니다.

(김승주,이재영, 한종기, 효과적인 필기체 인식을 위한 인공지능 알고리즘)

3) 입력데이터 읽기

가) 손글씨로 입력된 글자를 전처리 과정을 거칩니다.

나) 28*28(=784)개의 픽셀로 나타내며 각 픽셀의 밝기를 0~255의 크기로 나타냅니다.
다) 학습한 데이터 셋을 통하여 어떤 숫자인지 찾아냅니다.

마. 문자인식의 활용

1) 우편 주소 해석

우체국에 우편이 접수되면 발송지역별로 우편물을 분류하게 되는데 접수되는 많은 우편물을 분류하기 위해 많은 인력을 필요로 합니다. 이러한 작업을 우편번호 인식을 통하여 정확하고 빠르게 분류할 수 있습니다.

출처: 픽사베이

2) 서명 확인

온라인을 통하여 많은 업무들이 이루어짐에 따라 금융서비스의 상당 부분이 비대면으로 이루어지고 있으며, 금융 뿐 아니라 기존에 반드시 대면방식으로 이루어지던 각종 계약 등도 전자 서명 방식이 활발하게 이루어지고 있습니다. 
출처: 픽사베이

3) 글자 입력

키보드를 사용하지 않고 필기를 통하여 글자를 입력할 수 있습니다. 특히 한자의 경우, 부수 색인을 통해 찾을 글씨를 찾을 수 있는데, 필기인식을 통하여 글자를 입력할 경우 부수를 잘 모르더라도 한자의 검색이 가능하다. 이처럼 익숙하지 않은 글자의 입력을 할 경우, 입력을 쉽게 할 수 있습니다. 
출처: 네이버 사전

Think Good AI

인공지능을 이용하여 문자를 인식하는 기술을 생활 여러 곳에서 이용하고 있다. 이에 따라 발생할 수 있는 문제는 무엇인가?

  –  사람의 온라인 전자 서명이 유출·해킹 당한 경우

  – 우편 주소 해석을 인공지능이 함에 따라 사라지는 일자리

바. 문자인식 시뮬레이션