์ฝ˜ํ…์ธ  ๋Œ€ํ‘œ ์ด๋ฏธ์ง€ - ๐Ÿ” ์ด๋ฏธ์ง€ ์† ๊ธ€์ž๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ฐ”๊พธ๋Š” OCR ๋ฌธ์„œ ๋ณ€ํ™˜: ์›๋ฆฌ๋ถ€ํ„ฐ ๋„๊ตฌ ์„ ํƒ, ์ธ์‹๋ฅ  ๋†’์ด๋Š” ์‹ค์ „ ์›Œํฌํ”Œ๋กœ๊นŒ์ง€

๐Ÿ” ์ด๋ฏธ์ง€ ์† ๊ธ€์ž๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ฐ”๊พธ๋Š” OCR ๋ฌธ์„œ ๋ณ€ํ™˜: ์›๋ฆฌ๋ถ€ํ„ฐ ๋„๊ตฌ ์„ ํƒ, ์ธ์‹๋ฅ  ๋†’์ด๋Š” ์‹ค์ „ ์›Œํฌํ”Œ๋กœ๊นŒ์ง€

๐Ÿ“„ โ†’ โŒจ๏ธ ์‚ฌ์ง„ ํ•œ ์žฅ์ด ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ๋ฌธ์„œ๊ฐ€ ๋˜๊ธฐ๊นŒ์ง€
์Šค์บ”ํ•œ ๊ณ„์•ฝ์„œ, ํœด๋Œ€ํฐ์œผ๋กœ ์ฐ์€ ๋ช…ํ•จ, ์บก์ฒ˜ํ•œ PDF ํ‘œ. ์ด๋Ÿฐ ์ด๋ฏธ์ง€ ์† ๊ธ€์ž๋Š” ๋ˆˆ์—๋Š” ๊ธ€์ž์ฒ˜๋Ÿผ ๋ณด์—ฌ๋„ ์ปดํ“จํ„ฐ์—๊ฒŒ๋Š” ๊ทธ์ € ์ƒ‰์ด ์žˆ๋Š” ์ ์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ด ์ ๋“ค์„ ๊ฒ€์ƒ‰ยท๋ณต์‚ฌยทํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ๋กœ ๋ฐ”๊ฟ” ์ฃผ๋Š” ๊ธฐ์ˆ ์ด OCR(Optical Character Recognition, ๊ด‘ํ•™ ๋ฌธ์ž ์ธ์‹)์ž…๋‹ˆ๋‹ค.

OCR: ์ด๋ฏธ์ง€ โ†’ ํ…์ŠคํŠธ ๐Ÿ“ท ์Šค์บ” ์ด๋ฏธ์ง€ ์ธ์‹ โŒจ๏ธ ํŽธ์ง‘ ๊ฐ€๋Šฅ ํ…์ŠคํŠธ ๊ณ„์•ฝ์„œ ์ œ1์กฐ ์ด์•ก 1,250,000์› ๊ฒ€์ƒ‰ ยท ๋ณต์‚ฌ ยท ์ˆ˜์ • โœ” ์ธ์‹ ์™„๋ฃŒ ์ „์ฒ˜๋ฆฌ โ†’ ๊ฒ€์ถœ โ†’ ์ธ์‹ โ†’ ํ›„์ฒ˜๋ฆฌ

1. OCR์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€

OCR์€ ์ธ์‡„๋˜๊ฑฐ๋‚˜ ์†์œผ๋กœ ์“ด ๊ธ€์ž๊ฐ€ ๋‹ด๊ธด ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž ๋ฐ์ดํ„ฐ(์˜ˆ: ์œ ๋‹ˆ์ฝ”๋“œ ํ…์ŠคํŠธ)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. 1970~80๋…„๋Œ€์— ์šฐํŽธ๋ฒˆํ˜ธ ์ž๋™ ๋ถ„๋ฅ˜, ์€ํ–‰ ์ˆ˜ํ‘œ ์ฒ˜๋ฆฌ ๋“ฑ์—์„œ ์ƒ์šฉํ™”๋˜์—ˆ๊ณ , ์ดํ›„ ์Šค์บ๋„ˆ ๋ฒˆ๋“ค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฑฐ์ณ ์˜ค๋Š˜๋‚ ์—๋Š” ์Šค๋งˆํŠธํฐ ์นด๋ฉ”๋ผ, ํด๋ผ์šฐ๋“œ API, ์˜คํ”ˆ์†Œ์Šค ์—”์ง„์œผ๋กœ ํญ๋„“๊ฒŒ ์“ฐ์ž…๋‹ˆ๋‹ค.

์›Œ๋“œยทํƒ€์ดํ•‘ ์—…๋ฌด ๊ด€์ ์—์„œ OCR์˜ ๊ฐ€์น˜๋Š” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ํƒ€์ดํ•‘ํ•˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ข…์ด ๋ฌธ์„œ 50์ชฝ์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๋ฉด ์ˆ˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ, OCR์„ ์“ฐ๋ฉด ๋ณ€ํ™˜๊ณผ ๊ฒ€์ˆ˜ ์œ„์ฃผ๋กœ ์ž‘์—…์ด ๋ฐ”๋€๋‹ˆ๋‹ค. ๋‹ค๋งŒ "100% ์ž๋™"์€ ์•„๋‹ˆ๋ฉฐ, ๊ฒ€์ˆ˜ ๋‹จ๊ณ„๊ฐ€ ํ’ˆ์งˆ์„ ์ขŒ์šฐํ•ฉ๋‹ˆ๋‹ค.

2. OCR์ด ๊ธ€์ž๋ฅผ ์ฝ๋Š” ๊ณผ์ •

โ‘  ์ „์ฒ˜๋ฆฌ
๊ธฐ์šธ๊ธฐ ๋ณด์ •(deskew), ๋…ธ์ด์ฆˆ ์ œ๊ฑฐ, ์ด์ง„ํ™”(ํ‘๋ฐฑ ๋ณ€ํ™˜), ๋Œ€๋น„ ์กฐ์ •, ํ•ด์ƒ๋„ ์กฐ์ •์„ ํ•ฉ๋‹ˆ๋‹ค.
โ‘ก ๋ ˆ์ด์•„์›ƒ ๋ถ„์„
๋ฌธ๋‹จ, ์ œ๋ชฉ, ํ‘œ, ๊ทธ๋ฆผ, ๋‹จ(column)์„ ๊ตฌ๋ถ„ํ•˜๊ณ  ์ฝ๋Š” ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
โ‘ข ํ…์ŠคํŠธ ๊ฒ€์ถœยท์ธ์‹
๊ธ€์ž ์˜์—ญ์„ ์ฐพ๊ณ , ๊ฐ ์˜์—ญ์„ ๋ฌธ์ž์—ด๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ํ˜„๋Œ€ ์—”์ง„์€ ๋”ฅ๋Ÿฌ๋‹(CNN, RNN/LSTM, ํŠธ๋žœ์Šคํฌ๋จธ ๊ณ„์—ด)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
โ‘ฃ ํ›„์ฒ˜๋ฆฌ
์‚ฌ์ „, ์–ธ์–ด ๋ชจ๋ธ, ์ •๊ทœ์‹์œผ๋กœ ์˜ค์ธ์‹์„ ๊ต์ •ํ•˜๊ณ  PDFยทDOCXยทTXT ๋“ฑ์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ „ํ†ต์  ๋ฐฉ์‹์€ ๊ธ€์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ž˜๋ผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฌธ์ž ๋‹จ์œ„ ์ธ์‹์ด์—ˆ์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” ํ•œ ์ค„ ์ „์ฒด๋ฅผ ์‹œํ€€์Šค๋กœ ์ฝ๋Š” ๋ฐฉ์‹(CRNN + CTC ๋“ฑ)์ด ๋„๋ฆฌ ์“ฐ์ž…๋‹ˆ๋‹ค. ๋•๋ถ„์— ๊ธ€์ž๊ฐ€ ๋ถ™์–ด ์žˆ๊ฑฐ๋‚˜ ํ•„๊ธฐ์ฒด์— ๊ฐ€๊นŒ์šด ๊ธ€์—์„œ๋„ ๋งฅ๋ฝ์„ ํ™œ์šฉํ•ด ์ •ํ™•๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์ž…๋ ฅ ์ด๋ฏธ์ง€ ํ’ˆ์งˆ์ด ์ธ์‹๋ฅ ์˜ 70%๋ฅผ ์ขŒ์šฐํ•œ๋‹ค

OCR ์—…๊ณ„์—์„œ ์ž์ฃผ ํ•˜๋Š” ๋ง์ด "Garbage in, garbage out"์ž…๋‹ˆ๋‹ค. ์—”์ง„ ์„ฑ๋Šฅ๋งŒํผ ์ž…๋ ฅ ํ’ˆ์งˆ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๋ ค์ง„ ๊ถŒ์žฅ ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ๊ถŒ์žฅ ๊ธฐ์ค€์ด์œ 
ํ•ด์ƒ๋„์Šค์บ” ์‹œ 300dpi ์ด์ƒ (Tesseract ๋ฌธ์„œ๋„ 300dpi ์ˆ˜์ค€์„ ๊ถŒ์žฅ)๊ธ€์ž ๋†’์ด๊ฐ€ ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ํš์ด ๋ญ‰๊ฐœ์ง
๊ธ€์ž ํฌ๊ธฐ๋Œ€๋ฌธ์ž ๊ธฐ์ค€ ์•ฝ 20~30ํ”ฝ์…€ ๋†’์ด๊ฐ€ ์ ์ •๋„ˆ๋ฌด ์ž‘๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ์ปค๋„ ์ธ์‹๋ฅ  ์ €ํ•˜
์ƒ‰์ƒ ๋ชจ๋“œํ‘๋ฐฑ ๋˜๋Š” ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ๋ฐฐ๊ฒฝ ์ƒ‰ ๊ฐ„์„ญ ๊ฐ์†Œ
๊ธฐ์šธ๊ธฐ๊ฐ€๋Šฅํ•œ ํ•œ 0๋„์— ๊ฐ€๊น๊ฒŒ์ค„ ๋ถ„๋ฆฌ ์˜ค๋ฅ˜ ๋ฐฉ์ง€
์กฐ๋ช…๊ทธ๋ฆผ์ž ์—†์ด ๊ท ์ผํ•˜๊ฒŒ์ด์ง„ํ™” ์‹œ ๊ธ€์ž ์†Œ์‹ค ๋ฐฉ์ง€
ํŒŒ์ผ ํ˜•์‹PNG, TIFF ๋“ฑ ๋ฌด์†์‹ค ์„ ํ˜ธJPEG ์••์ถ• ๋…ธ์ด์ฆˆ ๊ฐ์†Œ
๐Ÿ’ก ์Šค๋งˆํŠธํฐ ์ดฌ์˜ ํŒ
๋ฌธ์„œ๋ฅผ ํ‰ํ‰ํ•˜๊ฒŒ ํŽด๊ณ , ์œ„์—์„œ ์ˆ˜์ง์œผ๋กœ ์ดฌ์˜ํ•˜์„ธ์š”. ํ˜•๊ด‘๋“ฑ ๋ฐ˜์‚ฌ๋ฅผ ํ”ผํ•˜๊ณ , ๋ฌธ์„œ 4๋ฉด์ด ๋ชจ๋‘ ํ”„๋ ˆ์ž„ ์•ˆ์— ๋“ค์–ด์˜ค๊ฒŒ ํ•˜๋ฉด ์ž๋™ ์›๊ทผ ๋ณด์ •์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์Šค์บ” ์•ฑ์˜ "๋ฌธ์„œ ๋ชจ๋“œ"๋ฅผ ์“ฐ๋ฉด ๋ณด์ •์ด ์ž๋™ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

4. ๋Œ€ํ‘œ์ ์ธ OCR ๋„๊ตฌ์™€ ํŠน์ง•

Tesseract
์˜คํ”ˆ์†Œ์Šค ์—”์ง„(Apache 2.0). HP์—์„œ ์‹œ์ž‘ํ•ด Google์ด ํ›„์›ํ–ˆ๊ณ , 4.0๋ถ€ํ„ฐ LSTM ๊ธฐ๋ฐ˜ ์—”์ง„์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. 100๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋ฉฐ ํ•œ๊ตญ์–ด๋Š” kor, ์„ธ๋กœ์“ฐ๊ธฐ๋Š” kor_vert ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Google Cloud Vision / Document AI
ํด๋ผ์šฐ๋“œ API ๋ฐฉ์‹. ์ด๋ฏธ์ง€ยทPDF ๋ฌธ์„œ ํ…์ŠคํŠธ ๊ฒ€์ถœ๊ณผ ๊ตฌ์กฐํ™” ์ถ”์ถœ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
AWS Textract ยท Azure AI Document Intelligence
ํ‘œ, ์–‘์‹ ํ‚ค-๊ฐ’ ์ถ”์ถœ ๋“ฑ ๋ฌธ์„œ ๊ตฌ์กฐ ์ธ์‹์— ๊ฐ•์ ์ด ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
Adobe Acrobat ยท ABBYY FineReader
์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด. PDF ์Šค์บ”๋ณธ์„ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ PDF๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜ DOCX๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์ด ์„ฑ์ˆ™ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.
Microsoft OneNote ยท Word ยท Google Docs
์ผ์ƒ ์—…๋ฌด์—์„œ ์ ‘๊ทผ์„ฑ์ด ์ข‹์€ ํŽธ์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์— ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ ค Google ๋ฌธ์„œ๋กœ ์—ด๋ฉด ํ…์ŠคํŠธ๊ฐ€ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค.
PaddleOCR ยท EasyOCR
๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ๋‹ค๊ตญ์–ด์™€ ์žฅ๋ฉด ์† ๊ธ€์ž ์ธ์‹์— ์“ฐ์ด๋ฉฐ ํŒŒ์ด์ฌ์—์„œ ์‰ฝ๊ฒŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ CLOVA OCR ๊ฐ™์€ ๊ตญ๋‚ด ์„œ๋น„์Šค๋Š” ํ•œ๊ธ€ ๋ฌธ์„œยท์˜์ˆ˜์ฆ ํŠนํ™” ๋ชจ๋ธ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
โš ๏ธ ์„œ๋น„์Šค๋ณ„ ๊ฐ€๊ฒฉ, ์ง€์› ์–ธ์–ด, ์ •ํ™•๋„๋Š” ์ž์ฃผ ๋ฐ”๋€๋‹ˆ๋‹ค. ์‹ค์ œ ๋„์ž… ์ „์—๋Š” ๊ณต์‹ ๋ฌธ์„œ์™€ ๋ฌด๋ฃŒ ์ฒดํ—˜์œผ๋กœ ์ง์ ‘ ํ™•์ธํ•˜์„ธ์š”.

5. ์‹ค์ „ ์›Œํฌํ”Œ๋กœ: ์‚ฌ์ง„์—์„œ ์›Œ๋“œ ๋ฌธ์„œ๊นŒ์ง€

5-1. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์šฉ 5๋‹จ๊ณ„

1๋‹จ๊ณ„
์›๋ณธ์„ ์ •๋ฉด์—์„œ ์ดฌ์˜ํ•˜๊ฑฐ๋‚˜ 300dpi๋กœ ์Šค์บ”ํ•ฉ๋‹ˆ๋‹ค.
2๋‹จ๊ณ„
์ž๋ฅด๊ธฐ, ๊ธฐ์šธ๊ธฐ ๋ณด์ •, ๋ฐ๊ธฐยท๋Œ€๋น„ ์กฐ์ •์„ ํ•ฉ๋‹ˆ๋‹ค.
3๋‹จ๊ณ„
OCR ๋„๊ตฌ์—์„œ ์–ธ์–ด(ํ•œ๊ตญ์–ด+์˜์–ด ๋“ฑ)๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
4๋‹จ๊ณ„
๊ฒฐ๊ณผ๋ฅผ DOCX๋‚˜ TXT๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
5๋‹จ๊ณ„
์›๋ณธ๊ณผ ๋Œ€์กฐํ•˜๋ฉฐ ์˜คํƒˆ์ž, ํ‘œ, ์ˆซ์ž๋ฅผ ๊ฒ€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

5-2. ์ž์ฃผ ํ‹€๋ฆฌ๋Š” ๋ฌธ์ž ์Œ

์—”์ง„์ด ๊ฐ€์žฅ ๋งŽ์ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ธ€์ž๋Š” ํ˜•ํƒœ๊ฐ€ ๋น„์Šทํ•œ ๊ฒƒ๋“ค์ž…๋‹ˆ๋‹ค. ๊ฒ€์ˆ˜ ์‹œ ์šฐ์„  ํ™•์ธํ•˜์„ธ์š”.

์›๋ฌธํ”ํ•œ ์˜ค์ธ์‹๋Œ€์‘
์ˆซ์ž 0์•ŒํŒŒ๋ฒณ O์ˆซ์ž ํ•„๋“œ๋Š” ์ •๊ทœ์‹์œผ๋กœ ๊ฒ€์ฆ
์ˆซ์ž 1l, I, |๊ธˆ์•กยท๋ฒˆํ˜ธ ์นธ ์šฐ์„  ๊ฒ€์ˆ˜
rnm์˜๋ฌธ ๊ณ ์œ ๋ช…์‚ฌ ํ™•์ธ
ํ•œ๊ธ€ ใ…‡/ใ…, ใ…/ใ…“์œ ์‚ฌ ์ž๋ชจ ํ˜ผ๋™์‚ฌ์ „ยท๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ ๋ณ‘ํ–‰
๋งˆ์นจํ‘œยท์‰ผํ‘œ๋ˆ„๋ฝ ๋˜๋Š” ๋จผ์ง€ ์ ์†Œ์ˆ˜์ ยท์ฒœ ๋‹จ์œ„ ๊ตฌ๋ถ„ ์ ๊ฒ€

6. ํ•œ๊ตญ์–ด OCR์ด ํŠน๋ณ„ํžˆ ์–ด๋ ค์šด ์ด์œ 

ํ•œ๊ธ€์€ ์ž๋ชจ๋ฅผ ์กฐํ•ฉํ•ด ์Œ์ ˆ์„ ๋งŒ๋“ค๋ฉฐ, ํ˜„๋Œ€ ํ•œ๊ธ€๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์Œ์ ˆ์€ ์ด๋ก ์ƒ 1๋งŒ 1์ฒœ ๊ฐœ๊ฐ€ ๋„˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์‚ฌ์šฉ ๋นˆ๋„๊ฐ€ ๋†’์€ ์Œ์ ˆ์€ ๊ทธ๋ณด๋‹ค ํ›จ์”ฌ ์ ์ง€๋งŒ, ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ(26์ž)์— ๋น„ํ•ด ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•  ํด๋ž˜์Šค๊ฐ€ ํ›จ์”ฌ ๋งŽ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ํ•œ์ž ํ˜ผ์šฉ, ์„ธ๋กœ์“ฐ๊ธฐ, ๋ฐ›์นจ ์œ ๋ฌด์— ๋”ฐ๋ฅธ ํ˜•ํƒœ ๋ณ€ํ™”, ์ž‘์€ ๊ธ€์”จ์—์„œ ํš์ด ๋ญ‰๊ฐœ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๊ฒน์นฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ•œ๊ตญ์–ด ๋ฌธ์„œ์—์„œ๋Š” ๋‹ค์Œ์ด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
ยท ์–ธ์–ด ์„ค์ •์— ํ•œ๊ตญ์–ด์™€ ์˜์–ด๋ฅผ ํ•จ๊ป˜ ์ง€์ •(๋ฌธ์„œ์— ์˜๋ฌธยท์ˆซ์ž๊ฐ€ ์„ž์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ)
ยท ๊ฐ€๋Šฅํ•˜๋ฉด ํ•ด์ƒ๋„๋ฅผ ๋†’์—ฌ ์Šค์บ”
ยท ๋ณ€ํ™˜ ํ›„ ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ๊ธฐ๋ฅผ ํ•œ ๋ฒˆ ๋Œ๋ ค ์˜ค์ธ์‹๋œ ๋‹จ์–ด ํ™•์ธ
ยท ํ•œ๊ธ€ ๋ฌธ์„œ ํŠนํ™” ์„œ๋น„์Šค๋ฅผ ๋น„๊ต ํ…Œ์ŠคํŠธ

7. ํ‘œยท์–‘์‹ยท์†๊ธ€์”จ๋Š” ์–ด๋–จ๊นŒ

ํ‘œ(Table)

๋‹จ์ˆœ ํ…์ŠคํŠธ OCR์€ ํ‘œ๋ฅผ ํ•œ ์ค„๋กœ ํ’€์–ด ๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ๊ฐ€ ์ค‘์š”ํ•œ ๋ฌธ์„œ๋ผ๋ฉด ํ‘œ ๊ตฌ์กฐ ์ธ์‹์„ ์ง€์›ํ•˜๋Š” ๋„๊ตฌ(Textract, Document Intelligence, ABBYY, Acrobat์˜ ๋‚ด๋ณด๋‚ด๊ธฐ ๋“ฑ)๋ฅผ ์“ฐ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์—‘์…€๋กœ ์˜ฎ๊ฒจ ๊ฒ€์ฆํ•˜๋Š” ํŽธ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. ์„ ์ด ์—†๋Š” ํ‘œ๋Š” ์ธ์‹์ด ๋” ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค.

์–‘์‹ยท์˜์ˆ˜์ฆ

๊ณ ์ •๋œ ์–‘์‹์€ "์–ด๋А ์œ„์น˜์— ์–ด๋–ค ํ•ญ๋ชฉ์ด ์žˆ๋‹ค"๋Š” ํ…œํ”Œ๋ฆฟ ์ •๋ณด๋ฅผ ์“ฐ๋ฉด ์ •ํ™•๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. ์˜์ˆ˜์ฆยท๋ช…ํ•จยท์‹ ๋ถ„์ฆ์€ ์ „์šฉ ๋ชจ๋ธ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๊ฐœ์ธ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜๋ฏ€๋กœ ์ฒ˜๋ฆฌ ์œ„์น˜์™€ ๋ณด๊ด€ ์ •์ฑ…์„ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์†๊ธ€์”จ(HTR)

์†๊ธ€์”จ ์ธ์‹์€ ICR ๋˜๋Š” HTR(Handwritten Text Recognition)์ด๋ผ ๋ถ€๋ฅด๋ฉฐ, ์ธ์‡„์ฒด๋ณด๋‹ค ์ •ํ™•๋„๊ฐ€ ํฌ๊ฒŒ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ํ•„์ฒด ํŽธ์ฐจ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ •์ž์ฒด๋กœ ๋˜๋ฐ•๋˜๋ฐ• ์“ด ๊ฒฝ์šฐ์—๋Š” ์“ธ ๋งŒํ•˜์ง€๋งŒ, ํ˜๋ ค ์“ด ๊ธ€์”จ๋Š” ์‚ฌ๋žŒ์˜ ๊ฒ€์ˆ˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

8. ๊ฐœ๋ฐœ์žยท์ž๋™ํ™” ๋‹ด๋‹น์ž๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จ ์˜ˆ์‹œ

ํŒŒ์ด์ฌ์—์„œ Tesseract๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์ „์— Tesseract ์—”์ง„๊ณผ ํ•œ๊ตญ์–ด ์–ธ์–ด ๋ฐ์ดํ„ฐ(kor)๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

from PIL import Image, ImageOps
import pytesseract

img = Image.open("scan.png")
gray = ImageOps.grayscale(img)
gray = ImageOps.autocontrast(gray)

text = pytesseract.image_to_string(
    gray,
    lang="kor+eng",
    config="--psm 6"
)
print(text)

--psm์€ ํŽ˜์ด์ง€ ๋ถ„ํ•  ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ธ”๋ก์˜ ๊ท ์ผํ•œ ํ…์ŠคํŠธ๋ผ๋ฉด 6, ์ž๋™ ๋ถ„์„์€ 3, ํ•œ ์ค„์งœ๋ฆฌ ์ด๋ฏธ์ง€๋Š” 7์„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์ด๋ฏธ์ง€๋ผ๋„ ๋ชจ๋“œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ์ƒ˜ํ”Œ๋กœ ๋น„๊ตํ•˜์„ธ์š”.

9. ์ •ํ™•๋„๋ฅผ ์–ด๋–ป๊ฒŒ ์ธก์ •ํ• ๊นŒ

OCR ํ’ˆ์งˆ์€ ๋ณดํ†ต ๋‘ ์ง€ํ‘œ๋กœ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

CER (Character Error Rate)
(์น˜ํ™˜+์‚ญ์ œ+์‚ฝ์ž… ์˜ค๋ฅ˜ ์ˆ˜) รท ์ •๋‹ต ๊ธ€์ž ์ˆ˜. ๋‚ฎ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.
WER (Word Error Rate)
๋‹จ์–ด ๋‹จ์œ„๋กœ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋„์–ด์“ฐ๊ธฐ ์˜ค๋ฅ˜์— ๋ฏผ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ •๋‹ต์ด 100์ž์ธ ๋ฌธ์„œ์—์„œ 3์ž๊ฐ€ ํ‹€๋ ธ๋‹ค๋ฉด CER์€ 3%์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ๋ฅผ ๊ณ ๋ฅผ ๋•Œ๋Š” ๊ด‘๊ณ  ์ˆ˜์น˜๋ณด๋‹ค ๋‚ด ๋ฌธ์„œ 20~50์žฅ์„ ์ง์ ‘ ๋„ฃ์–ด ๋ณธ CER์ด ํ›จ์”ฌ ๋ฏฟ์„ ๋งŒํ•ฉ๋‹ˆ๋‹ค.

10. ๋ณด์•ˆ๊ณผ ๊ฐœ์ธ์ •๋ณด

๐Ÿ”’ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ, ๊ณ„์ขŒ๋ฒˆํ˜ธ, ๊ณ„์•ฝ ์กฐ๊ฑด์ด ๋‹ด๊ธด ๋ฌธ์„œ๋ฅผ ์™ธ๋ถ€ ํด๋ผ์šฐ๋“œ OCR์— ์˜ฌ๋ฆฌ๊ธฐ ์ „์—๋Š” ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ๊ธฐ๊ฐ„, ํ•™์Šต ํ™œ์šฉ ์—ฌ๋ถ€, ์„œ๋ฒ„ ์œ„์น˜, ์•”ํ˜ธํ™” ์ •์ฑ…์„ ํ™•์ธํ•˜์„ธ์š”. ๋ฏผ๊ฐ๋„๊ฐ€ ๋†’๋‹ค๋ฉด ๋กœ์ปฌ ์„ค์น˜ํ˜•(Tesseract, ์‚ฌ๋‚ด ์„œ๋ฒ„) ๋˜๋Š” ๊ธฐ์—…์šฉ ๊ณ„์•ฝ์ด ์žˆ๋Š” ์„œ๋น„์Šค๊ฐ€ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ• ๋“ฑ ๊ด€๋ จ ๊ทœ์ •๋„ ์ ๊ฒ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

11. ๋ณ€ํ™˜ ํ›„ ์ •๋ฆฌ: ์›Œ๋“œ์—์„œ ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ

OCR ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ์ œ์ถœํ•˜๋ฉด ๊ณค๋ž€ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋‹ค๋“ฌ์œผ๋ฉด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

โ‘  ๋ถˆํ•„์š”ํ•œ ์ค„๋ฐ”๊ฟˆ ์ œ๊ฑฐ
๋ฌธ๋‹จ ์ค‘๊ฐ„์˜ ๊ฐ•์ œ ์ค„๋ฐ”๊ฟˆ(^l, ^p)์„ Word์˜ ์ฐพ๊ธฐ/๋ฐ”๊พธ๊ธฐ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
โ‘ก ์„œ์‹ ํ†ต์ผ
์Šคํƒ€์ผ ๊ธฐ๋Šฅ์œผ๋กœ ์ œ๋ชฉยท๋ณธ๋ฌธ ์„œ์‹์„ ์ผ๊ด„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
โ‘ข ์ˆซ์žยท๊ณ ์œ ๋ช…์‚ฌ ํ™•์ธ
๊ธˆ์•ก, ๋‚ ์งœ, ์ด๋ฆ„์€ ์›๋ณธ๊ณผ 1:1 ๋Œ€์กฐํ•ฉ๋‹ˆ๋‹ค.
โ‘ฃ ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ
์˜ค์ธ์‹์œผ๋กœ ์ƒ๊ธด ๋น„์ •์ƒ ๋‹จ์–ด๋ฅผ ์ฐพ๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Word์˜ ์ฐพ๊ธฐ ๋ฐ ๋ฐ”๊พธ๊ธฐ์—์„œ "^p^p"๋ฅผ "^p"๋กœ ์น˜ํ™˜ํ•˜๋ฉด ์ค‘๋ณต ๋นˆ ์ค„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ดํ”ˆ์œผ๋กœ ๋Š๊ธด ์˜๋‹จ์–ด๋Š” ์ •๊ทœ์‹ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ํŽธ์ง‘๊ธฐ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋น ๋ฆ…๋‹ˆ๋‹ค.

12. ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ PDF๋ž€

์Šค์บ” PDF์— OCR์„ ์ ์šฉํ•˜๋ฉด ์ด๋ฏธ์ง€ ์œ„์— ๋ณด์ด์ง€ ์•Š๋Š” ํ…์ŠคํŠธ ๋ ˆ์ด์–ด๊ฐ€ ๊ฒน์ณ์ง‘๋‹ˆ๋‹ค. ๊ฒ‰๋ชจ์Šต์€ ์›๋ณธ๊ณผ ๊ฐ™์ง€๋งŒ ๊ฒ€์ƒ‰(Ctrl+F)๊ณผ ๋“œ๋ž˜๊ทธ ๋ณต์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ์„œ์‹ ๋ณด์กด์ด ์ค‘์š”ํ•œ ๊ณ„์•ฝ์„œ, ๋…ผ๋ฌธ, ๊ณ ๋ฌธ์„œ ๋ณด๊ด€์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘์ด ๋ชฉ์ ์ด๋ผ๋ฉด DOCX ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.

13. ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Q. ๋ฌด๋ฃŒ ๋„๊ตฌ๋กœ๋„ ์ถฉ๋ถ„ํ•œ๊ฐ€์š”?
์ธ์‡„ ํ’ˆ์งˆ์ด ์ข‹์€ ๋‹จ์ˆœ ๋ฌธ์„œ๋ผ๋ฉด ์ถฉ๋ถ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ํ‘œยท๋‹ค๋‹จยท์ €ํ™”์งˆ ๋ฌธ์„œ๊ฐ€ ๋งŽ๋‹ค๋ฉด ์œ ๋ฃŒ ๋„๊ตฌ๋‚˜ ํด๋ผ์šฐ๋“œ API๊ฐ€ ์‹œ๊ฐ„์„ ์•„๊ปด์ค๋‹ˆ๋‹ค.

Q. ์ธ์‹๋ฅ ์ด ๋‚ฎ์„ ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ํ•  ์ผ์€?
์—”์ง„์„ ๋ฐ”๊พธ๊ธฐ ์ „์— ์ด๋ฏธ์ง€๋ถ€ํ„ฐ ๊ฐœ์„ ํ•˜์„ธ์š”. ํ•ด์ƒ๋„ ์ƒํ–ฅ, ๊ธฐ์šธ๊ธฐ ๋ณด์ •, ๊ทธ๋ฆผ์ž ์ œ๊ฑฐ, ์–ธ์–ด ์„ค์ • ํ™•์ธ์ด ์šฐ์„ ์ž…๋‹ˆ๋‹ค.

Q. ์‚ฌ์ง„ ์† ๊ฐ„ํŒ์ด๋‚˜ ํ’๊ฒฝ ๊ธ€์ž๋„ ๋˜๋‚˜์š”?
์žฅ๋ฉด ํ…์ŠคํŠธ ์ธ์‹(Scene Text Recognition)์ด๋ผ ํ•˜๋ฉฐ, ๋ฌธ์„œ OCR๊ณผ ๋ชจ๋ธ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. PaddleOCR, EasyOCR, ์Šค๋งˆํŠธํฐ ๋ Œ์ฆˆ ๊ธฐ๋Šฅ์ด ์ด๋Ÿฐ ์šฉ๋„์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

Q. ๋ฒˆ์—ญ๊ณผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. OCR๋กœ ํ…์ŠคํŠธ๋ฅผ ์ถ”์ถœํ•œ ๋’ค ๋ฒˆ์—ญ ๋„๊ตฌ์— ๋„ฃ๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ์Šค๋งˆํŠธํฐ์˜ ์‹ค์‹œ๊ฐ„ ์นด๋ฉ”๋ผ ๋ฒˆ์—ญ๋„ ๊ฐ™์€ ์›๋ฆฌ์ž…๋‹ˆ๋‹ค.

14. ์‹ค๋ฌด ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • โœ… ์›๋ณธ์€ 300dpi ์ด์ƒ, ์ •๋ฉด, ๊ท ์ผํ•œ ์กฐ๋ช…
  • โœ… ์–ธ์–ด ์„ค์ •์€ ๋ฌธ์„œ ๋‚ด์šฉ๊ณผ ์ผ์น˜(ํ•œ๊ตญ์–ด+์˜์–ด ๋“ฑ)
  • โœ… ํ‘œยท์–‘์‹์€ ๊ตฌ์กฐ ์ธ์‹ ์ง€์› ๋„๊ตฌ ์‚ฌ์šฉ
  • โœ… ๊ธˆ์•กยท๋‚ ์งœยท๊ณ ์œ ๋ช…์‚ฌ๋Š” ์‚ฌ๋žŒ์ด ์žฌํ™•์ธ
  • โœ… ๋ฏผ๊ฐ ๋ฌธ์„œ๋Š” ์ฒ˜๋ฆฌ ์œ„์น˜์™€ ๋ณด๊ด€ ์ •์ฑ… ํ™•์ธ
  • โœ… ์ตœ์ข… ์‚ฐ์ถœ๋ฌผ ํ˜•์‹(๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ PDF / DOCX / TXT)์„ ๋จผ์ € ์ •ํ•˜๊ธฐ

๋Œ€๋Ÿ‰ ๋ฌธ์„œ ์ž…๋ ฅ์ด๋‚˜ ์ •๊ตํ•œ ๊ต์ •ยท์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋Š” ์™ธ๋ถ€ ์ „๋ฌธ๊ฐ€์˜ ๋„์›€์„ ๋ฐ›๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์žฌ๋Šฅ์„ ๊ฑฐ๋ž˜ํ•˜๋Š” ์žฌ๋Šฅ๋„ท์—์„œ ๋ฌธ์„œ ํƒ€์ดํ•‘ยท๊ต์ • ๋ถ„์•ผ ์ „๋ฌธ๊ฐ€๋ฅผ ์ฐพ์•„ OCR ๊ฒฐ๊ณผ ๊ฒ€์ˆ˜๋ฅผ ๋งก๊ธฐ๋ฉด, ์ž๋™ํ™”์˜ ์†๋„์™€ ์‚ฌ๋žŒ์˜ ๊ผผ๊ผผํ•จ์„ ํ•จ๊ป˜ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์น˜๋ฉฐ

OCR์€ ๋งˆ๋ฒ•์ด ์•„๋‹ˆ๋ผ ์ข‹์€ ์ž…๋ ฅ + ์•Œ๋งž์€ ์—”์ง„ + ๊ผผ๊ผผํ•œ ๊ฒ€์ˆ˜์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค. ์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ ๊นจ๋—์ด ์ค€๋น„ํ•˜๊ณ , ๋ฌธ์„œ ์œ ํ˜•์— ๋งž๋Š” ๋„๊ตฌ๋ฅผ ๊ณ ๋ฅด๋ฉฐ, ๋งˆ์ง€๋ง‰์— ์‚ฌ๋žŒ์ด ์ˆซ์ž์™€ ๊ณ ์œ ๋ช…์‚ฌ๋ฅผ ํ™•์ธํ•œ๋‹ค๋ฉด ํƒ€์ดํ•‘ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ž‘์€ ์ƒ˜ํ”Œ ๋ฌธ์„œ๋กœ ์‹œํ—˜ํ•ด ๋ณด๊ณ , ์ž์‹ ์˜ ์—…๋ฌด์— ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ํ๋ฆ„์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. ๐Ÿ“

์ฐธ๊ณ  ์ž๋ฃŒ

ยท Tesseract OCR ๊ณต์‹ ๋ฌธ์„œ (Improving the quality of the output): https://tesseract-ocr.github.io/tessdoc/ImproveQuality.html
ยท Tesseract OCR GitHub: https://github.com/tesseract-ocr/tesseract
ยท Google Cloud Vision OCR ๋ฌธ์„œ: https://cloud.google.com/vision/docs/ocr
ยท PaddleOCR GitHub: https://github.com/PaddlePaddle/PaddleOCR

๋Œ“๊ธ€ ์ž‘์„ฑ

์ด ๊ธ€์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ๊ฐ์„ ๋“ค๋ ค์ฃผ์„ธ์š”

๋Œ“๊ธ€ 0
๋Œ“๊ธ€์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.

์•„์ง ๋Œ“๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค.