TNT 컴퓨터비전 스터디에서 이번주에는 CRAFT 논문을 정리하기로 했다.
**틀린내용 다수 존재합니다.
Abstract
- Scene text detection task를 수행할때, 각 글자를 rigid word-level bounding box로 잡는것은 다양한 모양의 글자를 잡아내는데 한계가 존재
- 논문에서는 각 글자와 그 관련성(affinity) 을 탐지하는 새로운 Scene text detection 방법을 제시
- 각 글자의 annotation의 부족을 해결하기 위해서, 합성된 이미지에서의 글자의 annotation과 실제 이미지에서의 중간학습된 이미지로 얻어진 글자의 ground truth를 사용
- 글자간의 관련성(affinity)을 예측하기 위해서 모델 새로운 representation을 학습
- TotalText와 CTW-1500같이 휘어진 텍스트가 존재하는 데이터셋에서 SOTA모델보다 좋은 성능을 보임
- 한쪽으로 치우쳐있거나, 휘어지거나, 변형된 텍스트 등 복잡한 scene text 상황에서 높은 유연성을 보임
Introduction
- 많은 분야에서 사용될 수 있는 Scene text detection은 여태까지 단어를 찾는 bounding box를 이용해옴
- 그러나 이렇게 단어를 bounding box친다면 글자의 배열이 휘어지거나 변형이 된다면 bounding box를 찾기 어려움
- 단어대신 글자 한개씩을 찾는것은 이러한 어려움을 해결할 수 있는 장점을 가지나, 많은 text 데이터셋은 글자 annotation을 가지지 않음
- 논문에서는 개별 글자를 찾아내고, 글자들을 잇게하는 text detector인 CRAFT를 제안
- CRAFT모델은 region score와 affinity score를 만들어 내는 CNN을 기반으로 함
-> region score: 이미지에서 개별 글자를 찾아내는데 사용
-> affinity score: 찾아낸 개별 글자를 하나의 instance로 묶는데 사용
- 개별 글자에 대한 annotation이 부족하기에 weakly-supervised learning을 사용하여 글자별 ground truth를 찾아냄
- 아래의 사진처럼 다양한 형태의 글자 배열에서도 CRAFT모델은 좋은 성능을 보임
Methodology
- CRAFT모델의 목적은 각 글자를 이미지에서 잘 찾아내는것
- 그렇게 하기 위해서 글자의 region과 affinity를 찾아내도록 neural network를 학습
- 글자별로 annotation된 데이터셋이 없어서 weakly-supervised learning으로 학습됨
Architecture
- CRAFT 모델에 사용된 CNN모델은 VGG16과 batch normalization을 사용했으며, U-net과 비슷하게 skip connection을 사용함
- 최종 output은 region score map과 affinity score map에 해당하는 2개의 channel을 가짐
Training
Ground Truth Label Generation
- 논문에서는 글자단위 annotation을 가진 합성 이미지에서 ground truth를 생성
- 각 학습이미지에서, 각각의 글자의 bounding box에 region score와 affinity score에 해당하는 ground truth를 생성
-> region score는 어떤 픽셀이 한 글자의 중심일 확률을 나타냄
-> affinity score는 인접한 두 글자 사이의 공간의 중심이 될 확률을 나타냄
- 각 글자의 두가지 확률을 Gaussian heatmap으로 인코딩하였고, heatmap representation을 이용하여 region score와 affinity score을 학습
- 논문에서는 3가지 step으로 region score와 affinity score를 위한 ground truth를 생성
1) 2차원의 isotropic Gaussian map을 준비
2) 각 글자의 bounding box와 Gaussian map 지역 사이의 perspective transform(?)을 계산
3) Gaussian map을 box로 감쌈
- affinity score를 위한 ground truth를 만들때는 위의 그림과 같이 각 글자의 bounding box의 대각선으로 만들어진 상하단 삼각형의 중심을 네개의 꼭지점으로 가지는 affinity box를 만듬
- 이렇게 생성된 ground truth는 더 긴 길이의 text를 인식할 수 있게 해줌
- 이러한 CRAFT모델의 글자단위 detection은 convolutional filter가 각 글자의 글자-글자간에 집중할 수 있게 해줌
Weakly-Supervised Learning
- 합성 데이터셋과 다르게, 실제 이미지는 단어 단위 annotation을 가짐
- 논문에서는 weakly supervised 방식으로 글자단위 annotation을 생성
- 단어 단위의 annotation이 주어지면, 중간 학습된 모델은 cropped된 단어 이미지에서 글자의 region score를 예측하여 글자단위 bounding box를 생성
- 중간 모델의 예측에 reliability를 반영하기 위해서, 각 word box의 confidence map 값이 word box 안의 글자수로 나뉘어져서 부분적으로 계산됨
- 위의 사진은 단어를 글자로 나누는 과정을 보여줌
1) 단어 단위 이미지가 이미지로부터 crop됨
2) 모델이 잘려진 이미지를 학습하여 region score를 예측하도록함
3) watershed algorithm을 사용하여 글자 region을 나누는데, 이것은 글자 bounding box를 생성
4) 원래 이미지로 글자 bounding box를 이동
- 이렇게 얻어진 글자 단위 bounding box에서 pseudo-ground truths를 얻을 수 있음
- weak-supervision으로 학습을 하게되면 불완전한 pseudo-GT로 학습을 하게 되는데, 예를들어 부정확한 region score로 학습을 하게 된다면 글자 위치가 blur해짐
- 이것을 방지하기 위해서 pseudo-GT의 품질을 단어 길이로 측정함
- 학습을 진행할수록 CRAFT모델은 각 글자를 정확하게 예측할 수 있었음(위의 그림 참고)
- 위의 그림은 학습진행과정에서의 글자의 region score map을 나타냄
Inference
- 최종 output은 단어단위, 글자단위, 다각형의 다양한 형태로 나올수 있게함
Experiment
- 다양한 데이터셋에서 precision, recall, H-mean에서 좋은 결과를 보임