АКТИВАЦИЯ ОРГАНОВ УПРАВЛЕНИЯ НА ОСНОВЕ ОТРАЖЕНИЯ
ACTIVATION OF REFLECTION BASED CONTROL ELEMENTS

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[1] В электронных устройствах используются различные защитные механизмы для предотвращения неавторизованного доступа к данным. Например, некоторые электронные устройства включают в себя признаки, которые предлагают пользователю ввести секретный код или ПИН-код прежде чем предоставить пользователю доступ к данным, хранящимся на устройстве. Защита конфиденциальности ПИН-кода представляет ряд проблем. Например, пользователи часто забывают ПИН-коды или секретные коды, если одни слишком длинные или сложные. Более короткие ПИН-коды, хотя их легче запомнить, подвержены опасности ʺподглядыванияʺ посторонними лицами, находящимися в пределах прямой видимости от электронного устройства. Например, постороннее лицо может узнать защитный ПИН-код, непосредственно заглядывая через плечо пользователя, когда пользователь вводит ПИН-код в общественном месте. Другие технологии защиты на основе изображений, например сканирование сетчатки и обнаружение отпечатка пальца, могут быть сложны в реализации.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[2] Описанные и заявленные здесь реализации позволяют решать вышеупомянутые проблемы за счет активации органа управления пользовательского интерфейса на основании выравнивания между изображением, отраженным на отражающей поверхности электронного устройства и физическим положением на отражающей поверхности.
[3] Эта сущность изобретения призвана представлять в упрощенной форме основные принципы, которые дополнительно описаны в нижеследующем подробном описании. Эта сущность изобретения не призвана идентифицировать ключевые признаки или существенные признаки заявленного изобретения, а также не подлежит использованию для ограничения объема заявленного изобретения.
[4] Здесь также описаны и упомянуты другие реализации.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[5] Фиг. 1 демонстрирует иллюстративную систему для приведения в действие органа управления электронного устройства с использованием неотображаемого курсора.
[6] Фиг. 2 демонстрирует пример использования неотображаемого курсора, который приводит в действие орган управления электронного устройства.
[7] Фиг. 3 демонстрирует иллюстративное окружение для осуществления операций калибровки признака неотображаемого курсора электронного устройства.
[8] Фиг. 4 демонстрирует другое иллюстративное окружение для осуществления операций калибровки признака неотображаемого курсора электронного устройства.
[9] Фиг. 5A демонстрирует иллюстративный способ идентификации позиции неотображаемого курсора на отражающей поверхности электронного устройства.
[10] Фиг. 5B дополнительно демонстрирует иллюстративный способ, показанный на фиг. 5A.
[11] Фиг. 6 демонстрирует иллюстративную операцию калибровки в реальном времени, которую можно использовать для оценивания расстояния между пользователем и отражающей поверхностью электронного устройства.
[12] Фиг. 7 демонстрирует иллюстративные операции для использования признака неотображаемого курсора электронного устройства.
[13] Фиг. 8 демонстрирует иллюстративный орган управления пользовательского интерфейса для приведения в действие органа управления электронного устройства с использованием неотображаемого курсора.
[14] Фиг. 9 демонстрирует иллюстративную систему, которая может быть полезна в реализации описанной технологии.
[15] Фиг. 10 демонстрирует другую иллюстративную систему, которая может быть полезна в реализации описанной технологии.
ПОДРОБНОЕ ОПИСАНИЕ
[16] Фиг. 1 демонстрирует иллюстративную систему 100 для приведения в действие органа управления электронного устройства 102 с использованием неотображаемого курсора 112. Электронное устройство 102 может представлять собой, например, сотовый телефон (например, смартфон), планшетный компьютер, портативный компьютер, карманный персональный компьютер, игровую систему, домашнюю охранную систему, банкомат или любое другое электронное устройство с отражающей поверхностью 108 (например, экраном дисплея) и датчиком 110 (например, камерой), который собирает информацию из окружения пользователя. Электронное устройство 102 включает в себя признак, использующий неотображаемый курсор 112, который позволяет пользователю 104 выбирать положение на отражающей поверхности 108 для приведения в действие органа управления электронного устройства 102. Неотображаемый курсор 112 является не изображением, электронно генерируемым электронным устройством 102, но отраженным изображением от источника, внешнего по отношению к электронному устройству 102.
[17] Неотображаемый курсор 112 может представлять собой, например, отраженный участок лица пользователя, например, глаза, носа, рта и т.д. пользователя. На фиг. 1 неотображаемый курсор 112 представляет собой отраженное изображение правого глаза 122 пользователя. Видимая позиция неотображаемого курсора 112 (например, отраженного изображения) относительно отражающей поверхности 108 является, в любой данный момент времени, позицией, изменяющейся в зависимости от точки зрения данного наблюдателя. ʺФактическаяʺ позиция неотображаемого курсора определяется здесь как позиция относительно единичной точки 122 наблюдения. На фиг. 1 точкой 122 наблюдения является доминантный глаз пользователя 104. Например, пользователь 104 может наблюдать позицию неотображаемого курсора 112 на отражающей поверхности 108, наблюдая отражающую поверхность доминантным глазом, закрыв при этом не доминантный глаз.
[18] Когда признак неотображаемого курсора инициирован, датчик 110 собирает данные из внешнего окружения электронного устройства 102 в направлении пользователя 104. Датчиком 110 может быть, например, один или более датчиков камеры (например, датчики типа CCD) в камере, IR датчики, датчики с восприятием глубины, RGB-датчики и т.д. В одной реализации, датчиком 110 является датчик типа CCD в камере, который непрерывно отслеживает лицо пользователя 104.
[19] Для приведения в действие органа управления электронного устройства 102 с использованием неотображаемого курсора 112, пользователь 104 держит электронное устройство 102 таким образом, чтобы пользователь 104 мог видеть неотображаемый курсор 112 в отражающей поверхности 108. Пользователь наблюдает неотображаемый курсор 112 доминантным глазом (например, глазом, выбранным в ходе калибровки устройства) и ориентирует отражающую поверхность 108 таким образом, чтобы неотображаемый курсор 112, относительно доминантного глаза, выравнивался с положением на отражающей поверхности 108. В некоторых вариантах применения, ориентирование отражающей поверхности 108 предполагает удержание электронного устройства 102 таким образом, чтобы пользователь 104 мог наблюдать неотображаемый курсор 112 и/или свое отражение 114 в отражающей поверхности 108, как показано на фиг. 1. В других вариантах применения, пользователь 104 не удерживает электронное устройство 102. Напротив, ориентирование отражающей поверхности 108 предполагает другие регулировочные действия, например, ориентирование тела пользователя 104 относительно отражающей поверхности 108 или наклон отражающей поверхности 108 относительно одной или более осей.
[20] Пользователь 104 осуществляет действие выбора для выбора органа управления, отображаемого или наблюдаемого на отражающей поверхности 108 в положении, выровненном с неотображаемым курсором 112. Действием выбора может быть, например, слышимый звук, например, короткий щелчок языком или голосовая команда, обнаружимое перемещение, например, моргание, движение губ, ввод через экран касания и т.д. Например, пользователь 104 может пожелать выбрать число ʹ3ʹ на клавишной панели 120 отражающей поверхности 108. Для этого пользователь 104 ориентирует отражающую поверхность 108 электронного устройства 102 таким образом, чтобы неотображаемый курсор 112 (например, отраженное изображение левого глаза пользователя) навис над числом ʹ3ʹ на клавишной панели 120. Затем пользователь выбирает число ʹ3ʹ, осуществляя действие выбора при поддержании выравнивания между неотображаемым курсором и числом ʹ3ʹ. Пользователь может, например, выбирать число ʹ3ʹ, издавая слышимый шум, регистрируемый микрофоном 130. Альтернативно, пользователь может выбирать число ʹ3ʹ коротким прикосновением к области отражающей поверхности 108 (например, если отражающая поверхность 108 является экраном касания). Также могут быть предусмотрены различные другие действия выбора.
[21] Обнаружив действие выбора, электронное устройство 102 использует данные от датчика 110 для определения позиции неотображаемого курсора 112 в момент действия выбора. Как упомянуто выше, позиция неотображаемого курсора 112 задается относительно точки 122 наблюдения.
[22] Электронное устройство 102 определяет, какие, при наличии, органы управления, расположенные на отражающей поверхности 108, включают в себя область, которая выровнена (например, перекрывается) с позицией неотображаемого курсора 112, при наблюдении из точки 122 наблюдения в момент действия выбора. Этот элемент ʺвыбираетсяʺ и используется электронным устройством 102 для инициирования одного или более действий обработки. Раскрытую технологию можно использовать в различных приложениях, в том числе, приложениях безопасности, требующих аутентификации пользователя для доступа к определенным приложениям, доступа к данным и/или общего использования электронного устройства 102. Например, электронное устройство 102 может предлагать пользователю 104 ввести аутентификационную последовательность (например, ПИН-код или секретный код) для осуществления доступа к данным, наблюдаемым из электронного устройства 102. Поскольку положения, выбираемые пользователем с помощью неотображаемого курсора 112, не видны кроме как вдоль линии 116 взгляда, соответствующей заданной точке 122 наблюдения (например, доминантного глаза пользователя), пользователь 104 может непосредственно вводить аутентификационную последовательность в общественном месте, не подвергаясь опасности компрометации аутентификационной последовательности другими лицами в непосредственной близости от отражающей поверхности 108. Например, пользователь 104 может вводить аутентификационную последовательность из одной цифры, выравнивая неотображаемый курсор 112 и осуществляя действие выбора. Те же или аналогичные этапы можно повторять для ввода аутентификационной последовательности из нескольких цифр.
[23] В некоторых реализациях, отражающая поверхность 108 не отображает клавишную панель 120, когда пользователь 104 обеспечивает ввод с использованием неотображаемого курсора 112. Например, пользователь 104 имеет возможность использовать неотображаемый курсор 112 для выбора других органов управления или изображений, отображаемых на отражающей поверхности 120 или выбора участков отражающей поверхности 120, которые вовсе не отображают никаких изображений.
[24] Электронное устройство 102 может использовать различные методы идентификации позиции неотображаемого курсора 112, в том числе, например, методы распознавания образов. Например, датчиком 110 может быть камера, которая собирает данные изображения из окружения пользователя. Электронное устройство 102 может использовать один или более модулей распознавания образов для распознавания признаков лиц пользователей, например, центра лица или глаза пользователя. Затем электронное устройство 102 может использовать другие сохраненные или динамически определяемые параметры (например, информацию позиции, оценок глубины и т.д.) для оценивания позиции, где неотображаемый курсор 112 появляется на отражающей поверхности 108.
[25] Фиг. 2 демонстрирует иллюстративную систему 200 включающую в себя неотображаемый курсор 212, который приводит в действие орган управления электронного устройства 202. Электронное устройство 202 включает в себя камеру 218, которая отслеживает пользователя (не показан), когда признак устройства, использующий неотображаемый курсор 212, предлагает пользователю осуществить ввод. Когда отражающая поверхность 208 (например, экран дисплея) электронного устройства 202 ориентирована тем или иным образом относительно пользователя, пользователь может видеть отражение 214 своего лица на отражающей поверхности 208 (как показано в виде A на фиг. 2).
[26] В ходе операции калибровки (например, как описано ниже в отношении других фигур), пользователь выбирает признак лица в качестве источника курсора для неотображаемого курсора 212. Позиция неотображаемого курсора 212 задается как позиция источника курсора, отраженного в отражающей поверхности 208 при наблюдении из заданной точки наблюдения. Например, точкой наблюдения может быть доминантный глаз пользователя. На фиг. 2, пользователь задает свой левый глаз как источник курсора. Соответственно, позиция неотображаемого курсора 212 задается позицией левого глаза пользователя, отраженного в отражающей поверхности 208 при наблюдении вдоль линии взгляда доминантного глаза пользователя. В других реализациях, пользователь может выбирать другие лицевые или телесные признаки в качестве источника курсора для неотображаемого курсора 112, например, кончик носа пользователя, центр рта пользователя, указательный палец пользователя и т.д.
[27] Вид B на фиг. 2 демонстрирует клавишную панель 220, отображаемую на отражающей поверхности 208 электронного устройства 202. Вид C демонстрирует выравнивание числа ʹ1ʹ на клавишной панели 220 и неотображаемого курсора 212, при наблюдении из заданной точки наблюдения. При поддержании выравнивания между неотображаемым курсором 212 и числом ʹ1ʹ, пользователь осуществляет действие выбора для выбора числа ʹ1ʹ. Действием выбора может быть, например, слышимый звук (например, короткий щелчок языком), моргание, движение губ, ввод касанием отражающей поверхности и т.д.
[28] Обнаружив действие выбора, электронное устройство 202 анализирует данные, собранные камерой 218, для идентификации позиции неотображаемого курсора 212 относительно отражающей поверхности 208. Например, электронное устройство 202 может анализировать изображение пользователя, полученное в момент действия выбора для определения позиции источника курсора в поле зрения камеры 218. В одной реализации, этот анализ сравнивает вновь взятое изображение пользователя с изображением пользователя, ранее полученным в ходе операции калибровки. Идентифицированная позиция источника курсора в поле зрения камеры отображается в соответствующую позицию на линии взгляда из заданной точки наблюдения.
[29] Определение позиции неотображаемого курсора 212 может осуществляться разнообразными способами с использованием различных методов, включающих в себя, без ограничения, методы распознавания образов и/или вычисления евклидова расстояния.
[30] Определив позицию неотображаемого курсора 212, электронное устройство 202 ʺвыбираетʺ любой контент, отображаемый или наблюдаемый в области, перекрывающей позицию неотображаемого курсора 212. Этот выбор контента принимается в качестве входного сигнала одним или более модулями электронного устройства 202 и используется для инициирования одного или более действий обработки, например, предоставления доступа к электронному устройству 202 и т.д.
[31] Фиг. 3 демонстрирует иллюстративное окружение 300 для осуществления операций калибровки признака неотображаемого курсора электронного устройства 302. В ходе операций 300 калибровки, изображение 314 пользователя получается с помощью камеры 318 электронного устройства 302. Пользователь сообщает электронному устройству 302 дополнительную информацию для идентификации источника курсора в поле зрения камеры 318 и отображения видимой позиции источника курсора на позицию, где отражение источника курсора появляется на отражающей поверхности 308, при наблюдении из заданной точки наблюдения (например, на линии взгляда пользователя). В одной реализации, заданная точка наблюдения соответствует линии взгляда выбранного доминантного глаза пользователя.
[32] При калибровке признака неотображаемого курсора электронного устройства 302, пользователь осуществляет одну или более из описанных ниже иллюстративных операций 300 калибровки, либо отдельно, либо в различных комбинациях. В одной иллюстративной операции калибровки, электронное устройство 302 отображает текущее изображение пользователя на отражающую поверхность 308, и пользователь выборочно переориентирует отражающую поверхность 308, пока перекрестье 312, отображаемое на отражающей поверхности 308, не выровняется с центром текущего изображения пользователя. Когда ʺцентр лицаʺ пользователя выравнивается с перекрестьем 312, пользователь осуществляет действие выбора, и камера 318 сохраняет изображение 314 пользователя. Пользователь может осуществлять действие выбора по-разному, например, касаясь участка отражающей поверхности 308 или производя шум, обнаружимый с помощью микрофона электронного устройства 302 (например, звук ʺщелчкаʺ языком, голосовую команду и т.д.). Таким образом, пользователь сообщает электронному устройству 302 опорную точку (например, центр лица), которую затем можно идентифицировать в других изображениях пользователя. Например, электронное устройство 302 может использовать пропорции лица изображения 314 для определения, где располагается этот идентифицированный ʺцентр лицаʺ на других изображениях пользователя.
[33] При использовании признака неотображаемого курсора, пользователь держит электронное устройство 302 в ʺестественной позиции удержанияʺ. Отражение 316 представляет собой изображение, наблюдаемое из заданной точки наблюдения, когда пользователь держит электронное устройство 302 в естественной позиции удержания. Заметим, что позиция и ориентация отражения 316 могут отличаться от позиции и ориентации изображения 314. Например, пользователь может центрировать изображение 314 на перекрестье 312, вытягивая руку чрезмерно удлиненным или напряженным образом. Поэтому альтернативные операции калибровки позволяют пользователю изменять изображение 314, чтобы оно в большей степени напоминало отражение 316.
[34] На фиг. 3 отражающая поверхность 308 отображает два квадранта изображения 314 с центром в перекрестье 312. В одной иллюстративной калибровке пользователь держит электронное устройство 302 в естественной позиции удержания и наблюдает отражение 316 через заданную точку наблюдения (например, доминантный глаз). Если центр отражения 316 не выровнен с центром изображения 314, пользователь сдвигает изображение 314 в одном или более направлениях. Например, пользователь может проводить пальцем в данном направлении по отражающей поверхности 308 для перемещения изображения 314 в этом направлении. По достижении этого выравнивания двух центров лица, пользователь обеспечивает ввод для подтверждения повторного позиционирования изображения 314. Например, пользователь может обеспечивать ввод, касаясь участка отражающей поверхности (например, как показано на фиг. 4) или производя слышимый шум, регистрируемый с помощью микрофона электронного устройства. Это электронное устройство 302 использует эту калибровку для вычисления коэффициента смещения, который сохраняется для последующего использования в ходе эксплуатации признака неотображаемого курсора.
[35] В другой иллюстративной операции калибровки, пользователь масштабирует (например, изменяет уровень трансфокации) и/или вращает изображение 314 относительно отраженного изображения 316. Например, пользователь имеет возможность обеспечения ввода через экран касания для масштабирования изображения 314 (например, с использованием щипкового движения пальцами) или поворачивать изображение 314 (например, вращая два пальца, касающиеся экрана), чтобы изображение 314 в большей степени напоминало отражение 316. Когда пользователь заканчивает манипулировать изображением 314 для выравнивания изображения 314 с отражением 316, пользователь обеспечивает ввод для подтверждения перемасштабирования изображения 314. Электронное устройство 302 использует эту калибровку для вычисления коэффициента масштабирования, который сохраняется для последующего использования в ходе эксплуатации признака неотображаемого курсора.
[36] Пользователь имеет возможность повторно регулировать коэффициенты смещения и масштабирования, пока изображение 314 и отражение 316 не будут правильно выровнены. Когда пользователь заканчивает манипулировать изображением 314, электронное устройство 302 сохраняет коэффициенты масштабирования и смещения для будущего использования.
[37] Вышеописанная методология (например, ʺповторное позиционированиеʺ изображения 314) обеспечивает электронное устройство 302 проективной метрикой для проецирования опорной точки, наблюдаемой камерой 318 в позицию на отражающей поверхности 308, где опорная точка появляется при наблюдении из заданной точки наблюдения, когда электронное устройство 302 удерживается в естественной позиции удержания. Если, например, электронное устройство 302 идентифицирует центр лица пользователя в текущем изображении пользователя, электронное устройство 302 может использовать сохраненные коэффициенты масштабирования и смещения для вычисления проективной метрики и определения, где располагается отражение этого центра лица на отражающей поверхности 308 при наблюдении из заданной точки наблюдения.
[38] Фиг. 4 демонстрирует другое иллюстративное окружение 400 для осуществления операций калибровки признака неотображаемого курсора электронного устройства 402. Согласно фиг. 4, пользователь задает источник 420 курсора для неотображаемого курсора. В одной реализации, источником 420 курсора является доминантный глаз пользователя, поскольку его легко наводить на цель; однако, в других реализациях, источником 420 курсора является другая часть пользователя, например, нос, рот, палец и т.д. Электронное устройство 402 отображает изображение 414 пользователя на отражающей поверхности 408, и пользователь отрывисто касается отраженного признака лица изображения 414 для выбора этого признака в качестве источника 420 курсора. Если, например, пользователь отрывисто касается отраженного изображения своего доминантного (левого) глаза (как показано), отражение этого глаза становится неотображаемым курсором в ходе эксплуатации признака неотображаемого курсора.
[39] В другой иллюстративной операции калибровки, пользователь управляет меткой позиции на отражающей поверхности 408 (например, путем перетаскивания, нажатия кнопок управления и т.д.) и отображает метку позиции в отраженное изображение источника 420 курсора в изображении 414. После выравнивания метки позиции с отражением источника 420 курсора, пользователь обеспечивает ввод для подтверждения задания источника 420 курсора. Например, пользователь может обеспечивать ввод, касаясь участка отражающей поверхности (например, как показано на фиг. 4) или производя слышимый шум, регистрируемый с помощью микрофона электронного устройства.
[40] Электронное устройство 402 сохраняет информацию смещения, которая задает разделение между заданной опорной точкой (например, идентифицированным центром лица пользователя) и позицией источника 420 курсора. С использованием этой информации смещения, электронное устройство 402 получает возможность идентифицировать позицию источника 420 курсора относительно идентифицированной опорной точки в текущем изображении, полученном камерой 418. Затем электронное устройство 402 может проецировать позицию источника 420 курсора из системы координат камеры 418 в систему координат доминантного глаза пользователя.
[41] Фиг. 5A и 5B демонстрируют аспекты иллюстративного способа 500 идентификации позиции неотображаемого курсора на отражающей поверхности 508 электронного устройства 502. Этот способ является лишь одним из нескольких пригодных способов. В ходе начальной калибровки, пользователь идентифицирует признак лица, который играет роль источника 506 курсора (например, доминантный (левый) глаз пользователя). Отражение этого признака играет роль неотображаемого 522 курсора (например, как показано на фиг. 5B), и его позиция задается относительно конкретной точки наблюдения. На фиг. 5A-5B точка наблюдения находится на линии взгляда доминантного глаза пользователя.
[42] Для использования признака неотображаемого курсора, пользователь держит электронное устройство 502 в естественной позиции удержания, что позволяет пользователю наблюдать свое отражение 516 в отражающей поверхности 508 (например, как показано на фиг. 5B). В естественной позиции удержания, источник 506 курсора находится на расстоянии ʹdʹ от отражающей поверхности 508. Расстояние ʹdʹ может быть параметром, который выводится, вычисляется или оценивается в ходе операций предварительной или в реальном времени калибровки электронного устройства 502. Иллюстративный этап калибровки в реальном времени для идентификации ʺdʺ описан ниже со ссылкой на фиг. 6. В других реализациях расстояние ʹdʹ определяется с использованием камеры с восприятием глубины (не показана).
[43] В иллюстрируемом способе, предполагается, что лицо пользователя является плоским (например, располагается в плоскости 510 лица). В других реализациях можно использовать более сложную математику, чтобы учесть топологические различия в направлении z по поверхности лица пользователя.
x
y
z
z
x
y
z
z
[44] Первая система координат (x,y,z), далее ʺсистема координат доминантного глазаʺ, задается так, что ее начало отсчета имеет общие оси координат x и y с источником 506 курсора. Начало отсчета первой системы координат располагается в точке, проецируемой позади отражающей поверхности 508 на расстояние ʹdʹ. вторая система координат (xʹ,yʹ,zʹ), далее ʺсистема координат камерыʺ, задается так, что ее начало отсчета имеет общие оси координат x и y с камерой 518. Начало отсчета второй системы координат располагается в точке, проецируемой позади отражающей поверхности 508 на расстояние ʹfʹ, где ʹfʹ представляет фокусное расстояние камеры. Начало отсчета системы координат доминантного глаза (x,y,z) отстоит от начала отсчета системы координат камеры (xʹ,yʹ,zʹ) на расстояние ʹtʹ, где t=[t,t,t] и t=d-f. Опорная точка 504 отстоит от начала отсчета системы координат доминантного глаза (x,y,z) на расстояние ʹaʹ, где a=[a,a,a]). Опорной точкой 504 может быть любой признак, но на фиг. 5A-5B показано, что это центр лица пользователя. В этой реализации, a=0 поскольку лицо пользователя предполагается плоским.
r
r
p
p
p
p
r
r
[45] Точка (xʹ,yʹ) представляет позицию опорной точки 504 (например, центр лица пользователя) на отражающей поверхности 508 в системе координат камеры (xʹ,yʹ,zʹ). Точка (xʹ,yʹ) представляет позицию источника 506 курсора, проецируемого на отражающую поверхность 508 в системе координат камеры (xʹ, yʹ, xʹ). Другая точка (x,y) представляет позицию источника 506 курсора, отраженного на отражающей поверхности 508 в системе координат доминантного глаза (x,y,z), тогда как (x,y) представляет позицию опорной точки 504, отраженной на отражающей поверхности 508 в системе координат доминантного глаза (x,y,z).
p
p
[46] Для вычисления позиции (x,y) неотображаемого курсора в системе координат доминантного глаза (x,y,z), электронное устройство 502 может применять следующие (иллюстративные) уравнения:
x
y
x
y
[47] В вышеприведенных уравнениях (1) и (2), A=[A,A] представляет коэффициент масштабирования, тогда как B=[B,B] представляет коэффициент смещения. В одной реализации, коэффициент (B) смещения и коэффициент (A) масштабирования получаются в процессах предварительной калибровки, например, коэффициенты смещения и масштабирования, рассмотренные выше со ссылкой на фиг. 3. В одной реализации, коэффициент (A) масштабирования и коэффициент (B) смещения задаются нижеследующими уравнениями (3) и (4):
Используя эти значения для A и B, уравнения 1 и 2 можно преобразовать в уравнения (5) и (6) следующим образом:
[48] В ходе процессов предварительной калибровки, электронное устройство 502 также может вычислять и сохранять значение смещения (dx,dy), задающее разделение между опорной точкой 504 и источником 506 курсора в системе координат камеры (как показано на фиг. 5B).
r
r
[49] В ходе эксплуатации признака неотображаемого курсора, камера 518 записывает изображение пользователя, когда пользователь держит электронное устройство 502 в естественной позиции удержания. Модули электронного устройства используют записанное изображение для идентификации опорной точки 504. Когда опорной точкой 504 является центр лица пользователя (как на фиг. 5), модули электронного устройства идентифицируют опорную точку 504 путем разбиения область 530 лица в записанном изображении с последующей идентификацией центра (например, центра тяжести) лица для задания значения для точки xʹ,yʹ в системе координат камеры, представленной как точка (cx,cy) на фиг. 5B.
[50] Используя значение смещения (dx,dy) и значение (cx,cy), можно определить значение (csrx,csry) для позиции источника неотображаемый курсора следующим образом:
p
p
Если в качестве источника 522 курсора выбран доминантный глаз пользователя, точка (csrx,csry) равна (x,y) (согласно вышеприведенным уравнениям (5) и (6)).
[51] При использовании признака неотображаемого курсора, расстояние ʺdʺ между лицом пользователя и отражающей поверхностью 508 может отличаться от такого расстояния в ходе начальной калибровки. В таком случае, может осуществляться дополнительная регулировка калибровки в реальном времени для регулировки коэффициента A масштабирования. Один пример калибровки в реальном времени рассмотрен ниже со ссылкой на фиг. 6.
[52] Фиг. 6 демонстрирует иллюстративную операцию 600 калибровки в реальном времени, которую можно использовать для оценивания расстояния между пользователем и отражающей поверхностью 608 электронного устройства 602. Камера 618 на электронном устройстве 602 получает изображение 614 пользователя, например, после инициирования признака неотображаемого курсора. В одной реализации, пользователь держит электронное устройство 602 в естественной позиции удержания при получении изображения 614. Модули электронного устройства 602 идентифицируют границу 620 лица пользователя в изображении 614.
[53] Признак неотображаемого курсора использует коэффициент (A) масштабирования, который можно вычислять в реальном времени следующим образом:
0
0
В уравнении (9) ʺAʺ - первоначально вычисленный коэффициент (A) масштабирования, как в уравнениях (1) и (2), на основании первоначального калибровочного расстояния до пользователя ʹdʹ. ʹdʹ между камерой 618 и пользователем можно оценивать с использованием следующей пропорции:
(10)
[0054]
Поэтому калибровку в реальном времени постоянной ʹAʺ можно определить как:
(11)
где ʺNew_Face_Areaʺ - площадь лица пользователя, определенная в реальном времени, и ʺInitial_Face_Areaʺ - площадь лица пользователя, определенная в ходе начальной калибровки.
p
p
[55] В других реализациях расстояние ʹdʹ оценивается путем измерения ширины лица и/или высоты лица вместо площади лица. Оценивая расстояние ʹdʹ таким образом, электронное устройство 602 может регулировать постоянную ʺAʺ, используемую в вышеприведенных уравнениях (1) и (2) для вычисления координат (x,y) неотображаемого курсора.
[56] В одной реализации, регистрирующее устройство используется для непосредственного измерения расстояния между электронным устройством 602 и лицом пользователя. Например, пригодные регистрирующие устройства могут включать в себя камеру с восприятием глубины или ультразвуковой/лазерный датчик расстояния.
[57] С другой стороны, постоянная ʺBʺ, появляющаяся в вышеприведенных уравнениях 1 и 2, не подлежит повторному вычислению даже когда ʹdʹ изменяется, поскольку ʺBʺ можно вычислять независимо от расстояния, как показано в нижеследующем уравнении 12:
(12)
[58] Вышеописанная методология основана на некоторых предположениях, которые можно корректировать в других реализациях, например, реализациях с применением более сложной математики. Например, вышеописанная методология исходит из того, что отражающая поверхность 508 является плоской и примерно параллельной плоскостности лица пользователя, и что лицо пользователя также является плоским. Другие реализации, не описанные здесь, могут учитывать поворот электронного устройства 502 относительно плоскости 510 лица и/или поворот плоскости 510 лица относительно отражающей поверхности 508.
[59] В другой реализации (не показана), другая математическая конструкция используется для вычисления позиции неотображаемого курсора в системе, где источнику 506 курсора разрешено перемещаться (например, в плоскости x-y) независимо от плоскости 510 лица и отражающей поверхности 508. Например, игровая система может включать в себя один или более датчиков, которые определяют позицию и/или перемещение пользователя относительно принимающего устройства. Если источником 506 курсора является рука пользователя, перемещение источника 506 курсора не зависит от плоскости 510 лица и от отражающей поверхности 508 игровой системы. В этом случае, различные уравнения и данные, собранные от различных датчиков, можно использовать для определения позиции неотображаемого курсора. Технология датчиков, применимая в этой и других реализациях, включает в себя, без ограничения, RGB-датчики, датчики с восприятием глубины, тепловые датчики, стереоскопические датчики, сканирующие лазерные датчики, ультразвуковые датчики, датчики на миллиметровых волнах и т.д.
[60] В одной реализации, признак неотображаемого курсора позволяет пользователю вводить защитный ПИН-код в банкомат. Поскольку банкоматы обычно имеют большие отражающие поверхности и упрощенные клавишные панели (например, 4 ряда, состоящих из ʹ123ʹ, ʹ456ʹ, ʹ789ʹ и ʹ0ʹ), использование признака неотображаемого курсора может потребовать более драматичных, более размашистых жестов, чем те, которых обычно достаточно для ввода ПИН-кода на мобильном устройстве, например, сотовом телефоне. Для повышения защиты безопасности, банкоматы могут реализовать признак неотображаемого курсора совместно с более сложными клавишными панелями. Например, клавишная панель может состоять из следующих пяти рядов: ʹ1234567890ʹ, ʹ4567890123ʹ, 7890123456ʹ, ʹ0123456789ʹ, 3456789012ʹ).
[61] Фиг. 7 демонстрирует иллюстративные операции 700 для использования признака неотображаемого курсора электронного устройства. Операция 702 позиционирования позиционирует отражающую поверхность электронного устройства таким образом, чтобы пользователь мог наблюдать отражение источника курсора (т.е. неотображаемого курсора). Источником курсора может быть, например, признак лица, часть тела или другой подвижный объект, выбранный пользователем, например, в ходе операции калибровки. При отражении в отражающей поверхности электронного устройства, источник курсора действует как неотображаемый курсор. В одной реализации, где электронное устройство является карманным устройством, например, планшетным компьютером или мобильным телефоном, пользователь осуществляет операцию 702 позиционирования, ориентируя электронное устройство таким образом, чтобы отражение источника курсора можно было наблюдать из заданной точки наблюдения. В других операциях, где электронное устройство не является карманным, пользователь может осуществлять операцию 702 позиционирования, регулируя позицию отражающей поверхности (например, если устройство установлено на неподвижной поверхности) и/или регулируя позицию своего тела.
[62] Операция 704 перемещения перемещает источник курсора таким образом, чтобы неотображаемый курсор перекрывал область на отражающей поверхности электронного устройства. Операция 706 выбора делает выбор (например, выбор переменной, выбор элемента и т.д.) на основании перекрывающейся области. В одной реализации, операция 706 выбора осуществляется пользователем. Пользователь обеспечивает ввод выбора, например, издавая слышимый звук (например, короткий щелчок языком), моргая, шевеля губами, обеспечивая ввод через экран касания и т.д. Операция 708 активации приводит в действие орган управления пользовательского интерфейса в ответ на операцию 706 выбора. Например, операция 708 активации может обеспечивать пользователю доступ к определенным приложениям, доступ к данным, использование электронного устройства в целом и т.д.
[63] Фиг. 8 демонстрирует иллюстративный орган 802 управления пользовательского интерфейса для приведения в действие органа управления электронного устройства 800 с использованием неотображаемого курсора. Орган 802 управления пользовательского интерфейса принимает различные типы пользовательского ввода, включающие в себя, например, дисплейный ввод 808 (например, ввод через экран касания), аудио-ввод 806 (например, через микрофон) и визуальный ввод 810 (например, через камеру или другой датчик отображения изображения).
[64] Детектор 804 ввода выбора обнаруживает действие выбора, осуществляемое пользователем. В одной реализации, действие выбора обнаруживается в аудио-вводе 806, например, вербальной команде, ʺщелчкеʺ языком или другом шуме. В другой реализации, действие выбора обнаруживается в дисплейном вводе 808, например, прикосновении к экрану касания электронного устройства 800. В еще одной реализации, действие выбора обнаруживается в визуальном вводе 810, например, визуальных данных от камеры и/или детектора движения, обнаруживающего перемещение рта, глаз или другой части тела пользователя.
[65] Действие выбора указывает, что пользователь выровнял неотображаемый курсор с положением на отражающей поверхности 818 и желает выбирать орган управления, отображаемый или наблюдаемый на отражающей поверхности 818 в выбранном положении. Орган 802 управления пользовательского интерфейса использует различные аппаратные и/или программные механизмы для идентификации этого положения на отражающей поверхности 818.
[66] Детектор 804 ввода выбора предписывает блоку 812 распознавания образов анализировать визуальный ввод 810 и идентифицировать опорную точку на изображении пользователя. Например, блок 812 распознавания образов может идентифицировать область лица и дополнительно идентифицировать глаз, нос, центр лица и т.д. пользователя. После того, как блок 812 распознавания образов идентифицирует опорную точку, калибратор 816 выравнивания сравнивает положение опорной точки в визуальном вводе 810 с положением соответствующей опорной точки сохраненного изображения. Производя это сравнение, калибратор 816 выравнивания определяет метрику масштабирования, которая учитывает сдвиги, масштабирование и/или повороты, которые можно использовать для того, чтобы визуальный ввод был больше похож на сохраненное изображение.
[67] Калибратор 816 выравнивания сообщает детектору 814 выравнивания метрику масштабирования и другую сохраненную информацию смещения, и детектор 814 выравнивания идентифицирует позицию источника курсора в поле зрения датчика(ов), собирающего(их) визуальный ввод 810. Детектор 814 выравнивания проецирует позицию источника курсора в альтернативную систему координат для определения положения, где появляется отражение источника курсора (т.е. неотображаемый курсор) на отражающей поверхности 818 вдоль линии взгляда пользователя.
[68] Фиг. 9 демонстрирует иллюстративную систему, которая может быть полезна в реализации описанной технологии. Иллюстративное оборудование и операционное окружение, показанные на фигуре для реализации описанной технологии, включают в себя вычислительное устройство, например, вычислительное устройство общего назначения в форме игровой консоли или компьютера 20, мобильного телефона, карманного персонального компьютера (PDA), телевизионной приставки или другого типа вычислительного устройства. Например, в реализации, показанной на фиг. 9, компьютер 20 включает в себя блок 21 обработки, системную память 22 и системную шину 23, которая в ходе работы соединяет различные системные компоненты, включая системную память, с блоком 21 обработки. Может существовать только один или может существовать более одного блока 21 обработки, поэтому процессор компьютера 20 содержит одиночный центральный процессор (CPU) или несколько блоков обработки, обычно именуемые окружением параллельной обработки. Компьютер 20 может быть традиционным компьютером, распределенным компьютером или компьютером любого другого типа; это не являться ограничением изобретения.
[69] Системная шина 23 может быть шинной структурой любого из нескольких типов, в том числе, шиной памяти или контроллером памяти, периферийной шиной, многовходовой системой коммутации, двухточечными соединениями и локальной шиной, использующей любую из различных шинных архитектур. Системная память также может именоваться просто памятью и включает в себя постоянную память (ROM) 24 и оперативную память (RAM) 25. Базовая система 26 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают переносить информацию между элементами компьютера 20, например, при запуске, хранится в ROM 24. Компьютер 20 дополнительно включает в себя привод 27 жесткого диска для считывания с жесткого диска и записи на него, не показан, привод 28 магнитных дисков для считывания со сменного магнитного диска 29 или записи на него, и привод 30 оптических дисков для считывания со сменного оптического диска 31, например, CD ROM, DVD или других оптических носителей или записи на него.
[70] Привод 27 жесткого диска, привод 28 магнитных дисков, и привод 30 оптических дисков подключены к системной шине 23 интерфейсом 32 привода жесткого диска, интерфейсом 33 привода магнитных дисков и интерфейсом 34 привода оптических дисков, соответственно. Приводы и связанные с ними компьютерно-считываемые носители обеспечивают энергонезависимое хранилище компьютерно-считываемых инструкций, структур данных, программных модулей и других данных для компьютера 20. Специалистам в данной области техники очевидно, что в иллюстративном операционном окружении можно использовать любой тип компьютерно-считываемых носителей, где могут храниться данные, к которым может обращаться компьютер, например, магнитные кассеты, карты флеш-памяти, цифровые видеодиски, блоки оперативной памяти (RAM), блоки постоянной памяти (ROM) и пр.
[71] На жестком диске, магнитном диске 29, оптическом диске 31, в ROM 24 или RAM 25 может храниться несколько программных модулей, в том числе операционная система 35, одна или более прикладных программ 36, другие программные модули 37 и программные данные 38. Пользователь может вводить команды и информацию в персональный компьютер 20 через такие устройства ввода, как клавиатура 40 и указательное устройство 42. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода часто бывают подключены к блоку 21 обработки через интерфейс 46 последовательного порта, который подключен к системной шине, но может подключаться с помощью других интерфейсов, например, параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или устройство отображения другого типа также подключен к системной шине 23 через интерфейс, например видеоадаптер 48. Помимо монитора, компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), например, громкоговорители и принтеры.
[72] Компьютер 20 может работать в сетевом окружении с использованием логических соединений с одним или более удаленными компьютерами, например, удаленным компьютером 49. Эти логические соединения обеспечиваются устройством связи, подключенным к компьютеру 20 или составляющим его часть; изобретение не ограничивается конкретным типом устройства связи. Удаленный компьютер 49 может представлять собой другой компьютер, сервер, маршрутизатор, сетевой PC, клиент, равноправное устройство или другой общий сетевой узел и обычно включает в себя многие или все из элементов, описанных выше в отношении компьютера 20, хотя только запоминающее устройство 50. Логические соединения, изображенные на фиг. 9, включают в себя локальную сеть (LAN) 51 и глобальную сеть (WAN) 52. Такие сетевые окружения обычно имеют место в офисных сетях, производственных компьютерных сетях, интрасетях и интернете, которые представляют собой все типы сетей.
[73] При использовании в сетевом окружении LAN, компьютер 20 подключается к локальной сети 51 через сетевой интерфейс или адаптер 53, который является одним типом устройства связи. При использовании в сетевом окружении WAN, компьютер 20 обычно включает в себя модем 54, сетевой адаптер, тип устройства связи, или любой другой тип устройства связи для установления связи по глобальной сети 52. Модем 54, который может быть внутренним или внешним, подключен к системной шине 23 через интерфейс 46 последовательного порта. В сетевом окружении, программные машины, изображенные в отношении персонального компьютера 20 или его частей, могут храниться на удаленном запоминающем устройстве. Очевидно, что показанные сетевые соединения являются примером, и для установления линии связи между компьютерами можно использовать другие средства и устройства связи.
[74] В иллюстративной реализации детектор ввода выбора, блок распознавания образов, калибратор выравнивания, детектор выравнивания, один или более блоков распознавания образов, детекторов, калибраторов и других модулей могут быть реализованы посредством инструкций, хранящихся в памяти 22 и/или запоминающих устройствах 29 или 31 и обрабатываемых блоком 21 обработки. Смещения, метрики масштабирования, различные данные калибровки, данные камеры, данные дисплейного ввода, данные аудио-ввода и другие данные могут храниться в памяти 22 и/или запоминающих устройствах 29 или 31 как постоянных хранилищах данных. Дополнительно, контроллер пользовательского интерфейса представляет оборудование и/или программное обеспечение, выполненные с возможностью приведения в действие одного или более органов управления устройство на основании выбора пользователя, обеспеченного посредством признака неотображаемого курсора. Контроллер пользовательского интерфейса может быть реализован с использованием компьютера общего назначения и специализированного программного обеспечения (например, служебного программного обеспечения, выполняющегося на сервере), вычислительной системы специального назначения и специализированного программного обеспечения (например, служебного программного обеспечения, выполняющегося на мобильном устройстве или сетевом приборе) или других вычислительных конфигураций.
[75] Термины "модуль", "программа", ʺслужбаʺ и "машина" можно использовать для описания аспекта вычислительной системы 20, которая реализована для осуществления одной или более конкретных функций. В ряде случаев, такие модуль, программа, служба или машина могут быть реализованы посредством блока 21 обработки, выполняющего инструкции, хранящиеся в системной памяти 22. Следует понимать, что различные модули, программы и/или машины могут быть реализованы на основе одного и того же приложения, службы, кодового блока, объекта, библиотеки, процедуры, API, функции и т.д. Аналогично, один и тот же модуль, программа и/или машина могут быть реализованы различными приложениями, службами, кодовыми блоками, объектами, процедурами, API, функциями и т.д. Термины "модуль", "программа" и "машина" призваны охватывать отдельные или группы исполнимых файлов, файлов данных, библиотек, драйверов, скриптов, записей базы данных и т.д.
[76] Фиг. 10 демонстрирует другую иллюстративную систему (обозначенную как мобильное устройство 1000), которая может быть полезна в реализации описанной технологии. Мобильное устройство 1000 включает в себя процессор 1002, память 1004, дисплей 1006 (например, дисплей с экраном касания) и другие интерфейсы 1008 (например, клавиатуру). Память 1004, в общем случае, включает в себя как энергозависимую память (например, RAM), так и энергонезависимую память (например, флеш-память). Операционная система 1010, например, операционная система Microsoft Windows Phone, располагается в памяти 1004 и выполняется процессором 1002, хотя следует понимать, что могут использоваться другие операционные системы.
[77] Одна или более прикладных программ 1012 загружаются в памяти 1004 и выполняются на операционной системе 1010 процессором 1002. Примеры приложений 1012 включают в себя, без ограничения, программы распознавания образов, программы калибровки и т.д. Мобильное устройство 1000 включает в себя блок 1016 питания, который запитывается одной или более батарей или другими источниками питания и которые обеспечивает питание других компонентов мобильного устройства 1000. Блок 1016 питания также может быть подключен к внешнему источнику питания, который заменяет собой или подзаряжает встроенные батареи или другие источники питания.
[78] Мобильное устройство 1000 включает в себя один или более приемопередатчиков 1030 связи для обеспечения возможности сетевого соединения (например, мобильной телефонной сети, Wi-Fi, BlueTooth и т.д.). Мобильное устройство 1000 также включает в себя различные другие компоненты, например, систему 1020 позиционирования (например, приемопередатчик глобального спутникового позиционирования), один или более акселерометров 1022, одну или более камер 1024, аудиоинтерфейс 1026 (например, микрофон, усилитель аудиосигнала и громкоговоритель и/или гнездо аудио) и дополнительное хранилище 1028. Также можно применять другие конфигурации.
[79] В иллюстративной реализации, детектор ввода выбора, блок распознавания образов, калибратор выравнивания, детектор выравнивания, один или более блоков распознавания образов, детекторов, калибраторов и других модулей могут быть реализованы посредством инструкций, хранящихся в памяти 1004 и/или запоминающих устройствах 1028 и обрабатываемых блоком 1002 обработки. Смещения, метрики масштабирования, различные данные калибровки, данные камеры, данные дисплейного ввода, данные аудио-ввода и другие данные могут храниться в памяти 1004 и/или запоминающих устройствах 1028 как постоянных хранилищах данных.
[80] Мобильное устройство 1000 и компьютер 20 (показанные на фиг. 9) могут включать в себя различные материальные компьютерно-считываемые носители данных и нематериальные компьютерно-считываемые сигналы связи. Материальное компьютерно-считываемое хранилище можно реализовать любыми имеющимися носителями, к которым может осуществлять доступ мобильное устройство 1000 или компьютер 20 и включает в себя энергозависимые и энергонезависимые носители данных, сменные и стационарные носители данных. Материальные компьютерно-считываемые носители данных исключают нематериальные сигналы связи и включают в себя энергозависимые и энергонезависимые, сменные и стационарные носители данных, реализованные любым способом или технологией хранения информации, например, компьютерно-считываемых инструкций, структур данных, программных модулей или других данных. Материальные компьютерно-считываемые носители данных включают в себя, но без ограничения, RAM, ROM, EEPROM, флеш-память или другую технологию памяти, CDROM, цифровые универсальные диски (DVD) или другое запоминающее устройство на основе оптического диска, магнитные кассеты, магнитную ленту, запоминающее устройство на основе магнитного диска или другие магнитные запоминающие устройства или любой другой материальный носитель, который можно использовать для хранения полезной информации и к которому может осуществлять доступ мобильное устройство 1000 или компьютер 20. В отличие от материальных компьютерно-считываемых носителей данных, нематериальные компьютерно-считываемые сигналы связи могут воплощать компьютерно-считываемые инструкции, структуры данных, программные модули или другие данные, присутствующие в модулированном сигнале данных, например, несущей волне или другом механизме переноса сигнала. Термин "модулированный сигнал данных" означает сигнал, имеющий одну или более из его характеристик установленную или измененную таким образом, чтобы кодировать информацию в сигнале.
[81] Реализации описанного здесь изобретения реализованы как логические этапы в одной или более компьютерных системах. Логические операции настоящего изобретения реализованы (1) как последовательность процессорно-реализуемых этапов, выполняющихся в одной или более компьютерных системах, и (2) как соединенные между собой машины или схемные модули в одной или более компьютерных систем. Реализация является вопросом выбора, в зависимости от требований к производительности компьютерной системы, реализующей изобретение. Соответственно, логические операции, образующие описанные здесь варианты осуществления изобретения, по-другому именуются как операции, этапы, объекты или модули. Кроме того, следует понимать, что логические операции можно осуществлять в любом порядке, при желании добавлять и исключать, если прямо заявлено обратное, или конкретный порядок явно не указан в формуле изобретения.
[82] Вышеприведенные характеристики, примеры и данные обеспечивают полное описание структуры и использования иллюстративных реализаций. Поскольку можно предложить многочисленные реализации, не выходящие за рамки сущности и объема заявленного изобретения, изобретение задается нижеследующей формулой изобретения. Кроме того, структурные признаки различных примеров можно комбинировать в еще одной реализации, не выходящей за рамки упомянутой формулы изобретения.