Google

Jak działa rozmycie soczewkowe w Google Camera? Trochę podobnie do ludzkiego postrzegania przestrzeni

Jan Rybczyński
Jak działa rozmycie soczewkowe w Google Camera? Trochę podobnie do ludzkiego postrzegania przestrzeni
Reklama

Wygląda na to, że aparaty w smartfonach zabiły kolejny segment dedykowanych aparatów fotograficznych, tym razem zanim ten zdążył się spopularyzować. C...

Wygląda na to, że aparaty w smartfonach zabiły kolejny segment dedykowanych aparatów fotograficznych, tym razem zanim ten zdążył się spopularyzować. Chodzi o Lytro, czyli możliwość wykonania zdjęcia, na którym po fakcie można ustawić w którym miejscu obraz ma być ostry. Podobną funkcję posiada Google Camera, która to aplikację zdążyłem już opisać. Tym razem jednak Google zdradził jak wygląda od kuchni symulowanie małej głębi ostrości. Okazuje się, że możliwości są większe niż widać to na pierwszy rzut oka.

Reklama

Głębia ostrości na zdjęciu zależy od trzech czynników: przysłony, ogniskowej i odległości od fotografowanego obiektu. O ile w przypadku dużych aparatów z wymienna optyką możemy kontrolować wszystkie trzy elementy, to w przypadku smartfonów dwa z trzech czynników pozostają niezmienne - przysłona i ogniskowa. Co więcej, bardzo krótkie ogniskowe, wymuszone przez małe wymiary aparatów w telefonach, całkowicie wykluczają optyczne uzyskanie małej głębi ostrości - tego elementu nie da się przeskoczyć rozwojem technologii. Musimy się więc pogodzić, że smartfon nigdy nie zaoferuje małej głębi ostrości uzyskanej dzięki samej optyce. Może jednak zrobić użytek ze swojej mocy obliczeniowej i taki efekt odpowiednio wyliczyć i zasymulować. Tylko jak to zrobić? Google wyjaśnił to szczegółowo na swoim blogu.

Kluczem do dalszych obliczeń i operacji jest ustalenie w jakiej odległości od siebie znajdują się fotografowane przedmioty, co stanowi pewien problem w przypadku dwuwymiarowego zdjęcia. Skoro standardowy telefon nie posiada urządzeń pozwalających mierzyć odległość, trzeba poradzić sobie inaczej. Z pomocą przychodzą technologie Structure from Motion oraz Multi-View Stereo, które pozwala wyliczyć odległość, bazując na zmienianiu punktu widzenia i porównywaniu o ile przemieściły się elementy na zdjęciu. Człowiek w tym celu posiada dwoje oczu, które mają inną perspektywę i pozwalają ocenić odległość, Google Camera, żeby zrekompensować posiadanie jednego obiektywu prosi użytkownika aby delikatnie uniósł telefon, dzięki czemu również perspektywa się zmieni. Na bazie serii zdjęć tworzona jest mapa odległości, którą widać na środkowym zdjęciu poniżej. Im ciemniejsze miejsce, tym bliżej fotografującego.


Proces obliczeniowy jest trochę bardziej skomplikowany i składa się z kilku kroków i optymalizacji, aby ostatecznie każdemu pikselowi przypisać określoną głębię. Kiedy zostanie to zrobione, wówczas otwiera się dostęp do całego szeregu nowych możliwości. Po pierwsze użytkownik może wybrać w którym punkcie ma znajdować się ostrość, a więc w jakiej odległości od fotografującego. Wówczas aplikacja rozmyje oddalonego od tego punktu piksele, tym bardziej, im dalej się od niego znajdują. To istotne, Google Camera symuluje działanie faktycznego obiektywu i uzależnia stopień rozmycia względem odległości w przestrzeni od punktu w którym ustawiona została ostrość. Nie jest więc to proste działanie typu "rozmyj wszystko, co nie powinno być ostre", a generowany efekt jest bardziej realistyczny i przyjemniejszy dla oka.

Jak każde symulowanie prawdziwego fenomenu, obliczenia nie są idealne i nie może być mowy o uzyskaniu efektu nie do rozróżnienia w stosunku do dużego obiektywu z długą ogniskową i otwartą przysłoną. Rozmycie tła wypada gorzej w przypadku bardziej skomplikowanych obiektów - czasami krawędzie i granice pomiędzy bliskimi i dalekimi przedmiotami nie są poprawnie i precyzyjnie określone. Niemożliwe jest również obliczenie głębi w przypadku poruszających się obiektów, bo wówczas porównanie kilku kolejnych zdjęć jest zaburzone - fragmenty obrazu zmieniają swoje położenie nie tylko dlatego, że użytkownik unosi telefon. Musze jednak przyznać, że mimo tych oczywistych ograniczeń tej technologii, rozwiązanie zaproponowane przez Google jest bardzo pomysłowe i sprawdza się w wielu sytuacjach.


Warto zauważyć, że Sony Xperia Z2 posiada własną funkcję rozmycia tła. Podczas świąt i kilku eksperymentów nie udało mi się wyłonić jednoznacznego zwycięzcy, bo w niektórych sytuacjach lepiej sprawdza się rozwiązanie Google, a w innych rozwiązanie Sony. Mam tu na myśli rożnego rodzaju anomalie i niepoprawne rozmycie tła w przypadku bardziej skomplikowanej sceny. Nie ma jednak wątpliwości, że rozwiązanie Sony nie pozwala zmienić punktu ostrości po wykonaniu zdjęcia, jedynie określić jak bardzo tło ma zostać rozmyte.

Reklama

Biorąc pod uwagę popularność telefonów oraz fakt, że mocno wypierają najpopularniejsze segmenty aparatów fotograficznych na rynku, nie widzę miejsca na dedykowane rozwiązania pozwalające zmieniać punkt ostrości po fakcie, takie jak Lytro. Co prawda aparat Lytro nie wymaga unoszenia i pozwala fotografować poruszające się obiekty, za to kosztuje więcej od większości telefonów i oferuje niską rozdzielczość. W efekcie smartfony przybiły ostatnie gwoździe do trumny tej koncepcji. Wygrywa wygoda i mała bariera wejścia - wystarczy zainstalować aplikację.

Reklama

Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu

Reklama