Program umożliwiający wykrywanie w filmie pieszych, którzy są zliczani i zaznaczani.
Wykonany w frameworku Qt 5.12 w języku C++ z użyciem biblioteki OpenCV 3.6.4. Qt zostało wykorzystane przede wszystkim do GUI.
Zasada działania wykrywania i zliczania ludzi:
- Przy pomocy BackgroundSubtractoraMOG2 z obrazu źródłowego wycinane jest tło (cienie są z obrazu wycinane).
- Obraz jest binaryzowany - threshold.
- Na obrazie dokonywana jest operacja morfologicznego otwarcia.
- W obrazie znajdowane są kontury.
- Każdy kontur jest klasyfikowany jako człowiek jeśli ma odpowiedni rozmiar - ustalone są w programie wartości minimalne i maksymalne powierzchni (metoda contourArea).
- Otrzymani ludzie są porównywani z wynikami z poprzedniej klatki - program sprawdza czy to ta sama osoba, czy też pojawiła się nowa. Odpowiednio nowe osoby są zaktualizowane albo dodawane. Jeśli osoba która była w poprzedniej klatce nie ma swojego odpowiednika w obecnej jest ona usuwana.
- Sprawdzenie czy osoba w obecnej klatce przekroczyła środek obrazka. Jeśli tak to odpowiednie liczniki są zaktualizowane.
- Rysowanie na obrazku wynikowym punktów i prostokątów oznaczających ludzi.
Program dobrze radzi sobie z wykrywaniem i zliczaniem ludzi w standardowych warunkach. Niestety w sytuacjach, w których odległości między ludźmi są bardzo małe albo gdy ludzie mają przy sobie wielkie gabarytowo przedmioty np. wózek, detekcja może być niedokładna.