Wizja komputerowa od lat ułatwia nam codzienne życie i pracę. Kiedy ostatnio używaliście funkcji rozpoznawania twarzy w telefonie lub mobilnej aplikacji skanowania dokumentów, korzystaliście właśnie z tej technologii.
Brzmi ciekawie? W tym artykule, zaczniemy od wyjaśnienia definicji Computer Vision oraz sposobu działania, a następnie pokażemy realne przykłady jej zastosowań – od codziennych urządzeń po zaawansowane systemy przemysłowe.
Mamy nadzieję, że dzięki tej lekturze zobaczycie, jak wizja komputerowa może wpłynąć na rozwój Waszego biznesu i otworzyć nowe możliwości.
Czym jest Computer Vision?
Tradycyjnie, zacznijmy od definicji. Wizja komputerowa (ang. Computer Vision) to dziedzina sztucznej inteligencji, która – jak sama nazwa wskazuje – odpowiada za wykrywanie i interpretację danych wizualnych, takich jak obrazy cyfrowe czy nagrania wideo.
Podobnie jak ludzie używają oczu do postrzegania otoczenia, wizja komputerowa wykorzystuje sensory takie jak aparat czy kamera, aby odczytywać określone wzorce i obiekty. Następnie, analogicznie do ludzkiego mózgu, system oparty na CV wykorzystuje różne algorytmy, np. sieci neuronowe (a dokładniej: konwolucyjne sieci neuronowe), które dzięki mechanizmom inspirowanym działaniem kory wzrokowej, są w stanie zidentyfikować zawartość przetwarzanego obrazu.
Dzięki temu, oprogramowanie oparte na Computer Vision może m.in. odróżniać przedmioty, rozpoznawać twarze lub nawet czytać i interpretować obrazy.
Jak działa wizja komputerowa?
Przetwarzanie obrazów
Aby lepiej zrozumieć, czym jest Computer Vision, wyjaśnijmy krok po kroku, jak działa ten proces, na przykładzie aplikacji do rozpoznawania zabytków.
1.Pozyskiwanie danych: Pierwszym krokiem jest uzyskanie danych z odpowiedniego urządzenia (sensora) umożliwiającego zarejestrowanie tego, co system ma zobaczyć. Na przykład, dla aplikacji rozpoznającej zabytki, może to być zdjęcie wykonane za pomocą aparatu w smartfonie.
2.Przetwarzanie wstępne: Surowe dane pozyskane z urządzeń są często dodatkowo modyfikowane w celu zapewnienia jednolitej postaci bądź zwiększenia jakości. Dla przykładowej aplikacji użytkownicy mogą wykonywać zdjęcia aparatami o różnej rozdzielczości. W ramach przetwarzania wstępnego, wymiary obrazów zostaną zmienione do ustalonej wartości. Dodatkowe techniki to m.in. normalizacja, odszumianie czy zmiana schematu kolorów.
3.Ekstrakcja cech: Uzyskane dane są przetwarzane przez wybrany algorytm w celu uzyskania z obrazu cech wyrażonych liczbami, na podstawie których możliwe będzie wykonanie docelowego zadania. Popularnym rozwiązaniem są tu splotowe sieci neuronowe, specjalizujące się w ekstrakcji cech z danych przestrzennych, takich jak obrazy poprzez wychwytywanie lokalnych zależności pomiędzy sąsiadującymi ze sobą elementami (na przykład pikselami). W kolejnych warstwach wyodrębniane są z obrazu cechy na coraz większym poziomie abstrakcji. Najpierw wykrywane są proste/zakrzywione linie czy proste tekstury, a poprzez ich złożenie bardziej skomplikowane kształty i cechy. Dla aplikacji rozpoznającej zabytki będą to najprawdopodobniej materiały z jakiego jest wykonany dany obiekt, kształt elementów (np. okien, kolumn, itp.) oraz całego budynku.
4.Podjęcie decyzji: Na podstawie cech wyodrębnionych w poprzednim kroku, podejmowane są określone decyzje zależne od wykonywanego zadania. W przypadku aplikacji rozpoznającej zabytki będzie to przypisanie do obrazu odpowiedniej nazwy. Inne możliwe decyzje związane są z określeniem rodzaju i pozycji obiektów na obrazie, bądź przypisaniem etykiety do każdego piksela (semantyczna segmentacja).
Kroki 3 i 4 są obecnie najczęściej rozwiązywane przy wykorzystaniu jednej sieci splotowej lub sieci w architekturze Vision Transformer (inspirowanej rozwiązaniem z dziedziny przetwarzania języka), w której wyodrębniane są z obrazu cechy (np. za pomocą warstw splotowych – krok 3), na podstawie których warstwy gęsto połączone podejmują decyzję (krok 4).
Kluczowe techniki Computer Vision
Choć wszystkie dotychczasowe artykuły z serii technologii AI posiadały słowniczek na końcu artykułu, tym razem przełamiemy ten zwyczaj. Zrozumienie kluczowych technik wizji komputerowej pozwoli Wam bowiem lepiej zrozumieć to pojęcie oraz płynnie przejść do kolejnej części artykułu.
1.Klasyfikacja obrazu (ang. image classification): odnosi się do przypisywania obrazów do różnych kategorii. Technologia ta jest używana do identyfikowania i kwalifikowania obrazów na podstawie ich zawartości. Algorytm przypisuje obrazom prawdopodobieństwo przynależności do każdej klasy, jeżeli – przykładowo – na obrazie znajduje się kot, to najbardziej prawdopodobne powinny być klasy: kot, zwierzę czy zwierzę domowe.
2.Lokalizacja obiektów (ang. object localization): Ta technika umożliwia określenie gdzie obiekty znajdują się na zdjęciu lub wideo (ale bez przypisania do nich klasy). Najczęściej obiekty lokalizowane są poprzez podanie prostokątnych obszarów w których się znajdują.
3.Wykrywanie obiektów (ang. object detection): Ta technika odpowiada na pytanie, gdzie i jakie obiekty znajdują się na zdjęciach lub wideo. Polega na połączeniu technik lokalizacji i klasyfikacji w celu wykrycia obiektów na obrazach lub filmach. Jest często wykorzystywana do znajdowania interesujących fragmentów na obrazach, które mogą być następnie analizowane bardziej szczegółowo. Może być przydatna na przykład w wykrywaniu gatunków zwierząt w ich naturalnym środowisku dla celów badawczych lub ochrony przyrody.
4.Śledzenie obiektów (ang. object tracking): odnosi się do materiałów wideo i polega na śledzeniu (skojarzeniu wystąpień) tych samych obiektów w kolejnych klatkach filmu, na przykład śledzenie ruchu pojazdów.
5.Wyszukiwanie obrazów na podstawie zawartości (ang. content-based image retrieval): przeglądanie, wyszukiwanie i pobieranie danych z dużych zbiorów na podstawie zawartości obrazu wejściowego. Metoda ta jest głównie używana w zarządzaniu cyfrowymi zasobami i w celach badawczych. Popularną aplikacją, która z niej korzysta jest Google Lens.
6.Identyfikacja (ang. identification): technika określająca, jaki konkretny egzemplarz danego obiektu znajduje się na obrazie. Jest to bardziej szczegółowa forma klasyfikacji skoncentrowana na pojedynczym wystąpieniu unikatowego obiektu danej klasy. Na przykład, identyfikacja może obejmować rozpoznanie konkretnej twarzy lub odcisku palca danej osoby na potrzeby uwierzytelniania biometrycznego.
7.Segmentacja semantyczna (ang. semantic segmentation): podział obrazu na segmenty, gdzie każdy segment reprezentuje różne klasy obiektów. Zadaniem tej techniki jest przypisanie każdemu pikselowi konkretnej klasy. Dla zastosowania zrozumienia otoczenia w pojazdach autonomicznych, przykładowe klasy pikseli to jezdnia, chodnik, pasy, budynek, itp.
8.Segmentacja instancji (ang. instance segmentation): proces polegający na identyfikacji i oddzieleniu każdego indywidualnego obiektu w obrazie. W odróżnieniu od segmentacji semantycznej, segmentacja instancji rozpoznaje każdą unikalną instancję obiektu w obrębie tej samej kategorii. Na przykład, potrafi oddzielić każdą osobę w tłumie, mimo że wszystkie należą do kategorii „ludzie”. Jest to użyteczne w aplikacjach wymagających precyzyjnego rozpoznawania dokładnej lokalizacji poszczególnych obiektów , takich jak pojazdy w ruchu drogowym.
9.Optyczne Rozpoznawanie Znaków (ang. OCR – Optical Character Recognition): umożliwia maszynom rozpoznawanie i interpretację tekstu z obrazów lub dokumentów. Przekształca tekst w formie wizualnej na wersję edytowalną w cyfrowy formacie (np. plik tekstowy). Możliwe jest rozpoznanie znaków z różnych źródeł, takich jak skany dokumentów, zdjęcia tekstu pisanego odręcznie czy pliki PDF, co niweluje potrzebę ręcznego przepisywania treści od początku.
Przykłady systemów wykorzystujących Computer Vision (CV), których używamy w życiu codziennym
Choć z pozoru technologia Computer Vision może wydawać się czymś odległym, zaraz przekonasz się, że tak nie jest. Oto kilka najbardziej popularnych zastosowań tej technologii w życiu codziennym:
1.System rozpoznawania twarzy w smartfonach: Nowoczesne urządzenia takie jak smartfony czy tablety wykorzystują wizję komputerową do bezpiecznego odblokowywania ekranu poprzez rozpoznawanie twarzy użytkownika.
2.Systemy monitoringu: Computer vision jest używana w systemach kamer bezpieczeństwa, umożliwiając wykrywanie ruchu, rozpoznawanie osób i pojazdów, a nawet śledzenie podejrzanych działań.
3.Tłumacz Google: Aplikacja posiada funkcję, która pozwala użytkownikom skierować kamerę smartfona na tekst w innym języku i niemal natychmiast otrzymać jego tłumaczenie. Wynik ten otrzymujemy dzięki połączonym technikom Optycznego Rozpoznawania Znaków (OCR) oraz Przetwarzania Języka Naturalnego (NLP).
4.Aplikacje do rozpoznawania roślin: Aplikacje takie jak PlantSnap umożliwiają użytkownikom fotografować rośliny w celu uzyskania informacji, takich jak nazwa rośliny, choroba z jaką się zmaga oraz porady na temat pielęgnacji.
5.Systemy asystujące w samochodach: Nowoczesne samochody są wyposażone w systemy wykorzystujące wizję komputerową do monitorowania martwych punktów, asystowania przy parkowaniu czy ostrzegania o potencjalnych zderzeniach.
6.Aplikacje do skanowania i edycji dokumentów: Aplikacje takie jak Adobe Scan czy CamScanner pozwalają na skanowanie dokumentów za pomocą kamery smartfona, z wykorzystaniem wizji komputerowej do automatycznego wykrywania krawędzi dokumentu, poprawiania jakości obrazu czy stworzenia wersji edytowalnej.
Przykłady zastosowania wizji komputerowej w różnych branżach
- Medycyna: W sektorze medycznym, wizja komputerowa służy m.in. do analizowania obrazów medycznych, np. rezonansów magnetycznych i tomografii komputerowych, co pomaga w szybszym diagnozowaniu i precyzyjniejszym leczeniu.
- Przemysł: W przemyśle, wizja komputerowa ma szereg zastosowań takich jak monitorowanie i optymalizacji procesów produkcyjnych czy kontrola jakości produktów.
- Motoryzacja: Wizja komputerowa może służyć do analizowania otoczenia drogowego, w tym wykrywania przeszkód, rozpoznawania znaków czy przestrzeganiu przepisów ruchu drogowego. Innym często spotykanym zastosowaniem jest rozpoznawaniem numeru rejestracyjnego pojazdu na bramkach autostradowych czy nowoczesnych parkingach.
- E-commerce: Platformy e-commerce, takie jak Alibaba i Amazon, wykorzystują Computer Vision do analizy obrazów produktów i rekomendowania podobnych przedmiotów klientom, poprawiając w ten sposób doświadczenia zakupowe.
- Transport i Logistyka: Wizja komputerowa umożliwia monitorowanie i optymalizację przepływu towarów, na przykład poprzez automatyczne skanowanie i śledzenie przesyłek w centrach logistycznych.
- Rolnictwo: Computer VIsion służy z powodzeniem do monitorowania upraw i zdrowia zwierząt gospodarskich, na przykład poprzez analizę zdjęć lotniczych w celu wykrywania chorób roślin lub monitorowania stanu pastwisk.
- Turystyka: Firmy turystyczne mogą wykorzystywać wizję komputerową w swoich aplikacjach, aby pomagać w nawigacji i odkrywaniu nowych miejsc, na przykład przez rozpoznawanie zabytków i dostarczanie na ich temat informacji w czasie rzeczywistym.
Podsumowanie
Mamy nadzieję, że ten artykuł pozwolił Wam zgłębić się w tajniki wizji komputerowej i zrozumieć, jak wielki wpływ ma ona na różne aspekty naszego życia codziennego i biznesowego.
A jeśli chcecie poznać inne terminy z obszaru AI zapraszamy do przeczytania naszych artykułów na temat:
- sztucznej inteligencji
- uczenia maszynowego
- przetwarzania języka naturalnego
- Big Data
- sieci neuronowych
Nie zapomnijcie też zapisać się do naszego newslettera.