brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Jun 29. 2020

픽셀 4에서 힘의 강도 기반 제스처 감지

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

터치 입력은 전통적으로 2차원 손가락 포인팅에 중점을 두고 있습니다. 탭핑 및 스 와이프 제스처 외에도 길게 누르는 것이 상호 작용을 위한 주요 대안 경로입니다. 그러나 사용자의 손가락이 400–500ms 동안 정지 상태를 유지해야 하는 시간 기준 임계 값으로 길게 누르면 감지됩니다. 본질적으로 시간 기반 임계 값은 즉각적인 피드백이 없기 때문에 사용자의 조치가 시스템의 응답에서 분리되므로 사용성 및 검색 가능성에 부정적인 영향을 미칩니다. 다행스럽게도 손가락은 위치보다 더 많은 것을 표현할 수 있는 동적 입력 장치입니다. 사용자가 표면을 터치할 때 손가락도 일정 수준의 힘을 표현할 수 있으며 시간 기반 임계 값의 대안으로 사용할 수 있습니다.


다양한 힘의 강도 기반(force-based) 상호 작용이 추구되었지만 터치 힘의 강도를 감지하려면 설계 및 통합에 비싼 전용 하드웨어 센서가 필요합니다. 게다가 연구에 따르면 사람들이 터치 힘의 강도를 제어하기가 어렵기 때문에 대부분의 실제 힘의 강도 기반 상호 작용은 하드웨어 힘의 센서의 전체 기능을 필요로 하지 않는 불연속 힘 수준(예 : 부드럽게(soft) vs. 세게(firm) 터치)에 중점을 둡니다.


최근 Pixel 4를 업데이트하기 위해,  보다 표현적인 터치 인터랙션 경험을 제공할 수 있는 힘 제스처 감지 방법을 개발했습니다. 사람의 손가락이 터치 센서와 상호 작용하는 방식을 연구함으로써 우리는 장거리를 보완하고 지원하는 경험을 설계했습니다. 앱이 이미 가지고 있지만 보다 자연스러운 제스처를 사용하는 프레스 상호 작용 이 게시물에서는 터치 감지 및 손가락 상호 작용의 핵심 원리, 터치 센서 데이터의 프레스 제스처를 인식하기 위해 기계 학습 알고리즘을 설계 한 방법 및 픽셀 장치의 사용자 경험에 통합하는 방법을 설명합니다.


터치 센서 기술 및 손가락 역학

정전식 터치 센서는 비전도성 유전체(Dielectric)(예를 들어, 유리)에 의해 분리된 2개의 전도성 전극(구동 전극(drive electrode) 및 감지 전극(sense electrode)으로 구성됩니다. 두 개의 전극은 약간의 전하를 유지할 수 있는 작은 커패시터()를 형성합니다. 손가락(또는 다른 전도성 물체)이 이 셀에 접근할 때 정전 용량의 강하로 측정될 수 있는 일부 전하를 '움직입니다(steal)'. 중요한 것은, 도난된 전하의 양이 손가락과 전극 사이의 거리에 반비례하기 때문에 손가락이 전극(다른 유리 층 아래 보호됨)과 접촉할 필요는 없습니다.

[그림 1]

[그림 1] 왼쪽: 손가락은 두 전극 주위의 투사된 필드에서 '스틸링' 전하로 터치 센서 셀과 상호 작용합니다. 오른쪽: 정전식 터치 센서는 유전체로 분리된 전극의 행과 열로 구성됩니다. 커패시턴스가 측정되는 셀에서 전극이 겹칩니다.


셀은 장치의 디스플레이 위에 매트릭스로 배열되지만 디스플레이 픽셀보다 밀도가 훨씬 낮습니다. 예를 들어, Pixel 4에는 2280 × 1080 픽셀 디스플레이가 있지만 32 × 15 셀 터치 센서가 있습니다. 고해상도 (최소 120Hz)로 스캔하면 이 셀의 판독 값이 손가락의 상호 작용 비디오를 형성합니다.

[그림 2] 사용자 탭핑(왼쪽), 누르기 (중간) 및 스크롤 (오른쪽)의 느린 터치 센서 기록.

정전식 터치 센서는 힘의 변화에 반응하지 않지만 디스플레이 위의 수 밀리미터 내의 거리 변화에 매우 민감하도록 조정되었습니다. 즉, 디스플레이 유리의 손가락 접촉은 센서를 중앙 부근에서 포화시켜야 하지만 손가락 접촉 주변(손가락이 구부리는 위치) 주위에 높은 동적 범위를 유지합니다.


사용자의 손가락이 표면에 닿으면 부드러운 근육 조직이 변형되어 퍼집니다. 이 스프레드의 특성은 사용자의 손가락 크기 및 모양과 화면 각도에 따라 다릅니다. 높은 수준에서, 우리는 이 스프레드에서 몇 가지 주요 특징을 볼 수 있습니다 (그림에 표시됨) : 초기 접촉점을 중심으로 비대칭이며 전체 축 중심이 손가락 축을 따라 이동합니다. 또한 일정 기간 동안 발생하는 동적 변경이므로 지속 시간이 길거나 넓은 영역의 접촉과는 다릅니다.

[그림 3] 

[그림 3] 터치 센서 신호는 손가락 접촉 중심 주위에 포화되어 있지만 가장자리에서 떨어집니다. 이를 통해 손가락 힘의 변화로 인한 손가락 접촉 모양의 작은 변형을 감지할 수 있습니다.


그러나 사용자와 손가락의 차이로 인해 이러한 관측 값을 휴리스틱 규칙으로 인코딩하기가 어렵습니다. 따라서 사용자 상호 작용 샘플에서 이러한 기능과 그 차이를 직접 학습할 수 있는 머신 러닝 솔루션을 설계했습니다.


터치 상호 작용을 위한 머신러닝

제스처 분류 문제로 이러한 터치 신호 분석에 접근했습니다. 즉, 힘 또는 접촉 확산과 같은 추상 매개 변수를 예측하려는 대신 버튼이나 스위치를 사용하는 것처럼 누르는 제스처를 감지하려고 했습니다. 이를 통해 분류를 잘 정의된 사용자 경험에 연결할 수 있었고, 사용자는 편안한 힘과 자세로 훈련하는 동안 제스처를 수행할 수 있었습니다.


우리가 디자인한 모든 분류 모델은 터치 경험에 대한 사용자의 높은 기대 내에서 작동해야 했습니다. 특히, 터치 상호 작용은 대기 시간에 매우 민감하며 실시간 피드백이 필요합니다. 사용자는 응용 프로그램이 손가락 움직임에 반응할 것으로 기대하며, 응용 프로그램 개발자는 시스템이 사용자가 수행하는 제스처에 대한 정보를 적시에 제공하기를 기대합니다. 즉, 프레스 제스처의 분류는 실시간으로 이루어져야 하며 손가락의 힘이 정점에 도달하는 순간 상호 작용을 트리거할 수 있어야 합니다.


따라서 합성곱 신경망(CNN)과 순환 신경망(RNN) 구성 요소를 결합한 신경망을 설계했습니다. CNN은 신호에서 관찰한 공간적 특징에 참여할 수 있는 반면 RNN은 시간적 개발에 참여할 수 있습니다. RNN은 또한 일관된 런타임 환경을 제공합니다. 각 프레임은 터치 센서에서 수신될 때 네트워크에서 처리되며 RNN 상태 벡터는 프레임간에 일괄 처리되지 않고 유지됩니다. 네트워크는 다른 응용 프로그램과 동시에 실행될 때 장치 내 유추 비용을 최소화하기 위해 의도적으로 단순하게 유지되었습니다 (TensorFlow Lite를 사용하여 프레임당 약 50 µs의 처리 및 1MB 미만의 메모리 사용).

[그림 4] 분류 모델의 아키텍처 개요

이 모델은 프레스 제스처 및 기타 일반적인 터치 상호 작용 (탭핑, 스크롤, 드래그 및 강제 없이 길게 누르기)의 데이터셋에 대해 학습했습니다. 각 프레임 후에 모델을 평가할 때 각 샘플의 레이블 확률 분포를 일시적으로 형성하는 손실 함수를 설계하고 시간 증가 가중치를 오류에 적용했습니다. 이를 통해 출력 확률이 일시적으로 매끄럽고 올바른 제스처 분류로 수렴되었습니다.


사용자 경험 통합

우리의 UX 연구에 따르면 사용자는 힘의 강도 기반의 상호 작용을 찾기가 어려우며, 사용자는 접촉 시간에 따라 적용되는 힘의 양을 조정하기가 어렵기 때문에 길게 누르기(long press)와 세게 누르기(force press)를 자주 혼동했습니다. 따라서 힘을 기반으로 새로운 상호 작용 방식을 만드는 대신 통합된 프레스 제스처에서 힘을 사용하여 길게 누르기 제스처 상호 작용을 가속화함으로써 사용자 경험을 향상시키는 데 중점을 두었습니다. 프레스 제스처는 시간 임계 값이 여전히 유효하지만 힘이 사용될 때 결과와 사용자의 행동 사이에 더 강한 연결을 제공하는 긴 프레스 제스처와 동일한 결과를 갖습니다.

[그림 5] 사용자는 실행기 아이콘을 길게 (왼쪽) 누르고 단단히 (오른쪽) 누릅니다.

이는 개발자가 앱을 업데이트할 필요 없이 이 제스처를 활용할 수 있음을 의미합니다. Android의 GestureDetector 또는 View API를 사용하는 애플리케이션은 기존의 길게 누르기 핸들러를 통해 이러한 프레스 신호를 자동으로 가져옵니다. 맞춤형 길게 누르기 감지하는 로직을 구현하는 개발자들은 Android Q에 도입된 MotionEvent classification API를 통해 이러한 누르기 신호를 수신할 수 있습니다.


이러한 머신러닝 알고리즘과 신중한 상호 작용 디자인의 통합을 통해 Pixel 사용자에게 보다 표현적인 터치 경험을 제공할 수 있었습니다. 우리는 Pixel의 터치 경험을 개선하고 새로운 형태의 터치 상호 작용을 탐색하기 위해 이러한 기능을 계속 연구하고 개발할 계획입니다.


감사의 말

이 프로젝트는 Android UX, Pixel 소프트웨어 및 Android 프레임워크 팀 간의 공동 작업입니다.


원본 제목: 픽셀 4에서 힘의 강도 기반 제스처 감지(Sensing Force-Based Gestures on the Pixel 4)
게시자: Philip Quinn 및 Wenxin Feng, Android UX 연구 과학자
원본 링크: https://ai.googleblog.com/2020/06/sensing-force-based-gestures-on-pixel-4.html
New music controls, emoji and more features dropping for Pixel 블로그: https://www.blog.google/products/pixel/more-pixel-features-dropping/
이 블로그는 2020년 6월 24일(수), Google AI 리서치 블로그 기사를 영한 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari