Google рассказал о машинном обучении, лежащем в основе «сильного нажатия» Pixel 4, и о том, почему он избегал «силового нажатия»

В мартовском обновлении функций появилось множество возможностей, таких как «Карты и билеты», воспроизведение/пауза с помощью Motion Sense и планирование темной темы. Pixel 4 получил поддержку жеста «сильного нажатия», который служит более быстрой альтернативой длительному нажатию. Google AI сегодня подробно описал машинное обучение, лежащее в его основе.

Google начинает с утверждения, что задержка в 400-500 миллисекунд, связанная с длительным нажатием, «негативно сказывается на удобстве использования и обнаруживаемости, поскольку отсутствие немедленной обратной связи разрывает связь между действием пользователя и реакцией системы». Однако команда признает, что аппаратные подходы «дороги в разработке и интеграции», как показывает пример Apple Watch Series 6, которые, вероятно, отказались от Force Touch после изменений в дизайне watchOS 6 на этой неделе.

Когда палец пользователя прижимается к поверхности, его мягкие ткани деформируются и растекаются. Характер этого растекания зависит от размера и формы пальца пользователя, а также от его угла к экрану. В общих чертах, мы можем наблюдать несколько ключевых особенностей этого растекания (показано на рисунках): оно асимметрично относительно начальной точки контакта, а общий центр масс смещается вдоль оси пальца.

Поскольку у людей разные пальцы, Google не смог «кодировать эти наблюдения с помощью эвристических правил» и обратился к подходу машинного обучения.

Реклама — прокрутите, чтобы увидеть больше контента

Сеть намеренно оставили простой, чтобы минимизировать затраты на выводы на устройстве при работе одновременно с другими приложениями (обрабатывая примерно 50 мкс на кадр и используя менее 1 МБ памяти с помощью TensorFlow Lite).

Между тем, при принятии решения о том, как реализовать лежащую в основе технологию, исследование пользовательского опыта показало, что «пользователям трудно обнаруживать взаимодействия, основанные на силе, и что пользователи часто путали сильное нажатие с длительным нажатием из-за сложности в координации прилагаемой силы с продолжительностью контакта».

Это повлияло на решение Google не создавать полностью «новую модальность взаимодействия, основанную на силе». На Pixel 4 обнаружение силы используется для ускорения длительных нажатий. Это также означает, что существующие приложения могут использовать эти улучшения без каких-либо обновлений со стороны разработчиков.

Приложения, использующие GestureDetector или API View от Android, автоматически получат эти сигналы нажатия через существующие обработчики длительных нажатий. Разработчики, реализующие пользовательскую логику обнаружения длительных нажатий, могут получать эти сигналы нажатия через API классификации MotionEvent, представленный в Android Q.

Пользователь выполняет длительное нажатие (слева) и сильное нажатие (справа) на значок запуска.