ОТСЛЕЖИВАНИЕ ВЗГЛЯДА ЧЕРЕЗ ОЧКОВУЮ ОПТИКУ
EYE TRACKING THROUGH EYEGLASSES

УРОВЕНЬ ТЕХНИКИ
[0001] Последние достижения аппаратных и программных средств сделали возможными новые режимы естественного пользовательского ввода (NUI) для компьютерных систем. Распознавание жестов, распознавание голоса, и отслеживание взгляда являются примерами режимов NUI, которые дают возможность пользователю интуитивно взаимодействовать с компьютерными системами в различных целях и в различных средах.
РАСКРЫТИЕ ИЗОБРТЕНИЯ
[0002] Раскрыты варианты осуществления, которые относятся к различению отражений от глаза и отражений от очковой оптики в системе отслеживания глаза. Один раскрытый вариант осуществления предлагает способ предоставления входных данных, отвечающих за направление взгляда в компьютерной системе, функционально соединенной со системой визуального распознавания пользовательского ввода. В этом варианте осуществления, первое изображение глаза на первом уровне освещенности получают при помощи камеры системы визуального распознавания пользовательского ввода. Первое изображение получают от камеры, и второе изображение глаза, соответствующее второму, другому уровню освещенности также получают. Яркость соответствующих пикселей первого и второго изображений сравнивают, для того, чтобы различить отражение освещения глазом от отражения освещения очковой оптикой. Входные данные затем предоставляют, на основании отражения освещения глазом.
[0003] Это «Раскрытие изобретения» дано для того, чтобы в упрощенной форме представить выбор концепций, которые далее описаны в подробном описании. Это описание не предназначено для выявления ключевых признаков или существенных признаков заявленного изобретения, а также не предназначено для использования в ограничении объема заявленного изобретения. Более того, заявленное изобретение не ограничивается реализациями, которые решают любые или все недостатки, упомянутые в любой части этого описания изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0004] Фиг. 1 показывает аспекты примерной среды, в которой отслеживают взгляд пользователя и используют в качестве входных данных в компьютерной системе.
[0005] Фиг. 2 показывает аспекты примерной компьютерной системы с системой NUI, функционально соединенной со системой визуального распознавания пользовательского ввода.
[0006] Фиг. 3 показывает аспекты примерной системы визуального распознавания пользовательского ввода, выполненной с возможностью обнаруживать взгляд.
[0007] Фиг. 4A показывает примерное изображение глаз пользователя, полученное на высоком уровне освещенности.
[0008] Фиг. 4B показывает примерное изображение глаз пользователя, полученное на низком уровне освещенности.
[0009] Фиг. 4C показывает примерный результат исключения, из изображения на Фиг. 4A, отражений от очковой оптики пользователя.
[0010] Фиг. 5 показывает аспекты дополнительных примерных сред, в которых отслеживают взгляд пользователя и используют в качестве входных данных в компьютерной системе.
[0011] Фиг. 6 показывает аспекты другой примерной системы визуального распознавания пользовательского ввода, выполненной с возможностью обнаруживать взгляд.
[0012] Фиг. 7 иллюстрирует примерный способ предоставления входных данных, отвечающих за направление взгляда в компьютерной системе.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0013] Отслеживание взгляда является видом NUI, основанным на направлении взгляда пользователя. В этом подходе изображение глаза пользователя получают при помощи камеры. Глазные черты, такие как зрачок или лимб, расположены в полученном изображении, и направление взгляда вычисляют на основании местоположения таких черт. Направление взгляда, вычисленное таким способом, может быть использовано для перемещения по графическому пользовательскому интерфейсу, чтобы запускать программы, делать выбор, передвигать персонажа в игре, и тому подобное. Хотя желаемые глазные черты могут быть идентифицированы на изображениях невооруженного глаза, паразитные отражения от очковой оптики могут быть источником помех. Подобные помехи могут снизить точность входных данных отслеживания взгляда для пользователей с очковой оптикой. В контексте данного документа термин "очковая оптика" включает в себя любой вид устройства, носимого так, что оно помещает прозрачную структуру между глазом и, по меньшей мере, частью поля зрения глаза. Примеры включают в себя, но не ограничиваются ими, очки, солнцезащитные очки, лицевые щитки, маски, защитные очки, системы контактных линз и другие наглазные устройства, системы отображения рядом с глазом, которые проектируют виртуальную визуальную информацию в после зрения владельца, и так далее.
[0014] В настоящем документе описаны примеры, которые могут помочь отличить отражения света от невооруженного глаза и отражения света от очковой оптики, и по этой причине может содействовать отслеживанию глаз. Фиг. 1 показывает аспекты примерной среды 10, в которой отслеживают взгляд пользователя и используют в качестве входных данных в компьютерной системе. Показанная среда является жилой комнатой или общей комнатой личного жилья. Тем не менее, системы и способы, описанные в настоящем документе в равной степени применимы в других средах, таких как производственная, розничная и рабочая среды. Среда 10 содержит домашнюю систему 12 мультимедийных развлечений для использования пользователем 14. Домашняя система мультимедийных развлечений включает в себя широкоформатное устройство 16 отображения и громкоговорители 18, каждое из которых функционально соединено с компьютерной системой 20. Природа компьютерной системы 20 может отличаться в различных реализациях. В некоторых примерах, компьютерная система может быть видеоигровой системой, или мультимедийной системой, выполненной с возможностью проигрывать музыку и/или видео. В других примерах эта компьютерная система может быть компьютерной системой общего назначения для доступа к сети Интернет и офисных приложений. Компьютерная система 20 может быть приспособлена для любой или всех вышеприведенных целей, и/или любых других подходящих целей, не выходя за объем этого раскрытия.
[0015] Компьютерная система 20 может быть выполнена с возможность принимать различные виды входных данных от одного или более пользователей 14. По этой причине устройства ввода данных пользователем, такие как клавиатура, мышь, сенсорный экран, игровая приставка, или контроллер джойстика могут быть функционально соединены с компьютерной системой 20. Компьютерная система 20 может также быть выполнена с возможностью принимать естественный пользовательский ввод (NUI) от одного или более пользователей. Для преобразования NUI, показанная компьютерная система включает в себя систему 22 NUI. Система NUI выполнена с возможностью захватывать различные аспекты NUI и предоставлять соответствующие выполнимые входные данные другим конструкциям в компьютерной системе. С этой целью система NUI принимает входные данные нижнего уровня от различных сенсорных компонентов этой компьютерной системы, которые включают в себя систему 24 визуального распознавания пользовательского ввода и необязательную систему 26 прослушивания.
[0016] Система 26 прослушивания, если содержится, может содержать один или более микрофонов, чтобы ловить звукообразование и другой слышимый ввод от пользователя 14. Система визуального распознавания пользовательского ввода 24 может быть выполнена с возможностью обнаруживать различные виды пользовательского ввода, такого как векторы V взгляда и фокальная точка P, а также и жесты рук и тела, черты лица, и так далее. В показанном примере система визуального распознавания пользовательского ввода и система прослушивания имеют общий корпус; в других примерах, они могут быть раздельными. В других примерах система визуального распознавания пользовательского ввода, прослушивающая система и NUI система могут быть интегрированы в компьютерную систему 20. Компьютерная система и ее периферийные компоненты могут быть соединены проводной линией связи, как показано на рисунке, или любым другим подходящим способом.
[0017] Фиг. 2 является схематическим представлением высокого уровня, показывающим аспекты примера компьютерной системы 20, системы 22 NUI, системы визуального распознавания пользовательского ввода 24, и системы 26 прослушивания. Показанная компьютерная система включает в себя операционную систему (OS) 28, которая может быть реализована в программном обеспечении и/или программно-аппаратном обеспечении. Компьютерная система также включает в себя одно или более приложений 30, таких как видеоигровое приложение, цифровой медиапроигрыватель, интернет-обозреватель, фоторедактор, текстовый процессор, и/или приложение для работы с электронными таблицами, к примеру. Компьютерная система 20, NUI система 22, система визуального распознавания пользовательского ввода 24, и система 26 прослушивания могут включать в себя подходящее хранилище данных, хранилище команд, и логическое аппаратное обеспечение согласно потребности для поддержки их соответствующих функций, как, дополнительно описано ниже.
[0018] В примере на Фиг. 2 система визуального распознавания пользовательского ввода 24 включает в себя одну или более камер 32 плоского изображения, и может также включать в себя одну или более камер 34 глубины. Каждая камера глубины, при наличии, может быть выполнена с возможностью получать последовательность с разрешением по времени карты глубины пользователя 14 и другие аспекты среды 10. Система визуального распознавания пользовательского ввода также включает в себя осевые и внеосевые лампы 36A и 36B, которые освещают пользователя 14 и среду 10, для поддержки образования изображения камерами плоского изображения и/или глубины. Каждая лампа и камера системы визуального распознавания пользовательского ввода являются функционально соединенными с микроконтроллером 38. Этот микроконтроллер может быть выполнен с возможностью управлять и запускать получение изображений камерами, и управлять выходным освещением каждой лампы системы визуального распознавания пользовательского ввода.
[0019] Камера 32 плоского изображения обнаруживает свет в диапазоне углов поля и проецирует такие углы на прямоугольную пиксельную матрицу. В одном примере, камера плоского изображения может обнаруживать свет во множестве каналов длин волн - например, красном, зеленом, голубом, и так далее - ассоциированных с поднабором пикселей матрицы. В ином случае, монохромная камера плоского изображения может быть использована, для создания изображения видимого, ближнего инфракрасного (NIR), инфракрасного (IR), и/или ультрафиолетового (UV) света в оттенках серого. Значения цвета или яркости для всех пикселей , экспонированных в камере плоского изображения, составляют в совокупности цифровое изображение. В некоторых примерах, пиксели камеры плоского изображения могут быть совпадающими с пикселями камеры глубины.
[0020] Как отмечалось выше, система 22 NUI обрабатывает входные данные низкого уровня (то есть, сигнал) от системы визуального распознавания пользовательского ввода 24 и необязательной системы 26 прослушивания, чтобы обеспечить требующий действия, высокоуровневый ввод в компьютерную систему 20. К примеру, система NUI может выполнять распознавание звука или голоса на звуковом сигнале от системы 26 прослушивания. Распознавание голоса может генерировать соответствующие текстовые или другие высокоуровневые команды, подлежащие приему в OS 28 компьютерной системы. В примере, показанном на Фиг. 2, задача формулирования конкретного вида NUI из сенсорных данных назначена конкретным подсистемам NUI: подсистеме 40 распознавания речи, подсистеме 42 распознавания жестов, подсистеме 44 распознавания лиц, и подсистеме 46 обнаружения взгляда. Каждая из этих подсистем может быть выполнена с возможностью предоставлять свой соответствующий вид входных данных в OS и/или приложения компьютерной системы.
[0021] Теперь, обращаясь к Фиг. 3, каждая лампа 36 системы визуального распознавания пользовательского ввода 24 может содержать светоизлучающий диод (LED), полупроводниковый лазер, газоразрядную лампу, и/или другой подходящий источник света. В среде 10 лампа 36A обеспечивает осевое освещение глаза 48, а лампа 36B обеспечивает внеосевое освещение. Термины "осевое" и "внеосевое" относятся к направлению освещения в отношении оптической оси A камеры 32 плоского изображения.
[0022] Осевое и внеосевое освещение может служить разным целям в отношении отслеживания взгляда в среде 10. Как показано на Фиг. 3, внеосевое освещение может создавать зеркальную вспышку 50, которая отражается от роговицы 52 глаза пользователя. Внеосевое освещение может также быть использовано, чтобы освещать глаз для эффекта "темного зрачка", когда зрачок 54 выглядит темнее, чем окружающая радужная оболочка 56. В противоположность этому, осевое освещение от IR и NIR источника может быть использовано, чтобы создавать эффект "яркого зрачка", когда зрачок выглядит ярче, чем окружающая радужная оболочка. Конкретнее, IR или NIR освещение от осевой лампы 36A может освещать световозвращающую ткань сетчатки 58 глаза, которая отражает это освещение обратно через зрачок, образуя яркое изображение 60 зрачка, как запечатлено камерой 32 плоского изображения. В некоторых примерах, камера плоского изображения может включать в себя светофильтр, блокирующий передачу за пределами IR или NIR полосы осевой лампы 36A, чтобы улучшить контраст яркого зрачка в присутствии сильного окружающего света. Хотя Фиг. 3 показывает осевые и внеосевые лампы схематически как точечные источники, будет понятно, что эти лампы могут принимать любой подходящий вид. К примеру, в некоторых примерах, осевая лампа 36A может быть выполнена в виде "LED кольца" окружающего отверстие объектива камеры 32 плоского изображения. Другими словами, осевая лампа может включать в себя множество светодиодов, опоясывающих оптическую ось камеры плоского изображения.
P
[0023] Подсистема 46 обнаружения взгляда может быть выполнена с возможностью обрабатывать данные изображения от камеры плоского изображения, чтобы обнаруживать местоположение таких признаков как центр зрачка, внешний контур зрачка, и/или роговичные блики. Местоположение таких признаков в данных изображения может быть использовано как входные параметры в модели, например, полиномиальной модели - которая устанавливать связь положения признака с вектором V взгляда глаза. В примерах, где взгляд обнаруживают одновременно и для левого и для правого глаза, точка пересечения правого и левого векторов взгляда может определить фокальную точку  пользователя в трех измерениях.
P
[0024] Возвращаясь кратко к Фиг. 1, рисунок иллюстрирует сценарий, в котором пользователь 14 перемещается по UI, представленном на устройстве 16 отображения, основываясь на направлении взгляда. В этом сценарии, подсистема 46 обнаружения взгляда вычисляет экранные координаты устройства отображения (X, Y), соответствующие точке , на которую пользователь смотрит. Посредством перемещения своего взгляда на другие точки на экране устройства отображения, пользователь может перемещаться между различными элементами 62 UI приложения или OS, исполняемой на компьютерной системе 20.
[0025] Подход обнаружения взгляда, представленный выше, может быть дополнительно усовершенствован, чтобы улучшить точность, в случаях, когда пользователь 14 может быть носящим очковую оптику, такую как солнцезащитные очки, корректирующие линзы, бифокальные очки, солнцезащитные очки, смотровые щитки, контактные линзы, системы отображения рядом с глазом, и/или другая очковая оптика. Расположенная близко к глазу, такая очковая оптика может отражать освещение от ламп 36A и 36B системы визуального распознавания пользовательского ввода 24. Такие отражения создают шум в данных изображения, полученных системой визуального распознавания пользовательского ввода. Повышенный шум может делать более трудным для подсистемы 46 обнаружения взгляда однозначное определение местонахождение зрачка и/или роговичный блеск, что может повышать ошибку в определенном направлении взгляда. Более конкретно, отражение от очковой оптики может выглядеть схоже с изображениями яркого зрачка, создаваемыми с осевым освещением, в результате чего подсистема обнаружения взгляда ошибочно принимает их за яркие зрачки. Этот эффект показан на Фиг. 4A, где яркие зрачки 54 показываются вместе с многочисленными отражениями от очковой оптики. Схожий эффект может происходить когда высокоугловое освещение от внеосевой лампы 36B отражается очками и ошибочно принимается за роговичный блик. Как правило, когда отражение от очков пользователя относительно мало в диаметре и яркое, оно может выглядеть схоже с роговичным бликом для подсистемы обнаружения взгляда.
[0026] Один подход чтобы устранить неоднозначность между глазными отражениями и отражениями от очков состоит в удалении последних с помощью постобработки полученных изображений. Вероятные критерии установления различия включают в себя интенсивность, размер, или геометрию (форму) потенциально подходящих отражений. Тем не менее, любой подход постобработки может быть чувствительным к качеству изображения и другим шумовым факторам, и может требовать чрезмерное время вычисления. Более того, устранение шумов, основанное на геометрическом установлении различия шумовых отражений, может оказаться неспособным сделать общие выводы среди ожидаемого диапазона сценариев использования - например, разных стилей очков, носимых пользователем, которые могут включать в себя разные кривизны линз, формы оправ, и т.д.
[0027] По этой причине раскрываемые примеры могут устранить неоднозначность между желаемыми глазными отражениями и отражениями от очков, используя серии изображений глаз пользователя, полученные при разных уровнях освещенности (то есть, интенсивности, мощности). Для этого, одна, несколько, или все лампы 36 системы визуального распознавания пользовательского ввода 24 могут быть выполнены с возможностью перехода от обеспечения первого уровня освещенности к обеспечению второго, другого уровня освещенности за относительно короткий промежуток времени, как дополнительно описано ниже.
[0028] В одном примере микроконтроллер 38 системы визуального распознавания пользовательского ввода 24 может быть выполнен с возможностью стробировать осевую лампу 36A и/или внеосевую лампу 36B с помощью широтно-импульсной модуляции (PWM). Два или более кадра изображения получают на разных уровнях яркости, назначая разные значения PWM каждому кадру. В других примерах, этот микроконтроллер может изменять напряжение или ток, подаваемый на лампы, изменять количество элементов лампы (например, светодиодов), получающих энергию, или модулировать электронно-оптический аттенюатор, чтобы изменить уровень освещенности. Изображения глаза на множестве уровней яркости (высоком + низком, высоком + промежуточном + низком и т.д.) захватывают за очень короткий интервал времени - например, 60 миллисекунд (мс) или меньше, или 30 мс или меньше в некоторых примерах. Этот интервал может быть выбран, к примеру, чтобы ограничить степень размытия движения, вызываемого возможным движением глаз между получением первого и последнего изображений. Во время этого интервала отражения от интересующих глазных черт, таких как зрачки и блики, могут снижаться пропорционально интенсивности из-за снижения освещенности. Тем не менее, зеркальные или почти-зеркальные отражения от очков пользователя могут насыщать принимаемые пиксели камеры 32 плоского изображения, даже на низких и промежуточных уровнях яркости. Соответственно, пропорциональное снижение в яркости может не наблюдаться для отражений от очков при переходе от высокой к промежуточной или низкой яркости. Пиксели, которые не становятся темнее пропорционально, могут быть удалены из рассмотрения любым подходящим способом, чтобы ограничить их влияние на последующие вычисления отслеживания взгляда.
[0029] Параллельное сравнение Фиг. 4A и 4B дополнительно иллюстрирует вышеприведенный подход. Фиг. 4A показывает изображение, полученное на высокой яркости, а Фиг. 4B показывает изображение, полученное на низкой яркости. Видно, что отражение от ярких зрачков 54 пользователя слабее на Фиг. 4B, чем на Фиг. 4A, но отражение от очков пользователя имеет такую же интенсивность.
[0030] Подсистема 46 обнаружения взгляда может быть выполнена с возможностью управлять буфером из двух или более изображений на разных уровнях яркости, захваченных за достаточно короткий промежуток времени, как например 60 мс или меньше в некоторых примерах. Подсистема обнаружения взгляда проверяет яркость первого (более яркого) и второго (более темного) изображения, измеряя каждый пиксель. Если пиксель имеет схожую насыщенную яркость - например, отличается на величину меньше порогового значения - или остается насыщенным и на том и на другом изображениях - этот пиксель тогда может, в некоторых примерах, быть заменен средним значением яркости по всему изображению (на Фиг. 4A и 4B, соответственно) в то время как все оставшиеся пиксели (те, что не затронуты отражениями от очков) могут сохранять свои исходные значения. В других примерах, пиксели могут быть не заменены, а могут быть отслежены или компенсированы другим способом.
[0031] Следует отметить, что, поскольку изображения на Фиг. 4A является более ярким, зрачки имеют лучший контраст относительно радужной оболочки и являются более легко обнаруживаемыми. Напротив, поскольку Фиг. 4B темнее, блики имеют лучший контраст относительно зрачков и являются более легко обнаруживаемыми. Получившиеся обработанные изображения на Фиг. 4A и Фиг. 4B, после компенсирования отражений от очков, используют как входные данные для обнаружения зрачка и обнаружения блика соответственно. Фиг. 4C показывает результат этой процедуры, примененной к изображениям с высокой и низкой интенсивностью на Фиг. 4A и 4B, где белые круги обозначают обнаруженные контуры зрачков 54.
[0032] Вышеприведенные чертежи и описание не должны интерпретироваться в ограничительном смысле, многочисленные другие примеры и сценарии использования так же предусмотрены. В частности, многочисленные другие среды и форм-факторы, помимо показанных на Фиг. 1, лежат в пределах сущности и объема этого раскрытия. К примеру, как показано на Фиг. 5, аналогичное отслеживание взгляда может быть осуществлено в смартфоне 66 или настольном компьютере 68 с подходящей системой визуального распознавания пользовательского ввода 24A, смонтированной на лицевой панели устройства отображения. В других примерах, аналогичное отслеживание взгляда может быть осуществлено в планшете или переносном компьютере со встроенной системой визуального распознавания пользовательского ввода.
[0033] В других примерах, система визуального распознавания пользовательского ввода может быть встроена в активный головной убор или очковую оптику, носимую пользователем (который также может носить обычные очки). Подобный головной убор или очковая оптика могут дополнительно поддерживать стереоскопическую систему отображения рядом с глазом. Фиг. 6 показывает оптическую систему 70 системы отображения рядом с глазом со встроенным отслеживанием взгляда. В этом примере, пользователь носит дополнительные корректирующие линзы 71. Камера 32 плоского изображения создает изображение света от осевой IR или NIR лампы 36A, отражающегося от глаза владельца. Внеосевая лампа 36B обеспечивает относительно высокоугловое освещение глаза, чтобы создать зеркальная вспышку на роговице глаза, стимулируя эффект темного зрачка, и так далее. Оптика с регулировкой пучка, интегрированная с оптической системой 70, позволяет камере и осевой лампе иметь общую оптическую ось A, несмотря на их расположение на периферии оптической системы.
[0034] Подходы, описанные в настоящем документе, могут быть распространены, чтобы включать в себя другие виды зеркального отражения, чем отражение от очковой оптики. В большинстве случаев, практически любая поверхность, расположенная между пользователем и системой визуального распознавания пользовательского ввода, может вызывать яркое, зеркальное отражение, которое является различимым способом, описанным в настоящем документе. К примеру, зеркальное отражение освещения системы визуального распознавания пользовательского ввода от защитного окна (стекло, лист акрилового полимера или поликарбоната, защитный экран, и т.д.) может быть отличено от глазного отражения, к примеру, основываясь на обнаруженной неизменной яркости при двух или более уровнях освещенности.
[0035] Конфигурации, описанные выше, делают возможными различные способы осуществления обнаружения взгляда в компьютерной системе, функционально соединенной со системой визуального распознавания пользовательского ввода. Некоторые такие способы будут теперь описаны, по-прежнему ссылаясь на примерные конфигурации, описанные выше. Тем не менее, следует понимать, что способы, описанные в настоящем документе, и другие, находящиеся в объеме этого раскрытия, также могут быть возможны при помощи других конфигураций.
[0036] Фиг. 7 показывает примерный способ 74 предоставления входных данных, соответствующих направлению взгляда в компьютерной системе, функционально соединенной со системой визуального распознавания пользовательского ввода. На этапе 76 способа 74 выходной поток осевой лампы системы визуального распознавания пользовательского ввода регулируют, чтобы обеспечить первый уровень освещенности глаза пользователя перед получением первого изображения глаза, к примеру, используя один или более способов, описанных выше. Этот первый уровень освещенности может быть относительно высоким уровнем освещенности, в одном примере.
[0037] На этапе 78 первое изображение глаза получают от камеры системы визуального распознавания пользовательского ввода. Это первое изображение получают камерой во время интервала, в котором обеспечен первый уровень освещенности глаза. На этапе 80 получают второе изображение глаза, соответствующее второму, другому уровню освещенности. Этот второй уровень освещенности может быть ниже или выше, чем первый уровень освещенности, и это второе изображение может быть получено разными способами в различных примерах.
[0038] В одном примере выходной поток осевой лампы может быть снова отрегулирован, чтобы обеспечить второй уровень освещенности для получения второго изображения камерой. Второе изображение затем получают от камеры. В другом примере второе изображение глаза получают посредством умножения яркости каждого ненасыщенного пикселя первого изображения на коэффициент умножения, чтобы получить соответствующий пиксель второго изображения.
[0039] Этот коэффициент умножения может быть больше чем единица, чтобы создать в целом более яркое второе изображение, или меньше чем единица, чтобы создать в целом более темное второе изображение. В одном варианте, умноженные значения яркости второго изображения могут быть обрезаны до максимальной яркости, допустимой для вида кодирования изображения, используемого камерой. Дополнительно, уже насыщенные пиксели  в первом изображении могут быть умножены на другой коэффициент (например, на коэффициент, равный единице), или иначе скрыты. Таким образом, насыщенные пиксели  (которые могут соответствовать зеркальному отражению от очков пользователя) исключаются из последующего вычисления, чтобы определить направление взгляда.
[0040] Эти первое и второе изображения могут быть выполнены с возможностью показывать глазные отражения (например, яркие зрачки) на разных, ненасыщенных уровнях яркости. Этот признак используется, чтобы отличить глазные черты от отражений очками (и, в некоторых сценариях, от роговичных бликов из-за внеосевого освещения, которые обычно остаются насыщенными, даже при относительно низких уровнях освещенности). Тем не менее, не всегда возможно предсказать подходящие первый и второй уровни освещения в преддверии неизвестного сценария использования. К примеру, разные виды очковой оптики демонстрируют отражения с разной отражающей способностью. Дополнительно, глаза разных людей могут требовать разных уровней осевого освещения, чтобы давать реакцию в виде яркого зрачка. Вместо того чтобы применять одни и те же два уровня освещенности для каждого пользователя, подсистема 46 обнаружения взгляда может быть выполнена с возможностью анализировать серию из трех или более изображений, полученных на разных уровнях освещенности, и затем выбирать подходящие первое и второе изображения, чтобы выделить эти первый и второй уровни освещенности, как показано на этапе 82 на Фиг. 7. Выбранные изображения могут быть теми, к примеру, которые демонстрируют насыщенные отражения от очков, и сильные, но ненасыщенные (например, > 30% насыщенной интенсивности, >50%, в качестве примеров) отражения яркого зрачка. Таким образом, первый и второй уровни освещенности, в способе 74, могут быть выбраны, основываясь на способности вызывать и различать эффект яркого зрачка в изображенном глазе, при этом, такие уровни отличаются для глаз разных пользователей.
[0041] Другой причиной, чтобы обеспечить диапазон уровней освещенности среди трех или более получаемых изображений, может быть разрешение системе реагировать на изменение уровней окружающего света в диапазоне длин волн осевой лампы. Таким образом, первый и второй уровни освещенности могут быть выбраны, основываясь на состояние окружающего света. Обеспечение диапазона уровней освещенности также может помочь в отличии реакции в виде яркого зрачка от роговичного блика, происходящего от внеосевого освещения. Любое подходящее число полученных изображений глаза и соответствующих уровней освещенности может быть получено, например, два, три, четыре, и так далее. Это число может быть зависящим от таких факторов, как используемая частота кадров. Другими словами, более быстрое получение изображений может позволить получение большего числа изображений, не испытывая отрицательного эффекта размытости изображения из-за движения глаз.
[0042] Альтернативные режимы выбора изображений/уровня освещенности могут также быть использованы на этом этапе способа, чтобы решить проблемы, отмеченные выше. К примеру, после того как подходящие уровни освещенности выявлены посредством анализа полученных изображений, эта информация может быть возвращена на более ранние этапы этого способа, чтобы управлять тем, какие уровни освещенности фактически использовать при получении первого изображения, и получении второго изображения (не важно, при повторном получении изображения или при обработке первого изображения). Этот вид обратной связи может быть использован, чтобы снизить количество излишних изображений, получаемых при каждом проходе через этот способ, что может снизить запаздывание отслеживания взгляда. Даже в случаях, когда получают два изображения, обратная связь, основанная на анализе полученных изображений, может быть использована, чтобы уточнить высокий и низкий уровни освещенности, используемые для последующих первых и вторых изображений.
[0043] Продолжая на Фиг. 7, на этапе 84 способа 74, отражение освещения глазом пользователя отличается от отражения освещения очковой оптикой пользователя. Как отмечалось выше, желаемое отражение освещения глазом может образовывать реакцию в виде яркого зрачка - то есть, обратное отражение сетчаткой глаза пользователя, которое проходит обратно через зрачок и заставляет зрачок выглядеть ярко относительно окружающей радужной оболочки. В ином случае, и не менее важно, отражение глазом может включать в себя отражение самой радужной оболочкой, что заставляет зрачок выглядеть темным, относительно радужной оболочки.
[0044] В одном примерном варианте осуществления различение отражения глазом и очковой оптикой может включать в себя сравнение яркости соответствующих пикселей первого и второго изображений. В одном примере соответствующие пиксели первого и второго изображений могут быть ассоциированы с отражением освещения глазом, если яркость таких пикселей отличается более чем на пороговое значение (например, более чем на 5%, более чем на 10%, более чем на 10% насыщенности, более чем на 10% максимальной яркости, и т.д.). В то же время, соответствующие пиксели могут быть ассоциированы с отражением освещения очковой оптикой, если их яркость отличается менее чем на пороговое значение (например, менее чем на 5%, менее чем на 1%, и т.д.). Такие пиксели могут быть скрыты от дальнейшего вычисления. В другом примере соответствующие пиксели первого и второго изображений могут быть ассоциированы с отражением очковой оптикой, если оба пикселя являются насыщенными. В еще одном примере алгоритм машинного обучения может быть использован, чтобы различить отражение освещения глазом от отражения освещения очковой оптикой.
P
[0045] На этапе 86 входные данные направления взгляда вычисляют, основываясь на местоположении, на первом или втором изображении, отражения освещения глазом, в то же время, исключая те пиксели , которые ассоциированы с отражением освещения очковой оптикой. В одном примере вычисленные входные данные включают в себя азимутальный угол AA (на Фиг. 3) и угол возвышения EA, определяющие направление взгляда сквозь глаз. Любая подходящая система координат может быть использована для определения подобных углов. В одном примере эта система координат имеет своим основанием вход зрачка камеры 34 плоского изображения, а одна ось совпадает с оптической осью A. Само собой, вышеприведенные этапы способа 74 могут быть осуществлены и на одном и на другом глазу пользователя, в выполненной подходящим образом системе визуального распознавания пользовательского ввода. Когда векторы взгляда доступны и для того и для другого глаза, координаты фокальной точки  пользователя могут также быть определены и входить в состав входных данных.
[0046] В некоторых случаях осевое или внеосевое освещение очковой оптики пользователя будет создавать отражение, которое перекрывает желаемый глазной признак на первом или втором изображении. Когда это происходит, исключение пикселей, ассоциированных с отражением от очковой оптики, может скрывать этот глазной признак, или некоторый его участок, возможно вызывая прерывание в обнаружении взгляда для затронутого глаза. Следует понимать, тем не менее, что даже длительное прерывание в доступности ввода взглядом может быть менее разрушительным для взаимодействия с пользователем, чем доставка неточного ввода взглядом. Это может быть особенно справедливо в примерах, где взгляд обнаруживают независимо для каждого глаза.
[0047] На необязательном этапе 88 вычисленное направление взгляда корректируют, основываясь на кинематическую модель, чтобы учесть размытие вследствие движения - а именно, движение глаза во время короткого интервала времени между получением первого и второго изображений. Эта кинематическая модель может быть моделью оптического потока, к примеру.
[0048] На этапе 90 входные данные, включающие в себя обнаруженное направление взгляда (и определенную фокальную точку, если она доступна) предоставляют в соответствующую пользовательскую структуру в компьютерной системе - например, OS или приложение компьютерной системы - основываясь на отражении освещения системы визуального распознавания пользовательского ввода глазом. В силу эффекта установления различия отражений раскрываемого способа, предоставляемые входные данные могут быть в значительной мере независимыми от отражения освещения очковой оптикой пользователя. Будет понятно, что примеры, описанные в настоящем документе, могут быть реализованы многими различными способами. К примеру, изображение глаза пользователя может быть захвачено через множество экспозиций, например, используя технологии построения изображений с расширенным динамическим диапазоном (HDR), чтобы достичь большего динамического диапазона яркости в каждом изображении, чем с не-HDR технологиями.
[0049] Дополнительно, некоторые реализации могут использовать систему считывания изображения, выполненную с возможностью получать два или более последовательных кадра с некоторым интервалом кадров (например, каждые 30 мс) что помогает избежать воздействия на желаемую частоту кадров. В качестве неограничивающего примера, система подсветки, содержащая один или более лазеров, может быть использована для освещения так, чтобы это освещение обеспечивалось на первой интенсивности на период времени (например, 2 мс), за которым следует вторая, более высокая интенсивность на другой период времени (например, другие 2 мс). Во время этого процесса освещения, первый кадр может быть получен в первый период времени, а второй кадр может быть получен во время второго периода времени так, чтобы оба изображения глаза были получены перед чтением данных изображения. Любые дополнительные последующие кадры могут быть получены подобным образом. После процесса освещения эти два или более полученных кадра изображения могут быть прочитаны за оставшуюся продолжительность длительности кадра. Любая подходящая аппаратная конфигурация может быть использована, чтобы получить изображения таким способом. К примеру, система может принимать вид двух расположенных рядом камер, которые могут или не могут быть внутренне сконструированы, чтобы делить одну и ту же матрицу.
[0050] Как видно из предшествующего описания, способы и процессы, описанные в настоящем документе, могут быть привязаны к компьютерной системе из одной или более вычислительных машин. Такие способы и процессы могут быть реализованы как прикладная компьютерная программа или служба, прикладной программный интерфейс (API), библиотека, и/или другой компьютерный программный продукт. Читатель снова отсылается к Фиг. 2, которая показывает неограничивающий пример компьютерной системы 20, используемой для поддержки способов и процессов, описанных в настоящем документе. Эта компьютерная система включает в себя логическую машину 92 и машину 94 хранения команд. Эта компьютерная система также включает в себя устройство 16 отображения, систему 96 передачи информации, и различные компоненты, не показанные на чертеже.
[0051] Каждая логическая машина 92 включает в себя одно или более физических логических устройств, выполненных с возможностью исполнять команды. Логическая машина может быть выполнена с возможностью исполнять команды, которые являются частью одного или более приложений, служб, программ, подпрограмм, библиотек, объектов, компонентов, структур данных, или других логических структур. Такие команды могут быть реализованы, чтобы выполнять задачу, реализовывать тип данных, изменять состояние одного или более компонентов, достигать технического эффекта, или иным образом достигать желаемого результата.
[0052] Каждая логическая машина 92 может включать в себя один или более процессоров, выполненных с возможностью исполнять программные команды. Дополнительно или в качестве альтернативы, логическая машина может включать в себя одну или более аппаратных или программно-аппаратных логических машин, выполненных с возможностью исполнять аппаратные или программно-аппаратные команды. Процессоры логической машины могут быть одноядерными или многоядерными, а команды, исполняемые на них, могут быть выполнены с возможностью последовательной, параллельной, и/или распределенной обработки. Отдельные компоненты логической машины, при необходимости могут быть распределены по двум или более отдельным устройствам, которые могут быть удаленно расположены и/или выполнены с возможностью координировать обработку. Аспекты логической машины могут быть виртуализированы и исполняться за счет удаленно доступных, сетевых вычислительных устройств, выполненных в конфигурации облачных вычислений.
[0053] Каждая машина 94 хранения данных включает в себя одно или более физических устройств компьютерной памяти, выполненных с возможностью хранить команды, исполняемые ассоциированной логической машиной 92, чтобы реализовать способы и процессы, описанные в настоящем документе. Когда такие способы и процессы реализуются, состояние машины хранения данных может быть изменено - например, чтобы хранить разные данные. Машина хранения данных может включать в себя съемные и/или встроенные устройства; она может включать в себя оптическую память (например, CD, DVD, HD-DVD, диск Blu-Ray, и т.д.), полупроводниковую память (например, RAM, EPROM, EEPROM, и т.д.), и/или магнитную память (например, накопитель на жестких магнитных дисках, накопитель на гибких магнитных дисках, накопитель на магнитной ленте, MRAM, и т.д.), среди прочих. Машина хранения данных может включать в себя энергозависимые, энергонезависимые, динамические, статические, с возможностью чтения/записи, доступные только для чтения, с произвольным доступом, с последовательным доступом, с физической адресацией, с файловой адресацией, и/или с адресацией по содержимому устройства.
[0054] Следует понимать, что каждая машина 94 хранения данных включает в себя одно или более физических устройств. Тем не менее, аспекты команд, описанных в настоящем документе, в качестве альтернативы могут быть распространены при помощи среды передачи данных (например, электромагнитного сигнала, оптического сигнала, и так далее), в противоположность сохранению с помощью носителя информации.
[0055] Аспекты логической машины (машин) и машины (машин) хранения данных могут быть объединены совместно в одном или более компоненте аппаратной логики. Такие компоненты аппаратной логики могут включать в себя программируемые логические матрицы (FPGA), специализированных интегральных микросхем (PASIC/ASIC), стандартные продукты, ориентированные на программу или приложение (PSSP/ASSP), однокристальные системы (SOC), и сложные устройства с программируемой логикой (CPLD), к примеру.
[0056] Термин "подсистема" может быть использован, чтобы описать аспект компьютерной системы, реализованный с возможностью выполнять отдельно взятую функцию. В некоторых случаях, подсистема может быть реализована с помощью логической машины, исполняющей команды, хранящиеся на машине хранения данных. Будет понятно, что разные подсистемы могут быть реализованы из одного и того же приложения, службы, блока кода, объекта, библиотеки, подпрограммы, API, функции, и так далее. Подобным образом, одна и та же подсистема может быть реализована разными приложениями, службами, блоками кода, объектами, подпрограммами, API, функциями, и так далее. Термин "подсистема" может охватывать отдельные или группы исполняемых файлов, файлов данных, библиотек, драйверов, скриптов, записей в базе данных, и так далее.
[0057] Система 96 передачи информации может быть выполнена с возможностью соединять с возможностью связи компьютерную систему с одной или более другими машинами. Эта коммуникационная система может включать в себя проводные и/или беспроводные устройства связи, совместимые с одним или более разными протоколами связи. В качестве неограничивающего примера, коммуникационная система может быть выполнена с возможностью осуществлять связь через беспроводную телефонную сеть, или проводную или беспроводную локальную или глобальную вычислительную сеть. В некоторых примерах, коммуникационная система может позволять вычислительной машине посылать и/или принимать сообщения к другим устройствам и/или от других устройств через такую сеть связи как сеть Интернет.
[0058] Будет понятно, что конфигурации и/или подходы, описанные в настоящем документе, являются примерными по своей природе, и что эти конкретные примеры или образцы не должны рассматриваться в ограничивающем смысле, поскольку многочисленные вариации являются возможными. Конкретные подпрограммы или методы, описанные в настоящем документе, могут представлять одно или более из любого числа стратегий обработки. Таким образом, различные показанные и/или описанные действия могут быть выполнены в последовательности показанной и/или описанной, в других последовательностях, параллельно, или опущены. Кроме того, порядок вышеописанных процессов может быть изменен.
[0059] Изобретение по настоящему раскрытию включает в себя все новые и неочевидные комбинации и подкомбинации различных процессов, систем, и конфигураций, и других признаков, функций, действий, и/или свойств, описанных в настоящем документе, а так же любые и все их эквиваленты.