포토샵 & 라이트룸 슈퍼 해상도로 사진 화질 높이기
슈퍼 해상도로 향상된 파노라마
1,000만 화소 사진을 4,000만 화소로 바꾸는 것, 저해상도 카메라로 촬영했던 옛날 사진을 대형 인쇄물로 만들기, 그리고 피사체를 확대하는 고급 ‘디지털 줌’ 기능 모두 슈퍼 해상도 기능을 통해 가능합니다. 슈퍼 해상도의 기능과 작동 원리 및 활용법에 관해 아래에서 확인해 보세요.
슈퍼 해상도는 현재 카메라 로우 13.2에서 제공되며, 어도비 포토샵(Adobe Photoshop)과 어도비 라이트룸(Adobe Lightroom), 어도비 라이트룸 클래식(Adobe Lightroom Classic)에서도 활용 가능합니다.
슈퍼 해상도
슈퍼 해상도란 사진의 해상도를 높여 사진의 품질을 향상시키는 과정을 의미합니다. 사진을 확대하면 디테일이 흐려지는 경우가 많은데요, 슈퍼 해상도 기능은 수백만 장의 사진으로 학습된 향상된 머신 러닝 모델을 활용합니다. 방대한 학습량 덕분에 사진을 지능적으로 확대하여 선명한 화질과 중요한 디테일을 유지해 주죠.
쌍입방 리샘플링(Bicubic resampling) 사용 예시
슈퍼 해상도
머신 러닝 자체는 매우 복잡하지만 머신 러닝을 기반으로 구축된 슈퍼 해상도 기능은 사용 방법이 매우 간단합니다. 버튼을 누르기만 하면 1,000만 화소 사진이 4,000만 화소로 변신합니다. 마치 마리오가 버섯을 먹고 슈퍼 마리오가 되는 것과 비슷하지만, 멋진 사운드 효과가 없을 뿐이죠.
사진 화질 높이기
“아직도 더 높은 화소 같은 이야기를 꺼내야 하나요?”, “최신 카메라의 화소는 이미 상당히 높지 않나요?”와 같은 생각을 하고 계실 겁니다. 예전에는 600만 화소면 충분하다고 생각했습니다. 하지만 그다음엔 1,200만, 현재는 2,400만이 표준 화소가 되었습니다. 심지어는 4,000만~1억 화소 카메라도 있습니다. 이렇게 다양한 화소가 존재하는데 왜 더 높은 화소가 필요할까요?
간단하게 말하면, 보통은 필요 없지만 상황에 따라서는 정말로 필요한 경우가 있습니다.
안전한 거리에서 곰을 촬영하고 사진을 자르자 400만 화소밖에 되지 않았습니다. 해상도를 높여야 하는 좋은 사례 중 하나죠.
좀 더 자세히 설명해 보겠습니다.
일단, 모든 카메라의 해상도가 높은 것은 아닙니다. 휴대폰의 화소는 보통 1,200만입니다. 많은 카메라의 화소는 여전히 1,600만~2,400만입니다. 온라인에 게시하거나 친구에게 보내는 용도 등의 많은 경우에 이 정도면 충분합니다. 그러나 벽에 부착할 대형 인쇄물을 만들고 싶은 경우, 해상도를 높이면 선명한 화질과 디테일을 그대로 유지할 수 있습니다.
엄청난 화소의 최신 카메라가 있다고 한들, 카탈로그에 실려 있는 저해상도 카메라로 촬영한 사진은 어떻게 하실 건가요? 아래 사진은 15년 전에 ‘불과’ 800만 화소의 카메라로 촬영되었습니다.
슈퍼 해상도를 사용해, 텍스처가 살아 있고, 바위가 자연스럽게 보이며, 배경의 나무도 선명하게 보이도록 했죠. 간단히 말해서, 슈퍼 해상도로 옛날 사진에 새로운 생명을 불어넣을 수 있습니다.
촘촘하게 자른 사진으로 작업할 때도 해상도를 높이면 도움이 됩니다. 원하는 것보다 훨씬 더 멀리서 촬영하는 바람에 피사체가 아주 작게 촬영된 경험이 있었나요?
흰 매가 머리 위로 날아가는 순간, 재빨리 사진 몇 장을 촬영했습니다. 하지만 눈 깜짝할 사이에 지나가는 찰나의 순간을 카메라로 제대로 포착하기는 어려웠죠. 이렇게 해서 촬영된 사진 파일은 250만 화소에 불과합니다.
슈퍼 해상도가 활용해 적당한 크기의 인쇄물 제작이 가능한 1,000만 화소의 사진을 얻게 되었습니다. 이러한 방식으로 사용되는 슈퍼 해상도는 고급 디지털 줌 기능과 같습니다.
이토록 놀라운 슈퍼 해상도는 어떻게 작동하는 걸까요?
슈퍼 해상도 개발
슈퍼 해상도의 핵심 기술을 개발한 사람은 어도비 리서치의 미카엘 가르비와 리차드 장이었습니다.
처음 이들의 계획은 많은 예시 사진을 이용해 컴퓨터를 트레이닝하는 것이었죠. 특히, 컴퓨터가 저해상도 이미지의 크기를 조정하는 방법을 알아낼 수 있도록 저해상도와 고해상도 이미지 패치 수백만 쌍을 사용했습니다. 다음이 그 예시입니다.
실제 사진의 일부분을 128x128픽셀로 잘라낸 이미지입니다. 꽃과 직물, 나무와 가지, 벽돌과 지붕 타일 등이 있습니다. 모델은 여러 주제의 예시 이미지를 활용하여, 자연스럽고 디테일한 방식으로 실제 사진을 업샘플링하는 방법을 학습합니다.
컴퓨터에게 작업 수행 방법을 가르치는 것은 복잡해 보일 수 있지만, 어떤 면에서는 아이를 가르치는 것과 비슷합니다. 몇 가지 구조와 충분한 예시를 제공하면 머지않아 스스로 학습이 가능하죠. 슈퍼 해상도의 기본 구조는 ‘심층 합성곱 신경망(deep convolutional neural network)’으로, 특정 픽셀이 주변에 있는 픽셀에 따라 변한다는 것을 의미합니다. 다시 말해, 주어진 픽셀을 업샘플링하는 방법을 알기 위해서 컴퓨터는 주변 픽셀을 분석한 컨텍스트가 필요하다는 뜻입니다. 이는 사람이 어떤 문장에서 단어가 어떻게 쓰이는지 보면 해당 단어의 의미 파악에 도움이 되는 것과 매우 유사합니다.
머신 러닝 모델을 트레이닝하는 것은 컴퓨팅 집약적 프로세스로 짧게는 며칠, 길게는 몇 주도 걸릴 수 있습니다. 다음은 어떤 장면의 후지필름 X-트랜스(Fujifilm X-Trans) 로우 패턴부터 시작하여 진행 상황을 시각적으로 보여줍니다.
트레이닝 쌍의 예시: X-트랜스 입력 패치(좌)와 확대된 RGB 컬러 출력 패치(우). 모델은 둘 사이의 대응 관계를 학습하려고 시도합니다. 오른쪽에 있는 이미지를 “참조” 또는 “지상 실측 정보” 이미지라고 합니다.
처음(왼쪽 상단)에서 끝(오른쪽 하단)까지 트레이닝 진행 상황에 대한 6개 스냅샷
초기 결과(왼쪽 상단과 중앙 상단)가 좋지 않은 것을 볼 수 있습니다. 이는 트레이닝 초기에 발생하는 문제입니다. 아이가 첫날에 걷는 법을 배우지 않는 것처럼, 머신 러닝 모델도 깔끔하게 디모자이크하고 크기를 조정하는 방법을 바로 알아내지는 못합니다. 그러나 트레이닝이 거듭될수록 모델도 빠르게 개선됩니다. 최종 결과(오른쪽 하단)는 참조 이미지와 매우 유사합니다.
상당히 유사한 지상 실측 정보 이미지(왼쪽)와 완벽하게 트레이닝된 모델(오른쪽). 꽤 비슷하지 않나요?
슈퍼 해상도 트레이닝 방법에는 몇 가지 고유 요소가 있습니다. 첫 번째로 베이어(Bayer) 파일과 X-트랜스(X-Trans) 로우 파일의 경우, 로우 데이터에서 직접 트레이닝하여 완벽한 품질의 사진을 얻을 수 있습니다. 두 번째로 텍스처가 많고 디테일이 작아서 크기 조정 후 아티팩트가 생기는 경우가 많은 이미지 영역에 트레이닝 훈련을 집중했습니다. 마지막으로 CoreML 및 Windows ML과 같은 최신 플랫폼 기술을 최대한 활용하기 위해 머신 러닝 모델을 구축했습니다. 이러한 기술을 사용하면 최신 GPU에서 모델을 최고 속도로 실행할 수 있습니다.
슈퍼 해상도 사용법
슈퍼 해상도의 사용법은 간단합니다. 사진을 카메라 로우(Camera Raw)에서 연 상태로 마우스 오른쪽 버튼으로 클릭하고 (또는 일반적으로 클릭하는 동안 Control 키를 누른 상태에서) 컨텍스트 메뉴에서 “향상”을 선택하면 됩니다. 향상 미리 보기 대화 상자에서 슈퍼 해상도 상자를 선택하고 향상을 클릭합니다.
컴퓨터는 신중하게 많은 숫자를 계산한 다음, 향상된 사진이 포함된 디지털 네거티브(DNG) 형식의 새로운 로우 파일을 생성합니다. 소스 사진에 대한 모든 조정은 자동으로 향상된 DNG에 적용됩니다. 원하는 조정 또는 사전 설정을 적용하여 다른 사진과 마찬가지로 향상된 DNG를 편집할 수 있습니다. 편집 시에는 선명하게 하기, 노이즈 감소 및 텍스처 설정을 다시 살펴보는 것이 좋습니다. 이러한 모든 요소들이 디테일에 영향을 미치므로 향상된 사진에서 최상의 결과를 얻으려면 미세한 조정이 필요합니다.
슈퍼 해상도는 사진의 선형 해상도를 두 배로 향상시킵니다. 즉, 너비와 높이가 원본 사진의 두 배가 되거나 총 화소 수가 네 배가 됩니다. 예를 들어, 다음 1,600만 원본 사진에 슈퍼 해상도를 적용하면 6,400만 화소의 DNG가 됩니다.
현재 이미지 전체는 5억 화소, 가로는 65,000 화소로 제한되어 있습니다. 이와 같은 파일에 슈퍼 해상도를 적용하면 파일이 너무 커져 오류 메시지가 표시됩니다. 어도비는 이러한 제한을 높일 수 있는 방법을 찾고 있습니다. 하지만 5억 화소의 파일은 정말 큰 크기이기 때문에 너무 걱정할 필요는 없습니다.
베이어 또는 X-트랜스 로우 파일에 슈퍼 해상도를 적용하면, 디테일 향상 기능도 자동으로 적용됩니다. 이러한 단계를 거치면 품질이 향상되고 더 나은 결과를 얻을 수 있습니다.
슈퍼 해상도는 JPEG, PNG 및 TIFF와 같은 다른 파일 형식에도 적용 가능합니다. 다음은 로우 형식으로 타임랩스 시퀀스를 캡처한 다음 Photoshop에서 합성하여 TIFF 파일을 생성한 예입니다. 그런 다음 합성한 파일에 슈퍼 해상도를 적용했습니다.
향상 기능을 사용하면서 워크플로우 속도를 높이고 싶다면, 먼저 필름 스트립에서 원하는 이미지를 선택한 다음, 향상 명령을 실행하여 한 번에 여러 이미지에 향상을 적용할 수 있습니다. 대화 상자에는 기본 사진의 미리 보기만 표시되지만 선택한 향상 옵션은 선택한 모든 사진에 적용됩니다. 향상 메뉴 명령을 선택하기 전에 (macOS의 경우) Option 또는 (Windows의 경우) Alt 키를 눌러 대화 상자를 완전히 건너뛸 수도 있습니다. 이 ‘헤드리스’ 옵션을 사용하면 이전의 향상 설정이 적용됩니다.
결과 비교
결과를 자세히 살펴보겠습니다. dpreview.com에서 이용 가능한 스튜디오 테스트 장면부터 시작합니다.
이는 당연히 실제 사진은 아니지만, 기존의 크기 조정 방법과 비교했을 때 슈퍼 해상도가 갖는 장점을 이해하는 데 좋습니다. 다음 사진은 해당 테스트 장면의 다양한 부분을 잘라 확대한 것입니다. 왼쪽 이미지는 표준 쌍입방 크기 조정을, 오른쪽 이미지는 슈퍼 해상도를 사용했습니다. 잘 보존된 작은 디테일과 색상을 확인해 보세요.
이제 풍경 이미지부터 시작해 몇 가지 실제 사례를 살펴보겠습니다.
이 이미지는 아래의 큰 이미지에서 잘라낸 일부분입니다.
왼쪽 이미지는 쌍입방 리샘플링, 오른쪽 이미지는 슈퍼 해상도를 적용하고 가지와 잎사귀 부분을 확대한 것입니다.
다음은 슈퍼 해상도가 적용된 사진입니다.
먼 거리에서 연어를 낚는 불곰을 촬영했습니다. 왼쪽 이미지는 쌍입방 리샘플링, 오른쪽 이미지는 슈퍼 해상도를 적용하고 사진의 일부분을 클로즈업한 것입니다.
슈퍼 해상도 활용 팁
가능하면 로우 파일을 사용하세요. 가능한 가장 깨끗한 원본 사진으로 시작하세요. 압축률이 높은 JPEG 또는 HEIC 파일에서 자주 발생하는 것처럼 원본 사진에 아티팩트가 있는 경우, 슈퍼 해상도를 적용하면 이러한 아티팩트가 더 눈에 띌 수 있습니다.
GPU 속도가 빠를수록 결과를 더 빨리 얻을 수 있습니다. 디테일 향상과 슈퍼 해상도는 모두 수백만 건의 계산을 수행하므로 GPU가 빠르면 좋습니다. 노트북을 가지고 있다면, 외부 GPU(eGPU)의 유무가 큰 차이를 가져올 수 있습니다. 단일 이미지 처리 시간이 몇 분에서 몇 초로 줄어들 것입니다.
새 컴퓨터 또는 GPU 구입을 고려 중이라면, CoreML 및 Windows ML 머신 러닝 기술에 최적화된 GPU 모델을 찾아보세요. 예를 들어, Apple M1 칩의 Neural Engine은 CoreML 성능에 맞게 고도로 조정되어 있습니다. 마찬가지로 NVIDIA의 RTX 시리즈 TensorCore의 GPU는 Windows ML을 매우 효율적으로 실행합니다. GPU 환경은 빠르게 변화하고 있으며 머지않아 성능이 크게 향상될 것으로 기대됩니다.
슈퍼 해상도로 디스크에서 읽는 데 시간이 더 오래 걸리는 매우 큰 파일을 생성할 수 있습니다. 솔리드 스테이트 드라이브(Solid-State Drive, SSD) 같은 빠른 드라이브를 사용하는 것이 좋습니다.
마지막으로 모든 사진에 슈퍼 해상도가 필요한 것은 아닙니다. 사진이 활용되는 목적에 따라 사용하시면 됩니다.
전체적으로 흐림 효과가 적용된 이 사진은 디테일이 없으며 큰 인쇄물을 만들 때도 슈퍼 해상도가 필요하지 않습니다.