Nowoczesna wizja komputera. Zadania i technologie wizji komputerowej. Programowanie wizji komputerowej w Pythonie

Jak uczyć komputer, aby zrozumieć, co widać na zdjęciu lub obrazku? Wydaje nam się to proste, ale dla komputera to tylko matryca złożona z zer i jednostek, z których trzeba uzyskać ważne informacje.

Czym jest wizja komputerowa? Jest to zdolność komputera do "widzenia"

Wizja jest ważnym źródłem informacji dla osoby, z którą otrzymujemy, według różnych danych, od 70 do 90% wszystkich informacji. I, oczywiście, jeśli chcemy stworzyć inteligentny samochód, musimy zrealizować te same umiejętności i komputer.


Zadanie widzenia komputerowego można sformułować raczej niejasno. Co to jest "widzieć"? Rozumie się, że gdzie się znajduje, tylko patrzy. Na tym polega różnica w widzeniu komputerowym i ludzkiej wizji. Wizja jest dla nas źródłem wiedzy o świecie, a także źródłem informacji metrycznych - czyli umiejętnością rozumienia odległości i rozmiarów.

Semantyczny rdzeń obrazu

Patrząc na obraz, możemy go scharakteryzować za pomocą wielu cech, by tak rzec, wyodrębnić informacje semantyczne.
Na przykład, patrząc na to zdjęcie, możemy powiedzieć, że jest na zewnątrz. Co to za miasto, ruch uliczny. Jakie są samochody? Konfigurując budynek i hieroglify możemy się domyślać, że jest to Azja Południowo-Wschodnia. Z portretu Mao Zedonga rozumiemy, że jest to Pekin, i jeśli ktokolwiek zobaczyłby transmisję wideo lub udał się tam, mógłby odgadnąć, że jest to słynny Plac Tiananmen. Kim jesteśmyczy możemy powiedzieć o obrazie, biorąc to pod uwagę? Możemy wyróżnić obiekty na obrazie, powiedzmy, że tam są ludzie, płot jest bliżej. Oto parasole, oto dom, oto płacz. Są to przykłady klas bardzo ważnych obiektów, które są obecnie wyszukiwane.


Wciąż możemy wydobyć niektóre cechy lub atrybuty obiektów. Na przykład tutaj możemy stwierdzić, że nie jest to portret niektórych zwykłych Chińczyków, a mianowicie Mao Zedonga. Samochodem można stwierdzić, że jest to obiekt poruszający się i jest sztywny, to znaczy, że ruch nie ulega deformacji. O flagach możemy powiedzieć, że te obiekty się poruszają, ale nie są sztywne, ciągle zdeformowane. A także na scenie jest wiatr, który może być określony przez rozwijającą się flagę, a nawet Ty możesz określić kierunek wiatru, na przykład, wieje od lewej do prawej.

Wartość odległości i długości we wszechświecie komputerowym

Bardzo ważna jest informacja metryczna w nauce wizji komputerowej. To wszystko na różne odległości. Na przykład dla łazika jest to szczególnie ważne, ponieważ zespoły z Ziemi trwają około 20 minut, a odpowiedź jest taka sama. Odpowiednio, wywołanie tam iz powrotem trwa 40 minut. A jeśli opracujemy plan ruchów zespołów Ziemi, musimy wziąć to pod uwagę.
Z powodzeniem zintegrowano technologie wizji komputerowej w grach wideo. Z filmu można budować trójwymiarowe modele obiektów, ludzi, a po zdjęciach użytkowników można przywracać trójwymiarowe modele miast. A potem chodź z nim. Wizja komputerowa to dość szeroki obszar. Jest ściśle powiązany z różnymi innymi naukami. Częściowo komputerowa wizjarejestruje obszar przetwarzania obrazu, a czasami podkreśla obszar widzenia maszyny, historycznie tak ukształtowany.

Analiza, rozpoznawanie obrazów - ścieżka do tworzenia wyższej inteligencji

. Rozważmy te pojęcia oddzielnie.
Przetwarzanie obrazu jest obszarem algorytmów z obrazami wejściowymi i wyjściowymi, a my już coś z nim robimy. Analiza obrazu to obszar komputerowej wizji, który koncentruje się na pracy z obrazami dwuwymiarowymi i wyciąga z tego wnioski. Rozpoznawanie wzorca jest abstrakcyjną dyscypliną matematyczną, która rozpoznaje dane w postaci wektorów. Oznacza to, że przy wejściu - wektor i mamy z tym coś wspólnego. Gdzie ten wektor, z zasady niewiele wiemy. Wizja komputerowa - początkowo była to rekonstrukcja struktury obrazów dwuwymiarowych. Teraz obszar ten stał się szerszy i można go ogólnie interpretować jako proces decyzyjny dotyczący obiektów fizycznych, oparty na obrazie. To jest problem sztucznej inteligencji. Równolegle z wizją komputerową w zupełnie innym obszarze, w geodezji opracowano fotogrametrię - pomiar odległości między obiektami w obrazach dwuwymiarowych.

Dzieła mogą "widzieć"

A ostatnia to wizja maszynowa. Pod maszynowym widzeniem jest wizja robotów. To jest rozwiązanie niektórych zadań produkcyjnych. Można powiedzieć, że komputerowa wizja-jest jedną wielką nauką. Łączy w sobie niektóre inne nauki. A gdy wizja komputerowa otrzymuje określoną aplikację, staje się ona wizją maszynową.
Pole widzenia komputerowego ma wiele praktycznych zastosowań. Tak jestzwiązane z automatyzacją produkcji. W przedsiębiorstwach skuteczniej jest zastąpić pracę fizyczną maszyną. Samochód się nie męczy, nie śpi, ma nieregularny harmonogram pracy, jest gotowa do pracy przez 365 dni w roku. Tak więc, używając pracy maszynowej, możemy uzyskać gwarantowany wynik w określonym czasie, a to jest całkiem interesujące. Wszystkie zadania dla komputerowych systemów wizyjnych mają zastosowanie wizualne. I nie ma nic lepszego niż zobaczyć wynik bezpośrednio z obrazu, tylko na etapie obliczeń.

Na progu świata sztucznej inteligencji

Obszary Plus - to trudne! Istotna część mózgu jest odpowiedzialna za widzenie i uważa się, że jeśli uczy się komputer "widzieć", to znaczy, aby w pełni zastosować wizję komputerową, to jest to jedno z pełnych zadań sztucznej inteligencji. Jeśli uda nam się rozwiązać problem na poziomie ludzkim, najprawdopodobniej rozwiążemy problem II. Co jest bardzo dobre! Lub niezbyt dobrze, jeśli oglądasz Terminator 2. Dlaczego wizja jest trudna? Ponieważ obrazy tych samych obiektów mogą się bardzo różnić w zależności od czynników zewnętrznych. W zależności od punktów obserwacji obiekty wyglądają inaczej. Na przykład jedna i ta sama postać została wykonana z różnych kątów. I co najciekawsze, postać może być jednym okiem, dwoma oczami lub półtora. I w zależności od kontekstu (jeśli zdjęcie to osoba w koszulce z narysowanym okiem), może być więcej niż dwoje oczu.

Komputer nadal nie rozumie, ale już "widzi"

Kolejnym czynnikiem, który tworzy złożoność, jest oświetlenie. Jedna i ta sama scena z innym oświetleniem będzie wyglądać inaczej. Rozmiar obiektówmoże się różnić. I obiekty dowolnej klasy. Jak można mówić o człowieku, że jego wzrost wynosi 2 metry? Wcale nie. Wysokość osoby może wynosić zarówno 2,3 m, jak i 80 cm. Podobnie jak obiekty innych typów, są to jednak obiekty tej samej klasy.
Szczególnie żywe obiekty podlegają różnym deformacjom. Włosy ludzi, sportowców, zwierząt. Zobacz zdjęcia biegających koni, aby ustalić, co dzieje się z ich grzywą, a ogon jest po prostu niemożliwy. I zachodzenie na siebie obiektów na obrazie? Jeśli zdobędziesz takie zdjęcie komputera, nawet najmocniejsza maszyna będzie trudna do podjęcia właściwej decyzji.
Poniższy widok to kamuflaż. Niektóre przedmioty, zwierzęta są maskowane do środowiska i dość umiejętnie. I te same miejsca i kolor. Niemniej jednak widzimy je, choć nie zawsze z daleka. Kolejny problem to ruch. Obiekty w ruchu doświadczają niesamowitych deformacji. Wiele obiektów jest bardzo zmiennych. Tutaj, na przykład, na dwóch zdjęciach poniżej obiektów takich jak "fotel".
I możesz tam usiąść. Ale uczenie samochodu, że takie różne rzeczy to kształty, kolory, materiały, wszystko jest przedmiotem "fotel" - jest to bardzo trudne. To jest zadanie. Integracja technik widzenia komputerowego polega na nauczeniu samochodu zrozumienia, analizy i przewidywania.

Integracja komputerowej wizji na różne platformy

W masach komputerowa wizja zaczęła wnikać w 2001 r., Kiedy powstały pierwsze czujki. Zrobiliśmy dwóch autorów: Viola, Jones. Był to pierwszy szybki i dość niezawodny algorytm, który wykazał moc technik uczenia maszynowego. Teraz wWizja komputerowa to dość nowa praktyczna aplikacja - rozpoznawanie osoby za twarz.
Ale rozpoznanie osoby, jak pokazano w filmach - pod dowolnym kątem, przy różnych warunkach oświetleniowych - jest niemożliwe. Ale aby rozwiązać problem, jedna lub inna osoba o różnym oświetleniu lub w różnych pozach, podobnie jak na zdjęciu w paszporcie, może z dużym stopniem pewności siebie. Wymagania dotyczące zdjęć paszportowych są w dużej mierze związane z funkcją algorytmów wykrywania twarzy. Na przykład, jeśli masz paszport biometryczny, na niektórych nowoczesnych lotniskach możesz skorzystać z automatycznego systemu kontroli paszportowej.

Nierozwiązanym problemem widzenia komputerowego jest umiejętność rozpoznawania dowolnego tekstu

. Być może ktoś użył systemu do rozpoznawania tekstu. Jednym z nich jest Fine Reader, bardzo popularny system Runet. Istnieje wiele formularzy, w których należy podać dane, są one dobrze zeskanowane, informacje są bardzo dobrze rozpoznawane przez system. Ale z arbitralnym tekstem na obrazie sprawa jest znacznie gorsza. To zadanie pozostaje nierozwiązane.

Gry z udziałem widzenia komputerowego, chwytanie ruchu

Oddzielny duży obszar - to tworzenie trójwymiarowych modeli i przechwytywanie ruchu (co jest z powodzeniem stosowane w grach komputerowych). Pierwszy program, komputerowa wizja wykorzystuje, - system interakcji z komputerem za pomocą gestów. Dzięki jego stworzeniu było dużo otwartości. Sam algorytm jest po prostu uporządkowany, ale do jego instalacji konieczne jest stworzenie generatora sztucznych obrazów ludzi do zdobyciamiliony zdjęć. Superkomputer z ich pomocą wyłapał parametry algorytmu, dzięki czemu teraz działa najlepiej. Oto jeden milion obrazów i tydzień liczenia czasu superkomputera pozwala stworzyć algorytm, który pochłania 12% mocy jednego procesora i pozwala dostrzec pozę osoby w czasie rzeczywistym. To jest Microsoft Kinect (2010).
Wyszukiwanie obrazów według zawartości pozwala przesłać zdjęcie do systemu i, w oparciu o wyniki, wyświetli wszystkie obrazy o tej samej treści i wykonane pod tym samym kątem. Przykłady wizji komputerowej: teraz używa się trójwymiarowych i dwuwymiarowych map. Mapy nawigatorów samochodowych są regularnie aktualizowane zgodnie z rejestratorami wideo. Jest baza danych z miliardami zdjęć z geomodelami. Przesyłając migawkę do tej bazy danych, można określić, gdzie została wykonana, a nawet pod jakim kątem. Oczywiście, pod warunkiem, że miejsce to jest bardzo popularne, że kiedyś odwiedzali go turyści i robili zdjęcia okolicy.

Działa wszędzie

Robotyka obecnie, wszędzie, bez niej. Teraz są samochody, które mają specjalne aparaty, które rozpoznają pieszych i znaków drogowych, aby przekazać polecenia kierowcy (jest to, w pewnym sensie, komputerowy program wizyjny, który pomaga kierowcom). Są też w pełni zautomatyzowane samochody służbowe, ale nie mogą polegać wyłącznie na kamerach wideo, nie korzystając z wielu dodatkowych informacji.

Nowoczesny aparat jest analogiem kamery obscury

Porozmawiajmy o cyfrowym obrazie. Nowoczesne aparaty cyfroweuporządkowane według zasady camera-obscurium. Tylko zamiast otworu, przez który światło wchodzi do wiązki i rzutowany na tylnej ściance aparatu zarysu przedmiotu, mamy specjalny system zwany soczewka optyczna. Jego zadaniem jest zbieranie duży promień i obrócić tak, że wszystkie wiązki przez punkt wirtualnego w celu uzyskania występu i tworzenia obrazu na folii lub matrycy.
​​Nowoczesne aparaty cyfrowe (matryce) składają się z oddzielnych elementów - pikseli. Każdy piksel może mierzyć energię światła, które pada na łączną pikseli, a liczba wysyła jeden problem. Dlatego aparat cyfrowy zamiast obrazów otrzymujemy zbiór pomiarów jasności światła, które dotknęły poszczególne piksele - Komputer wzroku. Dlatego też, poprzez zwiększenie obraz widzimy nie jest płynne linie i ostre kontury i siatki kolorowych kwadratów w różnych kolorach - pikseli. Poniżej widzisz pierwszy cyfrowy obraz na świecie.
Ale czego brakuje w tym obrazie? Kolor A jaki jest kolor?

Psychologiczne postrzeganie koloru

Kolor jest tym, co widzimy. Kolor obiektu, jednego i tego samego przedmiotu dla mężczyzny i kota będzie inny. Ponieważ my (ludzie) i zwierzęta mają układ optyczny - wzrok, jest inaczej. Dlatego kolor jest psychologiczną własnością naszej wizji, która pojawia się podczas obserwacji przedmiotów i światła. A nie fizyczna właściwość przedmiotu i światła. Kolor jest wynikiem interakcji składników światła, sceny i naszego systemu wizualnego.

Programowanie wizji komputerowej na Pythonie za pomocąKorzystanie z bibliotek

Jeśli zdecydujesz się uporać z badaniem widzenia komputera, należy natychmiast przygotować szereg trudności, to nie jest najłatwiejsze nauka i kryje wiele pułapek. Ale „programowanie wizja komputer w Pythonie” autorstwo Jan Erik SOLEMA - książkę, w której opisuje on najbardziej prostym językiem. Tutaj nauczysz się metody identyfikacji różnych obiektów w 3D, nauczyć się pracować z stereo, wirtualnej rzeczywistości i wielu innych aplikacjach widzenia komputerowego. Książka zawiera wiele przykładów w Pythonie. Ale wyjaśnienie jest, że tak powiem, na ogół nie przeciążać zbyt ciężki i naukowe informacje. Praca jest odpowiednia dla studentów, tylko dla amatorów i entuzjastów. Pobierz tę książkę i inne wizje komputerowe (w formacie pdf) mogą być online. Obecnie nie jest otwarta biblioteka algorytmów wizji komputerowej i przetwarzania obrazu oraz algorytmów OpenCV. Jest implementowany w większości nowoczesnych języków programowania, z kodem open source. Mówiąc o wizji komputerowej, Python używa języka programowania, posiada również wsparcie biblioteki, a ponadto jest on stale się rozwija i ma dużą społeczność. Microsoft dostarcza swoje usługi Api, które mogą uczyć sieci neuronowe do pracy z obrazami ludzi. Możliwe jest użycie wizji komputerowej Python używa jako języka programowania .

Powiązane publikacje