κΉλ²μ€ | λ°±μ°μ΄ | μ‘°μ©μ¬ | μ‘°μ€μ¬ | μ΅λͺ ν |
---|---|---|---|---|
OCR (Optimal Character Recognition) κΈ°μ μ μ¬λμ΄ μ§μ μ°κ±°λ μ΄λ―Έμ§ μμ μλ λ¬Έμλ₯Ό μ»μ λ€μ μ΄λ₯Ό μ»΄ν¨ν°κ° μΈμν μ μλλ‘ νλ κΈ°μ λ‘, μ»΄ν¨ν° λΉμ λΆμΌμμ νμ¬ λ리 μ°μ΄λ λνμ μΈ κΈ°μ μ€ νλμ΄λ€.
OCR taskλ κΈμ κ²μΆ (text detection), κΈμ μΈμ (text recognition), μ λ ¬κΈ° (Serializer) λ±μ λͺ¨λλ‘ μ΄λ£¨μ΄μ Έ μκ³ λ³Έ λνμμ 'κΈμ κ²μΆ' task λ§μ ν΄κ²°νλ€.
λ¨, νκ° λ°©μμ΄ μμΈ‘ CSV νμΌ μ μΆ (Evaluation) λ°©μμ΄ μλ Model Checkpoint μ inference.py λ₯Ό μ μΆνμ¬ μ±μ νλ λ°©μμ΄λ€.
νμ΅ λ°μ΄ν°λ κΈ°λ³Έμ μΌλ‘ 536κ°μ μνλ‘ μ΄λ£¨μ΄μ§ "ICDAR17_Korean"μ΄λΌλ μ΄λ¦μ λ°μ΄ν°μ μ΄ μ 곡λλ€.
μ΄λ ICDAR17-MLT λ°μ΄ν°μ μμ μΈμ΄κ° νκΈμΈ μνλ€λ§ λͺ¨μμ μ¬κ΅¬μ±ν κ²μΌλ‘ μλ³Έ MLT λ°μ΄ν°μ μ λΆλΆμ§ν©μ΄λ€.
λ³Έ λνλ λ°μ΄ν°λ₯Ό μμ§νκ³ νμ©νλ λ°©λ²μ΄ μ£Όμ λ΄μ©μ΄κΈ° λλ¬Έμ, μ±λ₯ ν₯μμ μν΄ κ³΅κ³΅ λ°μ΄ν°μ νΉμ μ§μ μμ§ν λ°μ΄ν°μ μ μΆκ°μ μΌλ‘ μ΄μ©νλ κ²μ μ ννμ§ μμλ€.
νκ° λ°μ΄ν°λ ν¬λ‘€λ§λ λ€μν μ΄λ―Έμ§ (μκΈμ¨, κ°ν, μ± νμ§ λ±) μ΄ 300μ₯μΌλ‘ ꡬμ±λμ΄ μκ³ μΈμ΄λ μ£Όλ‘ νκ΅μ΄μ΄κ³ , μμ΄, κ·Έ μΈ λ€λ₯Έ μΈμ΄λ μμ§λ§ νκ΅μ΄, μμ΄κ° μλ λ€λ₯Έ μΈμ΄λ don't care μ²λ¦¬νλ―λ‘ κ²μΆνμ§ μμλ λλ€.
Public ν μ€νΈμ μΌλ‘λ 50%μΈ 150μ₯μ΄ κ³΅κ°λκ³ , λλ¨Έμ§ λ°μ΄ν° 150μ₯μ Private ν μ€νΈμ μΌλ‘ νμ©λλ€.
Test λ°μ΄ν°μ λν μ 보λ₯Ό μ μ μκΈ° λλ¬Έμ, Test setκ³Ό μ μ¬ν κ²μ΄λΌ μκ°λλ, μ΅λν λ§μ λ°μ΄ν°λ₯Ό λͺ¨μ Public Leaderboardμ μλ₯Ό ν₯μμν€λ κ²μ λͺ©νλ‘ νλ€.
μ£Όμ΄μ§ λ°μ΄ν°μ μΈμ ICDAR15(μ½ 1000μ₯)(https://rrc.cvc.uab.es/?ch=4&com=downloads), ICDAR17(μ½ 9000μ₯)(https://rrc.cvc.uab.es/?ch=8&com=downloads), ICDAR19(μ½ 10000μ₯)(https://rrc.cvc.uab.es/?ch=15&com=downloads) λ°μ΄ν°μ μ μ¬μ©νλλ°, μ²μμ κ°κ°μ λ°μ΄ν°μ μ μ¬μ© μ μ μκ° μ΄λ μμ€μΈμ§ νμ ν΄ λ μ’μ λ°μ΄ν°μ μ μ νν΄ μ¬μ©νλ € νμ§λ§, ν΄λΉ λ°μ΄ν°μ μ νμ§μ΄ 보μ¦λμ΄ μκ³ λ κ·Έλ¬ν λ°μ΄ν°μ μκ° λ§μΌλ©΄ λ§μμλ‘ μ’λ€κ³ μκ°ν΄ λ λ°μ΄ν°μ μ ν©μ³μ μ¬μ©νλ€.
μ΄ λ, νκ΅μ΄, μμ΄ μΈμ λ€λ₯Έ μΈμ΄λ λͺ¨λ Donβt Care μ²λ¦¬λ₯Ό νμ§λ§, μ¬λ¬ λλΌμ λ€μν μΈμ΄λ₯Ό νμ΅μν¨λ€λ©΄ λͺ¨λΈμ΄ κΈμλ₯Ό κ²μΆνλ λ°μ λμ± λμμ΄ λ κ²μ΄λΌλ κ°μ μΌλ‘ μΆλ°νμ¬ Hindi, Bangla, Arabic λ± λ€μν μΈμ΄ λ°μ΄ν°λ₯Ό νμ΅μν€λλ° μ¬μ©νλ€.
μΆνμ μ£Όμ΅ μΈ‘μμ μΆκ°μ μΌλ‘ Upstage λ°μ΄ν°μ (κ΅μ‘μλ€μ΄ μ§μ Annotationμ μνν μ½ 900κ°μ λ°μ΄ν°)μ μ κ³΅ν΄ μ€¬λλ° μ΄ λ°μ΄ν°μ μ λ€λ₯Έ λ°μ΄ν°μ μ Annotation μμκ³Ό λ¬λ¦¬ bounding boxκ° Rectangleμ΄ μλ Polygon ννλ‘ μμ±λ κ²μ΄ μμλ€. μ΄λ₯Ό λ€λ£¨κΈ° μν λ°©λ²μΌλ‘ 첫 λ²μ§Έλ Polygonμ μΈμ νλ μ¬κ°νμ bounding boxλ‘ μ¬μ©νλ κ²μ΄μκ³ , λ λ²μ§Έλ polygonμ μͺΌκ°μ΄ μ¬λ¬ κ°μ rectangle λͺ¨μμ bounding boxλ‘ λ§λλ κ²μ΄λ€. λ λ°©λ² λͺ¨λ μ¬μ©ν΄λ³΄λ©° μ€νμ μ§ννκ³ μ μμ ν° μ°¨μ΄κ° μμλ€.
μ°λ¦¬λ λ°μ΄ν°μ μκ° μΆ©λΆνμ§ μλ€κ³ μκ°ν΄μ μ€μ λ°μ΄ν° μΈμ Synthetic Datasetμ μ΄μ©ν΄ νμ΅μ μ¬μ©λλ λ°μ΄ν°μ μ ν¬κΈ°λ₯Ό ν€μ λ€. Synthetic DatasetμΌλ‘ Pretrain ν Target DatasetμΌλ‘ ICDAR νΉμ Upstage λ°μ΄ν°μ μ μ¬μ©ν΄ Finetuningμ μ§ννκ³ , μ΄ λ Synthetic DatasetμΌλ‘ ICDAR19μ Synthetic Textλ₯Ό ν©μ±ν λ°μ΄ν°μ κ³Ό Carnegie Mellon Universityμ UnrealText(https://github.com/Jyouhou/UnrealText)λ₯Ό μ¬μ©νμ¬ Pretrainν λͺ¨λΈμ μ¬μ©νλ€. Public μ μλ ν° λ³νκ° μμμ§λ§, Private μ μκ° μ μλ―Ένκ² μμΉν κ²μΌλ‘ 보μ Generalization μ±λ₯μ΄ μ’μλ€κ³ μΆμΈ‘ν μ μλ€.
Publicκ³Ό Private μ μ μ°¨μ΄κ° μλΉνλ€. Generalization μ±λ₯μ ν₯μμν€λ κ²μ΄ private μ μμ ν° μν₯μ 쀬μ κ²μ΄λΌ μΆμΈ‘ν μ μλ€.
λν λ°μ΄ν°μ μ κ·λͺ¨κ° 컀μ§μλ‘ νμ΅μκ°λ λΉλ‘ν΄μ κΈΈμ΄μ ΈμΌ νλλ° λ€μν 쑰건μΌλ‘ λ§μ μ€νμ μ§ννλλΌ μΌμ μκ° μ΄μμΌλ‘ νμ΅μ μν€μ§ λͺ»ν΄ λμ μ μλ₯Ό λ°μ§ λͺ»ν κ² κ°λ€.
python train.py --max_epoch 200 --image_size 1024 --input_size 512 --train_batch_size 32
python inference.py
python evaluation.py
π level2_dataannotation_cv-level2-cv-01
β
βββ π utils
β β
β βββ π CV_strategy
β β β
β β βββ π word_box.ipynb
β β
β βββ π rare.ipynb
β βββ π txt2json.ipynb
β
βββ π convert_mlt.py
β
βββ π dataset.py
β
βββ π detect.py
β
βββ π deteval.py
β
βββ π east_dataset.py
β
βββ π evaluation.py
β
βββ π inference.py
β
βββ π loss.py
β
βββ π model.py
β
βββ π OCR_EDA.ipynb
β
βββ π train.py