Faster RCNN
과 같이 object detection task에 사용된 모델을 응용한 시도도 있었으나, 객체나 물체는 일종의 "덩어리"느낌으로 감지를 한다면 문자의 경우에는 (1) 문자가 맞는지의 여부 (2) 이어져 있는 sequence 감지 등 더 accurate한 localization을 필요로 하게 된다.CTPN: Connectionist Text Proposal Network
라는 모델을 제안한다. 사실 이 논문은 2016년에 공개 되었기 때문에 이후에 나온 arbitrary text 를 감지하는데 효과적인 EAST
, CRAFT
등과 같은 논문과 달리 horizontal text인식에 강력하다.(1) Text Detection
VGG16의 마지막 convolutional layer의 output feature map에 Conv2d 3x3
을 적용한다. feature map의 크기는 input image의 크기에 따라 다르지만, stride = 16 receptive field = 228
로 고정되어 있다.
원래 sliding window 알고리즘을 사용한다고 하면 각각의 서로 다른 크기의 window는 각각에 맞는 크기의 object를 detect하도록 한다. 이렇게 여러 크기의 window를 통해서 multi scale detection이 가능했었다. 하지만 CTPN 모델에서 사용하는 anchor regression mechanism
을 통해서 single window만으로도 다수의 flexible anchor에 의해서 다양한 scale이나 aspect ratio를 갖는 object predict가 가능하다.
--> 논문에서 주장하는 text와 object의 결정적인 차이는 text가 뚜렷한 boundary가 존재하지 않는다는 것이다. 다른 물체의 일부를 문자로 착각할수도 있고, text sequence는 stroke, character, word등 분할이 여러가지로 가능하다.
그래서 논문의 저자들은 Region Proposal Network를 사용하게 되면 horizontal 방향의 text box를 예측하기가 힘들며, 문자 하나하나가 사실은 분리되어 있기 때문에 sequence의 시작과 끝을 찾는데에 어려움을 갖는다는 점에 집중한다.
--> 논문의 저자들은 16px크기의 text proposal 각각이 character의 일부, 혹은 다수의 character을 포함하고 있을 것이라고 한다. 따라서 예측하기 어려운 horizontal location은 고정을 하고 각각의 proposal의 vertical location을 예측하도록 모델을 설계한다.
- 결과적으로 CTPN은 text 영역의 Y_min, Y_max을 predict하는 것이다.
RPN이 4개(=X_min,Y_min, X_max, Y_max)를 예측하는 것과 달리 CTPN은 Y_min, Y_max만을 predict하게 되어서 search space도 줄일 수 있다.
(2) HOW IT WORKS
위와 같이 horizontal, vertical 방향 모두에 대해서 다른 값을 갖는 anchor box를 예측하는 RPN과 달리 CTPN은 하나의 Region proposal에서 총 10개의, 높이가 11~273px까지 다양하다. Region proposal box의 가로길이는 16, 세로 길이는 h이기 때문에 원래 유용한 receptive field의 크기로 간주되는 228x228에 비해서 연산량이 적게 필요하다.
RPN도 역시나 input으로 pretrained CNN 모델의 convolutional layer의 output feature map이다. 그런데 Text는 순서가 있는 sequence이기 때문에 이전의 hidden state에 대한 정보도 저장하며, backpropagation이 잘 되는 LSTM layer을 사용하고 이 256D의 output
감지된 text proposal영역은 text score > 0.7인 영역에 대해서 non-maximum suppression을 사용해서 모델의 output을 통해서 구해진다.