Operacja konwolucji na macierzy 7×7 z jądrem 3×3
  1. W matematyce, konwolucja jest operacją wykonywaną na dwóch funkcjach (f i g) w celu uzyskania trzeciej funkcji. Konwolucja jest jedną z najważniejszych operacji w przetwarzaniu sygnałów i obrazów. Może działać w 1D (np. przetwarzanie mowy), 2D (np. przetwarzanie obrazu) lub 3D (przetwarzanie wideo).
  2. W przetwarzaniu obrazu, konwolucja jest proces przekształcania obrazu przez zastosowanie jądra nad każdym pikselem i jego lokalnych sąsiadów w całym obrazie. Jądro jest macierzą wartości, których rozmiar i wartości określają efekt transformacji procesu convolution.
  3. Proces Convolution obejmuje następujące kroki. (1)Umieszcza macierz jądra nad każdym pikselem obrazu (zapewniając, że pełne jądro jest w obrębie obrazu), mnoży każdą wartość jądra z odpowiadającym pikselem, nad którym jest. (2)Następnie, sumuje powstałe pomnożone wartości i zwraca wynikową wartość jako nową wartość środkowego piksela. (3) Ten proces jest powtarzany na całym obrazie.
  4. Jak widzimy na rysunku, 3×3 jądro jest convoluted nad 7×7 obrazu źródłowego. Środkowy element jądra jest umieszczony nad pikselem źródłowym. Piksel źródłowy jest następnie zastępowany sumą ważoną samego siebie i otaczających go pikseli. Wynik jest umieszczany w wartości piksela docelowego. W tym przykładzie, na pierwszej pozycji, mamy 0 w pikselu źródłowym i 4 w jądrze. 4×0 to 0, następnie przechodząc do następnego piksela mamy 0 i 0 w obu miejscach. 0x0 jest 0. Potem znowu 0x0 jest 0. Następnie w centrum jest 1 w źródłowym obrazie i 0 w odpowiadającej pozycji jądra. 0x1 jest 0. Następnie ponownie 0x1 jest 0. Następnie 0x0 jest 0 i 0x1 jest 0 i na ostatniej pozycji jest -4×2 co jest -8. Teraz sumując wszystkie te wyniki otrzymujemy -8 jako odpowiedź więc wyjściem tej operacji konwolucji jest -8. Wynik ten jest aktualizowany w Destination image.
  5. Wyjście procesu konwolucji zmienia się wraz ze zmianą wartości jądra. Na przykład, pokazane poniżej jądro Identity, zastosowane do obrazu poprzez konwolucję, nie będzie miało żadnego wpływu na obraz wynikowy. Każdy piksel zachowa swoją oryginalną wartość, jak pokazano na poniższym rysunku.

Jednostka tożsamości

.

Oryginalny obraz (po lewej) i obraz po zastosowaniu filtra tożsamości o rozmiarze 3×3 (po prawej)

Jądro wyostrzające, takie jak to, zastosowane do obrazu poprzez konwolucję, będzie miał efekt wyostrzenia obrazu do obrazu wynikowego. Dokładne wartości mogą być dostosowane do różnych poziomów ostrości, jak pokazano na poniższym rysunku.

Jądro wyostrzające

.

Oryginalny obraz (po lewej) i obraz po zastosowaniu filtru wyostrzającego o rozmiarze 3×3 (po prawej)

Jądro rozmycia gaussowskiego takie jak to, gdy zostanie zastosowane do obrazu poprzez konwolucję, zastosuje efekt rozmycia gaussowskiego do wynikowego obrazu.

Kernel rozmycia gaussowskiego

.

Oryginalny obraz (po lewej) i obraz po zastosowaniu filtra rozmywającego o rozmiarze 7×7 (po prawej)

Jak wartości Jądra mogą być zmieniane dla różnych poziomów efektów, wielkość jądra może być również zmieniana w celu kształtowania efektu konwolucji.Poprzez zwiększenie rozmiaru macierzy jądra, lokalność przestrzenna wpływająca na wartość wynikową każdego piksela jest zwiększona, ponieważ piksele z dalszej odległości są wciągane do równania. Istnieje wiele innych jąder, które są używane w przetwarzaniu obrazów, takich jak wykrywanie krawędzi, wytłaczanie, obracanie itp.

6. Konwolucja jest kluczowym pojęciem w konwencjonalnych sieciach neuronowych. Konwolucyjne sieci neuronowe (CNN) są rodzajem głębokiej sieci neuronowej. CNN składa się z warstwy konwolucyjnej, warstwy łączącej i warstwy w pełni połączonej. W warstwie konwolucyjnej, CNN stosuje konwolucję na swoich wejściach przy użyciu macierzy jądra, którą kalibruje poprzez trening. Z tego powodu, CNN są bardzo dobre w dopasowywaniu cech w obrazach i klasyfikacji obiektów. Parametry warstwy konwolucji składają się z zestawu kerneli, których można się nauczyć. Każde jądro jest małą macierzą, która rozciąga się na całą głębokość objętości wejściowej. Podczas przejścia w przód, konwertujemy każde jądro przez szerokość i wysokość obrazu wejściowego i obliczamy iloczyny kropkowe pomiędzy wartościami pikseli źródła i jądra w odpowiednich pozycjach.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.