ОБРАЩЕНИЕ С БЛИКАМИ В СРЕДЕ ОТСЛЕЖИВАНИЯ ДВИЖЕНИЯ ГЛАЗ
LIGHTS CONTROL IN ENVIRONMENT OF EYE MOTION TRACKING

[0001] Пользователи могут взаимодействовать с вычислительными системами, используя множество механизмов ввода. Например, может использоваться отслеживание взгляда для взаимодействия с графическим интерфейсом пользователя, при этом найденное местоположение, в котором взгляд пользователя пересекает графический интерфейс пользователя, может использоваться в качестве позиционного сигнала для взаимодействий с пользовательским интерфейсом. В технологиях отслеживания взгляда могут применяться один или более световых источников для проецирования света на глаз, а также одна или более камер для захвата изображений отблесков спроецированного света, отраженного от глаза. Местоположения отблесков и/или зрачка на изображениях могут использоваться для определения положения зрачка, указывающего направление взгляда.
В документе US6714665 описана система обнаружения, которая получает и анализирует изображения, по меньшей мере, одного объекта в визуализируемом пространстве, содержащая устройство формирования изображения с широким полем зрения (WFOV), используемое для захвата изображения визуализируемого пространства и для определения положения объекта, а также устройство формирования изображения с узким полем зрения (NFOV), реагирующее на информацию о положении, предоставленную WFOV- устройством формирования изображения, и используемое для захвата изображения объекта.
В документе US 2007189606 описана технология детектирования больших и малых дефектов изображения, не связанных с эффектом «красных глаз». Способ содержит выбор пикселей изображения, обладающих яркостью, превышающей пороговое значение, и присвоение соседним отобранным пикселям меток «яркой области».
В документе US6152563 раскрыта система для определения движения глаз, в которой используется инфракрасный светодиод, установленный коаксиально относительно оптической оси перед линзой, формирующей изображение, принадлежащей камере, чувствительной к инфракрасному излучению, для удаленной регистрации изображений глаза оператора компьютера.
В документе US2012229681 раскрыты система и способ автоматического устранения бликов на изображениях. Изображения получают, по меньшей мере, из двух разных точек, возможно одновременно, а также с одной или более камер и при необходимости оцифровывают. Идентифицируется паттерн бликов, что обычно осуществляется путем обнаружения полностью открытой области или известных тестовых паттернов бликов. Изображения подвергаются обработке для устранения паттерна бликов путем вычитания паттерна бликов, по меньшей мере, из одного изображения и подстановки соответствующих данных из родственного изображения, не претерпевшего идентичного воздействия.
В документе US2012105486 раскрыты системы и способы отслеживания движения глаз, в состав которых входят такие типовые элементы как устройство отображения, по меньшей мере, одно устройство захвата изображения, а также устройство обработки информации. Устройство отображения отображает пользователю пользовательский интерфейс, содержащий один или более элементов интерфейса. По меньшей мере, одно устройство захвата изображения детектирует положение взгляда пользователя относительно устройства отображения. Устройство обработки информации электронным образом анализирует местоположение пользовательских элементов в пределах пользовательского интерфейса относительно положения взгляда пользователя и в динамическом режиме определяет, следует ли инициировать отображение окна увеличения изображения.
В документе US2013285901 раскрыты система и способ отслеживания движения глаз на расстоянии. Удаленная система отслеживания движения глаз может включать в себя блок инфракрасного излучения, в состав которого входят множество световых источников для излучения инфракрасного света в направлении пользователя, модуль отслеживания движения глаз, предназначенный для отслеживания положения лица пользователя, а также, используя отслеженное положение лица, получения изображения глаз, содержащего, по меньшей мере, один отраженный свет среди множества световых излучений, обусловленных роговицей, и светового излучения, отраженного линзами, при этом световое излучение, обусловленное роговицей, отражается от роговицы благодаря испущенному инфракрасному световому излучению, а световое излучение, отраженное линзами, является следствием отражения от линзы очков, а также процессор для сравнения величины светового излучения, отраженного линзами, с пороговым значением в полученном изображении глаз, и когда величина светового излучения, отраженного линзами, меньше или равна пороговому значению, детектирования координат центра каждого из множества отраженных световых пучков, обусловленных роговицей, и расчета положения взгляда.
В документе EP 1655687 раскрыты система и способ активного освещения и мониторинга субъекта, например водителя транспортного средства. В состав системы входит видеокамера формирования изображения, выполненная с возможностью генерирования изображений глаза/глаз субъекта. Система также включает в себя первый и второй световые источники, смещенные относительно друг друга и способные освещать субъект. Система дополнительно включает в себя контроллер для управления освещением первым и вторым световыми источниками, так что когда камера формирования изображения детектирует достаточно яркий блик, контроллер управляет первым и вторым световыми источниками для минимизации блика. Это достигается путем выключения источника освещения, вызывающего этот блик.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0002] Раскрыты варианты осуществления, связанные с выполнением отслеживания взгляда в условиях наличия источников бликов, например стекол очков, расположенных между камерой для отслеживания движения глаз, и глазом, движение которого отслеживается. Например, в одном варианте осуществления приведенная в качестве примера система отслеживания движения глаз содержит множество световых источников, а также камеру, выполненную с возможностью захвата изображения светового излучения от источников света, отраженного от глаза. Система отслеживания движения глаз дополнительно содержит логическое устройство, а также устройство хранения данных, в котором хранятся инструкции, выполняемые логическим устройством для сбора групп данных по отслеживанию движения глаз путем итерационного проецирования света от различных комбинаций световых источников из множества световых источников и захвата изображения глаза в процессе проецирования каждой комбинации. Инструкции могут дополнительно выполняться для выбора отобранной комбинации световых источников для отслеживания движения глаз на основе определения загораживания, обнаруженного на изображении, обусловленного прозрачной или полупрозрачной оптической структурой, расположенной между глазом и камерой, и проецирования света посредством отобранной комбинации световых источников для отслеживания движения глаз.
[0003] Данный раздел «Сущности изобретения» предложен для представления выбора концепций в упрощенной форме, которые будут дополнительно рассмотрены ниже в разделе «Подробное описание». В «Сущности изобретения» не преследуется цель указать ключевые признаки или существенные признаки заявленного объекта изобретения, а также не предполагается ограничить объем заявленного изобретения. Кроме того, заявленный объект изобретения не ограничивается вариантами реализации, устраняющими некоторые или все недостатки, отмеченные в любой части настоящего раскрытия.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0004] На ФИГ. 1 показан вариант осуществления примера среды отслеживания движения глаз.
[0005] На ФИГ. 2 показана блок-схема, изображающая вариант осуществления способа установления последовательности задействования световых источников в системе отслеживания движения глаз.
[0006] На ФИГ. 3 показана блок-схема, изображающая вариант осуществления способа классификации отражений в изображении, полученном системой отслеживания движения глаз.
[0007] На ФИГ. 4 показан пример изображения, захваченного системой отслеживания движения глаз согласно одному варианту осуществления настоящего раскрытия.
[0008] На ФИГ. 5 показан пример изображения, захваченного системой отслеживания движения глаз, прошедшего обработку для идентификации насыщенных областей изображения согласно одному варианту осуществления настоящего раскрытия.
[0009] На ФИГ. 6A и 6B показаны два вида примера схемы расположения световых источников для системы отслеживания движения глаз согласно одному варианту осуществления настоящего раскрытия.
[0010] На ФИГ. 7 показана блок-схема одного варианта осуществления вычислительной системы.
[0011] На ФИГ. 8 показан пример последовательности задействования светового источника согласно одному варианту осуществления настоящего раскрытия.
ПОДРОБНОЕ ОПИСАНИЕ
[0012] В системе отслеживания движения глаз камера/камеры и/или световой источник/световые источники могут располагаться в месте, находящемся на некотором расстоянии от глаза и/или головы пользователя. Таким образом, между камерой/камерами/световым источником/световыми источниками и глазом могут находиться объекты, например очки, которые могут создавать дополнительные отражения света, спроецированного световыми источниками. Эти отражения могут появляться в виде бликов в изображении и могут загораживать один или более отблесков и/или зрачок. Следовательно, такие блики могут мешать отслеживанию движения глаз.
[0013] Поскольку загораживание отблесков при отслеживании движения глаз такими бликами и другими «ложными» отражениями может изменяться с изменением положения и/или ориентации пользователя относительно отблесков, светового источника/световых источников и камеры/камер, различные конфигурации световых источников и различные типы и/или толщины очков могут создавать различные местоположения бликов. В связи с этим раскрыты варианты осуществления, связанные с проецированием различных конфигураций световых источников, чтобы помочь идентифицировать конфигурацию световых источников, обеспечивающую возможность отслеживания движения глаз, которое требуется выполнить, без неприемлемого загораживания отблесков глаз бликами, вызванными очками и т.п.
[0014] На ФИГ. 1 показан пример среды 100 отслеживания движения глаз, в которой пользователь 102 смотрит на компьютерное устройство 104, надев очки 106. Компьютерное устройство 104 изображено в виде планшета, однако следует понимать, что в любом другом пригодном компьютерном устройстве может применяться отслеживание движения глаз. В число примеров, в частности, входят смартфоны, портативные компьютеры, персональные компьютеры, телевизионная аппаратура, носимые компьютерные устройства, такие как устанавливаемые на голове дисплейные устройства.
[0015] Компьютерное устройство 104 включает в себя систему отслеживания движения глаз, содержащую множество световых источников 108 и камеру 110. Световые источники 108 могут содержать, например, множество светоизлучающих диодов (LED) и/или других пригодных светоизлучающих устройств. В некоторых вариантах осуществления световые источники 108 могут излучать инфракрасный свет, видимый свет либо комбинации видимого и инфракрасного света (например, одно подмножество световых источников 108 может проецировать инфракрасный свет, а другое подмножество световых источников 108 может проецировать видимый свет). Камера 110 может содержать любое пригодное устройство формирования изображения, в том числе, но не ограничиваясь перечисленным, камеру глубины, RGB камеру (формирования сигналов цветного изображения), камеру формирования изображения в оттенках серого, стереоскопическую камеру и/или любую другую пригодную камеру либо комбинацию камер. Следует понимать, что один или более световых источников, камера/камеры и/или любой другой элемент системы отслеживания движения глаз могут быть встроены в единое компьютерное устройство, находиться отдельно от компьютерного устройства или располагаться в любом сочетании таких вариантов.
[0016] Как показано пунктирными линиями на ФИГ. 1, каждый световой источник 108 может излучать свет в направлении глаза пользователя 102. Камера 110 может захватывать изображения глаза пользователя 102, которые включают в себя отражения от глаза света, спроецированного от световых источников 108. На основе местоположения отражений спроецированного света на изображении от камеры 110 в сравнении со зрачком (или радужной оболочкой, или другой пригодной структурой) глаза пользователя можно определить направление взгляда. Это может позволить спроецировать взгляд от глаза, так что можно определить местоположение, в котором спроецированный взгляд пересекает пользовательский интерфейс или реальный объект. Это может позволить пользователю взаимодействовать с компьютерным устройством посредством взгляда. Кроме того, изменения местоположения взгляда с течением времени могут использоваться в качестве жестового ввода для компьютерного устройства.
[0017] На ФИГ. 2 показана блок-схема, изображающая вариант осуществления способа 200 отслеживания движений глаз, который может помочь в достижении надежного выполнения отслеживания движения глаз в условиях наличия очков или иной подобной конструкции между световым источником/световыми источниками/камерой/камерами и глазом пользователя. Способ 200 может выполняться системой отслеживания движения глаз в компьютерном устройстве, таком как компьютерное устройство 104 на ФИГ. 1.
[0018] На этапе 202 способ 200 включает в себя сбор данных по отслеживанию движения глаз. Как описано выше, отслеживание движения глаз может выполняться путем излучения света (например, инфракрасного света) в направлении глаза пользователя и захвата изображений света, отраженного от глаза пользователя. Однако, поскольку свет может также отражаться от стекол очков или других прозрачных или полупрозрачных оптических структур, находящихся между световыми источниками и глазом пользователя, могут возникать блики, загораживающие отражения света от глаза пользователя.
[0019] Таким образом, как указано на этапе 204, способ 200 может включать в себя итерационное проецирование света от различных комбинаций световых источников, а на этапе 206 - захват изображения глаза в течение проецирования каждой иной комбинации световых источников, как указано на этапе 206. Данные операции могут включать в себя, например, проецирование света от разного числа световых источников в различных комбинациях и/или проецирование света от световых источников, занимающих различные положения/ориентации. В качестве более конкретного примера на ФИГ. 8 схематично изображена система отслеживания движения глаз, которая включает в себя четыре световых источника 802a-802d, при этом светящиеся световые источники показаны диагональными линиями в клетке, представляющей световой источник. Итерационное проецирование света от различных комбинаций световых источников может включать в себя проецирование света от всех световых источников (как показано в момент времени T1); затем от различных комбинаций трех световых источников (как показано в моменты времени T2, T3, T4 и T5); а затем от различных комбинаций двух световых источников (как показано в моменты времени T6 и T7) или только одного светового источника (на Фигуре не показано). Следует понимать, что такой цикл проекций световых источников может выполняться в любом пригодном порядке. Например, комбинации с более высоким числом светящихся световых источников могут быть опробованы перед теми, в которых число световых источников меньше, когда требуется наиболее точно определить направление взгляда, в то время как те, в которых их число меньше, могут быть опробованы перед теми, в которых их число больше, когда требуется сэкономить энергию или когда поверхности очков проявляют тенденцию к созданию большего количества бликов.
[0020] Кроме того, в некоторых вариантах осуществления порядок задействования комбинаций световых источников для проецирования в качестве опции может выбираться на основе положения головы/HMD (шлема-дисплея) и/или ориентации/положения световых источников, как указано на этапе 208. Например, может быть известно, что определенное число и/или определенные паттерны световых источников могут создавать меньшее число «загораживаний», когда голова расположена под заданным углом. Выбирая следующую комбинацию на основе вышеописанной информации, различные комбинации световых источников могут итерационно циклически повторяться по осмысленной схеме, чтобы увеличить вероятность применения пригодной комбинация световых источников на ранних итерациях, тем самым уменьшая количество времени, затраченного на циклическое повторение различных комбинаций световых источников. Таким образом, система отслеживания движения глаз может оценивать, какая комбинация световых источников создаст наименьшую величниу загораживания, и итерационно проецировать свет от различных комбинаций световых источников в порядке, основанном на этой оценке. Следует понимать, что в других вариантах осуществления комбинация световых источников может выбираться на основе степени загораживания в изображении, как описано ниже.
[0021] На этапе 210 способ 200 включает в себя определение, существует ли на изображении неприемлемое загораживание для каждой протестированной комбинации световых источников, а на этапе 212 - выбор комбинации световых источников для выполнения отслеживания движения глаз. Как указано на этапе 214, комбинация световых источников может выбираться на основе степени загораживания, обнаруженного на изображении. В некоторых вариантах осуществления итеративное тестирование каждой комбинации может прекращаться при идентификации и выборе пригодной комбинации, в то время как в других вариантах осуществления может тестироваться полный набор комбинаций, перед тем как выбрать одну. В качестве составной части тестирования каждой комбинации для заданной конфигурации световых источников, либо блики могут приводиться в соответствие с отблесками, либо между бликами и зрачком или отблесками могут быть получены метрики загораживания. В случае высокой степени загораживания (например, загораживания выше некоторого порога) из последовательности может быть выбрана следующая конфигурация световых источников. Данный процесс может затем повторяться до тех пор, пока не будут получены с высокой степенью уверенности незагороженные или частично загороженные зрачок-отблески. Данная конфигурация может затем использоваться в будущих кадрах, пока не будет обнаружено следующее загораживание, когда конфигурации снова циклически повторяются до тех пор, пока снова не будет найдена пригодная конфигурация световых источников.
[0022] Способ 200 дополнительно включает в себя на этапе 216 проецирование света посредством отобранной комбинации световых источников, а на этапе 218 - отслеживание местоположения взгляда одного или более глаз путем детектирования светового излучения от световых источников, отраженного от глаза/глаз. Кроме того на этапе 220 способ 200 включает в себя выполнение действия в ответ на отслеживание движения глаз. Отслеживание движения глаз может использоваться для выполнения любого пригодного действия. Например, отслеживание движения глаз может использоваться для детектирования жестов глаз, чтобы обнаружить позиционные сигналы для графического интерфейса пользователя и т.д.
[0023] Определение неприемлемой степени загораживания отблеска глаз бликами может определяться любым пригодным способом. На ФИГ. 3 показан блок-схема, изображающая пример варианта осуществления способа 300 для классификации отражений и/или блика, либо другой помехи на изображениях, захваченных камерой системы отслеживания движения глаз. Следует понимать, что способ 300 может осуществляться компьютерным устройством, таким как компьютерное устройство 104, представленное на ФИГ. 1, выполненным с возможностью обработки изображений в системе отслеживания движения глаз.
[0024] На этапе 302 способ 300 включает в себя прием данных изображения от камеры. Камера может быть встроена в компьютерное устройство или расположена снаружи/удаленно относительно компьютерного устройства. Способ 300 дополнительно включает в себя на этапе 304 обнаружение насыщенных областей в принятом изображении. Например, изображение может быть проанализировано для определения пикселей на изображении, уровень насыщения которых превышает пороговый.
[0025] Поскольку блики могут быть результатом отражения света от очков или других гладких структур, блики могут иметь высоко насыщенные сердцевины, схожие с распределением интенсивности самих световых источников. Таким образом, блики, образованные светом, спроецированным от световых источников, используемых в системе отслеживания движения глаз, могут иметь паттерн с высокой интенсивностью в центре, которая резко снижается при перемещении от центра, иногда приводя к появлению формы раструба. Вследствие таких свойств блики, образованные отражениями проекций световых источников, можно отличить от отражений света от глаз пользователя и от других диффузных отражений, вызванных наличием других IR источников в окружающей среде.
[0026] На ФИГ. 4 показан пример воспроизведения изображения 400, захваченного камерой системы отслеживания движения глаз, а также показан вид пользователя 402, носящего очки 404. Свет от световых источников системы отслеживания движения глаз (также как и от световых источников окружающей среды) может отражаться очками 404, а также зрачком глаза 406 пользователя 402. Такие отражения от очков 404 могут приводить к появлению бликов 408, в то время как отражения от глаза могут приводить к появлению отблесков 410, проиллюстрированных в виде четырех равномерно разнесенных точек в области зрачка глаза 406. В то время как отблески 410 выглядят как малые, по существу круглые точки, блики 408 могут иметь расширенную звездообразную форму.
[0027] Возвращаясь к ФИГ. 3, способ 300 может включать в себя идентификацию и выбор насыщенных пикселей изображения, а также выполнение преобразования расстояний для объектов переднего плана (foreground distance transform) в отношении насыщенных пикселей изображения, как указано на этапе 306, так что интенсивность пикселя после преобразования расстояний для объектов переднего плана является функцией расстояния от границы отражения. Это может помочь создать индикатор контуров «кандидатов на блики» на основе размера насыщенной области и/или контуров насыщенной области. Например, насыщенная область, превышающая пороговый размер, может рассматриваться как кандидат на блик, в то время как насыщенные области, размер которых меньше порогового размера, могут не рассматриваться в качестве кандидатов на блик.
[0028] На этапе 308 способ 300 включает в себя устранение шума на изображении, например, путем удаления контуров, значение расстояния которых меньше порогового расстояния. Таким образом, контуры бликов/кандидатов на блик, имеющие форму раструбов, могут быть сглажены. Кроме того на этапе 310 способ 300 включает в себя определение граничной рамки для каждой оставшейся насыщенной области (например, сердцевин бликов/кандидатов на блик, найденных на этапе 308). Размер граничной рамки может выбираться так, чтобы его значение позволило рамке содержать некоторый процент насыщенных пикселей с пороговым насыщением, как указано на этапе 312. Например, граничная рамка может быть образована вокруг сердцевины блика/кандидата на блик, при этом размер граничной рамки может увеличиваться до тех пор, пока процент насыщенных пикселей в граничной рамке не превысит некоторый порог. Такое изменение размера может помочь обеспечить расположение рамки вокруг каждой насыщенной области. В случае блика рамка содержит насыщенный центр, в то время как в случае ложноположительных объектов (например, не являющихся бликами), насыщенные пиксели распределены случайным образом по всей рамке. На ФИГ. 5 показана обработанная версия изображения 400, представленного на ФИГ. 4, на которой насыщенные области 502 (например, кандидаты на блики) окружены граничными рамками 504.
[0029] Возвращаясь к ФИГ. 3, способ 300 включает в себя на этапе 314 приспособление статистического распределения для первой насыщенной области. Например, гауссова модель либо другая модель статистического распределения может быть использована для обнаруженных центров бликов для формирования нормированного распределения насыщенных пикселей в области расположения кандидатов на блики. Параметр приспособленного статистического распределения для каждой насыщенной области/каждого кандидата на блик затем может сравниваться с пороговым условием. Например, может быть определена погрешность гауссова моделирования для гауссовой модели, соответствующей данной насыщенной области, после чего на этапе 316 может быть проведено сравнение этой погрешности с пороговой погрешностью. Если этот параметр соответствует пороговому значению (например, если погрешность моделирования ниже пороговой), на этапе 318 может определяться, что данная область представляет собой блик, после чего способ может переходить к этапу 320, на котором определяется, проанализированы ли все насыщенные области. Например, кандидаты 506a, 506b, 506c, 506d и 506e на блики на ФИГ. 5 могут классифицироваться в качестве бликов в силу распределения насыщенных пикселей в пределах соответствующих рамок с проявлением признаков бликов, таких как концентрация насыщенных пикселей в центральной области и наличие «раструбов», выступающих на регулярно разнесенных периферийных областях. Если на этапе 316 определяется, что этот параметр не удовлетворяет пороговому значению, способ может переходить к этапу 320, не классифицируя насыщенную область как блик (например, кандидаты 506f, 506g, 506h, 506i, 506j и 506k на блики могут не классифицироваться в качестве бликов по причине отсутствия насыщенной сердцевины и/или отсутствия других признаков бликов).
[0030] На этапе 320, если определяется, что не все насыщенные области проанализированы (например, "NO" на этапе 320), тогда способ 300 содержит итерационно выполняемые операции этапов 316, 318 и 320, пока все насыщенные области не будут подвергнуты анализу. Если проанализированы все насыщенные области (например, "YES" на этапе 320), тогда способ 300 на этапе 324 содержит операцию по определению степени загораживания на основе числа и/или местоположений насыщенных областей, классифицированных в качестве бликов. Например, степень загораживания может основываться на размере бликов, числе бликов и/или том, насколько близко блики располагаются к зрачку глаза/отблескам, отраженным от зрачка глаза.
[0031] Различные пороговые значения, описанные выше в отношении способа 300 (например, пороговое расстояние на этапе 308, пороговый процент на этапе 312 и пороговое условие на этапе 316) могут быть заданы и/или выбраны на основе статистических данных. В дополнительных или альтернативных вариантах осуществления одно или более пороговых значений может определяться посредством алгоритма обучения (например, с использованием классификатора). Например, определение пороговых значений посредством алгоритма обучения может включать в себя динамическое изменение пороговых значений с течением времени на основе измеренных/зарегистрированных данных для конкретного пользователя, среды, схемы освещения и/или другого соответствующего условия. После определения пороговых значений с использованием классификатора можно добавить ряд других признаков (например, квадратичную погрешность аппроксимации, положение относительно уголков глаз, градиент диссипации и т.д.) для оптимизации проведения различий между бликами и не бликами в проанализированном изображении.
[0032] На ФИГ. 6A и 6B показаны различные виды одного примера схемы 600 расположения световых источников в системе отслеживания движения глаз. На виде спереди, приведенном на ФИГ. 6A, показаны отдельные световые источники 602, расположенные по кругу размещающей конструкции 604. В некоторых вариантах осуществления размещающая конструкция 604 может включать в себя камеру системы отслеживания движения глаз, быть интегрирована с ней и/или установлена на ней. В других вариантах осуществления размещающая конструкция 604 может быть выполнена с возможностью установки на других элементах. Как показано, каждый световой источник 602 может располагаться в месте, отличном от мест других световых источников. Таким образом, свет, проецируемый от каждого светового источника 602, может быть направлен в разные места и/или поступать в конкретное место под иным углом, чем свет, спроецированный от других световых источников в схеме 600 расположения световых источников. Это может позволить использовать различные комбинации световых источников для образования отражений от глаза, чтобы избежать загораживаний бликами, как описано выше.
[0033] Кроме того, как показано в косой проекции схемы 600 расположения световых источников, изображенной на ФИГ. 6B, один или более световых источников 602 могут быть ориентированы иначе, чем другие световые источники в этой схеме. Пунктирные стрелки указывают направление света, излучаемого от каждого из световых источников 602. Таким образом, свет, спроецированный от каждого светового источника 602, может быть направлен в иное место и/или поступать в конкретное место под иным углом, чем свет, спроецированный от других световых источников в схеме 600 расположения световых источников.
[0034] Загораживание отблесков зрачка на изображениях по отслеживанию движения глаз может основываться на классификации отражений на оптической структуре на основе их признаков, таких как местоположение, размер, распределение интенсивности и увязка со световыми источникам. Создав схему расположения световых источников, в состав которой входят световые источники, направляющие свет из разных местоположений/под разными углами, световые источники можно итерационно включать/отключать для генерирования различных комбинаций проекций световых источников в системе отслеживания движения глаз. Анализируя изображения, захваченные в течение проецирования света от каждой комбинации световых источников, можно идентифицировать блики (например, определять местоположение бликов относительно глаза) и/или приводить в соответствие блики с конкретными световыми источниками/комбинациями световых источников. Таким образом, для выполнения отслеживания движения глаз может выбираться комбинация световых источников, которая создает незагороженные отблески зрачка, получаемые с высокой степенью доверия, наименьшую величину загораживания глаза/отблесков, отраженных от глаза, и/или как-то иначе создает подходящее изображение для отслеживания движения глаз. Выбор конкретной комбинации световых источников для данного пользователя/данной среды может позволить системе работать в более широком диапазоне условий, в том числе в условиях, в которых между камерой для отслеживания движения глаз/световыми источниками и глазом, движение которого отслеживается, присутствуют оптические структуры, например очки.
[0035] В некоторых вариантах осуществления способы и операции, представленные в настоящем описании, могут быть привязаны к вычислительной системе одного или более компьютерных устройств. В частности, такие способы и операции могут реализовываться в виде прикладной компьютерной программы или службы приложений, интерфейса прикладных программ (API), библиотеки и/или другого компьютерного программного продукта.
[0036] На ФИГ. 7 схематично показан один неограничивающий вариант осуществления вычислительной системы 700, способной задействовать один или более способов и технологических процессов, описанных выше. Вычислительная система 700 показана в упрощенном виде. Вычислительная система 700 может принимать форму одного или более персональных компьютеров, служебных вычислительных машин, планшетных компьютеров, компьютеров для домашних развлечений, сетевых компьютерных устройств, игровых устройств, мобильных вычислительных устройств, мобильных коммуникационных устройств (например, смартфона), носимых вычислительных устройств и/или других компьютерных устройств. Например, вычислительная система 700 может представлять собой пример компьютерного устройства 104, представленного на ФИГ. 1, и/или может выполнять способы, описанные на ФИГ. 2 и 3.
[0037] Вычислительная система 700 включает в себя логическое устройство 702 и устройство 704 хранения данных. Вычислительная система 700 в качестве опции может включать в себя подсистему 706 отображения, подсистему 708 ввода данных, подсистему 710 связи и/или другие компоненты, не показанные на ФИГ.7.
[0038] Логическое устройство 702 включает в себя одно или более физических устройств, приспособленных для выполнения инструкций. Например, логическое устройство может быть приспособлено для выполнения инструкций, составляющих часть одного или более приложений, сервисов, программ, стандартных программ, библиотек, объектов, компонентов, структур данных или других логических структур. Такие инструкции могут реализовываться для выполнения задания, реализации типа данных, преобразования состояния одного или более компонентов, достижения технического эффекта или иного получения желаемого результата.
[0039] Логическое устройство 702 может включать в себя один или более процессоров, приспособленных для выполнения инструкций программного обеспечения. Дополнительно или в качестве альтернативы логическое устройство может включать в себя одно или более логических устройств аппаратного обеспечения или аппаратно-программного обеспечения, приспособленных для выполнения инструкций аппаратного обеспечения или аппаратно-программного обеспечения. Процессоры логического устройства могут быть одноядерными или многоядерными, при этом выполняемые ими инструкции могут быть приспособлены для последовательной, параллельной и/или распределенной обработки данных. Индивидуальные компоненты логического устройства в качестве опции могут быть распределены между двумя или более отдельными устройствами, которые могут располагаться удаленно, и/или выполнены с возможностью координированной обработки данных. Объекты логического устройства могут быть виртуализированы и выполняться сетевыми компьютерными устройствами с удаленным доступом, обладающими облачной конфигурацией.
[0040] Устройство 704 хранения данных включает в себя одно или более физических устройств, выполненных с возможностью хранения инструкций, выполняемых логическим устройством для реализации способов и операций, представленных в настоящем описании. При реализации таких способов и операций состояние устройства 704 хранения данных может трансформироваться, например, для хранения различных данных.
[0041] Устройство 704 хранения данных может включать в себя съемные и/или встроенные устройства. Устройство 704 хранения данных, среди прочего, может включать в себя оптическое запоминающее устройство (например, CD, DVD, HD-DVD, диск Blu-Ray и т.д.), полупроводниковое запоминающее устройство (например, RAM, EPROM, EEPROM и т.д.) и/или магнитное запоминающее устройство (например, накопитель на жестких дисках, накопитель на гибких дисках, накопитель на магнитной ленте, MRAM и т.д.). Устройство 704 хранения данных может включать в себя энергозависимые, энергонезависимые, динамические, статические устройства, устройства считывания/записи, только для считывания, с произвольной выборкой, с последовательной выборкой, с адресацией по местоположению, c адресацией файла и/или c адресацией по содержимому.
[0042] Следует понимать, что устройство 704 хранения данных включает в себя одно или более физических устройств. Однако объекты инструкций, представленных в настоящем описании, в качестве альтернативы могут распространяться с помощью среды передачи данных (например, электромагнитного сигнала, оптического сигнала и т.д.), не удерживаемой физическим устройством на протяжении конечного промежутка времени.
[0043] Объекты логического устройства 702 и устройства 704 хранения данных могут быть объединены в один или более аппаратно-логических компонентов. Такие аппаратно-логические компоненты могут включать в себя, например, вентильные матрицы, программируемые в условиях эксплуатации (FPGA), программно-зависимые интегральные схемы и интегральные схемы прикладной ориентации (PASIC/ASIC), стандартные части программно-зависимых и специализированных интегральных схем (PSSP/ASSP), систему на кристалле (SOC), а также сложные программируемые логические устройства (CPLDs).
[0044] Термины "модуль", "программа" и "машина" могут использоваться для описания объекта вычислительной системы 700, приспособленного для выполнения конкретной функции. В некоторых случаях модуль, программа или машина могут быть реализованы посредством логического устройства 702, выполняющего инструкции, хранимые в устройстве 704 хранения данных. Следует понимать, что различные модули, программы и/или машины могут быть реализованы из одного и того же приложения, сервиса, кодового блока, объекта, одной и той же библиотеки, стандартной программы, API, функции и т.д. Аналогичным образом одни и те же модуль, программа и/или машина могут быть реализованы различными приложениями, сервисами, кодовыми блоками, объектами, стандартными программами, API, функциями и т.д. Термины "модуль", "программа" и "машина" могут охватывать отдельные исполняемые файлы, файлы данных, библиотеки, программы управления, скрипты, записи в базе данных и т.д. или группы таковых.
[0045] Следует понимать, что понятие "сервис" в контексте настоящего описания относится к прикладной программе, исполняемой в течение множества пользовательских сеансов. Сервис может быть доступен одному или нескольким компонентам системы, программам и/или другим сервисам. В некоторых вариантах реализации сервис может работать на одном или более служебных вычислительных устройствах.
[0046] Если таковая присутствует, подсистема 706 отображения может использоваться для визуального представления информации, хранимой в устройстве 704 хранения данных. Данное визуально представление может принимать вид графического интерфейса пользователя (GUI). Поскольку представленные в настоящем описании способы и операции изменяют данные, хранимые в устройстве хранения данных, и тем самым преобразуют состояние устройства хранения данных, состояние подсистемы 706 отображения может аналогичным образом трансформироваться, чтобы визуально представлять изменения в базовых данных. Подсистема 706 отображения может включать в себя одно или более дисплейных устройств, виртуально использующих любой тип технологии. Такие дисплейные устройства могут объединяться с логическим устройством 702 и/или устройством 704 хранения данных в совместно используемом корпусе, либо такие дисплейные устройства могут представлять собой периферийные дисплейные устройства.
[0047] Подсистема 708 ввода данных может содержать или быть сопряженной с одним или несколькими устройствами пользовательского ввода, такими как система отслеживания движения глаз (например, система отслеживания движения глаз компьютерного устройства 104, представленного на ФИГ. 1), клавиатура, манипулятор типа "мышь", сенсорный экран, указательное устройство рукописного ввода или игровой контроллер. В некоторых вариантах осуществления подсистема ввода данных может содержать или быть сопряженной с выбранными компонентами естественного пользовательского ввода (NUI). Такие компоненты могут быть интегрированными или периферийными, при этом передача и/или обработка информации входных воздействий может осуществляться «на плате» или «вне платы». В число примеров NUI-компонентов могут входить микрофон для обнаружения речи и/или голоса; инфракрасная, цветная, стереоскопическая камера и/или камера глубины для машинного зрения и/или обнаружения жестов; устройство отслеживания положения головы, устройство отслеживания движения глаз, акселерометр и/или гироскоп для детектирования движения и/или обнаружения намерений; а также компоненты для измерения электрических полей, предназначенные для оценки активности головного мозга. Например, подсистема ввода данных может содержать систему отслеживания движения глаз и/или часть системы отслеживания движения глаз, выполненные с возможностью осуществления способов 200 и/или 300, представленных на ФИГ. 2 и 3.
[0048] Если таковая присутствует, подсистема 710 связи может быть выполнена с возможностью соединения вычислительной системы 700 с одним или несколькими другими компьютерными устройствами с возможностью обмена информацией между ними. Подсистема 710 связи может включать в себя проводные и/или беспроводные коммуникационные устройства, способные работать с одним или несколькими различными протоколами обмена данными. В качестве нескольких неограничивающих примеров подсистема связи может быть выполнена с возможностью обмена данными посредством беспроводной телефонной сети либо проводной или беспроводной локальной или широкомасштабной сети передачи данных. В некоторых вариантах осуществления подсистема связи может позволять вычислительной системе 700 отправлять сообщения на другие устройства и/или получать сообщения от других устройство по сети, такой как Интернет.
[0049] Следует понимать, что конфигурации и/или подходы, представленные в настоящем описании, приведены лишь в качестве примеров, и что эти конкретные варианты осуществления или примеры не должны рассматриваться как ограничивающие, поскольку возможно множество вариантов. Конкретные стандартные программы или способы, представленные в настоящем описании, могут представлять один или более из неограниченного множества подходов по обработке данных. Таким образом, различные действия, которые были проиллюстрированы и/или описаны, могут выполняться в проиллюстрированной и/или описанной последовательности, в других последовательностях, параллельно либо могут отсутствовать. Точно так же порядок вышеописанных операций может быть изменен.
[0050] Объект изобретения по настоящему раскрытию включает в себя все новые и неочевидные комбинации и подкомбинации различных операций, систем и конфигураций, а также другие признаки, функции, действия и/или свойства, раскрытые в настоящем описании, и все их эквиваленты.