๋ณธ ๋ํ์ ์ฃผ์ ๋ ์์ ์ด๋ฏธ์ง๋ฅผ LaTex ํฌ๋งท์ ํ ์คํธ๋ก ๋ณํํ๋ ๋ฌธ์ ์์ต๋๋ค. LaTex์ ๋ ผ๋ฌธ ๋ฐ ๊ธฐ์ ๋ฌธ์ ์์ฑ ํฌ๋งท์ผ๋ก, ์์ฐ ๊ณผํ ๋ถ์ผ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ดํ ๋ฌธ์ ์ธ์(optical character recognition)๊ณผ ๋ฌ๋ฆฌ ์์์ธ์์ multi-line recognition์ ํ์๋ก ํฉ๋๋ค.
์ผ๋ฐ์ ๋ฌธ์ฅ๊ณผ ๋ฌ๋ฆฌ ์์์ ๋ถ์์ ๋ถ์ยท๋ถ๋ชจ, ๊ทนํ์ ๊ตฌ๊ฐ ํํ ๋ฑ ๋ค์ฐจ์์ ๊ด๊ณ ํ์ ์ด ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์์์ธ์ ๋ฌธ์ ๋ ์ผ๋ฐ์ ์ธ single line recognition ๊ธฐ๋ฐ์ OCR์ด ์๋ multi line recognition์ ์ด์ฉํ๋ OCR ๋ฌธ์ ๋ก ๋ฐ๋ผ๋ณผ ์ ์์ต๋๋ค. Multi line recognition์ ๊ด์ ์์ ์์ ์ธ์์ ๊ธฐ์กด OCR๊ณผ ์ฐจ๋ณํ๋๋ task๋ผ๊ณ ํ ์ ์์ต๋๋ค.
-
ํ์ต ๋ฐ์ดํฐ: ์ถ๋ ฅ๋ฌผ ์์ ์ด๋ฏธ์ง 5๋ง ์ฅ, ์๊ธ์จ ์์ ์ด๋ฏธ์ง 5๋ง ์ฅ, ์ด 10๋ง ์ฅ์ ์์ ์ด๋ฏธ์ง
-
ํ ์คํธ ๋ฐ์ดํฐ: ์ถ๋ ฅ๋ฌผ ์์ ์ด๋ฏธ์ง 6์ฒ ์ฅ, ์๊ธ์จ ์์ ์ด๋ฏธ์ง 6์ฒ ์ฅ
-
ํ๊ฐ ์ฒ๋: 0.9 ร ๋ฌธ์ฅ ๋จ์ ์ ํ๋ + 0.1 ร (1 - ๋จ์ด ์ค๋ฅ์จ)
-
๋ฌธ์ฅ ๋จ์ ์ ํ๋(Sentence Accuracy): ์ ์ฒด ์ถ๋ก ๊ฒฐ๊ณผ ์ค ๋ช ๊ฐ์ ์์์ด ์ ๋ต๊ณผ ์ ํํ ์ผ์นํ๋ ์ง๋ฅผ ๋ํ๋ธ ์ฒ๋์ ๋๋ค.
-
๋จ์ด ์ค๋ฅ์จ(Word Error Rate, WER): ์ถ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ ๋ต์ ์ผ์นํ๋๋ก ์์ ํ๋ ๋ฐ ๋จ์ด์ ์ฝ์ , ์ญ์ , ๋์ฒด๊ฐ ์ด ๋ช ํ ๋ฐ์ํ๋ ์ง๋ฅผ ์ธก์ ํ๋ ์ฒ๋์ ๋๋ค.
-
12ํ ์ค 1์
-
Public LB Score: 0.8574 / Private LB Score: 0.6288
-
1๋ฑ ์๋ฃจ์ ๋ฐํ ์๋ฃ๋ ์ด๊ณณ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
-
์์ ์ธ์ ๊ฒฐ๊ณผ ์์
# clone repository
git clone https://github.com/bcaitech1/p4-fr-sorry-math-but-love-you.git
# install necessary tools
pip install -r requirements.txt
[dataset]/
โโโ gt.txt
โโโ tokens.txt
โโโ images/
โโโ *.jpg
โโโ ...
โโโ *.jpg
[code]
โโโ configs/ # configuration files
โโโ data_tools/ # modules for dataset
โโโ networks/ # modules for model architecture
โโโ postprocessing/ # modules for postprocessing during inference
โโโ schedulers/ # scheduler for learning rate, teacher forcing ratio
โโโ utils/ # useful utilities
โโโ inference_modules/ # modules for inference
โโโ train_modules/ # modules for train
โโโ README.md
โโโ requirements.txt
โโโ train.py
โโโ inference.py
$ python train.py --train_type single_opt --config_file './configs/EfficientSATRN.yaml'
$ python train.py --train_type dual_opt --config_file './configs/EfficientSATRN.yaml'
$ python train.py --train_type distillation --config_file './configs/LiteSATRN.yaml' --teacher_ckpt 'TEACHER-MODEL_CKPT_PATH'
$ python train.py --train_type single_opt --project_name <PROJECTNAME> --exp_name <EXPNAME> --config_file './configs/EfficientSATRN.yaml'
'single_opt'
: ๋จ์ผ optimizer๋ฅผ ํ์ฉํ ํ์ต์ ์งํํฉ๋๋ค.'dual_opt'
: ์ธ์ฝ๋, ๋์ฝ๋์ optimizer๊ฐ ๊ฐ๋ณ ๋ถ์ฌ๋ ํ์ต์ ์งํํฉ๋๋ค.'distillation'
: Knowledge Distillation ํ์ต์ ์งํํฉ๋๋ค.
- ๋ชจ๋ธ configuration์ ์ํคํ ์ฒ๋ณ๋ก ์์ดํ๋ฉฐ, ์ด๊ณณ์์ ํด๋น ์์๋ฅผ ๋ณด์ค ์ ์์ต๋๋ค.
- ํ์ต ๊ฐ๋ฅํ ๋ชจ๋ธ์ EfficientSATRN, EfficientASTER, SwinTRN, LiteSATRN ์ ๋๋ค.
project_name (str)
: (optional) ํ์ต ์ค Weight & Bias ๋ก๊น
ํด์ ํ์ฉํ ๊ฒฝ์ฐ ์ฌ์ฉํ ํ๋ก์ ํธ๋ช
exp_name (str)
: (optional) ํ์ต ์ค Weight & Bias ๋ก๊น
ํด์ ํ์ฉํ ๊ฒฝ์ฐ ์ฌ์ฉํ ์คํ๋ช
$ python inference.py --inference_type single --checkpoint <MODELPATH.pth>
$ python inference.py --inference_type ensemble --checkpoint <MODEL1PATH.pth> <MODEL2PATH.pth> ...
single
: ๋จ์ผ ๋ชจ๋ธ์ ๋ถ๋ฌ์ ์ถ๋ก ์ ์งํํฉ๋๋ค.ensemble
: ์ฌ๋ฌ ๋ชจ๋ธ์ ๋ถ๋ฌ์ ์์๋ธ ์ถ๋ก ์ ์งํํฉ๋๋ค.
-
์์๋ธ ์ถ๋ก ์ ๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋ธ์ ๊ฒฝ๋ก๋ฅผ ๋์ดํฉ๋๋ค.
--checkpoint <MODELPATH_1.pth> <MODELPATH_2.pth> <MODELPATH_3.pth> ...
'greedy'
: ๊ทธ๋ฆฌ๋ ๋์ฝ๋ฉ ๋ฐฉ๋ฒ์ผ๋ก ๋์ฝ๋ฉ์ ์งํํฉ๋๋ค.'beam'
: ๋น์์น ๋ฐฉ๋ฒ์ผ๋ก ๋์ฝ๋ฉ์ ์งํํฉ๋๋ค.
- NOTE. DecodingManager๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ง ํ์ฉ๋ฉ๋๋ค.
max_cache (int)
: ์์๋ธ('ensemble'
) ์ถ๋ก ์ ์ธ์ฝ๋ ์ถ๋ก ๊ฒฐ๊ณผ๋ฅผ ์์ ์ ์ฅํ ๋ฐฐ์น ์
- NOTE. ๋์ ๊ฐ์ ์ง์ ํ ์๋ก ์ถ๋ก ์๋๊ฐ ๋นจ๋ผ์ง๋ง, ์ผ์์ ์ผ๋ก ๋ง์ ์ ์ฅ ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค.
Github Issues |
Github Discussions |
Github Pull Requests |
Experiments Logging(W&B) |
๊ณ ์งํ silkstaff@naver.com |
๊น์ค์ฒ ahaampo5@gmail.com |
๊นํ๋ฏผ doritos2498@gmail.com |
์ก๋๋ฆฌ nuri3136@naver.com |
์ด์ฃผ์ vvvic313@gmail.com |
์ต์ค๊ตฌ jungu1106@naver.com |