Kompletny przewodnik po wykrywaniu obiektów za pomocą głębokiego uczenia [2022]

Opublikowany: 2021-01-08

Spis treści

Wstęp

Wykrywanie obiektów , w uproszczeniu, to metoda używana do rozpoznawania i wykrywania różnych obiektów obecnych na obrazie lub filmie i oznaczania ich etykietami w celu sklasyfikowania tych obiektów. Wykrywanie obiektów zazwyczaj wykorzystuje różne algorytmy do rozpoznawania i lokalizacji obiektów, a algorytmy te wykorzystują głębokie uczenie do generowania znaczących wyników.

Wykrywanie obiektów

Technika wykrywania obiektów pomaga w rozpoznawaniu, wykrywaniu i lokalizacji wielu wizualnych wystąpień obiektów na obrazie lub filmie. Zapewnia znacznie lepsze zrozumienie obiektu jako całości, a nie tylko podstawową klasyfikację obiektu. Ta metoda może służyć do zliczania liczby wystąpień unikalnych obiektów i oznaczania ich dokładnych lokalizacji wraz z etykietowaniem. Z czasem wydajność tego procesu również znacznie się poprawiła, pomagając nam w przypadkach użycia w czasie rzeczywistym. W sumie odpowiada na pytanie: „Jaki przedmiot jest gdzie i ile go tam jest?”.

Źródło

Co to jest obiekt?

Obiekt to element, który można przedstawić wizualnie. Fizyczne cechy obiektu nie mają szerokiego zakresu zmienności. Obiekt musi być półsztywny, aby można go było wykryć i rozróżnić.

Historia wykrywania obiektów

W ciągu ostatnich 20 lat postęp w wykrywaniu obiektów przeszedł przez dwa znaczące okresy rozwoju, począwszy od początku XXI wieku:

1. Tradycyjne wykrywanie obiektów – od początku XXI wieku do 2014 roku.

2. Wykrywanie oparte na głębokim uczeniu – po 2014 r.

Ewolucja techniczna wykrywania obiektów rozpoczęła się na początku XXI wieku i detektorów w tym czasie. Podążali za wizją niskiego i średniego poziomu i stosowali metodę „rozpoznawania według elementów”. Metoda ta umożliwiła wykrywanie obiektów jako pomiar podobieństwa między jego elementami, kształtami i konturami, a cechami, które były brane pod uwagę były transformacje odległości, konteksty kształtu, bez krawędzi itp. Rzeczy nie poszły dobrze, a następnie metody wykrywania maszyn zaczął pojawiać się na obrazie, aby rozwiązać ten problem.

Wieloskalowe wykrywanie obiektów miało być wykonane poprzez uwzględnienie tych obiektów, które mają „różne rozmiary” i „różne proporcje”. Było to jedno z głównych wyzwań technicznych w wykrywaniu obiektów we wczesnych fazach. Jednak po 2014 roku, wraz ze wzrostem postępu technicznego, problem został rozwiązany. Doprowadziło nas to do drugiej fazy wykrywania obiektów , gdzie zadania były realizowane przy użyciu głębokiego uczenia .

Źródło

Pojęcie

Główną koncepcją tego procesu jest to, że każdy obiekt będzie miał swoje cechy. Te cechy mogą nam pomóc w oddzieleniu przedmiotów od pozostałych. Metodologia wykrywania obiektów wykorzystuje te funkcje do klasyfikowania obiektów. Ta sama koncepcja jest używana do takich rzeczy, jak wykrywanie twarzy, wykrywanie odcisków palców itp.

Weźmy na przykład, jeśli na drodze mamy dwa samochody, używając algorytmu wykrywania obiektów , możemy je sklasyfikować i oznaczyć.

Źródło :

Definicja

Wykrywanie obiektów to proces znajdowania wszystkich możliwych wystąpień obiektów ze świata rzeczywistego, takich jak ludzkie twarze, kwiaty, samochody itp. na obrazach lub filmach, w czasie rzeczywistym z najwyższą dokładnością. Technika wykrywania obiektów wykorzystuje pochodne cechy i algorytmy uczenia się do rozpoznawania wszystkich wystąpień kategorii obiektów. Rzeczywiste zastosowania wykrywania obiektów to wyszukiwanie obrazów, ochrona i nadzór, zaawansowane systemy wspomagania kierowcy, znane również jako ADAS, i wiele innych.

Przeczytaj: 10 najlepszych technik głębokiego uczenia

Ogólny opis wykrywania obiektów

My, ludzie, możemy wykrywać różne obiekty znajdujące się przed nami, a także możemy je wszystkie z dokładnością zidentyfikować. Bardzo łatwo jest nam policzyć i zidentyfikować wiele obiektów bez żadnego wysiłku. Ostatnie postępy w technologii spowodowały, że udostępniono duże ilości danych, aby wytrenować wydajne algorytmy, aby komputery wykonywały to samo zadanie klasyfikacji i wykrywania.

Jest tak wiele terminów związanych z rozpoznawaniem obiektów, takich jak widzenie komputerowe, lokalizacja obiektów, klasyfikacja obiektów itp., które mogą Cię przytłoczyć jako początkującego, więc daj nam znać krok po kroku wszystkie te terminy i ich definicje:

  • Wizja komputerowa: Jest to dziedzina sztucznej inteligencji, która umożliwia nam szkolenie komputerów w zakresie rozumienia i interpretowania wizualizacji obrazów i filmów za pomocą algorytmów i modeli.
  • Klasyfikacja obrazów: Polega na wykrywaniu i oznaczaniu obrazów przy użyciu sztucznej inteligencji. Obrazy te są klasyfikowane przy użyciu funkcji podanych przez użytkowników.
  • Lokalizacja obiektów: Polega na wykrywaniu różnych obiektów w danej wizualizacji i rysowaniu wokół nich granicy, głównie prostokąta, w celu ich sklasyfikowania.
  • Wykrywanie obiektów: obejmuje oba te procesy i klasyfikuje obiekty, a następnie rysuje granice dla każdego obiektu i oznacza je zgodnie z ich cechami.

Wszystkie te cechy składają się na proces rozpoznawania obiektów.

Jak działa wykrywanie obiektów?

Teraz, gdy przeszliśmy przez wykrywanie obiektów i zdobyliśmy wiedzę na temat tego, czym on jest, nadszedł czas, aby dowiedzieć się, jak to działa i co sprawia, że ​​działa. Możemy mieć różne podejścia, ale istnieją dwa główne podejścia – podejście do uczenia maszynowego i podejście do głębokiego uczenia się. Oba te podejścia są zdolne do uczenia się i identyfikowania obiektów, ale wykonanie jest bardzo różne.

Przeczytaj także: Samouczek wykrywania obiektów TensorFlow

Metody wykrywania obiektów

Wykrywanie obiektów można przeprowadzić za pomocą podejścia maszynowego i głębokiego uczenia. Podejście do uczenia maszynowego wymaga zdefiniowania funkcji przy użyciu różnych metod, a następnie użycia dowolnej techniki, takiej jak maszyny wektorów nośnych (SVM) do przeprowadzenia klasyfikacji. Natomiast podejście głębokiego uczenia umożliwia przeprowadzenie całego procesu wykrywania bez wyraźnego zdefiniowania cech do przeprowadzenia klasyfikacji. Podejście głębokiego uczenia się opiera się głównie na splotowych sieciach neuronowych (CNN).

Metody uczenia maszynowego

  1. Transformacja cech niezmiennych w skali (SIFT)
  2. Histogram cech zorientowanych gradientów (HOG)
  3. Struktura wykrywania obiektów Viola-Jones

Metody głębokiego uczenia

  1. Propozycje regionów (R-CNN, Fast R-CNN, Faster R-CNN)
  2. Patrzysz tylko raz (YOLO)
  3. Odkształcalne sieci splotowe
  4. Udoskonalająca sieć neuronowa do wykrywania obiektów (RefineDet)
  5. Retina-Net

Poznamy szczegółowo metody głębokiego uczenia się, ale najpierw daj nam znać, co to jest uczenie maszynowe, co to jest głębokie uczenie i jaka jest między nimi różnica.

Co to jest uczenie maszynowe?

Uczenie maszynowe to zastosowanie sztucznej inteligencji do sprawiania, że ​​komputery uczą się na podstawie przekazanych im danych, a następnie podejmują samodzielne decyzje, podobnie jak ludzie. Daje komputerom możliwość uczenia się i przewidywania na podstawie danych i informacji, które są do nich dostarczane, a także poprzez interakcje i obserwacje w świecie rzeczywistym. Uczenie maszynowe to w zasadzie proces wykorzystywania algorytmów do analizy danych, a następnie uczenia się na ich podstawie, aby przewidywać i określać rzeczy na podstawie danych.

Algorytmy uczenia maszynowego mogą samodzielnie podejmować decyzje bez wyraźnego programowania. Algorytmy te tworzą modele matematyczne w oparciu o podane dane, znane jako „zestaw uczący”, w celu dokonywania prognoz. W algorytmach uczenia maszynowego musimy dostarczyć funkcje do systemu, aby uczył się w oparciu o podane funkcje, proces ten nazywa się Inżynierią Cech.

Przykładami codziennych aplikacji uczenia maszynowego są asystenci głosowi, filtrowanie spamu e-mail, rekomendacje produktów itp.

Co to jest głębokie uczenie?

Głębokie uczenie, które jest czasem nazywane głębokim uczeniem strukturalnym, to klasa algorytmów uczenia maszynowego. Głębokie uczenie wykorzystuje wielowarstwowe podejście do wyodrębniania funkcji wysokiego poziomu z dostarczanych do niego danych. Nie wymaga ręcznego dostarczania funkcji do klasyfikacji, zamiast tego próbuje przekształcić swoje dane w abstrakcyjną reprezentację. Po prostu uczy się na przykładach i wykorzystuje je do przyszłej klasyfikacji. Na głębokie uczenie wpływają sztuczne sieci neuronowe (ANN) obecne w naszych mózgach.

Większość metod głębokiego uczenia wykorzystuje sieci neuronowe w celu osiągnięcia wyników. Wszystkie modele uczenia głębokiego wymagają ogromnych mocy obliczeniowych i dużych ilości oznaczonych danych, aby nauczyć się funkcji bezpośrednio z danych. Codzienne zastosowania głębokiego uczenia to agregacja wiadomości lub wykrywanie oszustw, rozpoznawanie wizualne, przetwarzanie języka naturalnego itp.

Uczenie maszynowe i techniki głębokiego uczenia do rozpoznawania obiektów. Źródło

Wykrywanie obiektów za pomocą głębokiego uczenia

Teraz, gdy wiemy bardzo dobrze o wykrywaniu obiektów i głębokim uczeniu, powinniśmy wiedzieć, jak możemy przeprowadzić wykrywanie obiektów za pomocą głębokiego uczenia .

Oto najczęściej używane modele uczenia głębokiego do wykrywania obiektów:

1. Rodzina modeli R-CNN: oznacza regionalne splotowe sieci neuronowe

    • R-CNN
    • Szybki R-CNN
    • Szybsze R-CNN

2. Rodzina modeli YOLO: oznacza, że ​​wyglądasz tylko raz

    • YOLOv1
    • YOLOv2 i YOLOv3

Przyjrzyjmy się im po kolei i zrozummy, jak działają.

Proces wykrywania obiektów obejmuje następujące kroki, które należy wykonać:

  1. Przyjmowanie wizualizacji jako danych wejściowych w postaci obrazu lub wideo.
  2. Podziel wizualizację wejściową na sekcje lub regiony.
  3. Traktuj każdą sekcję osobno i pracuj nad nią jako pojedynczym obrazem
  4. Przekazanie tych obrazów do naszej Convolutional Neural Network (CNN) w celu sklasyfikowania ich na możliwe klasy.
  5. Po dokonaniu klasyfikacji możemy połączyć wszystkie obrazy i wygenerować oryginalny obraz wejściowy, ale także z wykrytymi obiektami i ich etykietami.

Rodzina splotowych sieci neuronowych opartych na regionie (R-CNN)

W ramach rodziny R-CNN istnieje kilka modeli wykrywania obiektów. Te modele wykrywania oparte są na strukturach propozycji regionów. Funkcje te z czasem bardzo się rozwinęły, zwiększając dokładność i wydajność.

Różne modele w ramach R-CNN to:

  • R-CNN

Metoda R-CNN wykorzystuje proces zwany wyszukiwaniem selektywnym w celu znalezienia obiektów z obrazu. Algorytm ten generuje dużą liczbę regionów i wspólnie na nich pracuje. Te kolekcje regionów są sprawdzane pod kątem posiadania obiektów, jeśli zawierają jakikolwiek obiekt. Powodzenie tej metody zależy od dokładności klasyfikacji obiektów.

  • Szybki RCNN

Metoda Fast-RCNN wykorzystuje strukturę R-CNN wraz z siecią SPP (Spatial Pyramid Pooling), aby przyspieszyć powolny model R-CNN. Fast-RCNN używa sieci SPP do obliczenia reprezentacji CNN dla całego obrazu tylko raz. Następnie wykorzystuje tę reprezentację do obliczenia reprezentacji CNN dla każdego fragmentu wygenerowanego przez podejście selektywnego wyszukiwania R-CNN. Fast-RCNN sprawia, że ​​cały proces przebiega od końca do końca.

Model Fast-RCNN obejmuje również regresję pola ograniczającego wraz z procesem uczenia. Sprawia to, że zarówno procesy lokalizacji, jak i klasyfikacji w jednym procesie, przyspieszają ten proces.

  • Szybciej-RCNN

Metoda Faster-RCNN jest nawet szybsza niż Fast-RCNN. Fast-RCNN był szybki, ale proces selektywnego wyszukiwania i ten proces został zastąpiony w Faster-RCNN przez wdrożenie RPN (Region Proposal Network). RPN przyspiesza proces selekcji, wdrażając małą sieć konwolucyjną, która z kolei generuje obszary zainteresowania. Wraz z RPN metoda ta wykorzystuje również Anchor Boxes do obsługi wielu współczynników proporcji i skali obiektów. Faster-RCNN to jeden z najdokładniejszych i najwydajniejszych algorytmów wykrywania obiektów.

R-CNN Szybki RCNN Szybciej-RCNN
Czas testu na obraz 50 sekund 2 sekundy 0,2 sekundy
Prędkość 1x 25x 250x

Rodzina patrzysz tylko raz (YOLO)

Podejście R-CNN, które widzieliśmy powyżej, skupia się na podziale wizualizacji na części i skupia się na częściach, które mają większe prawdopodobieństwo, że zawierają obiekt, podczas gdy framework YOLO skupia się na całym obrazie jako całości i przewiduje ramki ograniczające , a następnie oblicza prawdopodobieństwa swojej klasy, aby oznaczyć pola. Rodzina frameworków YOLO to bardzo szybkie wykrywacze obiektów.

Poniżej omówiono różne modele YOLO:

  • YOLOv1

Model ten jest również nazywany zunifikowanym YOLO, ponieważ model ten łączy wykrywanie obiektów i model klasyfikacji w jedną sieć wykrywania. Była to pierwsza próba stworzenia sieci, która bardzo szybko wykrywa obiekty w czasie rzeczywistym. YOLO przewiduje tylko ograniczoną liczbę ramek ograniczających, aby osiągnąć ten cel.

  • YOLOv2 i v3

YOLOv2 i YOLOv3 to ulepszone wersje platformy YOLOv1. YOLOv2 jest również nazywany YOLO9000. Struktura YOLOv1 powoduje kilka błędów lokalizacyjnych, a YOLOv2 poprawia to, koncentrując się na przywracaniu i lokalizacji. YOLOv2 wykorzystuje normalizację wsadową, skrzynki kotwic, klasyfikatory o wysokiej rozdzielczości, szczegółowe funkcje, klasyfikatory wielopoziomowe i Darknet19. Wszystkie te cechy sprawiają, że v2 jest lepszy niż v1. Ekstraktor funkcji Darknet19 zawiera 19 warstw splotowych, 5 warstw typu max-pooling i warstwę softmax do klasyfikacji obiektów obecnych na obrazie.

Metoda YOLOv3 to najszybsza i najdokładniejsza metoda wykrywania obiektów. Dokładnie klasyfikuje obiekty za pomocą klasyfikatorów logistycznych w porównaniu z podejściem softmax używanym przez YOLOv2. Dzięki temu jesteśmy w stanie dokonywać klasyfikacji z wieloma etykietami. YOLOv3 wykorzystuje również Darknet53 jako ekstraktor funkcji, który ma 53 splotowe warstwy, więcej niż Darknet19 używany przez v2, co czyni go dokładniejszym. Wykorzystuje również detektor małych obiektów do wykrywania wszystkich małych obiektów obecnych na obrazie, których nie można było wykryć za pomocą v1.

Musisz przeczytać : Metody krok po kroku, aby zbudować swój własny system AI już dziś

Streszczenie

Mam nadzieję, że powyższe omówienie wykrywania obiektów i jego implementacji przy użyciu głębokiego uczenia się było dla Ciebie pomocne i pozwoliło zrozumieć podstawową ideę wykrywania obiektów oraz sposób jej implementacji w świecie rzeczywistym przy użyciu różnych metod, a konkretnie przy użyciu głębokiego uczenia.

Detekcję obiektów można wykorzystać w wielu obszarach, aby zmniejszyć wysiłek ludzki i zwiększyć wydajność procesów w różnych dziedzinach. Wykrywanie obiektów, a także głębokie uczenie to obszary, które w przyszłości będą rozkwitać i zaistnieć na wielu polach. W tych dziedzinach jest wiele możliwości, a także wiele możliwości ulepszeń.

Kursy oferowane przez upGrad

u pGrad opracował kompleksowe programy szkoleniowe online dotyczące głębokiego uczenia się, a także uczenia maszynowego zgodnie z oczekiwaniami branży. Moduły szkoleniowe i podejście edukacyjne upGrad pomagają uczniom szybko się uczyć i przygotować do każdego zadania.

Główne programy edukacyjne, które oferuje upGrad, są odpowiednie dla początkujących i średniozaawansowanych

1. Dyplom PG w zakresie uczenia maszynowego i sztucznej inteligencji : jest odpowiedni dla pracujących profesjonalistów, którzy chcą uczyć się uczenia maszynowego od podstaw i przenieść swoje role zawodowe na inżyniera uczenia maszynowego, naukowca danych, architekta AI, analityka biznesowego lub analityka produktu.

2. Master of Science in Machine Learning and AI: Jest to kompleksowy 18-miesięczny program, który pomaga osobom zdobyć tytuł magistra w tej dziedzinie i zdobyć wiedzę w tej dziedzinie, a także zdobyć praktyczne doświadczenie w wielu projektach.

3. Zaawansowana certyfikacja w uczeniu maszynowym i chmurze od IIT Madras: Jest to zaawansowany kurs prowadzony przez IIT Madras w zakresie uczenia maszynowego i technologii w chmurze.

4. Certyfikacja PG w uczeniu maszynowym i uczeniu głębokim: Ten kurs koncentruje się na uczeniu maszynowym i uczeniu głębokim. Dzięki temu kursowi studenci mogą ubiegać się o stanowiska takie jak Inżynier uczenia maszynowego i Data Scientist.

5. Certyfikacja PG w uczeniu maszynowym i NLP: Jest to dobrze zorganizowany kurs do nauki uczenia maszynowego i przetwarzania języka naturalnego. Oferty pracy dla uczących się to Data Scientist i Data Analyst.

UpGrad opracował program nauczania tych programów dla uczenia maszynowego i głębokiego uczenia się, biorąc pod uwagę zasady, aspekty i główne elementy uczenia maszynowego oraz możliwości pracy, tak aby umiejętności były rozwijane od podstaw. Po ukończeniu programu z poziomu upGrad czekają na Ciebie ogromne możliwości kariery w dziedzinie uczenia maszynowego w różnych branżach i na różnych stanowiskach.

Dolna linia

Studenci mogą wybrać dowolną z wyżej wymienionych ścieżek, aby budować swoją karierę w uczeniu maszynowym i uczeniu głębokim. Wsparcie w zakresie stażu upGrad pomaga uczniom zwiększyć ich perspektywy pracy poprzez ekscytujące możliwości kariery w portalu pracy, targi kariery i hackathony, a także wsparcie w zakresie stażu. Przyszłość głębokiego uczenia się jest jaśniejsza wraz z rosnącym popytem i perspektywami rozwoju, a także wieloma osobami, które chcą zrobić karierę w tej dziedzinie. Weź udział w jednym z tych kursów i wielu innych oferowanych przez upGrad, aby zanurzyć się w czekających na Ciebie możliwościach kariery w dziedzinie uczenia maszynowego.

Jakie są algorytmy głębokiego uczenia wykorzystywane do wykrywania obiektów?

Wykrywanie obiektów to zadanie z zakresu wizji komputerowej, które odnosi się do procesu lokalizowania i identyfikowania wielu obiektów na obrazie. Algorytmy głębokiego uczenia, takie jak YOLO, SSD i R-CNN, wykrywają obiekty na obrazie za pomocą głębokich, splotowych sieci neuronowych, rodzaju sztucznej sieci neuronowej inspirowanej korą wzrokową. Głęboko splotowe sieci neuronowe to najpopularniejsza klasa algorytmów głębokiego uczenia do wykrywania obiektów. Głębokie sieci konwolucyjne są szkolone na dużych zbiorach danych. Sieci te mogą wykrywać obiekty ze znacznie większą wydajnością i dokładnością niż poprzednie metody.

Który algorytm jest najlepszy do wykrywania obiektów?

Istnieje wiele algorytmów wykrywania obiektów, od prostych skrzynek po złożone Deep Networks. Obecnie standardem branżowym jest YOLO, co jest skrótem od You Only Look Once. YOLO to prosta i łatwa do wdrożenia sieć neuronowa, która klasyfikuje obiekty ze stosunkowo dużą dokładnością. W skrócie, sieć neuronowa to system połączonych ze sobą warstw, które symulują komunikację neuronów w mózgu. Każda warstwa ma swój własny zestaw parametrów, które są dostosowywane zgodnie z dostarczonymi danymi. Dane wychodzące z każdej warstwy są przekazywane do następnej warstwy i tak dalej, aż otrzymamy ostateczną prognozę jako dane wyjściowe.

Jakie trudności napotkałeś podczas identyfikacji obiektów?

Istnieje wiele trudności, z którymi spotykamy się podczas identyfikacji obiektów. Jedną z trudności jest sytuacja, gdy obiekt jest obrazem sceny. W takich przypadkach musimy znać położenie kamery w przeszłości i oszacować położenie poruszającego się obiektu. Ze względu na zmiany w czasie możemy otrzymać zupełnie inny obraz i nie da się go dopasować. Jednym ze sposobów rozwiązania tego problemu jest skorzystanie z pomocy estymacji ruchu. Innym sposobem jest ponowne obliczenie z różnicą czasu.