Artykuł oryginalny został opublikowany na stronie i opublikowany na 3DNews za zgodą autora. Przedstawiamy pełny tekst artykułu, z wyjątkiem licznych linków — przydadzą się one tym, którzy poważnie interesują się tematem i chcieliby dokładniej zgłębić teoretyczne aspekty fotografii komputerowej, ale dla szerokiej publiczności uznaliśmy ten materiał za nadmiarowy.
Dziś żadna prezentacja smartfona nie obejdzie się bez omawiania jego aparatu. Co miesiąc słyszymy o kolejnych osiągnięciach mobilnych aparatów: Google nauczył Pixel robienia zdjęć w ciemności, Huawei osiągnął zoom jak lornetka, Samsung dodaje lidar, a Apple robi najokrąglejsze rogi na świecie. Mało gdzie innowacje płyną teraz tak obficie.
Lustrzanki wydają się stać w miejscu. Sony co roku zasypuje wszystkich nowymi matrycami, a producenci leniwie aktualizują ostatnią cyfrę wersji i dalej spokojnie palą w kąciku. Na moim biurku leży lustrzanka za 3000 dolarów, ale w podróż zabieram iPhona. Dlaczego?
Jak mówił klasyk — wszedłem w internet z tym pytaniem. Tam dyskutują o jakichś "algorytmach" i "sieciach neuronowych", nie mając pojęcia, jak konkretnie wpływają na fotografię. Dziennikarze głośno odczytują liczbę megapikseli, blogerzy chórem kręcą sponsorowane unboxingi, a esteci obrzucają się "uczuciowym odbiorem kolorystyki matrycy". Wszystko jak zwykle.
Musiałem usiąść, poświęcić połowę życia i samemu wszystko zrozumieć. W tym artykule opowiem, co odkryłem.
Czym jest fotografia komputerowa?
Wszędzie, w tym w Wikipedii, podają mniej więcej takie definicje: fotografia komputerowa to wszelkie techniki uchwytywania i przetwarzania obrazów, gdzie zamiast optycznych przekształceń stosowane są obliczenia cyfrowe. W niej wszystko jest dobrze, z wyjątkiem tego, że nic nie wyjaśnia. Pasuje do niej nawet autofokus, ale nie wchodzi w grę plenoptyka, która już przyniosła nam wiele użytecznego. Niewyraźność oficjalnych definicji zdaje się sugerować, że nie mamy pojęcia, o czym mówimy.
Pionier fotografii obliczeniowej, profesor Stanfordu Marc Levoy (obecnie odpowiedzialny za aparat w Google Pixel) przedstawia inne definicje — zestaw metod wizji komputerowej, które poprawiają lub rozszerzają możliwości fotografii cyfrowej, w wyniku czego powstaje zwykłe zdjęcie, które technicznie nie mogłoby zostać wykonane na danym aparacie w tradycyjny sposób. W artykule trzymam się tej definicji.
Tak więc, wszystkiemu były winne smartfony.
Smartfony nie miały innego wyjścia, jak dać życie nowemu rodzajowi fotografii — obliczeniowej.
Ich małe, hałaśliwe matryce i mikroskopijne, mało światłosiły obiektywy z punktu widzenia fizyki powinny przynosić tylko ból i cierpienie. I rzeczywiście przynosiły, dopóki ich twórcy nie wpadli na pomysł sprytnego wykorzystania ich mocnych stron, aby pokonać słabości — szybkie elektroniczne migawki, potężne procesory i oprogramowanie.

Większość głośnych badań w dziedzinie fotografii obliczeniowej przypada na lata 2005-2015, co w nauce uważane jest za dosłownie wczoraj. Właśnie teraz, przed naszymi oczami i w naszych kieszeniach, rozwija się nowa dziedzina wiedzy i technologii, jakiej nigdy wcześniej nie było.
Fotografia obliczeniowa to nie tylko selfie z neuro-bokiem. Niedawne zdjęcie czarnej dziury nie mogłoby powstać bez metod fotografii obliczeniowej. Aby wykonać takie zdjęcie za pomocą zwykłego teleskopu, musielibyśmy zbudować go o rozmiarze Ziemi. Jednak, łącząc dane ośmiu radioteleskopów w różnych miejscach naszej planety i pisząc kilka skryptów w Pythonie, uzyskaliśmy pierwsze w historii zdjęcie horyzontu zdarzeń. Nadaje się też do selfie.

Początek: cyfrowe przetwarzanie
Wyobraźmy sobie, że wracamy do 2007 roku. Nasza mama to anarchia, a nasze zdjęcia to hałaśliwe 0,6-Mp dżpemigi robione na skatebordzie. W przybliżeniu wtedy pojawia się nasze pierwsze niezłomne pragnienie dodania do nich presetów, aby ukryć ubóstwo mobilnych matryc. Nie będziemy sobie tego odmawiać.

Matan i Instagram
Od momentu pojawienia się Instagrama wszyscy oszaleli na punkcie filtrów. Jako osoba, która kiedyś przeprowadzała inżynierię odwrotną na X-Pro II, Lo-Fi i Valencia w celach oczywiście badawczych (kek), wciąż pamiętam, że składały się one z trzech komponentów:
- Ustawienia kolorów (Odcień, Nasycenie, Jasność, Kontrast, Poziomy itd.) — proste cyfrowe współczynniki, dokładnie takie same jak w dowolnych presetach, z których korzystali fotografowie od zarania dziejów.
- Mapy tonów (Tone Mapping) — wektory wartości, z których każdy mówił nam: „Czerwony kolor o odcieniu 128 należy przekształcić w odcień 240”.
- Overlay — półprzezroczysty obrazek z pyłem, zbożem, winietą i wszystkim innym, co można nałożyć na górę, aby uzyskać wcale nie banalny efekt starego filmu. Nie był obecny zawsze.
Współczesne filtry niewiele się różnią od tej trójki, stały się jedynie nieco bardziej skomplikowane matematycznie. Z pojawieniem się sprzętowych shaderów i OpenCL na smartfonach szybko przepisano je na GPU, co uznano za niesamowite. Jak na rok 2012, oczywiście. Dziś każdy uczeń może stworzyć coś podobnego w CSS, a i tak nie dostanie z tego nic przy wyjściu ze szkoły.
Jednak rozwój filtrów dziś nie stanął w miejscu. Ludzie z Dehancer, na przykład, świetnie radzą sobie z filtrami nieliniowymi — zamiast proletariackiego tone mappingu używają bardziej złożonych przekształceń nieliniowych, co, jak mówią, daje znacznie więcej możliwości.
Nieliniowymi przekształceniami można zdziałać wiele rzeczy, ale są one niezwykle skomplikowane, a my, ludzie, jesteśmy niezwykle głupi. Gdy w nauce sprawa dotyczy przekształceń nieliniowych, wolimy iść w metody numeryczne i wsadzać wszędzie sieci neuronowe, aby te pisały arcydzieła za nas. Tak samo było i tutaj.
Automatyka i marzenia o przycisku „arcydzieło”.
Gdy wszyscy przyzwyczaili się do filtrów, zaczęliśmy je wbudowywać bezpośrednio w aparaty. Historia skrywa, który producent był pierwszy, ale żeby zrozumieć, jak dawno to było — w iOS 5.0, która wyszła w 2011 roku, już istniał publiczny API dla Auto Enhancing Images. Tylko Jobsowi wiadomo, jak długo używany był zanim został udostępniony publicznie.
Automatyka robiła to samo, co każdy z nas, otwierając zdjęcie w edytorze — wydobywała porażki w świetle i cieniach, zwiększała nasycenie, usuwała czerwone oczy i poprawiała kolor skóry. Użytkownicy nawet nie zdawali sobie sprawy, że „dramatycznie ulepszona kamera” w nowym smartfonie była jedynie zasługą kilku nowych shaderów. Do wydania Google Pixel i rozpoczęcia szału na temat fotografii obliczeniowej pozostało jeszcze pięć lat.

Dziś walki o przycisk „arcydzieło” przeniosły się na pole uczenia maszynowego. Po zabawie z tonowaniem wszyscy rzucili się na trenowanie CNN i GAN, aby dostosowywać suwak w miejsce użytkownika. Innymi słowy, na podstawie wejściowego obrazu określać zestaw optymalnych parametrów, które przybliżałyby ten obraz do jakiegoś subiektywnego rozumienia „dobrego zdjęcia”. Zrealizowano to w tym samym Pixelmator Pro i innych edytorach. Działa, jak można się spodziewać, nie zawsze i nie do końca.
Stekowanie — 90% sukcesu aparatów mobilnych
Prawdziwa fotografia obliczeniowa zaczęła się od stekowania — nakładania kilku zdjęć na siebie. Dla smartfona nie jest problemem uchwycenie dziesięciu kadrów w pół sekundy. W ich aparatach nie ma wolnych mechanicznych części: przysłona jest stała, a zamiast przesłony mechanicznej — elektroniczna migawka. Procesor po prostu wydaje polecenia matrycy, ile mikrosekund ma zbierać dzikie fotony, a sam odczytuje rezultat.
Technicznie telefon może robić zdjęcia z prędkością wideo, a wideo w rozdzielczości zdjęć, ale wszystko sprowadza się do prędkości magistrali i procesora. Dlatego zawsze stosowane są programowe ograniczenia.
Stekowanie towarzyszy nam od dawna. Jeszcze nasi dziadkowie instalowali wtyczki do Photoshopa 7.0, aby zebrać kilka zdjęć w rażące HDR lub połączyć panoramę 18000 × 600 pikseli i… w rzeczywistości nikt nie wymyślił, co dalej z nimi robić. To były bogate czasy, szkoda, że dzikie.
Teraz dorośliśmy i nazywamy to „epsilon-fotografią” — gdy, zmieniając jeden z parametrów aparatu (ekspozycję, ostrość, położenie) i łącząc uzyskane kadry, otrzymujemy coś, co nie mogło być uchwycone jednym ujęciem. Ale to termin dla teoretyków, w praktyce przyjęła się inna nazwa — stekowanie. Dziś w rzeczywistości opiera się na tym 90% wszystkich innowacji w aparatach mobilnych.

Rzecz, o której wielu nie myśli, ale która jest ważna dla zrozumienia całej fotografii mobilnej i obliczeniowej: aparat w nowoczesnym smartfonie zaczyna robić zdjęcia natychmiast po otwarciu aplikacji. Co jest logiczne, przecież musi w jakiś sposób przesłać obraz na ekran. Jednak oprócz ekranu, zapisuje obrazy o wysokiej rozdzielczości w swoim własnym cyklicznym buforze, gdzie przechowuje je przez kilka sekund.
Kiedy naciskasz przycisk „zrób zdjęcie”, tak naprawdę zdjęcie już zostało zrobione, aparat po prostu bierze ostatnie zdjęcie z bufora.
Tak działają dzisiaj wszystkie mobilne kamery. Przynajmniej w każdym flagowcu, a nie na śmieciach. Buforowanie pozwala na realizację nie tylko zerowego opóźnienia migawki, o którym marzyli fotografowie, ale nawet na ujemne — przy naciśnięciu przycisku smartfon zagląda w przeszłość, wyciąga 5-10 ostatnich zdjęć z bufora i zaczyna je intensywnie analizować i łączyć. Nie trzeba już czekać, aż telefon strzeli zdjęcia do HDR lub trybu nocnego — po prostu je pobierz z bufora, użytkownik nawet się nie zorientuje.

A propos, właśnie dzięki ujemnemu opóźnieniu migawki zrealizowano Live Photo w iPhone'ach, a w HTC coś podobnego było już w 2013 roku pod dziwną nazwą Zoe.
Staking ekspozycji — HDR i walka z różnicami w jasności.

Czy matryce aparatów są w stanie uchwycić cały zakres jasności dostępny dla naszego oka, to stara gorąca temat do dyskusji. Niektórzy mówią, że nie, ponieważ oko może widzieć do 25 f-stopów, podczas gdy nawet z najlepszej matrycy pełnoklatkowej można wydobyć maksymalnie 14. Inni nazywają porównanie niepoprawnym, ponieważ oku pomaga mózg, automatycznie dostosowując źrenicę i rekonstruując obraz swoimi sieciami neuronowymi, a rzeczywisty dynamiczny zakres oka wynosi tak naprawdę nie więcej niż 10-14 f-stopów. Pozwólmy tym kontrowersjom najlepszym myślicielom internetowym na kanapach.
Fakt pozostaje faktem: robiąc zdjęcia przyjaciół na tle jasnego nieba bez HDR na jakiejkolwiek mobilnej kamerze, otrzymujesz albo normalne niebo i czarne twarze przyjaciół, albo wydobyte postacie przyjaciół, ale niebo całkowicie przepalone.
Rozwiązanie zostało już dawno wymyślone — rozszerzenie zakresu jasności dzięki HDR (wysoki zakres dynamiczny). Należy zrobić kilka zdjęć z różnymi czasami naświetlania i połączyć je razem. Aby jedno było „normalne”, drugie jaśniejsze, trzecie ciemniejsze. Bierzemy ciemne miejsca z jasnego ujęcia, przepalenia uzupełniamy z ciemnego — zysk. Pozostaje tylko rozwiązać problem automatycznego bracketingu — jak bardzo przesunąć ekspozycję każdego kadru, aby nie przesadzić, ale z określeniem średniej jasności obrazu poradzi sobie już student drugiego roku technicznego uniwersytetu.

Na najnowszych iPhone’ach, Pixelach i Galaxy tryb HDR włącza się automatycznie, gdy prosty algorytm w aparacie wykrywa, że fotografujesz coś kontrastowego w słoneczny dzień. Można nawet zauważyć, jak telefon przełącza tryb nagrywania w bufor, aby zapisywać klatki z przesuniętą ekspozycją — w aparacie spada fps, a obraz staje się bardziej intensywny. Moment przełączenia jest dobrze widoczny na moim iPhone X, jeśli robię zdjęcia na zewnątrz. Przyjrzyj się swojemu smartfonowi następnym razem również.
Minus HDR z bracketingiem ekspozycji to jego całkowita bezsilność w słabym oświetleniu. Nawet przy świetle lampy pokojowej klatki wychodzą tak ciemne, że komputer nie może ich wyrównać i połączyć. W 2013 roku Google zaprezentował inne podejście do HDR w wydanym wówczas smartfonie Nexus, które korzystało z czasowego stackingu.
Stacking czasowy — symulacja długiej ekspozycji i timelapse.

Stacking czasowy pozwala uzyskać długą ekspozycję za pomocą serii krótkich. Pionierami byli miłośnicy fotografowania śladów gwiazd na nocnym niebie, którym trudno było otworzyć migawkę na dwa godziny. Tak trudno było wcześniej obliczyć wszystkie ustawienia, a w wyniku najmniejszego drżenia całe zdjęcie wychodziło zepsute. Postanowili otwierać migawkę tylko na kilka minut, ale wielokrotnie, a potem wracali do domu i łączyli uzyskane klatki w Photoshopie.

W ten sposób aparat nigdy tak naprawdę nie robił zdjęć o długiej ekspozycji, ale uzyskiwaliśmy efekt jej symulacji, składając kilka klatek zrobionych jedna po drugiej. Dla smartfonów od dawna napisano mnóstwo aplikacji wykorzystujących tę sztuczkę, ale wszystkie stały się zbędne od czasu, gdy ta funkcja została dodana do prawie wszystkich standardowych aparatów. Dziś nawet iPhone łatwo połączy dla Ciebie długą ekspozycję z Live Photo.

Wróćmy do Google i jego nocnego HDR. Okazało się, że dzięki bracketingowi czasowemu można zrealizować niezły HDR w ciemności. Technologia pojawiła się po raz pierwszy w Nexus 5 i nazywała się HDR+. Pozostałe telefony z Androidem otrzymały ją niejako w prezencie. Technologia cieszy się nadal tak dużą popularnością, że chwalą się nią nawet w prezentacjach najnowszych Pixeli.
HDR+ działa całkiem prosto: gdy tylko camera zidentyfikuje, że fotografujesz w ciemności, przesyła z bufora 8-15 ostatnich zdjęć w formacie RAW, aby nałożyć je na siebie. W ten sposób algorytm zbiera więcej informacji o ciemnych fragmentach kadru, minimalizując szumy — piksele, w których z jakiegoś powodu aparat nie był w stanie zebrać wszystkich informacji.
To tak, jakbyś nie wiedział, jak wygląda kapibara, i poprosił pięć osób o opisanie jej — ich opowieści byłyby mniej więcej takie same, ale każda wspomniałaby o jakimś unikalnym detalu. W ten sposób zebrałbyś więcej informacji, niż pytając tylko jedną osobę. Tak samo jest z pikselami.
Sumowanie zdjęć wykonanych z jednego punktu daje ten sam efekt długiej ekspozycji, co w przypadku gwiazd. Ekspozycja dziesiątek kadrów sumuje się, a błędy w jednym kadrze minimalizują się w innych. Wyobraź sobie, ile razy trzeba by było nacisnąć spust migawki, aby osiągnąć taki efekt.

Pozostało tylko rozwiązać problem automatycznej korekcji kolorów — zdjęcia robione w ciemności zazwyczaj wychodzą na żółto lub zielono, a chcemy uzyskać soczyste światło dzienne. W pierwszych wersjach HDR+ problem ten rozwiązywano zwykłym dostosowaniem ustawień, jak w filtrach a la Instagram. Później z pomocą przyszły sieci neuronowe.
Tak powstał Night Sight — technologia „nocnej fotografii” w Pixel 2 i 3. W opisie mówi się tak: „Techniki uczenia maszynowego oparte na HDR+, które umożliwiają działanie Night Sight.” W zasadzie jest to automatyzacja etapu korekcji kolorów. Maszynę wytrenowano na zbiorze danych zdjęć „przed” i „po”, aby przekształcać różne zestawy ciemnych zdjęć w jedno ładne.

Zbiór danych, nawiasem mówiąc, został udostępniony publicznie. Może chłopaki z Apple wezmą go i w końcu nauczą swoje szklane „łopaty” robić normalne zdjęcia w nocy.
Dodatkowo w Night Sight wykorzystywane jest obliczanie wektora ruchu obiektów w kadrze, aby znormalizować rozmycie, które zawsze pojawia się przy długiej ekspozycji. W ten sposób smartfon może wziąć wyraźne fragmenty z innych kadrów i wkleić je.
Stacking ruchu — panorama, superzoom i walka z szumami.

Panorama to popularna rozrywka mieszkańców obszarów wiejskich. Na razie nie ma znanych przypadków, w których zdjęcia parówki byłyby interesujące dla kogoś poza ich autorem, ale nie można o niej nie wspomnieć — dla wielu od tego w ogóle zaczęło się steking.

Pierwszy przydatny sposób zastosowania panoramy to uzyskanie zdjęcia o wyższej rozdzielczości, niż pozwala na to matryca aparatu, poprzez sklejenie kilku kadru. Fotografowie od dawna używają różnego oprogramowania do tzw. zdjęć z superrozdzielczością — kiedy lekko przesunięte zdjęcia uzupełniają się nawzajem między pikselami. W ten sposób można uzyskać obraz o setkach gigapikseli, co jest bardzo przydatne, jeśli trzeba to wydrukować na reklamowym plakacie wielkości domu.

Innym, już bardziej interesującym podejściem jest Pixel Shifting. Niektóre bezlusterkowce, takie jak Sony i Olympus, zaczęły wspierać je już w 2014 roku, ale wciąż zmuszano do ręcznego sklejenia efektu. Typowe innowacje dużych aparatów.
Smartfony odniosły tu sukces z zabawnego powodu — kiedy robisz zdjęcie, twoje ręce drżą. Ten na pierwszy rzut oka problem stał się podstawą realizacji natywnego superrozdzielczości w smartfonach.
Aby zrozumieć, jak to działa, trzeba przypomnieć sobie, jak zbudowana jest matryca każdego aparatu fotograficznego. Każdy jej piksel (fotodiode) jest w stanie rejestrować tylko intensywność światła — tzn. liczbę wpadających fotonów. Jednak piksel nie może zmierzyć jego koloru (długości fali). Aby uzyskać obraz RGB, trzeba było i tutaj zastosować obejścia — przykryć całą matrycę siatką kolorowych szkiełek. Najpopularniejsza jej realizacja nosi nazwę filtra Bayera i jest używana dzisiaj w większości matryc. Wygląda jak na poniższym obrazku.

Oznacza to, że każdy piksel matrycy łapie tylko komponent R-, G- lub B-, ponieważ pozostałe fotony są bezlitośnie odbijane przez filtr Bayera. Brakujące komponenty są rozpoznawane przez prostą średnią wartości sąsiadujących pikseli.
Zielonych komórek w filtrze Bayera jest więcej — zrobiono to analogicznie do ludzkiego oka. Okazuje się, że spośród 50 milionów pikseli na matrycy zielony kolor uchwyci 25 mln, a czerwony i niebieski — po 12,5 mln. Reszta będzie uśredniona — ten proces nazywa się debayeringiem lub demozajkowaniem, i to jest taki gruby, zabawny sposób, na którym wszystko się opiera.

W rzeczywistości każda matryca ma swój wyjątkowy, opatentowany algorytm demozajkowania, ale w ramach tej historii zbagatelizujemy to.
Inne typy matryc (np. Foveon) jak na razie nie przyjęły się. Choć niektórzy producenci próbują używać matryc bez filtra Bayera w celu poprawy ostrości i zakresu dynamicznego.
Gdy jest mało światła lub detale obiektu są bardzo małe, tracimy mnóstwo informacji, ponieważ filtr Bayera bezczelnie odcina fotony o niepożądanej długości fali. Dlatego wymyślono Pixel Shifting — przesuwanie matrycy o 1 piksel w górę, w dół, w prawo, w lewo, aby uchwycić wszystkie. Zdjęcie nie jest w ten sposób 4 razy większe, jak może się wydawać, po prostu procesor wykorzystuje te dane, aby dokładniej zapisać wartość każdego piksela. Uśrednia nie według sąsiadów, że tak powiem, ale według czterech wartości samego siebie.

Drżenie naszych rąk podczas robienia zdjęcia telefonem naturalnie sprawia, że ten proces staje się nieuchronny. W najnowszych wersjach Google Pixel ta funkcja jest wdrożona i aktywowana zawsze, gdy korzystasz z zoomu w telefonie — nazywa się Super Res Zoom (tak, mi też podoba się ich bezwzględne nazewnictwo). Chińczycy również skopiowali to do swoich telefonów, chociaż wyszło im to trochę gorzej.
Nakładanie na siebie trochę przesuniętych zdjęć pozwala zebrać więcej informacji o kolorze każdego piksela, a więc zmniejszyć szum, zwiększyć ostrość i podnieść rozdzielczość bez zwiększania fizycznej liczby megapikseli matrycy. Nowoczesne flagowce Androida robią to automatycznie, podczas gdy ich użytkownicy w ogóle się nad tym nie zastanawiają.
Stacking na ostrości — dowolna głębokość ostrości i refokus w postprodukcji.

Metoda ta pochodzi z makrofotografii, gdzie mała głębia ostrości zawsze była problemem. Aby cały obiekt był w ostrym fokusu, należało wykonać kilka zdjęć z przesunięciem ostrości w przód i w tył, aby potem złączyć je w jedno wyraźne. Tę samą metodę chętnie wykorzystywali również miłośnicy fotografii krajobrazowej, sprawiając, że zarówno pierwszy, jak i drugi plan były ostre jak nożem.

To wszystko przeniosło się także na smartfony, choć bez większego rozgłosu. W 2013 roku na rynek wchodzi Nokia Lumia 1020 z „Refocus App”, a w 2014 roku Samsung Galaxy S5 z trybem „Selective Focus”. Działały na tej samej zasadzie: po naciśnięciu przycisku szybko robiły 3 zdjęcia — jedno z „normalnym” fokusem, drugie ze przesunięciem ostrości do przodu i trzecie ze przesunięciem do tyłu. Program wyrównywał kadry i pozwalał wybrać jeden z nich, co przedstawiano jako „prawdziwe” zarządzanie ostrością w postprodukcji.
Nie było żadnej dalszej obróbki, ponieważ nawet ten prosty hack wystarczył, aby wbić kolejny gwóźdź do trumny Lytro i jego odpowiedników z ich prawdziwym refokusem. A propos, porozmawiajmy o nich (mistrz przejść na poziomie 80).
Macierze obliczeniowe — pola świetlne i plenoptyka
Jak już wcześniej zrozumieliśmy, nasze matryce to koszmar na koślawych nogach. Po prostu się przyzwyczailiśmy i staramy się z tym żyć. Pod względem konstrukcji niewiele się zmieniały od samego początku. Tylko doskonaliliśmy proces technologiczny — zmniejszaliśmy odległość między pikselami, walczyliśmy z szumami i dodawaliśmy specjalne piksele do pracy z autofokusem fazowym. Ale wystarczy wziąć nawet najdroższą lustrzankę i spróbować sfotografować biegnącego kota przy pokojowym oświetleniu — kot, delikatnie mówiąc, wygra.

Od dawna staramy się wymyślić coś lepszego. Wiele prób i badań w tej dziedzinie można znaleźć pod hasłem „czujnik obliczeniowy” lub „czujnik non-Bayer”, a nawet przykład z Pixel Shifting powyżej można uznać za próbę poprawy matryc za pomocą obliczeń. Jednak najbardziej obiecujące historie w ciągu ostatnich dwudziestu lat pochodzą z tzw. kamer plenoptycznych.
Aby nie znużyć was zapowiedzią nadchodzących trudnych słów, zdradzę, że kamera ostatnich modeli Google Pixel jest w pewnym sensie „nieco” plenoptyczna. Tylko o dwa piksele, ale nawet to pozwala jej obliczać uczciwą optyczną głębię kadru, nawet bez drugiej kamery, jak ma to miejsce w innych modelach.
Plenoptika to potężna technologia, która jeszcze nie zyskała popularności. Podam link do jednego z moich ulubionych, niedawnych , skąd zaczerpnąłem przykłady.
Kamera plenoptyczna — wkrótce każda taka będzie dostępna
Wynaleziona w 1994 roku, zbudowana w Stanfordzie w 2004 roku. Pierwsza kamera konsumencka — Lytro, wydana w 2012 roku. Z podobnymi technologiami obecnie aktywnie eksperymentuje przemysł VR.
Od zwykłej kamery plenoptyczna różni się jedynie jedną modyfikacją — matryca jest pokryta siatką soczewek, z których każda obejmuje kilka rzeczywistych pikseli. W ten sposób:

jeśli prawidłowo obliczyć odległość od siatki do matrycy oraz rozmiar przesłony, w końcowym obrazie otrzymamy wyraźne klastry pikseli — miniaturowe wersje oryginalnego obrazu.
Okazuje się, że jeśli weźmiemy z każdego klastra, powiedzmy, jeden centralny piksel i połączymy obraz tylko z nich — nie będzie on różnił się od zdjęcia wykonanego zwykłą kamerą. Tak, trochę straciliśmy na rozdzielczości, ale po prostu poprosimy Sony o dodanie jeszcze megapikseli w nowych matrycach.

Zabawa zaczyna się dopiero tutaj. Jeśli weźmiemy inny piksel z każdego klastra i ponownie połączymy obraz — otrzymamy znowu normalne zdjęcie, tylko takie, które zostało zrobione z przesunięciem o jeden piksel. W ten sposób, mając klastry 10 × 10 pikseli, uzyskamy 100 zdjęć tego samego obiektu z "nieco" różnych perspektyw.

Im większy rozmiar klastra — tym więcej zdjęć, ale mniejsza rozdzielczość. W świecie smartfonów z matrycami 41-megapikselowymi możemy trochę zignorować rozdzielczość, ale wszystko ma swoje granice. Musimy zachować równowagę.
OK, zbudowaliśmy kamerę plenoptyczną i co to nam daje?
Uczciwe przeskalowanie ostrości
Funkcja, o której wszyscy dziennikarze pisali w artykułach o Lytro — możliwość uczciwej korekcji ostrości w postprodukcji. Uczciwe oznacza, że nie stosujemy żadnych algorytmów usuwania rozmycia, a korzystamy wyłącznie z dostępnych pikseli, wybierając lub uśredniając je z klastrów w potrzebnej kolejności.
Fotografia RAW z kamery plenoptycznej wygląda dziwnie. Aby otrzymać z niej zwykły, wyraźny JPEG, najpierw trzeba ją zmontować. W tym celu należy wybrać każdy piksel JPEG z jednego z klastrów RAW. W zależności od tego, jak je wybierzemy, zmieni się wynik.
Na przykład im dalej znajduje się klaster od miejsca, w którym oryginalna wiązka opada, tym bardziej ta wiązka jest rozmyta. To przez optykę. Aby uzyskać obraz przesunięty pod względem ostrości, wystarczy wybrać piksele w odpowiedniej odległości od oryginalnego — bliżej lub dalej.

Z przesunięciem ostrości w stronę siebie było trudniej — fizycznie takich pikseli w klastrach było mniej. Początkowo deweloperzy nawet nie chcieli dać użytkownikowi możliwości ręcznego ustawiania ostrości — kamera sama to decydowała programowo. Użytkownikom nie spodobała się taka przyszłość, więc funkcję dodano w późniejszych aktualizacjach pod nazwą „tryb kreatywny”, ale zrobili refokus bardzo ograniczonym właśnie z tego powodu.
Mapa głębi i 3D z jednej kamery
Jedną z najprostszych operacji w plenoptyce jest uzyskanie mapy głębi. Aby to zrobić, wystarczy połączyć dwa różne kadry i obliczyć, jak bardzo obiekty na nich zostały przesunięte. Większe przesunięcie — dalej od kamery.
Niedawno Google kupił i zlikwidował Lytro, ale wykorzystał ich technologie do swojego VR i… do kamery w Pixelu. Zaczynając od Pixel 2, kamera stała się po raz pierwszy „nieco” plenoptyczna, chociaż z klastrami składającymi się tylko z dwóch pikseli. Dzięki temu Google mógł nie instalować drugiej kamery, jak wszyscy inni, lecz obliczać mapę głębi wyłącznie z jednego zdjęcia.


Mapa głębi jest tworzona na podstawie dwóch kadrów, przesuniętych o jeden subpiksel. To zupełnie wystarczy, aby obliczyć binarną mapę głębi i oddzielić pierwszy plan od tła oraz rozmyć to ostatnie w modnym obecnie bokeh. Wynik takiego oddzielenia jest dodatkowo wygładzany i „ulepszany” przez sieci neuronowe, które są szkolone do poprawy map głębi (a nie rozmywania, jak wielu myśli).

Funkcja polega również na tym, że plenoptyka w smartfonach przeszła do nas prawie za darmo. I tak już umieszczaliśmy soczewki na tych małych matrycach, aby w jakiś sposób zwiększyć przepływ światła. W kolejnych Pixelach Google planuje pójść dalej i nałożyć soczewkę na cztery fotodiody.
Źródło: 3dnews.ru
