Text Detection

유승우·2022년 5월 13일
0

일반 객체 영역 검출 vs 글자 영역 검출


  • 예측하고자 하는 정보

    • 일반 객체 검출 : 해당 객체의 클래스와 위치를 예측하는 문제
    • 글자 검출 : Text 라는 단일 클래스이기 때문에 객체 위치만 예측하는 문제
  • 객체의 특징

    • 일반 객체 검출 : 비교적 낮은 밀도
    • 글자 검출 : 매우 높은 밀도, 극단적 종횡비, 특이 모양(구겨짐, 휘어짐, 세로 쓰기), 모호한 객체 영역, 크기 편차
  • 사각형 종류들

    • 직사각형

      • (좌상단 위치, h,w ) 또는 (좌상단 위치, 우하단 위치)
    • 직사각형 + 각도

    • 사각형

      • 첫 글자의 좌상단 이후 시계방향으로 표현
    • 다각형

      • Arbitrary-shaped text를 주로 다루는 최근의 벤치마크들에 적합
      • 일반적으로 2N points를 이용하고, 상하 점들이 쌍을 이루도록 배치

Taxonomy


  • Human Detection

    • Software 1.0 방식에서 2.0으로 넘어오면서 비약적인 발전이 이루어졌다.
    • 사람의 개입 없이 특징추출과 판단하는 연산이 모델 구조 데이터 최적화 방식에 의해서 자동으로 정의된다.
  • Software 1.0

    • 사람이 개입해서 만든 HOG라는 영역 대신 MSER, SWT와 같은 특징추출 방식을 사용하였다.

    • 또한 MSER 뿐만 아니라 다른 연산들도 연속적으로 사용하여 글자 영역을 검출하였다.

    • 따라서 software 1.0은 많은 모듈들이 결합되어 있는 구조이기 때문에 전체 파이프라인 복잡도가 높다.

    • 반면, 2.0에서는 파이프라인의 단순화와 사람의 개입을 모두 줄일 수 있으며, 성능 또한 높일 수 있었다.

Regression-based vs Segmentation-based


  • Regression-based

    • 이미지를 입력으로 받아 글자 영역을 표현해주는 값을 바로 추정하는 것

    • TextBoxes’18

      • SSD를 글자 영역 검출 task에 맞게 수정한 방법
      • SSD처럼 고정 위치,크기의 anchor box를 사용하여 글자 특성에 맞게 anchor box의 밀도와 종횡비를 수정하였다.
      • 모델에서 추정하는 것은 특정 anchor box를 기준으로 실제의 글자 영역에 해당하는 box와의 차이값을 조정하게 된다.
      • 이 차이값과 anchor box의 정보를 이용하여 실제 글자 영역의 위치를 표현할 수 있다.
      • 정리하면, 이미지를 입력 받아 각 anchor box별로 실제 글자 영역의 상대 위치와 상대 크기값을 추정하는 모델이다.
      • 단점
        • 사각형 위주의 글자표현 방식만이 효과적으로 대응될 수 있기 때문에 임의의 형상을 가진 글자 영역은 적절히 표현하기 어렵다.
        • anchor box보다 훨씬 큰 종횡비를 갖는 글자 영역의 경우 성능이 떨어진다.
  • Segmentation-based

    • 이미지를 입력으로 출력 값이 화소단위의 정보가 되는데, 이 정보는 간단한 후처리를 통해 최종 글자 영역 표현값들이 확보가 가능한 정보이다.

    • PixelLink’18

      • 화소 단위로 뽑는 정보가 각 화소 별로 글자 영역에 속할 확률을 추출한다.

      • 또한, 어떤 한 화소가 글자 영역에 속하면 그 주위에 8개에 인접한 화소도 글자 영역에 속하는지에 대한 정보도 추출한다.

      • 화소 단위 정보를 추출한 뒤에는 후처리를 통해서 최종 글자 영역 표현 값들을 확보한다.

      • 단점

        • 고성능을 위해서 생각보다 후처리가 복잡해질 수 있으며 이로 인해 적용하는 시간도 길어 질 수 있다.
        • segmentation 방법은 기본적으로 글자 영역에 속할 확률 값을 활용하는데, 글자 영역이 인접해 있으면 원래는 별도 영역이어야 하지만, 하나의 영역으로 검출될 확률이 높다.
  • hybrid

    • Regression-based로 대략의 사각영역을 추출 + Segmentation-based로 해당 영역에서 최소 정보 추출

    • MaskTextSpotter’18

      • Fast RCNN으로 사각 영역을 검출하고, 해당 영역에서 글자 영역을 조금 더 정확히 찾아내기 위한 화소 정보 추출
  • Character-Based Methods

    • Character 단위로 검출하고, 이를 조합해서 word instance를 예측
    • 이런 방식을 이용하기 위해선 Character-level GT가 필요하다는 단점이 존재한다.
  • Word-Based Methods

    • Word 단위로 예측하는 것으로, 대부분의 모델이 이에 해당한다.

CRAFT’19


  • Segmentation 기반으로 동작하며 이 때 뽑는 화소별 정보는 글자별 위치 정보와 글자간에 연결되어있는지에 대한 정보이다.
  • 이 둘을 겹쳐놓고 이진화를 수행하면 쉽게 글자 영역을 확보할 수 있다.
  • 이렇게 동작되기 위해선 글자별 위치에 대한 라벨링이 필요한데 CRAFT에서는 단어 단위 라벨링이 있으면 이로 부터 글자 단위 라벨링을 추정하는 Weakly-Supervised learning을 제안했다.

EAST (An Efficient and Accurate Scene Text Detector)


  • Software 2.0방식으로 개발되어 제대로 성과를 낸 첫 논문이다.
  • 그래서, 1.0 방식들과 비교하여 단순한 파이프라인을 가지며 성능과 속도가 모두 뛰어나다.

  • 일종의 Segmentation 기반의 방법으로 AI 모델을 통해서 화소 단위 정보를 추출하고, 후처리를 통해 글자 영역을 검출한다.

  • 네트워크가 2가지 정보를 pixel-wise로 출력

    • 각 화소가 글자 영역 중심에 해당하는지 : score map

      • 글자 영역이 있을 때 해당 글자 영역의 중심에 해당하는 지를 나타낸다.
    • 어떤 화소가 글자 영역이라면 해당 bounding box의 위치는 어디인지 : geometry map

      • 어떤 화소가 글자 영역 내에 있으면 해당 bounding box의 위치에 대한 정보를 나타낸다.
  • Architecture

  • 전체적으로 보면 Segmentation의 base가 되는 U-net 구조로 볼 수 있다.

  • 크게 3가지로 구성되어 있다.

    1. Feature extractor stem(backbone)

      • PVANet, VGGNet, ResNet 50
    2. Feature merging branch

      • 특징 맵의 크기를 키워줘야 하므로 Unpool operation을 사용하였다.
    3. Output

      • 화소 단위 정보를 만들어주는 부분

      • Score Map

        • 이미지 크기가 가로,세로 별로 1/4 축소한 binary map이다.
          • 1 인 경우 글자 영역의 중심이고, 0이면 중심이 아니다.
        • 정답을 만들어 낼 때는 GT bounding box에서 중앙으로 영역으로 줄여서 글자 중심 영역을 만들고 이진 값으로 map을 채운다.
        • 단, 추론할 경우 score map을 예측할 때 0과 1사이의 실수값이 나오도록 하여 글자 영역 중심에 나올 확률로 해석한다.
      • Geometry Map

        • 어떤 화소가 글자 영역이라면 해당 Bounding box의 위치가 어디인지 나타낸다.

        • RBOX(rotated box) 형식

          • 만약 글자 영역을 RBOX라고 표현한다면 회전각도와 각 box의 4개 경계선까지의 거리를 예측한다. → 5 channels

          • 각도 값의 경우, 글자 중심 영역의 모든 화소와 연관되어 있는 bounding box는 하나이고, 이 각도 값을 θ\theta라 할 수 있다.

          • 사각형에 대한 정보 중 첫 번째 channel은 글자 중심 영역의 어떤 화소에서 해당 bounding box의 좌변까지의 거리 값으로 값을 채울 수 있다. → 좌변에서 멀어질수록 큰 값을 가지게 된다.

          • 두 번째 channel은 글자 중심 영역 화소에서 bounding box의 우변까지의 거리 값으로 채운다.

          • 세 번째와 네 번째 channel은 각각 상변과 하변까지의 거리 값으로 채운다.

          • 종합해보면, 글자 중심 영역의 화소 위치에서 5개의 channel에 해당하는 값을 채워넣는데, 각도 값과 bounding box까지의 거리로 채워넣는다.

        • QUAD(quadrilateral, 좌표 4개) 형식

          • 좌표가 4개이므로, 좌표 값은 좌표당 x, y 값 총 8개의 channel로 이루어진다.
          • 글자 중심 영역의 어떤 위치에서 첫 2개의 channel은 bounding box의 첫 번째 좌표까지의 좌표값의 차이를 x, y값을 따로 계산하여 채운다.
          • 이런식으로 총 8개의 channel로 geometry map을 구성할 수 있다.
      • 이렇게 화소 단위 정보를 획득한 다음에는 후처리를 통해 글자 영역의 표현값을 계산해야 한다.

      1. score map을 임계치를 통해 이진화를 한다.

      2. 사각형의 좌표 값을 복원한다.

        1. P0 ~ P3의 좌표를 쉽게 구할 수 있는 좌표축을 새로 설정
        2. 좌표축을 이미지 좌표축으로 변환하는 과정을 구한다.
        3. 이 변환의 역변환을 좌표값들에 적용한다.
        • 이렇게 사각형 좌표값이 복원되었다면 글자 중심 영역 좌표 하나 당 예측 bounding box가 하나 나오게 되며, 실제 예측 결과는 글자 중심 영역 내 화소 별로 모두 구하므로 엄청 많은 bounding box가 나타난다.
        • 이때 NMS방법을 사용하면 매우 많은 연산량이 필요하기 때문에 새로운 방식을 제안한다.
      3. Locality-Aware NMS

        • IOU가 높은 bounding box들이 많으므로, 빠르게 합치고 기존의 NMS를 적용하자는 아이디어
        • 인접한 픽셀에서 예측한 bounding box들은 같은 text instance일 가능성이 높다.
          • 위치 순서로 탐색하면서 비슷한 것들을 하나로 통합하자.
          • 통합 시 score map 값으로 weighted merge
  • Training

    • Loss

      • 전체 loss function : loss for score map + loss for geometry map

      • LsL_s : score map Loss

        • 예측 확률값과 GT의 값에 대한 Loss

        • 논문에서는 Class-balanced cross-entropy를 사용하였다.

        • 하지만 베이스 코드에서는 세그멘테이션에서 자주 사용하는 Dice-coefficient를 사용하였다.

        • 교집합은 element wise 로 곱하는 것으로 구현하였으며 절대 값은 score의 합으로 계산하였다.

      • LgL_g : Geometry map

        • 사각형의 정보에 해당하는 Loss와 각도 값에 해당하는 Loss 값으로 최종 Loss를 계산한다.

      • LAABBL_{AABB} : 사각형의 정보에 해당하는 Loss

        • 정답 사각영역과 예측 사각영역에 대한 Loss 값으로 IOU기반의 계산식으로 실제 계산이 이루어진다.
        • 이 때 분모에서 사각 영역에 대한 합집값을 구해야 하는데, 교집합에 대한 절대값과 각 영역에 대한 절대값을 통해 계산할 수 있다
      • 각도 값에 대한 Loss인 경우 Cosine 기반의 Loss를 이용한다.

    • 학습된 모델 성능 평가

      • F-score & Speed

        • PVANet을 backbone으로 사용한 경우 Real-time 수준은 아니지만 빠른 속도를 보인다

        • 또한, LA-NMS의 속도 개선은 효과적이다.

0개의 댓글