КЛАССИФИКАЦИЯ КАСАНИЙ
TOUCH CLASSIFICATION

ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0001] Для более полного понимания раскрытия сущности настоящего изобретения, следует сделать ссылку на нижеследующее подробное описание и сопутствующие чертежи, в которых одинаковые ссылочные позиции могут быть использованы для идентификации одинаковых элементов на фигурах.
[0002] Фиг. 1 является блок-схемой системы, сконфигурированной для классификации касаний, согласно одному примеру.
[0003] Фиг. 2 является блок-схемой последовательности операций реализуемого компьютером способа для классификации касаний, согласно одному примеру.
[0004] Фиг. 3 является блок-схемой последовательности операций процедуры не-двухрежимной оценки способа фиг. 2, согласно одному примеру.
[0005] Фиг. 4 является блок-схемой последовательности операций процедуры не-двухрежимной оценки способа фиг. 2, согласно другому примеру.
[0006] Фиг. 5 является блок-схемой вычислительной среды согласно одному примеру, для реализации раскрытых способов и систем или одного или нескольких компонентов или их аспектов.
[0007] В то время как раскрытые системы и способы допускают варианты осуществления в различных формах, на чертежах показаны (и описаны ниже) конкретные варианты осуществления, причем следует понимать, что раскрытие сущности настоящего изобретения предназначено для иллюстрации, а не для ограничения настоящего изобретения конкретными вариантами осуществления, описанными и показанными здесь.
ПОДРОБНОЕ ОПИСАНИЕ
[0008] Способы, системы, и компьютерные программные продукты обеспечены для классификации событий касаний на чувствительной к касанию поверхности вычислительного устройства. Классификаторы машинного самообучения используются для различения преднамеренных и непреднамеренных касаний. Непреднамеренные события касаний могут проистекать от ладони пользователя, по невнимательности или по иным причинам контактирующей с чувствительной к касанию поверхностью. Другие непреднамеренные касания могут включать в себя большой палец или другую часть кисти на лицевой панели ручного устройства. Различение может обеспечить возможность отбрасывания или игнорирования таких непреднамеренных событий касаний вычислительным устройством. Отбрасывание непреднамеренных событий касаний, в сочетании с правильным распознаванием преднамеренных событий касаний, таких как умышленные касания пальцем или стилусом (или пером), может обеспечить улучшенный опыт взаимодействия пользователя с вычислительным устройством. В некоторых случаях, технологии классификации могут также различать разные типы преднамеренных касаний, например, события касаний пальцем и пером. Различение может также включать в себя генерацию данных, указывающих на уровень неопределенности или достоверности классификации.
[0009] Технологии классификации могут быть направлены на решение задач, представленных системами касания, сконфигурированными для касаний стилусом или пером. Например, в ходе нанесения метки на чувствительную к касанию поверхность стилусом или другим перьевым инструментом, пользователь может непреднамеренно опереться его или ее ладонью (или другой частью кисти или запястья) на эту поверхность. Вычислительное устройство может, тогда, некорректно интерпретировать этот непреднамеренный контакт ладони в качестве допустимого действия ввода, что обеспечивает, посредством этого, потенциально нежелательное поведение вычислительного устройства. Другие непреднамеренные касания могут включать в себя легкие касания или удары кистью (или перьевым или стилусным устройством, удерживаемым в той же кисти) по другим частям этой поверхности. Еще одна относящаяся к стилусу задача, на решение которой могут быть направлены технологии классификации, включает в себя корректную классификацию пальцев, которые не удерживают стилус, поскольку эти пальцы часто контактируют с экраном. Задачу усложняет то, что когда ладонь осуществляет касание вблизи края экрана, только малая часть ладони может быть обнаружена чувствительной к касанию поверхностью. Технологии классификации могут классифицировать ладонь корректно, несмотря на уменьшенную область ладони, находящуюся в контакте с чувствительной к касанию поверхностью.
[0010] Технологии классификации могут обеспечить процессы с низкой вычислительной сложностью, которые надежно различают преднамеренные и непреднамеренные касания в режиме реального времени. Эти технологии могут обеспечить низкие частоты ошибок без введения нецелесообразных задержек в реактивность пользовательского интерфейса. Ложноположительные результаты (ввод непреднамеренных касаний) и ложноотрицательные результаты (пропуск преднамеренных касаний) предотвращается посредством конфигурации классификаторов машинного самообучения и/или других аспектов этих технологий. Классификаторы машинного самообучения могут быть обучены посредством изображений от датчиков (или кадровых данных), собранных для каждого типа касания (например, от множества людей). Таким образом, технологии классификации не обязательно основываются на простых алгоритмах с целью минимизации задержки в обработке пользовательского интерфейса. Классификация машинного самообучения обеспечивает надежную классификацию в режиме реального времени, т.е., без введения эффектов задержки.
[0011] Улучшения в точности могут быть реализованы в вычислительных устройствах, имеющих разную величину доступной памяти и других вычислительных ресурсов. Разные классификаторы машинного самообучения могут быть использованы для приспособления к разным уровням ресурсов. Например, в некоторых случаях, классификаторы машинного самообучения сконфигурированы в виде классификаторов на основе леса произвольных решений (random decision forest - RDF), выполненных с возможностью обеспечения условных распределений вероятностей. RDF-классификаторы могут включать в себя хранилище структур данных RDF-дерева, которое имеет объем, приблизительно, десятки килобайтов памяти. Реализации RDF могут быть, таким образом, полезны в случаях, когда классификация касаний осуществляется на уровне программного обеспечения, например, на уровне операционной системы, с использованием процессора общего назначения (например, центрального обрабатывающего блока или графического обрабатывающего блока).
[0012] Технологии классификации могут быть также реализованы в вычислительных средах, в которых память и другие вычислительные ресурсы являются более ограниченными. В некоторых случаях, классификация машинного самообучения обеспечивается посредством классификаторов дерева решений, реализуемых в виде одной или нескольких справочных таблиц. Меньшие структуры данных классификации на основе справочных таблиц являются полезными, когда классификация реализуется микроконтроллерами и другими аппаратными средствами с ограниченными ресурсами. Технологии классификации могут быть, таким образом, реализованы в широком диапазоне вычислительных платформ. Хотя ниже описаны примеры, связанные с RDF и справочными таблицами, технологии классификации не ограничены никакими конкретными типами классификаторов машинного самообучения. Например, могут быть использованы классификаторы с нейронными сетями, нечеткой логикой, машинами опорных векторов и логистической регрессией.
[0013] Технологии классификации выполнены с возможностью агрегирования информации о касаниях по множественным кадрам события касания для улучшения точности классификации. Агрегирование предотвращает проблемы, которые могут возникнуть при попытках классификации события касания на основе только единственного изображения или кадра. Например, ладонь может казаться производящей действие, подобное преднамеренному касанию, когда ладонь впервые входит в контакт с поверхностью, или когда ладонь почти удалена с поверхности. В обоих случаях, может быть обнаружена только малая часть ладони. В некоторых случаях, агрегирование включает в себя агрегирование оценок классификации по множественным кадрам. В других случаях, агрегирование включает в себя агрегирование характеристик или признаков события касания по множественным кадрам. В иных случаях, технологии классификации могут использовать комбинацию обоих типов агрегирования. Агрегирование может также помочь предотвратить возникновение ложноположительных результатов в других ситуациях, например, когда обычно большая площадь касания ладони стремится исчезнуть вследствие того, что пользователь находится в электрически плавающем (незаземленном) состоянии (например, пользователь не имеет хорошего высокочастотного соединения с заземлением).
[0014] Классификаторы машинного самообучения выполнены с возможностью обеспечения множественных не-двухрежимных оценок классификации. Каждая не-двухрежимная оценка классификации указывает на уровень неопределенности или достоверности в классификации машинного самообучения. Природа оценок классификации может изменяться согласно, например, типу используемого классификатора. Например, каждая оценка классификации может быть не-двухрежимной в том смысле, что эта оценка классификации является значением вероятности (например, значением с плавающей точкой или другим нецелым числом, попадающим в диапазон от 0 до 1). Могут быть обеспечены множественные значения вероятности (например, по одному для каждого типа события касания). Другие типы оценок классификации могут, вместо этого, использовать целые числа. Например, оценка классификации может быть характеристикой-оценкой, попадающей в диапазон возможных оценок (например, от -9 до +9). В таких случаях, множественные не-двухрежимные оценки могут быть объединены (например, просуммированы) для определения конечной, комбинированной характеристики. Например, не-двухрежимные оценки из множественных справочных таблиц могут быть объединены для каждого кадра и, затем, могут быть агрегированы по всем кадрам, связанным с событием касания. Могут быть использованы другие типы не-двухрежимных оценок. Например, вероятность и типы характеристик оценок классификации могут быть объединены в разной степени для обеспечения методики гибридной классификации.
[0015] Термин «касание пальцем» используется здесь для ссылки на любое умышленное или преднамеренное событие касания, включающее в себя кисть или другую часть тела пользователя. Например, касание пальцем может включать в себя контакт боковой поверхности большого пальца руки с чувствительной к касанию поверхностью, который может произойти, например, во время двухпальцевого жеста масштабирования. Касание может быть прямым и непрямым. Например, касание может быть выполнено кистью в перчатке или иной одетой частью тела.
[0016] Термин «касание пером» используется для ссылки на множество разных преднамеренных касаний, включающих в себя касания пером, стилусом, или другим объектом, удерживаемым пользователем, для взаимодействия с чувствительной к касанию поверхностью. Вычислительные устройства могут быть сконфигурированы для использования с различными отдельными или помеченными физическими объектами, включающими в себя манипуляторы для графического планшета, специальные инструменты, такие как кисти или аэрографы, мобильные устройства, игрушки и другие физические пиктограммы или материальные объекты.
[0017] Термин «касание» используется для ссылки на любое взаимодействие с чувствительной к касанию поверхностью, обнаруживаемое датчиком ввода, связанным с чувствительной к касанию поверхностью. Касание может не включать в себя или не содержать прямой физический контакт. Взаимодействие может быть непрямым. Например, чувствительная к касанию поверхность может быть сконфигурирована с использованием датчиков близости. Взаимодействие может быть обнаружено через различные физические характеристики, такие как электромагнитное поле. Природа и/или источник касания может, таким образом, изменяться и включать в себя, например, контакт с пальцем или контакт с кистью, контакт с пером или контакт со стилусом, вводы данных на основе наведения, помеченные объекты, и любой другой объект, находящийся в контакте с поверхностью ввода или, иначе, вблизи поверхности ввода. Технологии классификации могут быть, таким образом, полезными в связи с событиями касаний, реализуемыми жестами и наведением, включающими в себя распространяемую емкость, оптическую технологию восприятия и/или другие технологии восприятия.
[0018] Термин «ладонь» и «касание ладонью» используются для ссылки на контакт или другое взаимодействие с поверхностью касания, включающие в себя любую одну или несколько частей тела, не предназначенных пользователем для интерпретации в качестве касания или другого взаимодействия с чувствительной к касанию поверхностью. Части тела могут включать в себя другие части кисти дополнительно к ладони, такие как суставы пальцев кисти, боковая поверхность пальца, запястье или предплечье, или другие части тела.
[0019] Технологии классификации могут быть полезными для множества ручных и других вычислительных устройств. Чувствительная к касанию поверхность и, таким образом, природа взаимодействия с чувствительной к касанию поверхностью, может, таким образом, изменяться. Преднамеренные касания, таким образом, не ограничены тем, что они включают в себя кончики пальцев или пальцы пользователя. Технологии классификации являются совместимыми и полезными в связи с любым чувствительным к касанию вычислительным устройством, имеющим одну или несколько чувствительных к касанию поверхностей или областей (например, экран касания, чувствительную к касанию лицевую панель или корпус, датчики для обнаружения вводов данных с помощью наведения, оптические датчики касания, и т.д.). Примеры чувствительных к касанию вычислительных устройств включают в себя, но не ограничены этим, чувствительные к касанию устройства отображения, соединенные с вычислительным устройством, чувствительные к касанию телефонные устройства, чувствительные к касанию медиа-плейеры, чувствительные к касанию устройства для чтения электронных книг, блокнотный компьютер, нетбук, буклет (с двумя экранами), или компьютеры планшетного типа, или любое другое устройство, имеющее одну или несколько чувствительных к касанию поверхностей. Размер и формфактор чувствительного к касанию вычислительного устройства может, таким образом, изменяться. Например, размер чувствительной к касанию поверхности может изменяться от устройства отображения ручного или переносного вычислительного устройства до устанавливаемого на стене устройства отображения или другого дисплейного экрана большого формата. Однако, чувствительная к касанию поверхность может быть связана или может быть не связана с устройством отображения или экраном касания (или может включать в себя или может не включать в себя устройство отображения или экран касания). Например, чувствительная к касанию поверхность может быть обеспечена в виде сенсорного планшета, на котором обнаруживают ввод касанием или может быть виртуальной поверхностью, реализованной в виде плоскости в пространстве, на которой обнаруживают ввод касанием, например, как может быть реализовано с использованием устройства Kinect корпорации Microsoft.
[0020] Технологии классификации описаны в связи с емкостными системами касания. Несмотря на то, что ссылки, приведенные здесь, относятся к емкостному восприятию, технологии классификации касаний, описанные здесь, не ограничены никакими конкретными типами датчика касания. Чувствительная к касанию поверхность может, альтернативно, использовать резистивный, акустический, оптический, и/или другие типы датчиков. Чувствительные к касанию поверхности могут, таким образом, альтернативно, обнаруживать изменения давления, освещения, перемещения, тепла, сопротивления и/или других физических параметров. Способ, которым чувствительная к касанию поверхность обнаруживает устройство ввода, такое как стилус или перо, может изменяться. Например, перо может быть пассивным и/или активным. Активное перо может передавать или ретранслировать сигнал, обнаруживаемый чувствительной к касанию поверхностью. Пассивное перо может включать в себя магнит или другой объект или материал, например, в кончике стилуса, который взаимодействует с электромагнитным полем или другим признаком чувствительной к касанию поверхности в целях обнаружения близости. Другие аспекты природы технологии датчиков касания могут изменяться.
[0021] Фиг. 1 показывает чувствительное к касанию устройство 100, выполненное с возможностью реализации классификации касаний. Устройство 100 включает в себя систему 102 касания и чувствительную к касанию поверхность 104. Чувствительная к касанию поверхность 104 может быть экраном касания или другим чувствительным к касанию устройством отображения. Может быть обеспечено любое количество чувствительных к касанию поверхностей 104. В этом примере, устройство 100 также включает в себя процессор 106 и одно или несколько устройств 108 памяти. Система 102 касания может служить в качестве интерфейса или другого промежуточного звена между чувствительной к касанию поверхностью 104 и операционной средой, поддерживаемой процессором 106 и устройствами 108 памяти. Процессор 106 может быть процессором общего назначения, таким как центральный обрабатывающий блок (central processing unit - CPU), графический обрабатывающий блок (graphic processing unit - GPU), или любым другим специальным процессором или обрабатывающим блоком. Может быть обеспечено любое количество таких процессоров или обрабатывающих блоков.
[0022] Система 102 касания может быть соединена с возможностью обмена данными с процессором 106 и/или устройствами 108 памяти для обеспечения данных, указывающих на событие касания, происходящее на чувствительной к касанию поверхности 104. Данные события касания могут задавать местоположение и тип события касания. Эти данные могут также представлять уровень неопределенности в назначении этого типа. Дополнительная информация, меньший объем информации, или альтернативная информация могут быть обеспечены системой 102 касания в связи с типом события. Например, тип события касания может быть снабжен данными, указывающими на идентификационный код события касания. Информация о местоположении и/или другая информация для события касания могут быть обеспечены отдельно системой 102 касания.
[0023] В примере фиг. 1, система 102 касания включает в себя один или несколько датчиков 110 касаний, аппаратно-программные средства и/или драйверы 112, процессор 114, и одно или несколько устройств 116 памяти. Процессор 114 соединен с возможностью обмена данными с каждым устройством 116 памяти и/или аппаратно-программными средствами/ драйверами 112. Процессор 114 выполнен с возможностью получения кадровых данных, захватываемых через чувствительную к касанию поверхность 104. Кадровые данные представляют множество кадров, захватываемых через чувствительную к касанию поверхность 104. Кадровые данные для каждого кадра могут включать в себя матрицу значений, или пикселов, которые вместе образуют изображение, в пределах которого происходят события касаний на поверхности 104. Значение каждого пиксела указывает на величину касания, которое датчик 110 обнаружил в конкретном местоположении на поверхности 104. Кадровые данные могут включать в себя необработанные выходные данные датчика 110 касания и/или могут включать в себя обработанное представление необработанных выходных данных.
[0024] Способ, которым процессор 114 получает кадровые данные, может изменяться. Например, кадровые данные могут быть приняты через аппаратно-программные средства/ драйверы 112 и/или могут быть получены посредством осуществления доступа к памяти 116.
[0025] Кадровые данные могут быть, альтернативно или дополнительно, получены процессором 106. В некоторых случаях, процессор 106 получает кадровые данные в целях реализации определения типа касания. В таких случаях, процессор 114 может быть направлен на управление датчиком 110 и/или может быть выполнен с возможностью реализации одной или нескольких предобработок или других задач для подготовки к этому определению. Обработка кадровых данных и других аспектов технологий классификации касаний может быть реализована посредством любой комбинации процессора 106 и процессора 114. В других примерах, устройство 100 включает в себя единственный процессор (т.е., либо процессор 106, либо процессор 114, либо другой процессор) для получения и обработки кадровых данных.
[0026] Конфигурация и компоновка аппаратных средств системы касания в устройстве 100 могут изменяться. Например, каждый датчик 110 касания, альтернативно, может быть сконфигурирован в виде компонента чувствительной к касанию поверхности 104. Информация о драйверах и другая информация, обеспечиваемая через аппаратно-программные средства 112, альтернативно, может храниться в устройствах 116 памяти.
[0027] Процессор 114 выполнен с возможностью исполнения некоторого количества наборов команд, хранящихся в памяти 116 и/или памяти 108. Наборы команд могут быть выполнены в виде соответствующих программных модулей. Эти модули или другие наборы команд могут быть объединенными в любой необходимой степени. Наборы команд включают в себя команды 118 определения блобов («блоб» - большой двоичный объект), команды 120 вычисления признаков, и команды 122 классификации машинного самообучения. Команды 118 определения блобов могут быть направлены на определение блобов, или присоединенных компонентов, для события касания, по множественным кадрам кадровых данных. Соответствующий блоб может быть определен в каждом кадре, в котором происходит событие касания. Команды 120 вычисления признаков могут быть направлены на вычисление характеристик или признаков для блобов. Каждый признак может характеризовать аспект блоба, который может помочь идентифицировать тип события касания. Команды 122 классификации машинного самообучения направлены на определение типа события касания посредством классификации машинного самообучения на основе наборов признаков. Выходные данные классификации включают в себя множественные не-двухрежимные оценки классификации, которые идентифицируют уровень неопределенности в классификации. В связи с этим, набор (наборы) признаков может быть применен в классификаторе машинного самообучения для генерации оценок классификации. Каждый набор команд описан в связи с множественными примерами, приведенными ниже. Могут быть обеспечены дополнительные команды, модули, или наборы команд. Например, один или несколько наборов команд могут быть включены для генерации типа касания на основе выходных данных классификатора машинного самообучения и/или для передачи данных, указывающих на тип касания, к процессору 106 или другому компоненту устройства 100.
[0028] Процессор 114 выполнен с возможностью исполнения команд 118 определения блобов для анализа кадровых данных для определения соответствующего блоба в каждом кадре из множества кадров для события касания. Данное событие касания может охватывать любое количество кадров. Определение блобов по множественным кадрам устанавливает входные данные, подлежащие обработке при классификации события касания.
[0029] Команды 118 определения блобов могут обеспечить выполнение процессором 114 некоторого количества действий предобработки для подготовки кадровых данных для анализа. Например, кадровые данные (например, необработанные кадровые данные) могут быть подвергнуты повышающей дискретизации и/или сравнению с порогом перед анализом (например, анализом определения блобов). Повышающая дискретизация кадровых данных может включать в себя 4-кратные или другие степени повышения дискретизации посредством билинейной интерполяции. Могут быть использованы другие процедуры повышающей дискретизации, такие как бикубическая технология, технология свертки, и технология ближайшего соседа. Могут быть использованы другие процедуры. В некоторых случаях, кадровые данные анализируют без повышающей дискретизации, без сравнения с порогом, или без повышающей дискретизации и без сравнения с порогом. Например, кадровые данные не подвергают повышающей дискретизации в некоторых случаях, когда используются классификаторы на основе справочных таблиц.
[0030] Сравнение кадровых данных с порогом может быть направлено на устранение малых флуктуаций в кадровых данных вследствие шума. Например, заданный порог интенсивности используется для сброса всех пикселов в кадровых данных, имеющих значение интенсивности, меньшее, чем порог, в нулевое значение. Дополнительные или альтернативные технологии фильтрации могут быть использованы для устранения шума. В случаях, когда кадровые данные подвергаются повышающей дискретизации, сравнение с порогом реализуется после повышающей дискретизации.
[0031] Порог кадровых данных может отличаться от других порогов, используемых системой 102 касания. Например, порог кадровых данных может быть меньшим, чем порог, используемый системой 102 касания для обнаружения событий касаний. Меньший порог может быть полезным при обнаружении ладони и/или других событий касаний перед и после фактического контакта с поверхностью 104. Например, обнаружение ладони непосредственно перед контактом (например, когда ладонь приближается к поверхности 104) может обеспечить один или несколько дополнительных кадров данных для целей различения касания ладонью и преднамеренных касаний. В некоторых случаях, порог может быть установлен в виде конфигурируемого или задаваемого процентного отношения порога системы касания, которое может быть переменным порогом, зависящим от уровня шума, обнаруживаемого системой 102 касания.
[0032] Сравнение с порогом, альтернативно или дополнительно, может быть выполнено с возможностью или направлено на генерацию бинарного представления кадровых данных на попиксельной основе. Каждый пиксел является либо «включенным», либо «выключенным», на основе значения интенсивности пиксела относительно порога. Бинарное представление кадровых данных может быть использовано для упрощения процесса определения блобов в кадровых данных.
[0033] Блобы определяются в кадровых данных посредством анализа кадровых данных для определения того, какие «включенные» пикселы (например, пикселы, имеющие ненулевую интенсивность) являются смежными с другими «включенными» пикселами. Такие смежные пикселы рассматриваются как соединенные друг с другом. Группа соединенных пикселов, тогда, рассматривается в качестве соединенного компонента, или блоба, в кадровом изображении. Каждый кадр может иметь некоторое количество блобов, каждый из которых может быть классифицирован отдельно. Анализ соединенных компонентов выполняется по всему набору данных кадра для обнаружения всех блобов в кадре. Команды 118 определения блобов могут управлять процессором 114 для назначения идентификатора для каждого блоба в целях отслеживания и управления обработкой признаков, относящихся к нему.
[0034] Во многих случаях, каждый блоб соответствует дискретному объекту, касающемуся поверхности 104. Однако, существуют случаи, когда два или более блобов индуцируются одним и тем же объектом. Например, касательный контакт ладони иногда разделен на два или более несоединенных блоба. В других случаях, единственный блоб касания является результатом воздействия множественных объектов, которые находятся слишком близко друг к другу, например, кончиков пальцев, которые касаются друг друга. Анализ соединенных компонентов кадровых данных может, таким образом, включать в себя дополнительную обработку кадровых данных, которая направлена на решение проблем, связанных с этими потенциальными сложностями. Например, команды 118 определения блобов могут обеспечить дополнительный анализ процессором 114 кадровых данных для определения того, подтверждается ли разделение блобов и/или объединение блобов.
[0035] В анализе разделения блобов, каждый блоб может быть проанализирован для определения того, является ли блоб результатом контакта множественных кончиков пальцев, относящихся к сомкнутым пальцам. Это определение может использовать классификатор. Блобы, которые считаются соответствующими множественным пальцам, разделяются на отдельные подблобы для анализа. В одном примере, координаты каждого касания кончиком пальца определяют на основе положения локальных максимумов (например, пикселов со значением интенсивности, большим или равным значениям интенсивности всех восьми непосредственных соседей) в блобе. Считается, что кончик пальца расположен в каждом локальном максимуме интенсивности в блобе, и блоб разделяют на подблобы посредством назначения каждого пиксела в исходном блобе для подблоба, связанного с кончиком пальца, местоположение которого (например, локальный максимум) является ближайшим к этому пикселу.
[0036] Решение о том, сгенерирован ли данный блоб, фактически, в результате воздействия множественных кончиков пальцев, может быть реализовано с использованием классификатора. В одном примере, классификатор реализуют посредством одного или нескольких деревьев решений. Но, может быть использовано множество разных классификаторов. Классификатор может иметь или может не иметь средства машинного самообучения. Например, классификатор может управляться в ручном режиме на основе эмпирических или других данных.
[0037] В одной иллюстративной процедуре разделения блобов, генерируется список координат (которые могут иметь субпиксельную точность) всех локальных максимумов в блобе, имеющих интенсивность, большую или равную данному порогу. Максимумы в списке сортируются в одном из возможных порядков их кратчайшего обхода (т.е., кратчайшего пути через все локальные максимумы в списке). Порог находят на основании данных обучения, в виде минимального значения интенсивности, обеспеченного локальным максимумом, соответствующим кончику пальца.
[0038] Признаки, используемые классификатором, могут быть или включать в себя площадь блоба, количество локальных максимумов, расстояние между последовательными локальными максимумами в отсортированной группе (т.е., в порядке их кратчайшего обхода), и изменение в интенсивности вдоль линии, соединяющей последовательные локальные максимумы в отсортированной группе. Классификатор, таким образом, может быть сконфигурирован таким образом, чтобы он был чувствительным к расстоянию между локальными максимумами и к величине, до которой падает интенсивность между локальными максимумами.
[0039] Если блоб считается соответствующим множественным кончикам пальцев, то блоб разделяют на отдельные блобы, каждый из которых связан с соответствующими одним из локальных максимумов. Каждый такой блоб образуется посредством подмножества пикселов из исходного блоба, или он включает в себя подмножество пикселов из исходного блоба. Пикселы в исходном блобе связаны с соответствующим одним из новых блобов, который имеет более близкий (или самый близкий) локальный максимум.
[0040] Разделение блобов может быть реализовано в случаях, включающих в себя случаи с большей сложностью в классификации касаний. Например, разделение блобов может быть реализовано в случаях, когда классификаторы на основе леса произвольных решений используются для классификации касаний. В других случаях, разделение блобов не реализуют, причем такие случаи включают в себя некоторые случаи, когда классификаторы на основе справочных таблиц и другие классификаторы с малыми ресурсами используются для классификации касаний. Тем не менее, разделение блобов может быть реализовано или может быть не реализовано в любом из этих случаев.
[0041] В случаях, когда разделение блобов не реализуется, команды 118 определения блобов могут управлять процессором 114 для идентификации и запоминания локальных максимумов в пределах каждого блоба. При идентификации каждого максимума, изменения в каждом блобе (например, локальные максимумы, найденные в пределах каждого блоба) могут быть отслежены в последующих кадрах. Например, если блоб становится двумя отдельными блобами, когда кончики пальцев раздвигаются в стороны, локальные максимумы могут быть использованы для поддержки отдельной классификации этих двух отдельных блобов. Местоположения максимумов, дополнительно или альтернативно, могут быть использованы для установления связи события касания с потенциальными касаниями, обнаруженными другими частями системы 102 касания. Например, аппаратно-программные средства 112, память 116, и/или другая память могут включать в себя команды, направленные на обнаружение событий касаний без классификации.
[0042] Объединение блобов может быть реализовано в виде альтернативной или дополнительной процедуры определения блобов. При объединении блобов, близко расположенные блобы объединяют вместе для образования единственного блоба. Объединение может быть реализовано для минимизации количества блобов, которые позже обрабатываются и классифицируются. Таким образом, объединение может быть реализовано в справочной таблице и на других платформах классификации с малыми ресурсами. Объединение может быть также полезным для объединения касаний сомкнутыми пальцами с соответствующей ладонью. Расстояние, при котором блобы объединяются вместе, может быть конфигурируемым. В одном примере, это расстояние составляет два пиксела изображения, что может соответствовать, приблизительно, 9 мм в некоторых системах касания.
[0043] В некоторых случаях, команды 118 определения блобов также включают в себя команды для управления процессором 114 для назначения блобов для следов. Термин «след» используется для ссылки на набор блобов (и лежащие в основе кадровые данные), генерируемых конкретным объектом на протяжении ряда последовательных кадров (например, пока объект находится в контакте с поверхностью 104). Назначение и определение следов может быть реализовано после разделения или объединения блобов. Определение следа позволяет отслеживать перемещение и другие изменения, которым подвергается блоб, по множественным кадрам. При назначении блобов для конкретного следа, блобы в соответствующих кадрах могут быть связаны друг с другом в качестве частей одного и того же события касания. Например, несколько блобов в последовательных кадрах могут быть связаны друг с другом в качестве частей события касания, которое включает в себя перемещение кончика пальца пользователя по поверхности 104 в жесте скольжения. Каждый новый блоб может быть назначен либо для нового следа, либо для активного следа. Активный след является следом, который уже был определен в качестве следа в предшествующем кадре.
[0044] В некоторых случаях, новые блобы могут быть назначены для активных следов посредством двустороннего согласования или другого анализа блобов в соответствующих кадрах. Множество технологий согласования может быть использовано для установления связи блоба, обнаруженного в текущем кадре, с блобом в предшествующем кадре. Функция стоимости, используемая в двустороннем согласовании, может быть основана на расстоянии между положением каждого нового блоба и прогнозируемым положением точки контакта каждого следа, оцененным на основании предшествующей траектории следа. Блобы, представляемые каждым последующим кадром, определяют, продолжается ли след, или удаляется.
[0045] Список активных следов и их соответствующие атрибуты запоминаются системой 102 касания. В примере фиг. 1, список хранится в базе 124 данных, которая, в свою очередь, может храниться в одном из устройств 116 памяти. Могут быть использованы другие места хранения и/или структуры данных. Следы, которые не могут быть продолжены текущим блобом, удаляются из списка активных следов. Новый активный след добавляется в список, для каждого блоба, который не может быть согласован или, иначе, связан с каким-либо существующим активным следом. Команды 118 определения блобов могут быть выполнены с возможностью установления связи блобов со следами посредством идентификаторов следов, таких как идентификационный номер следа.
[0046] Команды 118 определения блобов могут передавать управление командам 120 вычисления признаков, когда след становится сформированным. След считается сформированным, когда этот след продолжался на протяжении по меньшей мере заданного количества кадров. Например, это количество кадров может быть тремя кадрами.
[0047] Назначение блобов для следов может быть полезным, когда признаки, подлежащие применению в классификации машинного самообучения, включают в себя признаки следа. Признаки следов могут быть применены дополнительно к признакам отдельных блобов, как описано ниже в связи с примерами, включающими в себя классификаторы на основе леса произвольных решений (random decision forest - RDF). Следы могут быть также использованы в других случаях, включающих в себя случаи, когда признаки следов не используются в классификации. В иных случаях, блобы не назначаются для следов. Например, следы могут не использоваться в технологии справочных таблиц и в других технологиях классификации с малыми ресурсами, имеющих малый набор признаков.
[0048] Процессор 114 выполнен с возможностью исполнения команд 120 вычисления признаков для вычисления множества наборов признаков для каждого события касания. Каждый набор признаков задает характеристики соответствующего блоба в каждом кадре из множества кадров. Характеристики могут быть вычислены, когда блобы определены, или в более поздний момент времени, например, когда след будет считаться сформированным. Например, команды 120 вычисления признаков блобов могут быть выполнены с возможностью обеспечения агрегирования процессором 114 данных наборов признаков перед применением их в классификаторе машинного самообучения в определении типа события касания. В других случаях, данные наборов признаков для конкретного блоба применяются в классификаторе машинного самообучения, когда происходит вычисление дополнительных наборов данных признаков. Например, применение данных наборов признаков для первого кадра может быть обеспечено в классификаторе одновременно с вычислением данных наборов признаков для второго кадра. Такая одновременная обработка может быть полезной в случаях, когда данные признаков применяются в классификаторе отдельно для каждого кадра.
(x,y)ϵБлоб
[0049] Характеристики блобов, подлежащие вычислению, могут изменяться. В одном примере, включающем в себя классификатор на основе леса произвольных решений (RDF), любая комбинация следующих характеристик блобов может быть вычислена для каждого блоба: (i) площадь; взвешенный центроид (например, ∑ (x,y)*Интенсивность(x,y)); (ii) минимум, максимум, и среднее значение интенсивности; (iii) минимум, максимум, и среднее значение амплитуды градиента интенсивности; (iv) периметр; (v) метрика округленности, такая как изопериметрическое частное (т.е., 4*PI*Площадь/Периметр*2); (vi) расстояние от взвешенного центроида до ближайшего края изображения; (vii) средняя интенсивность пикселов блоба на краю изображения (т.е., пиксел находится на первой или последней строке или столбце изображения); (viii) ширина на краю изображения (т.е., количество пикселов блоба на краю изображения); (ix) появление участка изображения 5*5 (из необработанных данных кадра или данных кадра, подвергнутых сравнению с порогом) с центром у взвешенного центроида; и, (x) появление участка изображения 17*17 (из необработанных данных кадра или данных кадра, подвергнутых сравнению с порогом) с центром у взвешенного центроида. Появление участков изображения может быть оценено количественно посредством анализа значений интенсивности соответствующих пикселов на этом участке. Размер признаков участков изображения может изменяться. Участки изображения могут быть также центрированы или иным образом расположены относительно блоба в положениях, отличных от взвешенного центроида.
[0050] Дополнительные характеристики, меньшее количество характеристик, или альтернативные характеристики могут быть вычислены для RDF-классификатора и/или других типов классификаторов машинного самообучения. Например, в одном примере, включающем в себя классификатор на основе справочных таблиц, следующие признаки вычисляются для каждого блоба: высота блоба (например, максимальное значение интенсивности пикселов в блобе); площадь блоба; и текстура блоба. Признак текстуры может указывать на градиенты в значениях интенсивности в пределах блоба. Например, текстура может быть вычислена в виде суммы абсолютных значений различий между каждым пикселом в блобе и его восемью ближайшими соседями, деленной на восьмикратную площадь блоба. Блобы, генерируемые ладонями, как правило, являются сглаженными, или имеют более ровные внутренние части, и, таким образом, имеют меньшие текстуры, чем блобы, генерируемые касаниями множественных близко расположенных пальцев. Вычисление меньшего количества признаков может уменьшить кодовое пространство и время обработки команд 120 вычисления. Меньшее количество признаков может также уменьшить величину памяти, используемой для хранения результатов вычислений для каждого блоба.
[0051] В некоторых случаях, включающих в себя следы, команды 120 вычисления признаков блобов могут также обеспечить вычисление процессором 114 одного или нескольких признаков для следа события касания. Набор признаков следа может быть вычислен для данного следа дополнительно к наборам признаков для каждого блоба в пределах следа, примеры которых приведены выше. Набор признаков следа может быть вычислен после того, как след станет сформированным.
[0052] Набор признаков следа может включать в себя признаки, которые совокупными для одной или нескольких вышеуказанных характеристик блобов. В одном примере, включающем в себя классификатор на основе леса произвольных решений (RDF), вычисляют минимум, максимум, и средние значения следующих характеристик блобов для заданного количества кадров следа: (i) площади; (ii) изменения в площади между последовательными кадрами; (iii) изменения в положении между последовательными кадрами; (iv) изопериметрического частного; (v) интенсивности; (vi) амплитуды градиента интенсивности; (vii) расстояния до ближайшего края изображения; (viii) средней интенсивности пикселов на краю изображения; и (ix) ширины на краю изображения.
[0053] Набор признаков следа может, дополнительно или альтернативно, включать в себя признаки, направленные на характеристики отдельных блобов для первых F кадров следа. Таким образом, в некоторых случаях, вычисление характеристик блобов в каждом кадре может быть одним способом сбора данных для следа. Например, следующие признаки могут быть вычислены для каждого отдельного блоба: (i) площадь; (ii) изменение в площади между последовательными кадрами; (iii) изменение в положении между последовательными кадрами; (iv) изопериметрическое частное или другая метрика округленности; (v) минимум, максимум, и среднее значение интенсивности; (vi) минимум, максимум, и среднее значение амплитуды градиента интенсивности; (vii) расстояние до ближайшего края изображения (или кадра); (viii) средняя интенсивность пикселов на краю изображения; (ix) ширина на краю изображения; (x) интенсивность пикселов в участке изображения 5*5 (из необработанных данных кадра или данных кадра, подвергнутых сравнению с порогом) с центром у взвешенного центроида; (xi) интенсивность пикселов в участке изображения 17*17 (из необработанных данных кадра или данных кадра, подвергнутых сравнению с порогом) с центром у взвешенного центроида; (xii) различия в интенсивности между парами пикселов из участка изображения 5*5; (xiii) различия в интенсивности между парами пикселов из участка изображения 17*17; (xiv) минимальное различие в интенсивности между двумя концентрическими кольцами в участке 17*17, например, min{I(p): ǁp-cǁ=r_1} - max{I(p): ǁp-cǁ=r_2}, где r_1 < r_2, где I является матрицей интенсивности изображения, а c является взвешенным центроидом. Дополнительные признаки, меньшее количество признаков, или альтернативные признаки могут быть вычислены в связи со следом.
[0054] Процессор выполнен с возможностью исполнения команд 122 классификации машинного самообучения для определения типа или природы события касания. Этот тип определяют посредством классификации машинного самообучения. Эта классификация выполнена с возможностью обеспечения множественных не-двухрежимных оценок классификации на основе множества наборов признаков для множества кадров. Каждая не-двухрежимная оценка классификации указывает на уровень неопределенности или достоверности в классификации машинного самообучения. Например, каждая оценка классификации может быть вероятностью того, что событие касания является событием касания некоторого типа. В других примерах, оценки классификации являются отдельными характеристиками в некотором диапазоне или масштабе, указывающими на то, является ли событие касания событием касания некоторого типа. Отдельные характеристики могут быть агрегированы, в некоторых случаях, для определения совокупной характеристики. Совокупная характеристика или другие оценки классификации может сравниваться с порогами, как описано ниже, для определения типа события касания.
[0055] После определения типа события касания, команды 122 классификации могут быть также выполнены с возможностью обеспечения того, чтобы процессор 114 обеспечил данные, указывающие на упомянутый тип, для устройства 100. В примере фиг. 1, процессор 114 может обеспечить данные о типе для процессора 106. Данные о типе могут храниться в любом компоненте хост-устройства или обеспечиваться для него. Данные о типе могут быть обеспечены вместе с другими данными, указывающими на событие касания. В некоторых случаях, упомянутые другие данные включают в себя идентификатор следа и координаты события касания в текущем (например, последнем) кадре. Другие данные могут быть обеспечены вместе с типом касания, в других случаях. Например, тип касания может быть обеспечен вместе с координатами события касания.
[0056] Команды 122 классификации машинного самообучения могут быть вызваны один раз или итерационно для каждой классификации. Способ, которым команды 122 вызываются, может зависеть от того, когда вычисляются данные наборов признаков. Для событий касаний, для которых вычисляются данные следов, процессор 114 может применить все данные наборов признаков в классификаторе машинного самообучения в совокупности в единственном вызове для следа. В некоторых других случаях, команды 122 классификации реализуются итерационно, когда данные наборов признаков вычисляются для каждого кадра. Например, данные наборов признаков для каждого блоба применяются в классификаторе машинного самообучения отдельно. Затем, могут быть вычислены дополнительные данные наборов признаков, в то время как ранее вычисленные данные наборов признаков применяются в классификаторе машинного самообучения.
[0057] Команды 122 классификации машинного самообучения могут обеспечить осуществление процессором 114 доступа к одной или нескольким структурам 126 данных классификатора. Структуры 126 данных классификатора могут храниться в памяти 116 и/или другой памяти. Формат и другие характеристики структур 126 данных классификатора могут изменяться согласно типу используемого классификатора машинного самообучения. Два примера структур данных классификации показаны на фиг. 1 для удобства в иллюстрации и описании, поскольку устройство 100 обычно конфигурируется только с единственным классификатором. Двумя иллюстративными структурами данных являются структура 128 данных леса произвольных решений (RDF) и структура 130 данных справочных таблиц. В то время как данные наборов признаков обычно применяются только в одной структуре данных, в некоторых случаях может быть использовано более одного классификатора. Например, выходные данные множественных классификаторов могут сравниваться или обрабатываться для определения конечной классификации.
[0058] RDF-классификация является одной из некоторого количества технологий различающей классификации, которые могут быть использованы командами 122 классификации. Различающий классификатор генерирует или возвращает множественные не-двухрежимные оценки классификации в виде дискретного распределения вероятностей по набору классов для данного массива входных данных. В этом примере, классы согласуются с возможными типами событий касаний, например, преднамеренным касанием кончиком пальца, касанием емкостным стилусом или другим пером, и непреднамеренным касанием, например, ладонью. Например, иллюстративными выходными данными является {0.45, 0.32, 0.23}, или вероятность 45% того, что событие касания является преднамеренным касанием кончиком пальца, вероятность 32% того, что событие касания является касанием пером, и вероятность 23% того, что событие касания является непреднамеренным событием касания (например, касанием ладонью). Каждая вероятностная оценка, таким образом, представляет собой вероятность того, что событие касания является событием касания конкретного типа. Дополнительные классы, меньшее количество классов, или альтернативные классы могут быть использованы в других случаях. Например, только два класса могут быть использованы в случаях различения преднамеренных и непреднамеренных событий касаний.
[0059] Различающий классификатор может быть выполнен с возможностью приема множества наборов данных признаков в качестве входных данных. Входные данные для различающего классификатора могут быть, таким образом, данными признаков блобов и следов, вычисленными для следа касания (например, первые несколько кадров или другое заданное количество кадров), согласно командам 120 вычисления. В примерах следов, набор признаков для каждого следа применяется в классификаторе в момент времени, когда след становится сформированным. Таким образом, классификатор обеспечивает выходные данные распределения вероятностей для каждого сформированного следа.
[0060] RDF-структура 128 данных включает в себя набор рандомизированных деревьев решений RDT1, RDT2, RDT3,... RDTn, где n может быть любым числом. В одном примере, структура данных включает в себя 20 деревьев, причем каждое дерево имеет максимальную высоту решений, равную 11. В процедурах леса произвольных решений, один и тот же массив входных данных применяется в каждом дереве. Выходные данные RDF для данных входных данных вычисляются посредством усреднения выходных данных каждого из деревьев для данных входных данных. Количество и высота деревьев может изменяться.
[0061] Каждое RDT является бинарным деревом решений, в котором каждый внутренний (т.е., не-листовой) узел имеет соответствующую бинарную функцию «разделения». Когда бинарная функция разделения применяется к входным данным, эта функция возвращает решение, если входные данные подлежат маршрутизации к левому или правому потомку узла на следующем уровне узлов в дереве. Процесс классификации в RDT для данных входных данных X начинается с обработки X в корневом узле дерева посредством применения соответствующей функции разделения корня и рекурсивного продолжения обработки входных данных на узле-потомке, соответствующем результату функции разделения. В конце концов, процесс достигает листового узла, в котором дискретное распределение вероятностей по набору С классов возвращается в качестве выходных данных процесса.
[0062] Функции разделения в пределах деревьев могут быть реализованы в виде сравнения неравенств между значением признака и значением порога, т.е., f < τ, где f является значением конкретного признака, а τ является значением порога. Конкретный признак и порог, подлежащие использованию в каждом узле, изучаются во время процесса обучения.
[0063] Во время обучения, в каждом узле, наилучшие признаки выбираются на основании дискретизации пространства каждого типа признаков. Для пространства признаков, количество образцов может составлять вплоть до квадратного корня размера пространства.
[0064] В примере на фиг. 1, только единственная RDF-структура 128 показана и использована для обеспечения всех трех оценок классификации (например, кончиков пальцев, пера, ладони). Но в некоторых случаях, множественные RDF-классификаторы могут быть использованы для обеспечения оценок классификации. Например, два RDF-классификатора, каждый из которых имеет соответствующий набор деревьев, могут быть использованы для обеспечения трех оценок классификации. В одном примере, один RDF-классификатор может быть использован для различения преднамеренных и непреднамеренных касаний. Затем, другой RDF-классификатор используется для различения касаний пером и кончиками пальцев, в связи с преднамеренными касаниями.
[0065] Выходные данные RDF-классификации могут быть настроены в некоторых случаях. Например, настройки могут относиться к ситуациям, включающим в себя кадр с множественными вновь сформированными следами. После классификации типа касания всех вновь сформированных следов в кадре, команды 122 классификации могут обеспечить настройку процессором 114 типа следов вблизи следа, классифицированного в качестве непреднамеренного события касания (например, касания ладонью). Если текущее местоположение блоба первого следа попадает в пределы порога блоба второго следа, который был классифицирован в качестве непреднамеренного касания, то первый след также классифицируется в качестве непреднамеренного касания. Такие настройки могут быть полезными, поскольку эти ближние блобы часто создаются непреднамеренным касанием суставом пальца или пальцем той руки, ладонь которой находится на поверхности 104.
[0066] Дополнительные или альтернативные классификаторы машинного самообучения могут быть использованы командами 122 классификации. Например, могут быть использованы другие типы технологий различающих классификаций. В некоторых примерах, классификатор машинного самообучения является классификатором на основе справочных таблиц. Классификация на основе справочных таблиц может быть полезной в связи с устройствами, имеющими ограниченные ресурсы обработки и/или памяти, например, когда процессор 114 является микроконтроллером. Использование справочных таблиц может существенно уменьшить объем требуемой памяти и время обработки для классификации.
[0067] В примере, показанном на фиг. 1, структура 130 данных справочных таблиц включает в себя пару справочных таблиц для различения преднамеренных и непреднамеренных событий касаний. Данные наборов признаков применяются в каждой справочной таблице. Затем, каждая таблица обеспечивает соответствующую отдельную не-двухрежимную оценку классификации или характеристику, как описано ниже. Первая справочная таблица может быть выполнена с возможностью обеспечения первой характеристики в отношении того, является ли событие касания преднамеренным касанием. Вторая справочная таблица может быть выполнена с возможностью обеспечения второй характеристики в отношении того, является ли событие касания непреднамеренным касанием. Каждая из этих отдельных характеристик или оценок для соответствующего кадра может быть, затем, объединена с другими для генерации оценки-характеристики классификации кадра для соответствующего кадра. Дополнительные справочные таблицы могут быть обеспечены, например, для дополнительного различения типа события касания. В других случаях, структура 130 данных включает в себя только единственную справочную таблицу.
[0068] В этом примере классификации на основе справочных таблиц, данные наборов признаков применяются в классификаторе на покадровой основе. Например, данные наборов признаков для соответствующего кадра применяются в каждой справочной таблице в структуре 130 данных. Затем, каждая таблица обеспечивает соответствующую отдельную не-двухрежимную оценку классификации или характеристику для этого кадра, как описано ниже. Оценки-характеристики классификации кадров для кадров, во время которых присутствует событие касания, затем, агрегируются (например, суммируются) для определения совокупной, многокадровой оценки классификации для события касания.
[0069] Способ, которым характеристики или оценки классификации объединяются и, затем, агрегируются по кадрам, описан ниже в связи с примером, в котором отдельные характеристики объединяются посредством вычитания одной характеристики из другой. Отдельные характеристики могут быть объединены самыми разными способами. Например, отдельные характеристики или оценки могут быть сконфигурированы таким образом, чтобы объединение включало в себя операцию сложения, операцию усреднения, и/или другие операции. Агрегирование оценок классификации по кадрам может быть также реализовано способами, отличными от операции суммирования, описанной ниже. Команды 122 классификации могут, тогда, обеспечить определение процессором 114 того, удовлетворяет ли порогу совокупная, многокадровая оценка классификации. В некоторых примерах, обеспечиваются множественные пороги классификации, по одному для каждого возможного типа события касания. Если порог (пороги) не превышен (не превышены), то тогда может считаться, что уровень неопределенности является слишком высоким для надежной классификации события касания. В этот момент, команда 118 определения блобов и команды 120 вычисления могут быть вызваны снова для обеспечения данных наборов признаков для следующего кадра. Новые данные наборов признаков могут быть, тогда, применены в справочной таблице (таблицах) снова для дополнительного оценивания, агрегирования, и сравнения с порогом.
[0070] Классификатор на основе справочных таблиц может быть выполнен с возможностью использования признаков блоба в качестве индексов для справочной таблицы (таблиц). Признаками, вычисляемыми для каждого блоба, могут быть высота, размер, и текстура, описанные выше. Могут быть обеспечены дополнительные признаки, меньшее количество признаков, или альтернативные признаки. В одном примере, каждая запись в таблице является двубитовой характеристикой, указывающей на правдоподобие того, что блоб является блобом конкретного типа события касания, т.е., соответствующего класса таблицы. Характеристика, равная трем, указывает на то, что блоб, очень вероятно, является элементом класса. Характеристика, равная двум, указывает на то, что блоб с некоторой вероятностью является элементом класса. Характеристика, равная одному, указывает на то, что блоб, возможно, является элементом класса, но не с очень большой вероятностью. Характеристика, равная нулю, указывает на то, что маловероятно, что блоб является частью класса.
[0071] В этом примере, отдельные оценки-характеристики блобов получают на основании двух таблиц классификации, одной для преднамеренных касаний (например, пальцем или пером) и другой для непреднамеренных касаний (например, ладонями). Каждый блоб ищется в обеих таблицах посредством применения данных наборов признаков в обеих таблицах. Затем, может быть вычислена специфическая для кадра характеристика классификации блобов (или «характеристика классификации блобов») для блоба, посредством объединения отдельных характеристик из соответствующих таблиц, посредством вычитания одной характеристики из другой следующим образом:
Характеристика классификации блоба=характеристика таблицы пальцев - характеристика таблицы ладоней
В результате, характеристика классификации блоба находится в диапазоне от -3 до +3, где положительные значения указывают на то, что блоб, более вероятно, является преднамеренным касанием, и где отрицательные значения указывают на то, что блоб, более вероятно, является непреднамеренным касанием. Абсолютное значение этой характеристики является указанием на определенность классификации или уровень неопределенности в характеристике. Характеристика классификации блоба вычисляется для каждого блоба в изображении касания.
[0072] Характеристики классификации блоба для конкретного события касания могут быть, затем, накоплены или агрегированы по множественным кадрам для генерации совокупной характеристики блоба для события касания. Например, если блоб имеет характеристики классификации блоба, равные +2, +1, и +2 в первых трех кадрах, то совокупная характеристика блоба равняется +5, т.е., сумме трех характеристик классификации блоба.
[0073] Затем, совокупная характеристика блоба используется для определения типа события касания. Совокупная характеристика может сравниваться с одним или несколькими порогами. В одном примере, два порога используются для поддержки различения в одной из трех возможных классификаций. Отрицательные характеристики касания, меньшие или равные порогу ладони, классифицируются в качестве событий касаний ладонью. Положительные характеристики касания, большие или равные порогу пальца, классифицируются в качестве событий касаний пальцем/ пером. Все остальные характеристики касания классифицируются в качестве неизвестных касаний. Пороги ладони и пальца являются конфигурируемыми, но иллюстративными установочными параметрами являются -9 для порога ладони и +6 для порога пальца.
[0074] Совокупная характеристика блоба может быть также использована для определения того, подтверждается ли обработка дополнительных кадровых данных. Если совокупная характеристика попадает в пределы диапазона неизвестных касаний, то тогда дополнительные кадровые данные могут быть обработаны для встраивания другой характеристики классификации блоба в агрегирование. Например, первому изображению (или кадру) приближающейся ладони назначается характеристика классификации блоба, равная +1. Вследствие того, что это первое изображение для этой ладони, совокупная характеристика также равна +1. В следующем изображении, характеристика классификации блоба снова назначается равной +1. Совокупная характеристика равна теперь +2. В следующем изображении, большая часть ладони осуществляет касание, так что характеристика классификации блоба изменяется на -2, и совокупная характеристика становится теперь равной 0. Затем, следующим трем изображениям назначаются характеристики классификации блоба, равные -3, что обеспечивает совокупную характеристику, равную -9, и в этот момент времени это касание классифицируется в качестве события касания ладонью. Все предшествующие касания могут быть классифицированы в качестве неизвестных касаний. Даже несмотря на то, что первые два изображения касания выглядели несколько более похожими на касания пальцем, чем на касание ладонью, классификатор, все же, обеспечивает корректную конечную классификацию без ошибочной ложноположительной классификации.
[0075] Команды 122 классификации могут быть выполнены с возможностью обеспечения того, чтобы процессор 114 установил связь блобов с событиями касаний. В некоторых случаях, события касаний могут быть сначала идентифицированы аппаратно-программными средствами 112 или другим компонентом системы 102 касания. Для каждого потенциального события касания, ограничивающая рамка события касания может быть определена и сравнена со всеми максимумами, найденными в текущем изображении касания (или данных кадра), для идентификации того, какой блоб связан с событием касания. Большинство изображений касаний будут иметь только единственный блоб в пределах ограничивающей рамки и, таким образом, соответствующий событию касания. При маловероятном событии, когда множественные блобы имеют максимумы, которые находятся в пределах ограничивающей рамки, совокупная характеристика события касания может быть вычислена в виде среднего значения совокупных характеристик таких перекрывающихся блобов.
[0076] Команды 122 классификации могут также встроить некоторое количество настроек в комбинированную оценку для учета одного или нескольких уникальных обстоятельств. Каждая настройка встраивается на основе того, удовлетворяется ли или присутствует некоторое правило или условие. Настройки могут дополнять способность классификации на основе справочных таблиц без добавления значительной сложности к процедуре.
Правило краевого эффекта
[0077] . Ладони, которые находятся, большей частью, за пределами краев экрана касания, могут выглядеть как преднамеренные касания вследствие своего малого размера. Для улучшения эффективности в этих обстоятельствах, может быть отслежено количество краевых пикселов в каждом блобе. Команды 122 классификации могут быть определены, если количество краевых пикселов превысит порог. Если количество краевых пикселов превышает порог, то оценка-характеристика классификации блоба настраивается. В одном примере, разница между количеством краевых пикселов и порогом вычитается из оценки-характеристики классификации блоба. Эта настройка перекашивает характеристику этих блобов к порогу характеристики ладони. Блобы, получаемые вследствие единственного преднамеренного касания, как правило, имеют малое количество краевых пикселов, и, таким образом, на них не распространяется правило настройки. Блобы, получаемые вследствие касания ладонью на краю поверхности 104, более вероятно, имеют большее количество краевых пикселов и, следовательно, перекашиваются к классификации касания ладонью для минимизации ложноположительных результатов. В то время как блобы, получаемые вследствие касаний множественными близко расположенными пальцами на краю, могут быть также перекошены к характеристике касания ладонью по этому правилу, что может приводить к ложноотрицательному результату, частота таких ложноотрицательных результатов может быть приемлемо низкой, поскольку жесты вблизи края являются обычно жестами единственного пальца.
Настройки близости ладони
[0078] . Пользователи, которые пишут стилусом, часто располагают свою ладонь на экране, захватывая стилус двумя пальцами и большим пальцем. Остальные два пальца руки находятся вблизи поверхности 104 и часто контактируют с поверхностью 104 во время написания. Эта ситуация создает блобы, которые могут казаться преднамеренными касаниями. Для минимизации ложноположительных результатов при этих обстоятельствах, оценка-характеристика классификации блоба может быть настроена посредством вычитания частного, вычисленного посредством деления площади блоба на пороговую площадь. Эта настройка может быть выполнена, когда площадь блоба является большей некоторого порога, и блоб находится вблизи другого блоба, который выглядит как ладонь (например, отрицательная характеристика блоба). Эта настройка, как правило, перекашивает касания пальцами, которые являются очень близкими к ладони, к характеристике ладони, для минимизации ложноположительных результатов. Эта настройка может не влиять на классификацию касаний стилусом самих по себе, даже когда они находятся близко к ладони, поскольку касания стилусом имеют площадь ниже порога.
Настройки анти-касаний
[0079] . Когда пользователь не имеет хорошего высокочастотного соединения с заземлением системы касания (т.е., пользователь является плавающим), большие площади касаний могут, как правило, исчезать или даже превращаться в анти-касания (т.е., отрицательные области на изображении касания, в которых обычные касания были бы положительными). Эта ситуация может привести к ложноположительным результатам, когда обычно большая площадь ладони сильно уменьшается в размере, и расстояние до других непреднамеренных касаний, например, пальцев, не удерживающих стилус, увеличивается. Для минимизации ложноположительных результатов при этих обстоятельствах, две настройки могут быть встроены в процедуру определения характеристики классификации. Первое правило состоит в том, что если совокупная характеристика события касания удовлетворяет порогу ладони, то любым блобам в следующем кадре, которые перекрывают этот блоб, также назначается характеристика ладони. Эта настройка может улучшить эффективность в плавающих ситуациях, поскольку участки ладони могут, как правило, исчезать с течением времени. В то время как ладони, как правило, выглядят обычно во время раннего касания (и может быть назначена характеристика ладони), когда все большая и большая часть ладони касается поверхности, участки ладони, как правило, исчезают, а оставшиеся участки могут казаться преднамеренными касаниями. Однако, поскольку оставшиеся участки, которые перекрывают ладонь, видны на более раннем кадре (кадрах), оставшимся участкам все же назначается характеристика ладони.
[0080] Второе правило, которое может быть использовано для улучшения эффективности в обстоятельствах плавания, включает в себя отслеживание анти-блобов, дополнительно к обычным блобам. Анти-блобы могут быть обнаружены в виде присоединенных компонентов из пикселов, чье пиксельное значение в изображении касания является меньшим или равным отрицательному порогу. С использованием анти-блобов, также определенных в кадровых данных, оценка-характеристика классификации блоба может быть, затем, настроена посредством вычитания некоторого значения из оценки-характеристики классификации блоба, если соответствующий блоб перекрывает анти-блоб. Эта настройка может быть ограничена теми ситуациями, в которых анти-блоб является большим (например, размер анти-блоба превышает некоторый порог). Нормальные блобы, которые перекрывают большие анти-блобы, затем, перекашиваются к характеристике ладони посредством вычитания некоторого значения из их характеристики классификации блоба. Вычитаемое значение может быть либо фиксированным значением, либо значением, которое становится большим для больших площадей блоба. Установление порога для больших анти-блобов равным относительно большому размеру (например, 50 пикселам), может помочь предотвратить ошибочное применение этой настройки в связи с ситуациями, включающими в себя множественные близко расположенные пальцы, выровненные по диагонали.
[0081] Классификаторы машинного самообучения могут быть обучены посредством этапа офлайнового сбора данных, во время которого принимается некоторое количество последовательностей изображений, включающих в себя события касаний стилусом, кончиком пальца, и непреднамеренные события касаний не-кончиками пальцев. Эти последовательности могут быть реализованы в широком диапазоне возможных сценариев использования устройств и/или сценариев, включающих в себя большое множество пользователей. Могут присутствовать различия в давлении, жестах, ориентациях и других характеристиках событий касаний. Последовательности преднамеренных событий касаний (например, либо касание кончиком пальца, либо стилусом, либо касание не-кончиком пальца) собираются отдельно, что предотвращает, таким образом, ручное обозначение событий касаний. Набор данных признаков, установленный для каждого вычисленного следа в этих последовательностях, становится примером обучения.
[0082] В RDF-примерах, RDF-классификатор может быть обучен посредством независимого обучения каждого дерева структуры данных. Дерево обучается по одному узлу в некоторый момент времени, начиная с его корневого узла. Каждый узел обучается с использованием обучающего набора входных данных. Сначала, весь обучающий набор является набором входных данных, используемым для обучения корневого узла.
[0083] Если дан обучающий набор Т входных данных для узла n, то этот узел обучается посредством дискретизации с некоторым количеством образцов (например, количеством, соответствующим квадратному корню размера пространства функций разделения и их параметров) пространства функций разделения и их параметров. Для каждой дискретизированной (параметризованной) функции разделения, также дискретизируют некоторое количество возможных пороговых значений (например, 100 порогов).
[0084] Для данной комбинации разделения ∑=(splitF, Θ,x) типа splitF функции разделения, параметризации Θ функции разделения, и порога τ, каждые входные данные xϵT разделяются согласно значению splitF_Θ(x), которое является меньшим или является большим или равным порогу τ.
[0085] Процедура обучения идентифицирует комбинацию разделения, которая обеспечивает максимальный прирост информации при разделении всех элементов в наборе Т входных данных узла по всем дискретизированным комбинациям разделения. Если этот прирост является слишком малым, или если узел n находится на максимальной предварительно выбранной высоте (например, 11), то тогда устанавливается, что узел является листовым узлом, и вероятность каждого класса (например, касания кончиком пальца, пером или стилусом, или ладонью), связанного с этим листовым узлом, устанавливается равной отношению количества образцов этого класса к общему количеству образцов в наборе Т входных данных узла. С другой стороны, если прирост является достаточно высоким или высота узла n является меньшей, чем максимальная предварительно выбранная высота, комбинация разделения ∑, обеспечивающая максимальный прирост, связана с узлом n, то набор Т входных данных узла разделяется на два подмножества T_L и T_R с использованием ∑, и узлу n назначаются два узла-потомка, левый потомок и правый потомок, причем каждый из них рекурсивно обучается с использованием наборов T_L и T_R входных данных, соответственно.
[0086] Подобная методика для сбора образцов обучения может быть использована в обучающих классификаторах на основе справочных таблиц. Например, последовательности изображений касаний генерируются способом самообозначения. Например, каждая последовательность содержит только касания одного класса (например, все пальцы, или все ладони). Блобы и соответствующие данные признаков, тогда, извлекаются из изображений касаний и проходят процедуру обучения, для использования в качестве обучающих образцов.
[0087] В одном примере обучения с использованием справочных таблиц, обучающие образцы могут быть сгруппированы в некоторое количество блоков (например, восемь) согласно признаку высоты. Например, в системах касания, в которых максимальная высота любого пиксела в изображении касания равна, приблизительно, 1600, образцам с высотами между 0 и 199 назначается блок 0, высотам 200-399 назначается блок 1, и т.д. Для улучшения обобщения классификаторов, может быть также реализовано небольшое «размывание» образцов. Например, образец с высотой 210 может быть назначен в оба блока 0 и 1. Величина размывания является конфигурируемой и может изменяться, но, в одном примере, образцы в пределах 10% от границы группы назначаются в обе группы. Минимальные и максимальные значения признаков площади и текстуры определяются, затем, для всех образцов в пределах каждой группы высот. Размывание применяется также в этот момент таким образом, чтобы настроить минимальные и максимальные значения вниз/вверх на малую величину (например, 10%). Затем, образцы разделяются на некоторое количество наборов (например, 16), согласно признаку площади (распределенных равномерно между размытым минимумом/ максимумом для признака площади, определенного выше). Затем, образцы в пределах этих блоков площади дополнительно разделяются на некоторое количество блоков (например, 16), согласно признаку текстуры (распределенных равномерно и размытых, как и раньше). Когда образцы разделены по площади и текстуре, образцы могут быть снова размыты, приблизительно, на 10%. В примерах, в которых образцы размыты, неразмытым образцам может быть предоставлен приоритет, более высокий, чем приоритет размытых образцов. Более высокий приоритет может быть обеспечен посредством подсчета каждого неразмытого образца как множества образцов (например, девяти), при учете каждого размытого образца как только единственного образца.
[0088] Количество образцов в каждом из этих конечных блоков может быть, затем, подсчитано. Результаты подсчета, затем, сравнивают с несколькими порогами. Если количество образцов является большим или равным «очень вероятному» порогу, то значение таблицы классификаторов для этого блока устанавливается равным наивысшей оценке классификации (например, трем). Если количество образцов является большим или равным «вероятному» порогу, то значение таблицы устанавливается равным следующей наивысшей оценке (например, двум). Если количество образцов является большим или равным «возможному» порогу, то тогда значение таблицы устанавливается равным следующей наивысшей оценке (например, 1). В примере двубитовой оценки, значение таблицы, иначе, устанавливается равным 0. Пороги являются конфигурируемыми и могут изменяться при изменении количества используемых обучающих образцов, но, в одном примере, могут быть использованы, соответственно, пороги, равные 90, 9, и 1 для очень вероятных, вероятных, и возможных порогов. Затем, двубитовые оценки запоминают в таблице, согласно разделению на группы, наборы и блоки. Записи таблицы, таким образом, также отражают минимальные значения и размеры блоков для признаков площади и текстуры. Минимальное значение и размер блока для признака высоты могут быть установлены равными 0 и 200, соответственно.
[0089] Во время классификации, любым значениям за пределами границ таблицы назначают самую низкую характеристику (например, 0) по умолчанию, со следующими исключениями. Блобы с высотой, большей или равной 1600, сосредотачивают в блоке 1400-1599. Блобам с площадью, большей, чем любая площадь ладони, наблюдаемая при обучении для блока назначенной высоты, назначают характеристику ладони, равную 1. Эти исключения могут помочь корректно обобщить классификатор для очень больших блобов, которые никогда не наблюдались при обучении.
[0090] Фиг. 2 показывает иллюстративный способ 200 для классификации касаний. Этот способ является реализуемым компьютером. Например, один или несколько компьютеров чувствительного к касанию устройства 100, показанного на фиг. 1, и/или другого чувствительного к касанию устройства могут быть выполнены с возможностью реализации способа или его части. Реализация каждого действия может управляться соответствующими машиночитаемыми командами, исполняемыми процессором системы 102 касания, устройства 100, и/или другим процессором или обрабатывающей системой. Дополнительные действия, меньшее количество действий, или альтернативные действия могут быть включены в этот способ. Например, способ 200 может не включать в себя действия, направленные на функциональность вывода данных.
[0091] Способ 200 может начинаться с одного или нескольких действий, связанных с захватом кадровых данных. Способ, которым захватываются кадровые данные, может изменяться. Кадровые данные могут быть захвачены посредством другого устройства или процессора и/или в связи с другим способом, реализуемым тем же процессором или устройством, реализующим способ 200.
[0092] В варианте осуществления фиг. 2, способ 200 начинается с действия 202, в котором получают кадровые данные. Кадровые данные представляют собой множество кадров (или изображений датчика касания), захваченных чувствительным к касанию устройством. Кадровые данные могут быть приняты прямо от аппаратных средств или другого компонента (компонентов) системы 102 касания, таких как аппаратно-программные средства 112 (фиг. 1), для обработки в режиме реального времени. Альтернативно или дополнительно, кадровые данные могут быть предварительно захваченными и запомненными кадровыми данными. Таким образом, кадровые данные могут быть получены посредством осуществления доступа к памяти, такой как одно из устройств памяти, описанных в связи с фиг. 1, т.е., устройств 108, 116 памяти, и/или другой памяти.
[0093] В действии 204, кадровые данные обрабатывают для определения соответствующего блоба в каждом кадре из множества кадров. Блобы указывают на событие касания. Блобы могут быть отслежены или связаны друг с другом по множеству кадров, как описано здесь, для различения множественных событий касаний, происходящих в одном и том же кадре.
[0094] Этот анализ может включать в себя повышающую дискретизацию кадровых данных в действии 206, сравнение кадровых данных с порогом в действии 208, разделение блобов в действии 210, и/или объединение блобов в действии 212. Каждое из этих действий обработки может быть реализовано, как описано выше. Способ 200 может включать в себя любое одно или несколько из этих действий обработки. Например, в некоторых RDF-примерах, разделение блобов действия 210 реализуется, а объединение блобов действия 212 не реализуется. Напротив, в некоторых примерах справочных таблиц, объединение блобов действия 212 реализуется, а разделение блобов действия 210 не реализуется.
[0095] В некоторых случаях (например, в некоторых RDF-примерах), след блобов по множеству кадров определяют или, иначе, обновляют для события касания, в действии 214. Определение следа может происходить после определения блобов. Данные блоба, извлеченные из текущего кадра, обрабатываются для обновления следов, идентифицированных в предшествующем кадре. Таким образом, действие 214 определяет новые следы, продолжает активные следы, и/или завершает активные следы. Активные следы либо продолжаются в дополнительном кадре с блоба, присутствующего в текущем кадре, либо завершаются при отсутствии блоба, как описано выше. Данные, указывающие на активные следы, также запоминаются в хранилище 216 данных. Действие 214 может включать в себя осуществление доступа к хранилищу 216 данных, как показано в связи с обработкой активных следов.
[0096] В других случаях (например, в некоторых примерах справочных таблиц), кадровые данные для конкретного кадра обрабатываются отдельно от кадровых данных последующих кадров. Действие 204 может быть направлено на анализ кадровых данных единственного кадра. Данные этого кадра, затем, подготавливаются для дополнительной обработки (например, вычисления наборов признаков и применения их в классификаторе машинного самообучения), отдельно от обработки кадровых данных последующих кадров.
[0097] В действии 218, вычисляют множество наборов признаков для события касания. Каждый набор признаков задает характеристики соответствующего блоба в каждом кадре из множества кадров. Признаки или характеристики, вычисленные в действии 218, могут изменяться, как описано выше. Количество признаков или характеристик может также изменяться в зависимости от сложности классификатора. Как показано на фиг. 2, в некоторых случаях, данные наборов признаков могут быть запомнены в хранилище 216 данных, в котором хранятся данные активных следов.
[0098] В некоторых случаях (например, в RDF-примерах), наборы признаков могут быть агрегированы по множеству кадров в действии 220, и могут быть вычислены признаки следов в действии 222. Например, действия 220 и 222 могут быть реализованы в случаях, когда следы определены, и/или, иначе, кадровые данные для множественных кадров события касания уже являются доступными. Агрегирование происходит перед применением множества наборов признаков в классификаторе машинного самообучения при определении типа события касания.
[0099] Данные наборов признаков применяются в действии 224 для определения типа события касания посредством классификации машинного самообучения. Эта классификация выполнена с возможностью обеспечения множественных не-двухрежимных оценок классификации на основе множества наборов признаков для множества кадров, как описано выше. Каждая не-двухрежимная оценка классификации указывает на уровень неопределенности или достоверности в классификации машинного самообучения. В некоторых случаях, к хранилищу 216 данных может быть осуществлен доступ, как показано, для поддержки классификации.
[00100] В случаях, включающих в себя определение и продолжение следов, синхронизация классификации действия 224 может зависеть от того, сформирован ли след (например, след продолжался три раза). В этих случаях, когда активный след, который только что продолжился, становится сформированным, его тип касания определяют в действии 224. Таким образом, действие 224 может быть реализовано одновременно и независимо от обработки кадровых данных и вычисления наборов признаков действий 204 и 218.
[00101] Обработка сформированных следов, которые уже были классифицированы, но которые остаются активными в текущем кадре (например, в результате продолжения блобом в текущем кадре), могут основываться или могут не основываться на предшествующей классификации. В некоторых случаях, действие 224 может быть сконфигурировано таким образом, чтобы следы, которые стали сформированными в предшествующем кадре, автоматически передавали свой тип касания блобу, которым этот след был продолжен. В других случаях, классификация действия 224 повторяется, что обеспечивает новые агрегированные данные наборов признаков (т.е., включающие в себя данные, обеспечиваемые текущим кадром).
[00102] Классификация машинного самообучения может включать в себя применение одного или нескольких наборов признаков в классификаторе машинного самообучения в действии 226. В некоторых случаях (например, в некоторых RDF-примерах), данные наборов признаков для множественных кадров применяются в классификаторе в совокупности. Данные признаков следов могут быть также применены в таких случаях. В других случаях (например, в некоторых примерах справочных таблиц), данные наборов признаков применяются в классификаторе по кадрам.
[00103] После применения данных наборов признаков в классификаторе, один или несколько порогов могут быть применены к оценкам классификации в действии 228. Порог (пороги) могут быть применены для определения типа события касания и/или определения того, подтверждена ли обработка дополнительных кадровых данных (например, если уровень неопределенности является слишком высоким для типа касания, который необходимо узнать).
[00104] Способ 200 может включать в себя одну или несколько процедур, направленных на обеспечение выходных данных. В примере фиг. 2, выходные данные, указывающие на тип и координаты положения события касания, обеспечиваются в действии 230. Координаты могут указывать на положение последнего блоба во множественных кадрах, связанных с событием касания. Могут быть обеспечены дополнительные или альтернативные выходные данные. Например, может быть обеспечен идентификатор следа.
[00105] В некоторых случаях, одно или несколько действий способа, показанных на фиг. 2, могут быть итерированы или, иначе, могут включать в себя итерацию по множественным кадрам. Например, в примерах справочных таблиц, данные наборов признаков применяются в классификаторе на основе справочных таблиц итерационно для каждого кадра. Дополнительные подробности относительно такой итерации описаны в связи с примером фиг. 4.
[00106] Порядок действий способа может отличаться от показанного примера. Например, в некоторых случаях, действия реализуются в конвейерном режиме, например, в связи с каждым прибывающим кадром. Действия могут быть реализованы параллельно или одновременно при обработке кадровых данных разных кадров, блобов, и/или следов. Например, вычисление наборов признаков действия 218 может быть реализовано одновременно с некоторой обработкой классификации машинного самообучения действия 224.
[00107] Фиг. 3 показывает дополнительные подробности относительно действия 224 определения события касания (фиг. 2) в связи с примером, включающим в себя классификатор на основе леса произвольных решений (RDF). В этом примере, процедура классификации касаний начинается в действии 302 с получения агрегированного набора признаков для множественных кадров. Агрегированный набор признаков может быть обеспечен после отслеживания блобов события касания для достаточного количества кадров (например, след продолжился и стал сформированным), как описано выше. Агрегированный набор признаков может также включать в себя данные признаков следов, описанные выше. Затем, агрегированный набор признаков применяют в действии 304 к каждому дереву произвольных решений RDF-классификатора. Выходные данные каждого дерева усредняются в действии 306 для генерации множественных не-двухрежимных оценок классификации. В этом случае, каждая не-двухрежимная оценка классификации представляет собой вероятность того, что событие касания является событием касания соответствующего типа. Затем, пороги могут быть применены к вероятностным оценкам для определения типа события касания. Один или несколько порогом могут быть заданы для каждого типа события касания. Например, событие касания может быть классифицировано в качестве преднамеренного события касания стилусом, если вероятностные оценки для классов пальца, стилуса, и ладони являются меньшими, чем 0.3, большими, чем 0.6, и меньшими, чем 0.2, соответственно. Затем, могут быть обеспечены выходные данные, указывающие на тип события касания, идентификатор следа, и положение следа (т.е., блоба) в текущем кадре.
[00108] Фиг. 4 показывает дополнительные подробности относительно действия 224 определения события касания (фиг. 2) в связи с примером, включающим в себя классификатор на основе справочных таблиц (lookup table - LUT). В этом примере, процедура классификации касаний начинается в действии 402 с получения набора признаков для текущего кадра. Затем, набор признаков может быть применен к множественным справочным таблицам в действии 404. Каждая справочная таблица определяет отдельную (т.е., специфическую для таблицы) не-двухрежимную оценку классификации. Например, множественные справочные таблицы могут включать в себя первую справочную таблицу, выполненную с возможностью обеспечения первой характеристики (например, от 0 до 3) того, что событие касания является преднамеренным касанием, и вторую справочную таблицу, для определения второй характеристики (например, от 0 до 3) того, что событие касания является непреднамеренным касанием. Затем, отдельные оценки классификации объединяются в действии 406 для вычисления специфической для кадра оценки классификации для блоба (т.е., оценки классификации блоба). Например, вторая характеристика может быть вычтена из первой характеристики таким образом, чтобы оценка классификации блоба попадала в диапазон от -3 до +3, где отрицательные числа больше указывают на непреднамеренные касания, а положительные числа больше указывают на преднамеренные касания.
[00109] Специфические для кадров оценки классификации блобов для события касания агрегируются в действии 408. Агрегирование может включать в себя суммирование текущей оценки классификации блоба с любыми ранее вычисленными оценками классификации блобов для более ранних кадров. Таким образом, может быть вычислена совокупная (т.е., многокадровая) оценка классификации.
[00110] Затем, блок 410 решения определяет, обеспечивается ли соответствие порогу для классификации типа касания. Соответствующий порог может быть обеспечен для каждого типа события касания. Например, если совокупная оценка является большей, чем +7, то тогда событие касания классифицируется в качестве преднамеренного касания. Если совокупная оценка является меньшей, чем -6, то тогда событие касания классифицируется в качестве непреднамеренного касания. Если соответствие любому порогу обеспечивается, то тогда управление может перейти к действию 412, в котором тип события касания определяется и обеспечивается в качестве выходных данных. Если не обеспечивается соответствие ни одному из порогов, то тогда управление возвращается к действию 402 для получения дополнительных кадровых данных для следующего кадра и итерации действия 404 применения признаков, действия 406 объединения оценок, и действия 408 агрегирования оценок, в связи с дополнительными кадровыми данными.
[00111] В примере фиг. 4, некоторое количество действий может быть реализовано для настройки оценок классификации или классификаций в связи с несколькими конкретными обстоятельствами. Блок 414 решения может быть использован для определения того, должна ли произойти настройка в последующем кадре для блоба, который перекрывает событие касания, считающееся событием касания ладонью. В этом примере, если текущее событие касания классифицировано в качестве события касания ладонью, то тогда управление переходит к действию 416, в котором устанавливается флаг, состояние, или другие переменные, для классификации любых перекрывающихся блобов в следующем кадре в качестве событий касания ладонью.
[00112] Другие настройки могут быть реализованы в качестве настроек для оценок классификации. В примере фиг. 4, настройки реализованы в связи с вычислением оценки классификации блоба в действии 406. Настройка в действии 418 может быть направлена на учет обстоятельств, связанных с анти-блобами, посредством вычитания некоторого значения из оценки классификации блоба, если блоб перекрывает достаточно большой анти-блоб (например, больший, чем 50 пикселов), как описано выше. Другая настройка в действии 420 может быть направлена на учет того, что блоб находится вблизи события касания ладонью, посредством вычитания частного, вычисленного посредством деления площади блоба на пороговую площадь, как описано выше. Еще одна настройка в действии 422 может быть направлена на краевые эффекты, посредством вычитания разницы между количеством краевых пикселов и порогом из оценки-характеристики классификации блоба, как описано выше.
[00113] Со ссылкой на фиг. 5, иллюстративная вычислительная среда 500 может быть использована для реализации одного или нескольких аспектов или элементов описанных выше способов и/или систем. Вычислительная среда 500 может быть использована чувствительным к касанию устройством 100 (фиг. 1) или одним или несколькими его элементами, встроена в них или согласована с ними. Например, вычислительная среда 500 может быть использована для реализации системы 102 касания (фиг. 1) или хост-устройства или системы, связанной с системой 102 касания. Вычислительная среда 500 может быть вычислительной системой общего назначения, используемой для реализации одного или нескольких действий, описанных в связи с фиг. 2-4. Вычислительная среда 500 может быть согласована с самыми разными вычислительными устройствами, включающими в себя, но не ограниченными этим, персональные компьютеры (personal computer - PC), серверные компьютеры, планшетные и другие портативные вычислительные устройства, компактные портативные или мобильные компьютеры, коммуникационные устройства, такие как мобильные телефоны, многопроцессорные системы, системы на основе микропроцессоров, телевизионные приставки, программируемую потребительскую электронику, сетевые PC, миникомпьютеры, мэйнфреймы, звуковые или видео медиа-плейеры, и т.д.
[00114] Вычислительная среда 500 имеет достаточные вычислительные возможности и системную память для обеспечения основных вычислительных операций. В этом примере, вычислительная среда 500 включает в себя один или несколько обрабатывающих блоков 510, которые могут индивидуально или обобщенно называться процессором. Вычислительная среда 500 может также включать в себя один или несколько графических обрабатывающих блоков (graphics processing unit - GPU) 515. Процессор 510 и/или GPU 515 может включать в себя встроенную память и/или может иметь канал связи с системной памятью 520. Процессор 510 и/или GPU 515 может быть специализированным микропроцессором, таким как цифровой сигнальный процессор (digital signal processor - DSP), процессором очень длинных командных слов (very long instruction word - VLIW), или другим микроконтроллером, или может быть центральным обрабатывающим блоком (central processing unit - CPU) общего назначения, имеющим одно или несколько обрабатывающих ядер. Процессор 510, GPU 515, системная память 520, и/или другие компоненты вычислительной среды 500 могут быть размещены в корпусе или, иначе, встроены в виде системы на кристалле (system on a chip - SoC), специализированной интегральной схемы (application-specific integrated circuit -ASIC), или другой интегральной схемы или системы.
[00115] Вычислительная среда 500 может также включать в себя другие компоненты, такие как, например, интерфейс 530 связи. Могут быть обеспечены одно или несколько компьютерных устройств 540 ввода (например, указывающих устройств, клавиатур, звуковых устройств ввода, видеоустройств ввода, тактильных устройств ввода, устройств для приема проводных или беспроводных передач данных, и т.д.). Устройства 540 ввода могут включать в себя одну или несколько чувствительных к касанию поверхностей, таких как сенсорные планшеты. Могут быть также обеспечены различные устройства 550 вывода, включающие в себя экран касания или чувствительное к касанию устройство (устройства) 555 отображения. Устройства 550 вывода могут включать в себя множество разных звуковых устройств вывода, видеоустройств вывода, и/или устройств для передачи проводных или беспроводных передач данных.
[00116] Вычислительная среда 500 может также включать в себя множество машиночитаемых сред для запоминания информации, такой как машиночитаемые или исполняемые компьютерами команды, структуры данных, программные модули, или другие данные. Машиночитаемые среды могут быть любыми доступными средами, доступными через запоминающие устройства 560, и они включают в себя как энергозависимые, так и энергонезависимые среды, или в съемном хранилище 570 и/или в несъемном хранилище 580.
[00117] Машиночитаемые среды могут включать в себя компьютерные запоминающие среды и среды передачи данных. Компьютерные запоминающие среды могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные среды, реализуемые в любом способе или технологии для запоминания информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные запоминающие среды включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CDROM, универсальные цифровые диски (digital versatile disk - DVD) или другие накопители на оптических дисках, магнитные кассеты, магнитную ленту, накопители на магнитных дисках или другие магнитные запоминающие устройства, или любую другую среду, которая может быть использована для запоминания необходимой информации, и к которой может быть осуществлен доступ посредством обрабатывающих блоков вычислительной среды 500.
[00118] Технологии классификации событий касаний, описанные здесь, могут быть реализованы в исполняемых компьютером командах, таких как программные модули, исполняемые вычислительной средой 500. Программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных, и т.д., которые выполняют конкретные задачи или реализуют конкретные абсолютные типы данных. Технологии, описанные здесь, могут быть также применены на практике в распределенных вычислительных средах, где задачи выполняются одним или несколькими удаленными обрабатывающими устройствами, или в пределах облачной среды из одного или нескольких устройств, которые связаны через одну или несколько сетей связи. В распределенной вычислительной среде, программные модули могут быть расположены как в локальных, так и в удаленных компьютерных запоминающих средах, включающих в себя запоминающие устройства.
[00119] Упомянутые технологии могут быть реализованы, частично или в целом, в виде аппаратных логических схем или компонентов, которые могут включать в себя или могут не включать в себя процессор. Аппаратные логические компоненты могут быть сконфигурированы в виде матриц программируемых логических вентилей (Field-programmable Gate Array - FPGA), специализированных интегральных схем (Application-specific Integrated Circuit - ASIC), стандартных интегральных схем, разработанных для конкретных приложений (Application-specific Standard Product - ASSP), систем типа «система на кристалле» (System-on-a-chip system - SOC), сложных устройств с программируемой логикой (Complex Programmable Logic Device -CPLD), и/или других аппаратных логических схем.
[00120] Технологии классификации, описанные выше, могут робастно различать умышленные и непреднамеренные события касаний в чувствительном к касанию устройстве. Классификаторы машинного самообучения используются для определения того, произошло ли событие касания вследствие преднамеренного касания кончиком пальца или вследствие непреднамеренного касания ладонью. Классификаторы могут также определить, является ли событие касания контактом или касанием пером или стилусом. Некоторые классификаторы (например, RDF-классификаторы) могут быть сконфигурированы для программной реализации, например, на уровне операционной системы или на другом уровне, на котором отсутствуют жесткие ограничения на доступ к ресурсам памяти. Другие классификаторы могут быть сконфигурированы для реализации на платформах с ограниченными ресурсами, таких как микроконтроллеры, используемые в настоящее время в системах обработки касаний. В таких случаях, может быть использован классификатор на основе справочных таблиц (например, трехмерный классификатор на основе справочных таблиц) с более ограниченным набором признаков.
[00121] В некоторых случаях, характеристики или признаки события касания вычисляются и отслеживаются по множественным кадрам перед применением в классификаторе. После того, как след для события касания достигает заданного количества кадров (например, 3), набор признаков может быть применен в классификаторе для определения множественных вероятностных оценок для события касания. Каждая вероятностная оценка является не-двухрежимной оценкой, указывающей на вероятность того, что событие касания является событием касания конкретного типа. Затем, определение типа касания может быть выполнено на основе вероятностных оценок.
[00122] Другие случаи могут включать в себя разные методики для агрегирования информации для события касания с течением времени, а также разные типы оценок классификации. В некоторых случаях, методика на основе справочных таблиц используется для генерации не-двухрежимной оценки классификации для каждого кадра. Затем, оценки классификации могут быть агрегированы (например, просуммированы) по множественным кадрам для определения совокупной, многокадровой оценки классификации для события касания.
[00123] Оценки классификации, обеспечиваемые классификатором машинного самообучения, указывают на правдоподобие того, что касание было преднамеренным или непреднамеренным. Не-двухрежимная природа оценок классификации обеспечивает этим оценкам также возможность указания на уровень неопределенности в определении классификатора. Это определение основано на информации, получаемой по границам кадров и, таким образом, информации из множественных точек во времени. Таким образом, например, ранние кадры ладони, впервые осуществляющей касание, могут выглядеть как классификация слабого «касания», которая позже превращается в классификацию сильного касания «ладонью», когда больший объем информации становится доступным. Таким образом, может быть улучшен коэффициент ошибок.
[00124] Оценки классификации могут быть настроены посредством одного или нескольких правил. Правила могут быть применены или исполнены согласно обстоятельствам, представленным посредством данных наборов признаков. Обстоятельства могут включать в себя события касаний на краях кадра, касания пальцами вблизи ладони, и искажение изображений касаний, вызванное «плавающими» пользователями. Настройки могут перекашивать результаты классификатора к касанию ладонью или другому типу касания или от них.
[00125] Технология, описанная здесь, функционирует с использованием многих других сред или конфигураций вычислительных систем общего назначения или специального назначения. Примеры общеизвестных вычислительных систем, сред и/или конфигураций, которые могут подходить для использования с технологией, описанной здесь, включают в себя, но не ограничены этим, персональные компьютеры, серверные компьютеры (включая архитектуры сервер-клиент), ручные или портативные устройства, мобильные телефоны или устройства, многопроцессорные системы, системы на основе микропроцессоров, телевизионные приставки, программируемую потребительскую электронику, сетевые PC, миникомпьютеры, мэйнфреймы, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств, и т.д. Некоторые или все из этапов способа или процесса и функциональности могут быть выполнены посредством сетевого или удаленного процессора, который имеет связь с клиентом или локальным устройством, управляемым пользователем. Потенциальное преимущество разгрузки функций от локального устройства к удаленному устройству состоит в сохранении вычислительных и энергетических ресурсов локального устройства.
[00126] Технология, приведенная здесь, может быть описана в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые компьютером. В общем, программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных, и т.д., которые выполняют конкретные задачи или реализуют конкретные абсолютные типы данных. Технологии, описанные здесь, могут быть также применены на практике в распределенных вычислительных средах, где задачи выполняются одним или несколькими удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенной вычислительной среде, программные модули могут быть расположены как в локальных, так и в удаленных компьютерных запоминающих средах, включающих в себя запоминающие устройства.
[00127] В то время как настоящее изобретение было описано со ссылкой на конкретные примеры, которые предназначены только для иллюстрации, а не для ограничения настоящего изобретения, специалистам в данной области техники следует понимать, что изменения, добавления и/или удаления могут быть применены к раскрытым вариантам осуществления, не выходя за рамки сущности и объема настоящего изобретения.
[00128] Вышеупомянутое описание приведено только для обеспечения ясности понимания, и следует понимать, что из него не следуют никакие ненужные ограничения, поскольку модификации в пределах объема настоящего изобретения могут быть ясны специалистам в данной области техники.