Summary | AI-OCR๋ž€?

[ DL ] AI-OCR์ด๋ž€?

2023 ํ•˜๋ฐ˜๊ธฐ์— ํ•˜๋‚˜๊ธˆ์œต์œตํ•ฉ๊ธฐ์ˆ ์› ์ธํ„ด์œผ๋กœ ์ฐธ์—ฌํ•˜๋ฉด์„œ ๊ฐœ์ธ์ ์œผ๋กœ๋„ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ–ˆ๊ณ  ๊ณ ๋งˆ์šด ๋ถ„๋“ค๊ป˜ ๋งŽ์€ ๊ฒƒ์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋•Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์—ฌ๊ธฐ์— ์กฐ๊ธˆ์”ฉ ๊ธฐ๋กํ•ด ๋‚˜๊ฐ€๊ณ ์ž ํ•œ๋‹ค.

๐Ÿ“Œ ์˜ค๋Š˜์˜ ์ฃผ์ œ : AI-OCR

1. OCR ๊ฐœ๋…

OCR = Text detection + Text recognition

OCR Optical Character Recognition ์€ ๊ด‘ํ•™ ๋ฌธ์ž ์ธ์‹์œผ๋กœ, ์ด๋ฏธ์ง€์— ์žˆ๋Š” ๊ธ€์”จ๋ฅผ ์ธ์ง€ํ•˜์—ฌ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ์น˜ํ™˜ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์„ ๋งํ•œ๋‹ค. OCR์€ ํฌ๊ฒŒ ๋ฌธ์ž ์˜์—ญ์„ ๊ฒ€์ถœํ•˜๋Š” Text detection๊ณผ ๊ฒ€์ถœ๋œ ์˜์—ญ์˜ ๋ฌธ์ž๋ฅผ ์ธ์‹ํ•˜๋Š” Text recognition์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ๊ธฐ์ˆ ์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ์† ๋ฌธ์ž๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ์ž๋™์ฐจ ๋ฒˆํ˜ธํŒ ์ธ์‹, ์‹ ์šฉ์นด๋“œ ๋ฒˆํ˜ธ ์ธ์‹ ๋“ฑ ์ผ์ƒ์ƒํ™œ์—์„œ๋„ OCR์„ ์‰ฝ๊ฒŒ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Text detection์€ ์ผ๋ฐ˜์ ์ธ Object detection ์ค‘ ๋ฌธ์ž๋ฅผ ์ฐพ์•„๋‚ด๋Š” ํƒœ์Šคํฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž๊ฐ€ ๊ฐ€์ง€๋Š” ๋…ํŠนํ•œ ํŠน์„ฑ์„ ๊ณ ๋ คํ•ด ์ง€์†์ ์œผ๋กœ ๋ฐœ์ „ํ•ด ์™”๋‹ค๊ณ  ํ•œ๋‹ค.

Text recognition์€ ์•ž์„œ ๊ฒ€์ถœ๋œ ์˜์—ญ์˜ ๋ฌธ์ž๊ฐ€ ์–ด๋–ค ๋ฌธ์ž์ธ์ง€ ์ธ์‹ํ•ด ๋‚ด๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๊ฒ€์ถœ๋œ ์˜์—ญ ์† ๋ฌธ์ž๊ฐ€ MNIST ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ๊น”๋”ํ•˜์ง€ ์•Š๊ณ  ๋‹ค์–‘ํ•œ ๊ฐ๋„์™€ ํ˜•ํƒœ๋กœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ชจ๋ธ ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.


โœ… AI-OCR

  • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถ”์ถœํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ๋žŒ์ด ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๊ณต๊นŒ์ง€ ๊ฐ€๋Šฅ
  • ๋ฐฉ๋Œ€ํ•œ ์„œ๋ฅ˜๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐ ์œ ์šฉ

2. OCR before Deep Learning

์ฒ˜์Œ๋ถ€ํ„ฐ OCR์— ๋”ฅ๋Ÿฌ๋‹์ด ์“ฐ์˜€๋˜ ๊ฑด ์•„๋‹ˆ๋‹ค. ๋ณดํ†ต์€ ์•„๋ž˜์™€ ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๋”ฅ๋Ÿฌ๋‹ ์ด์ „์— ์‚ฌ์šฉํ–ˆ๋˜ OCR ์—”์ง„ ์ค‘ ํ•˜๋‚˜๋กœ Tesseract OCR๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ Connected Component Analysis ๋‹จ๊ณ„์—์„œ ๋ฌธ์ž ์˜์—ญ์„ ๊ฒ€์ถœํ•œ ํ›„ Find Lines and Words ๋‹จ๊ณ„์—์„œ ๋ผ์ธ ๋˜๋Š” ๋‹จ์–ด ๋‹จ์œ„๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ์ดํ›„ Recognize Word ๋‹จ๊ณ„์—์„œ ๋‹จ์–ด ๋‹จ์œ„ ์ด๋ฏธ์ง€๋ฅผ Text๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ธ์‹ํ•˜๊ณ  ๋‹ค์‹œ ๊ฒฐํ•ฉํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

Architecture of Tesseract OCR

์œ„ ๋ฐฉ๋ฒ•์€ ํ•„์š”ํ•œ ๋‹จ๊ณ„๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์†Œ ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ํ˜„์žฌ๋Š” ์ด ์  ๋•Œ๋ฌธ์— ๋”ฅ๋Ÿฌ๋‹์„ ์ ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋‹จ์œ„๋กœ ๋ฌธ์ž๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์ด๋ฅผ ํ•œ ๋ฒˆ์— ์ธ์‹ํ•˜๋„๋ก ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ OCR ์ธ์‹์„ ํ•˜๊ณ  ์žˆ๋‹ค.

3. Text detection

์œ„์—์„œ ๋ดค๋“ฏ์ด, ๋”ฅ๋Ÿฌ๋‹ ์ด์ „์—๋„ OCR์€ Text detection + Text recognition์˜ ๊ธฐ๋ณธ์ ์ธ ํ๋ฆ„์€ ๋™์ผํ–ˆ๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ ๋”ฅ๋Ÿฌ๋‹์„ ์ด์šฉํ•ด์„œ Text detection ํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์ด๋ฏธ์ง€์—์„œ ํ…์ŠคํŠธ๋ฅผ ์ฐพ์•„๋‚ผ ๋•Œ ๋‹จ์ˆœํžˆ object detection์ด๋‚˜ segmentation ๊ธฐ๋ฒ•์„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Text detection์€ ํ…์ŠคํŠธ์˜ ํŠน์„ฑ๋„ ๊ณ ๋ คํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋ฌธ์ž ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ๋ชจ์—ฌ ๋‹จ์–ด๋ฅผ ๋งŒ๋“ค๊ณ , ๋‹จ์–ด๊ฐ€ ๋ชจ์—ฌ ๋ฌธ์žฅ์ด ๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€์—์„œ ๋ฌธ์ž๋ฅผ ๊ฒ€์ถœํ•  ๋•Œ์— ๊ฒ€์ถœํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ๋‹จ์œ„๋ฅผ ์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋‹ค์–‘ํ•œ Text detection ๊ธฐ๋ฒ•

์œ„ ๊ทธ๋ฆผ์€ EAST:An Efficient and Accurate Scene Text Detector(2017) ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœ๋œ ๋‹ค์–‘ํ•œ Text detection ๊ธฐ๋ฒ•์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค.

๋‹น์‹œ detection์— ์žˆ์–ด์„œ ์ฃผ๋กœ Text์˜ Bounding box๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์— ์ดˆ์ ์„ ๋งž์ถ”์—ˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ์—ฌ๋Ÿฌ ๋ฐฉํ–ฅ(๊ฐ€๋กœ/์„ธ๋กœ/๋Œ€๊ฐ์„  ๋“ฑ)์œผ๋กœ ์จ ์žˆ๋Š” ํ…์ŠคํŠธ ๋ฐ•์Šค๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์—ฐ๊ตฌํ–ˆ๋‹ค.

3.1. Text detection - Regression

TextBoxes: A Fast Text Detector with a Single Deep Neural Network

TextBoxes ๋ชจ๋ธ ๊ตฌ์กฐ

์ด์ „์—๋Š” ๊ธ€์ž ๋‹จ์œ„๋กœ ์ธ์‹ํ•˜์—ฌ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์„ ํ™œ์šฉํ•ด์™”๋‹ค๊ณ  ์–˜๊ธฐํ•œ ๋ฐ” ์žˆ๋‹ค. ํ•ด๋‹น ๋…ผ๋ฌธ์€ ๋”ฅ๋Ÿฌ๋‹์„ ํ™œ์šฉํ•ด ๋‹จ์–ด ๋‹จ์œ„๋กœ detectionํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. ๋„คํŠธ์›Œํฌ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋กœ๋Š” SSD: single shot multibox detector๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ๋ฌธ์ž ์˜์—ญ์„ ํƒ์ง€ํ•ด๋‚ด์—ˆ๋‹ค.

[click!] ๐Ÿ”Ž ์‚ฌ๋ฌผ ํƒ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ผ๋ฐ˜์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ

1๏ธโƒฃ ์˜์—ญ ์ œ์•ˆ (Region Proposal)
์ด๋ฏธ์ง€์—์„œ ์‹œ์Šคํ…œ์ด ์ฒ˜๋ฆฌํ•  ์˜์—ญ RoI (Regions of Interest) ๋ฅผ ์ œ์•ˆํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋•Œ RoI๋Š” ์ด๋ฏธ์ง€ ๋‚ด ๋ฌผ์ฒด๊ฐ€ ์กด์žฌํ•  ๊ฒƒ์ด๋ผ ์˜ˆ์ƒ๋˜๋Š” ์˜์—ญ์„ ์˜๋ฏธํ•œ๋‹ค.

2๏ธโƒฃ ํŠน์ง• ์ถ”์ถœ ๋ฐ ์˜ˆ์ธก
๊ฐ ๋ฐ•์Šค ์˜์—ญ์˜ ์‹œ๊ฐ์  ํŠน์ง•์„ ์ถ”์ถœํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง•์„ ํ‰๊ฐ€ํ•ด์„œ ๋ฌผ์ฒด ์กด์žฌ ์—ฌ๋ถ€์™€ ํด๋ž˜์Šค๋ฅผ ํŒ๋‹จํ•œ๋‹ค.

3๏ธโƒฃ ๋น„์ตœ๋Œ€ ์–ต์ œ NMS, Non-Maximum Suppression
์ด ๋‹จ๊ณ„์ฏค์ด๋ฉด ๋ชจ๋ธ์ด ๊ฐ™์€ ๋ฌผ์ฒด์— ๋Œ€ํ•ด ๋ณต์ˆ˜์˜ ๋ฐ•์Šค๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. NMS๋Š” ์ค‘๋ณต๋œ ๋ฐ•์Šค๋“ค์„ ํƒ์ง€ํ•˜๊ณ  ํ†ตํ•ฉํ•˜์—ฌ ๋ฌผ์ฒด ํ•˜๋‚˜๋งˆ๋‹ค ํ•˜๋‚˜์˜ ๋ฐ•์Šค๋งŒ ๋‚จ๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

4๏ธโƒฃ ํ‰๊ฐ€ ์ง€ํ‘œ
์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜์˜ ์ •ํ™•๋„, ์ •๋ฐ€๋„, ์žฌํ˜„์œจ ๋“ฑ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ๋ฌผํƒ์ง€์—๋„ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•˜๋Š” ๊ณ ์œ ์˜ ํ‰๊ฐ€ ์ง€ํ‘œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ์ง€ํ‘œ๋กœ๋Š” ํ‰๊ท ํ‰๊ท ์ •๋ฐ€๋„ (mean average precision, MAP) ์™€ PR ๊ณก์„  (Precision-Recall curve), ์ค‘์ฒฉ๋ฅ  (Intersection over Union, IoU) ๊ฐ€ ์žˆ๋‹ค.


vertical offset ์„ค๋ช…

๊ธฐ์กด์˜ SSD๋Š” Regression์„ ์œ„ํ•œ Convolution layer์—์„œ 3 x 3 ํฌ๊ธฐ์˜ kernel์„ ๊ฐ–๋Š”๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ๋‹จ์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€๋กœ๋กœ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— Aspect ratio(์ข…ํšก๋น„)๊ฐ€ ํฌ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋…ผ๋ฌธ์—์„œ๋Š” SSD๋ฅผ ์กฐ๊ธˆ ๋ณ€ํ˜•ํ•ด์„œ 1 x 5 ํฌ๊ธฐ์˜ convolution filer๋ฅผ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ์ถ”๊ฐ€๋กœ Anchor box์˜ aspect ratio๋ฅผ 1, 2, 3, 5, 7๋กœ ๋‘๊ณ , ์ด์— vertical offset์„ ์ ์šฉํ•ด์„œ ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋กœ๋„ ์ด˜์ด˜ํ•˜๊ฒŒ ๋ฐฐ์—ด๋œ ๋‹จ์–ด์—๋„ ๋Œ€์‘ํ•˜๋„๋ก ํ–ˆ๋‹ค.

3.2. Text detection - Segmentation

์ผ๋ฐ˜์ ์ธ semantic segmentation

์ผ๋ฐ˜์ ์ธ semantic segmentation์€ ์ด๋ฏธ์ง€์—์„œ ์˜์—ญ์„ class๋กœ ๋ถ„๋ฆฌํ•ด๋‚ธ๋‹ค. ์ด๋ฅผ ๋ฌธ์ž ์˜์—ญ์—๋„ ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, ๊ธ€์ž ๋ถ€๋ถ„์˜ ์˜์—ญ๊ณผ ๋ฐฐ๊ฒฝ์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, ๋ฌธ์ž๋Š” ๋ฐฉํ–ฅ์ด๋‚˜ ๊ฐ๋„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ฝํž ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๊ด€ํ•œ ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

PixelLink๋Š” ํ…์ŠคํŠธ ์˜์—ญ์„ ์ฐพ์•„๋‚ด๋Š” segmentation๊ณผ ํ•จ๊ป˜, ํ…์ŠคํŠธ๊ฐ€ ์–ด๋Š ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š”์ง€๋ฅผ ๊ฐ™์ด ํ•™์Šตํ•˜์—ฌ ์˜์—ญ ๊ฐ„ ๋ถ„๋ฆฌ ๋ฐ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

PixelLink ๊ตฌ์กฐ

PixelLink์˜ ์ „์ฒด์ ์€ ๊ตฌ์กฐ๋Š” U-Net๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ์•„๋ž˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณด๋ฉด input์—์„œ conv 1 x 1, 2(16) ํ˜•ํƒœ์˜ ๋ ˆ์ด์–ด๊ฐ€ U-Net ๊ตฌ์กฐ๋กœ ์—ฐ๊ฒฐ๋˜์–ด output์œผ๋กœ ํ•จ๊ป˜ ๊ณ„์‚ฐ๋˜์–ด, ์ธ์ ‘ pixel ๊ฐ„ ์—ฐ๊ฒฐ ๊ตฌ์กฐ๊ฐ€ ์ง€์†์ ์œผ๋กœ ์œ ์ง€๋˜๋„๋ก ํ•˜๋Š” ๋ชจ๋ธ ๊ตฌ์กฐ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

PixelLink+VGG16 ๊ตฌ์กฐ


output์œผ๋กœ Link Prediction๊ณผ Text/non-text Prediction์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Text/non-text Prediction์€ class segmentation map์œผ๋กœ ํ•ด๋‹น ์˜์—ญ์ด ํ…์ŠคํŠธ์ธ์ง€ ๋ฐฐ๊ฒฝ์ธ์ง€์— ๋Œ€ํ•œ ์˜ˆ์ธก๊ฐ’์„ ์˜๋ฏธํ•˜๋Š” 2๊ฐœ์˜ ์ปค๋„์„ ๊ฐ€์ง„๋‹ค. Link Prediction์€ ํ…์ŠคํŠธ์˜ pixel์„ ์ค‘์‹ฌ์œผ๋กœ ์ธ์ ‘ํ•œ 8๊ฐœ์˜ pixel์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์—ฌ๋ถ€๋ฅผ ์˜๋ฏธํ•˜๋Š” 16๊ฐœ์˜ ์ปค๋„์„ ๊ฐ€์ง„๋‹ค๊ณ  ํ•œ๋‹ค.

์ด ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ ์ธ์ ‘ํ•œ pixel์ด ์ค‘์‹ฌ pixel๊ณผ ๋‹จ์–ด๋กœ ์—ฐ๊ฒฐ๋œ pixel์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ž ์˜์—ญ์ด ๋‹จ์–ด ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ๋œ Instance segmentation์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

3.3. Text detection - ์ตœ๊ทผ

์œ„ ๋‘ ๊ฐ€์ง€ regression ๋ฐฉ์‹๊ณผ segmentation ๋ฐฉ์‹์„ ์ ์ ˆํ•˜๊ฒŒ ํ™œ์šฉํ•œ Hybrid ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜๊ณ , ์‚ฌ์‹ค ์ตœ๊ทผ์—๋Š” Feature extractor๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค.

4. Text Recognition

4.1. Text Recognition - RNN ๊ณ„์—ด

ํŠนํžˆ recognition ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 80-90๋…„๋Œ€๋ถ€ํ„ฐ ์—ฐ๊ตฌ๋˜์˜ค๋˜ ๋ถ„์•ผ๋กœ, RNN๊ณผ Transformer ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŽ์ด ์—ฐ๊ตฌ๋˜์—ˆ๋‹ค. ๊ทธ ์ค‘ ์‹œ์ž‘์€ RNN์ด์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

RNN ๊ฐœ๋…


RNN(Recurrent Neural Network)์˜ ๊ฐœ๋…์„ ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด ์ˆœํ™˜์‹ ๊ฒฝ๋ง ์ฆ‰, ์ด์ „์˜ ๊ฐ’์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋‹ค์Œ์˜ ๊ฐ’์„ ์ถ”๋ก ํ•˜๋Š” ๊ณผ์ •์˜ ๋ฐ˜๋ณต์ด๋‹ค. ์ฒ˜์Œ ๋“ฑ์žฅํ–ˆ์„ ๋•Œ๋Š” ๊ฐ๊ด‘ ๋ฐ›์•˜์ง€๋งŒ, ์ค‘๊ฐ„์— ๊ณผ์ •์ด ๋”ํ•ด์ง€๊ณ  ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์˜ค๋ž˜์ „ ๊ฐ’์€ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์–ด ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit) ๋“ฑ์ด ๋“ฑ์žฅํ•ด ์„ฑ๋Šฅ์„ ๋†’์—ฌ ๋‚˜๊ฐ”๋‹ค.

4.2. Text Recognition - Transformer ๊ณ„์—ด

2017๋…„๋„์— Transformer๋ผ๋Š” ๋ชจ๋ธ์ด ๋‚˜์˜ค๊ฒŒ ๋˜๋ฉด์„œ RNN ๊ณ„์—ด ๊ธฐ๋ฐ˜ recognition์ด ์™„์ „ํžˆ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค. Transformer๋Š” ์›๋ž˜ ์–ธ์–ด ์ฒ˜๋ฆฌ ๋ถ„์•ผ์˜ ์–ธ์–ด ๋ฒˆ์—ญ์„ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๋ชจ๋ธ ๊ตฌ์กฐ๋กœ, Encoder + Decoder ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

OCR์—์„œ Transformer๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ชจ์Šต


Transformer๋Š” ์ž์—ฐ์–ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ OCR recognition์—๋„ ์•„์ฃผ ์œ ๋Šฅํ•œ ๋ชจ๋ธ์ด๋‹ค. OCR recognition์— ์ ์šฉ์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ์ด๋ฏธ์ง€๊ฐ€ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ€๊ณ  ์ถœ๋ ฅ์€ ๋™์ผํ•˜๊ฒŒ ๋ฌธ์ž์—ด์ด ๋˜๊ฒ ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ ๋ชจ๋“ˆ์€ Self Attention์œผ๋กœ, ์—ฐ์‚ฐ๋˜๋Š” ๊ณณ์€ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€๋‹ค.

์‚ฌ์šฉ๋˜๋Š” Self Attention ์—ฐ์‚ฐ๋“ค

์œ„์ฒ˜๋Ÿผ self-attention์€ Encoder์— 1๋ฒˆ, Decoder์— 2๋ฒˆ ๋‚˜ํƒ€๋‚œ๋‹ค.

Encoder & Decoder Self Attention


๋จผ์ €, Encoder์—์„œ๋Š” ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ๋œ ์ด๋ฏธ์ง€ ํ”ฝ์…€ ์ด๋ฏธ์ง€์˜ ๊ด€๊ณ„๋ฅผ ๋ชจ๋‘ ์ถ”๋ก ํ•˜๊ณ  ํŠน์ง•์„ ์ถ”์ถœํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ฃผ๋ณ€์— ์žˆ๋Š” ํ”ฝ์…€์— ์žˆ๋Š” ๊ด€๊ณ„์„ฑ์ด ๋” ๋†’๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ณ , ๋ฉ€์ˆ˜๋ก ๊ด€๊ณ„์„ฑ์ด ๋” ๋‚ฎ๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค. Decoder์—์„œ์˜ self-attention์€ ์ž…๋ ฅ ์ด๋ฏธ์ง€์™€ ์ตœ์ข…์ ์œผ๋กœ ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด ๊ด€์˜ ๊ด€๊ณ„๋ฅผ ๋งคํ•‘์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. โ€˜Nโ€™์ด ์–ด๋–ค ํ”ฝ์…€์—์„œ ์ฃผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š”์ง€๋ฅผ attention์„ ํ†ตํ•ด ๋งค๊ธฐ๊ณ , ์ตœ์ข…์ ์œผ๋กœ recognition ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ ์ฒซ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ โ€˜Nโ€™์ด๋ผ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.



4.3. Text Recognition - ๊ทธ ์™ธ



4.4. Text Recognition - ๊ฐœ์„  ๊ฐ€๋Šฅ ๋ฐฉ์•ˆ

  • ๐Ÿ“ Self attention : global feature extraction
  • ๐Ÿ“ Convolution module : local feature extraction


์ž…๋ ฅ ์ด๋ฏธ์ง€์™€ ๋ชจ๋“  ํ”ฝ์…€์„ ์ฐธ์กฐํ•˜๊ฒŒ ๋˜๋Š” global attention์œผ๋กœ, Local ํŠน์ง•์— ์กฐ๊ธˆ ๋” ์ง‘์ค‘ํ•˜๋Š” convolution๊ณผ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ทธ๋ž˜์„œ local ํŠน์ง•์—๋„ ์ง‘์ค‘ํ•˜๊ธฐ ์œ„ํ•ด convolution layer๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐœ์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

ํ˜น์€, Encoder์˜ ๊ตฌ์กฐ๋ฅผ ์žฌ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ์•ˆ์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์–ด๋–ค ํŠน์ • ์‚ฌ๋ก€์—์„œ๋Š” Self Attention์„ ๋นผ๊ณ  Feature Extractor๋กœ multi-scale์„ ๊ฐ€์ง€๋Š” ํŠน์ง•์„ ๋ชจ๋‘ ๋ฐ˜์˜ํ•˜๊ณ  attention์˜ ์œ„์น˜๋ฅผ ์กฐ๊ธˆ ์กฐ์ •ํ•ด์„œ ๊ตฌ์กฐ๋ฅผ ์žฌ์„ค๊ณ„ํ–ˆ์„ ๋•Œ ๋†’์•„์ง€๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์—ˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์žˆ๋‹ค.


5. OCR ๋ฐ์ดํ„ฐ

  • ์˜คํ”ˆ ๋ฐ์ดํ„ฐ
    • OCR ๋…ผ๋ฌธ ์—ฐ๊ตฌ ์šฉ๋„
      • OCR ์—ฐ๊ตฌ ๋…ผ๋ฌธ ์œ„์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ
    • ICDAR (Challenge)
      • ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํƒœ์Šคํฌ
      • ํƒœ์Šคํฌ๋ณ„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ
    • AI Hub - ํ•œ๊ตญ์–ด ๊ธ€์ž์ฒด ์ด๋ฏธ์ง€

  • ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ
    • ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€, ๋‹ค์–‘ํ•œ ๋…ธ์ด์ฆˆ, ํฐํŠธ, ๋‹จ์–ด ์‚ฌ์ „, ํœ˜์–ด์ง ๋“ฑ


Reference

 

Related Posts



๐Ÿ’™ You need to log in to GitHub to write comments. ๐Ÿ’™
If you can't see comments, please refresh page(F5).