Przejdź do głównej sekcji

Wizja wspomagana przez AI: Podróż Verkada w Kierunku Inteligentnego Monitoringu Wizyjnego i Własnych Baz Danych Wektorowych

W dynamicznie rozwijającym się krajobrazie technologii, konwergencja sztucznej inteligencji (AI) i tradycyjnych sektorów tworzy transformacyjne rozwiązania. Ostatni odcinek podcastu Stack Overflow zaoferował fascynujący wgląd w to przenikanie się, prezentując Babak Behzad, Senior Engineering Managera w Verkada – wiodącej firmie oferującej monitoring wizyjny oparty na chmurze. Dyskusja rzuciła światło na innowacyjne podejście Verkada do bezpieczeństwa wizyjnego, oparte na najnowocześniejszej AI, zaawansowanym przetwarzaniu obrazów oraz niestandardowo zaprojektowanej bazie danych wektorowych.

Podstawową misją Verkada jest ochrona ludzi i miejsc, przy jednoczesnym priorytetowym traktowaniu prywatności oraz wykorzystaniu potęgi danych wizualnych. Posiadając ponad milion kamer strumieniujących na całym świecie, firma stoi przed ogromnym wyzwaniem przetwarzania i analizy napływającego ogromu informacji wizualnych. Zamiast przesyłać surowe strumienie wideo, inteligentne kamery Verkada wykonują detekcję obiektów bezpośrednio na urządzeniu. Jednak w przypadku zaawansowanych funkcji, takich jak wyszukiwanie AI, złożoność systemu dramatycznie wzrasta.

W odcinku podcastu podkreślono przełomową funkcję Verkada – wyszukiwanie AI. Aby umożliwić wyszukiwanie w języku naturalnym w ogromnych archiwach wideo, inżynierowie Verkada skonstruowali zaawansowany potok (pipeline), zdolny do przetwarzania oszałamiającej liczby od 25 000 do 30 000 obrazów na sekundę w godzinach szczytu. To intensywne przetwarzanie jest napędzane przez najnowocześniejsze modele wizualno-językowe, w szczególności przez open-source’ową iterację modelu CLIP (Contrastive Language Image Pre-training) firmy OpenAI.

CLIP, wytrenowany na miliardach obrazów wraz z ich podpisami, zapewnia głębokie zrozumienie treści wizualnych oraz ich związku z językiem naturalnym. Verkada wykorzystuje ten model do tworzenia osadzeń wektorowych przyciętych obrazów ludzi i pojazdów wykrytych w kadrach wideo. Te osadzenia – numeryczne reprezentacje uchwycające esencję informacji wizualnych – są następnie przechowywane w niestandardowej bazie danych wektorowych. Taka architektura umożliwia użytkownikom wyszukiwanie nagrań wideo przy użyciu zapytań w języku naturalnym, takich jak „osoba w niebieskiej bluzie z kapturem” czy „czerwony sedan”.

Niezwykła prędkość przetwarzania wymaga połączenia algorytmicznej pomysłowości z solidną infrastrukturą sprzętową. Verkada korzysta z instancji GPU w chmurze, optymalizując wydajność poprzez techniki takie jak deduplikacja obrazów, wstępne przetwarzanie potoku (pipeline pre-processing) w celu maksymalizacji wykorzystania GPU oraz serwer inferencyjny NVIDIA Triton z TensorRT do optymalizacji modeli.

Krytyczną decyzją architektoniczną dla Verkada było opracowanie własnej bazy danych wektorowych. Choć dostępne są gotowe rozwiązania, Verkada zdecydowała się na niestandardowe podejście, kierując się kluczowymi względami: prywatnością, skalowalnością oraz efektywnością kosztową. Istniejące bazy danych wektorowych często priorytetowo traktują obciążenia związane z dużą liczbą operacji odczytu, typowe w aplikacjach takich jak generacja wspomagana wyszukiwaniem (RAG). Przypadek użycia Verkada jest jednak znacznie bardziej intensywny pod względem zapisu, ze względu na ciągły napływ obrazów.

Zainspirowani bazami danych wektorowych typu open-source, takimi jak Qdrant i Weaviate, inżynierowie Verkada zaprojektowali system zoptymalizowany pod kątem wysokiej liczby operacji zapisu oraz efektywnego wyszukiwania. Ich niestandardowa baza danych wykorzystuje macierze NumPy do przechowywania wektorów oraz magazyn blob do trwałego przechowywania danych, włączając rozbudowane strategie buforowania i indeksowania. Co ciekawe, aby zapewnić maksymalną dokładność wyszukiwania – kluczową w scenariuszach dochodzeniowych – Verkada stawia na wyszukiwanie dokładnego najbliższego sąsiada zamiast metod przybliżonych, akceptując nieco wyższe opóźnienie dla uzyskania bardziej precyzyjnych wyników.

Prywatność jest dla Verkada priorytetem. Całe przetwarzanie AI oraz przechowywanie danych odbywa się w ramach ich własnej infrastruktury chmurowej, co gwarantuje ochronę danych klientów i brak ich udostępniania zewnętrznym dostawcom AI. Klienci zachowują szczegółową kontrolę nad funkcjami AI, z możliwością wyłączenia analityki na poziomie kamery, urządzenia lub całej organizacji. Zarządzanie danymi jest rygorystycznie egzekwowane dzięki architekturze multi-tenantowej, partycjonowaniu danych (sharding) i szyfrowaniu, gwarantując izolację danych i bezpieczeństwo dla każdego klienta.

Patrząc w przyszłość, Verkada aktywnie bada postępy w dziedzinie przetwarzania brzegowego. Choć obecne wyszukiwanie AI opiera się na przetwarzaniu w chmurze, zwłaszcza w przypadku złożonych modeli, takich jak CLIP, trend w kierunku mniejszych, bardziej wydajnych modeli otwiera możliwości przetwarzania AI bezpośrednio na urządzeniu. Takie przesunięcie może skutkować jeszcze szybszym czasem reakcji, mniejszym zużyciem przepustowości oraz zwiększeniem prywatności poprzez minimalizację transferu danych.

Podróż Verkadi ukazuje transformacyjną moc AI w monitoringu wizyjnym. Łącząc zaawansowane modele wizualno-językowe, sprytne optymalizacje inżynieryjne oraz silne zaangażowanie w ochronę prywatności, firma na nowo definiuje sposób, w jaki chronimy ludzi i miejsca w coraz bardziej wizualnym świecie. Jej determinacja w tworzeniu niestandardowych rozwiązań, czego przykładem jest własna baza danych wektorowych, podkreśla znaczenie dostosowywania technologii do specyficznych potrzeb oraz priorytetowego traktowania kluczowych wartości, takich jak bezpieczeństwo danych i kontrola użytkownika. W miarę dalszego rozwoju AI, firmy takie jak Verkada torują drogę dla inteligentniejszych, bardziej responsywnych i uwzględniających prywatność rozwiązań w zakresie bezpieczeństwa.

Źródło: https://stackoverflow.blog/2025/02/07/why-build-your-own-vector-db-to-process-25-000-images-per-second/