구글 “아웃포커싱 때문에 왜 비싼 카메라 사죠?”
똥손 질문: 손에 들고 다니는 스마트폰으로, 전문가용 SLR 카메라로 찍은 것 같은 인물 사진을 얻을 수 있을까요?
구글: 가능합니다. 인공지능(AI) 기술을 쓰면 스마트폰으로도 전문가 같은 인물 사진을 찍을 수 있죠. SLR과 스마트폰의 하드웨어 격차를 AI를 탑재한 소프트웨어로 확 줄여버릴 수 있다는 거죠.
마크 르보이 구글 디스팅귀시드 엔지니어가 28일 서울 역삼동 구글코리아와 화상통화 연결을 통해 구글이 자체 제작한 스마트폰 ‘픽셀2’의 인물 모드에 들어간 인공지능 기술을 설명했습니다. 요약해서 말하자면, 스마트폰으로도 배경은 날리고 인물만 쨍한 사진을 얻을 수 있다는 것인데요. 이런 사진을 얻기 위해선 그동안 렌즈가 큰 SLR 카메라를 써야 했습니다. 마크 르보이에 따르면, 딸리는 하드웨어를 소프트웨어로 보강해서 결과적으론 같은 사진을 얻을 수 있게 된다는 겁니다.

우선, 마크 르보이에 대해 잠깐 설명하고 넘어갈게요. 마크 르보이는 구글에서 스트리트 뷰를 출시하고 라이브러리 북 스캐너를 공동 디자인했으며, 현재는 픽셀 스마트폰의 HDR+ 모드와 인물 모드, 점프(구글 VR 미디어 솔루션) 라이트필드 카메라, 영상 처리 언어 프로젝트인 할라이드(Halide) 등을 진행하는 팀을 이끌고 있는 능력자입니다.
자, 다시. 마크 르보이의 설명으로 돌아갑시다.
마크 블로이의 이날 강연과 블로그는 사실 구글 픽셀2에 들어간 ‘인물 사진 모드’를 홍보하기 위한 것입니다. 물론, 자랑할만 합니다. 이 인물사진 모드에는 머신러닝과 전산 사진 기법이 결합되었거든요.
통상 인물이 강조된 사진은 자동으로 배경에 부드러운 아웃포커싱 효과가 적용되는데요, 이런 사진은 여러개의 렌즈를 사용하는 대형 카메라가 필요합니다. 그런데 구글 픽셀2는 듀얼 카메라가 아닙니다. 전, 후면 카메라 모두 렌즈를 하나씩 갖고 있는데 전면 카메라든 후면 카메라든 모두 인물 모드 촬영이 가능하다네요.
듀얼 렌즈를 쓰는 좋은 카메라는 피사계 심도가 얕습니다. 피사계 심도라는 게 뭐냐면, 사진을 찍을 때 초점이 맞은 범위가 얼마나 넓냐는 것인데요, 인물 사진을 찍을 때 피사계 심도가 얕다는 것은 인물에만 또렷하게 초점을 맞출 수 있다는 얘깁니다.
사진으로 볼까요?

차이가 느껴지시나요? 둘 모두 HDR+ 사진이지만, 오른쪽 사진 인물에 더 집중이 됩니다. 배경이 날아가서 주인공에 더 집중하게 되기 때문이죠. 이같은 아웃포커싱 효과는 피사계 심도가 얕은 카메라로 촬영해야 합니다. 대체로 큰 렌즈가 피사계 심도를 얕게 촬영할 수 있습니다.
구글은 픽셀2 카메라의 하드웨어적 불리함을 카메라에서 피사체 포인트까지의 거리를 계산해 사진의 각 픽셀을 블러로 대체하는 방식을 씁니다. 블러를 이웃한 픽셀이 있는 픽셀 색상의 평균으로 계산하고, 블러 수준은 초점면에서 해당 장면 점까지의 거리에 따라 달라지게 한다는 거죠.
이제 픽셀 2 인물 모드 작동 방식을 볼까요? 지금 부터 하는 이야기는, 마크 르보이가 작성한 블로그의 내용을 거의 그대로 옮겨온 것입니다.
1단계는 HDR+ 이미지 생성입니다.
모든 피사체가 선명하게 찍힌 사진으로 시작되는데요, 촬영된 모든 사진의 품질을 향상하기 위한 구글의 전산 사진 기법인 HDR+를 사용합니다.
이 기능은 하이라이트가 날아가는 것을 방지하기 위해 과소 노출된 이미지를 여러장 촬영하고, 촬영한 이미지들의 프레임을 정렬 및 평균화한 후 합성해 그림자 안의 노이즈를 줄입니다. 그리고 로컬 콘트라스트를 보전하면서도 전역 대비를 현저하게 감소시키는 방법으로 이 그림자들을 증폭합니다. 이 결과, 희미한 조명에서도 높은 다이내믹 레인지, 낮은 노이즈, 선명한 세부 묘사가 담긴 사진을 얻을 수 있습니다.
2단계는 기계 학습 기반 전경-배경 세그먼테이션입니다.
HDR+로 쨍한 고퀄 사진을 얻었다면, 이제 전경(일반적으로는 사람)에 속하는 픽셀과 배경에 속하는 픽셀을 결정해야 합니다. 그래야 배경을 확 날려버리지요. 여기에 기계 학습이 적용됩니다.
구글은 그림을 보고 어떤 픽셀이 사람이고 어떤 픽셀이 사람이 아닌지를 추정하는 텐서플로(TensorFlow)로 작성된 특별한 신경망을 학습시켰습니다. 구글이 사용하는 특정 네트워크는 스킵 연결(skip connection)을 사용하는 콘볼루션 신경망(CNN)인데요, 거의 백만 개의 인물 사진(인물의 모자, 선글라스, 아이스크림 콘 포함)을 학습했습니다. 마스크 생성을 위한 추론은 텐서플로 모바일(TensorFlow Mobile)을 사용하여 휴대폰에서 실행합니다.

3단계는 각 지점에서 심도 알기 입니다.
픽셀 2에는 PDAF(Phase-Detect Auto-Focus) 픽셀 또는 듀얼 픽셀 자동 초점(DPAF)으로 불리는 기술이 있습니다. 휴대폰 후방 카메라의 (작은) 렌즈가 절반씩 2개로 분리되어 있다고 상상해 보세요. 이때 렌즈의 왼쪽을 통해 보이는 시야와 오른쪽을 통해 보이는 시야가 약간 다릅니다.
이 두 시점 사이의 간격은 1mm(렌즈의 대략적인 지름) 미만이지만, 스테레오를 계산하고 심도 맵을 생성하기에 충분합니다. 카메라의 광학 장치가 작동하는 방식은 여기에 나오는 것처럼 이미지 센서 칩의 모든 픽셀을 두 개의 더 작은 나란한 픽셀로 분할하고 칩에서 이들을 개별적으로 읽는 것과 같습니다.
마지막 4단곕니다. 최종 이미지 렌더링 단계죠.
앞서 2단계에서 계산한 세그먼테이션 마스크와 3단계에서 계산한 심도 맵을 결합해 1단계에서 HDR+ 사진의 각 픽셀을 얼마나 흐리게 처리할지 결정하는 것입니다.
심도와 마스크를 결합하는 방법은 다소간 기밀 사항이라고 합니다. 그러나 대략적인 아이디어는 마크 르보이가 힌트를 줬는데요, 사람에 속한다고 생각하는 장면의 피사체(마스크의 흰색 부분)를 선명하게 유지하고 배경에 속한다고 생각하는 피사체(마스크의 검은색 부분)를 초점면에서 떨어진 거리에 비례하여 흐리게 처리하는 것입니다. 이러한 거리는 심도 맵에서 가져온다고 합니다.
정리. 바이라인네트워크
<남혜현 기자> smilla@byline.network