Подтвердить что ты не робот

Как научиться движению мыши?

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

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

Я искал несколько недель и прочитал несколько статей о применении обратной биометрии в генерации динамики мыши, например Обратная биометрия для динамики мыши; однако они стремятся сосредоточиться, однако, на создании реалистичного времени из произвольно сгенерированной динамики, в то время как я надеялся создать путь от специально от A до B. Кроме того, мне все еще нужно на самом деле нужно придумать путь, а не только несколько динамиков, измеренных от одного.

Есть ли у кого-нибудь несколько указателей, чтобы помочь noob?

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

4b9b3361

Ответ 1

Во-первых, я предполагаю, что вы записываете движения человеческих мышей с A на B. Потому что в противном случае попытка синтезировать модель для такого движения мне не представляется возможной.

Во-вторых, как насчет измерения отклонений от "прямого" пути, возможно, по отношению к времени. Я действительно подозреваю, что движения выглядят по-разному для разных углов, длины пути и т.д., Но, возможно, сначала вы можете попробовать нормализованную модель, чтобы вы просто растягивались (в пространстве и времени) и вращались так, как вам нужно.

В-третьих, обучение. Проще всего было бы просто иметь набор реальных ходов (в том виде, в котором я обсуждал выше), и образец из этой коллекции. Оцените, как это выглядит. Если вам действительно нужна вероятностная модель, вы должны оценить, какие модели подходят. достаточно ли размыть прямой путь с гауссовским шумом, параметры которого вы узнаете из своего учебного набора? Или какое-то (sin-) волновое отклонение? Или отдельные модели для "приближения к кнопке" и "окончательные исправления". Закон Fitts может быть полезен для оценки.

Ответ 2

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

Ответ 3

Этот вопрос напомнил мне о веб-сайте, который я знал много лет назад, поэтому я посетил его и нашел эту углубленную дискуссию по теме.

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

Ответ 4

Я не думаю, что проблема в том, что хорошо определено. Существует важное понятие, не упомянутое до сих пор, что является контекстом. Движение мыши на моем экране, когда Chrome имеет фокус, значительно отличается от движения, когда Vim имеет фокус.

Ответ 5

Способ перемещения мыши зависит от типа устройства, типа действия, элементов пользовательского интерфейса, знакомства с пользовательским интерфейсом, скорости, с которой пользователь пытается выполнить свою задачу, умения пользователя, первоначальный сбой пользователя (например, промахи), эмоциональное состояние пользователя (как и многие другие факторы). Планируете ли вы создать несколько стратегий перехода для соответствия различным контекстам? Также, насколько хорошо вы знаете алгоритм, который вы пытаетесь обмануть? Я предполагаю, что не широко, или просто запрограммировать прямо против этого алгоритма.

Если человек смотрит на путь, они могут идентифицировать состояние, связанное с стратегией пути, и могут быть более склонны к обману, если они идентифицируют его как состояние человека (например, пользователь спешит, пропущает, быстро закрывает появившееся всплывающее окно, снова пытается медленнее). Пользовательский интерфейс вступает в игру не только с размером и положением. Я часто быстро указываю на панель инструментов, затем перемещаю параметры, пока не доберусь до своей цели. Другим примером является то, что я обычно останавливаюсь на пунктах меню, пока я просматриваю свою цель или наведите курсор на текст, который я читаю. Вы пытаетесь подражать человеческому поведению или просто движению мыши (потому что я думаю, что они соединены в бедро)?

Ответ 6

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

Лично я считаю, что эксперты в области программного обеспечения слишком быстро перемещают своих мышей в учебные видеоролики. Я предпочитаю подход, сделанный программным обеспечением для создания скринкастов, которое я видел, который всегда перемещает мышь линейно из точки A → B. Трюк заключался в том, что каждый шаг мыши, сделанный в видео, всегда занимал одинаковое время независимо от расстояния, скажем, 3/4 секунды, после чего следует звуковой эффект щелчка мыши.

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

Ответ 7

Рассматривали ли вы добавление отслеживания мыши в приложение, чтобы вы, по сути, записывали, как пользователь перемещает мышь, а затем анализирует записи?

Я не изучал это недавно, но считаю, что MouseListener в приложении Swing получает необходимую вам информацию.