Spisu treści:
- Krok 1: Rozszerz zakres dynamiczny swojego obrazu lub obrazów
- Racjonalne uzasadnienie:
- Krok 2: Przetwarzaj obrazy lub wykonaj wizję komputerową, uczenie maszynowe lub tym podobne
- Krok 3: Ponownie skompresuj zakres dynamiczny wyniku
- Krok 4: Możesz spróbować innych odmian
- Krok 5: Idąc dalej: teraz wypróbuj to z kompozytami obrazów HDR
Wideo: Ilościowe przetwarzanie obrazu: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
(Powyższy rysunek ilustruje porównanie istniejącej metody przetwarzania obrazu z kwantymetrycznym przetwarzaniem obrazu. Zwróć uwagę na lepszy wynik. Górny prawy obraz pokazuje dziwne artefakty, które wynikają z błędnego założenia, że obrazy mierzą coś takiego jak światło. Dolny prawy obraz pokazuje lepsze wyniki, robiąc to samo ilościowo.)
W tej instrukcji dowiesz się, jak znacznie poprawić wydajność istniejących systemów obrazowania lub wykrywania wizji, stosując bardzo prostą koncepcję: kwantymetryczne wykrywanie obrazu
Przetwarzanie obrazu ilościowego znacznie poprawia którykolwiek z poniższych:
- Istniejące przetwarzanie obrazu, takie jak usuwanie rozmycia obrazu;
- Uczenie maszynowe, widzenie komputerowe i rozpoznawanie wzorców;
- Urządzenie do rozpoznawania twarzy do noszenia (patrz https://wearcam.org/vmp.pdf), widzenie oparte na AI i HI itp.
Podstawową ideą jest kwantymetryczne wstępne i końcowe przetwarzanie obrazów w następujący sposób:
- Rozszerz zakres dynamiczny obrazu lub obrazów;
- Przetwarzaj obraz lub obrazy tak, jak zwykle;
- Kompresuj zakres dynamiczny obrazu lub obrazów (tzn. cofnij krok 1).
W poprzednich Instructables uczyłem niektórych aspektów wykrywania HDR (High Dynamic Range) i wykrywania kwantymetrycznego, m.in. liniowość, superpozycja itp.
Teraz wykorzystajmy tę wiedzę.
Wybierz dowolny istniejący proces, którego chcesz użyć. Przykładem, który pokażę, jest usuwanie rozmycia obrazu, ale można go również użyć do czegokolwiek innego.
Krok 1: Rozszerz zakres dynamiczny swojego obrazu lub obrazów
(Dane zaczerpnięte z „Intelligent Image Processing”, John Wiley and Sons Interscience Series, Steve Mann, listopad 2001)
Pierwszym krokiem jest rozszerzenie zakresu dynamicznego obrazu wejściowego.
Najlepiej byłoby najpierw określić funkcję reakcji aparatu f, a następnie zastosować do obrazu odpowiedź odwrotną f odwrotną.
Typowe kamery mają kompresję zakresu dynamicznego, więc zazwyczaj chcemy zastosować funkcję ekspansywną.
Jeśli nie znasz funkcji odpowiedzi, zacznij od czegoś prostego, takiego jak załadowanie obrazu do tablicy obrazów, rzutowanie zmiennych na typ danych, taki jak (float) lub (double) i podniesienie wartości każdego piksela do wykładnika, jak na przykład podnoszenie do kwadratu każdej wartości piksela.
Racjonalne uzasadnienie:
Dlaczego to robimy?
Odpowiedź jest taka, że większość aparatów kompresuje swój zakres dynamiczny. Powodem, dla którego to robią, jest to, że większość nośników graficznych rozszerza zakres dynamiczny. Dzieje się tak całkiem przypadkowo: ilość światła emitowanego przez ekran telewizora z lampą elektronopromieniową jest w przybliżeniu równa napięciu podniesionemu do wykładnika 2,22, tak że gdy napięcie wejściowe wideo jest około połowy, ilość emitowanego światła jest bardzo duża. mniej niż połowa.
Nośniki fotograficzne są również ekspansywne w zakresie dynamicznym. Na przykład „neutralna” szara karta fotograficzna emituje 18% padającego światła (nie 50% padającego światła). Uważa się, że tyle światła (18%) znajduje się w środku odpowiedzi. Jak widać, jeśli spojrzymy na wykres wyjścia jako funkcję danych wejściowych, nośniki wyświetlacza zachowują się tak, jakby były idealnymi wyświetlaczami liniowymi, które zawierają rozszerzenie zakresu dynamicznego przed idealną odpowiedzią liniową.
Na górnym rysunku, powyżej, możesz zobaczyć wyświetlacz obramowany linią przerywaną i jest to równoważne posiadaniu ekspandera przed idealnym wyświetlaczem liniowym.
Ponieważ wyświetlacze są z natury ekspansywne, kamery muszą być zaprojektowane tak, aby były skompresowane, aby obrazy wyglądały dobrze na istniejących wyświetlaczach.
W dawnych czasach, kiedy istniały tysiące wyświetlaczy odbiorników telewizyjnych i tylko jedna lub dwie stacje nadawcze (np. tylko jedna lub dwie kamery telewizyjne), łatwiej było wprowadzić kompresyjną nieliniowość do kamery niż przywołać wszystkie telewizory i umieść po jednym w każdym odbiorniku telewizyjnym.
Przypadkowo pomogło to również w redukcji hałasu. W audio nazywamy to „Dolby” („towarzyszeniem”) i przyznajemy na to patent. Na wideo stało się to całkowicie przez przypadek. Stockham zaproponował, że powinniśmy logarytmować obrazy przed ich przetworzeniem, a następnie wziąć antylog. Nie zdawał sobie sprawy, że większość aparatów i wyświetlaczy robi to całkiem przypadkowo. Zamiast tego zaproponowałem, że zrobimy dokładnie odwrotność tego, co zaproponował Stockham. (Patrz „Inteligentne przetwarzanie obrazu”, John Wiley and Sons Interscience Series, strona 109-111.)
Na dolnym obrazku widać proponowane antyhomomorficzne (kwantymetryczne) przetwarzanie obrazu, w którym dodaliśmy etap rozszerzania i kompresji zakresu dynamicznego.
Krok 2: Przetwarzaj obrazy lub wykonaj wizję komputerową, uczenie maszynowe lub tym podobne
Drugim krokiem, po rozszerzeniu zakresu dynamicznego, jest obróbka obrazów.
W moim przypadku wykonałem po prostu dekonwolucję obrazu, z funkcją rozmycia, czyli rozmycia obrazu, co jest powszechnie znane w stanie techniki.
Istnieją dwie szerokie kategorie kwantymetrycznego wykrywania obrazów:
- Pomaganie ludziom widzieć;
- Pomaganie maszynom widzieć.
Jeśli próbujemy pomóc ludziom zobaczyć (co jest przykładem, który tu pokazuję), to jeszcze nie koniec: musimy przenieść przetworzony wynik z powrotem do przestrzeni obrazu.
Jeśli pomagamy maszynom widzieć (np. rozpoznawanie twarzy), to już koniec (nie trzeba przechodzić do kroku 3).
Krok 3: Ponownie skompresuj zakres dynamiczny wyniku
Kiedy pracujemy w rozszerzonym zakresie dynamicznym, mówi się, że znajdujemy się w „przestrzeni światła” (kwantymetrycznej przestrzeni obrazu).
Pod koniec kroku 2 jesteśmy w lightspace i musimy wrócić do przestrzeni obrazów.
Tak więc ten krok 3 dotyczy powrotu do przestrzeni obrazów.
Aby wykonać krok 3, po prostu skompresuj zakres dynamiczny danych wyjściowych kroku 2.
Jeśli znasz funkcję odpowiedzi aparatu, po prostu zastosuj ją, aby uzyskać wynik f(p(q)).
Jeśli nie znasz funkcji reakcji aparatu, po prostu zgadnij.
Jeśli w kroku 1 podniosłeś do kwadratu piksele obrazu, nadszedł czas, aby wyciągnąć pierwiastek kwadratowy z każdego piksela obrazu, aby powrócić do przypuszczeń dotyczących przestrzeni obrazu.
Krok 4: Możesz spróbować innych odmian
Rozmycie to tylko jeden z wielu możliwych przykładów. Rozważmy na przykład łączenie wielokrotnych ekspozycji.
Zrób dowolne dwa zdjęcia, takie jak te, które mam powyżej. Jedno zostało zrobione w dzień, a drugie w nocy.
Połącz je, aby uzyskać obraz przypominający zmierzch.
Jeśli po prostu uśrednisz je razem, wygląda to jak śmieci. Spróbuj sam!
Ale jeśli najpierw rozszerzysz zakres dynamiczny każdego obrazu, a następnie je dodasz, a następnie skompresujesz zakres dynamiczny sumy, wygląda to świetnie.
Porównaj przetwarzanie obrazu (dodawanie obrazów) z kwantymetrycznym przetwarzaniem obrazu (rozszerzanie, dodawanie, a następnie kompresowanie).
Możesz pobrać mój kod i więcej przykładowych materiałów tutaj:
Krok 5: Idąc dalej: teraz wypróbuj to z kompozytami obrazów HDR
(Powyżej: przyłbica spawalnicza HDR wykorzystuje kwantymetryczne przetwarzanie obrazu do nakładek rzeczywistości rozszerzonej. Zobacz Slashgear 2012 12 września)
W podsumowaniu:
zrób zdjęcie i wykonaj następujące czynności:
- poszerzyć zakres dynamiczny obrazu;
- przetwarzać obraz;
- skompresować zakres dynamiczny wyniku.
A jeśli chcesz uzyskać jeszcze lepszy wynik, wypróbuj następujące rozwiązania:
uchwycić wiele różnie naświetlonych obrazów;
- rozszerzyć zakres dynamiczny do przestrzeni świetlnej, zgodnie z moją poprzednią instrukcją dotyczącą HDR;
- przetworzyć uzyskany obraz kwantymetryczny, q, w przestrzeni świetlnej;
- skompresować zakres dynamiczny poprzez mapowanie tonów.
Baw się dobrze, kliknij „Udało mi się” i opublikuj swoje wyniki, a ja chętnie skomentuję lub udzielę konstruktywnej pomocy.
Zalecana:
Przetwarzanie obrazu za pomocą Raspberry Pi: Instalacja OpenCV i separacja kolorów obrazu: 4 kroki
Przetwarzanie obrazu za pomocą Raspberry Pi: Instalowanie OpenCV i separacji kolorów obrazu: Ten post jest pierwszym z kilku samouczków dotyczących przetwarzania obrazu, które mają zostać wykonane. Przyglądamy się bliżej pikselom, które składają się na obraz, dowiadujemy się, jak zainstalować OpenCV na Raspberry Pi, a także piszemy skrypty testowe do przechwytywania obrazu, a także c
Bluetooth Audio i cyfrowe przetwarzanie sygnału: struktura Arduino: 10 kroków
Bluetooth Audio i cyfrowe przetwarzanie sygnału: struktura Arduino: Podsumowanie Kiedy myślę o Bluetooth, myślę o muzyce, ale niestety większość mikrokontrolerów nie może odtwarzać muzyki przez Bluetooth. Raspberry Pi może, ale to jest komputer. Chcę opracować platformę opartą na Arduino dla mikrokontrolerów do odtwarzania dźwięku przez Bluet
Bluetooth i IMU z płytką Tactigon - przetwarzanie: 7 kroków
Bluetooth i IMU z płytką Tactigon - przetwarzanie: Ta seria artykułów wyjaśnia, jak używać zintegrowanych czujników i interfejsów komunikacyjnych urządzenia Tactigon do stworzenia prostego kontrolera gestów. Kod źródłowy dostępny tutaj na GitHubW tym artykule dowiemy się, jak to zrobić używać prostego
Przetwarzanie wideo przy użyciu VHDL i Zybo: 10 kroków
Przetwarzanie wideo przy użyciu VHDL i Zybo: FPGA są szybsze niż procesory w przetwarzaniu, ponieważ mogą wykonywać wiele obliczeń równolegle Uwaga: Ten projekt jest wciąż w budowie i będzie ulepszany (jak tylko będę miał czas). W międzyczasie podróżuję po świecie
Przetwarzanie obrazu Moyamoya: 8 kroków
Przetwarzanie obrazu Moyamoya: Moyamoya, „podmuch dymu”; jest rzadką chorobą spowodowaną zablokowaniem tętnic w zwojach podstawy mózgu, które są obszarem u podstawy mózgu. Choroba jest postępującą chorobą naczyń mózgowych, która dotyka głównie dzieci. Sym