Savant 0.2.4 przybywa z ulepszeniami funkcjonalności, rozszerzonymi przypadkami użycia i nie tylko

Nauczyli

ramowy Savant

Kilka tygodni temu dzielimy się tutaj na blogu trochę informacji nt Savant, czyli framework do analizy wideo co ułatwia wykorzystanie technologii NVIDIA DeepStream do rozwiązywania problemów związanych z uczeniem maszynowym. Powodem, dla którego o tym rozmawiamy, jest to, że niedawno ogłosił wydanie nowej wersji «Savant 0.2.4“, w którym zintegrowano nowe funkcje i rozszerzono przypadki użycia tego wspaniałego frameworka.

Osoby niezaznajomione z frameworkiem powinny o tym wiedzieć zajmuje się całą pracą z GStreamerem lub FFmpeg, co pozwala skupić się na tworzeniu zoptymalizowanych potoków danych wyjściowych przy użyciu składni deklaratywnej (YAML) i funkcji języka Python.

Nauczyli
Podobne artykuł:
Savant, framework do analizy wideo

Nauczyli ukrywa wszystkie elementy wewnętrzne Gstreamera przed deweloperem i zapewnia praktyczne narzędzia do wdrażania strumieniowych aplikacji AI w prawdziwym życiu. Wykorzystuje standardowy model Nvidia PeopleNet do wykrywania ludzi i ich twarzy a zwłaszcza w miejscach, w których obowiązują przepisy dotyczące prywatności, ramy umożliwiają śledzenie i zamazywanie twarzy.

Co nowego w Savant 0.2.4?

Jak wspomnieliśmy na początku, to nowe wydanie zawiera nowe funkcje, które rozszerzyły przypadki użycia ram i o których wspomina się, że na przykład teraz Savant może być wykorzystany do przewidywania wieku/płci, zademonstrowanie użycia YoloV5-Face, praca z niestandardowym modelem atrybutów, który przewiduje wiek i płeć, oraz transformacje zależne od GPU w oparciu o cechy twarzy przy użyciu OpenCV-CUDA i Pythona.

Innym przypadkiem użycia jest warunkowe kodowanie wideo, który demonstruje potok oparty na ramkach i kodujący strumień wideo tylko na żądanie (w przykładzie tylko wtedy, gdy model wykrywa obiekty); pokazuje, jak uniknąć marnowania zasobów obliczeniowych, gdy określony warunek zewnętrzny wymaga ramek.

Również teraz możliwość wykorzystania Savanta do obsługi wielu strumieni RTSP, Demonstrując prosty potok, który przetwarza dwa strumienie RTSP, a ponieważ Savant bardzo różni się od tego, czego oczekują użytkownicy w zakresie dynamicznego przetwarzania wątków, zaimplementowaliśmy prosty potok, który przetwarza wiele wątków jednocześnie, aby pokazać, jak to działa.

Ze strony dodanych nowych funkcji wyróżnia się warunkowe renderowanie i kodowanie w celu zmniejszenia ruchu i efektywnego wykorzystania zasobów CPU/GPU, a także nowy adapter źródłowy RTSP oparty na FFmpeg który działa znacznie lepiej niż GStreamer, gdy strumienie zawierają ramki B i nowy uniwersalny adapter oparty na FFmpeg, który może współpracować ze wszystkimi wejściami kompatybilnymi z FFmpeg.

Oprócz tego podkreślono, że zidentyfikowano błąd w implementacji funkcjonalności NVENC na urządzeniach Jetson:NVENC, które nieprawidłowo przesyłały strumieniowo zakodowane ramki, jeśli rzeczywista liczba klatek na sekundę w strumieniu nie jest równa skonfigurowanej, co często ma miejsce podczas pracy ze strumieniami RTSP lub gdy ramki są odrzucane z powodu pewnych warunków. W Savant problem został rozwiązany przez obejście polegające na zmianie kolejności ramek w razie potrzeby. Błąd pojawia się w DeepStream 6.2 i został zgłoszony firmie NVIDIA, która potwierdziła błąd i naprawi go w następnej wersji DeepStream.

z inne zmiany, które się wyróżniają tej nowej wersji:

  • Podczas opracowywania wprowadzono praktykę śledzenia możliwych regresji wydajności poprzez łączenie każdego zgłoszenia.
  • Kontynuacja migracji wewnętrznych elementów Savant z Pythona do Rusta: podstawowa biblioteka funkcji Savant-rs zaimplementowana z szeroko przetestowanym kodem.
  • Komponenty oparte na Pythonie są stopniowo zastępowane komponentami opartymi na Rust, aby zapewnić, że Savant działa bez globalnej blokady (GIL) zawsze, gdy jest to możliwe, a kod jest wysokiej jakości.
  • Udokumentowane adaptery do pracy z danymi.
    Dodano przykłady użycia wstępnego przetwarzania obrazu.
    Stworzyłem sekcję o tym, jak skonfigurować środowisko programistyczne w VS Code.

Na koniec należy wspomnieć, że twórcy planuję w następnej wersji Savant 0.2.5 zintegrować więcej kodu Rusta, tak aby potoki mniej polegać na GIL. Planowane jest również dostarczenie nowych funkcji związanych z dynamiczną konfiguracją potoków i rozwojem brzegowym oraz dodanie trzech do czterech nowych próbek obejmujących podstawowe i zaawansowane funkcje.

Jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami w następujący link.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.