최근 레트로 게임의 유혹에 이끌려 닌텐도의 슈퍼 패미컴을 구하게 되었습니다.

닌텐도 슈퍼 패미컴과 컨트롤러
슈퍼 패미컴 패미컴 컨트롤러

원더보이와 같은 액션 게임은 일본어의 장벽 없이 쉽게 즐길 수 있는 반면에 젤다의 전설과 같은 JRPG 장르는 언어의 장벽이 생각보다 큽니다. 현재는 스토리를 이해하면서 플레이해보고 싶어 자동으로 번역해 보고 싶은 욕심이 생겼습니다.

원더보이와 젤다의 전설 1
원더보이 젤다의 전설 곽팩

현재 가지고 있는 에버미디어 캡처 장비를 활용해서 슈퍼 패미컴의 화면을 스트리밍해서 PC로 가져와 봅니다. 지연시간도 생각보다 길지 않아 거의 실시간급으로 스트리밍 할 수 있습니다.

캡처 장비를 이용한 스트리트 파이터 2 스트리밍
스트리트 파이터2

하드웨어적으로 기초적인 작업은 모두 끝났습니다. 이제 소프트웨어 적으로 이 스트리밍 화면 정보와 인공지능 기술을 이용하여 글자를 인식하고 번역을 해봅니다. 주말에 집중해서 실험해 보니 약 12시간 정도 소요된 것 같습니다.

SFC 젤다의 전설1에 인공지능 적용
original recognition coding

처음에는 화면을 인식하고 번역하는데 약 15초~20초 정도 소요되었으나 코드 리팩터링을 통해 구조를 대대적으로 개선했더니 현재는 약 5초~7초 정도의 시간이 소요됩니다. 프로토타입을 고수준 언어인 파이썬으로 구현해 보았는데요. 확실히 저수준 언어인 C/C++보다는 엄청 느리네요… 파이썬으로 빠르게 핵심적인 기능만 구현해 보았는데 막연한 생각으로만 도전했지만 실험 후에는 구현 가능하다는 걸 알았습니다.

왼쪽이 원본 화면, 오른쪽이 번역화면. 급한대로 만들다보니 현재는 이 속도가 최선

다음날 파이썬으로 실험한 모든 내용을 C#.NET으로 이식 작업을 하였습니다. 이제 성능을 최대로 끌어올리기 위해 천천히 느긋하게 컨버팅해 봐야겠습니다.

실시간으로 영상(Video) 및 음성(Audio) 스트리밍 기능 추가
원본 영상 추출 후 외곽선(Canny Edge Filter) 검출 기능 추가

또한 비전 영상의 연산 속도를 측정하기 위해 FPS (Frames Per Second) 정보가 표시되도록 개선하였습니다. 또한 추가 옵션으로 ON/OFF 할 수 있도록 개선 하였습니다. 업데이트 후 확인해보니 연산 속도가 매우 느렸다는 것을 확인할 수 있었는데요. 다행히 연산 성능 최적화 후 기존보다 성능이 약 10배 이상 올라갔네요.

처리 속도 개선 전 개선 후
원본 영상 속도 60FPS 60FPS
GVT 전처리 속도 19FPS 200FPS
연산 속도를 측정하기 위한 FPS(Frames Per Second) 정보 표시 및 연산 성능 최적화

지금까지 GVT(Game Vision Translator) v0.01버전에 대해서 살펴 보았습니다. 우선은 직접 사용해 볼 만한 정도의 성능은 나오는 것 같아 일본어의 고통에서 조금은 해방될 것으로 기대합니다만 갈길이 멀었습니다^^

GVT(GameVisionTranslator)는 현재 연구개발 단계입니다. 배포 가능한 품질을 확보한 v1.0이 만들어지면 베타 테스트를 위한 신청자를 모집하여 선택적으로 배포 예정입니다. 툴 자체는 무료 배포이나 게임 번역 DB는 유/무료로 구분되어 서비스될 수 있습니다. 참고부탁드립니다.