12
votes

Algorithme pour imiter le mouvement de la souris comme un humain?

J'ai besoin de tester un logiciel qui traite des mouvements de la souris comme "gestes". Pour une telle tâche, je dois imiter le mouvement de la souris du point A au point B, pas en ligne droite, mais comme une véritable souris se déplace - avec des courbes, un peu de jambe, etc. Y a-t-il une solution disponible (algorithme / code lui-même, non une bibliothèque / exe) que je peux utiliser?

Bien sûr, je peux écrire de simples calculs sinusoïdaux par moi-même, mais ce serait une émulation très brute d'une main humaine menant une souris. Une telle tâche a peut-être été résolue déjà de nombreuses fois et je peux simplement emprunter un code existant? :)


1 commentaires

Je devinerais avec maintenant en 2018, vous pouvez apprendre à utiliser tensorflow , en utilisant Machine-apprencing Avec une réelle entrée du mouvement de la souris humain afin qu'elle puisse la détecter plus tard, ce serait la solution idéale.


5 Réponses :


5
votes

Que diriez-vous d'enregistrer des gestes réels et de faire un moyen de les jouer? Cela va être aussi réel que tout ce que vous pouvez synthétiser, et ce serait répétable (ce qui est agréable pour les tests).


2 commentaires

C'est un bon moyen, mais cela ne garantira que ce programme en question fonctionne sur certains mouvements prédéfinis. Et je veux nourrir un million de mouvements différents pour tester :).


Ensuite, vous devriez peut-être commencer par quelques chemins enregistrés et appliquer des tests fuzz pour générer des millions de variantes.



2
votes

Créer une simple application de test qui affiche un point positionné aléatoire toutes les deux secondes. Suivez-les vous-même et enregistrez vos mouvements de souris naturels.


0 commentaires

10
votes

Jetez un oeil à la souris.simba fichier qui fait partie du SRL Framework , un programme macro conçu pour fonctionner avec des jeux en ligne comme runescape . Runescape a Capacités de détection de macro de Toutes les parties du cadre SRL ont été développées pour être aussi humaines que possible - la souris fonctionne en particulier.

Le code est à Pascal mais devrait être assez facile à lire. Recherchez le MMOUSE () PROCÉDURE DE BENLAND100 Il déplace très de manière réaliste des mouvements avancés tels que des boucles et dépassant sa cible ainsi que des accélérations et des instructions variables en continu (désormais des mouvements de type TouchPad pour ordinateur portable). Si vous souhaitez tester cela, vous devez télécharger Simba et Activez le SRL-Inclure .


2 commentaires

Est-ce que Pascal est sensible à la casse ou non? :)


Non, ce n'est pas sensible à la casse. La norme consiste à capitaliser tous les mots des noms de procédures / de fonctions (comme celui-ci (comme celui-ci) et d'utiliser ce type decapitalisation pour les variables. Beaucoup de fonctions qu'il utilise se rapporte au reste du cadre ou sont intégrées à la cicatrice comme getMousepos.



2
votes

Un moyen de capturer ce comportement pourrait être de définir une "grille" invisible à l'écran, où vous suivez lesquelles la souris passe à travers son voyage.

Si cette partie fonctionne et enregistre correctement, il n'est pas nécessaire de le bombarder avec des tests, car vous savez que chaque carré de grille fait son travail. L'interprétation du geste est également facilitée avec cela.


0 commentaires

6
votes

Pour quiconque à l'avenir: j'ai développé une bibliothèque pour Java, cela fait exactement quel op demande. Le bruit / la jaturggedness en mouvement, les arcs sinusoïdaux, le dépassement de la position un peu, etc. Plus la bibliothèque est écrite avec des possibilités d'extension et de configuration à l'esprit, de sorte que tout le monde puisse l'ajuster, si la solution par défaut ne correspond pas au cas. Disponible de Maven Central maintenant.

https://github.com/joonasvali/naturalMousemotion


0 commentaires