웹의 MediaPipe에서 제공하는 배경 흐림 및 배경 교체 시연 이미지(사진:구글AI)
웹의 MediaPipe에서 제공하는 배경 흐림 및 배경 교체 시연 이미지(사진:구글AI)

포스트 코로나, 다양한 화상 회의 또는 미팅은 사람들의 업무와 개인 생활에서 점점 더 중요해지고 있다. 회의에서 사생활 보호 또는 재미있는 시각적 터치로 분위기를 개선하면 회의 자체에 집중할 수 있다. 이 목표의 일환으로 지난 2일 구글 AI는 구글 미트(Google Meet)에서 머신러닝 툴을 사용하여 배경을 흐리게(Blur) 처리하고 또는 새로운 배경으로 AI를 통해 쉽게 바꾸는 방법을 발표했다.

배경 흐림의 예.
배경 흐림의 예.

이 방법은 머신러닝(ML)을 사용하여 주변 환경에 관계없이 참가자를 더 잘 강조한다. 다른 솔루션은 추가 소프트웨어를 설치해야 하는 반면 이번 미트(Meet)의 기능은 구글의 오픈 소스 프레임워크 인 미디어파이프(MediaPipe)로 비디오, 오디오 같은 다양한 데이터를 플랫폼에 구애받지 않는 웹 머신러닝(Web Machine Learning) 기술을 기반으로 한다.

배경 대체 이미지 비교
배경 대체 이미지 비교

또 이 솔루션은 브라우저에서 직접 작동하므로 추가 단계가 필요하지 않는다. 이러한 기능 개발의 핵심 목표 중 하나는 특별히 설계된 추론 엔진인 XNNPACK(다운)을 통한 효율적인 온 디바이스 머신러닝 모델, WebGL 기반으로 렌더링 및 웹 기반 머신러닝 추론을 결합하여 거의 모든 최신 디바이스 브라우저에서 실시간으로 제공한다.

이 새로운 기능 웹 머신러닝 솔루션은 라이브와 스트리밍 미디어를 위한 크로스 플랫폼으로 사용자 맞춤 가능한 머신러닝 솔루션을 위한 구글의 오픈 소스 프레임워크인 미디어파이프(MediaPipe-다운)와 함께 개발되었으며, 또한 장치 내에서 손짓, 홍채, 신체 움직임 등의 실시간 포즈 추적과 같은 기능도 지원한다.

미디어파이프(MediaPipe)(시계방향으로)의 자세 감지 및 몸체 추적, 페이스메치, 홍체 추적 및 깊이 감지, 손추정 이미지

특히, 이 솔루션은 모든 온 디바이스 솔루션의 핵심 요구 사항을 달성한다는 것이다. 이를 위해 MediaPipe의 웹 파이프라인은 웹 브라우저용으로 특별히 설계된 낮은 수준의 바이너리 코드 형식인 WebAssembly(다운)를 활용한다. 런타임에 브라우저는 WebAssembly 명령을 기존의 자바스크립트 코드보다 훨씬 빠르게 실행되는 네이티브 머신 코드로 변환한다.

또 크롬 84(Chrome 84)는 최근 각 명령으로 여러 데이터 포인트를 처리하는 WebAssembly SIMD(hash function)에 대한 지원을 도입해 2배 이상의 성능 향상을 이끌어냈다.

WebML 파이프 라인 : 모든 컴퓨팅 집약적 작업은 C ++ / OpenGL로 구현되며 WebAssembly를 통해 브라우저 내에서 실행된다.
WebML 파이프 라인 : 모든 컴퓨팅 집약적 작업은 C ++ / OpenGL로 구현되며 WebAssembly를 통해 브라우저 내에서 실행된다.

솔루션은 먼저 머신러닝 추론을 활용하여 저해상도 마스크를 계산하는 배경에서 사용자를 세분화하여 각 비디오 프레임을 처리하고 선택적으로 마스크가 영상 경계와 일치하도록 더욱 세분화한다. 그런 다음, 마스크를 사용하여 웹용 2D 및 3D 그래픽 API인 WebGL2(다운)를 통해 비디오 출력을 렌더링하고 배경을 흐리게 하거나 교체하는 것이다.

현재, 버전에서는 낮은 전력 소비량과 가장 다양한 장치 커버리지를 위해 클라이언트의 CPU에서 모델 추론이 실행된다. 또 실시간 성능을 달성하기 위해 새로운 WebAssembly SIMD 규격에 맞게 특별히 설계된 첫 번째 추론 엔진인 XNNPACK 라이브러리에 의해 추론이 가속화된 효율적인 머신러닝 모델을 설계했다. 또 XNNPACK과 SIMD에 의해 가속화된 분할 모델은 웹에서 실시간으로 실행될 수 있다.

특히, MediaPipe의 유연한 구성에 의해 활성화된 백그라운드 블러(Blur) 및 바꾸기 기능은 장치 기능에 기반한 처리를 조정한다. 하이엔드 장치에서는 최고 수준의 시각적 품질을 제공하기 위해 전체 파이프라인을 구동하지만, 로우엔드 장치에서는 컴퓨팅 라이트 머신러닝 모델로 전환하고 마스크 정교함을 우회하여 고속으로 성능을 발휘한다.

그리고 장치 내 머신러닝 모델은 빠른 추론, 낮은 전력 소비 및 작은 다운로드 크기를 위해 초경량이어야 한다. 브라우저에서 실행 중인 모델의 경우 입력 해상도는 각 프레임을 처리하는 데 필요한 FLOP(플로팅 포인트 운영) 수에 큰 영향을 미치기 때문에 작아야 한다. 이에 솔루션은 이미지를 모델에 공급하기 전에 이미지를 더 작은 크기로 축소한다. 낮은 해상도의 이미지에서 분할 마스크를 가능한 한 미세하게 복구하는 것은 모델 설계의 어려움을 가중시키기 때문이다.

MobileNetV3 인코더(하늘색) 및 대칭 디코더(밝은 녹색)가 있는 모델 아키텍처
MobileNetV3 인코더(하늘색) 및 대칭 디코더(밝은 녹색)가 있는 모델 아키텍처

전체 세분화 네트워크는 인코딩 및 디코딩과 관련하여 대칭 구조를 가지며, 디코더 블록(연녹색)도 인코더 블록(연청색)과 대칭 레이어 구조를 공유한다. 특히 글로벌 평균 풀링과 함께 채널별 관심이 인코더 블록과 디코더 블록에 모두 적용돼 효율적인 CPU 추론에 이상적이다.

아울러 낮은 자원 요구로 최고의 성능을 찾기 위해 네트워크 아키텍처 검색에 의해 조정된 인코더로 MobileNetV3-small(발표논문)을 수정했다. 모델 크기를 50% 줄이기 위해 구글은 플로트16 양자화를 사용하여 TFLite에 모델을 수출하여 무게 정밀도가 약간 감소했지만 품질에 뚜렷한 영향을 미치지 않았다.

결과 모델은 193K 매개변수를 가지며 크기가 400KB에 불과하다. 분할이 완료되면, 비디오 처리 및 효과 렌더링을 위해 OpenGL 쉐이더를 사용하는데, 여기서 문제는 아티팩트를 도입하지 않고 효율적으로 렌더링하는 것이다. 정제 단계에서는 저해상도 마스크를 매끄럽게 하기 위해 양방향 필터(bilateral filter)를 적용했다.

아티팩트가 감소 된 렌더링 효과: 왼쪽) 조인트 양측 필터 는 분할 마스크를 부드럽게한다. 중간)분리 가능한 필터는 배경 흐림에서 후광 아티팩트를 제거한다. 오른쪽) 배경의 가벼운 래핑이 교체된다
아티팩트가 감소 된 렌더링 효과: 왼쪽) 조인트 양측 필터 는 분할 마스크를 부드럽게한다. 중간)분리 가능한 필터는 배경 흐림에서 후광 아티팩트를 제거한다. 오른쪽) 배경의 가벼운 래핑이 교체된다

블러 쉐이더(blur shader)는 렌즈의 초점이 맞지 않을 때 필름의 영상에 희미하게 퍼지는 광학계의 CoC(Concusion-of-conflusion)과 유사한 분할 마스크 값에 비례하여 각 픽셀에서 블러 강도를 조정함으로써 생성 된 흐림의 미적 품질 포커스 아웃 이미지의 일부를 말하는 보케(bokeh) 효과를 시뮬레이션 한다.

픽셀은 CoC 반경에 의해 가중치가 부여되어 전경 픽셀이 배경으로 블리딩되지 않는다. 사람을 둘러싼 배경 이미지를 제거하기 때문에 인기 있는 가우시안 피라미드(이미지 처리) 대신 가중된 흐릿함을 위한 분리 가능한 필터를 구현했다. 블러는 효율을 위해 낮은 해상도로 수행되고, 원래 해상도에서 입력 프레임과 혼합된다.

배경 교체의 경우, 분할 된 사람과 사용자 정의 된 배경 이미지를 혼합하기 위해 라이트 래핑(light wrapping)이라고 하는 이미지 합성 기술을 채택한다. 라이트 래핑은 배경 조명이 전경 요소 위로 넘치게 하여 합성을 더욱 몰입감 있게 만들어 분할 가장자리를 부드럽게 한다. 또한 전경과 교체 된 배경 사이에 큰 대비가 있을 때 후광 아티팩트를 최소화하는 데 도움을 준다.(아래는 라이트 래핑 소개영상)

이처럼 구글은 구글 미트에서 배경을 흐리게 처리하고 대체하기위한 새로운 브라우저 내 머신러닝 솔루션을 도입한 것으로  이를 통해 머신러닝 모델과 오픈 그래픽 라이브러리(OpenGL) 쉐이더(Shaders)는 웹에서 효율적으로 실행할 수 있게 된 것이다. 개발 된 기능은 저전력 장치에서도 낮은 전력 소비로 실시간으로 성능을 구현한다.

 

관련기사

저작권자 © 인공지능신문 무단전재 및 재배포 금지