
ramowy Savant
Systemy obserwacji i rozpoznania nie są nowością Nie jest to nowość, ponieważ systemy te były używane przez wiele lat i ewoluowały wraz z ulepszeniami zarówno w zakresie sprzętu, jak i oprogramowania.
Dwa lata temu Pisałem trochę na blogu o OpenCV, bezpłatna wieloplatformowa biblioteka wizji komputerowej (możesz sprawdzić szczegóły artykułu W poniższym linku), co w tamtym czasie wydawało mi się niezwykle interesujące, ponieważ można było je zaimplementować na Raspberry Pi, a miałem w tamtym czasie zwyczaj testowania dużej liczby projektów i systemów na moim RPi.
Powód, dla którego o tym wspomniałem i starając się nie odbiegać od tematu dzisiejszego wpisu, jest to, że wielu uważa, że wdrożenie systemu tego typu może być niezwykle kosztowne lub nawet bardzo skomplikowane. Co w rzeczywistości nie jest do pewnego momentu, ponieważ można wspierać projekty open source, ale wymaga pewnej wiedzy i przede wszystkim cierpliwości.
Dlatego dzisiaj Porozmawiajmy o takim projekcie i to osobiście wydaje się bardzo dobre i potężne. Projekt którego będziemy mówić o Savant, który jest frameworkiem napisanym w Pythonie i który sprawia, że NVIDIA DeepStream jest łatwiejsza w użyciu dla inżynierów zajmujących się uczeniem maszynowym
Savant jest framework na bardzo wysokim poziomie na szczycie DeepStream, który ukrywa wszystkie elementy wewnętrzne Gstreamera przed programistą 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.
Charakterystyka które wyróżniają się na tle Savanta to np niesamowicie szybkie wnioskowanie, Ponieważ jest oparta na Nvidia DeepStream i zapewnia wydajność na sprzęcie Nvidia, która jest kompatybilna z akceleratorami centrów danych, profesjonalnymi płytami głównymi, komputerami stacjonarnymi i NVIDIA Jetson.
Inną cechą jest to, że ma Obsługa integracji OpenCV CUDA dzięki któremu możesz zastosować filtry OpenCV CUDA i wydajnie pracować z rastrami GpuMat bez obciążania pamięci RAM procesora ciężkimi ramkami.
Poza tym, ma interfejs API przesyłania strumieniowego co pozwala Savantowi działać jako serwer wnioskowania za pośrednictwem 0MQ i Apache AVRO. Dzięki temu dane transmisyjne są dostarczane do serwera i odbierane z niego za pomocą adapterów.
Z innych cech które wyróżniają się na tle Savanta:
- Obsługa Pythona i ML.
- Framework jest dostępny jako kontenery Docker dla środowisk wykonawczych x86 i Nvidia Jetson.
- Działa na Edge i Core
- Operacje i pojemność o niskim opóźnieniu, Savant obsługuje korzystne operacje o niskim opóźnieniu
- Adaptery umożliwiające dostęp do różnych źródeł multimediów, takich jak RTSP lub pliki wideo
- Pozwala budować potoki dla środowisk, w których przetwarzanie uwzględniające rotację ma kluczowe znaczenie.
Jeśli chodzi o realizację projektu, warto wiedzieć, że zarówno Savant, jak i jego adaptery są dostarczane jako obrazy Dockera. Aby zaimplementować potok, bierzesz obraz podstawowy, dodajesz modele AI i niestandardowy kod z dodatkowymi zależnościami, a następnie budujesz wynikowy obraz. Niektóre potoki, które nie wymagają dodatkowych zależności, można zaimplementować, po prostu przypisując katalogi z modelami i funkcjami użytkownika w obrazie dokera.
W przypadku części konfiguracji środowiska Savant wymagane jest posiadanie już zainstalowanych niektórych zależności i narzędzi, ponieważ niezwykle konieczne jest spełnienie zależności DeepStream.
Zależności to:
- odrzutowiec
- git-lfs
- curl
- doker
- sterowniki nvidii
- Zestaw narzędzi kontenera Nvidia
Ponieważ proces wdrażania środowiska wymaga wiele, zapraszam jeśli jesteś zainteresowany, zapoznaj się z instrukcją Savant W poniższym linku.