Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Algorytm oceny podobieństwa - rozważania teoretyczne w dowolnym języku

leburaque 27 Maj 2012 20:03 933 1
  • #1 27 Maj 2012 20:03
    leburaque
    Poziom 17  

    Witam.

    W pracy badawczej trafiłem na problem w ocenie pracy osoby badanej w laboratorium. Postaram się opisać możliwie szczegółowo sam problem, proszę o pomoc w wykombinowaniu algorytmu - raczej w pseudokodzie, albo schemacie blokowym. Chodzi mi o pomysł, a nie o gotowca.

    1) Co badamy? Ludzi przy pracy na komputerze. Test jest tak skonstruowany, że badany widzi na ekranie komputera dwa okręgi. Wielkością jednego z nich może sterować myszką (powiększać i pomniejszać promień). Drugi tak samo obsługuje komputer. Zawsze trwa to 7 minut, jako wynik badania otrzymywany jest plik tekstowy z zapisem długości promieni "człowieka" i "komputera" w tempie 60 klatek na sekundę.

    Algorytm oceny podobieństwa - rozważania teoretyczne w dowolnym języku

    1a) Załączam plik wyników w postaci pliku tekstowego. Lewy rząd to promienie okręgów człowieka, prawy komputera. Tutaj na początku człowiek ruszył myszką i znieruchomiał, komputer z pewnym prawdopodobieństwem zmienia okręgi.

    2) Zbadanie podobieństwa jest proste, jeśli komputer reaguje od razu. Jeśli
    promien_czlowieka - promien_komputera < wybrany_zakres_podobienstwa wówczas klatka animacji jest podobna, w przeciwnym razie niepodobna. Dzięki temu można od razu policzyć jak duży procent ruchów komputera był podobny do człowieka.

    3) Niestety w rzeczywistym świecie nie jest to takie proste. Aby człowiek nie widział, że jest naśladowany komputer losowo opóźnia swoją reakcję na ruch badanego (do 3 sekund, czyli 180 klatek animacji). Ponadto badani nie wiedzą, że są naśladowani, więc próbują ten ruch sami z siebie naśladować, goniąc swój ogon. I wreszcie - komputer co chwile losuje podobieństwo w zakresie np. 0-70%, albo 70-90%. Jak zbadać, czy człowiek i komputer byli podobni?

    4) Sam wykombinowałem trzy algorytmy:
    a) Dla każdej klatki zapisu "człowieka" sprawdzić najbliższe 180 klatek komputera, czy akurat są one w ustalonym zakresie podobieństwa i wówczas oznaczać klatkę jako podobną/niepodobną.
    b) Uśrednić zapis klatek, tzn. uśredniać 60 klatek (1 sekundę) i dopiero takie dwie listy klatek porównywać.
    c) Pozostawić 60 klatek na sekundę, ale każdą klatkę przepisać uśredniając otoczenie np. 180 klatek i dopiero tak gęste dwie listy, ale uśrednione porównywać.

    5) Czy któryś z tych algorytmów jest w stanie mierzyć podobieństwa w sposób obiektywny?

    Bardzo proszę o wskazówki. Dziękuję z góry za każdą uwagę.

    0 1
  • #2 27 Maj 2012 21:34
    leburaque
    Poziom 17  

    Może prościej, bez zbędnego zaciemniania. Oto wykres ruchów człowieka i komputera:

    Algorytm oceny podobieństwa - rozważania teoretyczne w dowolnym języku

    Jaki algorytm wykorzystać do porównania tych dwóch wykresów?

    Na pierwszy rzut oka widać, że pracują identycznie. Ale wyprowadzenie różnicy między nimi (y2-y1) wcale nie pokazuje podobieństwa:

    Algorytm oceny podobieństwa - rozważania teoretyczne w dowolnym języku

    Jak takie wykresy się porównuje?

    0