Алгоритм классификации мультисенсорного экрана

Какой алгоритм можно использовать для решения следующей задачи классификации? У нас мультисенсорный экран, пользователь может коснуться его двумя или тремя пальцами одновременно.

  1. После того, как пользователь касается экрана, мы запоминаем начальные положения его пальцев. Каждый палец получает группу координат от устройства.
  2. Когда пользователь двигает пальцами, мы должны отслеживать движения его пальцев.

Проблема в том, что когда пальцы двигаются близко друг к другу. Как определить, какие точки к какому пальцу принадлежат?

Я знаю, что это какая-то проблема классификации. Какой алгоритм можно использовать для решения этой задачи?


person Peter17    schedule 14.12.2011    source источник
comment
Если вы все время отслеживаете движения пальцев, то я не вижу проблемы - вы просто считываете координаты искателей, скажем, каждую миллисекунду, а затем находите ближайшую точку среди предыдущих положений пальцев. Или я что-то упускаю?   -  person ffriend    schedule 14.12.2011
comment
Я более подробно описал проблему. Пожалуйста, посмотрите здесь: stackoverflow.com/questions/8519477/   -  person Peter17    schedule 15.12.2011


Ответы (2)


Одна из проблем состоит в том, чтобы начать с отчетов о N местоположениях в момент времени t и отчетов о N местоположениях в момент времени t+1 и выяснить, что позиция 1 в момент времени t является тем же пальцем, что и позиция 3 в момент времени t+1. Военные много раз рассматривали подобные вещи, часто под названием слияния данных. Один из подходов состоит в том, чтобы записать стоимость связывания позиции i в момент времени t с позицией j в момент времени t+1, а затем найти перестановку с минимальной общей стоимостью — это пример http://en.wikipedia.org/wiki/Assignment_problem.

Если устройство на самом деле сообщает, что два пальца находятся очень близко друг к другу, как один, у вас более сложная проблема, но у вас, конечно, не так много разных положений для рассмотрения, поэтому вы должны быть в состоянии, например. попробуйте различные способы обработки одного отчета о местоположении как двух разных отчетов, а затем выберите наиболее результативный вариант.

person mcdowella    schedule 14.12.2011

Решение проблемы с присвоением для этого является излишним, учитывая, что вы пытаетесь присвоить три балла трем пальцам. Даже если вы пытаетесь присвоить пять точек пяти пальцам, вам лучше использовать метод грубой силы для определения оптимальной конфигурации точек для пальцев. Обратите внимание, что для трех пальцев и трех точек существует только шесть возможных уникальных назначений пальцев точкам. Поэтому лучше всего просто рассчитать стоимость каждой конфигурации назначения и выбрать ту, которая требует наименьших затрат.

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

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

Определите физическую модель движения пальцев. Очень простой моделью была бы импульсная модель, в которой каждый палец независим друг от друга и предполагается, что он обладает некоторой инерцией. Если палец перемещается на dx,dy в одном кадре, вы ожидаете, что он переместится на dx,dy во втором кадре. Это дает вам ожидаемое значение того, где вы ожидаете, что палец будет следующим. Теперь вы можете определить стоимость назначения пальца точке как некоторую функцию расстояния между местоположением фактической зарегистрированной точки и ожидаемым вами местом.

Суммируйте затраты на каждое назначение точки пальца и найдите конфигурацию с наименьшей стоимостью.

Теперь, если вы хотите быть более сложным, все, что вам нужно сделать, это использовать более сложную модель. Возможно, вы не хотите предполагать, что пальцы двигаются независимо. Возможно, вы захотите ожидать некоторой корреляции между движениями пальцев. В этом случае уточните модель, рассчитайте ожидаемые новые баллы и рассчитайте стоимость задания, как и раньше.

person Tim Gee    schedule 15.12.2011