Wprowadzenie niestandardowego oprogramowania do rozpoznawania twarzy

Firma Innowise opracowała zaawansowane rozwiązanie do rozpoznawania twarzy w celu zwiększenia bezpieczeństwa i usprawnienia procesów identyfikacji.

Klient

Region
AU
Klient od
2022

Naszym klientem jest australijska firma zajmująca się tworzeniem oprogramowania i doradztwem IT, specjalizująca się w dostarczaniu dostosowanych do potrzeb rozwiązań informatycznych dla branży detalicznej. Dzięki bogatemu doświadczeniu, firma z powodzeniem opracowała koncepcję, zaprojektowała i uruchomiła rozwiązania cyfrowe w różnych kategoriach handlu detalicznego, w tym towarów ogólnych, odzieży i artykułów spożywczych.

Działając na skalę globalną - od międzynarodowych korporacji detalicznych po niezależnych właścicieli sklepów - firma ta oferuje pakiet wysoce skalowalnych produktów i usług.

Wyzwanie

Zwiększenie dokładności rozpoznawania twarzy dla branży detalicznej

Początkowo zadanie wydawało się proste: opracować rozwiązanie do rozpoznawania twarzy, które mogłoby niezawodnie identyfikować osoby w czasie rzeczywistym w środowiskach detalicznych. Ale każdy, kto zna rzeczywiste kanały wideo, wie, że rzadko są one doskonałe.

Głównym wyzwaniem była niespójna jakość wideo. Ustawienia w handlu detalicznym są nieprzewidywalne - kamery często rejestrują materiał w słabym oświetleniu, pod niewygodnymi kątami i w ciągłym ruchu. W rezultacie twarze wydawały się rozmyte, zacienione lub zniekształcone, co utrudniało systemowi wykrywanie i wyrównywanie krytycznych rysów twarzy, takich jak oczy, nos i usta.

W niektórych przypadkach nierównomierne oświetlenie przesłaniało szczegóły twarzy, podczas gdy w innych połączenie rozmycia i cieni sprawiało, że tradycyjne metody rozpoznawania były nieskuteczne. Nie były to sporadyczne problemy - były to codzienne warunki, z którymi nasz zespół musiał się zmierzyć.

Aby temu zaradzić, potrzebowaliśmy czegoś więcej niż zaawansowanych algorytmów. Nasi inżynierowie musieli zaprojektować system zdolny do przetwarzania niedoskonałych, nieuporządkowanych danych wejściowych - wyodrębniając znaczące dane z niskiej jakości, niespójnych materiałów wideo, aby zapewnić jasne i przydatne wyniki. Mówiąc najprościej, niestandardowe oprogramowanie do rozpoznawania twarzy musiało współpracować z rzeczywistymi wyzwaniami, a nie z nimi walczyć.

Rozwiązanie

Zwiększenie bezpieczeństwa i wydajności handlu detalicznego dzięki systemowi rozpoznawania twarzy

Podejście naszego zespołu do niestandardowych usług tworzenia oprogramowania do rozpoznawania twarzy koncentrowało się na trzech krytycznych celach: dokładności, przetwarzaniu w czasie rzeczywistym i zdolności adaptacji do danych wejściowych o niskiej jakości.

Niezawodne wykrywanie i rozpoznawanie twarzy

W rdzeniu rozwiązania zintegrowaliśmy zaawansowane algorytmy głębokiego uczenia, aby zapewnić precyzyjne wykrywanie i rozpoznawanie twarzy, nawet w wymagających warunkach, takich jak słabe oświetlenie, nietypowe kąty i dane wejściowe o niskiej rozdzielczości.

Wykrywanie i wyrównywanie twarzy

Wykorzystaliśmy RetinaFace ze względu na jego szybkość i dokładność w wykrywaniu twarzy, szczególnie wyróżniającą się na obrazach o niskiej rozdzielczości i w trudnych warunkach oświetleniowych. Zdecydowaliśmy się na wykrywanie punktów orientacyjnych twarzy MediaPipe, aby zidentyfikować i wyrównać krytyczne cechy, takie jak oczy, nos i usta. W rezultacie system mógł obsługiwać różne dane wejściowe z większą stabilnością i dokładnością. Umożliwiło to spójne wstępne przetwarzanie twarzy, nawet w przypadku niewspółosiowości lub nietypowych kątów.

Dokładne modele rozpoznawania twarzy

Do rozpoznawania twarzy wykorzystaliśmy technikę ArcFace, znaną z wysokiej wydajności w generowaniu dyskryminacyjnych osadzeń twarzy. Aby zoptymalizować dokładność w środowiskach detalicznych, zespół dopracował model szkieletowy przy użyciu danych specyficznych dla domeny z ukierunkowanymi rozszerzeniami, w tym symulowanym rozmyciem i zniekształceniem kąta. W rezultacie system osiągnął dokładność rozpoznawania twarzy 85-90% w trudnych warunkach i utrzymał dokładność ponad 95% przy wysokiej jakości danych wejściowych.

Ulepszenia zapewniające dokładność obrazu i wydajność systemu

Nagrania z monitoringu często zawierają niedoskonałości, więc w ramach naszych niestandardowych usług rozwoju rozpoznawania twarzy opracowaliśmy solidny potok wstępnego przetwarzania obrazu, aby oczyścić dane wejściowe przed rozpoznaniem.

Jednym z kluczowych przełomów, które wprowadziliśmy, była lokalizacja oczu. Integracja potoków MediaPipe poprawiła zdolność systemu do wykrywania centrów źrenic oczu. To znacznie poprawiło wyrównanie i stabilizację twarzy, umożliwiając nam odfiltrowanie klatek, które były albo słabo uchwycone, albo źle wyrównane. W ten sposób do rozpoznania trafiały tylko czyste i wysokiej jakości klatki, co poprawiło ogólną dokładność systemu.

Wydajne wsadowe przetwarzanie obrazu

Musieliśmy poradzić sobie z ogromnymi ilościami danych wideo, więc stworzyliśmy moduł wsadowego przetwarzania obrazu przy użyciu PyTorch i MediaPipe.

Opracowaliśmy również moduł do masowego wyodrębniania i przetwarzania obrazów z kanałów wideo, oszczędzając w ten sposób czas i zmniejszając wysiłek ręczny. Zoptymalizowany system płynnie obsługuje duże ilości danych, nawet w ruchliwych środowiskach detalicznych.

Integracja z systemem CCTV

Integracja niestandardowego oprogramowania do rozpoznawania twarzy z systemem telewizji przemysłowej (CCTV) polega na połączeniu zaawansowanej technologii rozpoznawania twarzy z istniejącą infrastrukturą nadzoru. Taka integracja rekonfiguruje możliwości nadzoru, umożliwiając precyzyjną identyfikację osób w czasie rzeczywistym w sklepach lub magazynach. Taki system zaostrza środki bezpieczeństwa przed nieautoryzowanym dostępem i optymalizuje zarządzanie pracownikami poprzez śledzenie obecności i monitorowanie zachowań w pracy. Dzięki takiemu holistycznemu podejściu środowisko każdego punktu sprzedaży detalicznej staje się znacznie bezpieczniejsze i wydajniejsze w działaniu.

Teraz niestandardowe rozwiązanie do rozpoznawania twarzy uzyskuje dostęp do kanałów wideo na żywo z kamer CCTV i wykorzystuje algorytmy oparte na PyTorch i MediaPipe do wykrywania i analizowania unikalnych cech twarzy, takich jak kształt oczu, nosa i ust.

Korzystając z modeli ponownej identyfikacji osób (Re-ID), system śledzi osoby z jednej kamery do drugiej, nawet przy okluzji lub podczas przemieszczania się z jednej strefy do drugiej. W połączeniu ze strumieniowym przetwarzaniem na poziomie klatek, opartym na możliwościach wnioskowania PyTorch, system obsługuje również rozpoznawanie w czasie rzeczywistym z opóźnieniem poniżej 200 ms, nawet w przypadku wielu strumieni na żywo.

Technologie

AWS (Kinesis Video Streaming, EC2, EKS, ECR, S3, Glue)
Akcje GitHub, Kubernetes, Nginx
PyTorch, MediaPipe

VCS

Git, GitHub

Proces

Zaczęliśmy od intensywnych warsztatów, aby zrozumieć cele projektu i stojące przed nim wyzwania - takie jak obsługa słabej jakości wideo, umożliwienie przetwarzania w czasie rzeczywistym i zapewnienie skalowalności systemu. Nasz zespół przeprowadził szczegółowy audyt konfiguracji CCTV klienta, oceniając typy kamer, liczbę klatek na sekundę i jakość wideo, aby upewnić się, że niestandardowe oprogramowanie do rozpoznawania twarzy będzie działać niezawodnie w rzeczywistych warunkach.

Projektowanie systemu i planowanie architektury

Następnie nasz zespół zaprojektował skalowalną, rozproszoną architekturę zdolną do jednoczesnego przetwarzania wielu strumieni na żywo. Każda część systemu - wykrywanie twarzy, wstępne przetwarzanie i rozpoznawanie - została zbudowana jako niezależny komponent, zapewniając płynny przepływ danych i odporność na błędy. Wyznaczyliśmy również punkty integracji, aby połączyć rozwiązanie z istniejącą siecią CCTV klienta.

Rozwój i wdrażanie

Zastosowaliśmy zwinne podejście do rozwoju, dostarczając wyniki etapami i zbierając regularne informacje zwrotne w celu udoskonalenia systemu. Oto jak poradziliśmy sobie z każdym krytycznym obszarem:

  • Wykrywanie i wyrównywanie twarzy: Nasi inżynierowie zbudowali i zoptymalizowali potok wykrywania, aby ustabilizować przychodzące wideo, radząc sobie z wyzwaniami, takimi jak niespójne oświetlenie, nietypowe kąty i ruch.
  • Wstępne przetwarzanie obrazu: Nasz zespół ulepszył klatki wideo za pomocą filtrowania i stabilizacji, zapewniając, że tylko czyste, użyteczne klatki zostaną przesłane do rozpoznania.
  • Modele rozpoznawania: Korzystając z rzeczywistych próbek wideo, dopracowaliśmy potok rozpoznawania, aby dokładnie identyfikować twarze, nawet pod ekstremalnymi kątami lub częściowymi przeszkodami.
  • Optymalizacja przetwarzania wsadowego: Aby efektywnie zarządzać dużymi wolumenami wideo, zoptymalizowaliśmy przepływy pracy przetwarzania wsadowego dla zarchiwizowanych materiałów, jednocześnie zmniejszając obciążenie operacji w czasie rzeczywistym.

W każdym sprincie przeprowadzaliśmy rygorystyczne testy i monitorowanie wydajności, aby wyeliminować wąskie gardła i wspierać stały postęp.

Testowanie i ocena

Nasi specjaliści ds. kontroli jakości przetestowali system, aby zweryfikować jego wydajność w rzeczywistych warunkach. warunkach:

  • Testy funkcjonalne: Każdy moduł był testowany indywidualnie i jako część pełnego potoku.
  • Testy warunków skrajnych: Nasz zespół ocenił zdolność systemu do przetwarzania wielu strumieni z kamer pod dużym obciążeniem.
  • Weryfikacja w świecie rzeczywistym: Korzystając z rzeczywistych nagrań wideo ze sklepów detalicznych, zweryfikowaliśmy, że system zapewniał spójne wyniki nawet przy słabym oświetleniu, rozmyciu ruchu lub niskiej rozdzielczości.
  • Testowanie przypadków brzegowych: Nasz zespół przetestował trudne scenariusze, takie jak częściowe twarze i ekstremalne aby zagwarantować solidność i niezawodność.

Podczas testów śledziliśmy wskaźniki wydajności - dokładność, szybkość i współczynniki odrzucania klatek - oraz dostroiliśmy system, aby uzyskać optymalne wyniki.

Uruchomienie i integracja

Gdy niestandardowe oprogramowanie do analizy twarzy było gotowe, nasz zespół wdrożył je w środowisku produkcyjnym klienta przy minimalnych zakłóceniach. System został skonfigurowany do przetwarzania strumieni wideo na żywo i integracji z istniejącą infrastrukturą CCTV. Aby zapewnić płynne wdrożenie, zapewniliśmy również sesje szkoleniowe i szczegółową dokumentację dla zespołu klienta.

Konserwacja i wsparcie po wdrożeniu

W ramach naszej roli jako firmy zajmującej się tworzeniem niestandardowego oprogramowania do rozpoznawania twarzy, zapewniamy ciągłą aktualizacje i wsparcie w celu poprawy wydajności i skalowalności systemu.

Zespół

1

Analityk biznesowy

1

Kierownik projektu

1

Inżynier ML

1

QA

1

Programista back-end

1

Programista front-end

Wyniki

Zwiększone bezpieczeństwo i usprawniona identyfikacja twarzy

Nasz zespół dostarczył system rozpoznawania twarzy, który z powodzeniem sprostał kluczowym wyzwaniom w świecie rzeczywistym, w tym niskiej rozdzielczości, słabemu oświetleniu i rozmyciu ruchu. Dzięki starannemu projektowi i optymalizacji poprawiliśmy wydajność operacyjną o 70%, skracając czas weryfikacji pracownika z 20 sekund do mniej niż 5 sekund na osobę.

Nasi inżynierowie upewnili się, że system poradzi sobie z wymagającymi obciążeniami, wdrażając wydajne potoki przetwarzania. W rezultacie, system przetwarza obecnie tysiące twarzy na sekundę w wielu strumieniach wideo. Wykorzystując zoptymalizowaną pod kątem GPU infrastrukturę AWS i dostrajając wydajność, byliśmy w stanie utrzymać płynne i spójne działanie, nawet w godzinach szczytu sprzedaży detalicznej.

Nasze wysiłki wzmocniły również wyniki w zakresie bezpieczeństwa. Mechanizmy ostrzegania w czasie rzeczywistym opracowane przez nasz zespół umożliwiają systemowi generowanie natychmiastowych powiadomień o nieautoryzowanych osobach. W rezultacie czas reakcji ochrony skrócił się o 40%, umożliwiając zespołom na miejscu szybsze działanie i poprawiając ogólną świadomość sytuacyjną.

Niezawodność była kluczowym elementem projektu. Optymalizacje przeprowadzone przez nasz zespół zapewniły 99,9% czasu sprawności i zapewniły nieprzerwane działanie krytycznych procesów, takich jak kontrola dostępu i monitorowanie na żywo. Płynna integracja z istniejącymi systemami klienta dodatkowo przyczyniła się do zmniejszenia o 20-25% liczby incydentów związanych z bezpieczeństwem, pomagając sprzedawcom detalicznym tworzyć bezpieczniejsze i lepiej zarządzane środowiska.

Ogólnie rzecz biorąc, rozwiązanie okazało się szybkie, dokładne i skalowalne. Nie tylko zoptymalizowało bezpieczeństwo, ale także uprościło zarządzanie frekwencją i usprawniło codzienne operacyjne przepływy pracy, zapewniając wymierne rezultaty w środowiskach detalicznych.

Czas trwania projektu
  • Maj 2022 - październik 2022
99.8%
Weryfikacje poniżej 200 ms na klatkę na instancjach AWS zoptymalizowanych pod kątem GPU
85-90%
dokładność rozpoznawania twarzy przy słabym oświetleniu lub rozmyciu ruchu

50%

mniej ręcznych interwencji dzięki niezawodnej automatycznej identyfikacji

Skontaktuj się z nami

Umów się na rozmowę lub wypełnij poniższy formularz, a my skontaktujemy się z Tobą po przetworzeniu Twojego zgłoszenia.

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając przycisk Wyślij, użytkownik wyraża zgodę na przetwarzanie przez Innowise jego danych osobowych zgodnie z naszą polityką prywatności. Politykę Prywatności w celu dostarczenia użytkownikowi odpowiednich informacji. Podając swój numer telefonu, użytkownik wyraża zgodę na kontaktowanie się z nim za pośrednictwem połączeń głosowych, wiadomości SMS i aplikacji do przesyłania wiadomości. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz również przesłać nam swoje zapytanie
    na adres contact@innowise.com

    Co dalej?

    1

    Po otrzymaniu i przetworzeniu Twojego zgłoszenia skontaktujemy się z Tobą wkrótce, aby wyszczególnić potrzeby projektu i podpisać umowę o zachowaniu poufności, aby zapewnić poufność informacji.

    2

    Po przeanalizowaniu wymagań, nasi analitycy i programiści opracowują projekt z zakresem prac, wielkością zespołu, czasem i kosztami szacunki.

    3

    Umówimy się z Tobą na spotkanie, aby omówić ofertę i dojść do porozumienia porozumienia.

    4

    Podpisujemy umowę i rozpoczynamy pracę nad projektem tak szybko, jak to możliwe.

    Спасибо!

    Cобщение отправлено.
    Мы обработаем ваш запрос и свяжемся с вами в кратчайшие сроки.

    Dziękuję!

    Wiadomość została wysłana.
    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    Dziękuję!

    Wiadomość została wysłana. 

    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    strzałka