티스토리 뷰
What Is Wrong With Scene Text Recognition Model Comparisons? Dataset and Model Analysis
hanyangrobot 2020. 4. 10. 17:44작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 (CAI LAB)
2019년 12월 18일, 네이버 클로바 AI 연구팀에서 발행한 논문 "What Is Wrong With Scene Text Recognition Model Comparisons? Dataset and Model Analysis"을 번역 및 리뷰하겠습니다~!
링크 0) 논문 읽는 방법 링크 (여기 방식대로 정리해서 목차 순서가 뒤죽박죽이다.) : https://itherapist.tistory.com/176
링크1) 논문 원문 : https://arxiv.org/pdf/1904.01906.pdf
링크 2) 같은 논문에 대해 리뷰한 블로그 링크 : https://data-newbie.tistory.com/156
링크 3) 논문에서 제공하는 깃헙 코드 링크 : https://github.com/clovaai/deep-text-recognition-benchmark
1. 요약
최근 텍스트 인식 (STR : Scene Text Recognition) 모델에 대한 많은 연구 및 진전이 있다. 그러나 평가 데이터셋이 일관되지 않아, STR 모델들의 정확한 성능 비교가 어렵다. 이 논문은 크게 3 가지 기여로 STR 모델 성능 비교의 어려움을 다루고 있다.
1-1) 일관성 없는 학습과 평가 데이터셋을 검사한다. 모델 성능 차이는 학습과 평가 데이터셋의 모순에서 비롯된다.
1-2) 기존에 있는 STR 모델과 적합한 통일된 4단계 모듈(Trans, Feat, Seq, Pred)의 STR Framework를 소개한다.
1-3) 일관성 있는 학습 및 평가 데이터셋을 통해 정확도, 속도 및 메모리 소비량 측면에서 성능에 대한 모듈의 기여도를 분석한다.
2. 서론
대부분의 OCR(Optical Character Acception) 방법은 STR(Scen Text Recognition) 과제에서 효과적이지 못했다. Real World에서 생기는 다양한 텍스트 외관과 이러한 scenes(배경)들이 포착되는 불완전한 조건 때문이다. 이러한 challenge를 해결하기 위해, 선행 논문에서 multi-stage(Trans, Feat, Seq, Pred 중의 일부를 의미함) 파이프라인을 제안했는데, 여기서 각 단계는 특정 challenge를 다루는 Deep Neural Network이다.
예를 들어 [24 : An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition. // IEEEE, 2017]에서 입력의 다양한 문자 수를 처리하기 위해 RNN(Recurrent Neural Network)를 사용하고, 문자의 수를 식별하기 위해 Temporal Classification Loss[Connectionist temporal classification : labelling unsegmented sequence data with recurrent neural networks. // ICML, 2006]를 사용하는 방법을 제안하였다. [25 : Robust scene text recognition with automatic rectification. // CVPR, 2016]에서는 Downstream 모듈이 곡선 텍스트를 처리하기 위한 표현 burden(부담)을 줄이기 위해 직선 텍스트 이미지로 입력을 정규화하는 변환 모듈을 제안했다.
그러나! 표1의 Reported Results를 보면, 학습 모델들이 서로 다른 Train 및 평가 데이터셋을 통해 나온 정확도이기 때문에, 최신 STR 모델의 개선 여부와 어떤 점에서 개선됬는지를 평가하기는 어렵다.
우리는 기존의 STR 모델에 사용했던 Train(학습) 데이터 집합과 Evaluation(평가) 데이터의 집합이 일치하지 않는다는 것을 관찰했다. 예를 들어, 여러 작업에서 평가 데이터 셋의 일부로 IC13 데이터 셋의 다른 부분 집합을 사용하므로 15% 이상의 성능 차이가 발생할 수 있다. 이러한 종류의 불일치는 다른 모델들 간의 공정한 성능 비교를 방해한다.
우리의 논문은 다음과 같은 주요 contribution으로 이러한 유형(데이터셋 불일치)의 issue를 다룬다. 첫째, STR 논문에서 흔히 사용되는 모든 train 및 evaluation 데이터 셋을 분석한다. 우리의 분석은 STR 데이터셋의 사용과 그 원인에 대한 모순을 드러낸다. 예를 들어, 우리는 IC03 데이터 집합에서 7개의 누락된 예와 IC13 데이터 집합에서도 158개의 누락된 예제를 발견했다. 우리는 STR 데이터 셋에 대한 이전 몇 가지 작업을 조사하여, 표 1과 같이 train 및 evaluation 데이터셋의 불일치가 비교 불가능한 결과를 초래한다는 것을 보여준다.
둘째, 기존 방식에 대해 공통적인 시각을 제공하는 STR의 통일 프레임워크를 도입한다. 구체적으로 STR 모델을 변환(Trans.), 형상 추출(Feat.), Sequence 모델링(Seq.) 및 예측(Pred.)의 4가지 연속 작업 단계로 구분한다. 프레임워크는 기존 방법 뿐만 아니라 모듈-지향적 기여도를 광범위하게 분석하기 위해 가능한 변형을 제공한다.
마지막으로, 우리는 통일된 실험 환경에서 정확성, 속도 및 메모리 소비량 측면에서 모듈에 의한 기여를 연구한다. 이 연구를 통해 개별 모듈의 기여도를 보다 엄격하게 평가하고, 이전에 간과한 모듈 조합을 제안하며, 이는 art의 상태에 비해 개선된다. 또한 STR의 남은 과제를 파악하기 위해서 벤치마크 데이터 셋의 실패 사례를 분석하였다.
5. 결론
STR : Scene Text Recognition 모델은 큰 진전이 있었지만, 일관되지 않은 벤치마크에 비교되어 제안된 모듈이 STR 기준(baseline) 모델을 개선하는지 여부와 개선 방법을 결정하는 데 어려움이 있었다. 본 연구는 그동안 일관되지 않은 실험 설정에 방해되었던 기존 STR모델의 기여도를 분석했다. 이러한 목표를 달성하기 위해, 우리는 일관적인 데이터셋, 즉 7개의 벤치마크 평가 데이터셋과 2개의 교육 데이터셋(MJ와 ST)이라는 일관된 데이터셋뿐만 아니라 주요 STR 방법들 간의 공통 프레임워크(변환(Trans.), 형상 추출(Feat.), Sequence 모델링(Seq.) 및 예측(Pred.))를 도입했다. 우리는 비교한 주요 STR 방법들 중에서 공정한 비교를 제공했고, 어떤 모듈이 가장 정확하고, 속도, 그리고 크기 향상을 가져오는지 분석하였다. 우리는 또한 remaining 실패 사례뿐만 아니라 STR의 일반적인 도전에 대한 모듈별 기여도에 대한 광범위한 분석을 제공했다.
4. 실험 및 분석 (Experiment and Analysis)
4.3.Analysis of trade-offs for moudle combinations 에서 4단계 프레임워크에서 가능한 모든 STR 모듈 조합(총 24개)에 대한 평가와 분석이 수록되어 있으며, 4.2.Analysis on training datasets에서 나오는 데이터셋으로 구성된 공통된 train 및 evaluation 데이터 셋으로 STR 모듈을 평가한다.
4.1. 구현 디테일 (Implementation Detail)
4.2. 학습 데이터에 대한 분석 (Analysis on Training Deatasets)에서 기술한 바와 같이, Train 및 Evaluation 데이터 셋은 STR 모델의 측정된 성능(정확도, 속도 등등)에 영향을 준다. 공정한 성능 비교를 위해, Train, Validation, Evaluation 데이터 셋을 고정했다.
[학습 데이터 및 모델 파라미터 선택]
Train 데이터 셋으로 MJSynth(8.9M = 890만 개의 데이터 수)와 SynthText(5.5M=550만 개의 데이터 수)의 조합으로 총 1,440만 개의 데이터를 사용했다. AdaDelta Optimizer를 사용했으며, decay rate는 ρ = 0.95로 셋팅했다. Train 배치 사이즈는 192, 학습 횟수는 300K(=30만)이다. 경사 상승법(Gradient Clipping)은 magnitude 5에서 사용했다. (경사 상승법은 배운적이 없어서, 경사 하강법과 어떤 점이 다른지 모르겠으나, magnitude 라는 것이 척도로 사용되나 봄. 학습률 같은 의미일까?ㅎ) 모든 파라미터는 He's method[9 : Surpassing human-level performance on imagenet classification // ICCV 2015]에 의해 초기화 했다.
Validation 데이터로 IC13, IC15, IIIT 그리고 SVT의 학습 데이터의 조합을 사용했다. 그리고 이 Validation 데이터 셋의 최고 정확도로 나오는 모델을 선택하기 위해 매 2,000번 학습이 끝난 후에 모델을 검증했다. Validation 데이터셋에 IC03 train 데이터는 포함하지 않는다. IC03의 train 데이터 일부가 IC13의 evaluation 데이터와 중복되어있기 때문이다. 중복된 scene image의 수는 총 34장이고, 215개의 word boxes 를 포함한다. 중복된 예시는 보충 자료(supplementary materials)에서 찾을 수 있다.
[Evaluation 매트릭스]
본 논문에서는 정확도, 시간 그리고 메모리 소비량 측면에서 STR 조합에 대한 철저한 분석을 제공한다.
정확도를 위해, evaluation dataset을 다음과 같이 구성했다. (총 8,539장의 이미지); IIIT에서 3,000장, SVT에서 647장, IC03에서 867장, IC13에서 1015장, IC15에서 2,077장, SP에서 645장 그리고 CT에서 288장 (validation 데이터셋과 겹치는 걸로 보일 수 있는데, validation에서 사용한것은 원본 데이터의 학습 데이터이고, evaluation에서 사용한 것은 원본 데이터의 테스트 데이터이다.)오직 알파벳과 숫자들만 평가한다. 각 STR 조합에 대해, 우리는 5가지의 random seeds로 시험을 했고, 5가지 시험에 대한 정확도를 평균화 했다.
속도 평가를 위해, 아래에서 자세히 설명되는 동일한 컴퓨팅 환경에서 주어진 text를 인식하기 위한 이미지 당 평균 clock 시간을 측정한다.
메모리 평가를 위해 전체 STR 파이프라인에서 훈련 가능한 floating point 파라미터의 수를 측정했다.
[학습 환경]
공정한 속도 비교를 위해서, 모든 평가는 같은 환경에서 진행된다. (컴퓨터 스펙 : Intel Xeon(R) E5-2630 v4 2.20GHz CPU, NVIDIA TESLA P40 GPU, 252GB RAM) 모든 실험은 네이버 스마트 머신러닝(NSML) 플랫폼으로 수행된다.
4.2. 학습 데이터에 대한 분석 (Analysis on Training Deatasets)
우리는 서로 다른 유형의 train 데이터셋으로 성능을 평가한 벤치마크의 영향에 대해 조사한다. 2.1. 학습을 위한 합성(Synthetic) 데이터셋 (Synthetic Datasets for Training)에서 언급했듯이, 이전 연구에서는 일치 하지 않은 train 데이터셋을 사용했고, 그들의 STR 모델 성능 향상에 대한 기여를 불확실하게 남겼다. 이 문제를 해결하기 위해, 다른 설정의 train 데이터 셋으로 4.3. 모듈 조합에 대한 절충 분석 (Analysis of trade-offs for module combinations)에서 최고 모델의 정확도를 조사했다. 오직 MJSynth train 데이터셋을 사용했을때의 정확도는 80%, SynthText train 데이터셋을 사용했을때의 정확도는 75.6%, 그리고 둘 다 사용했을 때의 정확도는 84.1%이다. MJ와 ST 데이터셋의 조합은 MJ와 ST의 개별 사용에 비해 정확도를 4.1% 이상 향상시켰다. 다른 유형의 train 데이터 셋을 사용해서 낸 결과인 성능은 비교할 수 없고, 그러한 비교는 모델의 기여를 증명하지 못한다. 이것이 동일한 train 데이터셋으로 모든 모델을 평가한 이유다.
흥미롭게도, MJ 데이터의 20%(1.8M=180만 개)와 ST 데이터의 20%(1.1=110만 개)를 함께 학습하면, 83.1%의 정확도가 나온다. 이는 MJ와 ST 데이터로 개별 학습 보다 우수한 성능이다. MJ와 ST는 왜곡, 흐림과 같은 서로 다른 옵션으로 생성되었기 때문에 서로 다른 속성을 가지고 있다. 이 결과는 훈련 데이터의 다양성이 훈련 예시 수보다 더 중요할 수 있고, 다른 train 데이터를 사용하는 것의 효과는 단순히 더 많은 것을 결론짓는 것이 더 낫다는 것보다 더 복잡하다는 것을 보여주었다. (다른 train 데이터를~ 보여주었다. 의 의미가 이해 안됨...한번 다 정리하고 다시 읽어봐야짓ㅎ)
4.3. 모듈 조합에 대한 절충 분석 (Analysis of trade-offs for module combinations)
여기서는 모듈의 다른 조합에서 보여지는 정확도-속도와 정확도-메모리 소비량에 초점을 맞춘다. 보충 자료에서 결과의 전체 표를 제공한다. 이전 연구에서 제안된 6개의 STR 모델(CRNN, R2AM, Rosetta, RARE, GRCNN, STAR-NET)을 포함한, 24개 조합의 절충도는 그림 4를 참고한다.
(a)그래프(x축 : 시간, y축 : 정확도)에서, Rosetta와 STAR-NET은 frontier(그래프에서 빨간색 선 부분)에 있고, 나머지 4개의 모델은 frontier 안에 있다. (프론티어에 있다는 의미가 무엇일까?) (b) 그래프(x축 : 파라미터 수(메모리), y축 : 정확도)에서, R2AM은 frontier에 있고 이전에 제안한 모델은 프론티어 내부에 있다. (기존의 STR 모델들이 프론티어 내부에 있다는 의미는, 모듈이 변형된 모델보다 성능이 안좋다는 것을 의미한다.) 프론티어를 따른 모듈 조합은 정확도의 오름차순으로 라벨링 된다. ((a)의 경우 T1~T5, (b)의 경우 P1~P5)
[프론티어에 따른 조합의 분석 // 그림 4의 (a), (b) 표 분석]
그림 4의 표 (a)를 보면, T1은 변환(Trans.) 또는 순차(Seq.) 모듈을 포함하지 않음으로써 최소 시간(1.3ms)이 소요된다. T1에서 T5로 이동하면 다음 모듈들이 순서대로 소개된다. (굵게 표시됨). T1에서 T5로 한번에 하나의 모듈이 변경된다. (Feat.의 ResNet, Seq.의 BiLSTM, Trans.의 TPS, Pred의 Attn) 우리의 프레임워크는 어플리케이션 시나리오에 따라 최소한의 절충 성능을 제공하는 방법의 원활한 전환을 제공한다.
그것들은 순차적으로 모든 STR 모델의 복잡성을 증가시켜(=파라미터 수가 증가함), 계산의 비용을 효율적으로 성능(=정확도)을 증가시킨다. ResNet, BiLSTM, TPS는 비교적 완만한 전체 속도 저하(1.3ms->10.9ms)를 도입하고, 정확도는 크게 향상(69.5%->82.9%)했다. 반면, Attn은 시간적 측면(27.6ms)에서 막대한 비용으로 정확도를 1.1% 향상시킬 뿐이다. (Pred.에 Attn을 적용하는 것은 가성비가 좋지 않다!는 의미)
그림 4의 표 (b)를 보면, P1이 가장 적은 메모리 소비량을 가진 모델이며, P1~P5는 정확도와 메모리 소비량의 절충을 통해 만들어졌다. P1에서 P5로 진화화면서 순차적으로 Attn, TPS, BiLSTM, ResNET이 변형 되었는데, 이들은 순차적으로 T1~T5에 비해 덜 증가하는 메모리 비용으로 정확도를 높인다. T1의 Feat.에서 사용되는 VGG에 비해, P1~P4의 Feat.에서 사용되는 RCNN이 메모리 사용량이 적으면서 정확도가 꽤 높은 것을 볼 수 있다. 전체적으로 메모리 사용량이 적으면서도 정확도 향상 (75.4% -> 82.3%)을 제공하는 모듈이다. 반면 Feat.을 RCNN에서 ResNet으로 바꿨을 때, 메모리 사용량이 7.2M에서 49.6M으로 급격히 증가하지만, 정확도는 1.7% 밖에 상승하지 않았다. 따라서 메모리 소비를 우려하는 실무자는 ResNet과 같은 메모리 사용량이 높은 피쳐 추출기의 사용을 자제해야한다.
[속도와 메모리 소비량에서 가장 중요한 모듈]
우리는 모듈 선택에 따른 그림 4의 scatter plots을 색상으로 구분하여 속도와 메모리에 대한 모듈별 영향을 식별했다. 그림 5에서 각각 예측(Pred.) 및 형상 추출(Feat.) 모듈, 즉 가장 속도와 메모리 소비량에 중요한 모듈이 있는 scatter plots을 보여 준다.
예측 및 형상 모듈에 따라 조합된 명확한 군집이 있다. 왼쪽(정확도-속도) 그래프에서 CTC 및 Attn의 클러스터를 식별한다. Attn을 추가하면 전체적으로 STR 모델이 상당히 느려진다. 반면에 오른쪽(정확도-메모리 사용량) 그래프에서, Feature 추출기가 가장 현저하게 기억력에 기여한다 (파라미터 수가 증가하는 것이, 기억력이 증가하는 것일까?) 는 것을 관찰한다. 따라서 각 기준에 대해 가장 중요한 모듈들은 서로 다르므로, 실무자들은 서로 다른 어플리케이션 시나리오와 제약조건에 따라 가장 좋은 절충 모델을 보여야 한다.
4.4. 모듈 분석 (Module Analysis)
여기서는 정확도, 속도 및 메모리 소비량 측면에서 모듈별 성능을 조사한다. 이 분석을 위해 , Table 2에 있는 모듈을 포함한 조합의 평균화를 통해, 각 모듈의 marginalized 정확도를 계산한다. 각 단계에서 모듈을 업그레이드 하려면 추가적인 리소스, 시간 그리고 메모리가 필요하지만, 성능 향상을 제공한다.
Table 2는 모든 단계에서 비정규 데이터셋(곡선 텍스트가 있는 데이터) 을 사용한 성능 향상이 모든 단계에서 벤치마크의 약 2배(어떤 것이 2배이지?)임을 보여준다. 정확도 향상과 시간 사용을 비교할 때, ResNet, BiLSTM, TPS 및 Attn의 순서는 None-VGG-None-CTC의 기본 조합에서 모듈의 가장 효율적인 업그레이드 순서다. 이 순서는 정확도-시간 프론티어의 조합 순서와 동일하다. (T1~T5)
한편, 정확도-메모리 소비량 관점에서는 모듈에 대한 가장 효율적인 업그레이드 순서로 RCNN, Attn, TPS, BiLSTM, ResNet을 찾는다. (P1~P5) 흥미롭게도 시간 측면에서 효율적인 모듈 순서는 메모리 소비량 측면에서의 모듈 순서와 반대되는 것이다. 이런 모듈의 다른 속성은 실무에서 다른 기회를 제공한다. 또한 두 관점의 모듈 순위는 프론티어 모듈 변경 순서와 동일하며, 이는 각 모듈이 모든 조합에서 비슷하게 성능에 기여함을 보여준다.
[정성 분석 (Qualitative Analysis)]
각 모듈은 3절(STR Framework Analysis)에서 설명한 대로, STR 과제의 어려움을 해결함으로써 텍스트를 식별하는 데 기여한다. Figure 7은 특정 모듈이 업그레이드 될 때만 올바르게 인식되는 샘플을 보여준다. (예시 : 백본을 VGG에서 ResNet으로 변경)
Figure 7의 각 행(총 4개의 행)은 프레임워크의 각 단계(Trans. Feat. Seq. Pred.)에서 모듈 업그레이드를 보여준다. 제시된 샘플은 업그레이드 전에 실패하지만, 업그레이드 이후에는 샘플을 인식할 수 있게 된다. Trans 단계에서 TPS는 곡선 및 원근법 텍스트를 표준화된 view로 정규화 한다. 예측된 결과는 특히 동그라미 모양의 브랜드 로고에 있는 "POLICE"와 점포 앞 표지판의 원근법 view에 있는 "AIRWAYS"에서 극적인 성능 향상을 보여준다.
고급 Feautre 추출기인 ResNet은 더 나은 표현력을 제공하며, "YMCA", "CITYARTS" 및 "NEUMOS"과 같이 혼잡한 배경을 가진 케이스에서 개선됨을 보여준다. BiLSTM은 receptive 필드에서 적응됨으로써 더 나은 문맥(맥락) 모델링으로 이어지며, crop된 문자 ("EXIT" 뒤에 있는 I, "G20" 끝의 C)를 무시할 수 있다. 암묵적 문자(가려진 글씨를 의미하는 것 같음) 수준 언어의 모델링을 포함한 Attention은 "Hard"의 "a", "to"의 "t" 그리고 "HOUSE"의 "s"와 같은 누락되거나 가려진 문자를 발견한다. 이러한 예시들은 실제 어플리케이션에서 모듈의 기여점에 대한 개요를 제공한다.
4.5. (Failure case analysis)
우리는 모든 24가지 조합의 실패 사례를 조사한다. 우리의 프레임워크는 이전에 제안된 STR 모델들 사이의 공통점으로부터 파생되었고, 우리의 최고 모델은 그 모델들과 경쟁적인 성능을 보여주었기 때문에, 제시된 실패 사례들은 현장 전체에 공통적인 도전이 된다. 우리의 분석이 향후 STR 과제에서 이러한 과제 해결을 고려하도록 부탁한다.
2. STR 분야의 데이터셋 문제 (Dataset Matters in STR)의 벤치마크 데이터셋의 8,539개의 예시 중, 644개의 이미지(7.5%)가 검토된 24개 모델 중 어느 모델에서도 올바르게 인식되지 않고 있다. Figure 6 과 같이 6개의 일반적인 고장 사례를 발견했다. 다음은 사례의 과제에 대한 논의와 향후 연구 방향을 제시한다.
[(a) 어려운 글꼴 : 캘리그래픽]
"코카콜라"같은 브랜드의 폰트 스타일, "카페"와 같은 거리에 있는 가게의 이름 들은 여전히 도전 과제로 남아 있다. 이처럼 다양한 캐릭터 표현은 일반적인 visual features를 제공하는 새로운 피쳐 추출기를 필요로 한다. 또다른 가능한 접근법은 정규화 (Regularization 혹은 일반화)이다. 왜냐하면 학습 데이터셋의 폰트 스타일이 과적합이 될 수도 있기 때문이다. (L1, L2 정규화 등을 이용해서 학습 모델의 과적합을 피해라는 의미인듯)
[(b) 수직 텍스트]
현재 대부분의 STR 모델은 수평 텍스트 이미지를 가정하므로, 구조적으로 수직 텍스트를 처리할 수 없었다. 일부 STR 모델[30, 5]은 수직 정보도 이용하지만, 아직 수직 텍스트는 명확하게 다루지 않았다. 수직 본문을 다루기 위해서는 더 많은 연구가 필요할 것이다.
[(c) 특수 문자]
현재의 벤치마크는 특수문자를 평가하지 않기 때문에, 기존 작품들은 학습 중에 이를 배제한다. 이것은 실패 예측을 초래한다. 우리는 특수 문자로 훈련하는 것을 제안한다. 이는 IIT에서 87.9%의 정확도에서 90.3%의 정확도로 상승하는 결과를 얻었다.
[(d) 데이터 손상 (문자 훼손)]
현재 방법은 데이터 손상을 극복하기 위해 상황 정보를 광범위하게 이용하지 않는다. 향후 연구에서는 문맥을 최대한 활용하기 위한 우수한 언어 모델을 고려할 수 있다.
[(e) 저해상도]
기존 모델은 저해상도 사례를 명시적으로 다루지 않는다. 이미지 피라미드나 초해상도 모듈은 성능을 향상시킬 수 있다.
[(f) 잘못된 라벨 (노이즈) ]
우리는 노이즈 된 라벨의 비율을 확인하기 위해 벤치마크의 모든 예제를 검토했다. 모든 벤치마크 데이터셋에는 노이즈 라벨이 포함되어 있었다.
1) 특수 문자를 고려하지 않고 라벨을 잘못 표시한 비율 : 1.3%
2) 특수 문자를 고려하고 라벨을 잘못 표시한 비율 : 6.1%
3) case-sensitivity를 고려하고 라벨을 잘못 표시한 비율 : 24.1%
우리는 Github에서 모든 실패 사례를 이용할 수 있게 했다. 이것이 STR 분야의 문제에서 더 많은 연구를 불러일으킬 수 있기를 바람.
2. STR 분야의 데이터셋 문제 (Dataset Matters in STR)
이 절에서는 이전 작업에 사용한 다양한 train 및 evaluation 데이터셋을 검토하여, OCR 학습 모델 간의 데이터셋 불일치를 해결한다. 이 분석을 통해 각 연구가 데이터셋을 구성하고 사용하는 데 있어서 어떻게 다른지를 강조하고, 연구들 간의 성과를 비교할 때 데이터셋 불일치로 인해 생긴 편향(bias)을 조사한다. (2.서론의 Tabel 1 참고) 데이터 집합 불일치로 인한 성능 격차는 실험을 통해 측정하고, 4. 실험 및 분석 (Experiment and Analysis)에서 논의한다.
2.1. 학습을 위한 합성(Synthetic) 데이터셋 (Synthetic Datasets for Training)
STR 모델을 학습할 때, Scene Text 이미지(혹은 영상)에 라벨링(정답을 알려주는 행위)을 하는 것은 많은 비용이 들기 때문에, 충분한 라벨 데이터를 얻기 어렵다. 대부분의 STR 모델들은 real 데이터를 사용하는 대신에, 합성 데이터를 사용해 왔다. 먼저 최근 STR 논문에 사용된 가장 인기 있는 2가지 합성 데이터셋(데이터 증강과 비슷한 개념인듯)을 소개한다.
[MJSynth (MJ)]
MJSynth (MJ) [11 : Synthetic data and artificial neural networks for natural scene text recognition. // NIPS, 2014] 은 STR 용으로 설계된 합성 데이터 집합으로, 8.9M(890만개)의 워드 박스 이미지가 있다. Figure 1의 (a)는 MJSynth의 예시이다. 워드 박스 생성 과정은 다음과 같다.
1) 글꼴(폰트) 렌더링
2) 테두리 및 그림자 렌더링
3) 배경 색깔
4) 글꼴, 테두리, 배경의 구성
5) 투사 왜곡 적용
6) 현실 세계 이미지와 혼합
7) 노이즈 추가
[SynthText(ST)]
SynthText(ST) [8 : Synthetic data for text localisation in natural images. // CVPR, 2016] 도 MJ와 마찬가지로 합성 데이터셋이며, 원래 장면 텍스트 인식을 위해 설계되었다. 단어가 장면 이미지에서 렌더링되는 방법의 예는 Figure 1의 (b)에 나타나 있다. SynthText는 장면 텍스트 인식 작업을 위해 설계되었지만, 단어 box를 자르는 방식으로 STR에도 사용되어 왔다. SynthText는 잘려지고 영숫자가 아닌 문자로 필터링 된 단어 박스들로 구성된 5.5M(550만 개)의 Train 데이터를 가지고 있다.
이전 연구에서는 OCR 모델의 학습 데이터로 MJ, ST, 또는 다른 출처의 다양한 조합을 사용했다는 점에 유의한다. (2.서론의 Tabel 1 참고) 이러한 학습 데이터의 불일치들은 학습 모델의 성능 개선사항이 제안된 모듈의 기여 때문인지, 아니면 더 나은 또는 더 큰 훈련 데이터의 기여 때문이지에 대한 의문을 제기한다. 4.2. 학습 데이터에 대한 분석 (Analysis on Training Deatasets)에서 벤치마크의 최종 성능에 대한 train 데이터 집합의 영향을 설명한다. 또한 향후 STR 연구는 학습에 사용한 train 데이터셋을 명확하게 나타내고, 동일한 trian 데이터셋을 사용한 모델을 비교하는 것을 제안한다.
2.2. Real-World Datasets for Evaluation (학습 모델 평가를 위한 실세계 데이터셋)
학습이 완료된 STR 모델을 평가하기 위해 7개의 실세계 STR 데이터셋이 널리 사용되었다. 일부 벤치마크 데이터셋의 경우, 평가를 위해 각 이전의 연구에서 서로 다른 데이터셋의 서브셋(subsets)이 사용되었을 수 있다. (2.서론의 Tabel 1 참고) 이러한 서브셋의 차이는 일관성 없는 비교가 된다. 우리는 데이터셋을 정규 및 비정규 데이터셋으로 분류하여 소개한다. 벤치마크 데이터셋은 텍스트의 난이도 및 기하학적 레이아웃에 따라 "정규" 또는 "비정규" 데이터셋의 구분이 주어진다. [25 : Robust scene text recognition with automatic rectification. // CVPR, 2016] [30 : Learning to read irregular text with attention mechanisms. // IJCAI, 2017] [5 : Towards arbitrarily-oriented text recognition. // CVPR, 2018]
첫째, 정규 데이터셋에는 곡선이 없는 수평적인 텍스트 이미지가 포함되어 있다. 이는 STR 분야의 비교적 쉬운 문제이다.
[IIIT5K-Words (IIIT)]
IIIT5K-Words (IIIT) [21 : Scene text recognition using higher order language priors. // BMVC, 2012] 는 구글 이미지 검색에서 크롤링한 데이터 집합으로, "billboards", "signboard", "house numbers", "house name plates" 그리고 "movie posters"와 같이 텍스트 이미지를 반환할 가능성이 있는 query 단어가 있다. IIIT는 학습을 위한 2,000개의 이미지와 평가를 위한 3,000개의 이미지로 구성된다.
[Street View Text (SVT)]
Street View Text (SVT) [29 : End-to-end scene text recognition // ICCV 2011]에는 구글 Street View에서 수집한 outdoor street 이미지가 포함되어 있다. 이 이미지들 일부는 노이즈, 블러링, 혹은 저해상도이다. SVT는 학습을 위한 257개의 이미지와 평가를 위한 647개의 이미지로 구성된다.
[ICDAR2003 (IC03)]
ICDAR2003 (IC03) [20 : Icdar 2003 robust reading competitions. //ICDAR, 2003]은 카메라에 촬영된 장면 텍스트를 읽기 위한 ICDAR 2003 Robust Reading 대회를 위해 만들어졌다. 이는 1156개의 학습 이미지와 1110개의 평가 이미지를 가지고 있다. 세 글자 미만으로, 너무 짧거나 영숫자가 아닌 문자가 포함된 단어를 모두 무시하면 1,110개의 이미지가 867개로 줄어든다. 그러나 연구원들은 평가에 2가지 버전의 데이터셋을 사용했다. (버전 1 : 860개의 이미지, 버전 2 : 867개의 이미지) 두 버전의 차이는 7개의 워드 박스 누락인데, 이 누락된 워드 박스는 보충 자료에서 확인할 수 있다.
[ICDAR2013 (IC13)]
ICDAR2013 (IC13) [14 : Icdar 2013 robust reading competition. //ICDAR, 2013] 은 IC03의 대부분 이미지를 가지고 있고, ICDAR 2013 Robust Reading 대회를 위해 만들어졌다. 848개의 훈련 이미지와 1095개의 평가 이미지가 있으며, 영숫자가 아닌 문자가 있는 이미지로만 제한하면, 1015개의 이미지가 있다. 연구원들은 두 가지 버전을 평가에 사용했다. (버전 1 : 857개의 이미지, 버전 2 : 1015개의 이미지) 버전 1은 버전 2의 부분 집합으로, 3자 미만의 단어를 포함하지 않는다.
둘째, 비정규 데이터 집합은 곡면 및 임의 회전 또는 왜곡 텍스트를 포함하며, STR에서 어려운 유형들이다.
[ICDAR2015 (IC15)]
ICDAR2015 (IC15) [13 : Icdar2015 competition on roboust reading. // ICDAR, 2015] 은 ICDAR 2015 Robust Reading 대회를 위해 만들어졌다. 4,468개의 학습용 이미지와 2,077개의 평가용 이미지가 있다. 이미지들은 Google Glasses에서 가져왔다. 따라서 많은 이미지들이 노이즈가 있고, 흐릿하고, 회전, 저해상도이다. 다시, 연구원들은 평가에 두 가지 버전을 사용했다. (버전 1 : 1,811개의 이미지, 버전 2 : 2,077개의 이미지) 이전 논문 [4 : Towards accurate text recognition in natural images. // ICCV, 2017 & 2 : Edit probability for scene text recognition. // CVPR, 2018]에서는 버전 1만 사용했으며, 영숫자가 아닌 문자 이미지와 일부 극도로 회전된 원근법 변화 및 곡선 이미지는 평가를 위해 폐기했다. 폐기된 워드박스의 일부는 보충 자료에서 찾을 수 있다.
[SVT Perspective (SP)]
SVT Perspective (SP) [22 : Recognizing text with perspective distortion in natural scenes. // ICCV, 2013] 은 구글 Street View에서 수집되며, 평가를 위한 645개의 이미지를 포함하고 있다. 많은 이미지들이 전면이 아닌 관점(non-frontal viewpoints)으로 인한 원근 투영을 포함하고 있다.
[CUTE80 (CT)]
CUTE80 (CT) [23 : A robust arbitrary text detection system for nautural scene images. // Elsevier, 2014] 은 자연 장면에서 수집되며, 평가를 위해 288개의 잘라진 이미지를 포함하고 있다. 이것들 중 다수는 곡선 텍스트 이미지이다.
2.서론의 Tabel 1은 다른 벤치마크 데이터셋에서 모델을 평가한 이전 작업의 critical한 이슈를 제공한다는 점에 유의하시오. 구체적으로 평가는 IC03, IC13, IC15의 서로 다른 버전의 벤치마크에 대해 수행되었다. IC03에서 일곱 가지 예는 이전 성능과 비교했을 때, 0.8%의 큰 성능 격차를 유발할 수 있다. IC13과 IC15의 경우, 예제 숫자의 격차는 IC03보다 훨씬 크다.
3. STR 프레임워크 분석 (STR Framework Analysis)
이 절의 목표는 4단계(모듈)로 구성된 STR(Scene Text Recognition) 프레임 워크를 소개하는 것이다. 이 프레임 워크는 이전의 STR 모델들 사이의 공통점으로 유도 되었다. 그 후 각 단계의 모듈 옵션을 설명한다.
STR은 물체 감지와 같은 컴퓨터 비전 및 시퀀스 예측 과제와 유사하기 때문에, STR은 고성능 CNN(Convolution Neural Network)와 RNN(Recurrent Neural Network)의 혜택을 받았다. STR을 위한 CRNN(Convolution-Recurrent Neural Network)은 CNN과 RNN의 첫 번째 통합 어플리케이션으로, 입력 텍스트 이미지에서 CNN으로 Feature을 추출하고, RNN으로 재구성하여 강력한 시퀀스 예측을 한다. CRNN은 이후 성능 향상을 위해 여러 가지 변형이 제안되었다. [25, 16, 18, 17, 28, 4, 3]
예를 들어 임의 텍스트 형상을 수정하기 위해, 변환 모듈이 텍스트 이미지를 정상화하도록 제안되었다. [25, 18, 17] 또한 어수선한 글꼴 스타일과 배경을 가진 복잡한 텍스트 이미지를 처리하기 위해 개선된 CNN 피쳐 추출기가 통합되었다. [16, 28, 4] 그리고 추론 시간을 단축하기 위해, 일부 방법들은 RNN 단계를 생략하기도 했다. [3] 문자 시퀀스 예측을 개선하기 위해 attention based decoders가 제안되었다. [16, 25]
개요를 위해 Figure 3을 제공하고, 본 논문에서 사용한 모든 아키텍쳐는 보충 자료에서 찾을 수 있다. 기존 STR 모델에서 파생된 4단계는 다음과 같다.
1) 변환 (Trans.)
STN(Spatial Transformer Network) [12 : ]를 사용하여 입력 텍스트 이미지를 정규화한다. Downstream 단계를 쉽게 한다.
2) 피쳐 추출 (Feat.)
입력 이미지를 문자 인식에 관련된 속성에 초점을 맞춘 Feature에 mapping하는 동시에, 글꼴, 색상, 크기 및 배경과 같은 관련 없는 기능을 억제한다.
3) 시퀀스 모델링 (Seq.)
각 문자를 독립적으로 예측하는 것 보다는, 더욱 robustly하게 예측하는 다음 단계에서 사용할 수 있도록, 문자 시퀀스 내에 문맥 정보를 캡쳐한다.
4) 예측 (Pred.)
이미지의 식별화 된 Feature에서 출력 문자 시퀀스를 추정한다.
3.1. Transformation Stage
이 단계의 모듈은 입력 이미지 X를 정규화 된 이미지 ~X로 변환한다. 일반적인 장면 텍스트 이미지는 곡선 혹은 기울어진 텍스트와 같이, 다양한 형태로 나타난다. 만약 이러한 입력 이미지가 그대로 학습되는 경우, 후속 Feature 추출 단계에서는 이러한 기하하적 구조와 관련한 표현을 학습할 필요가 있다. 이러한 부담을 줄이기 위해 STN(Spatial Transformation Network)의 변형인 TPS(Thin-Plate Spline) 변환을 이용하여, 텍스트 라인의 다양한 가로 세로 비율을 유연하게 적용하였다.
TPS는 기준점 집합 사이에 Smooth Spline Interpolation을 사용한다. 보다 정확히 말하면, TPS는 상단과 하단의 감싸는 지점에서 여러 개의 기준점(Figure 3.의 녹색 "+" 표시)을 찾아 문자 영역을 미리 정의된 사각형으로 정규화한다. 우리의 프레임워크는 TPS의 선택 또는 해제를 허용한다.
3.2. Feature Extraction Stage
이 단계의 모듈에서 CNN은 입력 이미지 혹은 정규화 된 이미지를 추상화하여 시각적 피쳐맵을 출력한다. ( I는 피쳐맵에 있는 열(column) 수 이다.)
피쳐 추출기에 의해 생성된 피쳐 맵의 각 열에는 입력 이미지의 수평선을 따라 해당 구별 가능한 수용적인 필드가 있다. 이러한 Feature들은 각 수용적 필드의 성격을 추정하는데 사용된다. 이전에 STR의 피쳐 추출기로 사용되었던 VGG [26], RCNN [16], ResNet [10]의 세 가지 CNN 아키텍쳐를 연구하였다.
VGG는 여러 개의 convolution layer로 구성되며, 그 다음에 FCN(Fully Connected Layers)로 구성된다. RCNN은 문자 형태에 따라 수용 필드를 조정하기 위해 재귀적으로 적용할 수 있는 CNN의 변형이다. ResNet은 비교적 깊은 CNN의 학습을 완화하는 residual connection이 있는 CNN이다.
3.3. Sequence Modeling Stage
이 단계의 모듈은 Feat. 단계에서 추출된 Feature를 V 형상의 시퀀스로 재구성한다. 즉 피쳐 맵의 각 열(column)은 시퀀스의 프레임으로 사용된다. 그러나 이 시퀀스는 상황 정보의 부족을 겪을 수 있다. 따라서 이전 연구에서는 피쳐 추출 단계 후 H=Seq.(V)를 더 잘하기 위해 양방향 LSTM(BiLSTM)을 사용한다. 반면, Rosetta[3]는 계산 복잡성과 메모리 소비를 줄이기 위해 BiLSTM을 제거했다. 우리의 프레임워크는 BiLSTM의 선택 또는 해제를 허용한다.
3.4. Prediction Stage
이 단계의 모듈은 입력 H로 부터 일련의 문자를 예측한다. 이전 연구를 종합해 보면 다음과 같이 두 가지 예측 옵션이 있다.
1) CTC (Connectionist Temporal Classificaton) [6]
-> CTC는 일정한 수의 Feature를 통해, 일정하지 않은 갯수의 시퀀스 예측을 한다.
-> 주요 방법 : 각 열에서 문자를 예측하고, 반복된 문자와 공백을 삭제하여 전체 문자 순서를 비고정 문자 흐름으로 수정
2) Attn (Attention-based Sequence Prediction) [25, 4]
-> Attn은 입력 시퀀스 내의 정보 흐름을 자동으로 캡쳐하여, 출력 시퀀스[1]를 예측한다.
-> Attn은 STR 모델이 출력 클래스 의존성을 나타내는 문자 수준의 언어 모델을 학습할 수 있도록 한다.