8000 GitHub - TemuujinE/BolorSoft-OCR: 2024/06/26 Bolorsoft Hiring Process - Practical Exam
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

TemuujinE/BolorSoft-OCR

Repository files navigation

BolorSoft-OCR

Bolorsoft Hiring Process - Practical Exam Эхэлсэн: 2024/06/29 afternoon Дуусгасан: 2024/06/30 early in the morning

Үндсэн даалгавар бол Монгол хэлний OCR 7 хоногийн хугацаанд хийх байсан. Би дараах төлөвлөгөөний дагуу уг даалгаврыг гүйцэтгэсэн:

  • Assume Ideal Condition: Жигд гэрэлтүүлэгтэй, цагаан дэвсгэртэй, урд нь саад хийсэн зүйл байхгүй гэх мэт
  • Generate Synthetic Data for Recognition: Тэмдэгт таних модел сургахад зохиомлоор өгөгдөл үүсгэх
    • Ашиглах үгсийн сан - eduge news dataset: Галигаар бичигдсэн үг, линк, тэмдэгт гэх мэт зүйлсийг устгаж цэвэрлэх
  • Эхний ээлжинд дан ганц тэмдэгт танихад гол анхаарлаа төвлөрүүлэх
  • Ideal condition assumption доор tesseract ашиглан тэмдэгт ялгах
  • Дээр үүсгэсэн өгөгдлийг ашиглан тэмдэгт ялгах өгөгдөл зохиомлоор үүсгэх (Not high priority at the moment)
  • Нийт ажлаа цэгцлэх
    • Бага сага documentation бичих
    • Сургалтын өгөгдлөө Kaggle руу шидэх
  • Майл илгээх

Synthetic data

Өгөгдөл зохиомлоор үүсгэхийн тулд TextRecognitionDataGenerator-г ашигласан. Уг tool-г ашиглахад Монгол фонт хэрэгтэй тул Noto Sans фонт татаж ашигласан.

Alt text

Өгөгдлийн мэдээлэл

Training

Цагаан дэвсгэртэй Эсэн шидийн зурагтай дэвсгэртэй
A 30000 30000
B 50000 50000

Test

Цагаан дэвсгэртэй Эсэн шидийн зурагтай дэвсгэртэй
A 300 300
B 1500 1500

Үгийн сан: eduge дотроос дан ганц улс төр ангилалыг ашигласан.

Recognition

Text Recognition repo-г ашиглан крилл үсэг ялгах модел finetune хийсэн.

  1. cyrillic_g2.pth модел дээр сургалтын A хэсгийг ашиглаж туршиж үзсэн.

    1.1. Нийт 10 epoch сургасны үр дүнд дараах байдалтай байсан:

     | Ground Truth | Prediction   | Confidence Score & T/F |
     |--------------|--------------|------------------------|
     | ахлөх        | дулэу        | 0.0143 False           |
     | семийн       | гѓкжйн       | 0.1124 False           |
     | сольё        | гтйъд        | 0.0247 False           |
     | дээрдүүлэн   | дээргуауйэл  | 0.0019 False           |
     | тесо         | үржъ         | 0.0009 False           |
    

    1.2. Нийт 150 epoch сургасны дараагаар:

     | Ground Truth   | Prediction     | Confidence Score & T/F |
     |----------------|----------------|------------------------|
     | цонжинболдог   | цонкинболдог   | 0.0295 False           | 
     | доромжлуулаад  | доэоүхлуулаад  | 0.0656 False           |
     | үнэлэх         | үнэлэх         | 0.9743 True            |
     | хэсгийнхэнд    | хэсгийнхэнд    | 0.2898 True            |
     | дарангуйллыг   | аатугиө        | 0.0000 False           |
    

    Test Accuracy (A): 15.500

  2. Дээрх моделийг сургалтын B хэсгийг ашиглан 1000 epoch finetune хийсний дараагаар

Ground Truth Prediction Confidence Score & T/F
шийдевэрлэжээ шийдввэрлэжээ 0.4727 False
хэтэрчихээд хэтэрчихээд 0.5595 True
амралтаараа амралтаараа 0.6647 True
нийцэхүйц нийцэхүйц 0.6271 True
хумигдсанаас хумигдсанаас 0.2758 True

Test Accuracy (B): 77.867

Сургалт хийхэд ашиглах параметрүүд mn_conf фолдер дотор байгаа. Мөн сургалт хийхэд:

python deep-text-recognition-benchmark/demo.py --demo_conf mn_conf/demo_parameters_conf.yaml

Tesseract

Цагаан дэвсгэртэй үед tesseract ашиглан зургаас Монгол тэмдэгтүүдийг ялгасан.

Alt text

Дараагаах нь тэмдэгт бүрд танилт хийсэн.

Alt text

Notebooks

  1. clean_eduge_news - Eduge news цэвэрлэж, ашиглах үгсийн сан бэлтгэсэн
  2. generate_mn_synth_data - Зохиомол өгөгдөл болон label үүсгэх
  3. test_model_on_small_subset - var_small болон demo_multiple_word жишээ өгөгдлийг ашиглан моделийн гүйцэтгэлийг танилцуулах
  4. detect_and_recognize_mn - Цагаан дэвсгэртэй зургаас Tesseract ашиглан тэмдэгт ялгаж, дарагаар нь таних.

About

2024/06/26 Bolorsoft Hiring Process - Practical Exam

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0