Skip to content

boostcampaitech4lv23cv2/level2_dataannotation_cv-level2-cv-09

Repository files navigation

๐Ÿ†๋ฐ์ดํ„ฐ ์ œ์ž‘ ํ”„๋กœ์ ํŠธ๐Ÿ†



๐Ÿ”ฅMember

์ •์Šน์œค ๊น€์ฃผํฌ ์‹ ํ˜„์ˆ˜ ์ด์šฐํƒ ์ดํ•ด์šฑ

Index


๐Ÿ…Project Summary

- ํ”„๋กœ์ ํŠธ ์ฃผ์ œ

์Šค๋งˆํŠธํฐ์œผ๋กœ ์นด๋“œ๋ฅผ ๊ฒฐ์ œํ•˜๊ฑฐ๋‚˜, ์นด๋ฉ”๋ผ๋กœ ์นด๋“œ๋ฅผ ์ธ์‹ํ•  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์นด๋“œ ๋ฒˆํ˜ธ๊ฐ€ ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ์ฃผ์ฐจ์žฅ์— ๋“ค์–ด๊ฐ€๋ฉด ์ฐจ๋Ÿ‰ ๋ฒˆํ˜ธ๊ฐ€ ์ž๋™์œผ๋กœ ์ธ์‹๋˜๋Š” ๊ฒฝ์šฐ๋„ ํ”ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ OCR (Optimal Character Recognition) ๊ธฐ์ˆ ์€ ์‚ฌ๋žŒ์ด ์ง์ ‘ ์“ฐ๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€ ์†์— ์žˆ๋Š” ๋ฌธ์ž๋ฅผ ์–ป์€ ๋‹ค์Œ ์ด๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ ๋กœ, ์ปดํ“จํ„ฐ ๋น„์ „ ๋ถ„์•ผ์—์„œ ํ˜„์žฌ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋Œ€ํ‘œ์ ์ธ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. OCR task๋Š” ๊ธ€์ž ๊ฒ€์ถœ (text detection), ๊ธ€์ž ์ธ์‹ (text recognition), ์ •๋ ฌ๊ธฐ (Serializer) ๋“ฑ์˜ ๋ชจ๋“ˆ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

- ๊ฐœ์š” ๋ฐ ๊ธฐ๋Œ€ํšจ๊ณผ

ํ•™๊ต๋‚˜ ์ˆ˜์—…์—์„œ ๋‹ค๋ฃจ๋Š” AI ๋ชจ๋ธ ์—ฐ๊ตฌ๊ณผ์ •์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์™€ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•์ด ์ฃผ์–ด์ง€๊ณ , ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์™€ ํ‰๊ฐ€๋ฐฉ์‹์— ๊ฐ€์žฅ ์ž˜๋งž๋Š” ๋ชจ๋ธ์„ ์ฐพ์•„๋‚˜๊ฐ€๋Š” ๊ณผ์ •์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค๋ฌด์—์„œ๋Š” ์„œ๋น„์Šค์˜ ๊ธฐํš๋งŒ ์กด์žฌํ•  ๋ฟ, ๋ฐ์ดํ„ฐ, ๋ฒ ์ด์Šค๋ผ์ธ ๋ชจ๋ธ, ํ‰๊ฐ€๋ฐฉ๋ฒ• ๋ชจ๋‘ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ •๋‹ต ๋ผ๋ฒจ๋ง ๋…ธ์ด์ฆˆ๊ฐ€ ์—†๋Š” ์–‘์งˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•๋ณดํ•ด์•ผ ํ•˜๊ณ , ๋˜ํ•œ ๋ชจ๋ธ์„ ๊ณต์ •ํ•˜๊ฒŒ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„  ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ์ •๋‹ต์ด ์ •ํ™•ํ•ด์•ผ ํ•˜๋Š” ๋“ฑ ์ „์ฒด ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฐ์ดํ„ฐ ์ œ์ž‘ ์ž‘์—…์ด ์ฐจ์ง€ํ•˜๋Š” ๋น„์ค‘์ด ๋†’๊ณ  ๋งค์šฐ ์ค‘์š”ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ์‹ค๋ฌด์—์„œ ํ™œ์šฉ๋˜๋Š” AI ํ”„๋กœ์ ํŠธ ๊ณผ์ •์˜ ์ „๋ฐ˜์ ์ธ ์ดํ•ด(๋ฐ์ดํ„ฐ ์ œ์ž‘, ๋ชจ๋ธ ๊ฐœ๋ฐœ, ์„ฑ๋Šฅ ํ‰๊ฐ€)์™€, ํ”ผ๋“œ๋ฐฑ ์‚ฌ์ดํด์„ ํ†ตํ•˜์—ฌ ์ ์ง„์ ์œผ๋กœ ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ด๋‚˜๊ฐ€๋Š” ์ „์ฒด์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฝํ—˜ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ํ™œ์šฉ ์žฅ๋น„ ๋ฐ ์žฌ๋ฃŒ

  • ์„œ๋ฒ„: V100 GPU
  • ์‚ฌ์šฉ ๋ชจ๋ธ: EAST + VGG16
  • ๊ฐœ๋ฐœ ๋ฐ ํ˜‘์—… ํˆด: Git, Slack, Zoom, Visual Studio Code

- ๋ฐ์ดํ„ฐ ์…‹์˜ ๊ตฌ์กฐ๋„

  • ์ „์ฒด ์ด๋ฏธ์ง€ ๊ฐœ์ˆ˜ : ICDAR17(2970์žฅ) + ICDAR15(1000์žฅ) + upstage_data(702์žฅ)
  • Input : ๊ธ€์ž๊ฐ€ ํฌํ•จ๋œ ์ „์ฒด ์ด๋ฏธ์ง€
  • Format : bbox ์ขŒํ‘œ๊ฐ€ ํฌํ•จ๋œ UFO Format

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘งTeam Roles

  • ์ด์šฐํƒ: upstage ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ
  • ์ •์Šน์œค: Dataset ํƒ์ƒ‰ ๋ฐ ๊ฒฐํ•ฉ, ๋ชจ๋ธ ์—๋Ÿฌ ๋””๋ฒ„๊น…, ์•ผ์™ธ ํ•œ๊ธ€ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ
  • ๊น€์ฃผํฌ: Wandb Logging, Augmentation ์‹คํ—˜ ๋ฐ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ์…‹ ํƒ์ƒ‰
  • ์ดํ•ด์šฑ: W&B Sweep์„ ์ด์šฉํ•œ Hyperparameter Tuning ์‹œ๋„
  • ์‹ ํ˜„์ˆ˜: Dataset ํƒ์ƒ‰ ๋ฐ ๊ฒฐํ•ฉ, EDA

๐Ÿ—ƒ๏ธProcedures

[2022.12.05 ~ 2022.12.07]

  • Data Annotation ๊ฐ•์˜ ์ˆ˜๊ฐ• ๋ฐ ํ”„๋กœ์ ํŠธ ๊ธฐํš ์„œ๋ฒ„ ์„ค์ • ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ setting
  • Annotation ํˆด์„ ํ™œ์šฉํ•˜์—ฌ Annotation ์‹ค์Šต ์ง„ํ–‰

[2022.12.08 ~ 2022.12.10]

  • ์˜คํ”ผ์Šค์•„์›Œ๋ฅผ ํ†ตํ•œ Baseline ์ดํ•ด
  • Baseline ํŒ€ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ setting
  • Seed ๊ณ ์ •
  • Validation Dataset ์„ค์ •
  • Wandb setting

[2022.12.11 ~ 2022.12.12]

  • ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ๋ฐ Concat ์‹œ๋„
  • ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ: ICDAR17_Korea
  • ICDAR15, ICDAR17 All ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ๋ฐ UFO ํ˜•ํƒœ๋กœ JSON ํŒŒ์ผ ์ œ์ž‘

[2022.12.13 ~ 2022.12.14]

  • Augmentation ์‹คํ—˜ ์ง„ํ–‰
  • ๋งŽ์€ ์‹คํ—˜์„ ์œ„ํ•ด ICDAR_Korea ๋ฐ์ดํ„ฐ๋กœ๋งŒ ์ง„ํ–‰
  • Distortion, MotionBlur, GuassNoise, Weather ๋“ฑ ๋‹ค์–‘ํ•œ Augmentation์„ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ์ƒ๊ฐํ•˜๋ฉฐ ์ ์šฉ

[2022.12.13 ~ 2022.12.14]

  • ์ตœ์ข… ํ•™์Šต
    • ICDAR15, ICDAR17, Upstage ๋ฐ์ดํ„ฐ์…‹์„ Concat
    • Augmentation ์‹คํ—˜์„ ํ†ตํ•ด ์–ป์€ ์ตœ์ ์˜ Augmentation์„ ํ™œ์šฉ
    • ํŒ€์› ๋ณ„๋กœ Input size์™€ Image size๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•˜๋ฉฐ ํ•™์Šต ์ง„ํ–‰

๐Ÿ“ŠResult

ํƒ์ƒ‰์  ๋ถ„์„(EDA) ๋ฐ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

  • ์ด๋ฏธ์ง€ ๋ถ„ํฌ
ICDAR15 ICDAR17 Upstage
๋ชจ๋“  ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ 1280 X 720

ICDAR17์˜ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ถ„ํฌํ•˜๊ณ  ์žˆ์Œ

  • ์ด๋ฏธ์ง€๋‹น ๋‹จ์–ด ๊ฐœ์ˆ˜
ICDAR15 ICDAR17 Upstage

์ด๋ฏธ์ง€๋‹น ๋‹จ์–ด๋Š” 0~10๊ฐœ ์‚ฌ์ด์˜ ๋ถ„ํฌ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์•˜์Œ

  • ์–ธ์–ด ๋ถ„ํฌ
ICDAR15 ICDAR17 Upstage

ICDAR15์™€ ICDAR17 ๋ฐ์ดํ„ฐ๋Š” ์˜์–ด์˜ ๋น„์ค‘์ด ๋งค์šฐ ๋งŽ์•˜๊ณ  Upstage ๋ฐ์ดํ„ฐ๋Š” ํ•œ๊ธ€๊ณผ ์˜์–ด์˜ ๋น„์ค‘์ด 1:1์˜ ๋น„์œจ์„ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.

  • BBOX size
ICDAR15 ICDAR17 Upstage

๋Œ€๋ถ€๋ถ„์˜ ์ด๋ฏธ์ง€์˜ BBox 1ํ”„๋กœ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ์˜ BBox๊ฐ€ ๋Œ€๋ถ€๋ถ„์ž„์„ ํ™•์ธ.

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

  • ์•ผ์™ธ ์‹ค์ œ ์ดฌ์˜ ํ•œ๊ธ€ ์ด๋ฏธ์ง€

    • Test Data๊ฐ€ ์ฃผ๋กœ ํ•œ๊ธ€๋กœ ์ด๋ฃจ์–ด์กŒ์œผ๋ฏ€๋กœ AI-Hub์— ์žˆ๋Š” ์•ผ์™ธ ์‹ค์ œ ์ดฌ์˜ ํ•œ๊ธ€ ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™œ์šฉํ•˜๊ณ ์ž ํ•จ
    • Data annotation ํŒŒ์ผ์ด ์ด๋ฏธ์ง€๋‹น ํ•˜๋‚˜์˜ txt ํŒŒ์ผ๋กœ ์ด๋ฃจ์–ด์ ธ ํ†ตํ•ฉํ•˜์—ฌ UFO ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ๋Š” python ํŒŒ์ผ์„ ์ž‘์„ฑํ•จ
    • ๊ทธ๋Ÿฌ๋‚˜ ์›๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ํฐ ์šฉ๋Ÿ‰์„ ๊ฐ€์ ธ์„œ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์—†๊ณ , ์ƒ˜ํ”Œ๋ฐ์ดํ„ฐ๋Š” bias๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์ง„ ๋ชปํ•จ
  • upstage ๋ฐ์ดํ„ฐ

    • ์›ํ™œํ•œ ํ•™์Šต์„ ์œ„ํ•ด upstage ๋ฐ์ดํ„ฐ ์ค‘ ์‚ฌ๊ฐํ˜•์ด ์•„๋‹Œ ๋‹ค๊ฐํ˜• ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง„ bbox๋ฅผ ํฌํ•จํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ œ์™ธํ•จ
    • ์ œ์™ธํ•œ ์ด๋ฏธ์ง€๋“ค์— ๋Œ€ํ•ด annotation ํŒŒ์ผ์„ ํŽธ์ง‘ํ•จ

Data Augmentation

Metric: F1-Score

None Distort +MotionBlur +GaussianNoise All
0.4621 0.4939 0.4934 0.5398 0.5627

๋ชจ๋ธ ๊ฐœ์š”

EAST + VGG16

์‹œ์—ฐ๊ฒฐ๊ณผ

Metric: F1-Score

F1-Score Recall Precision
0.6364 0.5689 0.7220

๐Ÿ‘จโ€๐Ÿ’ปConclusion

์ž˜ํ•œ ์ ๋“ค

  1. Augmentation ์‹คํ—˜์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ง„ํ–‰ํ•จ
  2. ์†Œํ†ต๊ณผ ํ˜‘์—…์ด ์›ํ™œํ•˜๊ฒŒ ์ž˜ ์ด๋ฃจ์–ด์ง
  3. ์„œ๋กœ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ฆฌ๋ทฐํ•˜๋ฉด์„œ ์‹คํ—˜ ๊ด€๋ฆฌ

์•„์‰ฌ์šด ์ ๋“ค

  1. ์ €๋ฒˆ ํ”„๋กœ์ ํŠธ๋ณด๋‹ค๋Š” ํ™œ์šฉ์„ ์ข€๋” ํ–ˆ์œผ๋‚˜ ์•„์ง github ํ”„๋กœ์ ํŠธ ํ™œ์šฉ๋„๊ฐ€ ๋†’์ง€ ์•Š์Œ
  2. W&B Sweep์„ ์ด์šฉํ•œ Hyperparameter Tuning์„ ์‹œ๋„ํ•ด๋ณด๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜ ์‹คํŒจํ•จ
  3. ํ•™์Šต ๋„์ค‘์— ๋ฉˆ์ถ”๋Š” ์ƒํ™ฉ์ด ์—ฌ๋Ÿฟ ๋ฐœ์ƒํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋Š”๋ฐ์— ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Œ

ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฐ์šด์ 

  1. ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ผ๋ฒจ๋ง์˜ ์ค‘์š”์„ฑ์„ ์•Œ๊ฒŒ ๋์Œ.
  2. OCR Task์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์—ˆ์Œ.
  3. ์‹ค์ œ๋กœ annotation ํˆด์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์ž‘ํ•ด๋ณด๊ณ  ์ œ์ž‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ํ™œ์šฉ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ๊ฒฝํ—˜ํ•ด๋ด„

๐Ÿ’ปRequirements

pip install -r requirements.txt

apt-get update
apt-get install ffmpeg libsm6 libxext6  -y

๐Ÿ—๏ธFolder Structure

โ””โ”€โ”€ level2_dataannotation_level2_cv_09  
      โ”œโ”€โ”€ convert_mlt  #ICDAR Json to UFO Format
      โ”œโ”€โ”€ dataset
      โ”œโ”€โ”€ detect
      โ”œโ”€โ”€ deteval  #Metrics
      โ”œโ”€โ”€ east_dataset 
      โ”œโ”€โ”€ inference
      โ”œโ”€โ”€ loss
      โ”œโ”€โ”€ merge_data
      โ”œโ”€โ”€ model
      โ”œโ”€โ”€ train_many  #Multiple Dataset
      โ”œโ”€โ”€ train_noval  #No Validation
      โ”œโ”€โ”€ train 
      โ”œโ”€โ”€ transfer_outsideKo  #AIHub Json to UFO Format
      โ””โ”€โ”€ upstage_preprocess  #Preprocess Upstage Dataset


About

level2_dataannotation_cv-level2-cv-09 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages