Создание программы, осуществляющей распознавание жестов мыши и выполняющей ассоциированные с ними действия

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?орый определяет, необходимо ли находить расстояние до точки или , или длину перпендикуляра [16].

Алгоритм вычисления расстояния от точки до отрезка можно записать в псевдокоде следующим образом:

distance(Point P, Segment P0:P1)

{= P1 - P0= P - P0((c1 = wv) <= 0)d(P, P0)((c2 = vv) <= c1)d(P, P1)= c1 / c2= P0 + bvd(P, Pb)

}

2.2.3Преобразование отрезков в косинусы углов наклона

Если предположить, что каждый отрезок упрощенной ломаной принадлежит прямой , заданной его начальной точкой и конечной точкой , то косинусы углов наклона отрезка являются координатами направляющего вектора прямой , нормализованного к единичному вектору. Т.е. если - единичный направляющий вектор прямой , то его координаты равны , где - угол наклона отрезка относительно оси , - угол наклона отрезка относительно оси (рисунок 2.7).

Рисунок 2.7 - Наклон отрезка относительно осей координат

2.3Выходная информация

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

Для того чтобы выходные значения ИНС можно было интерпретировать как вероятности, характеризующие степень соответствия введенного жеста каждому из идеальных жестов, результат нейронной сети пропускается через функцию SOFTMAX, которая имеет следующий вид:

.(2.12)

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

2.4Обучение сети

Обучающей выборкой в процессе настройки весов нейронной сети служил набор векторов, представляющих собой идеальные (эталонные) жесты.

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

а)выполнить инициализацию весов связей небольшими случайными значениями, задать максимально допустимую среднеквадратичную ошибку , положить текущее значение среднеквадратичной ошибки ИНС ;

б)подать на вход сети -ый входной вектор ;

в)выполнить распространение сигналов в соответствии с прямыми связями:

,(2.13)

где - номер слоя нейронов, ; - выходной сигнал -го нейрона -го слоя; - веса связей -го слоя;

г)вычислить среднеквадратичную ошибку ИНС:

(2.14)

и ошибку нейронов выходного слоя:

(2.15)

выполнить распространение ошибки в обратном направлении, руководствуясь правилом:

;(2.16)

д)обновить веса связей каждого слоя в соответствии с правилом:

;(2.17)

е)если , то и перейти к пункту 2, иначе перейти к шагу з;

ж)проверить значение ошибки : если , то закончить вычисления, иначе присвоить , и перейти к шагу б.

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

Например, необходимо распознать букву А, которая наиболее близка эталонному жесту поданного на вход вектор. Изобразим букву в виде точечных изображений (рисунок 2.8).

Рисунок 2.8 - Точечное изображение буквы

Темной клетке-пикселю на изображении отвечает Iij=1, светлому - Iij=0. Построим многослойную сеть из Ni* Nj входами, каждому входу отвечает один пиксель xk=Iij, k=1,тАж,Ni*Nj. Как исходные сигналы выберем вероятности того, что предъявленное изображение отвечает данной букве y=(c1,тАж,cM)T... Сеть рассчитывает выход:

,(2.18)

где выход с1=0.9 означает, что предъявленное изображение буквы А и сеть уверенные в этом на 90%, выход с2=0.1 - что изображения отвечало букве Б с вероятностью10% и т.п.

Есть и другой способ, в котором входы сети выбираются так же, а выход только один, номер m предъявленной буквы. Сеть учится придавать значение m за предъявленным изображением I: Iij m. Недостатком такой формализации есть то, что буквы, которые имеют близкие номера, но разные изображения, могут быть перепутаны сетью при распознавании.

3 ОПИСАНИЕ РАЗРАБОТАННОЙ ПРОГРАММНОЙ СИСТЕМЫ

3.1Перечень функций

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

Она обладает следующими характеристиками и выполняет такие функции:

-эффективное распознавание жестов мыши, не зависящее от масштаба и скорости ввода;

-ассоциация действий с любым из поддерживаемых жестов, которыми могут быть запуск программ, открытие документов, вызов функций и т. д.;

-удобный графический интерфейс пользователя, позволяющий интерактивно создавать и удалять ассоциации;

-сохранение ассоциированных действий в файле конфигурации;

-выполнение в фоновом режиме: ввод жестов доступен при работе любого приложения.

3.2Описание интерфейса

Разработанная программа является оконным Windows-приложением. В силу своей специфики программа не имеет традиционного главного окна: приложе