brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Aug 12. 2020

MediaPipe Iris:실시간 홍채추적 및 깊이측정

2020년 8월 6일 (목) - 구글 AI 리서치 블로그

컴퓨터 사진(예: 인물 사진 모드 및 섬광 반사(glint reflection) 및 증강 현실 효과 (예: 가상 아바타)를 포함한 다양한 실제 응용 프로그램은 홍채를 추적하여 눈 위치를 추정하는 데 의존합니다. 정확한 홍채 추적이 가능하면 전용 깊이 센서(depth sensor)를 사용하지 않고도 카메라에서 사용자까지의 미터 거리를 결정할 수 있음을 보여줍니다. 이를 통해 계산적인 사진에서 적절한 크기의 안경과 모자를 가상으로 착용하는 것부터 시청자의 거리에 따라 글꼴 크기를 채택하는 사용성 향상에 이르기까지 다양한 사용 사례를 개선할 수 있습니다.


홍채 추적은 제한된 컴퓨팅 리소스, 가변 조명 조건 및 머리카락이나 사람 곁눈질과 같은 폐색의 존재로 인해 모바일 장치에서 해결하기 어려운 작업입니다. 종종 정교한 특수 하드웨어를 사용하여 솔루션을 적용할 수 있는 장치의 범위를 제한합니다.

[그림 1]

[그림 1] FaceMesh를 사용하여 가상 아바타 (중간)를 구동할 수 있습니다. 홍채 추적 (오른쪽)을 추가하면 아바타의 생동감이 크게 향상됩니다.

[그림 2] MediaPipe Iris에 의해 활성화된 눈을 다시 채색의 예

오늘날 우리는 정확한 홍채 추정을 위한 새로운 머신러닝 모델인 MediaPipe Iris의 출시를 발표합니다. MediaPipe Face Mesh에 대한 우리의 작업을 기반으로 하는 이 모델은 특수 하드웨어 없이 실시간으로 단일 RGB 카메라를 사용하여 홍채, 동공 및 눈 윤곽과 관련된 랜드마크를 추적할 수 있습니다. 홍채 경계선을 사용한 모델은 깊이 센서를 사용하지 않고도 상대 오차가 10 % 미만인 피사체와 카메라 사이의 미터 거리를 결정할 수 있습니다. 홍채 추적은 사람들이 보고 있는 위치를 추론하지 않으며 어떤 형태의 신원 인식도 제공하지 않습니다. 이 시스템은 연구원과 개발자가 세계적 수준의 ML 솔루션 및 애플리케이션을 구축할 수 있는 오픈소스 크로스 플랫폼 프레임워크인 MediaPipe에서 구현되어 대부분의 최신 휴대폰, 데스크톱, 랩톱 및 웹에서도 실행할 수 있습니다. 

[그림 3] 

[그림 3] 스마트폰으로 멀리 떨어진 개인들을 위한 사용성 프로토타입: 관찰된 글꼴 크기는 사용자와의 장치 거리에 관계없이 일정하게 유지됩니다.


홍채 추적을 위한 ML 파이프라인

파이프라인의 첫 번째 단계는 3D Face Mesh에 대한 이전 작업을 활용합니다. 3D Face Meshes는 고충실도(high fidelity) 얼굴 경계선을 사용하여 대략적인 얼굴 지오메트리의 메시를 생성합니다. 이 메시에서 홍채 추적 모델에 사용하기 위해 원본 이미지의 눈 영역을 분리합니다. 문제는 눈 윤곽 추정과 홍채 위치의 두 부분으로 나뉩니다. 작업별로 별도의 컴포넌트가 있는 통합 인코더로 구성된 다중 작업 모델을 설계하여 작업별 훈련 데이터를 사용할 수 있었습니다.

[그림 4] 홍채 (파란색) 및 눈꺼풀 (빨간색) 추적의 예

잘린 눈 영역에서 모델을 훈련하기 위해 아래에 표시된 것처럼 지리적으로 다양한 영역의 다양한 조명 조건과 머리 포즈를 나타내는 ~50k 이미지에 수동으로 주석을 달았습니다.

[그림 5] 눈꺼풀 (빨간색) 및 홍채 (파란색) 윤곽으로 주석이 달린 눈 영역
[그림 5] 잘린 눈 영역은 별도의 구성 요소를 통해 랜드 마크를 예측하는 모델에 대한 입력을 형성합니다.


Depth-from-Iris: 단일 이미지의 깊이 추정

우리의 홍채 추적 모델은 특별한 하드웨어 없이도 10% 미만의 오류로 카메라에서 피사체의 미터 거리를 결정할 수 있습니다. 이것은 인간 눈의 수평 홍채 직경이 몇 가지 간단한 기하학적 인수와 함께 광범위한 인구[1, 2, 3, 4]에 걸쳐 대략 11.7 ± 0.5mm로 일정하게 유지된다는 사실에 의존하여 수행됩니다. 예를 들어, 정사각형 픽셀의 센서에 투영되는 핀홀 카메라 모델을 고려하십시오. 피사체까지의 거리는 카메라의 초점 거리를 사용하여 얼굴 경계선(landmark)에서 추정할 수 있으며, 카메라 캡처 API를 사용하거나 캡처된 이미지의 EXIF 메타 데이터에서 다른 카메라 고유 매개 변수와 함께 직접 얻을 수 있습니다. 초점 거리를 고려할 때 피사체에서 카메라까지의 거리는 아래 시각화된 것처럼 피사체 눈의 물리적 크기에 정비례합니다. 

[그림 6] 

[그림 6] 피사체의 거리 (d)는 초점 거리 (f)와 유사한 삼각형을 사용하여 홍채의 크기에서 계산할 수 있습니다.

[그림 7]

[그림 7] 왼쪽 : 깊이 센서를 사용하지 않고 홍채 추적만으로 Pixel 2에서 미터 단위 거리를 cm 단위로 예측하는 MediaPipe Iris. 오른쪽 : 실제 깊이(Ground-truth depth)


이 방법의 정확도를 정량화하기 위해 200 명 이상의 참가자에 대해 전면을 향한 동기화된 비디오 및 깊이 이미지를 수집하여 iPhone 11의 깊이 센서와 비교했습니다. 우리는 레이저 거리 측정 장치를 사용하여 iPhone 11 깊이 센서의 오차가 최대 2 미터 거리에서 2 % 미만임을 실험적으로 확인했습니다. 우리의 평가는 홍채 크기를 사용한 깊이 추정에 대한 접근 방식의 평균 상대 오차가 4.3 % 이고 표준 편차가 2.4 % 임을 보여줍니다. 우리는 안경이 있거나 없는 참가자들에 대한 접근 방식을 테스트했으며 (참가자의 콘택트렌즈를 고려하지 않음) 안경이 평균 상대 오차를 4.8 % (표준 편차 3.1 %)로 약간 증가시키는 것을 발견했습니다. 우리는 안구 질환 (arcus senilis 또는 pannus와 같은)이 있는 참가자에 대해이 접근법을 테스트하지 않았습니다. MediaPipe Iris에는 특수 하드웨어가 필요하지 않다는 점을 고려할 때 이러한 결과는 다양한 비용 포인트를 가진 장치의 단일 이미지에서 메트릭 깊이를 얻을 수 있음을 시사합니다.

[그림 8] 추정 오차 히스토그램 (왼쪽)과 홍채 별 실제 거리와 추정 거리 비교 (오른쪽)

MediaPipe Iris 출시

우리는 데스크톱, 모바일 및 웹에서 실행할 수 있는 크로스 플랫폼 MediaPipe 파이프 라인으로 홍채 및 깊이 추정 모델을 출시합니다. 웹의 MediaPipe에 대한 최근 Google 개발자 블로그 게시물에 설명된 대로 WebAssembly 및 XNNPACK을 활용하여 데이터를 클라우드로 전송하지 않고 브라우저에서 로컬로 Iris ML 파이프 라인을 실행합니다.

[그림 9] 

[그림 9] MediaPipe의 WASM 스택을 사용하면 브라우저에서 로컬로 모델을 실행할 수 있습니다! 왼쪽 : 홍채 추적. 오른쪽 : EXIF 데이터가 있는 사진에서 계산된 홍채의 깊이. 여기에서 홍채 추적을 시도하고 여기에서 홍채 깊이 측정을 시도할 수 있습니다.


향후 방향

더 낮은 오류를 위해 더욱 안정적인 추적으로 MediaPipe Iris 모델을 확장하고 접근성 사용 사례에 배포할 계획입니다. 우리는 재현 가능한 연구, 신속한 실험 및 다양한 영역에서 새로운 아이디어 개발을 가능하게 하는 코드 공유를 강력히 믿습니다. 문서와 함께 제공되는 Model Card에는 이러한 모델의 사용이 Google의 AI 원칙에 부합하도록 의도된 용도, 제한 사항 및 모델 공정성이 자세히 설명되어 있습니다. 모든 형태의 감시 또는 식별은 명시적으로 범위를 벗어나며 이 기술로 활성화되지 않습니다. 우리는 이 홍채 인식 기능을 제공함으로써 더 넓은 연구 및 개발 커뮤니티에 제공하면 창의적인 사용 사례가 출현하여 책임감 있는 새로운 응용 프로그램과 새로운 연구 방법이 활성화되기를 바랍니다. 


MediaPipe의 더 많은 ML 솔루션은 솔루션 페이지 및 Google 개발자 블로그에서 최신 업데이트를 참조하십시오.


감사의 말

모델 평가 및 데이터 수집을 지원해 주신 Artsiom Ablavatski, Andrei Tkachenka, Buck Bourdon, Ivan Grishchenko 및 Gregory Karpiak에게 감사드립니다. 메시 기술을 개발 한 Yury Kartynnik, Valentin Bazarevsky, Artsiom Ablavatski; 데이터 준비를 위해 노력한 Aliaksandr Shyrokau와 주석 팀; Vidhya Navalpakkam, Tomer Shekel, Kai Kohlhoff의 도메인 전문 지식, Fan Zhang, Esha Uboweja, Tyler Mullen, Michael Hays 및 Chuo-Ling Chang (모델을 MediaPipe에 통합하는 데 도움) 이 기술을 구축하는 데 지속적인 도움을 주신 Matthias Grundmann, Florian Schroff 및 Ming Guang Yong 님께 감사드립니다. 


제목:  MediaPipe Iris:실시간 홍채 추적 및 깊이(MediaPipe Iris: Real-time Iris Tracking & Depth Estimation)
게시자 : Andrey Vakunov 및 Dmitry Lagun, Google Research 연구원
원본 링크: https://ai.googleblog.com/2020/08/mediapipe-iris-real-time-iris-tracking.html
구글 픽셀 4 및 픽셀 4 XL의 세로 모드 개선 블로그(한글): https://brunch.co.kr/@synabreu/52
Real-Time AR Self-Expression with Machine Learning 블로그(영문): https://ai.googleblog.com/2019/03/real-time-ar-self-expression-with.html
MediaPipe Face Mesh 오픈소스: https://google.github.io/mediapipe/solutions/face_mesh.html
MediaPipe Irish 오픈소스: https://google.github.io/mediapipe/solutions/iris
MediaPipe 솔루션 프레임워크(Hand Tracking, Object detection and tracking, Face Detection, Face Mesh, Hair Segmentation, 3D Object Detection): https://mediapipe.dev
MediaPipe 데모 웹사이트: https://viz.mediapipe.dev/demo/iris_tracking
MediaPipe on the Web 개발자 블로그(영문): https://developers.googleblog.com/2020/01/mediapipe-on-web.html
MediaPipe Iris Model Details: https://drive.google.com/file/d/1bsWbokp9AklH2ANjCfmjqEzzxO1CNbMu/view
구글의 AI 원칙(AI at Google: our principles) 블로그: https://www.blog.google/technology/ai/ai-principles/
MediaPipe KNIFT: Template-based feature matching 개발자 블로그(영문): https://developers.googleblog.com/search/label/MediaPipe
비전 시스템 용어 정리 참조: https://m.blog.naver.com/PostView.nhn?blogId=ldh9677&logNo=90020525954&proxyReferer=https:%2F%2Fwww.google.com%2F
이 블로그는 2020년 8월 6일(목), Google AI 리서치 블로그 기사를 영한 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari