안녕하세요. 보이스루입니다.
“Connected Every Culture” 글로벌 번역 시장을 새롭게 정의 내리고 있는 보이스루 테크 그룹의 이야기를 전하는 Tech Blog입니다.
들어가며
안녕하세요. 보이스루 R&D 팀의 강병규입니다.
컴퓨터는 인간과 다르게 이미지와 글자를 정확하게 구분해 인식하지 않습니다. 단지 비슷한 색의 픽셀이 연속으로 이어져 있다는 것 정도를 감지할 뿐인데요.
이러한 특성 때문에 컴퓨터가 아날로그 문서를 인식하는 과정에서 음영의 손상, 왜곡 등이 발생하며 그 결과 텍스트 인식률이 아주 낮아지기도 합니다.
1편에서 보이스루는 많은 양의 웹툰 번역을 진행하고 있다고 알려드렸는데요. 보이스루 R&D 팀의 딥러닝 개발 이야기.
지난 1편에 이어 두 번째 스토리 ‘OCR과 인페인팅’을 소개합니다.
OCR
앞서 말씀드렸던 전사(transcribe) 작업은 ‘1) 모든 텍스트를 찾고, 2) 번역을 위해 텍스트를 정확하게 옮긴다’로 정리할 수 있습니다.
보이스루 R&D 팀은 텍스트 세그멘테이션 모델로 1번 문제를 해결했지만, 세그멘테이션 모델의 인식 정확성은 완벽하다고 볼 수 없는데요.
그래서 결국 사람이 직접 옮겨 쓰는 작업에 대한 고민이 남았습니다. 이 문제를 보완하기 위해 R&D 팀은 추가로 OCR 모델을 개발했습니다.
OCR의 개념을 먼저 설명하겠습니다. OCR은 Optical Character Recognition의 줄임말입니다. 이미지 내 글자를 자동으로 인식하는 인공지능 기술을 의미하죠.
예를 들어, 카메라를 통해 자동차 번호를 인식한다거나, 신분증에서 개인 정보에 해당하는 텍스트를 인식하는 등의 기술입니다.
최근 OCR은 딥러닝으로 인해 큰 발전이 있었습니다.
< 출처: https://arxiv.org/pdf/1707.08831.pdf >
딥러닝 기반의 OCR은 이미지 속 문자를 읽는 1)문자 영역 검출(Text detection)과 2)검출된 영역의 문자를 인식하는 Text Recognition으로 구분할 수 있습니다.
보이스루 R&D 팀의 OCR 모델 역시 이와 다르지 않습니다. 검출 단계는 지난 글에서 다룬 텍스트 세그멘테이션을 이용해 처리합니다.
하지만 이렇게 찾은 텍스트들은 단순한 흑백 이미지 형태이기 때문에 기계가 인식하는 데 어려움을 겪을 수 있습니다.
따라서 텍스트 영역을 박스(bounding box)로 감싸줍니다. 이후 이 박스를 이미지에서 잘라내 인식 모델에 넣으면 OCR 모델이
이 박스 안에 어떤 텍스트가 있는지 인식합니다.
저희가 개발한 OCR 모델은 기본적으로 단어 단위로 작동합니다. 단어 단위로 박스를 만들고 텍스트를 인식하는 것이죠.
말풍선 안에 아무리 긴 문장이 들어있어도 단어 단위로 쪼개진 결과를 얻게 됩니다.
하지만 전사자나 번역가는 이렇게 문장이 잘게 쪼개져 있으면 작업하는 데 큰 불편함을 느낄 수 있습니다.
따라서 말풍선처럼 문장 단위로 처리해야 하는 부분과 웹툰 내 효과음과 같이 단어 단위로 처리해도 괜찮은 부분을 구분해야만 하는 문제를 발견했습니다.
Text Segmentation
전사와 식자 작업을 잘 나눠 생각해보면 가장 중요한 건, 결국 텍스트가 정확히 어디에 있는지를 잘 알아내는 것입니다.
전사 작업에서는 텍스트가 정확히 어디 있는지 알아야 그 텍스트를 정확하게 옮겨 쓸 수 있을 것이고,
마찬가지로 식자 작업에서도 텍스트가 어딨는지 알아야 이를 지우고 그 자리에 번역된 텍스트를 깨끗하게 올릴 수 있을 테니까요.
이를 위해서 저희 R&D 팀은 세그멘테이션(Segmentation) 모델을 개발했습니다.
일반적인 세그멘테이션은 모델에 데이터가 들어오면 데이터 속 어떤 물체가 차지하는 영역을 정확하게 그려내는 것을 말합니다.
보이스루가 집중하고 있는 웹툰의 경우에는 텍스트 영역과 그 외 영역으로 구분하는 문제가 되겠죠.
보이스루의 세그멘테이션 모델은 웹툰에 존재하는 모든 텍스트를 찾아내는 일을 목적으로 하기에,
저희는 ‘텍스트 세그멘테이션(Text Segmentation)’라고 이름 붙였습니다.
클러스터링
클러스터링을 수행한 결과, 여러 박스가 묶여있을 때 모델이 이를 하나의 문장으로 판단하고 박스를 순서대로 정렬하고 이어 붙입니다.
웹툰 내 효과음은 다른 박스(말풍선 문장)와 떨어져 있을 확률이 높으므로 단어 단위로 그대로 남아있게 됩니다.
보이스루 R&D팀은 이렇게 텍스트 세그멘테이션과 OCR 모델을 이용해 일차적인 전사 작업을 완전히 자동화할 수 있게 되었습니다.
검수자는 이 결과물을 확인하고 약간의 수정만 해주면 되는 형태로 작업 과정이 간소화된 것이죠.
Image Inpainting
전사(transcribe) 작업은 텍스트 세그멘테이션과 OCR의 조합으로 문제를 개선할 수 있었습니다. 이번엔 식자 작업 차례입니다.
식자 작업은 3개의 과정으로 정리할 수 있는데요.
‘1) 전사 작업과 마찬가지로 모든 텍스트를 찾아 2) 이를 지우고 3) 번역된 텍스트를 자연스럽게 올린다’로 정의할 수 있습니다.
이중 가장 먼저 모든 텍스트를 지우는 문제를 해결하기로 했습니다.
어떻게 해야 웹툰 내 모든 텍스트를 지우고 자연스럽게 그림만 남길 수 있을까요?
< 출처: 『Resolution-robust Large Mask Inpainting with Fourier Convolutions』 >
위 자료를 볼까요? 두 장의 사진 모두 딥러닝 모델을 이용해 놀라운 결과를 만들었는데요.
이 경우, ‘Image Inpainting(이미지 인페인팅)’이라는 기술이 사용되었습니다.
이미지 인페인팅은 원본 이미지의 이곳저곳이 지워졌을 때 또는 원본에서 일부 지우고 싶은 부분이 있을 때,
가능한 자연스러운 형태로 새로운 이미지를 만들어내는 작업을 의미합니다.
웹툰의 경우, 원본에서 텍스트가 지워지고 배경만 남는다고 생각할 수 있습니다.
인식한 텍스트 영역과 원본 웹툰을 인페인팅 모델에 넘겨주면 인페인팅 모델은 텍스트가 있던 영역을 잘 채워서 마치 배경만 있는 상태와 같은 결과물을 생성합니다.
하지만 보이스루 R&D 팀에서 단순히 세그멘테이션의 결과물을 바로 사용했을 때 만족할 만한 결과가 나오지 않았습니다.
세그멘테이션은 웹툰의 텍스트를 가능한 타이트하게 잡는 것을 목표로 하는데, 이렇게 텍스트를 타이트하게 잡는 과정에서
픽셀 단위로 조금씩 누락된 부분들이 발생했습니다.
이렇게 되면 인페인팅 모델이 극소량의 텍스트 픽셀도 정보로 인식해, 텍스트를 지워버리기 때문에 잉크가 번진 것 같은 결과가 나오는 등
자연스럽지 못한 경우가 발생합니다.
이를 해결하기 위해서 간단한 후처리를 적용했습니다. 주변의 픽셀이 조금 누락되는 것이 문제였으므로
세그멘테이션의 결과를 픽셀 단위로 조금씩 확장시켜 주었는데요. 이런 단순한 방식만으로도 결과를 개선할 수 있었습니다.
이렇게 후처리한 세그멘테이션 결과물을 이용해 인페인팅 모델이 원본의 텍스트를 지워내면,
이제 식자 작업자는 원본을 잘 올리는 문제에만 집중할 수 있게 되며 전체 작업 시간 역시 줄어들게 됩니다.
마치며
전사 작업과 식자 작업을 개선하기 위해서 저희는 텍스트 세그멘테이션, OCR, 이미지 인페인팅 모델을 개발했습니다.
하지만 아직 개선할 수 있는 작업이 많이 남아있습니다. 번역된 텍스트를 어떻게 해야 자연스럽게 입힐 수 있을까요?
또 웹툰, 웹소설이나 유튜브와 같은 콘텐츠를 번역하는 작업은 어떻게 해야 개선할 수 있을까요?
저희 팀에서는 딥러닝 기술을 이용해 다양한 문제를 함께 해결할 분들을 찾고 있습니다. 많은 관심 부탁드립니다.
앞으로 전해질 더 많은 이야기를 기대해 주세요.
안녕하세요. 보이스루입니다.
“Connected Every Culture” 글로벌 번역 시장을 새롭게 정의 내리고 있는 보이스루 테크 그룹의 이야기를 전하는 Tech Blog입니다.
들어가며
안녕하세요. 보이스루 R&D 팀의 강병규입니다.
컴퓨터는 인간과 다르게 이미지와 글자를 정확하게 구분해 인식하지 않습니다. 단지 비슷한 색의 픽셀이 연속으로 이어져 있다는 것 정도를 감지할 뿐인데요.
이러한 특성 때문에 컴퓨터가 아날로그 문서를 인식하는 과정에서 음영의 손상, 왜곡 등이 발생하며 그 결과 텍스트 인식률이 아주 낮아지기도 합니다.
1편에서 보이스루는 많은 양의 웹툰 번역을 진행하고 있다고 알려드렸는데요. 보이스루 R&D 팀의 딥러닝 개발 이야기.
지난 1편에 이어 두 번째 스토리 ‘OCR과 인페인팅’을 소개합니다.
OCR
앞서 말씀드렸던 전사(transcribe) 작업은 ‘1) 모든 텍스트를 찾고, 2) 번역을 위해 텍스트를 정확하게 옮긴다’로 정리할 수 있습니다.
보이스루 R&D 팀은 텍스트 세그멘테이션 모델로 1번 문제를 해결했지만, 세그멘테이션 모델의 인식 정확성은 완벽하다고 볼 수 없는데요.
그래서 결국 사람이 직접 옮겨 쓰는 작업에 대한 고민이 남았습니다. 이 문제를 보완하기 위해 R&D 팀은 추가로 OCR 모델을 개발했습니다.
OCR의 개념을 먼저 설명하겠습니다. OCR은 Optical Character Recognition의 줄임말입니다. 이미지 내 글자를 자동으로 인식하는 인공지능 기술을 의미하죠.
예를 들어, 카메라를 통해 자동차 번호를 인식한다거나, 신분증에서 개인 정보에 해당하는 텍스트를 인식하는 등의 기술입니다.
최근 OCR은 딥러닝으로 인해 큰 발전이 있었습니다.
< 출처: https://arxiv.org/pdf/1707.08831.pdf >
딥러닝 기반의 OCR은 이미지 속 문자를 읽는 1)문자 영역 검출(Text detection)과 2)검출된 영역의 문자를 인식하는 Text Recognition으로 구분할 수 있습니다.
보이스루 R&D 팀의 OCR 모델 역시 이와 다르지 않습니다. 검출 단계는 지난 글에서 다룬 텍스트 세그멘테이션을 이용해 처리합니다.
하지만 이렇게 찾은 텍스트들은 단순한 흑백 이미지 형태이기 때문에 기계가 인식하는 데 어려움을 겪을 수 있습니다.
따라서 텍스트 영역을 박스(bounding box)로 감싸줍니다. 이후 이 박스를 이미지에서 잘라내 인식 모델에 넣으면 OCR 모델이
이 박스 안에 어떤 텍스트가 있는지 인식합니다.
저희가 개발한 OCR 모델은 기본적으로 단어 단위로 작동합니다. 단어 단위로 박스를 만들고 텍스트를 인식하는 것이죠.
말풍선 안에 아무리 긴 문장이 들어있어도 단어 단위로 쪼개진 결과를 얻게 됩니다.
하지만 전사자나 번역가는 이렇게 문장이 잘게 쪼개져 있으면 작업하는 데 큰 불편함을 느낄 수 있습니다.
따라서 말풍선처럼 문장 단위로 처리해야 하는 부분과 웹툰 내 효과음과 같이 단어 단위로 처리해도 괜찮은 부분을 구분해야만 하는 문제를 발견했습니다.
Text Segmentation
전사와 식자 작업을 잘 나눠 생각해보면 가장 중요한 건, 결국 텍스트가 정확히 어디에 있는지를 잘 알아내는 것입니다.
전사 작업에서는 텍스트가 정확히 어디 있는지 알아야 그 텍스트를 정확하게 옮겨 쓸 수 있을 것이고,
마찬가지로 식자 작업에서도 텍스트가 어딨는지 알아야 이를 지우고 그 자리에 번역된 텍스트를 깨끗하게 올릴 수 있을 테니까요.
이를 위해서 저희 R&D 팀은 세그멘테이션(Segmentation) 모델을 개발했습니다.
일반적인 세그멘테이션은 모델에 데이터가 들어오면 데이터 속 어떤 물체가 차지하는 영역을 정확하게 그려내는 것을 말합니다.
보이스루가 집중하고 있는 웹툰의 경우에는 텍스트 영역과 그 외 영역으로 구분하는 문제가 되겠죠.
보이스루의 세그멘테이션 모델은 웹툰에 존재하는 모든 텍스트를 찾아내는 일을 목적으로 하기에,
저희는 ‘텍스트 세그멘테이션(Text Segmentation)’라고 이름 붙였습니다.
클러스터링
클러스터링을 수행한 결과, 여러 박스가 묶여있을 때 모델이 이를 하나의 문장으로 판단하고 박스를 순서대로 정렬하고 이어 붙입니다.
웹툰 내 효과음은 다른 박스(말풍선 문장)와 떨어져 있을 확률이 높으므로 단어 단위로 그대로 남아있게 됩니다.
보이스루 R&D팀은 이렇게 텍스트 세그멘테이션과 OCR 모델을 이용해 일차적인 전사 작업을 완전히 자동화할 수 있게 되었습니다.
검수자는 이 결과물을 확인하고 약간의 수정만 해주면 되는 형태로 작업 과정이 간소화된 것이죠.
Image Inpainting
전사(transcribe) 작업은 텍스트 세그멘테이션과 OCR의 조합으로 문제를 개선할 수 있었습니다. 이번엔 식자 작업 차례입니다.
식자 작업은 3개의 과정으로 정리할 수 있는데요.
‘1) 전사 작업과 마찬가지로 모든 텍스트를 찾아 2) 이를 지우고 3) 번역된 텍스트를 자연스럽게 올린다’로 정의할 수 있습니다.
이중 가장 먼저 모든 텍스트를 지우는 문제를 해결하기로 했습니다.
어떻게 해야 웹툰 내 모든 텍스트를 지우고 자연스럽게 그림만 남길 수 있을까요?
< 출처: 『Resolution-robust Large Mask Inpainting with Fourier Convolutions』 >
위 자료를 볼까요? 두 장의 사진 모두 딥러닝 모델을 이용해 놀라운 결과를 만들었는데요.
이 경우, ‘Image Inpainting(이미지 인페인팅)’이라는 기술이 사용되었습니다.
이미지 인페인팅은 원본 이미지의 이곳저곳이 지워졌을 때 또는 원본에서 일부 지우고 싶은 부분이 있을 때,
가능한 자연스러운 형태로 새로운 이미지를 만들어내는 작업을 의미합니다.
웹툰의 경우, 원본에서 텍스트가 지워지고 배경만 남는다고 생각할 수 있습니다.
인식한 텍스트 영역과 원본 웹툰을 인페인팅 모델에 넘겨주면 인페인팅 모델은 텍스트가 있던 영역을 잘 채워서 마치 배경만 있는 상태와 같은 결과물을 생성합니다.
하지만 보이스루 R&D 팀에서 단순히 세그멘테이션의 결과물을 바로 사용했을 때 만족할 만한 결과가 나오지 않았습니다.
세그멘테이션은 웹툰의 텍스트를 가능한 타이트하게 잡는 것을 목표로 하는데, 이렇게 텍스트를 타이트하게 잡는 과정에서
픽셀 단위로 조금씩 누락된 부분들이 발생했습니다.
이렇게 되면 인페인팅 모델이 극소량의 텍스트 픽셀도 정보로 인식해, 텍스트를 지워버리기 때문에 잉크가 번진 것 같은 결과가 나오는 등
자연스럽지 못한 경우가 발생합니다.
이를 해결하기 위해서 간단한 후처리를 적용했습니다. 주변의 픽셀이 조금 누락되는 것이 문제였으므로
세그멘테이션의 결과를 픽셀 단위로 조금씩 확장시켜 주었는데요. 이런 단순한 방식만으로도 결과를 개선할 수 있었습니다.
이렇게 후처리한 세그멘테이션 결과물을 이용해 인페인팅 모델이 원본의 텍스트를 지워내면,
이제 식자 작업자는 원본을 잘 올리는 문제에만 집중할 수 있게 되며 전체 작업 시간 역시 줄어들게 됩니다.
마치며
전사 작업과 식자 작업을 개선하기 위해서 저희는 텍스트 세그멘테이션, OCR, 이미지 인페인팅 모델을 개발했습니다.
하지만 아직 개선할 수 있는 작업이 많이 남아있습니다. 번역된 텍스트를 어떻게 해야 자연스럽게 입힐 수 있을까요?
또 웹툰, 웹소설이나 유튜브와 같은 콘텐츠를 번역하는 작업은 어떻게 해야 개선할 수 있을까요?
저희 팀에서는 딥러닝 기술을 이용해 다양한 문제를 함께 해결할 분들을 찾고 있습니다. 많은 관심 부탁드립니다.
앞으로 전해질 더 많은 이야기를 기대해 주세요.