Pobierz
najnowszy numer

Newsletter

Zapisz się do naszego Newslettera, aby otrzymywać informacje o nowościach z branży!

Jesteś tutaj

AI dla każdego. Część 5

Printer Friendly and PDF

Z poprzednich części cyklu AI dla każdego można było dowiedzieć się, co to jest sztuczna inteligencja i jak przebiegał jej rozwój w ciągu ostatnich kilkudziesięciu lat. Opisałem także tzw. uczenie maszynowe, sztuczny neuron, sieć neuronową oraz jeden ze sposobów uczenia sieci neuronowych. Pora na podanie kilku przykładów wykorzystania sztucznej inteligencji ze szczególnym uwzględnieniem wizyjnych systemów dozorowych.

Rozpoznawanie twarzy

Rozpoznawanie twarzy z wykorzystaniem sztucznej inteligencji to obecnie jedna z najbardziej dynamicznie rozwijających się dziedzin nadzoru wizyjnego i kontroli dostępu. Proces rozpoznawania podzielony jest na kilka etapów. Na początku twarz jest wykrywana, czyli określane jest miejsce na obrazie, gdzie twarz się znajduje. Następnie wyodrębniony fragment jest poddawany analizie zawartości. W rozpoznawaniu twarzy najczęściej stosuje się jedną z dwóch metod – globalną lub ekstrakcję cech (ang. feature based). W metodzie globalnej obraz twarzy jest traktowany jako całość, natomiast w przypadku ekstrakcji cech brane są pod uwagę geometryczne relacje pomiędzy wyodrębnionymi wcześniej składowymi twarzy (np. oczami i nosem). Ze względu na to, że pełna analiza treści obrazu jako graficznej mapy rastrowej powoduje konieczność generowania bardzo złożonych sieci neuronowych i spowalnia działanie systemu, najczęściej w procesie tym wprowadzany jest etap pośredni, polegający na utworzeniu biometrycznej siatki charakterystycznych punktów twarzy. Taki układ jest indywidualny dla każdego człowieka i nie zmienia się z wiekiem (długości odcinków mogą się zmieniać, ale proporcje między nimi pozostają te same). Dopasowanie obserwowanej twarzy do wzorca w bazie danych na podstawie porównania siatek biometrycznych trwa znacznie krócej niż w przypadku pełnego porównania obrazów w postaci map bitowych. W systemach rozpoznawania twarzy wykorzystuje się najczęściej uczenie nienadzorowane, np. metodą Hebbai. Jeżeli rozpoznawanie twarzy jest elementem systemu kontroli dostępu, to sam proces rozpoznawania nie jest wystarczający ze względu na bezpieczeństwo takiego systemu. Istnieje ryzyko, że osoba nieuprawniona spróbuje oszukać system, prezentując kamerze wydrukowany obraz twarzy osoby uprawnionej lub nawet trójwymiarowy model takiej twarzy, np. wydrukowany za pomocą drukarki 3D.

Aby temu zapobiec, nowoczesne systemy rozpoznawania twarzy są wyposażone w mechanizmy wykrywania cech życia. Dwie kamery zapewniają obserwację stereoskopową, wykluczając próbę oszukania systemu za pomocą wydrukowanego obrazu twarzy. Algorytmy analizy ruchu gałek ocznych, mrugania i ruchu mięśni twarzy stanowią dodatkowe zabezpieczenia. W ofercie czołowych producentów systemów zabezpieczeń można znaleźć terminale kontroli dostępu umożliwiające rozpoznanie twarzy w czasie kilkuset milisekund.

ANPR (LPR)

Rozpoznawanie numerów tablic rejestracyjnych jest już bardzo powszechnym zastosowaniem analizy treści obrazu i jest często stosowane w systemach parkingowych. Aktualnie systemy te szeroko wykorzystują sztuczną inteligencję. Proces wyodrębnienia numeru tablicy rejestracyjnej jest podzielony na kilka etapów, z których najtrudniejszym jest wyodrębnienie obszaru, w którym znajduje się ta tablica. Nowoczesne systemy ANPR potrafią odfiltrować niewłaściwe dane w postaci napisów umieszczonych na pojazdach, a nie będących oznaczeniami rejestracyjnymi (np. reklamy na burtach ciężarówek, napisy „Taxi”, „POLICJA” itp.). Po wyodrębnieniu miejsca z numerem tablicy rejestracyjnej następuje jej właściwe rozpoznanie, do czego wykorzystuje się techniki OCR (ang. optical character recognition – optyczne rozpoznawanie znaków). Ich działanie opiera się na zastosowaniu sieci neuronowych i uczenia nadzorowanego (model sieci został nauczony kształtów cyfr i liter widzianych pod różnymi kątami, o różnych krojach czcionki itp.). Częścią oprogramowania systemu ANPR jest wytrenowany model sieci potrafiący rozpoznawać litery i cyfry tablicy rejestracyjnej.

Klasyfikacja obiektów i filtrowanie fałszywych alarmów

Do niedawna kamery do nadzoru wizyjnego stosowane w ochronie obwodowej były tylko urządzeniami wspomagającymi. Głównym powodem była niedoskonałość algorytmów detekcji ruchu i analizy treści obrazu w warunkach terenowych. Ruchome gałęzie i liście drzew, przebiegające zwierzęta, falowanie gorącego powietrza, dynamiczne zmiany kontrastu i jasności na skutek przejściowego zachmurzenia i inne czynniki powodowały, że liczba fałszywych alarmów generowanych przez wizyjne systemy dozorowe starszej generacji była zbyt duża. Sztuczna inteligencja pozwala uporać się z tymi problemami. Zasada działania jest prosta. Proces analizy przebiega dwuetapowo. Na pierwszym etapie ruchome obiekty widoczne na obrazie są klasyfikowane według typu i tylko jeśli obiekt spełnia kryterium danego typu (np. jest to pojazd albo człowiek), uruchamiana jest dalsza analiza. Pozostałe ruchome obiekty, które nie spełniają kryteriów, zostają zignorowane. Na drugim etapie tylko aktywność obiektów odpowiadających kryteriom jest analizowana zgodnie z ustalonym scenariuszem. Tą aktywnością może być np. przekroczenie linii i wejście na dany teren. Dzięki takiej procedurze liczba fałszywych alarmów zostaje bardzo znacznie zredukowana, a efektywność systemu wydatnie wzrasta. Ponadto możliwe jest zastosowanie tych samych kryteriów i filtrów klasyfikacyjnych do wyszukiwania określonych scen w zarejestrowanym materiale wizyjnym. Wystarczy poinformować system, czego ma szukać (np. sylwetek osób). Opisana wyżej technika to doskonały przykład zastosowania uczenia nadzorowanego. Częścią oprogramowania układowego (firmware'u) kamery lub rejestratora, który realizuje funkcję filtrowania fałszywych alarmów, jest wytrenowany model sieci neuronowej, nauczony rozpoznawania sylwetek osób i pojazdów lub innych obiektów.

Klasyfikacja cech

Rozwinięciem opisanej wyżej klasyfikacji obiektów jest klasyfikacja cech. Polega ona na tym, że po wyodrębnieniu z obrazu pożądanych obiektów algorytm analizy „przygląda się” dokładniej samym obiektom, szukając ich cech szczególnych. W przypadku analizy sylwetki ludzkiej można określić takie cechy jak płeć, wiek, dominujący kolor ubioru i wzrost, a także to, czy dana osoba nosi okulary, czy ma plecak, czy jedzie na rowerze itp. W przypadku pojazdów możliwe jest określenie np. marki, modelu, koloru i wielkości. Wizyjne systemy dozorowe mające takie możliwości klasyfikacji obiektów są już dostępne w ofercie czołowych producentów.

Co jeszcze?

Wykrycie paniki w tłumie ludzi, podejrzanego zachowania lub zgubienia transportowanego przez samochód ciężarowy ładunku, analiza prędkości ruchu czy automatyczne śledzenie obiektów przez kamery PTZ to kilka kolejnych przykładów wykorzystania sztucznej inteligencji w dziedzinie nadzoru wizyjnego. Dzięki zastosowaniu sieci neuronowych i głębokiego uczenia analiza treści obrazu w takich przypadkach jest nieporównywalnie lepsza niż bez użycia sztucznej inteligencji. Podane w tym artykule przykłady to oczywiście bardzo niewielki fragment tego, co już dziś ona potrafi. Wykorzystywana jest także w rozpoznawaniu mowy, systemach finansowych na giełdach (tzw. fast trading), diagnostyce medycznej, obserwacjach astronomicznych (w śledzeniu i wyszukiwaniu ciał niebieskich), symulacjach obciążeniowych w projektowaniu konstrukcji, w tzw. wirtualnych asystentach obecnych w portalach pomocy technicznej czy w modelach meteorologicznych i zaawansowanym prognozowaniu pogody. Bardzo ciekawym zastosowaniem sztucznej inteligencji jest też wykorzystywanie jej w nowoczesnych systemach antywirusowych. Przez ostatnich kilkanaście lat powstała tak duża liczba wirusów i innego szkodliwego oprogramowania, że skanowanie i wyszukiwanie złośliwego kodu tradycyjnymi metodami heurystycznymi w rozsądnym czasie staje się niemal niemożliwe. Sztuczna inteligencja radzi sobie z tym doskonale.

Co jest „pod spodem”?

Sztuczna inteligencja nabiera coraz większego znaczenia, ale tworzenie od podstaw dostosowanych do niej silników programowych i sprzętowych jest bardzo trudne i kosztowne, więc nie jest dla producentów priorytetem. W związku z tym praktycznie wszystkie stosowane obecnie w branży zabezpieczeń techniki związane ze sztuczną inteligencją bazują na gotowych rozwiązaniach lub ich rozmaitych modyfikacjach. Przyjrzymy się trzem najbardziej rozpowszechnionym.

Movidius

Jednym z podstawowych problemów utrudniających korzystanie z modeli sieci neuronowych jest ich wielkość. Model sieci neuronowej w pełni wytrenowany dużym zbiorem danych testowych jest często zbyt „ciężki”, by sprawnie przetwarzać te dane, szczególnie w czasie rzeczywistym. Dotyczy to na przykład systemów analizujących treść obrazu, w których kamery IP nie dysponują adekwatną mocą obliczeniową. Pomocne są specjalistyczne procesory nazywane akceleratorami sztucznej inteligencji. Jak wskazuje nazwa, przyspieszają one działanie modelu sieci dzięki temu, że działają tylko te jej fragmenty, które odpowiadają za osiągnięcie wyniku pożądanego w danym momencie. U podstaw tego procesu leży inferencja, czyli wnioskowanie i przewidywanie przez model sieci neuronowej nowych wyników na podstawie poprzednich zachowań. Movidius jest właśnie takim akceleratorem i jest obecnie stosowany przez kilku czołowych producentów wizyjnych systemów dozorowych.

Fot. 1. NCS2 – „Domowy” sprzętowy akcelerator sztucznej inteligencji

 

Dla tych, którzy chcą spróbować własnych sił w kreowaniu i rozwijaniu systemów sztucznej inteligencji, twórca Movidiusa, firma Intel, oferuje miniaturowy moduł akceleratora Neural Compute Stick 2 (NCS2), podobny z wyglądu do popularnych pamięci USB. NCS2 można połączyć np. z popularnym miniaturowym komputerem modułowym Raspberry Pi, by rozpocząć własną przygodę ze sztuczną inteligencją za zaledwie kilkaset złotych.

TensorFlow

Tensor Flow jest stworzoną przez firmę Google biblioteką programistyczną typu open source. Można ją uruchomić na komputerach klasy PC, urządzeniach mobilnych, w systemach wbudowanych (ang. embedded), a także za pomocą kart graficznych i specjalistycznych procesorów wspierających (akceleratorów sztucznej inteligencji). Dużą popularność zawdzięcza łatwym w obsłudze interfejsom, z którymi radzą sobie nawet niezbyt zaawansowani programiści, a także gotowym, przykładowym modelom sieci neuronowych przygotowanym przez twórców biblioteki. TensorFlow obsługuje bezpośrednio model interfejsu CUDA firmy NVIDIA.

Fot. 2. Rozpoznawanie obiektów dzięki wykorzystaniu biblioteki TensorFlow. Źródło: https://it.wikipedia.org/wiki/Object_recognition, autor: M. Theiler

 

OpenCV

OpenCV to bazująca na koncepcji kodu otwartego biblioteka programistyczna opracowana przez firmę Intel. Biblioteka ta jest wieloplatformowa, więc można z niej swobodnie korzystać w systemie operacyjnym Windows, Linux i Mac OS. Pakiet zawiera wiele gotowych funkcji wykorzystywanych w procesie obróbki obrazu ze szczególnym uwzględnieniem analizy w czasie rzeczywistym. OpenCV jest szeroko wykorzystywana przy tworzeniu pojazdów autonomicznych, w systemach rozpoznawania znaków drogowych i dynamicznej korekcji toru jazdy.

W kolejnej, ostatniej już części cyklu AI dla każdego przyjrzymy się wyzwaniom i zagrożeniom, jakie może ze sobą nieść rozwój sztucznej inteligencji.

Piotr Rogalewski

 

Przypisy:

  • i: D. O. Hebb, Distinctive features of learning in the higher animal, Oxford University Press, Londyn 1961;
  • C. M. Bishop, Neural Networks for Pattern Recognition, Oxford University Press, Londyn 1995.

 

Zabezpieczenia 5/2019

Wszelkie prawa zastrzeżone. Kopiowanie tekstów bez zgody redakcji zabronione / Zasady użytkowania strony