사진/360 파노라마2009. 12. 23. 12:40
요즘은 너무 추워서 촬영을 못나가고 있지만, 저는 요즘 360도 구면 파노라마에 푹 빠져 살고 있습니다. 휴일때마다 나가서 촬영하고 주중에는 사진들 합성하고... 하는 게 일상이었죠.

요즘은 촬영을 못나가면서 시간이 남는 김에 포토샵 공부도 하면서 글도 정리하는 중입니다. 이 글도 그중의 하나고요.

360도 구면파노라마가 무엇인지 어떻게 촬영해야 하는지에 대한 간단한 소개는 이 글을 읽어보시기 바랍니다. 제가 제작한 구면파노라마는 360 cities 의 제 소개글을 보시기 바랍니다.

아래는 제가 제일 좋아하는 파노라마 사진중 하나로, 샌프란시스코 북쪽에 있는 나파밸리(Napa Valley)의 오퍼스원(Opus One) 와이너리입니다. 원래 나파밸리가 와인으로 유명하지만, 오퍼스원은 그중에서도 최고급 와인을 생산하며, 전세계 와인대회에서도 몇번 1등을 해서 프랑스 와인의 콧대를 꺽었다는 것으로 유명하죠.


Opus One Winery, Napa Valley, California in USA

요즘 제가 360도 구면 파노라마(Spherical Panorama)를 촬영할 때는 거의 반드시 5-9단계 자동노출브라케팅(AEB : Auto Exposure Bracketting) 촬영을 한 후, 이것을 PTGui 프로에서 Exposure Fusion 이라는 HDR(하이다이나믹 레인지)와 유사한 방식으로 처리를 하고 있습니다. 자세한 내용은 HDR 구면 파노라마 제작방법을 읽어보시면 됩니다.

그런데... 제가 이와 같은 처리방식에서 파일을 Photoshop 파일로 저장하면서, 왜 16 비트 파일로 저장하는지에 대해서 따로 말씀을 드리지 않았습니다. 아래는 HDR 구면 파노라마 제작방법에 들어 있는 PTGui 설정 그림을 다시 가져온 것인데, 맨 오른쪽에 보시면 16 bits 로 설정해 둔 것을 보실 수 있습니다. 오늘은 이에 대해서 보다 자세히 설명을 드리려고 합니다.

사용자 삽입 이미지

원래 일반적인 사진은 8bit로 저장합니다. 8비트 사진이란, R(빨강), G(녹색), B(파랑) 등 3가지 채널별로 1바이트(8 비트)로 저장합니다. 한개의 채널에 8비트를 지정하면 2*2*2*2*2*2*2*2 = 256가지 계조를 저장할 수 있고, 전체적으로는 256*256*256 = 약 1천 6백만 색상을 표현할 수 있게됩니다. 물론 대부분의 경우 사람의 눈으로는 이 정도 이상을 구분할 수 없기 때문에 이정도로 충분합니다.

반면 16비트 영상은 어떤 픽셀의 색을 RGB 각각 16비트로 저장한다는 뜻입니다. 채널당 65,536 계조를 저장할 수 있고, 총 65536*65536*65536 = 281,474,976,710,656 가지 색을 표현할 수 있게 됩니다. 표현하지 못할 색은 없겠지만, 사실 실용적으로는 이렇게 많은 색으로 표현할 필요는 거의 없습니다.

====
그런데... 의문을 표하실 분이 있으실 겁니다. 원래 사진을 촬영할 때 RAW로 저장한다면 모르겠지만(RAW는 원래 11 bits 또는 12 bits 입니다.), 저는 8 bits인 JPG 파일로 촬영하면서 합성된 결과를 16 bits로 저장하는 게 무슨 의미가 있겠느냐는 의문입니다. 일단 16 bits로 저장하면 파일 크기가 거의 2배로 늘어나고, 포토샵에서 파일을 읽어들이는데도 그만큼 시간이 걸리게 되는 단점도 생기고 말이죠.

그런데... HDR로 합성을 하게 되면, 진짜 16비트로 합성되기 때문에 16비트로 저장하는게 의미가 있습니다. 이를 확인하기 위해 실험을 해 보겠습니다. 아래는 제가 얼마전 촬영한 경희궁 숭정전 영상을 2000x1000짜리로 8비트로 저장한 후, 어두운 부분만을 선택한 것입니다. 오른쪽 위는 히스토그램입니다. 어두운 부분이기 때문에 좌측에 몰려 있는 것을 보실 수 있습니다.

사용자 삽입 이미지

이것을 Image -> Adjustments -> Levels 명령을 사용해 어두운 부분만 밝게 만들어본 모습입니다. 오른쪽 위를 보시면 히스토그램이 막대기 형상으로 듬성듬성 떨어져 있는 게 보이실 겁니다. 좁은 곳에 몰려 있는 것을 넓게 폈으니, 빈 곳이 생긴 겁니다.

사용자 삽입 이미지

그런데 아래는 동일한 영상을 16비트로 저장한 후 동일한 영역에 대해 동일한 방식으로 처리해 본 것입니다. 처리된 부분은 윗 그림과 별로 차이를 느끼지 못하시겠지만, 오른쪽 위에 있는 히스토그램을 보시면 모든 정보가 완벽히 살아있는 게 보이실 것입니다. 좁은 영역에 몰려 있는 부분을 확장시켜도, 원래 그 속에 모든 정보를 담고 있었기 때문입니다.

사용자 삽입 이미지

이처럼 HDR 방식으로 합성을 하게 되면 16비트 영상으로 생성되고, 아주 어두운 부분이나 밝은 부분도 어느정도의 정보를 담고 있기 때문에 16비트로 저장하는 것이 의미가 있습니다. 물론 윗 그림처럼 과도한 처리는 별로 좋지 않은 건 사실입니다만, 8비트로 처리할 때보다는 확실하게 유리합니다.

특히, 저는 스티칭 합성이 끝나고 난 뒤, 적당한 색감 조정을 위해 Levels, Curves, Hue/Saturation 등 여러가지 Image Adjustment를 수행하는데, 이런 경우에도 히스토그램상으로 빈곳이 없게(거의 모든 데이터가 살아있게) 됩니다.

머... 사실 저는 HDR 구면 파노라마를 제작하기 시작하면서 처음부터 16비트 영상으로 작업했기 때문에 8비트 영상으로 처리하는 것보다 얼마나 좋은 건지 잘 모르겠습니다. 뭐... 그냥 적어도 나쁠 일은 없으니깐 처리작업이 많이 들더라도 계속 16비트 영상으로 처리할 예정입니다.

마지막으로... 위 작업에 사용한 경희궁 숭정전 360*180도 구면 파노라마를 감상해 보시기 바랍니다.


Sungjeongjeon of Gyronghuigung Palace in Seoul

민, 푸른하늘

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

  1. 푸른하늘님의 작품을 그냥 평범하게 놓아두기 싫어서요...
    hdr 파노라마 코너를 추가 했습니다....ㅎ..ㅎ..
    권신오 선생님의 작품도 그렇구요...
    저도 곧 따라 갈려구요...
    니콘 D700 후속 기종이 나오기 만을 손꼽아 기다리고 있습니다...
    실탄도 준비를 해야 하는데....^^;;


    "8bits JPG 파일로 촬영을 하면서 합성된 결과를 16bits로 저장하는게 무슨 의미가 있겠느냐"
    말씀하신 위의 내용은 디지털을 좀 하시는 분들은 상식처럼 생각하고 있는 부분인데요...
    음...
    제가 알고있는 것은..
    촬영 후 이미 jpg로 압축이 되었기 때문에 정보손실이 많은 상태를 다시 16bits로 저장을 하게 되면 어차피 손실된 상태에서의 확장이라고 판단됩니다.

    하지만 말씀하신대로 8bits로 저장을 하지 않고 16bits 저장을 해서 수정했을때 유리한 것은 있지만 이미 손실되었던 정보값은 이미 살릴 수 없다는 뜻이기도 합니다.
    레벨값의 히스토그램 차이 보다도 결과물에서의 차이가 크다면 권장할만 하다고 할 수 있겠습니다.
    푸른하늘님의 지식에 대한 깊이를 따라 잡을려면 저도 공부좀 해야 겠습니다.
    역시...
    공부는 계속 해야만 한다는 것을 계속 일깨워 주시는 푸른하늘님께 감사드립니다..

    2009.12.24 11:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 손상된 뒤의 확장이 의미가 없는 건 당연한 일입니다. 그이미 손실된 후니까요. 그런데, 제 생각에 아마도 HDR 합성과정에서 여러가지 정보를 합성해서 보다 많은 정보가 생기지 않을까... 하는 생각입니다.

      그런데... 설령 그런 부분이 있다손치더라도, 윗 그림처럼 그다지 별로 좋아지지 않은 것 같기도 합니다.

      혹시 RAW 파일을 지원해 주는 스티칭 프로그램이 있다면 분명 차이가 날텐데... 싶습니다만, 그런 프로그램은 없겟죠??

      2009.12.26 19:30 신고 [ ADDR : EDIT/ DEL ]
  2. 카프카

    구이에서 로파일 지원합니다.

    2010.01.03 13:36 [ ADDR : EDIT/ DEL : REPLY ]
  3. 김홍구

    아이폰에서 풍경따위를 동영상으로 찍으면 연결해서 자동으로 파노라마 사진으로 만들어 주는 앱이 있던데 위의 것도 자동으로 제작된것 이지요? 아이폰의 앱을 보면서 조만간 비디오카메라를 탑제하고 항공사진측량을 할날이 올것도 같은 생각이 들던데 푸른하늘님 블로그에 오니 문든 글로 쓰고싶어 졌습니다^^

    2010.01.13 02:39 [ ADDR : EDIT/ DEL : REPLY ]
    • 풍경을 스틸사진으로 찍어도 연결해주는 앱도 있고... 여러가지 파노라마 프로그램이 있습니다. 그런데 제 파노라마는 360도를 촬영해야 하는 것으로서 전부 손으로 제작해야 합니다. ㅎ

      가장 간단한 설명은 http://www.internetmap.kr/835 를 읽어보세요~

      2010.01.13 11:28 신고 [ ADDR : EDIT/ DEL ]

사진/360 파노라마2009. 3. 7. 21:12
HDR(High Dynamic Range) 사진이란, 어두운 부분과 밝은 부분의 디테일을 최대한 살린 사진을 말합니다.

일반적으로 자동 노출 브라케팅(AEB : Auto Exposure Bracketing) 촬영, 즉 노출을 정상, 과도 , 부족 하게 사진을 촬영 한후 합성해서 만듭니다.

우선 제가 맨처음 본 HDR 사진을 보여드리겠습니다. Flickr의 Stuck in Customs님이 촬영한 Kolorful Korea라는 서울 사진입니다.

사용자 삽입 이미지

우측 하단의 길을 보면, 차량의 빛이 연결되어 있는 것으로 보아, 해질 무렵이나 좀 어두울 때 촬영한 것을 알 수 있습니다. 그런데, 일반적으로 이러한 상태에서 촬영을 할 경우, 밝은 부분이 선명하게 보이면 어두운 부분이 구분되지 않고, 어두운 부분을 잘 보이도록 촬영하면 밝은 부분이 과다 노출되어 구분되지 않게 됩니다.

HDR 사진은 노출이 과다/정상/부족한 사진을 합성해서, 위의 그림과 같이 어두운 부분이나 밝은 부분 모두 디테일을 살리는 사진입니다. 또한 위 사진에서 볼 수 있는 것처럼, 현실과는 다른 몽환적인 분위기의 사진이 나옵니다.

또 하나를 더 보여드리죠. 아래 사진도 동일한 분이 촬영한 Fourth on Lake Austin이라는 사진입니다. 제가 정말 좋아하는 사진중의 하나입니다.

사용자 삽입 이미지

====
지금부터는 이와 같은 HDR 사진을 촬영하고, 합성하는 방법을 설명드리겠습니다. 아래는 WikiHow의 문서를 정리한 것입니다.

HDR 사진 촬영

1. 촬영장면 선택
어떤 장면이든 괜찮습니다. Flikr 에서 HDR로 검색해 보면 멋진 예제를 보실 수 있습니다. 아니면, 구름이 많은 장면을 촬영하면 구름의 모습이 생생하게 드러납니다.

2. 카메라 설치
반드시 삼각대를 사용해야 합니다. 3장의 사진이 완전히 동일한 장면을 촬영해야 하기 때문입니다. 릴리즈나 타이머를 사용하면 더 좋습니다. 자동노출 브라케팅(AEB : Automatic Exposure Bracketing)촬영을 하되 -2/+2 EV 정도로 설정합니다.

3. 사진 촬영
AEB 모드가 있는 사진기는 그냥 3장의 사진을 촬영하면 됩니다. AEB가 없다면 정상촬영후, 노출을 2단계 빠르게 (예 : 1/250 초라면 1/500 이나 1/1000) 촬영한 후, 노출을 2단계 느리게 (예 : 1/250 라면 1/125 이나 1/60)촬영합니다.

4. 사진 저장
사진을 컴퓨터에 복사합니다.

**** 아래는 제가 촬영한 사진을 사용해서 설명드리겠습니다. 사진이 없으시다면, 아래의 파일을 저장해서 직접 테스트해 보시면 됩니다. (일부러 크기를 줄였습니다.)

사용자 삽입 이미지사용자 삽입 이미지사용자 삽입 이미지

노출시간은 각각 좌측 1/3초, 중앙 1.1초, 우측 4.5초 입니다. 10.5mm 어안렌즈로 촬영한 사진이라서 왜곡이 심합니다. 잘 찍은 사진이 아니니 그냥 실험용으로만 사용하시길~

HDR 사진 합성

1. qtpfsgui 설치
HDR을 합성할 수 있는 프로그램은 많지만, qtpfsgui는 오픈소스로 만들어진 무료 프로그램이며, Windows, Mac, Linux 등 다양한 O.S.를 지원합니다.

2. 다른 프로그램 닫기
HDR 프로그램은 매우 CPU를 많이 사용하므로, 다른 프로그램은 종료하는 게 좋습니다.

3. qtpfsgui를 실행하고 New HDR 선택
"Load Images"를 누르시고, 3개의 파일을 읽어 들입니다. 사진에 들어있는 EXIF 정보로부터 노출값 등을 자동으로 읽어 들이게 됩니다. (위에 있는 사진을 사용하면 뭐가 잘못됐는지 EV값을 입력하라고 나오는데, 모두 0으로 설정하시면 됩니다.)

4. 다음에 뜨는 창은 무시합니다.
세밀한 조정을 위한 것인데, 잘 모르면 그냥 "Next"를 누르시면 됩니다.

5. 그 다음 창도 무시합니다.
그냥 "Finish"를 누릅니다. 그러면, HDR 영상이 뜹니다. 그러나 이것을 직접 저장할 수는 없습니다.

6. Tone Making
툴바에 있는 "Tonemap the HDR" 버튼을 누릅니다. 좌측에 여러가지 복잡한 옵션이 들어 있는 창이 뜹니다. 그 상태대로 "Apply" 버튼을 누르면, 작은 크기로 먼저 적용한 결과가 뜹니다. 대충 이 알고리듬(Mantiuk)만 사용해도 충분하지만, 여러가지 바꿔가면서 테스트해 보실 수 있습니다.

이 과정은 매우 컴퓨터 자원을 많이 소모하므로, 원본 크기에 적용하려면 시간이 많이 걸립니다. 그래서 작은 크기로 실험해 보는 것입니다.

**** 저는 그냥 "Saturation factcor"만 1.4로 올려줬습니다.

7. 파일 저장
왼쪽 부분 맨 위에 있는 "Result Size"에서 원하는 크기를 선택하고, Appy를 눌러준 뒤, 영상이 생성되면 "Save As" 버튼을 누른 후, 파일명을 지정해 주면 됩니다.

8. 후처리
필요하다면, 포토샵 등을 이용해 사진을 좀 더 예쁘게 다듬을 수 있습니다.

아래는 제가 생성한 최종 사진입니다.

사용자 삽입 이미지

아래는 중간 부분만 추출해서 GIF로 만들어 본 것입니다. 일단 사진의 품질은... 제가 봐도 정말 마음에 안드는 게 뭔가 잘못한 게 아닐까... 싶은 생각이지만, 그래도 어두운 부분이나 밝은 부분이 모두 디테일이 살아있음을 확인하실 수 있을 것입니다.

사용자 삽입 이미지

====
이상입니다. 저도 처음 해 보는 것이라서, 촬영할 때부터 여러가지 시행 착오를 겪었습니다. 아무래도 사진에 대해 잘 아시는 분께 좀더 배우고, 프로그램 특성도 이해한 후 다시 도전해 봐야 하지 않을까... 싶네요.

민, 푸른하늘

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

  1. ljs

    좋은 글 감사합니다. 의외로 만드는게 쉽네요~
    다음에 한번 해봐야겠습니다. 핸드폰 사진으로도 되겠지요?^^;

    2009.03.08 00:38 [ ADDR : EDIT/ DEL : REPLY ]