Gå til innhold

Realistisk syntetisering av musebevegelser


Anbefalte innlegg

Er det noen metoder for etterligning av menneskelige musebevegelser (softwaremessig, ikke fysisk bevegelse av en mus) som kommer nært menneskelige musebevegelser (Med andre ord, metoder som ville gjort det vanskelig for en person/system presentert for bevegelser gjort av et menneske og kunstige bevegelser å skille mellom disse)?

 

Har lest/hørt om bruk av blant annet splines (bézier kurver, etcetera), men disse virker litt for "matematiske" og fine til å se menneskelige ut.

Lenke til kommentar
Videoannonse
Annonse

Tja. Hvis du vil emulere noe så må du først sette deg ned og analysere det du vil emulere.

 

Slik jeg ser det for meg så er det disse prosessene som brukes for å klikke på noe.

 

* Først må man finne musepekeren på skjermen. Siden jeg har to skjermer og ikke vet nøyaktig hvor pekeren befinner seg alltid (f.eks når jeg har skrevet en stund) så drar jeg musa til nærmeste hjørne for så å bruke det som utgangspunkt. Hvis jeg får øye på pekeren på veien (typisk når den krysser rundt midten av skjermen) går jeg ofte ikke videre til hjørnet.

* Neste mål er beholderen som inneholder det man vil ha. Dette være seg en menylinje, vindu eller panel. Dette husker man hvor er plassert i forhold til hjørnet og bevegelsen til denne beholderens sentrum er rask og rett.

* Når pekeren er inni beholderen så er det å sikte seg mot den delen av beholderen som inneholder valget. Alternativt så begynner man å søke rundt. Jeg pleier å la pekeren følge øynene (eller leder øynene med pekeren) til jeg finner det jeg skal ha. Her er bevegelsen ofte litt hakkete.

* Når valget er funnet så er det en relativt nøyaktig bevegelse til valget.

 

Det som kan være nyttig for deg er at du finner et program som følger din egen mus. Så blar du litt rundt i noen mapper og åpner en del vinduer. Så åpner du et par program og navigerer litt i noen menyer. Etter å ha brukt maskinen litt så ser du etter på opptaket og prøver å finne årsaken til de enkelte musebevegelsene dine og sette dem i system.

 

Når du har en analyse av hvordan du ønsker at pekeren skal bevege seg så er det mye enklere å finne måter å gjenskape de bevegelsene.

Lenke til kommentar

Det som kan være nyttig for deg er at du finner et program som følger din egen mus. Så blar du litt rundt i noen mapper og åpner en del vinduer. Så åpner du et par program og navigerer litt i noen menyer. Etter å ha brukt maskinen litt så ser du etter på opptaket og prøver å finne årsaken til de enkelte musebevegelsene dine og sette dem i system.

 

Når du har en analyse av hvordan du ønsker at pekeren skal bevege seg så er det mye enklere å finne måter å gjenskape de bevegelsene.

 

Jeg har en haug av koordinater og tidspunkter musepekeren besøkte disse, det å ta opp musepekeren er ikke problemet, men heller å generalisere disse bevegelsene slik at jeg kan bruke dem til å i ettertid generere en bevegelse mellom to vilkårlige koordinater.

 

Eksempelvis et lite utdrag av opptakene jeg ender opp med i formatet [[kord x, kord y], tidspunkt]:

 

 

[

[[77, 64], 1.149851305062067e-06], [[78, 64], 0.003907578018369258], [[78, 65], 0.007909443843753606], [[79, 65], 0.00987952241309328], [[80, 65], 0.012924711952665988], [[81, 66], 0.016935776588490832], [[82, 66], 0.019928456251799037], [[83, 66], 0.023051835680115967], [[83, 67], 0.024946790630858254], [[84, 67], 0.02691035337613591], [[85, 67], 0.027896159228342456], [[86, 67], 0.030084326261875568], [[87, 67], 0.03301568052224713], [[87, 68], 0.0334752377605036], [[88, 68], 0.03491216860806284], [[89, 68], 0.036904094352198685], [[90, 68], 0.038953895945356], [[90, 69], 0.04008994903475732], [[91, 69], 0.04092282466339061], [[92, 69], 0.04190211469153514], [[93, 69], 0.04389940640842795], [[93, 70], 0.04489172808469651], [[94, 70], 0.045921994854032124], [[95, 70], 0.04690895055754373], [[96, 70], 0.04792656896252366], [[96, 71], 0.048905092423131485], [[97, 71], 0.049859469006333], [[98, 71], 0.05090238414002429], [[99, 71], 0.05189317268121944], [[100, 72], 0.05289737615430698], [[101, 72], 0.05389046439811225], [[102, 72], 0.0548962010062732]

]

 

 

Endret av Yumekui
Lenke til kommentar

Bare koordinatene i seg selv gjør ikke noe. Du må også vite hva du gjorde på det tidspunktet. Egentlig så er ikke nøyaktig koordinater så viktige, det er mer å analysere hvordan du navigerer fra en ting til en annen. Del det gjerne inn i steg fra du tenker på å finne noe til du finner musepekeren, til du finner vinduet, til du finner tingen og når du aktiverer tingen. Du vil helt klart se at det er forskjell på hvordan musen brukes avhengig av hva som akkurat har blitt gjort i det en ny operasjon påbegynnes. Hvis du blar igjennom mapper i ett vindu og så skal navigere til et annet mappevindu for å bla litt der så vil det være helt anneledes enn om du holder på å tegne og så går til mappevinduet for å bla i det. Dette er fordi at hjernen din må omstille seg i det siste tilfellet mens den fortsetter i samme mønster i det første.

  • Liker 1
Lenke til kommentar

Bare koordinatene i seg selv gjør ikke noe. Du må også vite hva du gjorde på det tidspunktet. Egentlig så er ikke nøyaktig koordinater så viktige, det er mer å analysere hvordan du navigerer fra en ting til en annen. Del det gjerne inn i steg fra du tenker på å finne noe til du finner musepekeren, til du finner vinduet, til du finner tingen og når du aktiverer tingen. Du vil helt klart se at det er forskjell på hvordan musen brukes avhengig av hva som akkurat har blitt gjort i det en ny operasjon påbegynnes. Hvis du blar igjennom mapper i ett vindu og så skal navigere til et annet mappevindu for å bla litt der så vil det være helt anneledes enn om du holder på å tegne og så går til mappevinduet for å bla i det. Dette er fordi at hjernen din må omstille seg i det siste tilfellet mens den fortsetter i samme mønster i det første.

 

Jeg tror nok det vil stemme at en ikke kan samle masse bevegelser og forvente at det fungerer for alt - Men hva om en fokuserer på en ting, for eksempel navigasjon gjennom mapper - Og tar opp bevegelser mens en selv gjør dette, en gjennskapelse av dette bør da (forutsatt at en får til å lage en slags modell) selv kunne utføre bevegelser brukt i mappenavigasjon, nei?

 

Altså, en lager modeller for hver handlingstype en ønsker å gjenskape musebevegelser for, og bruker disse ulike modellene avhengig av hva som behøves, da det kanskje kan være fordelaktig å få det tekniske klart før en begynner å tenke på varianter av det tekniske.

 

Forøvrig kan overganger mellom ulike handlingstyper (fra mappe til tegning, for eksempel) muligens også finnes på lignende måter?

 

 

Men uansett - Jeg er ikke sikker på hvordan en generaliserer bevegelsene; av opptakene ser musebevegelsene litt for ujevne ut til å bruke splines om en ikke også legger inn en type variasjon.

Endret av Yumekui
Lenke til kommentar

Det du gjør er først å identifisere start og slutt-punktet for en handling. Altså når bestemte du deg for å klikke på noe og når klikket du faktisk der.

 

Begynnelsen kan kanskje identifiseres med at musen har stått i ro et sted eller at noe har blitt klikket på.

 

Så ser du hva det første musen gjør er og prøver å finne ut hvilken hjerneprosess det her er snakk om.

Så ser du hva det neste musen gjør er og prøver å funne ut hvilken hjerneprosess det her er snakk om.

Rinse and repeat frem til klikket.

 

For eksempel så har jeg lagt merke til når jeg tenker over det nå at når jeg trykker på "Post" nederst (istedenfor å bruke TAB som jeg pleier) så går jeg nesten alltid en runde rundt knappen først.

 

Det holder for all del ikke å se på en operasjon bare en gang. Et godt resultat analyserer en handling gjort flere ganger og identifiserer mønster. Først når du har disse "naturlige mønstrene" på plass kan du emulere naturlig musbevegelse.

 

La oss si at en person utfører samme operasjon på to ganske forskjellige måter, men det er alltid en av de to måtene han gjør det på. Dette er uavhengig av plasseringen av start og slutt-punkt. Da må du "tilfeldig" velge en av måtene basert på hvor ofte en forekommer fremfor en annen. Deretter så må du se på hovedtrekkene med prosessen. Bevegelsen går som regel i et mønster, men mønstret avviker litt hver gang. Ergo må du ha ikke et start og et endepunkt for en bevegelse men et start og et ende område. Samtidig så har bevegelsen, som ofte går i en bue, et bestemt avvik fra et gjennomsnitt og du må avvike fra gjennomsnittet også.

 

Legg også merke til at når du gjør samme operasjonen flere ganger etter hverandre så blir bevegelsen mer presis til et punkt hvoretter den blir litt mer upresis for så å legge seg i et relativt jevnt mønster.

  • Liker 1
Lenke til kommentar

Det holder for all del ikke å se på en operasjon bare en gang. Et godt resultat analyserer en handling gjort flere ganger og identifiserer mønster. Først når du har disse "naturlige mønstrene" på plass kan du emulere naturlig musbevegelse.

 

så må du se på hovedtrekkene med prosessen. Bevegelsen går som regel i et mønster, men mønstret avviker litt hver gang. Ergo må du ha ikke et start og et endepunkt for en bevegelse men et start og et ende område. Samtidig så har bevegelsen, som ofte går i en bue, et bestemt avvik fra et gjennomsnitt og du må avvike fra gjennomsnittet også.

 

 

Jeg kan forestille meg at endepunktene kan finnes ved å undersøke hva som klikkes på, og hvordan disse klikkene fordeler seg (normalfordeling, ville jeg tro). Hva angår startpunktene - Er ikke startpunktene for hver bevegelse den posisjonen musen har før bevegelsen starter?

 

"Et godt resultat analyserer en handling gjort flere ganger og identifiserer mønster" <-- Det er det med å identifisere et mønster jeg ikke er helt sikker på hvordan en går frem med.

 

"Samtidig så har bevegelsen, som ofte går i en bue, et bestemt avvik fra et gjennomsnitt og du må avvike fra gjennomsnittet også."

 

En må jo altså på en eller annen måte finne dette gjennomsnittet. En kan bruke regresjon/polynomer til å finne en bue som passer "over" musebevegelsene, men hvordan uttrykker man de små variasjonene som menneskelige musebevegelser har?

yK32Y.png

Endret av Yumekui
Lenke til kommentar

Hva angår startpunktene - Er ikke startpunktene for hver bevegelse den posisjonen musen har før bevegelsen starter?

En musoperasjon har et startpunkt og et sluttpunkt, men i mellom disse kan du ha flere musebevegelser. Altså går du ikke alltid rett fra det du holder på med og rett mot målet. Det er ikke naturlig å alltid huske hvor muspekeren er og vite nøyaktig hvilken vei man skal i det man starter musoperasjonen.

 

Hvis målet er å lure mennesker så må musebevegelsene være alt annet enn rett fra og til.

Lenke til kommentar

Jeg kan se at rekkefølgen på handlingene (Og "pausehandlinger") har mye å si.

 

Problemet med hvordan selve bevegelsene kan representeres gjenstår fremdeles. En kan ta opp mange ulike bevegelser, men hvordan finner man en matematisk beskrivelse av bevegelsene som man kan variere?

Endret av Yumekui
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...