Mówiąc najprościej, operacja splotu jest kombinacją iloczynu elementarnego dwóch macierzy. Dopóki te dwie matryce zgadzają się co do wymiarów, nie powinno być problemu, więc mogę zrozumieć motywację twojego zapytania.
A.1 Jednak celem splotu jest zakodowanie źródłowej macierzy danych (całego obrazu) w kategoriach filtra lub jądra. Mówiąc dokładniej, próbujemy zakodować piksele w sąsiedztwie pikseli kotwicznych / źródłowych. Spójrz na poniższy rysunek:
Zazwyczaj każdy piksel obrazu źródłowego traktujemy jako piksel kotwiczny / źródłowy, ale nie jesteśmy do tego zobowiązani. W rzeczywistości często zdarza się, aby dodać krok, w którym w kotwicy / źródle piksele są oddzielone określoną liczbą pikseli.
Okej, więc jaki jest piksel źródłowy? Jest to punkt kontrolny, w którym jądro jest wyśrodkowane, a my kodujemy wszystkie sąsiednie piksele, w tym piksel kotwiczący / źródłowy. Ponieważ jądro ma symetryczny kształt (nie symetryczny w wartościach jądra), z każdej strony (4) piksel kotwicy ma jednakową liczbę (n) pikseli. Dlatego, niezależnie od liczby pikseli, długość każdej strony naszego symetrycznie ukształtowanego jądra wynosi 2 * n + 1 (każda strona kotwicy + piksel kotwicy), dlatego też filtry / jądra mają zawsze nieparzyste rozmiary.
Co jeśli zdecydujemy się zerwać z „tradycją” i zastosujemy jądra asymetryczne? Wystąpiłyby błędy aliasingu, więc my tego nie robimy. Uważamy, że piksel jest najmniejszą jednostką, tzn. Nie ma tutaj koncepcji subpikseli.
A.2 Problemem granicznym jest zajmowanie się różnymi podejściami: niektórzy go ignorują, niektórzy padają na zero, niektórzy odbijają lustro. Jeśli nie zamierzasz obliczyć operacji odwrotnej, tj. Dekonwolucji, i nie jesteś zainteresowany idealną rekonstrukcją oryginalnego obrazu, nie martwi Cię ani utrata informacji, ani wstrzyknięcie hałasu z powodu problemu granicznego. Zazwyczaj operacja łączenia (średnia lub maksymalna) powoduje usunięcie artefaktów granicznych. Dlatego możesz zignorować część swojego „pola wejściowego”, twoja operacja łączenia zrobi to za ciebie.
-
Zen splotu:
W starej szkole przetwarzania sygnału, kiedy sygnał wejściowy był splatany lub przepuszczany przez filtr, nie było możliwości oceny z góry, które elementy skręconej / filtrowanej odpowiedzi są istotne / informacyjne, a które nie. W związku z tym celem było zachowanie komponentów sygnału (wszystkich) w tych transformacjach.
Te elementy sygnału są informacją. Niektóre elementy mają więcej informacji niż inne. Jedynym powodem jest to, że jesteśmy zainteresowani wydobywaniem informacji wyższego poziomu; Informacje dotyczące niektórych klas semantycznych. W związku z tym te elementy sygnału, które nie dostarczają informacji, którymi jesteśmy szczególnie zainteresowani, mogą zostać przycięte. Dlatego, w przeciwieństwie do old-schoolowych dogmatów dotyczących splotu / filtrowania, możemy dowolnie łączyć / przycinać reakcję splotu według własnego uznania. Chcemy to rygorystycznie usunąć wszystkie składniki danych, które nie przyczyniają się do poprawy naszego modelu statystycznego.