Ver3.5 ๐ OCR ๊ธฐ๋ฐ ์์ ๋ฐ์ดํฐ ์ถ์ถ๊ณผ ์ ํ๋ ํฅ์ ๊ธฐ์ โ ๋ฌธ์ ์๋ํ ์๋, ์์ ์ธ์์ ๋ชจ๋ ๊ฒ ์์ ์ ๋ณต ๊ฐ์ด๋

๐ OCR ๊ธฐ๋ฐ ์์ ๋ฐ์ดํฐ ์ถ์ถ๊ณผ ์ ํ๋ ํฅ์ ๊ธฐ์
โ ๋ฌธ์ ์๋ํ ์๋, ์์ ์ธ์์ ๋ชจ๋ ๊ฒ ์์ ์ ๋ณต ๊ฐ์ด๋
์ผ ์์งํ ๋งํด์, ์๋ฅ ๋๋ฏธ ์์์ ํ ์ฅ ํ ์ฅ ์์ผ๋ก ํ์ดํํ๋ค๊ฐ "์ด๊ฒ ๋ญ ๋ ธ๋์ด์ผ..." ์ถ์๋ ์ ์์ง ์์? ใ ใ ใ ์์์ฆ, ๊ณ์ฝ์, ์ ์ฒญ์, ์ธ๊ธ๊ณ์ฐ์... ์ด๋ฐ ๊ฑฐ ์๋ฐฑ ์ฅ์ ์ฌ๋์ด ์ผ์ผ์ด ์ฎ๊ฒจ ์ ๋ ๊ฑด ์ง์ง 21์ธ๊ธฐ์ ๋ง์ง ์๋ ์ผ์ด์์. ๊ทธ๋์ ๋ฑ์ฅํ ๊ฒ ๋ฐ๋ก OCR(Optical Character Recognition, ๊ดํ ๋ฌธ์ ์ธ์) ๊ธฐ์ ์ด์ผ.
๊ทผ๋ฐ ๊ทธ๋ฅ "๊ธ์ ์ฝ๋ ๊ธฐ์ " ์ ๋๋ก๋ง ์๊ณ ์์ผ๋ฉด ์ข ์์ฌ์. ์์ฆ OCR์ ๋จ์ํ ๊ธ์ ์ธ์์ ๋์ด์ ์์ ๊ตฌ์กฐ ์์ฒด๋ฅผ ์ดํดํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ํํํด์ ์ถ์ถํ๋ ์์ค๊น์ง ์ฌ๋ผ์๊ฑฐ๋ . ์ด๊ฒ ์ง์ง ํต์ฌ์ด์ผ. ์ค๋์ ์ด OCR ๊ธฐ๋ฐ ์์ ๋ฐ์ดํฐ ์ถ์ถ ๊ธฐ์ ์ ์ฒ์๋ถํฐ ๋๊น์ง, ๊ทผ๋ฐ ๋๋ฌด ๋ฑ๋ฑํ์ง ์๊ฒ ํ์ด๋ณผ๊ฒ. ๐
๋ง์ ์ฌ๋๋ค์ด OCR์ "์ด๋ฏธ์ง์์ ํ ์คํธ ๋ฝ์๋ด๋ ๊ฒ" ์ ๋๋ก๋ง ์๊ณ ์๋๋ฐ, ์ด๊ฑด ๋ฐ๋ง ๋ง๋ ๋ง์ด์ผ. ํนํ ์์ ๋ฐ์ดํฐ ์ถ์ถ ๋งฅ๋ฝ์์๋ ํจ์ฌ ๋ณต์กํ ์ด์ผ๊ธฐ๊ฐ ํผ์ณ์ง๊ฑฐ๋ .
OCR(Optical Character Recognition)์ ์ด๋ฏธ์ง๋ ์ค์บ๋ ๋ฌธ์์์ ํ ์คํธ๋ฅผ ์๋์ผ๋ก ์ธ์ํ๊ณ ๋์งํธ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ธฐ์ ์ด์ผ. 1950๋ ๋์ ์ฒ์ ๋ฑ์ฅํ๋๋ฐ, ์ด๊ธฐ์๋ ํน์ ํฐํธ๋ง ์ธ์ํ๋ ์์ค์ด์์ด. ๊ทธ๊ฒ ์ง๊ธ์ ์๊ธ์จ, ๋ค๊ตญ์ด, ๋ณต์กํ ๋ ์ด์์๊น์ง ์ฒ๋ฆฌํ๋ AI ์์ง์ผ๋ก ์งํํ์ง.
๋ฐ์ ๋จ๊ณ๋ฅผ ๋ณด๋ฉด ์ด๋:
์ผ๋ฐ ํ ์คํธ ์ธ์์ด๋ ์์ ๋ฐ์ดํฐ ์ถ์ถ์ ๋์ด๋๊ฐ ์์ ๋ฌ๋ผ. ์์ ๋ฌธ์์๋ ์ด๋ฐ ์์๋ค์ด ์์ฌ ์๊ฑฐ๋ :
| ์์ ์์ | ์ธ์ ๋์ด๋ | ์ฃผ์ ๋์ ๊ณผ์ |
|---|---|---|
| ๐ ์ธ์ ํ ์คํธ | ๋ฎ์ | ํฐํธ ๋ค์์ฑ, ํด์๋ |
| โ๏ธ ์๊ธ์จ | ๋งค์ฐ ๋์ | ๊ฐ์ธ๋ณ ํ์ฒด ์ฐจ์ด, ์ฐ๊ฒฐ ๋ฌธ์ |
| โ๏ธ ์ฒดํฌ๋ฐ์ค/๋ผ๋์ค๋ฒํผ | ์ค๊ฐ | ์ฒดํฌ ์ฌ๋ถ ํ๋ณ, ์์น ์ธ์ |
| ๐ ํ(Table) | ๋์ | ์ ๊ฒฝ๊ณ ์ธ์, ๋ณํฉ ์ ์ฒ๋ฆฌ |
| ๐ด ๋์ฅ/์คํฌํ | ๋์ | ๊ฒน์นจ, ์ํฌ ๋ฒ์ง, ํ์ |
| โ๏ธ ์๋ช | ๋งค์ฐ ๋์ | ์ง์ ์ฌ๋ถ, ํํ ๋ค์์ฑ |
| ๐ ๋ ์ด์์ ๊ตฌ์กฐ | ๋์ | ๋ค๋จ ๊ตฌ์ฑ, ๋ณต์กํ ๋ฐฐ์น |
๊ฒ๋ค๊ฐ ์ค์ ํ์ฅ์์ ๋ค์ด์ค๋ ๋ฌธ์๋ค์ ๊ตฌ๊ฒจ์ง๊ฑฐ๋, ๊ธฐ์ธ์ด์ง๊ฑฐ๋, ์ปคํผ ์ผ๋ฃฉ์ด ์๊ฑฐ๋, ํฉ์ค๋ก ์ฌ๋ฌ ๋ฒ ์ ์ก๋์ด ํ์ง์ด ๋จ์ด์ง ๊ฒฝ์ฐ๊ฐ ํ๋คํด. ์ด๋ฐ ์ํฉ์์๋ ์ ํํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ด์ผ ํ๋๊น ๊ธฐ์ ์ ๋์ด๋๊ฐ ์์ฒญ๋ ๊ฑฐ์ง.
ํ๋ OCR ์์คํ ์ ๋จ์ผ ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋ผ ์ฌ๋ฌ ๊ธฐ์ ์ด ํ์ดํ๋ผ์ธ ํํ๋ก ์ฐ๊ฒฐ๋ ๋ณตํฉ ์์คํ ์ด์ผ. ๊ฐ ๋จ๊ณ๋ณ๋ก ์ด๋ค ๊ธฐ์ ์ด ์ฐ์ด๋์ง ํํค์ณ๋ณด์.
OCR ์ ํ๋์ 30~40%๋ ์ ์ฒ๋ฆฌ์์ ๊ฒฐ์ ๋๋ค๊ณ ํด๋ ๊ณผ์ธ์ด ์๋์ผ. ์ฐ๋ ๊ธฐ๊ฐ ๋ค์ด๊ฐ๋ฉด ์ฐ๋ ๊ธฐ๊ฐ ๋์ค๋ ๋ฒ์ด๋๊น ใ ใ ใ .
๊ธฐ์ธ๊ธฐ ๋ณด์ (Deskewing): ๋ฌธ์๊ฐ ๋น์ค๋ฌํ ์ค์บ๋ ๊ฒฝ์ฐ ์ํ์ ๋ง์ถ๋ ์์ . Hough Transform ์๊ณ ๋ฆฌ์ฆ์ด ์ฃผ๋ก ์ฌ์ฉ๋ผ. ๋ฌธ์์ ํ ์คํธ ๋ผ์ธ ๋ฐฉํฅ์ ๊ฐ์งํด์ ํ์ ๊ฐ๋๋ฅผ ๊ณ์ฐํ๊ณ ๋ณด์ ํจ.
์๊ทผ ๋ณด์ (Dewarping): ์ฑ ์ ์ค์บํ ๋ ํ์ด์ง ๊ฐ์ด๋ฐ๊ฐ ํ๋ ํ์, ์นด๋ฉ๋ผ๋ก ๋น์ค๋ฌํ ์ฐ์ ๋ฌธ์ ๋ฑ์ ํ๋ฉด์ผ๋ก ํด์ฃผ๋ ๊ธฐ์ . 3D ํ๋ฉด ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ์ด ํ์ฉ๋จ.
ํฌ๋กญํ(Cropping): ๋ฌธ์ ์์ญ๋ง ์ ํํ ์๋ผ๋ด๋ ์์ . ๋ฐฐ๊ฒฝ๊ณผ ๋ฌธ์ ๊ฒฝ๊ณ๋ฅผ ๊ตฌ๋ถํ๋ ์ฃ์ง ๊ฒ์ถ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ.
์ด์งํ(Binarization): ์ปฌ๋ฌ/๊ทธ๋ ์ด์ค์ผ์ผ ์ด๋ฏธ์ง๋ฅผ ํ๋ฐฑ์ผ๋ก ๋ณํ. ๋จ์ ์๊ณ๊ฐ(Threshold) ๋ฐฉ์๋ถํฐ Otsu's Method, Sauvola ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ์ ์ํ ์ด์งํ๊น์ง ๋ค์ํจ. ์กฐ๋ช ์ด ๋ถ๊ท ์ผํ ๋ฌธ์์์๋ ์ ์ํ ์ด์งํ๊ฐ ํจ์ฌ ํจ๊ณผ์ ์ด์ผ.
๋ ธ์ด์ฆ ์ ๊ฑฐ(Denoising): ์ค์บ ๊ณผ์ ์์ ์๊ธฐ๋ ์ , ์ , ์ผ๋ฃฉ ๋ฑ์ ์ ๊ฑฐ. ๊ฐ์ฐ์์ ํํฐ, ๋ฏธ๋์ ํํฐ, ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ๋ ธ์ด์ฆ ์ ๊ฑฐ(DnCNN ๋ฑ) ๋ฐฉ๋ฒ์ด ์์ด.
ํด์๋ ํฅ์(Super Resolution): ์ ํด์๋ ์ด๋ฏธ์ง๋ฅผ AI๋ก ๊ณ ํด์๋๋ก ์ ์ค์ผ์ผ๋ง. ESRGAN, Real-ESRGAN ๊ฐ์ ๋ชจ๋ธ์ด OCR ์ ์ฒ๋ฆฌ์ ํ์ฉ๋จ. ํฉ์ค ๋ฌธ์๋ ์ค๋๋ ์ค์บ ๋ฌธ์์ ํนํ ํจ๊ณผ์ .
์ด ๋จ๊ณ๊ฐ ์์ ๋ฐ์ดํฐ ์ถ์ถ์์ ์ง์ง ํต์ฌ์ด์ผ. ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ๊ฑฐ๊ฑฐ๋ .
ํ์ด์ง ์ธ๊ทธ๋ฉํ ์ด์ (Page Segmentation): ๋ฌธ์๋ฅผ ํ ์คํธ ๋ธ๋ก, ์ด๋ฏธ์ง, ํ, ์ฌ๋ฐฑ ๋ฑ์ผ๋ก ๊ตฌ๋ถ. X-Y Cut ์๊ณ ๋ฆฌ์ฆ, Docstrum ์๊ณ ๋ฆฌ์ฆ, ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ Mask R-CNN ๋ฑ์ด ์ฌ์ฉ๋จ.
ํ ๊ฐ์ง(Table Detection): ํ์ ์์น์ ๊ฒฝ๊ณ๋ฅผ ์ฐพ์๋ด๋ ์์ . ์ (Line) ๊ธฐ๋ฐ ๋ฐฉ๋ฒ๊ณผ ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ๋ฐฉ๋ฒ(TableNet, TABERT, Table Transformer ๋ฑ)์ด ์์ด. ์ ์ด ์๋ ๋ฌด์ ํ(Borderless Table)๋ ํนํ ์ด๋ ค์ด ๊ณผ์ ์ผ.
ํ ๊ตฌ์กฐ ์ธ์(Table Structure Recognition): ํ๋ฅผ ๊ฐ์งํ ํ ํ/์ด/์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ์์ . ๋ณํฉ ์ , ์ค์ฒฉ ํ ๋ฑ ๋ณต์กํ ๊ตฌ์กฐ ์ฒ๋ฆฌ๊ฐ ํต์ฌ ๋์ ๊ณผ์ .
์ฝ๊ธฐ ์์ ๊ฒฐ์ (Reading Order Detection): ๋ค๋จ ๋ ์ด์์, ๋ณต์กํ ์์์์ ํ ์คํธ๋ฅผ ์ฌ๋ฐ๋ฅธ ์์๋ก ์ฝ๋ ๊ฒ. ์๋ชป๋๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ค์์ฌ์ ์์ ์๋ง์ด ๋จ ใ ใ ใ .
์ด์ ์ค์ ๋ก ๊ธ์๋ฅผ ์ฝ๋ ๋จ๊ณ์ผ. ํ๋ OCR ์์ง์ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ๋ค์ ์ดํด๋ณด์.
์คํ์์ค Tesseract(๊ตฌ๊ธ)๋ ๋ฌด๋ฃ์ง๋ง ๋ณต์กํ ์์ ์ฒ๋ฆฌ์ ํ๊ณ๊ฐ ์์ด. ๋ฐ๋ฉด AWS Textract, Google Document AI, Azure Form Recognizer, CLOVA OCR(๋ค์ด๋ฒ) ๊ฐ์ ์์ฉ ์๋น์ค๋ ์์ ํนํ ๊ธฐ๋ฅ์ด ๊ฐ๋ ฅํ์ง๋ง ๋น์ฉ์ด ๋ฐ์ํด. ์ฉ๋์ ๋ง๊ฒ ์ ํํ๋ ๊ฒ ์ค์!
์ผ๋ฐ ํ ์คํธ OCR์ด๋ ์์ ๋ฌธ์ OCR์ ์์ ํ ๋ค๋ฅธ ๊ฒ์์ด์ผ. ์์์๋ ํน์ํ ์์๋ค์ด ๊ฐ๋ํ๊ฑฐ๋ . ๊ฐ๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง ์์๋ณด์.
ํ ์ธ์์ ์์ OCR์์ ๊ฐ์ฅ ๋ณต์กํ ๋ถ๋ถ ์ค ํ๋์ผ. ๋จ์ํ ์ ์ ์ฐพ๋ ๊ฒ ์๋๋ผ ํ์ ์๋ฏธ์ ๊ตฌ์กฐ๊น์ง ํ์ ํด์ผ ํ๊ฑฐ๋ .
1๋จ๊ณ โ ํ ๊ฐ์ง(Table Detection): ๋ฌธ์ ๋ด์์ ํ๊ฐ ์๋ ์์ญ์ ์ฐพ์๋. ๋ฅ๋ฌ๋ ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ(YOLO, Faster R-CNN ๋ฑ)์ด ์ฃผ๋ก ํ์ฉ๋จ. ์ ์ด ์๋ ํ๋ ๋น๊ต์ ์ฝ์ง๋ง, ์ ์์ด ๊ณต๋ฐฑ์ผ๋ก๋ง ๊ตฌ๋ถ๋ ํ(Borderless Table)๋ ํจ์ฌ ์ด๋ ค์.
2๋จ๊ณ โ ํ ๊ตฌ์กฐ ์ธ์(Table Structure Recognition): ๊ฐ์ง๋ ํ ์์ญ์์ ํ(Row), ์ด(Column), ์ (Cell)์ ๊ตฌ์กฐ๋ฅผ ํ์ . ๋ณํฉ ์ (Merged Cell) ์ฒ๋ฆฌ๊ฐ ํนํ ๊น๋ค๋ก์. Microsoft์ Table Transformer(TATR), IBM์ TableNet ๋ฑ์ด ๋ํ์ ์ธ ๋ชจ๋ธ์ด์ผ.
3๋จ๊ณ โ ์ ๋ด์ฉ ์ธ์: ๊ฐ ์ ๋ด์ ํ ์คํธ๋ฅผ OCR๋ก ์ธ์ํ๊ณ , ํ/์ด ์ขํ์ ํจ๊ป ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ก ๋ณํ. ์ต์ข ์ ์ผ๋ก HTML ํ๋ Excel ํ์์ผ๋ก ์ถ๋ ฅ.
์ ์ฒญ์, ์ค๋ฌธ์ง, ๊ณ์ฝ์ ๋ฑ์์ ์ฒดํฌ๋ฐ์ค ์ธ์์ ํ์์ผ. ๊ทผ๋ฐ ์ด๊ฒ ์๊ฐ๋ณด๋ค ๊น๋ค๋ก์.
ํ ํ๋ฆฟ ๋งค์นญ ๋ฐฉ์: ์ฒดํฌ๋ ์ํ์ ๋ฏธ์ฒดํฌ ์ํ์ ํ ํ๋ฆฟ์ ๋ฏธ๋ฆฌ ์ค๋นํ๊ณ ๋น๊ต. ๋จ์ํ์ง๋ง ์ฒดํฌ ์คํ์ผ์ด ๋ค์ํ๋ฉด ์ค๋ฅ ๋ฐ์.
ํฝ์ ๋ฐ๋ ๋ถ์: ์ฒดํฌ๋ฐ์ค ์์ญ ๋ด์ ๊ฒ์ ํฝ์ ๋น์จ๋ก ์ฒดํฌ ์ฌ๋ถ ํ๋จ. ๋น ๋ฅด์ง๋ง ๋ ธ์ด์ฆ์ ์ทจ์ฝ.
๋ฅ๋ฌ๋ ๋ถ๋ฅ ๋ชจ๋ธ: CNN ๊ธฐ๋ฐ ์ด์ง ๋ถ๋ฅ๊ธฐ๋ก ์ฒดํฌ/๋ฏธ์ฒดํฌ ํ๋ณ. ๋ค์ํ ์ฒดํฌ ์คํ์ผ(โ, โ, โ, ์์น ๋ฑ)์ ๊ฐ๊ฑดํจ. ํ์ฌ ๊ฐ์ฅ ์ ํํ ๋ฐฉ๋ฒ.
์ฃผ์ ๋์ ๊ณผ์ : ์ฒดํฌ๊ฐ ๋ฐ์ค ๋ฐ์ผ๋ก ์์ ธ๋์จ ๊ฒฝ์ฐ, ์ง์์ง ํ์ ์ด ์๋ ๊ฒฝ์ฐ, ์ฐํ๋ก ์ฒดํฌํ ๊ฒฝ์ฐ ๋ฑ ์ค์ ํ์ฅ ๋ฌธ์์ ๋ค์ํ ๋ณํ์ ๋์ํด์ผ ํจ.
ํ๊ตญ ๋ฌธ์์์ ๋์ฅ์ ์ง์ง ์ค์ํ ์์์์. ๊ณ์ฝ์, ๊ณต๋ฌธ์, ๊ฐ์ข ์ ์ฒญ์์ ๋น ์ง์ง ์๋ ๊ทธ๊ฒ. ๊ทผ๋ฐ OCR๋ก ์ฒ๋ฆฌํ๊ธฐ๊ฐ ๊ฝค ์ด๋ ค์.
์ด๋ ค์ 1 โ ํ ์คํธ์์ ๊ฒน์นจ: ๋์ฅ์ด ํ ์คํธ ์์ ์ฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์. ์ด ๊ฒฝ์ฐ ๋์ฅ ์์ญ์ ๋ถ๋ฆฌํ๊ณ ์๋ ํ ์คํธ๋ฅผ ๋ณต์ํ๋ ๊ธฐ์ ์ด ํ์ํจ. ์์ ๋ถ๋ฆฌ(๋์ฅ์ ๋ณดํต ๋นจ๊ฐ์)์ ์ธํ์ธํ (Inpainting) ๊ธฐ์ ํ์ฉ.
์ด๋ ค์ 2 โ ์ํฌ ๋ฒ์ง: ๋์ฅ ์ํฌ๊ฐ ๋ฒ์ง๊ฑฐ๋ ํ๋ฆฟํ ๊ฒฝ์ฐ. ์ ์ํ ์ด์งํ์ ํํํ์ ์ฐ์ฐ(Morphological Operations)์ผ๋ก ์ฒ๋ฆฌ.
์ด๋ ค์ 3 โ ๋์ฅ ๋ด ํ ์คํธ ์ธ์: ์ํ ๋ฐฐ์น๋ ํ ์คํธ, ์์ ๊ธ์จ ๋ฑ. ๊ทน์ขํ ๋ณํ(Polar Transform)์ผ๋ก ์ํ ํ ์คํธ๋ฅผ ์ง์ ์ผ๋ก ํด์ ์ธ์.
์๋ช ์ธ์: ์๋ช ์ ์กด์ฌ ์ฌ๋ถ ํ์ธ(์์/์์)๊ณผ ์๋ช ์์ญ ์ถ์ถ์ด ์ฃผ์ ๋ชฉ์ . ์๋ช ์ง์ ๊ฒ์ฆ์ ๋ณ๋์ ์๋ช ๊ฒ์ฆ ์์คํ ์์ญ.
์๊ธ์จ ์ธ์์ OCR ๋ถ์ผ์์ ๊ฐ์ฅ ์ด๋ ค์ด ๊ณผ์ ์ค ํ๋์ผ. ์ฌ๋๋ง๋ค ํ์ฒด๊ฐ ๋ค๋ฅด๊ณ , ๊ฐ์ ์ฌ๋๋ ์ํฉ์ ๋ฐ๋ผ ๊ธ์จ๊ฐ ๋ฌ๋ผ์ง๋๊น.
์จ๋ผ์ธ HTR vs ์คํ๋ผ์ธ HTR: ์จ๋ผ์ธ์ ํ์ ์์ง์ ๊ถค์ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ฒ๋ฆฌ(ํ๋ธ๋ฆฟ ๋ฑ), ์คํ๋ผ์ธ์ ์์ฑ๋ ์ด๋ฏธ์ง์์ ์ธ์. ์์ ๋ฌธ์๋ ๋๋ถ๋ถ ์คํ๋ผ์ธ HTR.
์ต์ ๋ชจ๋ธ: TrOCR(Microsoft), Parseq, ABINet ๋ฑ Transformer ๊ธฐ๋ฐ ๋ชจ๋ธ๋ค์ด ์๊ธ์จ ์ธ์์์ ๋์ ์ฑ๋ฅ์ ๋ณด์. IAM Handwriting Database, RIMES ๋ฑ ๋ฒค์น๋งํฌ์์ CER(Character Error Rate) 3~5% ์์ค ๋ฌ์ฑ.
ํ๊ตญ์ด ์๊ธ์จ์ ํน์์ฑ: ํ๊ธ์ ์๋ชจ ์กฐํฉ ๊ตฌ์กฐ๋ก ์ธํด ์๋ฌธ๋ณด๋ค ์ธ์์ด ๋ณต์กํจ. ์ด์ฑ/์ค์ฑ/์ข ์ฑ์ ์กฐํฉ๊ณผ ์ฐ๊ฒฐ ๋ฐฉ์์ด ๋ค์ํด์ ํ์ต ๋ฐ์ดํฐ๊ฐ ํจ์ฌ ๋ง์ด ํ์ํจ. AI Hub์์ ํ๊ตญ์ด ์๊ธ์จ ๋ฐ์ดํฐ์ ์ ์ ๊ณตํ๊ณ ์์ด.
์ค์ฉ์ ์ ๊ทผ: ์์ ์๋ ์ธ์๋ณด๋ค๋ AI๊ฐ ์ธ์ํ๊ณ ์ฌ๋์ด ๊ฒํ ํ๋ Human-in-the-Loop ๋ฐฉ์์ด ํ์ค์ ์ผ๋ก ๋ง์ด ์ฐ์.
OCR ์์ง ์์ฒด๋ ์ค์ํ์ง๋ง, ์ ํ๋๋ฅผ ๋์ด๋ ๋ค์ํ ๊ธฐ๋ฒ๋ค์ด ์ค๋ฌด์์ ๋ ์ค์ํ ์ ์์ด. ์๋ฌด๋ฆฌ ์ข์ ์์ง๋ ์๋ชป ์ฐ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์๋ง์ด ๋๊ฑฐ๋ ใ ใ ใ .
AI ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ์ต ๋ฐ์ดํฐ์ ์ง๊ณผ ์์ ํฌ๊ฒ ์ข์ฐ๋ผ. ์์ OCR ๋ชจ๋ธ์ ํ์ต์ํฌ ๋ ๋ค์ํ ๋ฐ์ดํฐ ์ฆ๊ฐ ๊ธฐ๋ฒ์ด ํ์ฉ๋ผ.
๊ธฐํํ์ ๋ณํ: ํ์ (ยฑ5~15๋), ๊ธฐ์ธ์ด๊ธฐ(Shear), ์๊ทผ ๋ณํ, ํ์ฑ ๋ณํ(Elastic Distortion). ์ค์ ์ค์บ ํ๊ฒฝ์ ๋ค์ํ ์๊ณก์ ์๋ฎฌ๋ ์ด์ .
ํ์ง ์ ํ ์๋ฎฌ๋ ์ด์ : ๊ฐ์ฐ์์ ๋ธ๋ฌ, ๋ชจ์ ๋ธ๋ฌ, JPEG ์์ถ ์ํฐํฉํธ, ๋ ธ์ด์ฆ ์ถ๊ฐ. ์ค์ ํ์ฅ ๋ฌธ์์ ์ด์ ํ ํ์ง์ ๋ชจ๋ฐฉ.
์กฐ๋ช ๋ณํ: ๋ฐ๊ธฐ/๋๋น ์กฐ์ , ๊ทธ๋ฆผ์ ์ถ๊ฐ, ๋ถ๊ท ์ผ ์กฐ๋ช ์๋ฎฌ๋ ์ด์ . ์นด๋ฉ๋ผ ์ดฌ์ ๋ฌธ์์ ๋ค์ํ ์กฐ๋ช ์กฐ๊ฑด ๋์.
ํ ์คํธ ์คํ์ผ ๋ค์ํ: ๋ค์ํ ํฐํธ, ํฌ๊ธฐ, ๊ตต๊ธฐ, ์์ ์กฐํฉ์ผ๋ก ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ. SynthText, TextRecognitionDataGenerator ๊ฐ์ ๋๊ตฌ ํ์ฉ.
๋๋ฉ์ธ ํนํ ์ฆ๊ฐ: ๋์ฅ ๊ฒน์นจ, ์ปคํผ ์ผ๋ฃฉ, ๊ตฌ๊น, ์ฐข๊น ๋ฑ ์ค์ ์์ ๋ฌธ์์์ ๋ฐ์ํ๋ ํน์ ์ํฉ ์๋ฎฌ๋ ์ด์ .
OCR ์์ง์ด ์ธ์ํ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ์ฐ๋ฉด ์ ๋ผ. ํ์ฒ๋ฆฌ๋ฅผ ํตํด ์ค๋ฅ๋ฅผ ์ก์๋ด๊ณ ์ ํ๋๋ฅผ ๋์ฌ์ผ ํด.
์ฌ์ ๊ธฐ๋ฐ ๊ต์ : ์ธ์๋ ๋จ์ด๊ฐ ์ฌ์ ์ ์์ผ๋ฉด ํธ์ง ๊ฑฐ๋ฆฌ(Edit Distance)๊ฐ ๊ฐ์ฅ ๊ฐ๊น์ด ๋จ์ด๋ก ๊ต์ . ํ๊ตญ์ด์ ๊ฒฝ์ฐ ํํ์ ๋ถ์๊ธฐ์ ์ฐ๋.
N-gram ์ธ์ด ๋ชจ๋ธ: ์๋ค ๋ฌธ๋งฅ์ ๊ณ ๋ คํด์ ๊ฐ์ฅ ์์ฐ์ค๋ฌ์ด ๋จ์ด ์ ํ. "ใ "๊ณผ "0", "l"๊ณผ "1" ๊ฐ์ ํผ๋ ๋ฌธ์ ๊ต์ ์ ํจ๊ณผ์ .
๋ํ ์ธ์ด ๋ชจ๋ธ(LLM) ํ์ฉ: GPT-4, Claude ๊ฐ์ LLM์ OCR ๊ฒฐ๊ณผ๋ฅผ ๋ฃ๊ณ ๊ต์ ์์ฒญ. ๋ฌธ๋งฅ ์ดํด ๋ฅ๋ ฅ์ด ๋ฐ์ด๋์ ๋ณต์กํ ์ค๋ฅ๋ ์ก์๋ผ ์ ์์. ๋จ, ๋น์ฉ๊ณผ ์๋ ๋ฌธ์ ๊ฐ ์์ด.
๋๋ฉ์ธ ํนํ ๊ต์ : ์์ ์ ํ์ ๋ฐ๋ฅธ ํนํ ๊ต์ . ์๋ฅผ ๋ค์ด ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ 13์๋ฆฌ ์ซ์ ํ์, ์ฌ์ ์๋ฒํธ๋ 10์๋ฆฌ ํ์ ๋ฑ ๊ท์น ๊ธฐ๋ฐ ๊ฒ์ฆ.
ํ์ ๊ฒ์ฆ: ๋ ์ง(YYYY-MM-DD), ์ ํ๋ฒํธ(010-XXXX-XXXX), ์ด๋ฉ์ผ, ์ฐํธ๋ฒํธ ๋ฑ ์ ๊ท์(Regex)์ผ๋ก ํ์ ๊ฒ์ฆ.
๋ฒ์ ๊ฒ์ฆ: ์ซ์ ํ๋์ ํฉ๋ฆฌ์ ๋ฒ์ ํ์ธ. ์๋ฅผ ๋ค์ด ๋์ด ํ๋์ "200"์ด ๋์ค๋ฉด ์ค๋ฅ๋ก ํ๋๊ทธ.
๊ต์ฐจ ๊ฒ์ฆ: ์์ ๋ด ์ฌ๋ฌ ํ๋ ๊ฐ์ ๋ ผ๋ฆฌ์ ์ผ๊ด์ฑ ํ์ธ. ์๋ฅผ ๋ค์ด ํฉ๊ณ ๊ธ์ก์ด ์ธ๋ถ ํญ๋ชฉ์ ํฉ๊ณผ ์ผ์นํ๋์ง ํ์ธ.
์ฒดํฌ์ฌ ๊ฒ์ฆ: ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ์ฌ์ ์๋ฑ๋ก๋ฒํธ ๋ฑ์ ์ฒดํฌ์ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ํจ์ฑ ๊ฒ์ฆ ๊ฐ๋ฅ.
์์ ์๋ํ๊ฐ ํญ์ ๋ต์ ์๋์ผ. ํนํ ์ค์ํ ์์ ๋ฐ์ดํฐ๋ AI๊ฐ ์ฒ๋ฆฌํ๊ณ ์ฌ๋์ด ๊ฒํ ํ๋ ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ด ํ์ค์ ์ด์ผ.
์ ๋ขฐ๋ ์ ์(Confidence Score): ๋๋ถ๋ถ์ OCR ์์ง์ ๊ฐ ์ธ์ ๊ฒฐ๊ณผ์ 0~1 ์ฌ์ด์ ์ ๋ขฐ๋ ์ ์๋ฅผ ์ ๊ณต. ์ด ์ ์๋ฅผ ํ์ฉํด์ ์ฒ๋ฆฌ ๋ฐฉ์์ ๊ฒฐ์ .
์๊ณ๊ฐ ๊ธฐ๋ฐ ๋ผ์ฐํ :
- ์ ๋ขฐ๋ 0.95 ์ด์ โ ์๋ ์ฒ๋ฆฌ
- ์ ๋ขฐ๋ 0.7~0.95 โ AI ๊ต์ ํ ์๋ ์ฒ๋ฆฌ
- ์ ๋ขฐ๋ 0.7 ๋ฏธ๋ง โ ์ฌ๋ ๊ฒํ ํ์
๋ฅ๋ ํ์ต(Active Learning): ์ฌ๋์ด ๊ต์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋ชจ๋ธ ํ์ต์ ํ์ฉ. ์๊ฐ์ด ์ง๋ ์๋ก ๋ชจ๋ธ์ด ํด๋น ์กฐ์ง์ ์์์ ํนํ๋์ด ์ ํ๋๊ฐ ํฅ์๋จ.
์์๋ธ(Ensemble) ๋ฐฉ๋ฒ: ์ฌ๋ฌ OCR ์์ง์ ๊ฒฐ๊ณผ๋ฅผ ํฌํ ๋ฐฉ์์ผ๋ก ๊ฒฐํฉ. ๋จ์ผ ์์ง๋ณด๋ค ์์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์.
๋ฒ์ฉ OCR ๋ชจ๋ธ์ ํน์ ์์์ ๋ง๊ฒ ํ์ธํ๋ํ๋ฉด ์ ํ๋๊ฐ ํฌ๊ฒ ์ฌ๋ผ๊ฐ. ์ด๊ฒ ์ค๋ฌด์์ ์ง์ง ์ค์ํ ํฌ์ธํธ์ผ.
Few-shot Learning: ์๋์ ๋๋ฉ์ธ ํนํ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ์ ๋น ๋ฅด๊ฒ ์ ์์ํค๋ ๋ฐฉ๋ฒ. ํนํ ํน์ํ ์์์ด๋ ์ ๋ฌธ ์ฉ์ด๊ฐ ๋ง์ ๋ถ์ผ์ ํจ๊ณผ์ .
Transfer Learning: ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ก ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก, ํน์ ์์ ๋ฐ์ดํฐ๋ก ์ถ๊ฐ ํ์ต. ํ์ต ๋ฐ์ดํฐ๊ฐ ์ ์ด๋ ์ข์ ์ฑ๋ฅ์ ๋ผ ์ ์์.
์์ ํ ํ๋ฆฟ ํ์ต: ํน์ ์์์ ๋ ์ด์์ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ํ์ต์์ผ์, ํด๋น ์์์ด ๋ค์ด์ค๋ฉด ํ๋ ์์น๋ฅผ ์ ํํ ํ์ . ์ ํํ๋ ์์(์ธ๊ธ๊ณ์ฐ์, ํ์ค ๊ณ์ฝ์ ๋ฑ)์ ๋งค์ฐ ํจ๊ณผ์ .
์ง์์ ํ์ต(Continual Learning): ์๋ก์ด ์์์ด ์ถ๊ฐ๋ ๋๋ง๋ค ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ๋, ๊ธฐ์กด ์์ ์ธ์ ๋ฅ๋ ฅ์ ์์ง ์๋๋ก ํ๋ ๊ธฐ๋ฒ. Catastrophic Forgetting ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ํต์ฌ.
์์ฅ์๋ ์ ๋ง ๋ค์ํ OCR ์๋ฃจ์ ์ด ์์ด. ์คํ์์ค๋ถํฐ ํด๋ผ์ฐ๋ ์๋น์ค, ์จํ๋ ๋ฏธ์ค ์๋ฃจ์ ๊น์ง. ๊ฐ๊ฐ์ ํน์ง์ ๋น๊ตํด๋ณผ๊ฒ.
| ์๋น์ค | ๊ฐ์ | ์ฝ์ | ์์ ํนํ ๊ธฐ๋ฅ |
|---|---|---|---|
| AWS Textract | ํ/ํผ ์ธ์ ๊ฐ๋ ฅ, AWS ์ํ๊ณ ์ฐ๋ | ํ๊ตญ์ด ์ง์ ์ ํ์ | AnalyzeDocument API, ํค-๊ฐ ์ ์ถ์ถ |
| Google Document AI | ๋ค๊ตญ์ด ์ง์, ์ ํ๋ ๋์ | ๋น์ฉ, ๋ณต์กํ ์ค์ | Form Parser, ํนํ ํ๋ก์ธ์ |
| Azure Form Recognizer | ์ปค์คํ ๋ชจ๋ธ ํ์ต ์ฉ์ด | Microsoft ์ข ์์ฑ | ๋ ์ด์์ ๋ถ์, ์ปค์คํ ์์ ํ์ต |
| CLOVA OCR (๋ค์ด๋ฒ) | ํ๊ตญ์ด ์ต๊ฐ, ํ๊ตญ ์์ ํนํ | ๊ตญ๋ด ์๋น์ค ์ค์ฌ | ์์์ฆ, ๋ช ํจ, ์ ๋ถ์ฆ ํนํ ๋ชจ๋ธ |
| ์นด์นด์ค OCR | ํ๊ตญ์ด ๊ฐ์ , API ๊ฐํธ | ์์ ํนํ ๊ธฐ๋ฅ ์ ํ | ๊ธฐ๋ณธ ํ ์คํธ ์ธ์ ์ค์ฌ |
| ์์ง | ์ธ์ด/๊ธฐ์ | ์ฅ์ | ๋จ์ |
|---|---|---|---|
| Tesseract 5.x | C++, LSTM ๊ธฐ๋ฐ | ๋ฌด๋ฃ, 100+ ์ธ์ด, ์ฑ์ํ ์ํ๊ณ | ๋ณต์กํ ๋ ์ด์์ ์ฝํจ, ์ ์ฒ๋ฆฌ ํ์ |
| PaddleOCR | Python, PaddlePaddle | ๋์ ์ ํ๋, ๋ค๊ตญ์ด, ํ ์ธ์ ํฌํจ | ์ค๊ตญ์ด ์ค์ฌ, ํ๊ตญ์ด ์๋์ ์ฝํจ |
| EasyOCR | Python, PyTorch | ์ฌ์ฉ ํธ์์ฑ, 80+ ์ธ์ด | ์๋ ๋๋ฆผ, ์์ ๊ตฌ์กฐ ์ธ์ ๋ฏธํก |
| TrOCR | Python, Transformer | ์๊ธ์จ ์ธ์ ๊ฐ์ | ์๋, ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋ |
| Surya | Python, ์ต์ ๋ชจ๋ธ | ๋ ์ด์์ ๋ถ์ ๊ฐ์ | ์๋์ ์ผ๋ก ์ ๊ท, ์ํ๊ณ ๋ฏธ์ฑ์ |
ํ๊ตญ ๊ธฐ์ ํ๊ฒฝ์์๋ ํ๊ตญ์ด ํนํ, ํ๊ตญ ๋ฒ๊ท ์ค์, ๊ตญ๋ด ์์ ํ์ค ์ง์์ด ์ค์ํด. ๋ช ๊ฐ์ง ์ฃผ๋ชฉํ ๋งํ ์๋ฃจ์ ์ ์๊ฐํ ๊ฒ.
ABBYY FlexiCapture: ๊ธ๋ก๋ฒ ์๋ฃจ์ ์ด์ง๋ง ๊ตญ๋ด ํํธ๋๋ฅผ ํตํด ํ๊ตญ์ด ์์ ํนํ ๊ตฌํ ๊ฐ๋ฅ. ๋ณต์กํ ์์ ์ฒ๋ฆฌ์ ๊ฐ์ . ๊ธ์ต, ๋ณดํ, ๊ณต๊ณต๊ธฐ๊ด์์ ๋ง์ด ์ฌ์ฉ.
๋ค์ด๋ฒ CLOVA Document OCR: ํ๊ตญ์ด ์ต์ ํ, ์ธ๊ธ๊ณ์ฐ์ยท์์์ฆยท์ ๋ถ์ฆ ๋ฑ ํ๊ตญ ํนํ ์์ ๋ชจ๋ธ ์ ๊ณต. API ๋ฐฉ์์ผ๋ก ์ฝ๊ฒ ์ฐ๋ ๊ฐ๋ฅ.
๊ตญ๋ด RPA ์๋ฃจ์ ์ฐ๋: UiPath, Automation Anywhere ๋ฑ RPA ํ๋ซํผ์ OCR ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ด ์์ ์ฒ๋ฆฌ ์๋ํ์ ํ์ฉ. ๊ตญ๋ด ๊ธฐ์ ๋ค์ด ๋ง์ด ์ฑํ ์ค.
์ ์์ ๋ถ ํ์ค ํ๋ ์์ํฌ ์ฐ๋: ๊ณต๊ณต๊ธฐ๊ด์์๋ ์ ์์ ๋ถ ํ์ค ํ๋ ์์ํฌ์ ์ฐ๋๋๋ OCR ์๋ฃจ์ ์ด ํ์. ํ์ ์์ ๋ถ ์ธ์ฆ ์๋ฃจ์ ํ์ฉ.
์ด๋ก ์ ์ถฉ๋ถํ ๋ดค์ผ๋๊น ์ค์ ๋ก ์ด๋์ ์ด๋ป๊ฒ ์ฐ์ด๋์ง ์์๋ณด์. ์๊ฐ๋ณด๋ค ์ฐ๋ฆฌ ์ฃผ๋ณ์ ์์ฒญ ๋ง์ด ์ฐ์ด๊ณ ์์ด.
๋์ถ ์ ์ฒญ์ ์ฒ๋ฆฌ: ๊ณ ๊ฐ์ด ์ ์ถํ ๋์ถ ์ ์ฒญ์, ์๋ ์ฆ๋น ์๋ฅ, ์ฌ์ง ์ฆ๋ช ์ ๋ฑ์ OCR๋ก ์๋ ์ฒ๋ฆฌ. ๊ธฐ์กด ์์์ ๋๋น ์ฒ๋ฆฌ ์๊ฐ 70~80% ๋จ์ถ ์ฌ๋ก ๋ณด๊ณ .
๋ณดํ ์ฒญ๊ตฌ์ ์ฒ๋ฆฌ: ๋ณ์ ์์์ฆ, ์ง๋จ์, ๋ณดํ ์ฒญ๊ตฌ์ ๋ฑ์ ์๋ ์ธ์ํ๊ณ ๋ณดํ๊ธ ์ง๊ธ ์์คํ ๊ณผ ์ฐ๋. ์ผ์ฑ์๋ช , ํํ์๋ช ๋ฑ ์ฃผ์ ๋ณดํ์ฌ์์ ๋์ .
์ธ๊ธ๊ณ์ฐ์ ์ฒ๋ฆฌ: ๊ณต๊ธ์, ๊ณต๊ธ๋ฐ๋์, ํ๋ชฉ, ๊ธ์ก ๋ฑ ์ธ๊ธ๊ณ์ฐ์ ํ์ ํญ๋ชฉ์ ์๋ ์ถ์ถ. ERP ์์คํ ๊ณผ ์ฐ๋ํด์ ํ๊ณ ์ฒ๋ฆฌ ์๋ํ.
KYC(๊ณ ๊ฐ ์ ์ ํ์ธ): ์ ๋ถ์ฆ, ์ฌ๊ถ, ์ด์ ๋ฉดํ์ฆ OCR๋ก ๊ณ ๊ฐ ์ ๋ณด ์๋ ์ ๋ ฅ. ๋น๋๋ฉด ๊ณ์ข ๊ฐ์ค, ๊ธ์ต ์๋น์ค ๊ฐ์ ์ ํ์์ ์ผ๋ก ํ์ฉ.
์ฒ๋ฐฉ์ ๋์งํธํ: ์์ฌ์ ์๊ธ์จ ์ฒ๋ฐฉ์ ์ OCR๋ก ์ธ์ํด์ ์ฝ๊ตญ ์์คํ ์ ์๋ ์ ๋ ฅ. ์ค๋ ์ผ๋ก ์ธํ ์๋ฃ ์ฌ๊ณ ์๋ฐฉ์๋ ๊ธฐ์ฌ.
์๋ฌด๊ธฐ๋ก ๋์งํธํ: ์ข ์ด ์๋ฌด๊ธฐ๋ก์ ์ค์บํด์ EMR(์ ์์๋ฌด๊ธฐ๋ก) ์์คํ ์ผ๋ก ๋ณํ. ์์ญ ๋ ์น ์ข ์ด ๊ธฐ๋ก์ ๋์งํธํํ๋ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ํ์ฉ.
๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ์ง ์ฒ๋ฆฌ: ๋ค์ํ ์๋ฃ๊ธฐ๊ด์ ๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ์ง๋ฅผ ํ์คํ๋ ํ์์ผ๋ก ๋ณํ. ๊ฑด๊ฐ๋ณดํ๊ณต๋จ ๋ฑ์์ ํ์ฉ.
์๋ฃ๋น ์ฒญ๊ตฌ์ ์ฒ๋ฆฌ: ๋ณ์์์ ๊ฑด๊ฐ๋ณดํ๊ณต๋จ์ผ๋ก ์ ์ถํ๋ ์ฒญ๊ตฌ์ ์๋ ์ฒ๋ฆฌ. ์ฌ์ฌ ํจ์จํ์ ๊ธฐ์ฌ.
๋ฏผ์ ์๋ฅ ์ฒ๋ฆฌ: ์ฃผ๋ฏผ์ผํฐ, ๊ตฌ์ฒญ ๋ฑ์์ ์ ์๋๋ ๊ฐ์ข ๋ฏผ์ ์๋ฅ๋ฅผ ์๋ ์ฒ๋ฆฌ. ํ์ ์ฒ๋ฆฌ ์๊ฐ ๋จ์ถ๊ณผ ๊ณต๋ฌด์ ์ ๋ฌด ๋ถ๋ด ๊ฒฝ๊ฐ.
์ธ๋ฌด ์ ๊ณ ์ ์ฒ๋ฆฌ: ๊ตญ์ธ์ฒญ์์ ์ข ์ด๋ก ์ ์ถ๋ ์ธ๋ฌด ์ ๊ณ ์๋ฅผ ๋์งํธํ. ํํ์ค ์ ํ ์ด์ ์ข ์ด ์ ๊ณ ์ ์ฒ๋ฆฌ์ ํ์ฉ.
์ ๊ฑฐ ๊ด๋ จ ์๋ฅ: ์ ๊ฑฐ ํ๋ณด ๋ฑ๋ก ์๋ฅ, ์ ๊ฑฐ์ธ ๋ช ๋ถ ๋ฑ ์ฒ๋ฆฌ. ์ ๊ฑฐ๊ด๋ฆฌ์์ํ์์ ํ์ฉ.
๊ณ ๋ฌธ์ ๋์งํธํ: ๊ตญ๊ฐ๊ธฐ๋ก์, ๊ตญ๋ฆฝ์ค์๋์๊ด ๋ฑ์์ ์ญ์ฌ์ ๋ฌธ์๋ฅผ ๋์งํธํํ๋ ํ๋ก์ ํธ. ์ค๋๋ ํ์ ๋ฌธ์, ๊ณ ๋ฌธ์ ์ธ์์ ํนํ๋ ๋ชจ๋ธ ๊ฐ๋ฐ ์ค.
๋ฉํ์/๊ฑฐ๋๋ช ์ธ์ ์ฒ๋ฆฌ: ํ๋ ฅ์ ์ฒด์์ ๋ฐ๋ ๋ฉํ์๋ฅผ ์๋ ์ธ์ํด์ ERP์ ์ ๋ ฅ. ์์์ ์ ๋ ฅ ์ค๋ฅ ์ ๊ฑฐ์ ์ฒ๋ฆฌ ์๋ ํฅ์.
๋ฌผ๋ฅ ๋ผ๋ฒจ ์ธ์: ํ๋ฐฐ ์ก์ฅ, ํ๋ฌผ ๋ผ๋ฒจ์ ์ฃผ์, ๋ฐ์ฝ๋, ์์ทจ์ธ ์ ๋ณด ์๋ ์ธ์. ๋ฌผ๋ฅ ์๋ํ ์์คํ ์ ํต์ฌ ๊ธฐ์ .
ํ์ง ๊ฒ์ฌ ๊ธฐ๋ก ์ฒ๋ฆฌ: ์๊ธฐ๋ก ์์ฑ๋ ํ์ง ๊ฒ์ฌ ๊ธฐ๋ก์ง๋ฅผ ๋์งํธํ. ํ์ง ๋ฐ์ดํฐ ๋ถ์๊ณผ ์ด๋ ฅ ๊ด๋ฆฌ์ ํ์ฉ.
์์ถ์ ์๋ฅ ์ฒ๋ฆฌ: ์ธ๋ณด์ด์ค, ํจํน๋ฆฌ์คํธ, ์์ฐ์ง ์ฆ๋ช ์ ๋ฑ ๋ฌด์ญ ์๋ฅ ์๋ ์ฒ๋ฆฌ. ํต๊ด ์๋ํ์ ๊ธฐ์ฌ.
์ด์ ์ค์ ๋ก ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์์๋ณด์. Python ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ๋ณธ์ ์ธ ์์ OCR ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ด์ผ.
# ๊ธฐ๋ณธ OCR ๋ผ์ด๋ธ๋ฌ๋ฆฌ
pip install pytesseract pillow opencv-python
# ๊ณ ๊ธ OCR (PaddleOCR)
pip install paddlepaddle paddleocr
# ์ด๋ฏธ์ง ์ฒ๋ฆฌ
pip install numpy scipy scikit-image
# PDF ์ฒ๋ฆฌ
pip install pdf2image pymupdf
# ํ ์ธ์
pip install camelot-py tabula-py
# ๋ฐ์ดํฐ ์ฒ๋ฆฌ
pip install pandas openpyxl
import cv2
import numpy as np
from PIL import Image
def preprocess_document(image_path):
"""์์ ๋ฌธ์ ์ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ"""
# ์ด๋ฏธ์ง ๋ก๋
img = cv2.imread(image_path)
# 1. ๊ทธ๋ ์ด์ค์ผ์ผ ๋ณํ
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 2. ๋
ธ์ด์ฆ ์ ๊ฑฐ (๊ฐ์ฐ์์ ๋ธ๋ฌ)
denoised = cv2.GaussianBlur(gray, (3, 3), 0)
# 3. ์ ์ํ ์ด์งํ (๋ถ๊ท ์ผ ์กฐ๋ช
๋์)
binary = cv2.adaptiveThreshold(
denoised, 255,
cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
cv2.THRESH_BINARY, 11, 2
)
# 4. ๊ธฐ์ธ๊ธฐ ๊ฐ์ง ๋ฐ ๋ณด์
coords = np.column_stack(np.where(binary > 0))
angle = cv2.minAreaRect(coords)[-1]
if angle < -45:
angle = -(90 + angle)
else:
angle = -angle
# ํ์ ๋ณด์
(h, w) = binary.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(
binary, M, (w, h),
flags=cv2.INTER_CUBIC,
borderMode=cv2.BORDER_REPLICATE
)
return rotated
def enhance_resolution(image, scale=2):
"""ํด์๋ ํฅ์ (๊ฐ๋จํ ์
์ค์ผ์ผ๋ง)"""
h, w = image.shape[:2]
upscaled = cv2.resize(
image, (w * scale, h * scale),
interpolation=cv2.INTER_CUBIC
)
return upscaled
import camelot
import pandas as pd
def extract_tables_from_pdf(pdf_path):
"""PDF์์ ํ ์ถ์ถ"""
# ์ ์ด ์๋ ํ ์ถ์ถ (lattice ๋ฐฉ์)
tables_lattice = camelot.read_pdf(
pdf_path,
flavor='lattice', # ์ ๊ธฐ๋ฐ
pages='all'
)
# ์ ์ด ์๋ ํ ์ถ์ถ (stream ๋ฐฉ์)
tables_stream = camelot.read_pdf(
pdf_path,
flavor='stream', # ๊ณต๋ฐฑ ๊ธฐ๋ฐ
pages='all'
)
results = []
for i, table in enumerate(tables_lattice):
df = table.df
accuracy = table.accuracy
print(f"ํ {i+1}: ์ ํ๋ {accuracy:.1f}%")
results.append({
'table_index': i,
'accuracy': accuracy,
'data': df.to_dict()
})
return results
def extract_table_from_image(image_path):
"""์ด๋ฏธ์ง์์ ํ ์ถ์ถ (PaddleOCR ํ์ฉ)"""
from paddleocr import PPStructure
table_engine = PPStructure(
table=True,
ocr=True,
lang='korean'
)
result = table_engine(image_path)
for line in result:
if line['type'] == 'table':
# HTML ํ์์ ํ ๊ฒฐ๊ณผ
html_table = line['res']['html']
print("์ธ์๋ ํ (HTML):", html_table)
return result
import pytesseract
import re
from PIL import Image
def extract_form_fields(image_path, field_patterns):
"""
์์์์ ํน์ ํ๋ ์ถ์ถ
field_patterns: {'ํ๋๋ช
': '์ ๊ท์ ํจํด'}
"""
img = Image.open(image_path)
# OCR ์คํ (ํ๊ตญ์ด + ์์ด)
text = pytesseract.image_to_string(
img,
lang='kor+eng',
config='--psm 6' # ๋จ์ผ ๋ธ๋ก ํ
์คํธ๋ก ์ฒ๋ฆฌ
)
extracted_data = {}
for field_name, pattern in field_patterns.items():
matches = re.findall(pattern, text)
if matches:
extracted_data[field_name] = matches[0]
else:
extracted_data[field_name] = None
return extracted_data
# ์ฌ์ฉ ์์
patterns = {
'์ด๋ฆ': r'์ฑ\s*๋ช
\s*[:๏ผ]\s*([๊ฐ-ํฃ]+)',
'์ฃผ๋ฏผ๋ฒํธ': r'(\d{6}-\d{7})',
'์ ํ๋ฒํธ': r'(01[0-9]-\d{3,4}-\d{4})',
'๋ ์ง': r'(\d{4}๋
\s*\d{1,2}์\s*\d{1,2}์ผ)',
'๊ธ์ก': r'๊ธ\s*์ก\s*[:๏ผ]\s*([\d,]+)\s*์'
}
result = extract_form_fields('์ ์ฒญ์.jpg', patterns)
print(result)
import pytesseract
from PIL import Image
import json
def ocr_with_confidence(image_path, confidence_threshold=0.7):
"""
์ ๋ขฐ๋ ์ ์์ ํจ๊ป OCR ์ฒ๋ฆฌ
๋ฎ์ ์ ๋ขฐ๋ ํญ๋ชฉ์ ๊ฒํ ํ์ ํ๋๊ทธ ์ค์
"""
img = Image.open(image_path)
# ๋จ์ด๋ณ ์ ๋ขฐ๋ ํฌํจ OCR
data = pytesseract.image_to_data(
img,
lang='kor+eng',
output_type=pytesseract.Output.DICT
)
results = []
review_needed = []
for i in range(len(data['text'])):
word = data['text'][i].strip()
conf = int(data['conf'][i])
if word and conf != -1:
confidence = conf / 100.0
item = {
'text': word,
'confidence': confidence,
'bbox': {
'x': data['left'][i],
'y': data['top'][i],
'w': data['width'][i],
'h': data['height'][i]
}
}
results.append(item)
# ๋ฎ์ ์ ๋ขฐ๋ ํญ๋ชฉ ํ๋๊ทธ
if confidence < confidence_threshold:
review_needed.append(item)
return {
'all_results': results,
'review_needed': review_needed,
'auto_processable': len(review_needed) == 0
}
# ๊ฒฐ๊ณผ ์ฒ๋ฆฌ
result = ocr_with_confidence('์์.jpg', confidence_threshold=0.8)
if result['auto_processable']:
print("โ
์๋ ์ฒ๋ฆฌ ๊ฐ๋ฅ")
else:
print(f"โ ๏ธ {len(result['review_needed'])}๊ฐ ํญ๋ชฉ ๊ฒํ ํ์")
for item in result['review_needed']:
print(f" - '{item['text']}' (์ ๋ขฐ๋: {item['confidence']:.1%})")
OCR ๊ธฐ์ ์ ์ง๊ธ๋ ์์ฒญ๋๊ฒ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ด. ์ต์ ํธ๋ ๋๋ฅผ ์์์ผ ๋ฏธ๋๋ฅผ ๋๋นํ ์ ์์ง!
๋จ์ํ ๊ธ์๋ฅผ ์ฝ๋ OCR์์ ๋ฌธ์์ ์๋ฏธ๋ฅผ ์ดํดํ๋ Document Understanding์ผ๋ก ํจ๋ฌ๋ค์์ด ์ ํ๋๊ณ ์์ด.
LayoutLM ์๋ฆฌ์ฆ: Microsoft๊ฐ ๊ฐ๋ฐํ ๋ชจ๋ธ๋ก, ํ ์คํธ ๋ด์ฉ๊ณผ ๋ ์ด์์ ์ ๋ณด(์์น, ํฌ๊ธฐ)๋ฅผ ํจ๊ป ํ์ต. LayoutLMv3๋ ํ ์คํธ, ์ด๋ฏธ์ง, ๋ ์ด์์์ ํตํฉ ์ฒ๋ฆฌ. ์์ ์ดํด ๋ฒค์น๋งํฌ์์ ์ต๊ณ ์ฑ๋ฅ ๋ฌ์ฑ.
Donut (Document Understanding Transformer): OCR ์์ด ๋ฌธ์ ์ด๋ฏธ์ง๋ฅผ ์ง์ ์ดํดํ๋ End-to-End ๋ชจ๋ธ. ๋ณ๋์ OCR ์์ง ์์ด ๋ฌธ์์์ ์ ๋ณด๋ฅผ ์ถ์ถ. ๋ค์ด๋ฒ AI Lab์์ ๊ฐ๋ฐ.
GPT-4V / Claude Vision: ๋ฉํฐ๋ชจ๋ฌ LLM์ด ๋ฌธ์ ์ด๋ฏธ์ง๋ฅผ ์ง์ ์ฒ๋ฆฌ. "์ด ์์์์ ์ด๋ฆ, ๋ ์ง, ๊ธ์ก์ ์ถ์ถํด์ค"๋ผ๊ณ ์์ฐ์ด๋ก ์์ฒญํ๋ฉด ์์์ ์ฒ๋ฆฌ. ์ ํ๋๋ ์์ง ์ ๋ฌธ OCR ์์ง๋ณด๋ค ๋ฎ์ง๋ง ์ ์ฐ์ฑ์ด ๋ฐ์ด๋จ.
๊ธฐ์กด์๋ ์๋ก์ด ์์์ด ์๊ธฐ๋ฉด ํ์ต ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ผ๊ณ ๋ชจ๋ธ์ ์ฌํ์ตํด์ผ ํ์ด. ๊ทผ๋ฐ ์ต์ ๊ธฐ์ ์ ์ด ๊ณผ์ ์์ด๋ ์๋ก์ด ์์์ ์ฒ๋ฆฌํ ์ ์์ด.
์ ๋ก์ท(Zero-shot) ์์ ์ธ์: ํ์ต ๋ฐ์ดํฐ ์์ด ์์ ์ค๋ช ๋ง์ผ๋ก ํ๋๋ฅผ ์ถ์ถ. "์ด ์์์์ '์ ์ฒญ์ธ ์ฑ๋ช ' ๋ค์์ ์ค๋ ํ ์คํธ๋ฅผ ์ถ์ถํด์ค" ๊ฐ์ ๋ฐฉ์.
ํจ์ท(Few-shot) ํ์ต: ๋ช ์ฅ์ ์์๋ง์ผ๋ก ์๋ก์ด ์์์ ์ ์. ๊ธฐ์กด ์๋ฐฑ ์ฅ์ ํ์ต ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ ๊ฒ์ 5~10์ฅ์ผ๋ก ๋์ฒด.
ํ๋กฌํํธ ์์ง๋์ด๋ง: LLM์๊ฒ ์์ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํ๋ ํ๋กฌํํธ๋ฅผ ์ ์์ฑํ๋ฉด ๋ณ๋ ํ์ต ์์ด๋ ๋์ ์ ํ๋ ๋ฌ์ฑ ๊ฐ๋ฅ. ์ฌ๋ฅ๋ท์์๋ ์ด๋ฐ ํ๋กฌํํธ ์์ง๋์ด๋ง ์ ๋ฌธ๊ฐ๋ค์ด ํ๋ํ๊ณ ์์ด.
์จ๋๋ฐ์ด์ค OCR: ์๋ฒ ์ ์ก ์์ด ์ค๋งํธํฐ์์ ์ง์ OCR ์ฒ๋ฆฌ. ๊ฐ์ธ์ ๋ณด ๋ณดํธ์ ์ค์๊ฐ ์ฒ๋ฆฌ์ ์ ๋ฆฌ. Apple์ Vision Framework, Google ML Kit์ด ๋ํ์ .
์ค์๊ฐ ์นด๋ฉ๋ผ OCR: ์นด๋ฉ๋ผ๋ก ๋ฌธ์๋ฅผ ๋น์ถ๋ฉด ์ค์๊ฐ์ผ๋ก ํ ์คํธ ์ธ์. ๋ค์ด๋ฒ ์ค๋งํธ๋ ์ฆ, ๊ตฌ๊ธ ๋ ์ฆ ๋ฑ์ด ์ด๋ฏธ ์์ฉํ. ์์ ์ฒ๋ฆฌ์๋ ์ ์ฉ ํ๋ ์ค.
๋ชจ๋ธ ๊ฒฝ๋ํ: MobileNet, EfficientNet-Lite, TFLite ๋ฑ ๋ชจ๋ฐ์ผ ์ต์ ํ ๋ชจ๋ธ๋ก ์ฑ๋ฅ ์ ํ ์์ด ๋น ๋ฅธ ์ฒ๋ฆฌ. ์์ํ(Quantization), ํ๋ฃจ๋(Pruning) ๊ธฐ๋ฒ์ผ๋ก ๋ชจ๋ธ ํฌ๊ธฐ ๋ํญ ์ถ์.
OCR์ด ๋จ๋ ์ผ๋ก ์ฐ์ด๋ ์๋๋ ์ง๋๊ฐ๊ณ ์์ด. ์ด์ ๋ IDP(์ง๋ฅํ ๋ฌธ์ ์ฒ๋ฆฌ)๋ผ๋ ๋ ํฐ ๊ฐ๋ ์ผ๋ก ํตํฉ๋๊ณ ์์ง.
IDP ๊ตฌ์ฑ ์์:
- ๋ฌธ์ ๋ถ๋ฅ (์ด๋ค ์ข ๋ฅ์ ์์์ธ์ง ์๋ ํ๋ณ)
- OCR ๋ฐ ๋ฐ์ดํฐ ์ถ์ถ
- ๋ฐ์ดํฐ ๊ฒ์ฆ ๋ฐ ๊ต์
- ์ํฌํ๋ก์ฐ ์๋ํ
- ERP/CRM/DMS ์์คํ ์ฐ๋
RPA + OCR ์กฐํฉ: UiPath, Automation Anywhere ๋ฑ RPA ๋๊ตฌ์ OCR์ ๊ฒฐํฉํด์ ์์ ์๋ํ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ. ์๋ฅ ์ ์ โ OCR ์ฒ๋ฆฌ โ ๋ฐ์ดํฐ ๊ฒ์ฆ โ ์์คํ ์ ๋ ฅ โ ๊ฒฐ๊ณผ ํต๋ณด๊น์ง ์ฌ๋ ๊ฐ์ ์์ด ์ฒ๋ฆฌ.
์์ฅ ๊ท๋ชจ: ๊ธ๋ก๋ฒ IDP ์์ฅ์ 2023๋ ์ฝ 14์ต ๋ฌ๋ฌ์์ 2028๋ ์ฝ 52์ต ๋ฌ๋ฌ๋ก ์ฐํ๊ท 30% ์ด์ ์ฑ์ฅ ์ ๋ง(MarketsandMarkets, 2023).
OCR ์์คํ ์ ๋์ ํ๊ฑฐ๋ ๊ฐ๋ฐํ ๋ "์ผ๋ง๋ ์ ํํ๊ฐ?"๋ฅผ ๊ฐ๊ด์ ์ผ๋ก ์ธก์ ํ๋ ๊ฒ ์ค์ํด. ๊ทธ๋ฅ "์ ๋๋ ๊ฒ ๊ฐ์์"๋ ์ ๋๊ฑฐ๋ ใ ใ ใ .
| ์งํ | ์ค๋ช | ๊ณ์ฐ ๋ฐฉ๋ฒ | ์ข์ ๊ฐ |
|---|---|---|---|
| CER (Character Error Rate) | ๋ฌธ์ ๋จ์ ์ค๋ฅ์จ | (์ฝ์ +์ญ์ +๋์ฒด) / ์ ์ฒด ๋ฌธ์ ์ | ๋ฎ์์๋ก ์ข์ (5% ์ดํ ์ฐ์) |
| WER (Word Error Rate) | ๋จ์ด ๋จ์ ์ค๋ฅ์จ | (์ฝ์ +์ญ์ +๋์ฒด) / ์ ์ฒด ๋จ์ด ์ | ๋ฎ์์๋ก ์ข์ (10% ์ดํ ์ฐ์) |
| F1 Score | ์ ๋ฐ๋์ ์ฌํ์จ์ ์กฐํ ํ๊ท | 2 ร (์ ๋ฐ๋ ร ์ฌํ์จ) / (์ ๋ฐ๋ + ์ฌํ์จ) | ๋์์๋ก ์ข์ (0.9 ์ด์ ์ฐ์) |
| ํ๋ ์ ํ๋ | ์์ ํ๋ ๋จ์ ์ ํ๋ | ์ ํํ ์ถ์ถ๋ ํ๋ / ์ ์ฒด ํ๋ | ๋์์๋ก ์ข์ (95% ์ด์ ๋ชฉํ) |
| ์ฒ๋ฆฌ ์๋ | ๋ฌธ์ ์ฒ๋ฆฌ ์๊ฐ | ์ด/ํ์ด์ง ๋๋ ํ์ด์ง/๋ถ | ์ ๋ฌด ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ๋ค๋ฆ |
ํ๋ ๋ ๋ฒจ ํ๊ฐ: ์ ์ฒด ํ ์คํธ ์ ํ๋๋ณด๋ค ์ค์ํ ํ๋(์ด๋ฆ, ๊ธ์ก, ๋ ์ง ๋ฑ)์ ์ ํ๋๋ฅผ ๋ณ๋๋ก ์ธก์ . ์ค์๋์ ๋ฐ๋ผ ๊ฐ์ค์น๋ฅผ ๋ค๋ฅด๊ฒ ์ ์ฉ.
์์ ์ผ์น vs ๋ถ๋ถ ์ผ์น: ํ๋ ๊ฐ์ด ์์ ํ ์ผ์นํ๋ ๊ฒฝ์ฐ์ ๋ถ๋ถ์ ์ผ๋ก ์ผ์นํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌ๋ถํด์ ํ๊ฐ. ์๋ฅผ ๋ค์ด "ํ๊ธธ๋"์ "ํ๊ธธ๋ "์ผ๋ก ์ธ์ํ ๊ฒฝ์ฐ(๊ณต๋ฐฑ ํฌํจ)๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง.
๊ตฌ์กฐ ์ ํ๋: ํ์ ํ/์ด ๊ตฌ์กฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ธ์๋์๋์ง ํ๊ฐ. ๋ด์ฉ์ด ๋ง์๋ ๊ตฌ์กฐ๊ฐ ํ๋ฆฌ๋ฉด ๋ฐ์ดํฐ ํ์ฉ์ด ์ด๋ ค์.
์ค์ ์ ๋ฌด ๊ธฐ์ค ํ๊ฐ: ๊ธฐ์ ์ ์งํ ์ธ์ ์ค์ ์ ๋ฌด์์ ์ฌ์์ ์ด ํ์ํ ๋น์จ, ์ฒ๋ฆฌ ์๊ฐ ๋จ์ถ๋ฅ , ์ค๋ฅ๋ก ์ธํ ๋น์ฉ ๋ฑ ๋น์ฆ๋์ค ์งํ๋ ํจ๊ป ํ๊ฐ.
FUNSD (Form Understanding in Noisy Scanned Documents): 199๊ฐ์ ์ค์ ์ค์บ ์์ ๋ฌธ์. ํ ์คํธ ์ธ์, ๋ ์ด์์ ๋ถ์, ์ํฐํฐ ์ฐ๊ฒฐ ๋ฑ ํ๊ฐ. ์์ ์ดํด ์ฐ๊ตฌ์ ํ์ค ๋ฒค์น๋งํฌ.
CORD (Consolidated Receipt Dataset): ์์์ฆ ํนํ ๋ฐ์ดํฐ์ . 1,000๊ฐ ์์์ฆ, 30๊ฐ ํด๋์ค. ์์์ฆ OCR ๋ชจ๋ธ ํ๊ฐ์ ํ์ฉ.
DocVQA: ๋ฌธ์ ์ด๋ฏธ์ง์ ๋ํ ์ง๋ฌธ-๋ต๋ณ ํ์์ ๋ฒค์น๋งํฌ. ๋ฌธ์ ์ดํด ๋ฅ๋ ฅ ํ๊ฐ์ ํ์ฉ.
AI Hub ํ๊ตญ์ด ๋ฐ์ดํฐ์ : ํ๊ตญ์ง๋ฅ์ ๋ณด์ฌํ์งํฅ์(NIA)์์ ์ ๊ณตํ๋ ํ๊ตญ์ด OCR ๋ฐ์ดํฐ์ . ์ธ์์ฒด, ์๊ธ์จ, ๋ค์ํ ์์ ํฌํจ. ํ๊ตญ์ด OCR ๋ชจ๋ธ ๊ฐ๋ฐ/ํ๊ฐ์ ํ์.
์์ ๋ฌธ์์๋ ๊ฐ์ธ์ ๋ณด, ๊ธฐ์ ๊ธฐ๋ฐ, ๊ธ์ต ์ ๋ณด ๋ฑ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ํด. OCR ์์คํ ๊ตฌ์ถ ์ ๋ณด์์ ์ ํ์ด ์๋๋ผ ํ์์ผ.
๊ฐ์ธ์ ๋ณด๋ณดํธ๋ฒ(PIPA): ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ์ด๋ฆ, ์ฃผ์, ์ฐ๋ฝ์ฒ ๋ฑ ๊ฐ์ธ์ ๋ณด๊ฐ ํฌํจ๋ ์์ ์ฒ๋ฆฌ ์ ๊ฐ์ธ์ ๋ณด๋ณดํธ๋ฒ ์ค์ ํ์. ์์ง ๋ชฉ์ ๋ช ์, ์ต์ ์์ง ์์น, ์์ ํ ๋ณด๊ด ์๋ฌด.
๋ง์คํน ์ฒ๋ฆฌ: OCR ์ฒ๋ฆฌ ํ ์๋ณธ ์ด๋ฏธ์ง์ ๊ฐ์ธ์ ๋ณด ์์ญ์ ๋ง์คํน(๋ธ๋ฌ ์ฒ๋ฆฌ ๋๋ ๊ฒ์ ๋ฐ์ค). ์ฒ๋ฆฌ ์๋ฃ ํ ์๋ณธ ์ด๋ฏธ์ง ์ฆ์ ์ญ์ ์ ์ฑ ์๋ฆฝ.
ํด๋ผ์ฐ๋ OCR ์ฌ์ฉ ์ ์ฃผ์: ์ธ๋ถ ํด๋ผ์ฐ๋ ์๋น์ค์ ๊ฐ์ธ์ ๋ณด๊ฐ ํฌํจ๋ ๋ฌธ์๋ฅผ ์ ์กํ ๊ฒฝ์ฐ ๊ฐ์ธ์ ๋ณด ์ฒ๋ฆฌ ์ํ ๊ณ์ฝ ํ์. ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์จํ๋ ๋ฏธ์ค ์ฒ๋ฆฌ ๊ถ์ฅ.
๋ฐ์ดํฐ ๋ณด์กด ๊ธฐ๊ฐ: OCR ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ์ ๋ณด์กด ๊ธฐ๊ฐ์ ๋ช ํํ ์ ํ๊ณ , ๊ธฐ๊ฐ ๋ง๋ฃ ์ ์์ ํ๊ฒ ์ญ์ ํ๋ ํ๋ก์ธ์ค ๊ตฌ์ถ.
์ ์ก ๋ณด์: ๋ฌธ์ ์ด๋ฏธ์ง ์ ์ก ์ TLS 1.3 ์ด์ ์ํธํ. API ํค ๊ด๋ฆฌ, OAuth 2.0 ์ธ์ฆ ์ ์ฉ.
์ ์ฅ ๋ณด์: ์ฒ๋ฆฌ ์ค์ธ ์ด๋ฏธ์ง์ ์ถ์ถ ๋ฐ์ดํฐ ์ํธํ ์ ์ฅ(AES-256). ์ ๊ทผ ๊ถํ ์ต์ํ(Least Privilege Principle).
์ฒ๋ฆฌ ๋ณด์: ์๋๋ฐ์ค ํ๊ฒฝ์์ OCR ์ฒ๋ฆฌ. ์ ์ฑ ํ์ผ(PDF ์ต์คํ๋ก์ ๋ฑ) ๊ฒ์ฌ ํ ์ฒ๋ฆฌ.
๊ฐ์ฌ ๋ก๊ทธ: ๋๊ฐ, ์ธ์ , ์ด๋ค ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๋์ง ๊ฐ์ฌ ๋ก๊ทธ ์ ์ง. ์ด์ ์ ๊ทผ ํ์ง ์์คํ ๊ตฌ์ถ.
PII ๊ฐ์ง ๋ฐ ์ฒ๋ฆฌ: OCR ๊ฒฐ๊ณผ์์ ์๋์ผ๋ก ๊ฐ์ธ์๋ณ์ ๋ณด(PII)๋ฅผ ๊ฐ์งํ๊ณ ๋ง์คํนํ๋ ๊ธฐ๋ฅ ๊ตฌํ. AWS Comprehend, Google DLP ๊ฐ์ ์๋น์ค ํ์ฉ ๊ฐ๋ฅ.
OCR ์์คํ ๋์ ์ ๊ฒฐ์ ํ ๋ ๊ฐ์ฅ ์ค์ํ ๊ฑด "์ด๊ฒ ์ ๋ง ์ฐ๋ฆฌํํ ์ด๋์ด ๋๋?"์ผ. ROI๋ฅผ ์ ๋๋ก ๊ณ์ฐํด๋ณด์.
๋น์ฉ ์ ๊ฐ ํญ๋ชฉ:
- ์์์ ๋ฐ์ดํฐ ์ ๋ ฅ ์ธ๊ฑด๋น ์ ๊ฐ
- ์ ๋ ฅ ์ค๋ฅ๋ก ์ธํ ์ฌ์์ ๋น์ฉ ์ ๊ฐ
- ์ฒ๋ฆฌ ์๊ฐ ๋จ์ถ์ผ๋ก ์ธํ ๊ธฐํ๋น์ฉ ์ ๊ฐ
- ์ข ์ด ๋ฌธ์ ๋ณด๊ด ๋น์ฉ ์ ๊ฐ
- ์ค๋ฅ๋ก ์ธํ ์์ค(๋ฐํ, ํด๋ ์ ๋ฑ) ์ ๊ฐ
๋์ ๋น์ฉ ํญ๋ชฉ:
- ์ํํธ์จ์ด ๋ผ์ด์ ์ค/๊ตฌ๋ ๋น์ฉ
- ํ๋์จ์ด ๋น์ฉ(์ค์บ๋, ์๋ฒ ๋ฑ)
- ๊ตฌ์ถ ๋ฐ ์ปค์คํฐ๋ง์ด์ง ๋น์ฉ
- ์ง์ ๊ต์ก ๋น์ฉ
- ์ ์ง๋ณด์ ๋น์ฉ
๊ณ์ฐ ๊ณต์:
ROI(%) = (์ฐ๊ฐ ์ ๊ฐ์ก - ์ฐ๊ฐ ์ด๋น์ฉ) / ์ฐ๊ฐ ์ด๋น์ฉ ร 100
| ์ ์ข | ์ฒ๋ฆฌ ๋ฌธ์ | ๋์ ์ | ๋์ ํ | ROI |
|---|---|---|---|---|
| ๋ณดํ์ฌ | ๋ณดํ ์ฒญ๊ตฌ์ | ๊ฑด๋น 15๋ถ, ์ค๋ฅ์จ 3% | ๊ฑด๋น 2๋ถ, ์ค๋ฅ์จ 0.5% | ์ฒซํด 200%+ |
| ์ ์กฐ์ | ๋ฉํ์/๊ฑฐ๋๋ช ์ธ์ | ์ 200์๊ฐ ์์์ | ์ 20์๊ฐ ๊ฒํ ๋ง | 18๊ฐ์ ๋ด ์์ต๋ถ๊ธฐ |
| ๋ณ์ | ์๋ฌด๊ธฐ๋ก ๋์งํธํ | ํ์ด์ง๋น 500์ ์ธ์ฃผ | ํ์ด์ง๋น 50์ ์ดํ | 90% ๋น์ฉ ์ ๊ฐ |
| ๋ฌผ๋ฅ | ์ก์ฅ/๋ฉํ์ | ๊ฑด๋น 3๋ถ, ์ค๋ฅ์จ 2% | ๊ฑด๋น 30์ด, ์ค๋ฅ์จ 0.3% | ์ฒซํด 300%+ |
1๋จ๊ณ โ ํ์ผ๋ฟ (1~3๊ฐ์): ๊ฐ์ฅ ์ฒ๋ฆฌ๋์ด ๋ง๊ณ ๋จ์ํ ์์ ํ๋๋ฅผ ์ ํํด์ ํ์ผ๋ฟ ์งํ. ์ ํ๋, ์ฒ๋ฆฌ ์๋, ์ฌ์ฉ์ ๋ง์กฑ๋ ์ธก์ . ๋ฌธ์ ์ ํ์ ๋ฐ ๊ฐ์ .
2๋จ๊ณ โ ํ์ฅ (3~6๊ฐ์): ํ์ผ๋ฟ ์ฑ๊ณต ํ ์ ์ฌํ ์์์ผ๋ก ํ์ฅ. ์๋ํ ๋น์จ ์ ์ง์ ํฅ์. ์ฌ์ฉ์ ๊ต์ก ๋ฐ ํ๋ก์ธ์ค ์ ์ฐฉ.
3๋จ๊ณ โ ๊ณ ๋ํ (6~12๊ฐ์): ๋ณต์กํ ์์, ์๊ธ์จ, ๋ค์ํ ๋ ์ด์์์ผ๋ก ํ์ฅ. AI ๋ชจ๋ธ ํ์ธํ๋์ผ๋ก ์ ํ๋ ํฅ์. ๋ค๋ฅธ ์์คํ (ERP, CRM ๋ฑ)๊ณผ ์์ ํตํฉ.
4๋จ๊ณ โ ์ต์ ํ (์ง์): ์ง์์ ์ธ ๋ชจ๋ธ ์ ๋ฐ์ดํธ, ์๋ก์ด ์์ ์ถ๊ฐ, ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง. ๋ฅ๋ ํ์ต์ผ๋ก ๋ชจ๋ธ ์ง์ ๊ฐ์ .
์์ฒญ ๊ธด ์ฌ์ ์ด์๋๋ฐ ์ฌ๊ธฐ๊น์ง ๋ฐ๋ผ์์ค์ ๊ณ ๋ง์ ใ ใ ใ . ํต์ฌ์ ์ ๋ฆฌํด๋ณผ๊ฒ.
1. OCR์ ํ์ดํ๋ผ์ธ์ด๋ค: ์ ์ฒ๋ฆฌ โ ๋ ์ด์์ ๋ถ์ โ ๋ฌธ์ ์ธ์ โ ํ์ฒ๋ฆฌ โ ๊ฒ์ฆ์ ์ ์ฒด ํ๋ฆ์ด ์ค์. ์ด๋ ํ ๋จ๊ณ๋ง ์ํด์๋ ์ ๋ผ.
2. ์ ์ฒ๋ฆฌ๊ฐ ์ ํ๋์ 30~40%๋ฅผ ๊ฒฐ์ ํ๋ค: ์ข์ ์ ๋ ฅ์ด ์ข์ ์ถ๋ ฅ์ ๋ง๋ค์ด. ์ค์บ ํ์ง, ๊ธฐ์ธ๊ธฐ ๋ณด์ , ๋ ธ์ด์ฆ ์ ๊ฑฐ์ ํฌ์ํด.
3. ์์ ํนํ ๊ธฐ๋ฅ์ด ํต์ฌ์ด๋ค: ํ ์ธ์, ์ฒดํฌ๋ฐ์ค, ๋์ฅ, ์๊ธ์จ ๋ฑ ์์ ์์๋ณ ํนํ ์ฒ๋ฆฌ๊ฐ ํ์ํด. ๋ฒ์ฉ OCR๋ง์ผ๋ก๋ ํ๊ณ๊ฐ ์์ด.
4. ์ ๋ขฐ๋ ๊ธฐ๋ฐ ์ฒ๋ฆฌ๊ฐ ํ์ค์ ์ด๋ค: 100% ์๋ํ๋ ์์ง ์ด๋ ค์. ์ ๋ขฐ๋ ์ ์๋ก ์๋/์๋ ์ฒ๋ฆฌ๋ฅผ ๊ตฌ๋ถํ๋ ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ด ์ค์ฉ์ ์ด์ผ.
5. ๋ณด์๊ณผ ๊ฐ์ธ์ ๋ณด๋ ํ์๋ค: ์์์๋ ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ๊ฐ๋ํด. ๊ฐ์ธ์ ๋ณด๋ณดํธ๋ฒ ์ค์์ ๊ธฐ์ ์ ๋ณด์ ์กฐ์น๋ ์ ํ์ด ์๋์ผ.
6. ํ์ธํ๋์ผ๋ก ์ ํ๋๋ฅผ ๋์ฌ๋ผ: ๋ฒ์ฉ ๋ชจ๋ธ๋ณด๋ค ์ฐ๋ฆฌ ์์์ ํนํ๋ ๋ชจ๋ธ์ด ํจ์ฌ ์ ํํด. ๋๋ฉ์ธ ํนํ ํ์ต์ ํฌ์ํ ๊ฐ์น๊ฐ ์์ด.
7. ๋ฏธ๋๋ Document Understanding์ด๋ค: ๋จ์ ๊ธ์ ์ธ์์ ๋์ด ๋ฌธ์์ ์๋ฏธ๋ฅผ ์ดํดํ๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ ์ค. LLM๊ณผ์ ํตํฉ์ด ๊ฒ์ ์ฒด์ธ์ ๊ฐ ๋ ๊ฑฐ์ผ.
OCR ์์ ์ฒ๋ฆฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ ๋งํ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด, ์ฌ๋ฅ๋ท์์ OCR/AI ์ ๋ฌธ๊ฐ๋ค์ ๋์์ ๋ฐ์๋ณด๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์ผ. ํ์ธํ๋, ํ์ดํ๋ผ์ธ ๊ตฌ์ถ, ํน์ ์์ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ์ ๋ฌธ ์๋น์ค๋ฅผ ์ฐพ์๋ณผ ์ ์๊ฑฐ๋ .
์ด ๊ธ์ด OCR ์์ ๋ฐ์ดํฐ ์ถ์ถ์ ์ดํดํ๊ณ ์ค๋ฌด์ ์ ์ฉํ๋ ๋ฐ ๋์์ด ๋์ผ๋ฉด ์ข๊ฒ ์ด! ๊ถ๊ธํ ์ ์ ๋๊ธ๋ก ๋จ๊ฒจ์ค. ๐
๊ด๋ จ ํค์๋
๋๊ธ ์์ฑ
์ด ๊ธ์ ๋ํ ์ฌ๋ฌ๋ถ์ ์๊ฐ์ ๋ค๋ ค์ฃผ์ธ์
๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค
๋๊ธ์ ์์ฑํ๋ ค๋ฉด ๋จผ์ ๋ก๊ทธ์ธํด์ฃผ์ธ์.
๋๊ธ 0
์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์์ง ๋๊ธ์ด ์์ต๋๋ค.