OCR 기술 개발 : 데이터 고도화 및 프로세스 자동화

조회수: -

Published:

이번 포스팅에서는 2022 4Q ~ 2023년 2Q에 진행한 OCR 기술 개발 프로젝트를 소개하려고 합니다.

OCR(Optical Character Recognition) 모델 개발텍스트 데이터를 효과적으로 추출하고 이를 다양한 서비스 및 데이터 고도화에 활용하기 위한 프로젝트였습니다. 이 프로젝트는 리서치, 데이터 수집 및 전처리, OCR 모델 개발 및 최적화, 모델 서빙 등 다양한 기술을 활용해 진행되었습니다.

OCR 모델은 문서, 이미지, 그리고 다양한 환경에서 수집된 객체들에 적용될 예정으로, 각 도메인에 특화된 모델 개발이 요구되었습니다. 이를 위해 먼저 강력한 General Model을 구축한 뒤, 도메인별로 모델을 최적화했습니다.

결과적으로, 기존 외부 OCR 솔루션 대비 약 30% 이상 향상된 성능을 기록한 OCR 기술을 구현했습니다. 이 기술은 다양한 텍스트 데이터 처리와 자동화된 정보 추출을 가능하게 하여 서비스 데이터의 품질 향상에 기여하고 있습니다.


1. 이미지 전처리 기술 연구

OCR 프로젝트에서 이미지 전처리 기술은 텍스트 인식 성능을 좌우하는 중요한 요소로 작용했습니다. 흐릿한 텍스트, 저해상도, 그림자, 기하학적 왜곡 등 다양한 문제가 텍스트 인식을 어렵게 만들었고, 이러한 문제를 해결하지 않고는 OCR 모델이 다양한 환경에서 높은 정확도를 유지하기 어려웠습니다.

이에 따라 프로젝트 초기 단계에서 OCR 파이프라인에 적용할 수 있는 다양한 이미지 전처리 기술을 조사하고, PoC(Proof of Concept)를 통해 각각의 기술이 실제 환경에서 미치는 효과를 검증했습니다. PoC 결과, 이미지 전처리 기술은 텍스트 영역의 품질을 크게 개선하며, OCR 모델이 복잡한 환경에서도 안정적으로 텍스트를 인식할 수 있도록 성능을 향상시키는 데 중요한 역할을 했습니다.

다만, 조사된 모든 기술을 그대로 사용하는 것이 아니라, 환경과 데이터의 특성에 따라 적합한 기술을 선택하고 최적화하여 적용했습니다. 이러한 유연한 접근 방식은 OCR 모델의 강건성과 성능을 극대화하는 데 기여했으며, 다양한 환경에서도 높은 수준의 텍스트 인식을 가능하게 하는 기반을 마련했습니다.

1.1. 텍스트 그림자 제거

문서 이미지에서 텍스트 가독성을 방해하는 그림자를 제거하는 기술로, 딥러닝 기반 아키텍처(BEDSR-Net)를 활용했습니다. 이 기술은 그림자를 효과적으로 제거하면서 텍스트와 배경의 품질을 보존하여 OCR 모델 성능을 크게 향상시켰습니다.

1.2. Text Super Resolution

저해상도 이미지를 고해상도로 변환하여 흐릿한 텍스트를 선명하게 복원하는 기술을 적용했습니다. SwinIR과 Scene Text Super-Resolution 모델을 활용해 평균 15~25%의 텍스트 인식률 향상을 확인했습니다. 다만, 복잡한 문자 구조에서는 일부 한계가 발견되어 도메인 맞춤형 접근이 필요했습니다.

1.3. Text Sharpening

간단한 이미지 처리 기법(Normalize, Denoising 등)을 활용해 텍스트를 더 명확하게 만드는 기술로, 특정 케이스에서 가독성을 크게 개선했지만, 품질이 낮은 이미지에서는 효과가 제한적이었습니다.

1.4. Top-down View 변환

비스듬히 촬영된 문서를 정면으로 복원하여 왜곡을 제거하는 기술로, Projective Transformation을 사용했습니다. 일부 케이스에서 성공적인 복원을 이뤘지만, 다양한 촬영 환경에 따라 추가적인 튜닝이 필요했습니다.

1.5. Document Image Rectification

구겨지거나 왜곡된 문서를 복원하기 위해 딥러닝 기반 기술을 활용했습니다. DocTr++ 모델은 복잡한 문서 상태에서도 효과적으로 텍스트를 정렬할 수 있었지만, 모델 크기와 적용 사례의 제한성으로 인해 경량화가 필요한 점이 발견되었습니다.

2. Text Detection

2022년 즈음까지의 Text Detection 연구는 Character-Level Detection과 Word-Level Detection이라는 두 가지 접근법을 중심으로 발전해왔습니다. 각각의 방법은 고유한 장단점을 가 지며, 특정 문제를 해결하기 위해 적합한 방향으로 연구가 이루어졌습니다.

2.1. Text Detection 연구 분석 및 모델 선정

2.1.1. Character-Level vs. Word-Level 검출

📌 Character-Level Detection

문자 단위로 텍스트를 검출한 뒤 이를 연결해 단어를 구성하는 방식으로, 곡선 텍스트나 비정형 텍스트에서도 높은 정확도를 보입니다. 하지만 처리 시간이 길고 계산 비용이 높아 실시간 처리에는 한계가 있습니다.

📌 Word-Level Detection

단어 단위로 텍스트를 직접 검출하는 방식으로, Character-Level Detection보다 속도가 빠르고 효율적입니다. 하지만 곡선 텍스트나 비정형 텍스트에서는 정확도가 떨어지는 한계를 보였습니다.

2.1.2. 데이터셋 문제와 Weakly-Supervised Learning

텍스트 검출 연구에서 데이터셋의 확보는 주요 과제 중 하나였습니다. 글꼴, 크기, 배경 등 다양한 시각적 변이를 처리하기 위해 라벨링이 복잡하고 비용이 높았기 때문입니다. 이를 해결하기 위해** 제한적인 라벨 데이터로도 학습이 가능한 Weakly-Supervised Learning을 활용하여 데이터 부족 문제를 완화**했으나, 라벨 품질 관리가 모델 성능에 중요한 변수로 작용했습니다.

2.2. Text Detection 모델 개발 및 고도화

Text Detection 모델 개발 과정은 다양한 환경에서 안정적으로 동작하는 General Model 을 먼저 구축하고, 이를 기반으로 각 도메인의 특성에 맞는 도메인 특화 모델로 고도화 하는 방향으로 진행했습니다. 아래는 모델 개발 및 고도화 과정에서 이루어진 주요 작업 들입니다.

2.2.1. General Model 성능 향상

다양한 환경에서 안정적으로 동작하는 General Model을 구축하기 위해, 비정형 텍스트와 다양한 크기의 텍스트를 효과적으로 검출할 수 있도록 모델 구조를 개선했습니다.

📌 특화된 컨볼루션 구조 설계

다양한 크기와 형태의 텍스트를 검출하기 위해 텍스트 영역을 더 정교하게 탐지할 수 있는 컨볼루션 구조를 설계했습니다. 이를 통해 다양한 스케일의 정형 & 비정형 텍스트를 처리할 수 있는 성능을 확보했습니다.

📌 텍스트 형태 적응성 향상

비정형성이 강한 텍스트 환경에서도 유연하게 대응할 수 있도록 텍스트의 기하학적 변형을 효과적으로 처리하는 구조적 개선을 적용하여, 곡선 텍스트나 복잡한 형상의 텍스트에서도 검출 성능을 크게 향상시켰습니다.

📌 실험 및 검증

다양한 환경(문서, 야외 환경 등)에서 텍스트를 검출하며 General Model의 성능을 검증하고, 개선된 구조가 실제로 성능을 향상시키는지 반복적으로 평가했습니다. 이러한 개선을 통해 General Model은 외부 OCR 솔루션 대비 높은 성능을 기록했으며, 특히 비정형 텍스트와 다양한 스케일의 텍스트 처리에서 탁월한 결과를 보였습니다.

2.2.2. 도메인 특화 모델 개발

General Model을 기반으로 도메인별 특화 모델을 개발하여 각 데이터 특성에 맞는 최적화 과정을 진행했습니다.

도메인별 데이터셋 구축 각 도메인의 특성을 반영한 데이터 수집 및 전처리를 수행하고, 다양한 환경을 시뮬레이션하는 데이터 증강 기법을 활용했습니다.

Fine-Tuning 및 최적화 General Model의 사전 학습된 가중치를 활용하여 도메인별 데이터에 맞춘 재학습을 수행하고, 데이터 특성에 민감한 레이어를 중심으로 최적화를 진행하여 성능을 극대화했습니다.

3. Text Recognition

텍스트 인식은 OCR 기술의 핵심 요소로, 다양한 환경에서 높은 정확도와 효율성을 동시에 달성하기 위한 접근법이 연구의 중심이었습니다. 특히 최신 트랜스포머 기반 모델의 등장으로, 기존의 무거운 구조를 대체하면서 경량화와 성능을 모두 갖춘 새로운 방법론들이 주목받았습니다.

3.1. 모델 선정 및 초기 실험

초기에는 기존의 단계적인 구조를 가진 텍스트 인식 모델을 활용해 실험을 진행했습니다. 이 모델은 문자 시퀀스를 변환, 처리, 그리고 연결하는 명확한 구조 덕분에 높은 정확도를 제공했지만, 모델의 복잡성과 추론 속도의 한계로 인해 실시간 응용에는 적합하지 않았습니다.

이후 최신 트랜스포머 기반 모델을 실험하며, 더 빠르고 효율적인 구조를 가진 모델로 전환했습니다. 트랜스포머 기반 모델은 단일 시각 모델로 텍스트 시퀀스를 처리하며, 속도와 정확도를 동시에 달성했습니다. 또한, 다양한 형태와 변형된 텍스트를 처리하는 데 유리한 구조를 갖춰, 곡선 텍스트나 복잡한 배열에서도 우수한 성능을 보였습니다.

최종적으로 이러한 모델 중 가장 적합한 구조를 선택해 텍스트 인식 시스템을 구축했습니다. 이는 기존의 단계적 구조 대비 추론 속도가 빠르고 다양한 환경에서도 강건한 성능을 보여주어, 실시간 응용과 복잡한 텍스트 인식에서 모두 뛰어난 결과를 제공했습니다.

3.2. Text Recognition 모델 개발 및 고도화

3.2.1. General Model 개발

텍스트 인식의 기본 모델을 구축하며, 자연 이미지와 합성 데이터를 결합해 다양한 텍스트 변형과 환경에 대응할 수 있도록 설계했습니다.

  • 합성 데이터셋 활용: 텍스트의 크기, 각도, 왜곡 등을 학습시키기 위해 다양한 합성 데이터를 생성하고 적용했습니다.
  • 맞춤형 데이터 증강(Data Augmentation): 실제 환경에서 발생할 수 있는 다양한 텍스트 변형을 시뮬레이션하여 학습의 다양성을 확보했습니다.

3.2.2. 도메인 특화 모델 개발

General Model을 기반으로 특정 도메인(문서, 로드뷰, 간판, 메뉴판 등)에서 최고의 성능을 발휘할 수 있도록 특화된 모델로 고도화했습니다.

📌 도메인별 데이터셋 구축

  • 문서: 다양한 글꼴과 고해상도 스캔 이미지를 포함한 데이터셋
  • 야외 환경: 다양한 조명 및 날씨 조건에서 촬영된 거리 텍스트 데이터
  • 비정형성이 큰 도메인: 복잡한 배열과 다양한 배경을 반영한 데이터셋

📌 도메인 맞춤형 Augmentation

각 도메인의 특성에 따라 증강 기법을 조정하여 텍스트 변형에 대한 강건성을 향상했습니다.

📌 하이퍼파라미터 최적화

각 데이터셋의 특성과 크기에 따라 최적의 학습 환경을 구현했습니다.

4. 성과와 활용

개발한 OCR 모델(Text Detection + Text Recognition)은 사내 대규모 데이터 처리와 서비스 고도화에 핵심적인 역할을 했습니다. 특히, 전국 단위 데이터 처리 파이프라인을 구축하여, 다양한 환경과 이미지 데이터를 안정적으로 분석하고, 이를 기반으로 서비스 품질과 데이터 정확성을 높이는 데 기여했습니다.

📌 대규모 데이터 처리 파이프라인 구축

OCR 모델은 전국적으로 수집된 대규모 이미지 데이터에서 텍스트를 자동으로 추출하고, 이를 기반으로 데이터 업데이트를 효율화하는 파이프라인을 구축했습니다. 이 파이프라인은 플랫폼 내 데이터의 정확성과 일관성을 유지하면서도, 실시간 데이터 관리가 가능하도록 설계되었습니다. 이를 통해 서비스 데이터의 품질을 크게 향상시켰습니다.

📌 서비스 품질 및 효율성 강화

OCR 기술을 활용하여 대규모 데이터에서 텍스트 정보를 분석하고, 이를 자동으로 반영함으로써 사용자에게 더 정확하고 풍부한 정보를 제공할 수 있었습니다. 예를 들어, 이미지 데이터에서 추출한 정보를 서비스 데이터에 통합함으로써, 입력 과정을 자동화하고 운영 효율성을 높였습니다.

📌 기술적 성과와 확장 가능성

개발한 OCR 기술은 정확도와 확장성에서 기존 솔루션을 능가하는 성과를 달성했습니다. 높은 정확도를 유지하면서도 대규모 데이터 처리 환경에서 효율적으로 동작하여, 서비스 데이터 관리와 업데이트 속도를 크게 향상시켰습니다.


프로젝트를 진행하며 OCR 기술은 도메인에 따라 이미지 품질, 텍스트 형태, 배경이 다르기 때문에 환경에 특화된 기술을 개발하는 것이 중요하다는 것을 느꼈습니다.

또한, 기술 개발만큼이나 중요한 것은 개발한 기술을 어떻게 활용할지에 대한 고민입니다. OCR 기술을 통해 사용자 경험을 개선하거나 데이터를 고도화하고, 프로세스를 자동화하는 등 실질적인 활용 방안을 설계하는 것이 프로젝트 성공의 핵심입니다.

이러한 경험을 통해 기술적 성과뿐 아니라 실질적인 비즈니스 가치를 창출하는 데이터 파이프라인 설계의 중요성을 다시 한번 확인할 수 있었습니다.


Paper Survey

Pre-Processing

  • Scene Text Image Super-Resolution in the Wild / ECCV 2020 자연환경에서 촬영된 장면 텍스트 이미지를 슈퍼 해상도로 복원하는 방법을 제안함. 텍스트 영역의 해상도를 개선해 텍스트 인식 성능을 높이는 방안을 탐구함.

  • BEDSR-Net: A Deep Shadow Removal Network from a Single Document Image / CVPR 2020 단일 문서 이미지에서 그림자를 제거하기 위한 딥러닝 기반 네트워크를 제안함. 문서의 그림자를 제거해 텍스트 인식 정확도를 향상시키는 방법론을 탐구함.

  • SwinIR: Image Restoration Using Swin Transformer / CVPR 2021 Swin Transformer 아키텍처를 활용해 이미지 복원을 수행하는 방법을 제안함. 슈퍼 해상도와 잡음 제거 작업에서 뛰어난 성능을 보이는 기술적 접근을 소개함.

  • Text Prior Guided Scene Text Image Super-Resolution / arXiv 2021 텍스트 프라이어를 활용해 장면 텍스트 이미지의 해상도를 개선하는 기법을 제안함. 텍스트 정보를 활용해 더 정밀한 텍스트 검출을 가능하게 함.

  • Scene Text Telescope: Text-Focused Scene Image Super-Resolution / CVPR 2021 텍스트 부분에 초점을 맞춘 장면 텍스트 복원 기법을 제안함. 텍스트 영역을 강조하고 배경 정보를 간소화하여 텍스트 인식 성능을 높이는 방법론을 소개함.

  • Activating More Pixels in Image Super-Resolution Transformer / arXiv 2022 트랜스포머 기반 네트워크에서 더 많은 픽셀을 활성화해 해상도 복원을 정확히 수행하는 기법을 제안함. 계산 효율성을 높이는 방향으로 개선함.

Text Detection

  • EAST: An Efficient and Accurate Scene Text Detector / CVPR 2017 단일 신경망을 통해 텍스트 영역을 직접 회귀하여 빠르고 정확하게 검출하는 방법을 제안함.

  • TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes / ECCV 2018 중심선과 반지름을 활용해 임의의 형태를 가진 텍스트를 유연하게 검출할 수 있는 방식을 제안함.

  • CRAFT: Character Region Awareness for Text Detection / CVPR 2019 문자 중심의 텍스트 영역을 학습해 텍스트 줄을 연결하는 방식으로 텍스트 검출 성능을 향상시키는 기법을 제안함.

  • TextFuseNet: Scene Text Detection with Richer Fused Features / IJCAI 2020 다양한 스케일의 특징을 통합해 복잡한 배경에서도 텍스트를 검출할 수 있는 방법을 제안함.

Text Recognition

  • CRNN: An End-to-End Trainable Neural Network for Image-based Sequence Recognition / TPAMI 2016 CNN과 RNN을 결합한 구조로 텍스트 시퀀스를 처리하는 엔드투엔드 학습 가능 네트워크를 제안함.

  • ASTER: An Attentional Scene Text Recognizer with Flexible Rectification / TPAMI 2018 텍스트 왜곡을 보정하는 정렬 메커니즘과 Attention 기반 텍스트 인식기를 결합하여 텍스트 인식 성능을 높이는 방법을 제안함.

  • SEED: Semantics Enhanced Encoder-Decoder Framework for Scene Text Recognition / CVPR 2020 시각적 정보와 의미적 정보를 동시에 학습해 텍스트 인식 정확도를 높이는 네트워크를 제안함.

  • Data Augmentation for Scene Text Recognition / ICCV 2021 다양한 텍스트 데이터 증강 기법을 활용해 학습 데이터의 다양성을 확보하고 텍스트 인식 성능을 개선하는 방법을 제안함.

  • SVTR: Scene Text Recognition with a Single Visual Model / IJCAI 2022 단일 시각 모델을 통해 텍스트 인식 효율성과 정확성을 모두 높이는 방식을 제안함.