OCR 시스템에서 가장 먼저 수행되는 단계는 무엇일까? 바로 글자 검출이다.
글자 검출은 이미지에서 읽어낼 글자가 놓여있는 영역을 찾아내는 기술이다.
글자 영역을 표현하는 방식 등 글자 검출 관련 기술과, 글자 검출 방법론들을 알아보겠다.
매우 높은 밀도
극단적 종횡비
특이 모양 - 구겨진 영역, 휘어진 영역, 세로 쓰기 영역
모호한 객체 영역
크기 편차
Regression-based : 이미지를 입력 받아 글자 영역 표현값들을 바로 출력함
단점
Arbitrary-shaped text : 불필요한 영역을 포함 (Bounding box 표현 방식의 한계)
Extreme aspect ratio : Bounding box 정확도 하락 (Receptive field의 한계)
Segmentation-based : 이미지를 입력 받아 글자 영역 표현값들에 사용되는 화소 단위 정보를 뽑고, 후처리를 통해서 최종 글자 영역 표현 값들을 확보!
글자 영역 중심에 해당하는지
H/4 x W/4 x 1 binary map - 글자 영역의 중심이면 1, 배경이면 0
GT bounding box를 줄여서 생성 (글자 높이의 30%만큼 end points를 안쪽으로 이동)
어떤 화소가 글자 영역이라면 해당 Bounding box의 위치는 어디인지
RBOX (rotated box, 직사각형+각도) 형식:
회전 각도 예측 -> 1 channel,
Bounding box의 4개 경계선까지의 거리를 예측 -> 4 channels
QUAD (quadrilateral, 좌표 4개) 형식:
Bounding box의 4개 점까지의 offset을 예측 -> 8 channels
Post-processing : RBOX 기준
Standard NMS : 복잡도가 O(N^2) 로 Dense prediction 상황에 부적합
Locality-Aware NMS : 인접한 픽셀에서 예측한 bounding box들은 같은 text instance일 가능성이 높음
-> 위치 순서(행 우선)로 탐색하면서 비슷한 것들을 하나로 통합하자. (IoU 기반)
-> 통합 시 score map값으로 weighted merge
loss function = loss for score map + loss for geometry map
Ls : Score map loss
Lg : Geometry map loss
직사각형은 IoU loss + 각도값은 cosine
Speed : Real-time 수준은 아니지만 빠른 속도 (일반적으로 30fps 정도부터 real-time)
LA-NMS의 속도 개선은 효과적 (T!: 네트워크 계산 시간, T": 후처리(NMS) 시간)