
10초 영상을 사진 한 장으로 접었다 — 682장을 겹치는 계산
예전부터 사진을 종종 찍곤 했었는데, 사진의 기법 중에는 한 장의 필름에 여러번 사진을 촬영해 하나의 사진을 완성하는 다중 노출 이라는 것이 있다. 디지털 이미지로 넘어와서 사진 여러장을 겹쳐서 표현하는 방식을 디지털 합성이나 레이어 블렌딩과 같은 용어로 설명하고 있다. 포토샵 같은것을 이용해서 쉽게 만들거나 수정하고, 창의력을 뽐낼 수 있었다.
최근에는 동영상을 너무나 쉽게 촬영하게 되니까 정적인 사진과 더불어 아주 역동적인 동영상을 자주 촬영하게 되는데, 이 동영상으로부터 궤적이나 다양한 시점의 장면을 하나로 모아서 보여줄 수 있는 시도를 AI 딸깍으로 한번 해보는것이 어떤가 싶어 시작해봤다.
최근 영상은 대부분 DJI의 오즈모 포켓 4를 이용해서 촬영하는데, 짤막한 영상을 하나 촬영하고 영상에 포함한 시간 전체를 한 장에 접어 넣고 싶었다. 프레임을 전부 겹치면 될 것 같은데, 겹치는 방법을 어떻게 만들 것인지가 문제였다.
액션캠으로 촬영한 긴 영상에서 추출한 프레임들을 수학적 기법으로 합성해서, 밝기값의 포화를 방지하면서도 색 정보를 어느 정도 유지하여 하나의 추상적인 사진으로 완성하고 싶다. 프레임 단위로 분석해서 적절히 더해 한 장으로 만드는 프로그램을 만들고, 이 영상으로부터 사진을 한 장 출력해 달라.
세 줄이다. 여기 제약이 두 개 들어 있다. 「포화를 방지」와 「색 정보를 유지」. 나중에 보니 이 둘이 전부였다.
겹친다는 게 왜 문제인가
프레임을 그냥 더하면 어떻게 되는지부터 보자.
사진의 밝기는 0에서 1 사이 값이다. 흰색이 1 이다. 프레임 두 장을 더하면 0.6 + 0.5 = 1.1이 되고, 1을 넘는 값은 표현할 데가 없으니 잘린다. 682장을 더하면 화면 대부분이 1을 넘어 그냥 흰 종이가 된다. 이게 「포화」다.
그럼 나눠서 평균을 내면 되지 않나. 된다. 타지는 않는다. 대신 모든 것이 흐려진다.
682장의 평균은 682장 중 어느 것과도 닮지 않은 회색 안개가 된다. 밝은 순간의 궤적이
1/682로 희석되기 때문이다.
포화도 안 되고 흐려지지도 않아야 한다. 두 조건을 동시에 만족시키는 식을 찾는 일이 전부였다.
무엇이 나왔나
프로그램 하나와 사진 몇 장이 나왔다. 먼저 사진부터.

사무실을 좌에서 우로 한 번 훑은 10초다. 냉장고, 전자레인지, 화이트보드, 모니터, 창밖의
야경이 순서대로 지나간다. 그 10초가 한 장에 겹쳐 있다. 아래로 흐르는 노란 띠는 천장의
케이블 트레이가 지나간 자국이고, 청록은 형광등이다.
같은 클립, 같은 682장인데 겹치는 방식만 바꾸면 이렇게 달라진다. 먼저 밝은 순간만 골라
남긴 것.

사물의 윤곽이 선으로 남아 도면 같아진다. 다음은 전부 고르게 평균 낸 것.

붓으로 문지른 것처럼 된다. 셋 다 같은 영상이다.
어떻게 굴러갔나
밝기와 색을 따로 다뤘다.
밝기부터. 그냥 더하면 타고 평균 내면 흐려지니, 그 사이 어딘가를 쓴다.
각 프레임의 밝기를 몇 제곱 한 다음에 평균 내고, 다시 그 제곱근을 취한다. 제곱하는 횟수를
1로 두면 보통 평균이고, 크게 키우면 가장 밝은 값만 남는다. 숫자 하나로 「부드러운 평균」과
「밝은 것만 남기기」 사이를 연속으로 오갈 수 있다.
제곱을 몇 번 하든 마지막에 프레임 수로 나눈다는 점은 그대로다. 몇 장을 겹치든 값이 1을
넘어가지 않는다. 포화를 조심해서 피하는 게 아니라 구조적으로 일어나지 않는다. 요청의 첫
번째 제약은 여기서 풀렸다.
그런데 이렇게 만들고 결과 이미지를 보니까 그냥 흑백 이미지에 가까워져 너무 재미가 없어 보였다. 물론 흑백 사진은 강한 콘트라스트나 구조등으로 재미있게 볼 수도 있었지만 균형잡힌 배경의 시간을 조금 더 색이 있게 표현해보고 싶었다.
어디서 틀렸나
세 번 틀렸다.
1. 첫 결과가 컬러 노이즈였다
첫 출력은 마치 TV 노이즈 화면 같은 것이었다. 계산식이 틀렸다고 생각하기 쉬운 자리다.
그런데 원인은 계산이 아니라 저장이었다. 이미지를 다루는 표준 라이브러리가 색당 16비트짜리 PNG를 쓸 줄 모르는데, 못 쓴다고 알려주는 대신 데이터를 8비트로 잘못 읽어 그대로 저장해 버렸다. 계산은 처음부터 멀쩡했다.
프레임 한 장만 꺼내서 따로 저장해 봤다. 그 한 장이 멀쩡한 사무실 사진으로 나왔다. 영상을 읽는 부분은 정상이라는 뜻이고, 그러면 남는 건 계산 아니면 저장이다. 저장 쪽을 바꿔 보니 해결됐다.
증상이 무섭게 생겼다고 원인도 깊은 곳에 있는 건 아니다.
2. 두 번째 결과가 거의 흰 화면이었다
이번엔 노이즈가 아니라 그냥 뿌옇게 밝기만 한 그림이 나왔다. 계산은 맞는데 그림이 안 나오는 경우다.
682장을 겹치면 값들이 가운데로 몰린다. 어두운 부분도 밝은 부분도 여러
프레임에 섞이면서 중간값 쪽으로 끌려간다. 게다가 이 클립은 흰 벽과 흰 냉장고가 화면 대부분이라 그 중간값 자체가 밝은 쪽이었다.
그래서 「가장 어두운 쪽 얼마를 검정으로 끌어내리고, 나머지를 늘려 편다」는 처리를 붙였다.
사진 보정에서 흔히 하는 그 조작이다. 다만 얼마나 늘려야 하는지를 사람이 정하지 않게했다. 결과의 밝기 분포 폭을 재서 목표치에 맞추도록 자동으로 계산한다. 소재마다 몰리는 정도가 다르기 때문이다.
3. 색이 회색으로 죽었다
앞의 둘은 고치고 나면 끝이었다. 세 번째는 달랐다.
밝기는 잘 나오는데 색이 없었다. 회색 안개에 아주 옅은 색기만 도는 그림이었다. 처음에는 채도가 높은 프레임에 가중치를 더 주는 식으로 대응했다. 조금 나아졌다. 조금이었다.
여기서 한참 헤맸다. 가중치를 더 세게 주고 채도를 올리고 대비를 줘 봐도 조금씩만 나아질 뿐 여전히 회색이었다. 파라미터를 만지는 걸로는 안 되는 자리였다.
색을 평균했기 때문이었다.
빨강과 청록을 평균하면 회색이다. 파랑과 노랑을 평균해도 회색이다. 마주 보는 색끼리는 서로를 지운다. 카메라가 사무실을 훑는 동안 한 지점에는 온갖 색이 스쳐 지나가고, 그것들을 평균하면 반드시 무채색 쪽으로 끌려간다. 가중치를 어떻게 주든 평균인 이상 피할 수 없다. 가중치로는 완화까지가 한계였다.
그래서 식을 바꿨다. 색을 방향과 크기 두 개로 쪼갰다.
- 방향(어떤 색인가, 빨강인가 파랑인가)은 평균한다. 나침반 바늘의 평균을 내듯 방향만 낸다
- 크기(얼마나 진한가)는 따로 계산한다. 밝기와 똑같이 「몇 제곱 해서 평균」을 쓴다
방향이 서로 엇갈리면 대표 방향이 흐려질 뿐, 진하기는 줄어들지 않는다. 진하기는 애초에 평균의 대상이 아니기 때문이다.
바꾸기 전에 나오던 그림이다. 색을 평균한 결과다.

이 글 맨 위의 첫 장이 방향과 크기를 쪼갠 결과다. 같은 클립, 같은 682장, 밝기 처리도 똑같다.
색을 합치는 식 하나만 다르다. 소재가 형광등 아래 흰 사무실이라 원래 채도가 거의 없는데도 이만큼 차이가 난다.
덧붙여, 진해진 색이 화면에 표현할 수 있는 범위를 넘어가면 색깔은 그대로 두고 진하기만 줄여서 범위 안에 넣는다. 흔히 하듯 빨강·초록·파랑을 각각 잘라내면 색이 틀어지지만, 진하기만 줄이면 색은 유지된다.
왜 한 줄로 되는가
지난 회에서 사주를 다루면서, 규칙이 오래 굳어 있는 분야는 AI가 잘 짚는다고 적었다.
이번 건도 그렇다. 이미지 합성은 사진과 영화가 수십 년 쌓아 온 분야고, 여기 쓴 것들은 전부 이름이 붙어 있는 기법이다. 밝기를 눌러 담는 방법, 사람 눈에 맞춘 색 공간, 색이 범위를 넘을 때 처리하는 방법까지, 새로 발명한 게 하나도 없다. 흩어져 있는 것을 목적에 맞게 꿰었을 뿐이다.
그런데 사주는 틀려도 티가 안 났다. 그럴듯한 문장이 나오면 그게 맞는지 확인할 방법이 따로 필요했고,그래서 검증 절차를 만드는 데 시간이 더 들었다.
사진은 조금 많이 다르다. 창작의 영역에 있는 것이라서 맞고 틀리고를 임의로 설정해주어야 한다. 나의 의도를 명확하게 반영할 수 있도록 다른 개념이나 관념으로 설명하는 것 뿐이다.
작문이나 회화, 조소나 사진 등 여러 분야에서 AI를 활용하여 표현하는 사례가 폭발적으로 증가하고 있다. 가끔 전시들을 보다 보면 이건 이런 개념으로 만들었으면 훨씬 더 재미있었겠다 싶은 것도 있고, 작가의 창의력이 정말 대단하다 싶은것들도 상당히 많다. AI의 아주 흥미롭고 신나는 응용 분야 중 하나가 바로 문화예술인 것이다.
따라 하려면
요청문에서 실제로 일한 건 「밝기값의 포화를 방지」와 「색 정보를 유지」 두 마디였다.
무엇을 만들지가 아니라 무엇을 피하고 싶은지를 적으면 방법은 기계가 고른다. 「멋진 사진을 만들어 줘」라고 했으면 아마 필터 몇 개 얹은 결과가 나왔을 것이다. 「타지 않게, 색이 죽지 않게」라고 하니까 그 두 조건을 동시에 만족시키는 식을 찾는 일이 됐다.
하나 더. 파라미터를 만져서 조금씩 나아질 때 어디까지가 조정이고 어디부터가 설계 문제인지 구분하는 건 아직 사람 몫이었다. 세 번째 문제에서 한참 헤맨 게 그 자리다. 가중치를 계속 키우는 대신 「왜 근본적으로 회색으로 가는가」를 물었어야 했다.
못 하는 것
소재에 색이 없으면 못 만든다. 없는 색을 지어내는 게 아니라 흩어져 있는 색을 안 잃도록 모으는 것이다. 형광등 아래 흰 사무실은 원래 채도가 거의 없다. 네온, 노을, 시장, 차량 미등 같은 소재라야 이 방식이 제 몫을 한다.
흔들림을 잡아 주지 않는다. 카메라가 움직이면 그 움직임이 그대로 궤적으로 남는다. 이번에는 그게 목적이었지만, 삼각대에 올려놓고 피사체만 움직이는 걸 찍었다면 미세한 흔들림까지 같이 남는다.
촬영 쪽이 알고리즘보다 중요할 때가 많다. 특히 화이트밸런스를 자동으로 두면 카메라가 훑는 동안 색조가 계속 돌아가면서 프레임끼리 서로를 지운다. 액션캠에서 색이 빠지는 가장 흔한 원인이고, 이건 계산으로 못 고친다. 날아간 하이라이트도 마찬가지다. 이미 순백이 된 자리에는 색 정보가 남아 있지 않다.
작게 미리 보고 판단하면 안 된다. 빠르게 보려고 프레임을 네 장에 하나씩 건너뛰며 시험했는데, 그 그림에서는 궤적이 점선처럼 끊겨 보였다. 전부 쓴 최종본에서는 이어진 띠가 됐다. 파라미터는 작게 잡되 마지막 판단은 한 번 제대로 돌려 보고 해야 한다.
마지막으로 한 장 더. 색을 최대로 밀어 올리지 않고, 색조가 서로 엇갈리는 자리는 눌러서 차분하게 뽑은 것이다.

어느 쪽이 좋은지는 취향이다. 고를 수 있게 만들어 둔 데까지가 이번 일이었다.
이번 시리즈의 작품 중 어떤 사진이 가장 마음에 드는가?
과연 이 이미지들을 사진이라고 이야기할 수 있을까?
재미있는 영상을 사진으로 풀어내는것은 컴퓨터와 AI를 활용하기 좋은 소재였고, 의외로 기반 지식도 잘 정리되어있어 빠르게 만족하는 수준의 결과물을 만들어낼 수 있었다. 재미있어보이는 응용 분야나 마음에 들었던 이미지가 있다면 알려주시기 바란다. 더 흥미로운 시도들을 많이 해 볼 예정이다.
오늘은 여기까지.