新文章:計算攝影

文章原文發佈於網站 Vastrik.ru 並經作者許可在 3DNews 上發布。 我們提供了文章的全文,除了大量的連結 - 它們對於那些對該主題非常感興趣並希望更深入地研究計算攝影的理論方面的人來說非常有用,但對於一般觀眾我們認為這種材料是多餘的。  

如今,沒有一款智慧型手機的展示不舔它的相機是完整的。 每個月我們都會聽到移動相機的下一個成功:谷歌教 Pixel 在黑暗中拍攝,華為像雙筒望遠鏡一樣變焦,三星插入光達,蘋果製造世界上最圓的角。 如今,很少有地方創新能如此迅速地流動。

與此同時,鏡子似乎在原地踏步。 索尼每年都會為大家帶來新的矩陣,而製造商則懶洋洋地更新最新版本的數字,並繼續在場邊放鬆和抽煙。 我的辦公桌上有一台價值 3000 美元的單眼相機,但當我旅行時,我會帶著我的 iPhone。 為什麼?

正如經典所說,我帶著這個問題上網。 他們在那裡討論一些“演算法”和“神經網路”,但不知道它們到底如何影響攝影。 記者們大聲宣讀百萬像素的數量,部落客齊聲觀看付費拆箱,美學家們則用「對矩陣調色板的感性感知」來塗抹自己。 一切如常。

我必須坐下來,花半輩子的時間,自己把這一切弄清楚。 在這篇文章中我將告訴你我學到了什麼。

#什麼是計算攝影?

包括維基百科在內的所有地方,他們都給出了類似的定義:計算攝影是使用數位計算而不是光學變換的任何圖像捕獲和處理技術。 關於它的一切都很好,除了它沒有解釋任何事情。 即使自動對焦也適合它,但已經為我們帶來了很多有用東西的全光就不適合了。 官方定義的模糊性似乎暗示我們不知道自己在說什麼。

計算攝影的先驅、史丹佛大學教授馬克·萊沃伊(Marc Levoy,現任Google Pixel 相機負責人)給出了另一個定義——一套改進或擴展數位攝影能力的電腦視覺化方法,利用它獲得一張常規照片,從技術上講,這台相機無法以傳統方式拍攝。 在文章中我堅持這一點。

因此,智慧型手機是一切的罪魁禍首。

智慧型手機別無選擇,只能催生一種新的攝影方式:計算攝影。

根據所有物理定律,它們的小雜訊矩陣和微小的慢光圈鏡頭應該只會帶來痛苦和折磨。 他們一直這樣做,直到他們的開發人員弄清楚如何巧妙地利用他們的優勢來克服他們的弱點——快速的電子快門、強大的處理器和軟體。

新文章:計算攝影

計算攝影領域的大多數備受矚目的研究都發生在 2005 年至 2015 年之間,這在科學界被認為是昨天的事。 現在,在我們眼前、在我們的口袋裡,一個前所未有的新知識和科技領域正在發展。

計算攝影不僅僅是帶有神經散景的自拍。 如果沒有計算攝影技術,就不可能拍到最近的黑洞照片。 要使用普通望遠鏡拍攝這樣的照片,我們必須將其調整為地球的大小。 然而,透過結合球上不同點的八個電波望遠鏡的數據並用 Python 編寫一些腳本,我們獲得了世界上第一張事件視界的照片。 也適合自拍。

新文章:計算攝影

#開始:數位處理

讓我們想像一下我們回到了 2007 年。 我們的母親是無政府主義的,我們的照片是在滑板上拍攝的嘈雜的 0,6 兆像素吉普車。 大約在那時,我們第一個不可抗拒的願望是在它們上面撒上預設,以隱藏移動矩陣的糟糕之處。 我們不要否定自己。

新文章:計算攝影

#馬坦和 Instagram

隨著 Instagram 的發布,每個人都開始沉迷於濾鏡。 當然,作為一個出於研究目的對 X-Pro II、Lo-Fi 和 Valencia 進行逆向工程的人,我仍然記得它們由三個組件組成:

  • 色彩設定(色相、飽和度、亮度、對比、色階等)-簡單的數字係數,就像攝影師自古以來使用的任何預設一樣。
  • 色調映射是值的向量,每個向量都告訴我們:“色調為 128 的紅色應該變成色調為 240 的紅色。”
  • 疊加層是一張半透明的圖片,上面有灰塵、顆粒、暈影以及其他可以放在上面的東西,以獲得老電影的平庸效果。 並不總是在場。   

現代過濾器與這三者相差不遠,它們只是在數學上變得更加複雜一些。 隨著硬體著色器和 OpenCL 在智慧型手機上的出現,它們很快就針對 GPU 進行了重寫,這被認為是非常酷的。 當然是2012年。 今天,任何學生都可以在 CSS 中做同樣的事情,但他仍然沒有機會畢業。

然而,過濾器的進步至今仍未停止。 例如,來自 Dehanser 的人非常擅長使用非線性濾波器 - 他們不使用無產階級色調映射,而是使用更複雜的非線性變換,根據他們的說法,這開闢了更多的可能性。

你可以用非線性變換來做很多事情,但它們非常複雜,而且我們人類非常愚蠢。 一談到科學中的非線性變換,我們更喜歡採用數值方法,到處塞滿神經網絡,讓它們為我們寫出傑作。 這裡也是一樣。

#自動化和“傑作”按鈕的夢想

一旦每個人都習慣了濾鏡,我們就開始將它們直接建置到相機中。 歷史掩蓋了哪家製造商是第一個,但只是為了了解那是多久以前的事了 - 在 5.0 年發布的 iOS 2011 中,已經有一個用於自動增強圖像的公共 API。 只有賈伯斯知道它在向公眾開放之前使用了多長時間。

自動化所做的事情與我們每個人在編輯器中打開照片時所做的相同 - 它拉出了光和陰影的間隙,增加了飽和度,消除了紅眼並固定了膚色。 用戶甚至沒有意識到新智慧型手機中「顯著改進的相機」只是幾個新著色器的優點。 距離 Google Pixel 的發布和計算攝影熱潮的開始還有五年的時間。

新文章:計算攝影

如今,「傑作」按鈕的爭奪戰已經轉移到了機器學習領域。 在玩夠了色調映射後,每個人都急於訓練 CNN 和 GAN 來移動滑桿而不是用戶。 換句話說,從輸入影像中確定一組最佳參數,使該影像更接近對「好攝影」的某種主觀理解。 在相同的 Pixelmator Pro 和其他編輯器中實作。 正如您可能猜到的那樣,它的工作效果不是很好,而且並不總是如此。 

#堆疊是行動相機90%成功的關鍵

真正的計算攝影始於堆疊——將多張照片疊在一起。 對於智慧型手機來說,半秒點擊十幾幀不是問題。 他們的相機沒有緩慢的機械部件:光圈是固定的,並且不是移動的窗簾,而是電子快門。 處理器只需命令矩陣捕獲野生光子需要多少微秒,然後讀取結果。

從技術上講,手機可以以視頻速度拍攝照片,並以照片分辨率拍攝視頻,但這一切都取決於總線和處理器的速度。 這就是為什麼他們總是設定程式限制。

質押本身已經伴隨我們很久了。 甚至祖父們也在 Photoshop 7.0 上安裝了插件,將多張照片組合成引人注目的 HDR 或拼接成 18000 × 600 像素的全景圖……事實上,沒有人知道下一步該怎麼處理它們。 可惜當時的時代是富貴而狂野的。

現在我們已經長大了,稱之為「epsilon 攝影」——透過改變相機參數之一(曝光、焦距、位置)並將生成的幀拼接在一起,我們得到了無法在一幀中捕捉到的東西。 但這是理論家的術語;在實踐中,另一個名字已經紮根——質押。 事實上,如今行動相機領域 90% 的創新都是基於它。

新文章:計算攝影

許多人沒有想到這一點,但了解所有行動和計算攝影非常重要:只要您打開應用程序,現代智慧型手機上的相機就會開始拍照。 這是合乎邏輯的,因為她需要以某種方式將圖像傳輸到螢幕上。 然而,除了螢幕之外,它還將高解析度幀保存到自己的循環緩衝區中,並在其中再存儲幾秒鐘。

當您按下“拍照”按鈕時,實際上已經拍攝完畢,相機只是從緩衝區中拍攝最後一張照片。

這就是當今任何行動相機的工作原理。 至少在所有旗艦產品中都不是來自垃圾堆。 緩衝不僅可以讓您實現攝影師夢寐以求的零快門延遲,甚至可以實現負面效果——當您按下按鈕時,智慧型手機會回顧過去,從緩衝區中卸載最後 5-10 張照片,並開始瘋狂分析並貼上它們。 不再需要等待手機點擊 HDR 或夜間模式的幀 - 只需從緩衝區中取出它們,用戶甚至不會知道。

新文章:計算攝影

順便說一句,正是藉助負快門時滯,Live Photo 在 iPhone 中得以實現,HTC 在 2013 年以奇怪的名字 Zoe 推出了類似的產品。

#曝光疊加 - HDR 和對抗亮度變化

新文章:計算攝影

相機感應器是否能夠捕捉我們眼睛可到達的整個亮度範圍是一個古老的熱門爭論話題。 有人說不能,因為眼睛最多可以看到25 個光圈值,而即使從頂級全畫幅矩陣中,您也最多只能看到14 個光圈值。其他人則認為這種比較是不正確的,因為大腦透過自動調整來幫助眼睛眼睛的動態範圍實際上不會超過 10-14 光圈。 讓我們把這場辯論留給網路上最優秀的紙上談兵的思想家吧。

事實仍然是:當你在沒有 HDR 的移動相機上在明亮的天空下拍攝朋友時,你要么得到正常的天空和朋友的黑臉,要么得到精心繪製的朋友,但天空被燒焦。

解決方案很早就被發明了——使用 HDR(高動態範圍)來擴大亮度範圍。 您需要以不同的快門速度拍攝幾張照片並將它們拼接在一起。 因此,第一個是「正常」的,第二個較亮,第三個較暗。 我們從明亮的框架中取出黑暗的地方,從黑暗的框架中填充過度曝光——利潤。 剩下的就是解決自動包圍曝光的問題——每幀的曝光要改變多少以免過度,但現在技術大學的二年級學生可以確定圖片的平均亮度。

新文章:計算攝影

在最新的 iPhone、Pixel 和 Galaxy 上,當相機內部的簡單演算法確定您在陽光明媚的日子拍攝具有對比度的內容時,HDR 模式通常會自動開啟。 您甚至可以注意到手機如何將錄製模式切換到緩衝區,以保存曝光偏移的幀 - 相機中的 fps 下降,圖片本身變得更加豐富。 在戶外拍攝時,我的 iPhone X 上的切換瞬間清晰可見。 下次也仔細看看你的智慧型手機。

HDR 包圍曝光的缺點是在光線不足的情況下難以穿透的無奈。 即使有室內燈的光線,框架也會變得很暗,以至於電腦無法將它們對齊和縫合在一起。 為了解決光線問題,2013 年,Google在當時發布的 Nexus 智慧型手機中展示了一種不同的 HDR 方法。 他使用了時間堆疊。

#時間堆疊 - 長時間曝光模擬和縮時拍攝

新文章:計算攝影

時間堆疊可讓您使用一系列短曝光來創建長曝光。 先驅者是拍攝夜空中星軌的愛好者,他們發現一次打開快門兩個小時很不方便。 事先計算所有設定非常困難,輕微的晃動就會毀掉整個畫面。 他們決定只打開快門幾分鐘,但打開了很多次,然後回家並將生成的幀貼到 Photoshop 中。

新文章:計算攝影

事實證明,相機實際上從未以長快門速度拍攝,但我們透過將連續拍攝的幾幀相加來獲得模擬的效果。 長期以來,有許多為智慧型手機編寫的應用程式都使用此技巧,但由於幾乎所有標準相機都添加了該功能,因此所有這些應用程式都不需要。 如今,即使是 iPhone 也可以輕鬆地將即時照片的長曝光拼接在一起。

新文章:計算攝影

讓我們回到谷歌的夜間 HDR。 事實證明,使用時間包圍可以在黑暗中實現良好的 HDR。 該技術首次出現在 Nexus 5 中,稱為 HDR+。 其餘的 Android 手機都像收到禮物一樣收到了它。 該技術仍然非常受歡迎,甚至在最新 Pixel 的展示中受到稱讚。

HDR+ 的工作原理非常簡單:確定您在黑暗中拍攝後,相機會從緩衝區中卸載最後 8-15 張 RAW 照片,以便將它們疊加在一起。 因此,該演算法會收集有關幀暗區的更多信息,以最大程度地減少雜訊(由於某種原因,相機無法收集所有資訊並出錯的像素)。

就像如果你不知道水豚長什麼樣,你讓五個人描述它,他們的故事會大致相同,但每個人都會提到一些獨特的細節。 這樣你就可以收集到比僅僅詢問更多的資訊。 像素也是如此。

添加從一個點拍攝的畫面可以產生與上面的星星相同的假長曝光效果。 數十幀的曝光被總結,其中一幀的錯誤在其他幀中被最小化。 想像一下您每次需要點擊數位單眼相機快門多少次才能實現這一目標。

新文章:計算攝影

剩下的就是解決自動色彩校正的問題 - 在黑暗中拍攝的畫面通常會變成完全黃色或綠色,而我們有點想要日光的豐富性。 在 HDR+ 的早期版本中,只需調整設定即可解決此問題,就像 Instagram 中的濾鏡一樣。 然後他們求助於神經網路。

這就是 Night Sight 的出現——Pixel 2 和 3 中的“夜間攝影”技術。在描述中,他們說:“基於 HDR+ 的機器學習技術使 Night Sight 發揮作用。” 本質上,這是色彩校正階段的自動化。 該機器接受了「之前」和「之後」照片資料集的訓練,以便從任何一組黑暗扭曲的照片中製作出一張漂亮的照片。

新文章:計算攝影

順便說一下,該資料集是公開的。 也許蘋果公司的人會接受它並最終教他們的玻璃鏟在黑暗中正確拍照。

此外,夜視功能還透過計算幀中物體的運動向量來標準化長快門速度下必然出現的模糊。 因此,智慧型手機可以從其他框架上取下透明部件並將其粘合起來。

#運動堆疊 - 全景、超級變焦和降噪

新文章:計算攝影

全景是鄉村居民喜愛的娛樂活動。 歷史上還沒有任何案例表明香腸照片會引起作者以外的任何人的興趣,但它不能被忽視——對許多人來說,這就是堆疊的開始。

新文章:計算攝影

使用全景圖的第一個有用方法是透過將多個畫面拼接在一起來獲得比相機矩陣允許的更高解析度的照片。 長期以來,攝影師一直在使用不同的軟體來拍攝所謂的超解析度照片,即輕微偏移的照片似乎在像素之間相互補充。 透過這種方式,您可以獲得至少數百千兆像素的圖像,如果您需要將其列印在房屋大小的廣告海報上,這非常有用。

新文章:計算攝影

另一種更有趣的方法是像素移位。 索尼和奧林巴斯等一些無反光鏡相機早在 2014 年就開始支援它,但他們仍然必須手工黏合結果。 典型的大相機創新。

智慧型手機在這裡取得成功有一個有趣的原因——當你拍照時,你的手會顫抖。 這個看似問題構成了在智慧型手機上實現原生超解析度的基礎。

要了解其工作原理,您需要記住任何相機的矩陣是如何建造的。 它的每個像素(光電二極體)只能記錄光的強度,即傳入光子的數量。 然而,像素無法測量其顏色(波長)。 為了獲得 RGB 圖片,我們還必須在這裡添加拐杖 - 用多色玻璃片網格覆蓋整個矩陣。 其最受歡迎的實作稱為拜耳濾波器,目前在大多數矩陣中使用。 看起來像下面的圖。

新文章:計算攝影

事實證明,矩陣的每個像素僅捕獲 R、G 或 B 分量,因為剩餘的光子被拜耳濾波器無情地反射。 它透過直接平均相鄰像素的值來識別遺失的分量。

拜耳過濾器中有更多的綠色細胞 - 這是透過與人眼進行類比來完成的。 事實證明,在矩陣上的50 萬個像素中,綠色將捕獲25 萬個,紅色和藍色- 各12,5 萬個。其餘部分將被平均- 這個過程稱為去拜耳化或去馬賽克,這是一個非常有趣的拐杖一切都休息了。

新文章:計算攝影

事實上,每個矩陣都有自己狡猾的專利去馬賽克演算法,但出於本故事的目的,我們將忽略這一點。

其他類型的矩陣(例如 Foveon)在某種程度上還沒有流行起來。 儘管一些製造商正在嘗試使用不含拜耳濾光片的傳感器來提高清晰度和動態範圍。

當光線很少或物體的細節非常微小時,我們會失去大量訊息,因為拜耳濾波器公然切斷了具有不必要的波長的光子。 這就是為什麼他們想出了像素移動——將矩陣上下左右移動 1 個像素來捕獲所有這些像素。 在這種情況下,照片並沒有變大 4 倍,處理器只是使用這些資料來更準確地記錄每個像素的值。 可以這麼說,它不是對其鄰居進行平均,而是對其自身的四個值進行平均。

新文章:計算攝影

用手機拍照時手的顫抖使這個過程成為一個自然的結果。 在最新版本的 Google Pixel 中,只要你在手機上使用變焦功能,這個東西就會被實現並打開——它被稱為 Super Res Zoom(是的,我也喜歡他們無情的命名)。 中國人也將其複製到寮語中,儘管結果稍差一些。

將稍微偏移的照片疊加在一起可以讓您收集有關每個像素顏色的更多信息,這意味著在不增加矩陣百萬像素物理數量的情況下減少噪音、增加清晰度和提高分辨率。 現代 Android 旗艦機會自動執行此操作,用戶甚至無需考慮。

#焦點堆疊 - 任何景深並在後製中重新對焦

新文章:計算攝影

此方法來自微距攝影,淺景深一直是個問題。 為了讓整個物體清晰對焦,您必須前後移動焦點拍攝幾張照片,然後將它們拼接在一起形成一張清晰的照片。 風景攝影師經常使用同樣的方法,使前景和背景像腹瀉一樣銳利。

新文章:計算攝影

所有這一切也都轉移到了智慧型手機上,儘管沒有太多宣傳。 2013年,發布了帶有「重新對焦應用程式」的諾基亞Lumia 1020,2014年,發布了帶有「選擇性對焦」模式的三星Galaxy S5。 他們按照相同的方案工作:按下一個按鈕,他們快速拍攝三張照片——一張是「正常」焦點,第二張是焦點向前移動,第三張是焦點向後移動。 該程式對齊幀並允許您選擇其中一個,這在後期製作中被譽為“真正的”焦點控制。

沒有進一步的處理,因為即使是這個簡單的黑客攻擊也足以在 Lytro 及其同行誠實地重新聚焦的蓋子上再釘一根釘子。 順便說一下他們(過渡大師80級)。

#計算矩陣 - 光場和全光元件

正如我們上面所理解的,我們的矩陣是拄著拐杖的恐怖。 我們只是習慣了它,並試著忍受它。 從一開始,它們的結構就幾乎沒有改變。 我們只是改進了技術流程——縮短了像素之間的距離,對抗干擾噪聲,並添加了用於相位檢測自動對焦的特殊像素。 但是,如果您使用最昂貴的單眼相機並嘗試在室內照明下拍攝一隻奔跑的貓 - 溫和地說,貓會獲勝。

新文章:計算攝影

長期以來,我們一直在努力發明更好的東西。 該領域的許多嘗試和研究都可以透過谷歌搜尋“計算感測器”或“非拜耳感測器”,甚至上面的像素移位範例也可以歸因於使用計算來改進矩陣的嘗試。 然而,過去二十年來最有希望的故事恰恰來自所謂的全光相機世界。

為了避免您因對即將出現的複雜單字的預期而睡著,我將向您透露內部人士的說法,最新的 Google Pixel 的相機只是「稍微」全光。 只有兩個像素,但即便如此,即使沒有第二個鏡頭,它也能像其他人一樣計算出幀的正確光學深度。

全光是一種尚未發射的強大武器。 這是我最近最喜歡的一個的連結。 有關全光相機的功能以及我們與它們的未來的文章,我從中藉用了範例。

#

全光相機 - 即將推出

1994 年發明,2004 年收藏於史丹佛大學。 第一款消費級相機 Lytro 於 2012 年發表。 VR產業目前正積極嘗試類似的技術。

全光相機與傳統相機的不同之處僅在於一個修改 - 它的矩陣覆蓋有透鏡網格,每個透鏡覆蓋幾個真實像素。 像這樣的東西:

新文章:計算攝影

如果正確計算從網格到矩陣的距離以及孔徑的大小,最終影像將具有清晰的像素簇 - 類似於原始影像的迷你版本。

事實證明,如果你從每個簇中取出一個中心像素並僅使用它們將圖像粘合在一起,那麼它與使用普通相機拍攝的圖像沒有什麼不同。 是的,我們在解析度上損失了一些,但我們只會要求索尼在新矩陣中添加更多的百萬像素。

新文章:計算攝影

樂趣才剛開始。 如果您從每個簇中取出另一個像素並將圖片再次拼接在一起,您將再次獲得一張正常的照片,就好像它是透過移動一個像素來拍攝的一樣。 因此,擁有 10 × 10 像素的簇,我們將從「稍微」不同的點獲得 100 個物體的圖像。

新文章:計算攝影

簇大小越大意味著影像越多,但解析度越低。 在擁有41萬像素矩陣的智慧型手機世界中,雖然我們可以稍微忽略分辨率,但凡事都有極限。 你必須保持平衡。

好的,我們已經組裝了全光相機,那麼它為我們帶來了什麼?

誠實地重新聚焦

所有記者在有關 Lytro 的文章中熱議的功能是在後製中誠實地調整焦點的能力。 公平地說,我們的意思是我們不使用任何去模糊演算法,而是專門使用手邊的像素,按所需的順序從簇中選擇它們或對其進行平均。

全光相機的 RAW 攝影看起來很奇怪。 要從其中取出普通的鋒利吉普車,您必須先組裝它。 為此,您需要從 RAW 簇之一中選擇吉普車的每個像素。 根據我們如何選擇它們,結果將會改變。

例如,簇距原始光束的入射點越遠,此光束越失焦。 因為光學。 為了獲得焦點移動的影像,我們只需要選擇與原始影像所需距離的像素(更近或更遠)。

新文章:計算攝影

 

將焦點轉移到自己身上更加困難 - 純粹從物理角度來看,簇中此類像素較少。 起初,開發人員甚至不想讓使用者能夠用手對焦——相機本身在軟體中決定了這一點。 用戶不喜歡這樣的未來,因此他們在後來的韌體中添加了一個稱為「創意模式」的功能,但正是因為這個原因,對其的重新關注非常有限。

來自一台相機的深度圖和 3D   

全光中最簡單的操作之一是取得深度圖。 為此,您只需收集兩個不同的幀併計算其中的物件移動了多少。 更多的偏移意味著離相機更遠。

谷歌最近收購並殺死了 Lytro,但將他們的技術用於 VR 和…Pixel 相機。 從 Pixel 2 開始,相機首次變得「略微」全光,儘管只有兩個像素簇。 這使谷歌有機會不像其他人那樣安裝第二個攝像頭,而是僅根據一張照片計算深度圖。

新文章:計算攝影

新文章:計算攝影

深度圖是使用移動一個子像素的兩個幀建立的。 這足以計算二進制深度圖並將前景與背景分開,並在現在流行的散景中模糊後者。 這種分層的結果也會被經過訓練以改善深度圖的神經網路所平滑和「改進」(而不是像許多人認為的那樣模糊)。

新文章:計算攝影

訣竅在於我們幾乎免費地在智慧型手機中獲得了全光裝置。 我們已經在這些微小的矩陣上放置了透鏡,以某種方式增加光通量。 在下一代 Pixel 中,Google計劃更進一步,用鏡頭覆蓋四個光電二極體。

來源: 3dnews.ru

添加評論