๋ณธ ํ๋ก์ ํธ๋ ์ปดํจํฐ ๋น์ ๋ถ์ผ์์ ํ์ฌ ๋๋ฆฌ ์ฐ์ด๋ ๋ํ์ ์ธ ๊ธฐ์ ์ค ํ๋์ธ OCR (Optical Character Recognition) ๊ธฐ์ ์ ์ฌ์ฉ๋ ๋ชจ๋ธ์ ์ฑ๋ฅ ๊ฐ์ ์ ๋ชฉํ๋ก ํ๋ค. ๋ฐ์ดํฐ ๋ถ์์ ํตํด ํ๊ฐ ๋ฐ์ดํฐ์ ์ ์ฉ๋ ๋ ธ์ด์ฆ๋ฅผ ๋ฐ๊ฒฌํ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์ ๋ฐ์ดํฐ ์ฆ๊ฐ, ์ดํด์๋, ๋๋ ธ์ด์ง, ๋ฐฐ๊ฒฝ ์ ๊ฑฐ ๋ฐ ์์๋ธ ๋ฑ์ ์ ๋ต ์๋ฆฝ ํ ์คํ์ ์ํํ์๋ค. ์ด๋ค ์ค ๊ฐ์ฅ ์ ์๋ฏธํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ดํด์๋, ์์๋ธ ์ ๋ต์ ์ ์ฉํ์ฌ 2์์ ์ฑ์ ์ ๊ฑฐ๋์๋ค.
- ํ์ต ์ ํ์ํ ์ ๋ณด๋ฅผ tools ํด๋ ๋ด ์ฝ๋๋ฅผ ํ์ฉํด์ prepocessing ํ ์ฝ๋ ์คํ
python ./code/train.py --train_dataset_dir /path/to/dataset --model_dir ...
python ./code/inference.py --model_dir /path/to/model --data_dir /path/to/data
- Images & Size : Train: 100, Test: 100, (600
2500) * (6003500)
- OCR ์ ๊ธ์ ๊ฒ์ถ, ๊ธ์ ์ธ์, ์ ๋ ฌ๊ธฐ ๋ฑ์ ๋ชจ๋๋ก ์ด๋ฃจ์ด์ ธ ์์. ๋ณธ ๋ํ์์๋ ๊ธ์ ๊ฒ์ถ task ๋ง์ ํด๊ฒฐํจ. ๊ฒ์ถ ์ฑ๋ฅ ํ๊ฐ๋ฅผ ์ํ ์งํ๋ก Precision, Recall, F1 Score๋ฅผ ์ฌ์ฉํจ.
๊น๋ฏผ์ค |
๊น์ฑ์ |
๋ฐฐ์ข ์ฑ |
๋ฐ์ฐฌ์ข |
์กฐ๋ช ํ |
์ต์ํ |
Name | Common | Role |
---|---|---|
๊น๋ฏผ์ค | EDA, ๋ชจ๋ธ ํ์ต ๊ฒฐ๊ณผ ๋ถ์ |
Image Background Remove |
๊น์ฑ์ | WandB ์ธํ , ํ์ต ์๋ ์ต์ ํ ์คํ | |
๋ฐฐ์ข ์ฑ | Data Augmentation, Super Resolution, Denoise | |
๋ฐ์ฐฌ์ข | Pickle Data Generation, Data Augmentation, Corner Crop | |
์กฐ๋ช ํ | Denoise, Text sharpening | |
์ต์ํ | Annotation ์๊ฐํ, Box Filtering & Ensemble |
- Language: Python 3.10.13
- Hardwares: Intel(R) Xeon(R) Gold 5120, Tesla V100-SXM2 32GB ร 6
- Framework: Pytorch, Numpy
- Cowork Tools: Github, Weight and Bias, Notion, Discord, Zoom, Google calendar
- ํ์ต ๋ฐ์ดํฐ์ ๋ถ์์์ ์ธ๋ก ์ด๋ฏธ์ง, ๊ฐ๋ก ์ด๋ฏธ์ง, ๊ตฌ๊ฒจ์ง ์ด๋ฏธ์ง ์ด ์ธ๊ฐ์ง ํน์ฑ์ ํ์ ํจ.
- ๋ํ, ๋ ธ์ด์ฆ๊ฐ ๊ฑฐ์ ์๋ ํด๋ฆฐํ ๋ฐ์ดํฐ์์ ํ์ ํจ.
- ํ๊ฐ ๋ฐ์ดํฐ์ ๋ถ์ ๊ณผ์ ์์ ํ์ต ๋ฐ์ดํฐ์ ๊ณผ๋ ๋์กฐ์ ์ผ๋ก ์ด๋ฏธ์ง ๋ด์ ๋ค์ํ ๋ ธ์ด์ฆ๊ฐ ์กด์ฌํ๋ ๊ฒ์ ํ์ธํจ.
- UFO ํฌ๋งท์ Albumentation๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํฌ๋งท์ ์ง์ํ์ง ์์ Vertice๋ฅผ ๋ณ๊ฒฝํ๋ Transformation์ ๋ํด์ Numpy๋ฅผ ์ด์ฉํ๋ฉฐ, ์ด๋ ํ์ต ์ CPU ์ฐ์ฐ์ ์ด์ ๋ก ๋ณ๋ชฉํ์์ด ๋ฐ์ํ์ฌ ํ์ต ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ ํ์ธํจ.
- ํ์ต ๋ฐ์ดํฐ๋ฅผ Pickle ํ์ผ๋ก ๋ณํ
python ./code/to_pickle.py
- Pickle ํ์ผ๋ก ํ์ต ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ฌ ํ์ต ์๊ฐ์ ๊ธฐ์กด 1์ํญ ๋น 15๋ถ ๊ฑธ๋ฆฌ๋ ํ์ต ์๊ฐ์ 10์ด ์ด๋ด๋ก ๋จ์ถํจ.
- ํ๊ฐ ๋ฐ์ดํฐ์ ๊ณผ ์ ์ฌํ ๋ ธ์ด์ฆ๋ผ๊ณ ์๊ฐ๋๋ ๋ค์ํ Augmentation ๊ธฐ๋ฒ์ ์ ์ฉํ์ฌ ์คํ ์งํํจ.
Augmentation | F1 score | Recall | Precision |
---|---|---|---|
Default_CJ, Default_N | 0.9119 | 0.8647 | 0.9645 |
Default_CJ, Default_N, S&P | 0.9024 | 0.8493 | 0.9627 |
Default_CJ, Default_N, GB, B | 0.8967 | 0.849 | 0.9501 |
Augmentation | F1 score | Recall | Precision |
---|---|---|---|
Default_CJ, Default_N | 0.8779 | 0.9214 | 0.8383 |
CJ, N | 0.8532 | 0.8692 | 0.8377 |
GN, N | 0.7978 | 0.7755 | 0.8214 |
CJ, GB, B, N | 0.8843 | 0.8735 | 0.8954 |
CJ, GB, B, GN, N | 0.8634 | 0.8618 | 0.8651 |
CJ, GB, B, HSV, N | 0.8807 | 0.9019 | 0.8604 |
CJ, GB, HSV, N | 0.9124 | 0.8665 | 0.9651 |
- ํ๊ฐ ๋ฐ์ดํฐ์ ๋ด์ ๋ ธ์ด์ฆ๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ํ๋จํจ.
- Cycle GAN์ ํ์ฉํ์ฌ ์ด๋ฏธ์ง ๋ด์ ์๋น์์ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํจ.
- ํ๊ฐ ๋ฐ์ดํฐ์ ์ถ๋ก ๊ฒฐ๊ณผ ๋ฌธ์ ์ธ๋ถ ๋ฐฐ๊ฒฝ ๋ถ๋ถ์์ ๋ค์์ ๋ ธ์ด์ฆ ๊ฒ์ถ ํ์ธํจ.
- ๋ชจ๋ธ์ ๋ฐฐ๊ฒฝ ๋ ธ์ด์ฆ ๊ฒ์ถ์ด ์ค์ด๋ค ๊ฒ์ ๊ฐ์ ํ์ฌ ๋ฐฐ๊ฒฝ ์ ๊ฑฐ ํ ํ๊ฐ ๋ฐ์ดํฐ์ ์ ๋ํ ์ถ๋ก ์ํํจ.
Dataset | F1 score | Recall | Precision |
---|---|---|---|
Original | 0.9106 | 0.915 | 0.9061 |
Background removed | 0.8608 | 0.8758 | 0.8463 |
- ์ ๊ณต๋ ๋ฐ์ดํฐ์ ์ ๊ฒฝ์ฐ ๊ธ์๋ค์ ํฌ๊ธฐ๊ฐ ๋๋ถ๋ถ์ ์์ ๊ฒ์ ํ์ธํ์ฌ ์ดํด์๋ ๊ธฐ๋ฒ์ ์ ์ฉํ์ฌ ์๋ณธ ์ด๋ฏธ์ง ๋๋น 2๋ฐฐ, 4๋ฐฐ ํด์๋์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํจ.
- ์๋ฒ GPU ๋ฉ๋ชจ๋ฆฌ ํ๊ณ๋ก ์๋ณธ ์ด๋ฏธ์ง์ ์ง์ SR์ ์ ์ฉํ๊ธฐ ์ด๋ ค์์ ์ด๋ฏธ์ง๋ฅผ 8๋ฑ๋ถ์ผ๋ก ์๋ฅธ ๋ค SR์ ์ ์ฉํจ.
Dataset | F1 score | Recall | Precision |
---|---|---|---|
Original | 0.9106 | 0.915 | 0.9061 |
SR x2 | 0.9381 | 0.9392 | 0.9369 |
SR x4 | 0.941 | 0.9369 | 0.9451 |
- ์ด๋ฏธ์ง์ ์ฐ์ธก ์๋จ์ QR code ์ ์ธ๋ก ๊ธ์จ์ ๋ํ ๊ฒ์ถ ์ฑ๋ฅ์ด ๋ถ์กฑํ์ฌ ์๋์ ์ผ๋ก Coner ๋ถ๋ถ์ ํฌํจ์์ผ ํ์ต์ ์งํํจ
- ๋ฌธ์ ๊ฒ์ถ ์์ Confidence Score๋ฅผ ์ฐ์ถํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ ธ์ด์ฆ๋ผ๊ณ ๊ฐ์ฃผ๋๋ ๋ฎ์ ์ ๋ขฐ๋ ์์ญ์ ์๋ณํ๋๋ฐ ์ด๋ ค์์ด ์์.
- Noise Filtering : ์ค์ ํ ์๊ณ๊ฐ๋ณด๋ค ์ ์ ์ ์ ๋ชจ๋ธ์ด ์์ธกํ ์์ญ์ ๊ฒฝ์ฐ ๋ ธ์ด์ฆ๋ผ๊ณ ๊ฐ์ฃผ
- Small box Filtering : ์์ ๋ฐ์ค๋ค ์ค IoU ๊ฐ์ด ๋ฎ์ ์์๋ธ์ ํตํด ํฉ์ณ์ง์ง ์๋ ๊ฒฝ์ฐ ์ ๊ฑฐ
Ensemble | F1 score | Recall | Precision |
---|---|---|---|
Model Average | 0.9364 | 0.9357 | 0.9371 |
Noise Filtering | 0.9485 | 0.9479 | 0.9491 |
Noise Filtering & Small box filtering | 0.9503 | 0.9479 | 0.9526 |
No | Ensemble | Dataset | Image Size | F1 score | Recall | Precision |
---|---|---|---|---|---|---|
0 | Single | Original | 0.9106 | 0.915 | 0.9061 | |
1 | Single | Original | 0.9303 | 0.9312 | 0.9294 | |
2 | Single | SR x2 | 0.9381 | 0.9392 | 0.9369 | |
3 | Single | SR x4 | 0.9410 | 0.9369 | 0.9451 | |
4 | Single | SR x4 |
|
0.9389 | 0.9355 | 0.9424 |
- | - |
๋ณธ ๋ํ์ ๋ชฉํ๋ ๋ณ์ ์์์ฆ์ ํฌํจ๋ ๊ธ์๋ฅผ ์ ํํ ๊ฒ์ถํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค. EDA๋ฅผ ํตํด ํ์ต ๋ฐ์ดํฐ์ ๊ณผ ๋ฌ๋ฆฌ ํ๊ฐ ๋ฐ์ดํฐ์ ์ ๋ง์ ๋ ธ์ด์ฆ๊ฐ ํฌํจ๋ ๊ฒ์ ํ์ธํ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์ ๋ฐฐ๊ฒฝ ์ ๊ฑฐ, ๋ ธ์ด์ฆ ์ ๊ฑฐ, ์ดํด์๋ ๊ธฐ๋ฒ, ๋ฐ์ดํฐ ์ฆ๊ฐ์ ์ ์ฉํ์๋ค. ํนํ ์ดํด์๋ ๊ธฐ๋ฒ์ ํตํด Recall๊ณผ Precision ๋ชจ๋ ํฐ ํญ์ ์ฑ๋ฅ ํฅ์์ ํ์ธํ ์ ์์๋ค. ์ดํ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ ๋ถ์์ ํตํด ์์๋ธ์ ์ ์ฉํ์ฌ ์ข์ ์ฑ์ ์ ๋ผ ์ ์์๋ค.
์ง๋ ๋ํ์์ ํ๋ จ ๋ฐ์ดํฐ์ ๊ณผ ํ๊ฐ ๋ฐ์ดํฐ์ ์ ๋ ์ด๋ธ๋ง์ ๋ํ ๋น์ทํ ์์์ ์ค๋ฅ๊ฐ ์กด์ฌํ์๋ค. ๋ณธ ๋ํ๋ ๋น์ทํ ์์์ผ๋ก ํ๋จํ์ฌ ํด๋ ์ง ์์ ๊ณผ ๋ฆฌ๋ ์ด๋ธ๋ง ์์ ์ ์๋ตํ์๋ค.
๋ํ ์งํ ์ค ํ๊ฐ ๋ฐ์ดํฐ์ ์ ์ฒ๋ฆฌ ๊ฐ์ด๋๋ผ์ธ ๋ณ๊ฒฝ์ผ๋ก ํ๊ฐ ๋ฐ์ดํฐ์ ์ ๋ํ ๋ค์ํ ์ ์ฒ๋ฆฌ ๊ธฐ๋ฒ์ ์ต๋ํ ํ์ฉํ์ง ๋ชปํ๋ค.
ํ์ต ๋ฐ์ดํฐ์ ๊ณผ ๋ฌ๋ฆฌ ๋ง์ ๋ ธ์ด์ฆ๊ฐ ํฌํจ๋ ํ๊ฐ ๋ฐ์ดํฐ์ ์ด ์ฃผ์ด์ก๋ค. ๋ฐ๋ผ์ ํ๊ฐ ๋ฐ์ดํฐ์ ๊ณผ ๊ฒฝํฅ์ฑ์ด ์ ์ฌํ ๊ฒ์ฆ ๋ฐ์ดํฐ์ ์ ์ฐพ๊ธฐ ์ด๋ ค์ ๋ค.
bbox๋ณ confidence score๊ฐ ์กด์ฌํ์ง ์์ ๋ชจ๋ธ์ voting์ด ์ด๋ฃจ์ด์ง ์ ์๋ค. ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ธ ์์๋ธ ๋ฐฉ์๊ณผ๋ ๋ค๋ฅด๊ฒ ํํฐ๋ง ์กฐ๊ฑด๋ค์ ์ง์ ๊ตฌํํ์๋ค.