Making Hybrid Images (2014)
하이브리드 이미지 만들기
Jeremy Kun은 Fourier transform으로 한 이미지의 저주파 성분과 다른 이미지의 고주파 성분을 추출해 하나로 합치는 방법을 설명합니다. 가까이서는 Einstein이, 멀리서는 Marilyn Monroe가 보이는 이미지처럼 관찰 거리에 따라 인식이 달라지는 결과를 Gaussian filter와 Python 코드로 만듭니다.
- 주제
에디터 노트
관찰 거리에 따라 이미지 인식이 달라지는 원리를 주파수 필터와 코드로 연결한 설명이 글의 강점입니다. 다만 결과를 좌우하는 정렬과 크기 조정은 거의 다루지 않았고, 작성자도 Einstein과 Monroe 이미지를 만들 때 이를 거의 조정하지 않았다고 밝힙니다. 따라서 예제는 필터의 작동을 보여주지만, 좋은 결과를 얻는 데 필요한 전처리와 sigma 선택 기준까지 설명하지는 않습니다. 댓글은 제공되지 않아 별도의 커뮤니티 반응은 없습니다.
AI 요약
하이브리드 이미지(Hybrid image)는 두 이미지의 주파수 성분을 나눠 한 장에 합친 결과입니다. 가까이서 보면 세부 묘사에 해당하는 고주파 성분이 눈에 띄고, 멀리서 보면 윤곽과 큰 명암 변화에 해당하는 저주파 성분이 두드러집니다. 따라서 Einstein처럼 주름과 머리카락의 세부가 많은 사진과 Marilyn Monroe처럼 부드러운 형태가 두드러지는 사진을 조합하면 관찰 거리에 따라 서로 다른 인물이 보입니다. Aude Oliva, Antonio Torralba, Philippe G. Schyns가 2006년 논문에서 제시한 기법이며, 글은 이를 da Vinci의 sfumato와 Dali의 그림에 빗대어 소개합니다.
Fourier transform으로 이미지 보기
Fourier analysis는 함수를 여러 주파수의 복소 지수 함수 성분으로 나눠 살피는 방법입니다. 글은 복소 지수 함수가 제곱적분 가능한 함수 공간의 정규직교 기저를 이룬다는 점을 직관적으로 설명하고, 각 성분의 계수 전체를 Fourier spectrum이라 부릅니다. 이미지에 적용하면 계수는 평면의 격자에 놓입니다. 원점 가까운 계수는 넓고 완만한 변화, 즉 저주파 성분과 관련이 있고, 원점에서 먼 계수는 급격한 변화와 경계선 같은 고주파 성분과 관련이 있습니다. 디지털 이미지에서는 픽셀 표본과 이에 대응하는 유한한 Fourier 계수 격자를 다룹니다.
글은 이산 Fourier transform을 효율적으로 계산하는 Fast Fourier transform(FFT)이 과학과 공학의 여러 분야에서 쓰인다고 설명합니다. 다만 Fourier analysis에 관한 설명은 직관을 위한 요약이라 엄밀한 수학적 전개는 생략합니다. 샘플링과 Nyquist frequency도 필터 전환을 다루는 데 필요하지만 이 글의 범위에서는 자세히 다루지 않습니다.
Gaussian filter 적용
저주파 성분을 남기는 low-pass filter는 Fourier spectrum에 Gaussian 함수값을 좌표별로 곱합니다. Gaussian 함수는 중심에서 값이 1이고 멀어질수록 0에 가까워지며, sigma가 감소 속도를 조절합니다. 고주파 성분을 남기는 high-pass filter는 같은 Gaussian 값을 1에서 뺀 값을 곱합니다. 이렇게 spectrum을 바꾼 뒤 역 Fourier transform을 적용하면 필터링된 이미지가 나옵니다. 저주파 필터를 적용한 결과는 이미지가 흐려지는 Gaussian blur와 같은 방식으로 설명합니다.
Python 예제는 NumPy의 fft2와 ifft2로 변환을 수행하고, fftshift와 ifftshift로 저주파 중심을 옮긴 뒤 filter matrix와 spectrum을 원소별로 곱합니다. makeGaussianFilter 함수는 이미지 크기와 sigma를 받아 Gaussian 값을 행렬로 만듭니다. lowPass와 highPass 함수는 각각 Gaussian과 그 여집합을 사용합니다. 역변환 결과에는 복소수가 포함될 수 있어 예제는 실수부를 저장합니다.
두 이미지를 합치기
hybridImage 함수는 한 이미지에 high-pass filter를 적용하고 다른 이미지에 low-pass filter를 적용한 뒤 두 결과를 더합니다. 어떤 이미지가 가까이서 보일지는 고주파 이미지가, 멀리서 보일지는 저주파 이미지가 주로 결정합니다. 글은 Monroe 사진의 저주파 성분과 Einstein 사진의 고주파 성분을 합쳐 논문에 실린 Marilyn Einstein 이미지를 재현합니다. 작성자는 두 사진의 중심 정렬과 크기 조정을 거의 하지 않았으며, sigma 값을 더 조정하면 결과를 개선할 여지가 있다고 덧붙입니다. 두 필터 결과를 같은 원본에서 얻어 평균하면 원본에 가까워진다는 예도 보여줍니다. 순서를 뒤집어도 하이브리드 이미지는 만들어지지만 결과가 덜 보기 좋았다고 설명합니다.
다음 적용 방향
글은 기법을 영상으로 확장하는 방법을 질문합니다. 프레임마다 같은 처리를 적용하거나 영상에 3차원 transform을 적용하는 방안을 언급하지만, 특별한 결과가 나올지는 확신하지 않습니다. 다른 transform의 spectrum을 조작하는 방법과 1차원 신호인 음악에 적용하는 방법도 후속 탐구 주제로 제시합니다.
원문: Jeremy Kun / 번역·요약: Trawling