Skocz do zawartości

Motion Capture


mr.funky

Rekomendowane odpowiedzi

Witam,

 

potrzebuję zarejestrować i zmierzyć ruch dwóch sześciennych obiektów (10 x 10 x 10 cm) w przestrzeni trójwymiarowej. Przestrzeń będzie ograniczona do wymiarów ok. 1,5 x 1,5 x 1,5 m. Zależy mi na dokładności do ok. 1 mm.

 

Wymyśliłem, że najlepszym sposobem byłoby motion capture - w rogach "klatki" kamery, a na obiektach znaczniki (na każdej ścianie jeden). Zastanawiam się tylko na ile realne jest zmontowanie takiego systemu w warunkach domowych. Wiem, że istnieją gotowe zestawy ale są one dość drogie. Nie mam wygórowanych wymagań, być może zatem istnieje jakiś relatywnie tani sposób? Bądź inny dający podobny efekt. Podkreślam, że nie chodzi tu o animacje jako taką, a o zmierzenie ruchu w 3 wymiarach do projektu inżynieryjnego.

 

Dzięki i wesołych świąt!

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 8
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Kurde złożony temat :)

W domowych warunkach to jedyne co mi przychodzi do głowy to:

 

stawiasz kamerę w ściśle określonej odległości od centrum mierzonego pola i ustawiasz ją idealnie poziomo. Następnie stawiasz sześcian 10x10x10 i trackujesz rogi najbliższej ściany (najbliższa ściana będzie miała zawsze największe pole powierzchni więc malujesz sześcianowi każdą ścianę na inny kolor żeby się odróżniały)

 

znając dokładnie wymiary sześcianu (plus pewność że to sześcian), długość ogniskowej, rozmiar sensora i położenie kamery możesz sobie bardzo dokładnie określić położenie sześcianu w przestrzeni na podstawie obrazu z nawet jednej kamery.

Odnośnik do komentarza
Udostępnij na innych stronach

'Zależy mi na dokładności do ok. 1 mm.'

Nie wiem jakim sprzętem dysponujesz ale wykonanie takich pomiarów w domowych warunkach jest dość trudne. Sam robiłem na projekt inżynierski zawierający pomiar przemieszczeń punktów na płaszczyźnie 3d o powierzchni ok.1m^2. Użyłem do tego 2 aparatów canon 550d z jednakowymi obiektywami. Mimo dużej rozdzielczości 18Mpx błąd 1 piksela powodował widoczne różnice w wynikach. Do tego dochodziły takie problemy jak: zniekształcenia obiektywu, szum wynikający z niedostatecznej ilości światła, motion blur, brak ostrości na wszystkich elementach (zbyt niska przesłona) itp. Opisz na czym ma polegać twoje doświadczenie.

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuję za odpowiedzi.

 

Obowiązuje mnie umowa o poufności więc nie mogę powiedzieć za wiele. Jedyne co jest istotne to fakt, iż obiekty faktycznie będą poruszały się w 3 wymiarach - możemy sobie więc wyobrazić, że lewitują w zamkniętej przestrzeni:) Zależy mi na rejestracji każdego rodzaju ruchu, a więc nie tylko przesunięć ale także obrotów. Zaznaczam, że ruchy te nie będą następowały w bardzo dynamiczny sposób. Chcę mieć możliwość późniejszej analizy tego co zaszło oraz być pewnym dokładności danych.

 

Podejrzewam, że prawdziwy sprzęt do motion capture można wypożyczyć z jakiegoś studia filmowego. Co prawda jeszcze nigdzie nie dzwoniłem więc są to tylko moje przypuszczenia.. Mimo to chciałbym poznać inne, tańsze możliwości.

Odnośnik do komentarza
Udostępnij na innych stronach

Mam wątpliwości czy mocap sprawdzi się przy takiej skali dokładności. Ale to musiałby wypowiedzieć się ktoś kto pracuje z takim sprzętem.

Robiąc na szybko obliczenia wychodzi, że mając rozdzielczość fullHD (1920x1080) musimy objąć pole 1500mm x 1500mm. Od razu widać, że przyjęty błąd pomiaru do 1mm to za mało. Możesz to sprawdzić samemu fotografując papier milimetrowy o powierzchni 1m^2. Będziesz widział jak wymagające jest to zadanie.

 

ile FPS'ów potrzebujesz do miarodajnych pomiarów? Przy 1fps możesz użyć aparatów wyzwalanych pilotem/fotocelą co daje spore możliwości ze względu na rozdzielczość i użycie lamp błyskowych.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak wpiszesz w google "motion capture open source" wyskoczy kilka propozycji, ale nie wiem czy się nadaje, nie używałam.

 

Robiąc na szybko obliczenia wychodzi, że mając rozdzielczość fullHD (1920x1080) musimy objąć pole 1500mm x 1500mm. Od razu widać, że przyjęty błąd pomiaru do 1mm to za mało

Ten rachunek taki prosty nie jest. Programowałam coś tego typu na prace dyplomową (w 2D co prawda), i można było spokojnie zejść do dokładności ok. 1/10 piksla, a nawet dalej. To się nazywa subpixel interpolation. Na motion capture się nie znam, ale myślę że algorytmy mogą być podobne?

Operuje się na ciągłej funkcji - interopolacji między pikslami, zamiast na pojedynczych pikslach.

Podstawą jest dobrze dopasowana optyka i ostrość, brzeg obiektu nie powinien się "rozmywać" przez więcej niż jakies 2-3 piksle. Tu nie wiem jak to będzie jeśli obiekt ucieknie w tył poza płaszczyznę ostrości, może być problem, u mnie ruszał się tylko w dwóch osiach.

Dodatkowo można podwyższyć dokładność śledząc kilka punktów na każdej ściance sześcianu. Każdy marker można śledzić w kilku miejscach i uśredniać (ja śledziłam kółka od 4 stron, czyli uśredniałam po 2 kanty na każdą oś).

Na szum pomaga transformacja gaussa.

Dodatkowo można interpolować w czasie, jeśli ruch jest powolny.

 

Mieliśmy do tego dosyć słabą kamerę (720px szerokości), i maksymalna dokładność to były 2 mikrometry na szerokości 30mm (czyli ok. 1/20 piksla, ale to przy całkiem optymalnych warunkach, standartem było raczej 1/10).

Ironia była taka, że później wypróbowaliśmy na lepszej kamerze (2000px szerokości), i tu już się nie dało, nie było szans nawet na dokładność 1px, ponieważ nie szło wyostrzyć kantów do tych 2-3 piksli (optyka za słaba, i piksle na sensorze za małe). Słabsza kamera mierzyła dokładniej.

Dlatego przy wyborze kamery zwróć uwagę na optykę, wielkością sensora i rozdzielczość samego sensora. Nic ci nie da kamera 18Mpx, jeśli optyka rozmywa kant po 20 pikslach (w filmach to nie przeszkadza, ale w pomiarach bardzo), to już lepiej większy sensor z mniejszą rozdzielczością (wyjdzie też taniej).

Edytowane przez Ania
Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem jak miałby latać ten sześcian i ile mialo by ich trakowane na raz. Domowym sposobem będzie ciężko uzyskać taką dokładność. Najprosciej było by zrobić zwykły obiekt tracking w typowym do trakowania sofcie, np. PFtracku, raczej watpie ze uzyskasz dokladnosc co do milimetra na jakimkolwiek amatorskim sprzecie. Druga opcją było by posiadanie najlepiej 4 kamer i też pftrak wystarczy do ogarniecia punktow w przestrzeni. Wtedy zamiast sześciana robisz np przekątną między rogami (minimum i max), wtedy masz dwa punkty w przestrzeni do strakowania, to wystarczy aby określić sześcian w przestrzeni. Wtedy aby określić punkt w przestrzeni musi on być widoczny przynajmniej w 2 kamerach. Taką przekątną możesz zbudować z jakichś prostych diod żeby dobrze były widoczne przy nagrywaniu. Z praktyki mogę ci powiedzieć, że to zadziała ale zapomnij o super dokładności nawet pewnie najlepsze mocpy za grube$ nie maja takiej dokladnosci.

 

Poczytaj sobie o obiekt trackingu w PFtracku, buju i innych tym podobnych. To bedzie najprostsza i najskuteczniejsza pewnie metoda i najtansza do wykonania, bo wystarczy dobra 1 kamera.

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuję wam bardzo za odpowiedzi :)

 

Na raz będą trackowane dwa sześciany. Szczerze mówiąc nie sądziłem, że będzie to aż tak skomplikowane. Czy spotkaliście się może z jakimiś tutorialami odpowiadającymi temu konkretnemu przypadkowi? Jest dość nietypowy bo nie chodzi w nim o efekty specjalne, a jedynie formę zarejestrowania ruchu..

 

Szczerze to wyobrażałem to sobie w taki sposób - w rogach klatki mam kamery, na kostkach markery. Te się ruszają, a w kompie na żywo rejestruje się ruch. W 3ds punkty są podlinkowane do boxów o tych samych wymiarach co oryginały. Po wszystkim mogę sobie odtwarzać w nieskończoność całą sekwencję, obracać widok i mierzyć przesunięcia, kąty itd. Myślicie, że da radę coś takiego osiągnąć? Jeśli nie na amatorskim sprzęcie to jak sądzicie - ile kosztowałoby wypożyczenie czegoś takiego na kilka dni? Wystarczyłby mi szacunkowy rząd wielkości.. (większość firm ma już wolne więc konkretów dowiem się dopiero po świętach).

 

Dzięki raz jeszcze!

Odnośnik do komentarza
Udostępnij na innych stronach

Witam

 

Nie sądzę, aby oprogramowanie i hardware dostępny na rynku pozwoliło Panu na uzyskanie satysfakcjonującego efektu (np. pseye w http://www.ipisoft.com)

https://www.youtube.com/watch?v=oLjWdxa7pJw

 

Pewnym rozwiązaniem może będzie użycie Hydry...

 

Oczywiście zapraszam Pana do Warszawy do Studia Motion Capture http://www.mocap.pl Zrobimy to od ręki. Myślę, że nie zajęłoby nam to więcej jak 4 godziny sesji. Ponieważ projekt jest inżynieryjny, a Pan pochodzi z mojego rodzinnego miasta... przygotujemy dla Pana specjalną ofertę ;) W razie zainteresowania proszę o kontakt na dane z naszej strony.

 

Pozdrawiamy

http://www.mocap.pl

http://www.facebook.com/mocapPL

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności