heron

서론

목표: 실시간 영상을 사람이 듣고 이해할 수 있는 구조의 소리로 변환시키는 것.

방법: 스마트폰을 목이나 가슴께에 걸어서, 후면카메라의 영상을 소리로 변환.

본론

프로젝트 개요

  1. 영상을 흑백으로 전환하고, 640x480의 10fps의 영상으로 축소한다.
  2. 640x480의 영상을 26개의 동심원과 90개의 직선으로 나누어(각각의 원을 180등분) 4680개의 영역을 만든다.
    (이때 이 영역은 화면의 중앙으로 갈 수록 더 조밀하며, 화면의 외곽으로 갈수록 더 크다. 즉, 우리 눈이 세상을 보는 것을 모방했다는 것이다.)
  3. 각 영역의 모든 픽셀의 밝기 평균값을 새로운 픽셀로 하여, 다른 영상으로 변환시킨다.
  4. 영상의 각 픽셀 밝기인 0~255의 스케일을, 0~90Hz 범위에 대응시킨다.
    (180등분된 원이므로, 총 16200Hz 가 필요하다. 가청영역 내부에, 각 위치별로 고정된 음역대를 제공하기 위함.)
  5. 대응된 소리를 재생한다.

작업 결과

180x26 크기의 영상으로 변환

C++로 작성했던 코드를 JS로 포팅하였다. OpenCV-JS를 사용하여 코드를 이식하여 웹 기반으로, 모바일 접속을 통해 사용해야 했기 때문이었다.

위는 실시간 영상 변환을 시연하는 영상이다. (2024년 2월 25일에 성공했다.)

영상의 중앙에 손가락을 위치시키는 장면에서, 하단의 변환된 영상이 정상적임을 확인할 수 있다.



영상의 소리 변환 시도

소리로의 변환은 성공했으나, 아쉽게도 인간이 들을 수 있는 성질의 소리가 아니었다.

첫째로는 주파수의 범위가 너무 넓고, 아주 높은 고음과 저음이 포함되어 있기에, 머리 아픈 소음으로 들린다는 것이다.

하단의 시연 영상을 틀기 전에 재생장치의 소리를 줄이기를 권장한다.

위는 소리로의 변환을 시연하는 영상이다.

현재는 역 푸리에 변환을 수행하지 않고, 모든 픽셀에 대하여 별도의 소리를 재생하고 있는 중이다.

이 소리를 재생하고서, 근본적으로 소리 변환 알고리즘에 문제가 있음을 알았다.

지금은 전체 영상의 각 픽셀(180*26 = 4680픽셀)에 저마다의 고유 주파수가 주어져 있고, 각 픽셀의 밝기(1~255)에 따라서 소리의 크기가 정해진다.

역 푸리에 변환을 수행하여 얻어진 하나의 음성을 재생한다면, 지금 발생하는 연산 지연이 없어지기는 할 것이다.

하지만 분명한 것은, 인간이 이 전체 영역의 산발적인 소리 재생을 견디지 못한다는 사실이다.

완전히 어두운 환경에서는 백색소음에 가까운 소리가 나겠지만, 그런 환경에서는 이 장비도 필요가 없다.

사물이 혼잡하게 상호작용하는 현실의 일상이 소리로 변환된다면, 끔찍하기 짝이 없는 소리가 탄생하는 것이다.



새로운 convertToSound 알고리즘 구상

사람이 소리를 통하여 영상을 인식하도록 할 수 있는, 적절한 소리 변환 알고리즘을 찾아야 한다.

먼저 관련 논문이 있는지를 찾아보았다. 비슷한 시도를 한 학자가 있었지만, 내가 마주친 문제에 대한 해결책은 주지 못했다.

THE vOICe (doi: 10.1109/10.121642) 를 참고하길 바란다.

위 논문은 영상을 기계적으로 변환하여 만들어 낸 소리에 대하여, '소리가 품고 있는 시각 정보가 보존되어 있음'을 인간 뇌가 인지할 수 있다는 실험적 근거를 제시한다.

이것은 시각 대체 장비에 대한 초기 연구로 보이는데... 이 이후에 해당 논문과 동일한 방향성으로, 뇌 가소성과 에코로케이션에 집중한 시각 대체 장비를 연구한 바를 찾지 못하였다.

추측하자면, 소리에 많은 정보를 담을수록, 소음에 가까워 지고, 그것이 해석해야 할 소리로 인식되기보다는 소음으로 들리기 때문일지도 모른다.



연구 중단

그러므로 이 연구는 잠정 중단하고, 추후 뇌의 소리 인지 메커니즘에 대하여 충분히 학습하고 나서 연구를 재개하기로 결정했다.

2024년 9월 20일 기록.

최종 수정일 : 2026Y 05M 16D