-
[Paper short review] It’s About Time: Analog Clock Reading in the Wild 논문 리뷰Paper short review 2021. 11. 30. 16:31반응형
@ 굵은 글씨는 중요한 내용, 빨간 글씨는 내가 추가한 내용
https://arxiv.org/pdf/2111.09162v1.pdf
0. Abstract
본 논문에서는 이미지 혹은 비디오에서 아날로그 시계를 읽기 위한 방법론을 제안한다. 다음과 같은 기여를 한다.
- 합성 시계를 생성하기 위한 파이프라인을 통해 labeling 비용 감소
- 시계 정렬과 인식을 end-to-end로 학습한 spatial transformer networks (STN)에 기반한 시계 recognition 방법론을 제안 (합성 dataset에서 훈련된 후 실제 image에 잘 적용됨)
- label이 없는 dataset에 대해 신뢰할 수 있는 유사 label을 생성하는 방법 제안
추가적으로 COCO, open images, the clock 영화를 기반으로 한 dataset을 제안한다.
3. Architecture
본 논문의 목표는 이미지에서 아날로그 시계를 읽을 수 있는 알고리즘을 제안하는 것이다. 이를 위해 아래와 같은 프레임워크를 제안한다. 아키텍처는 image input -> sequentially undergoes cropping -> alignment -> reading 순으로 진행된다.
3.1. Clock Localisation Module (Φloc)
Image I가 input된 후, object detection network(Φloc)를 통과하여 시계 localize와 crop을 수행한다.
Detection 단계에서는 기존의 성능 좋은 detector(Cbnetv2)를 사용한다. 해당 network를 통과한 output을 I_crop이라 한다.
3.2. Clock Recognition Module (Φrec)
I_crop은 classification network로 전달될 수 있지만 이는 다음과 같은 이유때문에 이상적이지 않다.
- 시계 localization 모듈의 결함
- 시점 각도에 따른 인식 어려움
이러한 문제를 해결하기 위해 정렬을 위한 spatial transformer network(STN)를 채택하여 인식을 용이하게 한다.
더보기Spatial transformer network (STN)
CNN을 통해 이미지 분류를 할 때, 특정 부분을 떼어내서 집중적으로 학습시키는 것 (자동으로 적당한 affine transformation을 수행하게끔)
Spatial Transformer Network (Φstn)
Φstn은 I_crop을 input으로 받아 8개의 homography 변환 파라미터를 출력합니다.
여기서 H_hat ∈ Rˆ3×3은 8개의 자유도에서 예측된 homography 변환을 의미하며, SAMPLER(·)는 I_crop을 표준 이미지I_canonical (시계가 정면에 평행하고 '12' 위치가 맨 위에 있는 이미지)로 변환하는 구별 가능한 warping을 나타낸다.
Classification Network (Φcls)
시간을 판독하기 위해 시간을 정량화하고, 인식 문제를 720방향(12 x 60)으로 분류한다. 구체적으로, 우리는 각 class에 대한 확률을 출력하는 classification network에 I_canonica (Φstn와 SAMPLER를 거친 output)를 input 한다.
각 network (Φstn, Φcls)는 ImageNet에서 pretrained된 표준 ResNet-50이다.
아키텍처를 도입한 후 드는 의문: After introducing the architecture, one question remains: how can we efficiently train this clock recognition module, without a laborious annotation procedure?
4. Synthetic Data and Sim2Real Training
번거로운 수작업의 labeling을 피하기 위해 Sim2Real 학습을 제안한다.
4.1. Synthetic Clock Generator (SynClock)
Text spotting에 기반하여 합성 아날로그 시계를 생성하기 위한 파이프라인을 제안한다. 다음과 같은 변수들을 변경시켜 생성한다.
- 배경: 색상.
- 시계면: 크기, 모양, 색상.
- 시계 테두리: 두께, 색상.
- 눈금 표시: 매분 또는 매시간 눈금을 사용할지 여부, 테두리로부터의 간격, 길이, 두께, 색상.
- 숫자: 숫자, 테두리와의 간격, 글꼴, 글꼴 크기, 글꼴 두께, 색상 여부.
- Hands: 2, 3 또는 4개의 손(시, 분, 초, 알람), 시간, 길이, 뒷 길이, 두께, 색상, 화살표, 끝 길이, 화살표 크기 중 어느 것을 사용할지 여부. (각 손마다 다를 수 있음)
- Artefacts: 그림자, random lines, random homography transformation.
- Augmentation: random blur, color channel jittering
아래는 그 예시이다.
4.2. Training on SynClock
이러한 data generator를 통해 spatial transformer와 classification network 모두 학습할 수 있다. Φstn와 Φcls는 SynClock에서 생성된 ground-truth transformation (H)과 time (t)을 사용하여 L1 loss와 cross-entropy loss로 학습된다.
6. Experimental Setup
6.3. Evaluation metrics
이 task가 새로운 만큼 기존의 평가 지표가 없다. 따라서 다음과 같은 평가 기준을 제안한다.
- Hour accuracy: 시간 중 (시)의 정확도
- Minute accuracy: 시간 중 (분)의 정확도 (예측 분율이 +-1 여백 내에서 정확할 때, 우리는 이것이 특히 초침의 부재로 인해, 중간 사건을 해결하는 데 있어 인간의 가독성의 한계에 가깝다고 생각한다.)
- Overall accuracy: 시간의 (시)와 (분)의 정확도 (Hour+Minute accuracy)
추가적으로 상위 1, 2, 3의 예측 정확도에 대해서도 확인한다.
7. Results
아래 그림은 평가 dataset (실제 이미지)이다.
7.1. End-to-end Results
전체 모델의 결과는 아래 표에 나와있다. 모델이 까다로운 dataset에서 성공하였음을 보인다.
7.2. Localisation-only Results
localization과 recognition의 결과를 분리하기 위해 localization의 결과를 먼저 확인한다. 결과는 아래 표와 같다. 결과는 상당히 성공적인 것을 확인할 수 있다.
7.3. Recognition-only Results
Recognition 성능 평가를 위해 bounding box IoU가 50%이상인 image만 선택한다. 결과는 다음 표와 같다.
7.4. Qualitative Visualisation
제안 방법론의 질적 결과는 다음 그림과 같다. 다양한 시계에 대해 일반화할 수 있으며, 저해상도 및 정렬 문제까지 해결할 수 있음을 보여준다.
맨 아래 왼쪽 그림의 경우, 본 모델의 한계를 확인할 수 있다. 해당 이미지는 시침과 분침이 비슷한 길이를 갖는다. 인간의 경우, 시침과 시간 mark(숫자)사이의 상대적 위치를 보기 때문에 정확한 시간을 알 수 있다 (10:31). 즉, 모델이 예측한 6:51이 되려면, 시침은 6이 아니라 7에 가까워야 한다. 본 모델은 아직 이러한 수준의 추론에서 어려움을 겪는다 (모델은 720개의 각도로 나누어 판단).
8. Conclusion
실제 이미지나 비디오 내에서 시계 판독을 위한 알고리즘을 제안한다. 또한, 합성 dataset generator SynClock을 제안하여 부족한 dataset을 보충하고, uniformity 제약 조건을 사용하여 반복적으로 pseudo-labelling한다.
더보기Pseudo Labelling
semi supervised learning 중 대표적인 기법이다.
- supervised learning: labeling이 되어있는 dataset 학습
- unsupervised learning: labeling이 되어있지 않은 dataset 학습
- semi supervised learning: 일부만 labeling이 되어있는 dataset 학습
위의 그림과 같이 1차적으로 labeled data를 통해 모델을 학습(supervised)한 후, unlabeled data에 가짜(pseudo)로 labeling을 수행한다. 그 후 labeled data와 pseudo-labeled data를 합쳐(big dataset) 모델을 학습한다.
그리고 정확한 시간 label을 가진 dataset을 제안한다.
이러한 알고리즘을 통해 text spotting과 object detection과 같은 task로 확장 될 수 있을 것이다.
My discussion
Why this paper?
기존 computer vision에서 연구가 수행되어 왔던 논문들과는 좀 다르게 딱 하나의 object를 대상으로(그것도 아날로그 시계 읽기,,!) 연구를 수행한 것이 재밌었고, 왜 트위터에서 많이 언급되는지 신기한 마음에 읽어보기로 결정
--> 사실 생각보다 별거 없다고 생각함. 그냥 소재 자체가 재밌어서 쉽게 읽은 논문.
--> 이러한 연구를 수행한 논문이 없다보니 성능 지표도 직접 설정하였고, 결과가 좋은지 나쁜지 감이 안옴.
--> 생각보다 저해상도, 왜곡이 존재하는 image에 대해서도 잘 인식하는 게 신기함.
반응형'Paper short review' 카테고리의 다른 글