olaf Napisano 20 Grudzień 2013 Napisano 20 Grudzień 2013 (edytowane) Hej, nie wiedziałem w jakim dziale to umiescić ale ponieważ postanowiłem sie za to zabrać, to też chcę upublicznić prace, by mieć wsparcie w krytyce i uwagach społeczności. Jeżeli znacie podobne rozwiązania to chętnie o nich usłyszę. Jak macie pytania albo sugestie, to też z miłą chęcią o tym pogadam. co to jest theMask: wsparcie dla animatorów 2d pomagające budować 'motion capture' dla obiektów 2d. Podstawowym założeniem jest wzmocnienie produkcji 2d o możliwości wykorzystania płynnych animacji twarzy z naciskiem na aktorstwo i płynne recytowanie treści. jak będzie działał theMask: zasada jest prosta-zapisane dane będzie można użyć do generowania w czasie rzeczywistym animacji twarzy postaci (wystarczy odpowiednio zbudowana twarz cartoonka). Dane będą przygotowane i oczyszczone wcześniej w edytorze z użyciem nagrania video. timeline: wersja beta za ok 7miesięcy, cały silnik planuję ukończyć prze 2015 rokiem. cel: -podniesienie jakości 2D do poziomu płynności produkcji 3D bez potrzeby ponoszenia kosztów produkcji o dział 3D. -Odblokowanie możliwości tworzenia wiarygodnych dialogów dla animacji 2D z poziomem wiarygodności dubbingowanej postaci 3D. -Odblokowanie segmentu gry aktorskiej dla produkcji mobilnych na poziomie kinowych produkcji 3D Mam nadzieje, że nie opisałem tego zbyt górnolotnie - to taki dodatek do mojej produkcji gier, chciałem wykonać coś nowego jako programista, co będzie jednocześnie skokiem jakościowym dla produktów mojej firmy z jednoczesnym utrzymaniem kosztów/timeline produkcji na poziomie indie developera. Oczywiście jeżeli ktokolwiek uzna to za interesujące będzie miał pełen dostęp do technologii od wypuszczenia bety. Jak komuś nie chciało się czytać, tu ma wizualną interpertację tekstu: Edytowane 7 Styczeń 2014 przez olaf
natas Napisano 20 Grudzień 2013 Napisano 20 Grudzień 2013 Świetny pomysł i trzymam kciuki za ukończenie. Kiedyś myślałem by spróbować się pobawić tak by strakować każdy punkt w jakimś afterze czy blenderze no ale wiadomo, że nie było by to w RT więc Twoje rozwiązanie zdaje się być dużo lepsze w związku z czym miał bym kilka pytań. Czy to będzie miało postać wtyczki do konkretnego softu czy jako osobna aplikacja? Czy była by możliwość przeniesienia tego do programów 3d oczywiście nie chodzi mi o to by byłe tam 3 osie x,y,z tylko czy tak stworzone kontrolery można by przenieść do 3d? Czy po wszystkich beta testach planujesz to wypuścić komercyjnie? Na razie to tyle ;)
olaf Napisano 20 Grudzień 2013 Autor Napisano 20 Grudzień 2013 Dzięki za koment, tak naprawdę to spodziewam się, ze ktoś mnie oświeci, że takich roziwazań są setki, bo w koncu mamy 2013. Ale przy założeniu, ze moje rozwiązanie będzie z jakiegoś powodu na tyle wygodne, by przydało się innym to na początek planuję przygotować plik wynikowy tak, by nadawał się do szybkiej implementacji w dowolnym środowisku w nadziei, że ktoś zrobi to za mnie :D Myślę, że będzie to dosyć proste do wtłoczenia w siatkę 3D Komercja - na razie nie. Jakby spojrzeć 'outside the box' to tylko moze 1% tego co można zrobić jeszcze z grafiką 2D, by była tańsza i efektywniejsza więc kasa to nie jest coś o czym warto teraz myśleć.
olaf Napisano 21 Grudzień 2013 Autor Napisano 21 Grudzień 2013 (edytowane) ok poza gadaniem trzeba troche powklejać pracy. Zawsze mi sie dobrze pracuje w piątkową noc, więc udało się przebrnąc przez pierwszy etap pracy - move detection. Plan pracy mam następujący: move detection - facial detection - facial tracking - facial recognition. Po tym dopiero zacznę pracę nad właściwym trackowaniem. Jak widać nie powinno byc problemu by z tego kształtu wytrackować twarz. Co prawda moglbym sie skupić tylko na facial tracking, ale wtedy silnik byłby zbyt skromny i mało elastyczny. Facial recognition nie wyglada na specjalnie skomplikowane zadanie. Będę musiał kupić pozniej lepsza kamerkę, obecnie łapane w 640x480 30fps kamerką z laptopa przy fatalnym oświetleniu. Na razie radze sobie z ziarnem ale pozniej na pewno będę musiał poprawiać oświetlenie i wymienić sprzęt. etap trackowania powinien się zakonczyc czyms takim (choc pewnie bedzie to coś znaaaacznie słabszego): Edytowane 21 Grudzień 2013 przez olaf
Tomasz_87 Napisano 21 Grudzień 2013 Napisano 21 Grudzień 2013 Komercja - na razie nie. Jakby spojrzeć 'outside the box' to tylko moze 1% tego co można zrobić jeszcze z grafiką 2D, by była tańsza i efektywniejsza więc kasa to nie jest coś o czym warto teraz myśleć. Myśl o komercjalizacji juz teraz - taka moja rada, bo sie mozesz zdziwić ile kasy może przelecieć ci obok nosa jeśli okaze sie ze to co robisz jest bardzo przydatne dla innych.
olaf Napisano 21 Grudzień 2013 Autor Napisano 21 Grudzień 2013 tym nie zaprzątam sobie głowy, czas na danie czegoś od siebie. Poza tym jak sie zorientowałem jak moge jeszcze wykorzystać silnik oparty na widmie (a nie na patternie) to aż nie moge zasnąć więc o kase sie nie martwię, a tymczasem dokończę sobie gierkę ;)
SYmek Napisano 23 Grudzień 2013 Napisano 23 Grudzień 2013 Ciekawy projekt. O ile rozumiem temat, najtrudniejsza będzie interpretacja danych motion capture w "języku" - czyli przestrzeni - deformacji twarzy cartoon. Jest to chyba trudność większości tego typu projektów - zaczynając od systemów do wspomagania realistycznych animacji twarzy. Jeśli masz na to patent, nic Cię nie zatrzyma :)
olaf Napisano 23 Grudzień 2013 Autor Napisano 23 Grudzień 2013 na chwilę obecną mam kilka koncepcji, którymi się podzielę, bo moze ktoś będzie miał jakieś sugeste. 1. doszedłem do wniosku, ze zrobię wszystko na prostej kamerze HD z lapka. Inaczej nie mialoby to sensu. Chcę by grafik nie musiał inwestować kasy w sprzęt, by stać się animatorem, o to chodzi przecież w technologii. Poza tym niezbyt zamożni ludzie mogliby tak dorabiać pracując zdalnie. Po prostu walnę jakieś suwaki do kalibracji i jak defaultowo nie zatrybi (mogę wykryć dosyć prosto zakłócenia widma) to wyświetlę tutorial do suwaków. 2. Ponieważ samo zadanie nie wydaje się tak skomplikowane jak napisanie oprogramowania do montażu scen (takiego przygotowującego zgrzebną sekwencję i wstępnie 'odszumiającą' wynik) pomyślałem, by produkcję sesji FC (facial capture) wykonać w takich krokach. -najpierw nagrywamy video audio w naturalny sposób jako preview -następnie wycinamy sobie (w tym właśnie programie) fragment sceny jaka będzie nas interesowała -software rozpoczyna odtwarzanie sceny z audio 2x wolniejszym, tak by każda 30fps kamerka mogła zarejestrować bardziej płynną sekwencję - w przypadku twarzy jest to do wykonania przez operatora - w motion capture byłoby pewnie trudnejsze ;) -oglądamy podgląd takiej sceny z podwójną prędkością, by zobaczyć czy nie przesadziliśmy z mikroekspresjami (zakładam, ze operator będzie musiał zrobić za pierwszym razem kilka prób, by się tego nauczyć) -video '60fps' jest przetwarzane na ruch cartoonka -operator ma timeline i krzywe ekspresji (czyli np. moze w chwili podnoszenia brwi podbić hiperekspresje w wyniku czego brwi postaci podniosą się 4x wyżej tworzac naturalnie cartoonkowy przerysowany facial expression), pozwoli to też z jednego setupu tworzyc rozne warianty dopasowane do charakteru postaci (moze z czasem powstanie baza takich sekwencji do podpięcia bez tworzenia wlasnej sesji). @Symek - tak to będzie w zasadzie papierek lakmusowy dla przydatności całej aplikacji więc faktycznie jest to coś co może być najtrudniejsze. Mam olbrzymią nadzieję, że krzywe ekspresji załatwią sprawę, plan B jest taki, że na%^$bie suwaków i będę się tydzień wyginał do kamery budując optymalny preset, który pozniej user w mniejszym stopniu zmodyfikuje. I nie pytajcie o kod, jestem zbyt leniwy i nie znam matmy więc stosuje 'brute force'.
adek Napisano 23 Grudzień 2013 Napisano 23 Grudzień 2013 Tylko faktycznie, czy coś takiego juz nie istnieje. Naprawdę szukałeś? After Effects ma mocapa, którego można uzyć z tego co widziałem do 2D. [video=youtube_share;Y3uVCRKf0n8]
olaf Napisano 23 Grudzień 2013 Autor Napisano 23 Grudzień 2013 nie szukałem, bo jakby było, to bym wiedział, bo wszystkie animacje dookoła wyglądałyby inaczej ;) ale faktycznie AE ma bardzo fajne narzędzie: tylko problem w tym, że zawsze czegoś brakuje w takim rozwiązaniu. Mi potrzebne są krzywe ekspresji, bo szukam raczej czegoś takiego: dodatkowo w otwartym formacie pozwalającym generować animację w grze z danych zamiast z klatek w czasie rzeczywistym, plus łączyć kolejne sekwencje zwyczajnie dodając je do timeline, z taką łatwością z jaką łączy się ze sobą sekwencje dźwięków. A na koniec - dzięki presetom (wspomnianym krzywym ekpresji) mieć bazę najpopularniejszych gestów, ktore mozna dopasować do każdej postaci w przyszłości. Np. jeżeli zrobię klucze dla ust, to moja postać może żonglować własnymi ustami i rozglądać się na boki normalnie oczami, a całość powinna nadal działać poprawnie jako recytowana przez aktora kwestia z jednego obiektu. Albo zrobić chór podobnych postaci z różnymi wartościami eksprecji i kazdy z jednego presetu i jednego obiektu nieco inaczej będzie się zachowywał śpiewając ten sam refren. I takie tam. Nie wspominajac o fakcie, ze mozna ten sam preset uzyc dla postaci z profilu, półprofilu i stojącej bokiem. Dlatego na początku napisałem, że gdyby coś takiego było, to by animacje - głownie - domorosłych animatorów wyglądały inaczej.
SYmek Napisano 24 Grudzień 2013 Napisano 24 Grudzień 2013 Trudno uwierzyć, ze trackery przepypiete do jakiegokolwiek rigu zaowocują dobrą jakością animacji. Im bardziej cartoonowa będzie w zamiarze, tym trudniej będzie ją uzyskać. Te amatorskie mocapy dla AFX są tego najlepszym przykładem. Z punktu widzenia algorytmu to, czy jest to animacja 2d czy 3d nie ma właściwie znaczenia (może dla trackowania), głównym komponentem jest mapowanie animacji wejściowej na docelowe blenshapy - te setki suwaków, o których mówi Olaf. Tylko, że suwaków musiałoby być conajmniej tyle ile trackerów * kontrolki rigu * wymiary. Może w jakiejś uproszczonej wersji to sie uda, ale czy warte będzie zachodu? Chyba, ze dla rozrywki. Zobacz faceshift.com - cały myk tego oprogramowania nie polega na trackowaniu, ale na mapowaniu jednych danych na drugie - a to obawiam się jest ciężka algebra liniowa, interpolacja rozproszonych danych, przemiarowywanie funkcji i takie tam... :) , w faceshift ma sie to za kilkaset euro rocznie z wejściem realtime do unity na przykład... Poprzeczka stoi wysoko :)
olaf Napisano 24 Grudzień 2013 Autor Napisano 24 Grudzień 2013 Faktycznie otrzymanie w miare czystego modelu ruchów, dodatkowo na tyle czułego by dało się skalować ekspresję będzie trudne więc podczas pracy nad innymi rzeczami myślałem o rozwiązaniu. Wstępnie wymyśliłem coś takiego - będę to jeszcze dopracowywał - jak mapy elastyczności. Coś jak specular map w modelu 3D. Poniżej wstępnie wymalowana mapa dla twarzy ruszającej się w jednej osi (zielone) i w obu osiach (czerwone). W miarę produkcji będę dopracowywał detale tej mapy (8bitow dla kazdej wartosci). Dzięki temu skrypt będzie wiedział gdzie może oczekiwać punktu w następnej klatce, co pozwoli mu interpolować rozmazane/zgubione punkty. Dzieki temu będę musiał trackować dokładnie jedynie np. dwa punkty na całej twarzy, reszta nawet błędnie odczytana nadal pozostanie w granicy wiarygodności i zaoszczędzi mi kilkudziesięciu suwaków. To jest model, ktory bedzie dojrzewał, to czy jest juz w pełni gotowy pokaze próbny skrypt, ktory wygeneruje przypadkowy setup twarzy bez trackowania - cała twarz powinna wygladac nadal wiarygodnie. Podobnie w sytuacji, gdy skrypt zgubi np. 80% punktów ale wytrakuje poprawnie oczy i 20% punktów, powinno się udać wiaygodne odtworzenie mimiki uchwyconej kamerą. Oczywiscie nie bede tego rozpisywał na wzorce tylko - jako grafik - na dane wizualne. Sorry ze pokazuje to na takiej małpiej mordzie, ale tylko taką twarzą dysponuję ;)
olaf Napisano 24 Grudzień 2013 Autor Napisano 24 Grudzień 2013 nic tak nie katatlizuje procesu myslenia jak rodzinne spotkania.
blukazs Napisano 5 Styczeń 2014 Napisano 5 Styczeń 2014 Może okazać się pomocne/inspirujące :) http://www.faceshift.com/?portfolio=what-an-amazing-rig
olaf Napisano 6 Styczeń 2014 Autor Napisano 6 Styczeń 2014 dzięki man, na pewno się przyda jak bede ruszał do inwestorów z produktem. Oglądałem za namową kumpla możliwości OpenCV (open sourcowa biblioteka do trakowania) ale jednak nie współgra to z moją ideą. Na chwilę obecną mam w xMind rozpisane sporo rzeczy, głownie założeń edytora, bo styczeń jest miesiącem premier gier mobilnych, ale postanowienie noworoczne mam, by wypuścić dwa programy uzytkowe bazujące na tym silniku. Ten drugi zapowiada się masywnie i pewnie trafi na kickstarter ale muszę zdobyć know-how podczas pracy nad pierwszym ;)
blukazs Napisano 6 Styczeń 2014 Napisano 6 Styczeń 2014 :D W sumie fajnie było by coś potestować, przydałoby mi się jakieś takie 2D na 3D twarzy jak to było w Backwater Gospel do dyplomu. Życzę powodzenia i liczę na zniżkę... :D
olaf Napisano 7 Styczeń 2014 Autor Napisano 7 Styczeń 2014 nie no, soft będzie za free, mysle ze import elementów twarzy z plików png i pozniejszy eksport metadanych lub sekwencji png jest do wykonania - adobe air sobie poradzi z tym spokojnie i pewnie na początek takie coś będzie dostępne. Inwestorzy potrzebni będą pozniej mam nadzieje, ze uda się w 2015 zrealizowac wieksze plany. Tymczasem niewielkim nakładem godzin, których ciągle mało, zrobiłem generowanie widma i trakowanie twarzy. Ten zoptymalizowany obszar (dolny obrazek, czerwony obszar) będzie finalnym obiektem badania skryptu. Nie wiem czy użyję kaskad (Haar Cascade) czy czegoś indywidualnego. Jak widać na obrazkach A i B mam marker-klip, który będę dopasowywał do obszaru. Pomoże mi złapać skalę twarzy, rotację (w razie jakby ktoś miał krzywy ryj) i inne rzeczy. Niebieskie punkty będą szukały oczu, reszta będzie pomagała interpolować możliwe położenia naszej twarzy, by szukanie oczu było wydajniejsze - szczególnie gdy osoba będzie przypadkowo przybliżać/oddalać głowę od obiektywu. Wiem, że to banalne, każdy 1-szo roczniak z polibudy zrobiłby to w matlabie, ale generalnie początek jest banalny, co nie zmienia faktu, że muszę go mieć zanim pójdę dalej. I najlepiej by nie zabijał kompa durnymi obliczeniami. Myślę, że wystarczy ok 16tys iteracji/klatkę by wytrakować wszytko czego potrzebuje w twarzy ze sporą dokładnością. Kazdy kolejny punkt dzieki mapom elastyczności znajdę w pewnie 64 krokach.
SUPER_OkO Napisano 8 Styczeń 2014 Napisano 8 Styczeń 2014 Ponieważ siedzę w temacie już długo to dam ci trochę referencji do softów, które już istnieją i działają. Jakbyś poszperał trochę na youtubie to znalazł byś masę tego. Od wielu lat już różne firmy probują rozwijać bez markerowe rozwiązania. Parę lat wstecz mi się udało zrobić mały skrypcik pod maxem do animacji twarzy. Działał właśnie z openCV w realtimie. Jedyny minus był taki, że przy dużej ilości markerów max i jego jedno wątkowość, w połączeniu z moim pseudo algorytmem nie wytrzymywał obciążenia, gubiły się klatki i nie działało to super płynnie więc sobie odpusciłem i projekt czeka na lepsze czasy i trochę szerszą wiedzę. W twoim przypadku to jest bez znaczenia czy to jest pod animacje 2d czy 3d, wszystko się opiera o morphy i wartości 0 - 1. a tu popularne softy na czasie: http://facewaretech.com/products/software/ http://www.brekel.com/brekel-kinect-pro-face/ http://www.di-o-matic.com/products/Software/Maskarad/#page=overview faceshift ktoś podał u góry Powodzenia, będę ci kibicował.
olaf Napisano 8 Styczeń 2014 Autor Napisano 8 Styczeń 2014 dzieki, ze rzuciłeś swym super okiem w wątek ;) video z tych programów przejrzałem i dzieki za cynę. Faktycznie działają bardzo fajnie na szczęście/nieszczęście nie pokrywają się z moimi potrzebami i przeznaczeniem softu. Wczoraj rozpisałem się ale w nocy do głowy przyszedł mi pomysł lepszej optymalizacji. Widać to na video - niebieska otoczka. Teraz trakuję core twarzy i miejsce jej zanikania, co pozwala mi określić jak twarz się porusza, kiedy się np. przechyla i jak zmnienia się odległość od kamery. To pozwoli pewnie w tym mies wstępnie podpiąć cartoonka bez trakowania jeszcze punktów z czego w sumie jestem bardzo zadowolony, bo odpada cała masa obliczeń by ustalić te podstawowe stany. Są też suwaki, by aktor sobie dostosował otoczenie przed nagraniem.
olaf Napisano 28 Styczeń 2015 Autor Napisano 28 Styczeń 2015 ok miałem ostry zastój ale było to spowodowane brakami w skillu. Okazało się, ze potrzebuje czegoś znacznie wydajniejszego niż openCV, a wcześniej nie potrafiłem napisać takiej biblioteki. Teraz powoli sie za to zabieram, ale najpierw chcę mieć bibliotekę, bo mogę ją ładnie zmonetyzować (image recognition/AR), by wesprzec dalszy developement.
olaf Napisano 29 Styczeń 2015 Autor Napisano 29 Styczeń 2015 (edytowane) Ok ponizej prosty opis metody. Oczywiście to tylko syntetyczny przykład ale może ktoś zna już podobne rozwiązania i we pod jakim hasłem szukać cudzej wiedzy. Metoda na pewno nadaje się do rozpoznawania transformacji np. obrotu, estymowania kształtu obiektu (round/non round to banał, inne to już wyzsza matematyka), mogę też wywnioskować jaki obiekt jest statyczny, a jaki ruchomy więc powinno działać przy kluczowaniu bez greenscreena i inne pierdoły warte zagłębienia się. Na pewno badanie więcej niż 1piksela daje większe pole do popisu, ale chcę zacząć skromnie ;) Co ciekawe, metoda nadaje się do wszelkich algorytmów probabilistycznych - czy to estymowanie pozycji w bazie danych (redukuje zakres), kompresja pakietu danych, przewidywanie zachowań/detekcja anomalii, o image recognition nie ma co wspominać. Metoda nie wymaga kaskadowej analizy obrazu. Chciałbym więc to rozgryźć matematycznie dlatego wklejam zajawkę, może ktoś poratuje ciekawym linkiem/słowem kluczowym. Edytowane 30 Styczeń 2015 przez olaf
Imperator Napisano 30 Styczeń 2015 Napisano 30 Styczeń 2015 (edytowane) fajny projekcik :) moze te linki Ci się przydadzą :) http://blog.mashape.com/list-of-50-face-detection-recognition-apis/ impresive :) Displaced Dynamic Expression Regression for Real-time Facial Tracking and Animation http://gaps-zju.org/DDE/ http://www.fxguide.com/fxguidetv/fxguidetv-198-siggraph-asia-2014/ automatic acquisitions of high- fidelity facial performances using monocular videos Controllable High-Fidelity Facial Performance Transfer Facial Performance Enhancement Using Dynamic Shape Space Analysis http://facetracknoir.sourceforge.net/home/default.htm http://www.visagetechnologies.com/#&panel1-2 https://facerig.com/ http://www.tastenkunst.com/#/brf/download Edytowane 30 Styczeń 2015 przez Imperator
Rekomendowane odpowiedzi
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ę