Wizja komputerowa i sztuczna inteligencja: przekształcanie zrozumienia wizualnego

Opublikowany: 2025-01-15

Widzenie komputerowe to jedna z podstawowych subdomen sztucznej inteligencji (AI). W tym przewodniku wyjaśniono wizję komputerową, jak ona działa, gdzie jest stosowana oraz jakie są jej zalety i wady.

Spis treści

  • Co to jest wizja komputerowa?
  • Historia i ewolucja widzenia komputerowego
  • Jak działa wizja komputerowa
  • Zastosowania widzenia komputerowego
  • Zalety widzenia komputerowego
  • Wady widzenia komputerowego
  • Wniosek

Co to jest wizja komputerowa?

Dziedzina widzenia komputerowego obejmuje wszystkie techniki sztucznej inteligencji, które wykorzystują systemy komputerowe do analizy danych wizualnych, takich jak dane w filmach i zdjęciach. Dziedzina ta oficjalnie istnieje od lat 60. XX wieku, a wczesne zastosowania widzenia komputerowego wykorzystywały dopasowywanie wzorców i inne heurystyki do ulepszania obrazów w biomedycynie, zaawansowanej fizyce i innych nowatorskich dziedzinach badań. Prawie wszystkie najnowsze systemy widzenia komputerowego opierają się wyłącznie na algorytmach uczenia maszynowego (ML) (dokładniej na algorytmach głębokiego uczenia się), ponieważ są one znacznie bardziej skuteczne niż starsze techniki.

Pracuj mądrzej dzięki Grammarly
Partner w pisaniu AI dla każdego, kto ma pracę do wykonania

Historia i ewolucja widzenia komputerowego

Widzenie komputerowe ma swoje korzenie w eksperymentach prowadzonych przez neurofizjologów, którzy starali się zrozumieć, w jaki sposób obrazy wytwarzane przez oko są przetwarzane w mózgu. W ciągu pierwszych kilku dekad swojego rozwoju wizja komputerowa w dużym stopniu czerpała z badań nad widzeniem ludzi i zwierząt i była przez nie inspirowana.

Chociaż trudno jest określić dokładny rok rozpoczęcia, za początek tej dziedziny często uważa się rok 1959. W tym roku ustalono dwie podstawowe koncepcje analizy obrazu: (1) że analiza obrazu powinna skupiać się najpierw na identyfikacji podskładników obrazu oraz (2) że elementy te należy następnie analizować hierarchicznie.

Poniższa lista przedstawia niektóre z najważniejszych kamieni milowych pomiędzy odkryciem tych podstawowych koncepcji a niedawną eksplozją postępu w dziedzinie widzenia komputerowego. Obecnie komputerowe systemy wizyjne opierają się na złożonych algorytmach głębokiego uczenia się w celu przetwarzania, rozumienia, edytowania i tworzenia realistycznych obrazów w czasie rzeczywistym.

Najważniejsze kamienie milowe w rozwoju widzenia komputerowego

1959:Badania mózgów zwierząt wykazały, że najpierw wykrywano proste elementy obrazu (takie jak krawędzie i linie), a następnie przetwarzano je hierarchicznie. Spostrzeżenia te stały się dwoma z podstawowych pojęć w wizji komputerowej i są uznawane za oficjalne początki tej dziedziny.

Lata 60.:Rozpoczęły się pierwsze oficjalne wysiłki związane ze sztuczną inteligencją i wizją komputerową. Postępy obejmowały systemy, które automatycznie przekształcały części fotografii w równoważne obiekty trójwymiarowe.

Lata 70.:Skoncentrowanie się na badaniach i edukacji w zakresie wizji komputerowej doprowadziło do powstania wielu podstawowych algorytmów wizji komputerowej, które są nadal w użyciu, w tym algorytmów do wykrywania wzorców, szacowania ruchu, wykrywania krawędzi, etykietowania linii i modelowania geometrycznego komponentów obrazu.

Lata 80.:W ciągu dekady znacząco rozwinęły się konwolucyjne sieci neuronowe (CNN). W 1989 r. pierwszy CNN został z powodzeniem zastosowany w przypadku problemów ze wzrokiem, automatycznie wykrywając kody pocztowe na obrazach.

Lata 90.:Inteligentne kamery stawały się coraz bardziej popularne i były szeroko stosowane w warunkach przemysłowych. Rosnące zapotrzebowanie na narzędzia do przetwarzania dużych ilości obrazów cyfrowych doprowadziło do eksplozji inwestycji komercyjnych, co doprowadziło do dalszego rozwoju tej dziedziny. Narodził się przemysł widzenia komputerowego i opracowano formalne metody oceny jakości komputerowych systemów wizyjnych.

2000:Pod koniec lat 90. i na początku XXI wieku badacze opracowali koncepcję ślepoty na zmiany. Wykazano, że obserwując dane wizualne, ludzie często nie dostrzegają istotnych zmian. Odkrycie to pomogło w ustaleniu kolejnej pary pojęć — idei uwagi i przetwarzania częściowego — jako kluczowych elementów widzenia komputerowego.

2011:Po raz pierwszy zespół w Szwajcarii wykazał, że CNN zastosowane na procesorach graficznych są zdecydowanie wydajnym systemem ML z wizją komputerową. Systemy te były rewolucyjne, bijąc liczne rekordy widzenia i po raz pierwszy przewyższając ludzi. Komputerowe systemy wizyjne zaczęły przechodzić na wdrożenia oparte na CNN.

2015:Implementacja głębokiego uczenia się CNN po raz pierwszy zwyciężyła w konkursie ImageNet, wyznaczając początek nowoczesnej ery widzenia komputerowego.

Jak działa wizja komputerowa

Praca z wizją komputerową zwykle składa się z trzech części, które opisujemy poniżej. Szczegóły implementacji niższego poziomu mogą być bardzo złożone i często obejmować powtarzające się etapy, jak opisano w części trzeciej poniżej. Nawet jeśli szczegóły implementacji są skomplikowane, praca zwykle przebiega według tych wzorców.

1 Akwizycja obrazu

Podobnie jak inne systemy ML, systemy wizualnego przetwarzania danych zależą od ilości i jakości danych, do których mają dostęp. Projektując komputerowy system wizyjny, zwraca się szczególną uwagę na to, kiedy i w jaki sposób uzyskuje się dane źródłowe i obrazy, aby poprawić jakość przetwarzania. Należy wziąć pod uwagę i zoptymalizować różne czynniki, w tym:

  • Czujniki:liczba i typy używanych czujników. Komputerowe systemy wizyjne wykorzystują czujniki do uzyskiwania danych z otoczenia, w tym kamery wideo, lidar (wykrywanie i określanie odległości światła), radar i czujniki podczerwieni.
  • Wdrożenie:rozmieszczenie i orientacja czujników w celu zminimalizowania martwych punktów i optymalnego wykorzystania informacji z czujników.
  • Dane z czujników:różne rodzaje i ilości danych muszą być przetwarzane i interpretowane w różny sposób. Na przykład dane MRI, rentgenowskie i wideo wymagają specjalistycznego przetwarzania, przechowywania i interpretacji.

W idealnym przypadku komputerowy system wizyjny powinien mieć dostęp do wystarczającej liczby danych obrazu. Przy zbyt małej ilości danych nie będzie w stanie zobaczyć wystarczającej ilości informacji, aby rozwiązać problemy, które ma rozwiązać. Zbyt wiele nieistotnych danych maksymalnie wykorzysta zasoby systemu, spowolni go i sprawi, że jego obsługa będzie kosztowna. Do budowy efektywnych komputerowych systemów wizyjnych kluczowa jest staranna optymalizacja etapu akwizycji obrazu.

2 (Wstępna) obróbka obrazu

Te same dane wizualne z dwóch różnych źródeł mogą oznaczać różne rzeczy. Szczegóły dotyczące kontekstu, w którym zdjęcie zostało zrobione (takie jak oświetlenie otoczenia, temperatura i ruch aparatu) mogą również wskazywać, że zdjęcie należy interpretować inaczej.

Wstępne przetwarzanie obrazu wymaga dużo pracy, aby ułatwić zrozumienie i analizę obrazów. Na przykład obrazy mogą być znormalizowane, co oznacza, że ​​właściwości takie jak rozmiar, kolor, rozdzielczość i orientacja są dostosowywane tak, aby były spójne we wszystkich obrazach. Inne właściwości można również dostosować podczas wstępnego przetwarzania, aby pomóc algorytmom wizyjnym wykryć cechy specyficzne dla domeny. Na przykład kontrast można zwiększyć, aby niektóre obiekty lub elementy były bardziej widoczne.

Można dokonać niestandardowych regulacji w celu skompensowania różnic w czujnikach, uszkodzeń czujników i związanych z nimi prac konserwacyjnych. Na koniec można wprowadzić pewne korekty w celu optymalizacji wydajności i kosztów przetwarzania, biorąc pod uwagę szczegółowe informacje na temat sposobu analizy obrazów.

3 Przetwarzanie i analiza obrazu: ekstrakcja cech, rozpoznawanie wzorców i klasyfikacja

Obecne systemy widzenia komputerowego są hierarchiczne i uwzględniają części każdego obrazu niezależnie. Każda warstwa w hierarchii jest zazwyczaj wyspecjalizowana do wykonywania jednej z trzech rzeczy:

  • Ekstrakcja cech:Warstwa ekstrakcji cech wyszukuje interesujące komponenty obrazu. Może na przykład określić, gdzie na obrazie znajdują się linie proste.
  • Rozpoznawanie wzorców:Warstwa rozpoznawania wzorców sprawdza, w jaki sposób różne funkcje łączą się we wzorce. Może na przykład zidentyfikować, które kombinacje linii na obrazie tworzą wielokąty.
  • Klasyfikacja:po wystarczającej liczbie powtórzeń wyodrębniania cech i rozpoznawania wzorców system mógł dowiedzieć się wystarczająco dużo o danym obrazie, aby odpowiedzieć na pytanie klasyfikacyjne, takie jak „Czy na tym zdjęciu są jakieś samochody?” Warstwa klasyfikacyjna odpowiada na takie pytania.

Poniższy diagram pokazuje, jak jest to zaimplementowane w architekturze komputerowego systemu wizyjnego zbudowanego z CNN. Dane wejściowe (zwykle obraz lub film), które analizuje system, znajdują się po lewej stronie diagramu. CNN, zaimplementowana jako głęboka sieć neuronowa, łączy warstwy splotowe, które wyróżniają się ekstrakcją cech, z warstwami łączenia, które wyróżniają się rozpoznawaniem wzorców. Szczegóły obrazu są przetwarzane od lewej do prawej, a powtórzeń obu warstw może być znacznie więcej niż pokazano poniżej.

Architektura konwolucyjnej sieci neuronowej (CNN).

Po zakończeniu wystarczająco głębokiej analizy w pełni połączona warstwa neuronów uwzględnia wszystkie wzorce i cechy danych łącznie i rozwiązuje problem klasyfikacji (taki jak „Czy na zdjęciu jest samochód?”).

Zastosowania widzenia komputerowego

Wizja komputerowa ma wszechstronne zastosowanie. W miarę jak systemy stały się potężniejsze i łatwiejsze w zastosowaniu, liczba zastosowań eksplodowała. Oto niektóre z bardziej znanych aplikacji.

Rozpoznawanie twarzy

Jedno z najbardziej wszechobecnych i zaawansowanych zastosowań widzenia komputerowego polega na wykrywaniu i rozpoznawaniu twarzy. Smartfony, systemy bezpieczeństwa i urządzenia kontroli dostępu wykorzystują kombinację czujników, kamer i wytrenowanych sieci neuronowych do identyfikowania obrazów zawierających twarze i przekształcania znalezionych twarzy w celu umożliwienia ich analizy.

System rozpoznawania twarzy regularnie skanuje twarze w pobliżu. Dane z tanich i szybkich czujników, takich jak źródło światła podczerwonego i kamera o niskiej rozdzielczości, ale o wysokim kontraście, są przepuszczane przez model ML, który identyfikuje obecność twarzy.

W przypadku wykrycia potencjalnych twarzy można nakierować na nie wolniejszą, droższą kamerę o wyższej rozdzielczości i wykonać krótkie nagranie. System przetwarzania wizualnego może następnie przekształcić nagranie w rekonstrukcje 3D, aby pomóc potwierdzić obecność twarzy. Klasyfikator twarzy może następnie zdecydować, czy osoby na zdjęciu należą do grupy, która może odblokować telefon lub uzyskać dostęp do budynku.

Pojazdy autonomiczne

Trudno jest zbudować system, który będzie w stanie sterować pojazdem, nawigować po świecie i reagować w czasie rzeczywistym na zmiany w jego otoczeniu. Komputerowe systemy wizyjne to tylko jedna z podstawowych technologii umożliwiających pojazdy autonomiczne.

Te systemy wizyjne uczą się rozpoznawać drogi, znaki drogowe, pojazdy, przeszkody, pieszych i większość innych rzeczy, które mogą napotkać podczas jazdy. Zanim będą skuteczne, muszą przeanalizować duże ilości danych uzyskanych w każdych warunkach jazdy.

Aby systemy wizyjne stosowane w pojazdach autonomicznych były przydatne w rzeczywistych warunkach, muszą być bardzo szybkie (aby pojazd autonomiczny miał maksymalnie czas na reakcję na zmieniające się warunki), dokładne (bo błąd może zagrażać życiu) i mocne (bo problem jest złożone – system musi identyfikować obiekty w każdych warunkach pogodowych i oświetleniowych). Firmy zajmujące się pojazdami autonomicznymi intensywnie inwestują w ekosystem. Ilość dostępnych danych rośnie wykładniczo, a techniki stosowane do ich przetwarzania szybko się udoskonalają.

Rozszerzona rzeczywistość

Inteligentne okulary i obecne aparaty telefoniczne wykorzystują komputerowe systemy wizyjne, aby zapewnić swoim użytkownikom doświadczenia rzeczywistości rozszerzonej. Dobrze wyszkolone systemy, podobne do tych stosowanych w pojazdach autonomicznych, identyfikują obiekty w kadrze dla kamery lub zestawu inteligentnych okularów oraz położenie obiektów względem siebie w przestrzeni 3D.

Zaawansowane systemy generowania obrazu następnie wykorzystują te informacje, aby na różne sposoby wzbogacić to, co kamera lub okulary pokazują użytkownikowi. Mogą na przykład stworzyć iluzję, że dane są rzutowane na powierzchnie lub pokazać, jak obiekty takie jak meble mogą pasować do przestrzeni 3D.

Zalety widzenia komputerowego

Komputerowe systemy wizyjne mogą pomóc ulepszyć ludzką wizję, ulepszyć systemy bezpieczeństwa i analizować dane na dużą skalę. Do głównych korzyści płynących z ich stosowania zaliczają się:

Szybkość i skala rozpoznawania obiektów

Najnowocześniejsze komputerowe systemy wizyjne mogą identyfikować obiekty znacznie szybciej i przy znacznie większej głośności niż ludzie. Na przykład linia montażowa będzie działać szybciej, gdy jej przełożonemu pomoże zautomatyzowany komputerowy system wizyjny. Pojazdy autonomiczne mogą działać w trybie wspomagania kierowcy, pomagając kierowcom zwracać uwagę na informacje z otoczenia, których nie wykryją szybko. Potrafią też w pełni przejąć kontrolę i podejmować szybsze i bezpieczniejsze decyzje niż pozbawiony pomocy człowiek.

Dokładność

Dobrze wyszkolone komputerowe systemy wizyjne są dokładniejsze od ludzi w wykonywaniu zadań, w zakresie których są szkoleni. Mogą na przykład dokładniej identyfikować defekty obiektów lub wcześniej wykrywać nowotwory na obrazach medycznych.

Duża ilość przetwarzania danych

Systemy wizyjne potrafią identyfikować anomalie i zagrożenia w dużej liczbie obrazów i materiałów wideo znacznie szybciej i dokładniej niż ludzie. Ich zdolność do przetwarzania informacji jest powiązana z dostępną mocą obliczeniową i można ją zwiększać w nieskończoność.

Wady widzenia komputerowego

Wyprodukowanie wydajnych komputerowych systemów wizyjnych jest trudne. Niektóre z wyzwań i wad obejmują:

Nadmierne dopasowanie

Obecne komputerowe systemy wizyjne opierają się na algorytmach i sieciach głębokiego uczenia się. Zależą one od dostępu do dużych zbiorów danych z adnotacjami podczas szkolenia. Obecnie wizualne dane szkoleniowe nie są dostępne w dużych ilościach w innych aplikacjach, a ich generowanie jest trudne i kosztowne. W rezultacie wiele komputerowych systemów wizyjnych jest szkolonych na niewystarczających danych i będzie się nadmiernie dopasowywać – będą potrzebować pomocy w uogólnianiu na nowe i niewidziane sytuacje.

Trudno jest zagwarantować prywatność na dużą skalę

Komputerowe systemy wizyjne mogą obserwować i uczyć się na podstawie dużych ilości prywatnych lub chronionych danych. Gdy znajdą się w terenie, mogą również obserwować dowolne dane w swoim otoczeniu. Trudno zagwarantować, że dane szkoleniowe nie będą zawierać informacji prywatnych, a jeszcze trudniej jest uniemożliwić systemowi w terenie włączenie prywatnych informacji do swojego szkolenia.

Obliczeniowo złożone

Systemy wykorzystujące wizję komputerową są zwykle stosowane w przypadku niektórych z najtrudniejszych problemów w dziedzinie sztucznej inteligencji. W rezultacie są one drogie i złożone, a ich prawidłowe zbudowanie i zmontowanie może być trudne.

Wniosek

Wiele z najciekawszych i najbardziej wymagających problemów w uczeniu się maszyn i sztucznej inteligencji wiąże się z wykorzystaniem i zastosowaniem komputerowych systemów wizyjnych. Są wszechobecnie przydatne, w tym w systemach bezpieczeństwa, pojazdach autonomicznych, analizie obrazów medycznych i gdzie indziej. To powiedziawszy, komputerowe systemy wizyjne są drogie i trudne w budowie.

Polegają one na czasochłonnym gromadzeniu danych na dużą skalę, wymagają niestandardowych lub kosztownych zasobów, zanim będzie można je efektywnie wykorzystać, i budzą obawy dotyczące prywatności. Prowadzone są szeroko zakrojone badania w tym kluczowym obszarze ML, który szybko się rozwija.