카이로 게니자(Cairo Geniza)는 유대교 사본들의 모음집으로, 서기 950년에서 1250년 사이의 역사를 엿볼 수 있는 독특한 창을 제공합니다. 그러나 안타깝게도 이 사본들은 전 세계 박물관과 도서관에 흩어져 있으며, 연구자들은 이제 컴퓨터를 활용해 흩어진 조각들을 다시 하나로 모으려 하고 있습니다.
전 세계에 흩어진 카이로 게니자
1800년경 발견된 이 사본 조각들은 이집트 카이로의 한 회당 게니자(보관실)에서 나온 것으로, 현재 전 세계 곳곳에 흩어져 있습니다. 게니자에서는 시간이 지나면 문서를 태워버리는 것이 관례이기 때문에, 남아 있는 사본들은 더욱 특별한 가치를 지닙니다. 카이로 게니라 불리는 이 컬렉션은 중세 유대 사회의 일상과 역사를 생생하게 보여주는 귀중한 자료입니다.
그러나 과학자들이 문서를 연구하기란 쉽지 않습니다. 사본들이 여러 도서관에 나뉘어 보관되어 있기 때문입니다. 약 28만 점의 조각 가운데 약 19만 3천 점이라는 가장 큰 컬렉션이 영국 케임브리지에 있지만, 미국 뉴욕과 영국 맨체스터에도 상당한 규모의 컬렉션이 있습니다. 다행히 점점 더 많은 조각들이 디지털화되고 있습니다. 그런데 여기서 새로운 문제가 생깁니다. 어떤 조각들이 서로 맞물려 하나의 사본을 이루는가 하는 것입니다.
컴퓨터로 '조인' 찾기
이스라엘 텔아비브 대학교 연구진과 프리드버그 게니자 프로젝트(Friedberg Genizah Project)는 조인(join), 즉 같은 문서에서 나온 조각들의 집합을 판별하는 시스템을 개발했습니다. 이들은 이미지 처리 기술을 활용해 스캔된 페이지들을 분석하고, 그 결과를 바탕으로 두 조각이 한 세트인지 여부를 판단합니다.
분석을 어렵게 만드는 요인 중 하나는 스캔 당시 자동 분석을 염두에 두지 않았다는 점입니다. 배경이 항상 동일하지 않고, 조각이 반듯하게 놓여 있지 않으며, 때로는 자(ruler)가 사진 속에 함께 들어오기도 합니다. 따라서 측정에 앞서 사진을 먼저 편집해야 합니다. 시스템은 먼저 사진 속에서 조각을 선택하고, 기울기를 바로잡은 뒤 흑백 이미지로 변환하여 컴퓨터가 빠르게 처리할 수 있도록 준비합니다.
직선은 어디에 있는가? — 호프 변환
분석 과정의 핵심 단계 중 하나는 선의 방향을 파악하는 것입니다. 글자가 반듯한지, 살짝 기울어져 있다면 몇 도나 기울었는지 확인해야 합니다. 이를 위해 시스템은 이미지 속 직선을 검출하는 데 널리 쓰이는 기법인 호프 변환(Hough transform)을 사용합니다.
호프 변환을 만들려면 먼저 각 픽셀이 놓일 수 있는 직선 후보들을 구해야 합니다. 가능한 직선은 공식 x·cos(t) + y·sin(t) = R로 표현할 수 있는데, 여기서 R은 원점에서 해당 직선까지의 수선(법선)의 길이, t는 법선과 x축 사이의 각도입니다. 이를 바탕으로 이미지의 모든 픽셀에 대해 R/t 조합 목록을 만들 수 있으며, 각 조합은 그 점이 놓일 수 있는 특정 직선을 의미합니다. 이 목록을 그래프로 그리면(t를 x축에, R을 y축에 배치) 픽셀마다 일련의 점들이 만들어지고, 이 점들을 이으면 선이 됩니다. 이미지의 모든 픽셀에 대해 하나씩 선이 그려진 이 그래프가 바로 호프 변환입니다.
호프 변환은 사진 속 직선들을 지도처럼 보여줍니다. 그래프에 흰색 점이 나타난다는 것은 특정 R/t 조합에 맞춰 정렬된 픽셀이 많다는 뜻입니다. 즉, 그 픽셀들이 같은 직선 위에 있다는 것이죠. 픽셀 수가 많다는 것은 사진에서도 뚜렷하게 보이는 선일 가능성이 높습니다.
글줄을 정확히 읽어내기
카이로 게니자 사진에는 실제 직선이 없지만, 한 줄에 놓인 글자들의 픽셀은 언제나 한 직선 위에 있습니다. 호프 변환을 자세히 들여다보면 −90°와 +90° 위치에 열 개의 뚜렷한 선이 보이는데, 이것이 바로 종이 위에 가로로 놓인 열 줄의 텍스트에 해당합니다.
컴퓨터는 분산(variance)이 가장 큰 t 값을 계산하여 이러한 뚜렷한 선의 위치를 찾아냅니다. 예를 들어 t = 45에서 분산이 가장 크다면, 텍스트가 45° 회전되어 있다는 뜻입니다. 이렇게 시스템은 종이 위에서 글줄이 어떻게 배열되어 있는지 판단합니다.
텍스트에서 숫자로
텍스트의 방향이 중요한 이유는, 시스템이 투영 프로파일(projection profile)을 만들어 텍스트를 분석하기 때문입니다. 이 과정에서 픽셀을 가로와 세로 방향으로 열 단위로 합산하는데(아래 이미지 참조), 텍스트의 회전을 고려하지 않고 프로파일을 만들면 결과가 정확하지 않습니다.
프로파일을 바탕으로 시스템은 줄의 개수, 줄 간격, 한 줄의 높이 같은 텍스트의 여러 특성을 측정합니다. 이것이 이 글 처음에 나온 도식의 '물리적 측정값'에 해당합니다. 필적 분석을 위해서는 이미지의 키포인트(keypoint), 즉 조각 속에서 특히 눈에 띄는 지점들도 감지합니다. 이때 SIFT 기법이 사용됩니다.
물리적 측정값과 키포인트는 결국 숫자에 불과합니다. 사본 조각은 이렇게 값들의 나열, 이른바 특징 벡터(feature vector)로 변환되며, 컴퓨터는 이미지보다 숫자를 훨씬 쉽게 다룰 수 있습니다.
기계 학습으로 유사도 판단하기
이제 원래의 목표로 돌아가 봅시다. 두 조각이 같은 문서에 속하는지 판별하는 것입니다. 이를 위해 두 조각의 특징 벡터를 비교합니다. 두 벡터가 비슷할수록 두 텍스트가 한 문서에서 나왔을 가능성이 높습니다. 글자 크기, 줄 간격, 키포인트 등이 거의 일치하기 때문입니다. 그렇다면 두 특징 벡터가 얼마나 비슷한지, 아니 정확히 말해 컴퓨터는 어떻게 알까요? 사실 이것은 '학습'의 문제입니다.
시스템에는 분류기(classifier)가 탑재되어 있습니다. 분류기는 입력 객체, 예컨대 특징 벡터를 받아 어느 그룹에 속하는지 판정하는 수학적 프로그램입니다. 즉, 사본 조각이 주어지면 분류기가 어느 문서에 속하는지 알려주는 것이죠. 이를 위해서는 프로그램이 객체를 평가하는 방법, 즉 무엇이 A그룹(문서 A)에 속하고 무엇이 속하지 않는지를 알아야 합니다. 이는 훈련 세트(training set)를 통해 학습시킵니다. 훈련 세트는 어떤 조각들이 서로 짝을 이루는지 이미 알고 있는 조각들의 모음입니다. 분류기는 이 정보를 통해 그룹을 구분하는 기준을 익힙니다. 아래 그림에서 볼 수 있듯이, 꽃잎의 크기만으로 붓꽃의 종류를 구분할 수 있는 것과 같은 원리입니다.
새로운 짝 발견
연구진은 확실히 짝이 맞는 것으로 알려진 조인들로 카이로 게니자의 훈련 세트를 구성했습니다. 이를 통해 분류기는 조인이 성립하는 경우를 판별하는 법을 익혔습니다. 이후 새로운 조각들을 짝지어 입력하자, 분류기가 그것이 조인인지 아닌지를 판정했습니다.
결과는 엇갈렸습니다. 한 기관의 컬렉션 내에서 진행한 테스트에서는 80%의 정확도를 보였습니다. 그러나 서로 다른 컬렉션에 흩어진 조각들을 대상으로 한 테스트에서는 상황이 달랐습니다. 이 시스템의 진정한 가치는 연구자들이 여기저기를 오갈 필요 없이 원격으로 조각을 맞춰볼 수 있다는 데 있는데, 이 테스트에서 시스템은 9천 개의 가능한 조인을 제안했고, 그중 상위 2천 개를 사람이 직접 검사한 결과 실제로 맞는 조인은 24%에 불과했습니다.
다소 아쉬운 결과였음에도 불구하고, 이번 연구는 약 천 개의 새로운 조인을 발견해냈습니다. 지금까지 전문가들이 찾아낸 것이 겨우 수천 개에 불과하다는 점을 고려하면 결코 작은 성과가 아닙니다. 물론 인식률이 아직 낮아 시스템이 사람의 검수 없이 단독으로 작동하기는 어렵습니다. 그러나 전문가의 작업을 보완하는 훌륭한 도구이자, 흩어진 인류의 기억을 되찾는 길 위의 확실한 한 걸음임에는 분명합니다.