You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
그냥 VL 파이프라인 그으대로 가져온 형태.
다른 점은 character encode.
image - text pair 정보 필요.
transfer 하는 부분은 backbone 에 한정.
decoder 나, text encoder 는 전부 버림.
Methodology
Character-Aware Text Encoder
character embedding (ce)은 다음 수식으로 구한다
n은 Text instance 개수 (i 로 indexing)
t_i 는 특정 word 가 되는 거고,
c^i_j 는 t_i 내부의 각 character 가 되는 형태.
W_c 는 character embedding matrix
PE 는 learnable setting 사용 (not sinusoidal)
character encoder 말고, 일반적으로 사용하는 encoder 로도 위 파이프라인을 학습해 봤다.
최종 transfer 대상인 visual encoder 영역의 attention 을 뽑아보면, 다음과 같다.
character encoder 써야 좋다 ㅇㅇ
pretrain 할 때, 25 자 text까지만 input으로 활용한다.
recognizer batch 는 이미지당 3 개까지만.
다시 말해, 이미지당 3개의 word 씩만 학습에 사용.
Visual-Textual Decoder
6 stacked decoder layer
이미지당 3개의 word 씩만 학습에 사용하므로, output도 3개가 나오게 된다.
character encoder 25 개 각각 query 로 들어가므로, output 굳이 따지면 (B, 25, 3) ㅇㅇ
masking 은 그냥 word 당 하나씩만 넣음.
ratio 분석하고 그런 거 없음.
Network Optimization
CLS loss 는 masking 위치에 한해서 CE loss
CL loss 는 CLIP 비스무레하게 가져감.
image 기준, CL 에 text 기준 CL 해서 두 개 더해줌.
bai 붙은 사람들은 다 OCR을 잘 하는 걸까? (
![image](https://user-images.githubusercontent.com/16400591/158283259-b4b22e15-3412-4e23-a90c-d60eb84fc676.png)
xiang bai 센세에 이어..)OCR task 를 위한 pretraining strategy 제안.
paper
INTRO
3개의 pipeline 을 그림으로 표현
그냥 VL 파이프라인 그으대로 가져온 형태.
다른 점은 character encode.
image - text pair 정보 필요.
transfer 하는 부분은 backbone 에 한정.
decoder 나, text encoder 는 전부 버림.
Methodology
Character-Aware Text Encoder
character embedding (ce)은 다음 수식으로 구한다
![image](https://user-images.githubusercontent.com/16400591/158288680-142a4f6c-4822-495d-81c9-cfeffddd0793.png)
![image](https://user-images.githubusercontent.com/16400591/158288807-e480ceab-d87d-4f7b-809d-4da5340a2833.png)
![image](https://user-images.githubusercontent.com/16400591/158288835-d617521a-013a-4bac-aeef-8fc7f0713379.png)
n은 Text instance 개수 (i 로 indexing)
t_i 는 특정 word 가 되는 거고,
c^i_j 는 t_i 내부의 각 character 가 되는 형태.
W_c 는 character embedding matrix
PE 는 learnable setting 사용 (not sinusoidal)
character encoder 말고, 일반적으로 사용하는 encoder 로도 위 파이프라인을 학습해 봤다.
![image](https://user-images.githubusercontent.com/16400591/158288493-0c1b6f16-7d8f-473d-9472-c0642df92b7f.png)
최종 transfer 대상인 visual encoder 영역의 attention 을 뽑아보면, 다음과 같다.
character encoder 써야 좋다 ㅇㅇ
pretrain 할 때, 25 자 text까지만 input으로 활용한다.
recognizer batch 는 이미지당 3 개까지만.
다시 말해, 이미지당 3개의 word 씩만 학습에 사용.
Visual-Textual Decoder
6 stacked decoder layer
이미지당 3개의 word 씩만 학습에 사용하므로, output도 3개가 나오게 된다.
character encoder 25 개 각각 query 로 들어가므로, output 굳이 따지면 (B, 25, 3) ㅇㅇ
masking 은 그냥 word 당 하나씩만 넣음.
ratio 분석하고 그런 거 없음.
Network Optimization
CLS loss 는 masking 위치에 한해서 CE loss
![image](https://user-images.githubusercontent.com/16400591/158293970-73cf3490-d5cf-48b8-9072-07bbf2ab50de.png)
CL loss 는 CLIP 비스무레하게 가져감.
![image](https://user-images.githubusercontent.com/16400591/158294030-12d9955c-f2ee-46af-81b0-eefaf2ffa5fe.png)
![image](https://user-images.githubusercontent.com/16400591/158294131-58d62d75-0776-47fa-a14f-4901aa91e2e3.png)
image 기준, CL 에 text 기준 CL 해서 두 개 더해줌.
최종 loss. scaling 은 없음
![image](https://user-images.githubusercontent.com/16400591/158294116-377eb29b-b38f-45a9-ac3c-020c6e709204.png)
Note
물론 TCL 방식은 parameter 가 많이 늘어나긴 하지만.)Impl. Detail
Pretraining
Finetuning
각 모델 설정 따름
Results
ICDAR19-LSVT Detection
‘+Ours’ == IC19-LSVT 400,000 image 사용. pretrained model
![image](https://user-images.githubusercontent.com/16400591/158286395-51f085f5-9149-400e-b430-e1cf7df48444.png)
ICDAR19-LSVT E2E
‘+Ours’ == IC19-LSVT 400,000 image 사용. pretrained model
![image](https://user-images.githubusercontent.com/16400591/158286180-406f0744-8da7-412b-b5b1-0bd8674ffd9e.png)
NED == Normalized Edit Distance
Pretrain Data portion 에 따른 성능
PSENet (Synth pretrain + TotalText finetune)
![image](https://user-images.githubusercontent.com/16400591/158285996-c276a3f9-b622-49a6-921d-659601f3fa4a.png)
‘+Ours’ == synthtext pretrained model
다른 Pretraining technique 비교
pretrain set 은 synthtext 로 통일
![image](https://user-images.githubusercontent.com/16400591/158285372-a310e035-8d5e-45a5-a8f5-c562a0173adb.png)
‘+Ours’ == synthtext pretrained model
CTW 1500 Detection
‘+Ours’ == synthtext pretrained model
![image](https://user-images.githubusercontent.com/16400591/158285336-04dfacc5-97a7-4021-95da-890af0351da0.png)
TotalText Detection
‘+Ours’ == synthtext pretrained model
![image](https://user-images.githubusercontent.com/16400591/158284630-cabd41ae-6a2c-4846-875a-3e2483adad30.png)
IC15 Detection
‘+Ours’ == synthtext pretrained model
![image](https://user-images.githubusercontent.com/16400591/158284598-f5d699f9-21cf-4f52-9303-2a2f43a65ab5.png)
IC15 & TotalText E2E
‘+Ours’ == synthtext pretrained model
![image](https://user-images.githubusercontent.com/16400591/158284112-7cb8ae71-3a4e-4faa-bcea-df90a9c07ab4.png)
Ablation
PSENet (Synth pretrain + TotalText finetune)
CAE == Character Aware Encoder
![image](https://user-images.githubusercontent.com/16400591/158284213-f356eb70-ae20-4f44-9e05-c07c9003d42e.png)
VTD == Visual Textual Decoder
BCL == Batch-level Contrastive Loss
The text was updated successfully, but these errors were encountered: