brunch

You can make anything
by writing

C.S.Lewis

소프트웨어가 하드웨어를 대체하다

NVIDIA의 슬로우비디오 기술

최근 NVIDIA는 일반 동영상을 슈퍼 슬로우모션 비디오로 변환하는 기술을 개발했다고 한다. 기존의 일반 카메라로 찍은 동영상도 문제없이 변환 가능한데, 이 원리는AI 머신러닝을 이용해 기존의 프레임과 프레임 사이에 들어갈만한 인공 프레임을 예측해서 그려내고, 끼워넣는 것이다




NVIDIA의 슈퍼슬로우모션


https://www.youtube.com/watch?

<영상: NVIDIA 유튜브 - NVIDIA에서 공개한 슈퍼슬로우모션 변환기술>


보통 슬로우모션의 원리는 초당 일반 동영상보다 훨씬 많은 수의 프레임을 촬영해 재생하는 것으로 요즘 스마트폰 카메라에도 도입되기 시작한 ‘슈퍼 슬로우모션’은 초당900프레임에 달하는 수많은 프레임을 찍어내는 하드웨어 카메라가 결정적인 역할을 수행한다. 그러나 NVIDIA는 하드웨어의 역할이던 슈퍼 슬로우모션 영상 제작을 소프트웨어로 대체하는데 성공했다.


<출처: 위키피디아> Overcranking 기법으로 구현하는 슬로우모션


<출처: 위키피디아> Time stretching 기법으로 구현하는 슬로우모션


슬로우모션은 어떤 원리로 작동할까? 가장 대표적인 방법으로는 Overcranking 과 Time stretching 방법이 있다. Time stretching 방법은 단순히 프레임 하나하나를 두 배의 길이로 늘려 재생하는 것으로, 진짜 슬로우모션이라기보다는 단순히 영상을 느리게 재생하는 것이라고 보면 된다. Overstretching 은 가장 대표적인 방법으로, 일반 영상보다 많은 프레임을 촬영하여 천천히 재생하는 것이다. 일반적인 영화나 TV로 보는 영상은 초당 20~30프레임으로 촬영되고 재생된다. 만일 20FPS (초당 프레임)으로 제작된 영상을, 초당 10프레임의 속도로 재생한다면 일반 영상보다 두 배 느리게 재생되는 효과를 보여줄 것이다. 그러나 단순히 일반 동영상을 느리게 재생할 경우 프레임과 프레임 사이의 동작이 비어있기 때문에 부드럽지 못하고 뚝뚝 끊어져 보이게 된다. 따라서 고품질의 슬로우모션 영상을 얻기 위해서는 초당 더 많은 프레임을 촬영할 수 있는 카메라를 이용해야만 부드러운 슬로우모션 영상을 촬영할 수 있었다.


그렇지만 NVIDIA는 높은 프레임의 영상이 아닌 20~30FPS의 영상을 가지고도 고품질의 슬로우모션 영상을 제작할 수 있는 소프트웨어를 개발했다. 30프레임짜리 일반 동영상을 그냥 재생할 경우, 프레임과 프레임 사이의 동작 (혹은 장면)이 비어 있게 되지만, NVIDIA의 소프트웨어는 머신러닝을 통해 프레임들 사이에 들어갈만한 동작 / 장면을 예측하여 인공 프레임을 끼워넣는다.



세 프레임으로 이루어진 일반 동영상이 있다고 가정하자



NVIDIA는 인공프레임을 예측하고 만들어 삽입하는 기술을 개발했다


해당 기술에는 파이토치를 활용한 딥러닝 심화학습, 그리고 이를 구현하기 위한 엔비디아 테슬라 V100 GPU가 사용되었다고 한다.



소프트웨어와 하드웨어

어쩌면 조금은 허물어진 경계


소프트웨어와 하드웨어는 상호작용을 하면서도 어느정도 구분된 영역이었다. 전자기기는 하드웨어만으로는 아무것도 할 수 없다. 반면 아무리 발달된 소프트웨어를 탑재하더라도 하드웨어가 따라주지 않는다면 한계가 있었다. 소프트웨어가 있어야만 할 수 있는 작업이 있는가하면, 하드웨어가 있어야만 할 수 있는 작업이 있다. 그러나 과거의 경우 소프트웨어의 한계보다는 하드웨어의 한계가 기계의 능력에 발목을 잡는 경우가 더 많았다. 컴퓨터의 경우 더 많은 연산을 처리하고 고성능을 요구하는 작업을 하기 위해서는 CPU, GPU나 저장장치와 같은 하드웨어가 받쳐주어야 한다. 특히 카메라, 인쇄기, 타자기 등의 입/출력장치는 어찌보면 완전한 하드웨어의 영역이다. 전자기기의 경우 더 나은 사양은, 대부분의 경우 더 나은 하드웨어를 의미한다.


그러나, 어느 순간부터 소프트웨어는 하드웨어의 한계를 조금씩 극복해나가기 시작했다. 스마트폰 제작사들은 아웃포커싱 카메라를 구현하기 위해 듀얼 카메라를 채택한다. 두 개의 카메라로 다른 거리에서 찍은 상을 하나의 이미지로 합쳐 아웃포커싱이 된 결과물을 만들어낸다. 그러나, 구글은 보란듯이 싱글 카메라를 가진 픽셀을 통해 ai 머신러닝 기술을 이용해 아웃포커싱 이미지 처리를 하는데 성공한다.


나는 사진에 대한 전문가는 아니지만 적어도 내가 아는 한 카메라의 영역에서는 하드웨어가 더 지배적이었다. 필름 카메라 시절의 카메라는 완전한 하드웨어이며, 디지털 카메라 역시 구동하기 위한 소프트웨어가 필요하지만 ‘카메라의 성능’자체는 대체로 렌즈, 센서 등 하드웨어적인 사양에 따라 좌우되어왔다. 그러나 요즘 스마트폰 제작사들이 요즘 밀고있는 소위 말하는 ‘AI 카메라’는 비록 아직 갈 길이 멀긴 하지만 훌륭한 사진 결과물을 만들고 있다.



지금의 소프트웨어 수준은 단순히 하드웨어와 상호작용을 하고, 보조하는 수준이 아니다. 과거 하드웨어의 영역이던 부분들을 어느정도 수행하기 시작했다. 특히, NVIDIA의 슬로우모션 기술처럼 장면과 장면 사이의 프레임을 예측해서 그려넣는 기술은 단순히 입력장치를 통해 상을 디지털화면으로 옮기는 수준에서, 하드웨어를 통해 확보되지 않은 시간속의 장면을 만들어내는, (과장을 조금 보내서) 인간이 물리적으로 경험할 수 없었던 차원까지 능력을 끌어올렸다. 물론 NVIDIA의 기술 역시 구현하기 위해 사용된 그래픽카드가 1천만원이 넘어가기 때문에 일반 사용자들이 사용하기에는 무리가 있고, 현재의 머신러닝 기술 역시 상당한 연산을 필요로 하는 수준높은 강화학습을 구현하기 위해서는 연구실 수준의 하드웨서가 필요하다. 그러나 소프트웨어가 단순히 입출력 처리를 넘어 최적화과 예측을 하고 있으며, 다시한번 이를 넘어 없던 것을 창조하고, 손실되었거나 확보하지 못한 정보를 채워넣는다는 점에서의 의의는 크다. 그리고 무엇보다도 ('무어의 법칙'이 폐기되었다는 이야기도 나오고 있는 지금에도 여전히) CPU와 저장치와 같은 하드웨어 생산비용은 앞으로도 갈수록 줄어들 것이라는 전망에는 대부분의 전문가들이 동의하고 있다.


<트렌지스터 사이특 당 프로세서의 생산비용 - 차트: 직접 작성. 자료출처: http://www.singularity.com/charts/page62.html>


머신러닝, 인공지능은 아직도 할 수 있는 일이 많다. NVIDIA의 사례처럼 앞으로 소프트웨어는 지금껏 ‘소프트웨어의 영역’이 아니라고 여겨졌던 부분들을 대체할 수 있을것이다. 이를테면 물리적인 오프라인의 정보를 디지털 정보로 전환하는데 큰 역할을 하고있는 센서의 경우 소프트웨어를 통해 완전히 대체하지는 못하겠지만, 필요한 센서의 종류와 수를 줄인다던지 하는것은 가능할지도 모른다. 아직은 머신러닝이나, 빅 데이터 분석과 같은 고차원의 작업을 하기 위해서는 어느정도 고사양의 하드웨어가 필요한 부분이 있지만 소프트웨어가 몇가지 역할을 대체하기 시작하고, 하드웨어의 단가가 낮아질 수록 서비스와 제품의 질은 높아지고 단가는 낮아질 것이다. End user 사용자들이게 다가오는 효용이 높아지는 것이다.



앞으로는 소프트웨어를 통해 구현 가능한 범위가 달라질것이다. 하드웨어 제조사들은 이에대한 대비책을 세워둬야 하지 않을까




구글 블로그에서 보기: https://thoughtschangeworld.blogspot.com/2018/08/nvdia.html


작가의 이전글 유튜브의 뉴미디어 1위 달성의 의미
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari