Algorytm identyfikacji osób na nagraniu

0

Witam

Pracuję nad programem którego celem będzie wykrywanie na nagraniu wideo osób wałęsających się i tak:

  • wykorzystuję w tym celu C++ z OpenCV
  • użyłem już wbudowanej funkcji BackgroundSubtractorMOG2 w celu wykrywania poruszających się osób i działa to całkiem fajnie, obrysowuje mi na nagraniu wszystkie ruchome elementy
  • i teraz moje pytanie, otóż chciałbym jakoś rozróżniać te osoby, żebym mógł określić że ten pan to jest osoba 1, tamta pani to jest osoba 2 itd. w celu np żeby pana 1 obrysowywało innym kolorem niż resztę osób, mógłby ktoś coś zasugerować, czy jest jakaś metoda w OpenCV której bym mógł użyć?
    W załączniku dorzuciłem przykładowy screen z działania programu, wiem że nie jest jeszcze idealny i dzieli mi np jedną osobę ale pracuję nad tym, chcę żeby każde takie obrysowane czerwone pole określało mi jako coś osobnego do czego się mogę później odnieść
0

Jest to bardzo ciezka sprawa. Algorytm probowalbym pisac od poczatku samemu, na necie znajdziesz nawet po polsku sporo informacji na ten temat (prosty sposob to wykrywanie pikseli ktore mocno sie zmieniaja na poszczegolnych klatkach wideo).
Jezeli juz bedziesz mial dostep do napisanego przez Ciebie algorytmu pokazywania pikseli poszczegolnych osob ktore sie poruyszaja (mozna to zrobic na prawde fajnie) poszukiwalbym wielkszych obiektow (sprawdzenie empiryczne ile mniej wiecej postac ludzka zajmuje na zdjeciu).
Samo wykrywanie ludzi robilbym tylko za pomocą analizy pikseli - powinno to byc zrobione za pomocą sieci neuronowych ale na nich sie nie znam poza tym byloby to mega skomplikowane. Jezeli mialbym robic cos takiego to (zaleznie od tego tak na prawde czy ma pamietac tez osoby ktore juz wyszly poza kadr czy tylko rozpoznawac ze ten typ co byl na poprzedniej klatce, ktory ruszyl sie osiem pikseli w lewo to ten sam):

  • probowalbym liczyc srednią na kazdym kanale (R, G, B, a moze i dodatkowo kanal L z przeliczenia RGB na HSL - moze nie ma sensu? ) z jednego poruszajacego sie obiektu (nie wszystkich pikseli co sie zmienily a tylko pikseli ktore naleza do czlowieka ktory chodzi - jednego z ilus tam na zdjeciu)
  • te policzone srednie musialyby miec jakies zakresy - tylko te zakresy bralbym jako jedyny wskaźnik czy to ta osoba czy inna.

To podejscie dawaloby bledy przy duzej ilosci ludzi na obrazku, dawaloby bledy jezeli mielibysmy zapamietac osobe ktora wyszla z kadru i potem wrocila (zwlaszcza przy zmieniajacym sie oswietleniu).

Pozdrawiam,
Patryk

PS. temat bardzo ciekawy, nie jestem wyksztalcony w tym temacie ale cos tam czytalem i w przerwach w pracy chetnie bym pomogl - moje gg to 2975390.

1 użytkowników online, w tym zalogowanych: 0, gości: 1