xBerry Case studies Crossing Guard

Crossing Guard

Rozwiązanie AI dla bezpiecznych przejazdów kolejowych

Zobacz video

W xBerry wierzymy, że technologia może przynieść wymierne korzyści społeczeństwu. Dlatego też często angażujemy się w projekty skupione na poprawie bezpieczeństwa, zwłaszcza w branży transportowej. Rozwiązania skupione na użytkownikach dróg, każdorazowo wymagają od nas testowania na dużą skalę oraz zaufanych rozwiązań, które będą niezawodne nawet w sytuacjach awaryjnych. Mając to wszystko na uwadze stworzyliśmy Crossing Guard – system, który poprawia bezpieczeństwo i ułatwia kontrolę ruchu na przejazdach kolejowych.

Scroll pageg icon

Wyzwanie

Zgodnie z najnowszymi badaniami, aż 98% wypadków na przejazdach kolejowych spowodowanych jest przez kierowców samochodów i pieszych. Te statystyki, poparte doświadczeniem własnym naszego partnera, zainspirowały go do poszukiwania innowacyjnego, nowoczesnego rozwiązania, które poprawiłoby nadzór nad przejazdami kolejowymi – a w rezultacie – bezpieczeństwo podróży.

 

Staranne nadzorowanie zarówno samochodów, jak i osób stanowi trudne zadanie, a analiza wzorców zachowań, które prowadzą do wypadków, ma kluczowe znaczenie dla zapobiegania im.

 

Nasz partner chciał znaleźć sposób, aby sprostać tym wymaganiom – i tutaj, z całą naszą wiedzą i doświadczeniem, wkraczamy aby pomóc naszemu klientowi w realizacji jego wizji. Aby opracować najlepsze technologiczne rozwiązanie i ułatwić proces nadzoru dla operatorów kolejowych, wpadliśmy na pomysł zautomatyzowanego systemu kontroli opartego na sztucznej inteligencji.

Cele

Celem projektu było stworzenie systemu, który wykorzystuje sztuczną inteligencję do przetwarzania strumieni wideo z kilku kamer w czasie rzeczywistym wokół przejazdu.

Obraz widziany przez kamery musiał być podzielony na strefy detekcji, aby system mógł ocenić, czy dany pojazd znajduje się w strefie zagrożenia (np. zbliża się do torów, podczas gdy sygnalizacja świetlna wskazuje na nadjeżdżający pociąg). System musiał rozpoznawać i klasyfikować wszystkich uczestników ruchu drogowego oraz oznaczać ich unikalnymi identyfikatorami (np. numerami tablic rejestracyjnych). W celu poprawy i ograniczenia kosztów nadzoru, Crossing Guard miał automatycznie gromadzić dane z przejazdów z całego kraju.

 

Dane mogły być później analizowane i wykorzystywane na wiele przydatnych sposobów – od oceny przejazdu pod kątem dodatkowego wyposażenia zabezpieczającego (takiego jak znaki drogowe czy skomplikowane systemy świetlne) do zgłaszania naruszeń przepisów drogowych odpowiednim organom. System powinien również dostarczać informacji na temat zachowania uczestników ruchu drogowego oraz uczyć się wzorców zachowań prowadzących do wypadków, aby poprawić wykrywanie niebezpiecznych sytuacji na przejazdach kolejowych.

Rozwiązanie

  • Jako główny język programowania wybraliśmy Pythona, głównie z uwagi na dobre proporcje szybkości do wydajności. Python był wystarczająco szybki, aby obsłużyć drugoplanowe funkcje, jednocześnie umożliwiając szybkie i łatwe tworzenie oprogramowania.

    Do implementacji funkcji, które wymagają wysokiej wydajności, takich jak dekodowanie/kodowanie strumieni i synchronizacja strumieni (do 4 strumieni jednocześnie), wykorzystaliśmy język C++.

  • Do stworzenia interfejsu produktu wykorzystaliśmy Qt z QML.

    Opieraliśmy się na bibliotece PyTorch, która znalazła zastosowanie w detekcji obiektów. Jej wysoka wydajność zbliżona do języka C++ oraz łatwość użycia (dzięki wiązaniom z Pythonem) uczyniły ją najlepszym wyborem do tego zadania.

  • Ponieważ podstawową funkcją systemu jest wykrywanie obiektów w czasie rzeczywistym, potrzebowaliśmy nowoczesnego frameworka do przetwarzania obrazów. OpenCV był dla nas najlepszym wyborem.

    Wykorzystaliśmy także bibliotekę FFmpeg, która bardzo nam pomogła w pobieraniu i przetwarzaniu strumieni RTSP z kamer monitorujących znajdujących się na przejeździe.

  • Ze względu na złożoność i szeroki zakres funkcji, potrzebowaliśmy mechanizmu, który zapewniłby solidną, precyzyjną i wysoce wydajną implementację komunikacji międzyprocesowej. Wybraliśmy ZMQ (ZeroMQ).

Jak działa Crossing Guard?

Rezultat

Stworzyliśmy system, który znacznie ułatwia kontrolę ruchu na przejazdach kolejowych i poprawia bezpieczeństwo podróży.

 

Dzięki Crossing Guard, dozorcy przejazdów mogą monitorować wypadki i niebezpieczne zdarzenia łatwiej niż kiedykolwiek wcześniej. Dzięki wykrywaniu i identyfikacji pojazdów, Crossing Guard również pomaga w podjęciu działań prawnych, gdy sytuacja tego wymaga. System Crossing Guard jest już stosowany na jednym z przejazdów w Polsce i okazuje się niezwykle przydatny w śledzeniu ruchu drogowego i zapewnianiu bezpieczeństwa.

Tech Stack

ZMQ
FFmpeg
OpenCV
PyTorch
Qt
C++
Python

Opinia klienta

W pełni rozumieli nasze potrzeby, a zakres projektu był elastyczny, umożliwiając wprowadzanie zmian w trakcie rozwoju projektu. Ich zwinne podejście pozwoliło nam uniknąć wielu zbędnych kosztów i dostarczyło solidne funkcjonalności, o których nawet nie wiedzieliśmy, że są nam potrzebne.

Wiktor Włodarczyk Protel

Planujesz nowy projekt?

Porozmawiajmy Arrow icon