夜景: Pixel手機在黑暗中看見(翻譯筆記)
夜景是pixel手機的一個新功能,可以讓你在低光度,甚至連你都無法看清的低光度的情況下獲得擁有銳度並且無噪聲的攝影。接下講了為什麼在低光度情況下,手機攝影會成為一個難題。
為什麼在低光度情況攝影很難呢?
有在暗光下攝影經驗的人都熟悉影象噪聲(image noise), 畫素級的隨機分佈。手機相機因為鏡頭和感測器都很小,所以一個主要的噪聲是因為進入鏡頭光子數目的自然差異,叫攝影噪聲(shot noise)。所有的相機都有這個問題,即使影象感測器是完美的。但是由於影象感測器不是完美的,所以讀取噪聲(read noise),就是光子衝擊轉變成電子訊號時產生的隨機誤差。這些隨機性會影響整體的信噪比。幸運的是,信噪比會隨著曝光時間的平方根增長,所以增加曝光時間會得到少噪聲的影象。但是長時間舉著相機不動拍照可不是一件太容易的事。
在2014年我們推出了HDR+,連續地拍攝多張圖片,位置補正然後合成。HDR+的主要目的是提高亮度的動態範圍(dynamic range)。所有的pixel手機都用的這種技術,結果也表明多張影象合成會有效地降低攝影噪聲和讀取噪聲, 提高在暗光下的信噪比。在手抖和物體移動的情況下,為了保持影象的銳度我們使用短時間曝光。同時剔除那些位置無法補正的影象。這樣就得到了足夠亮度同時又保持銳度的影象。
黑暗有多黑呢?
如果用多張影象合成在暗光下得到了少噪聲的影象,為什麼不在暗光情況下用HDR+合成更多的影象以得到清晰的影象呢。讓我們先來定義“黑”。當我們評價光的等級是,都用lux,也就是每平方米的照度。來感受一下不同情況下的光照。
30,000 陽光直射的人行道
10,000 在晴朗陰影下的人行道
1,000 在陰天下的人行道
300 典型的辦公室光照
150 家中的桌子光照
20 飯店中的光照
10 能在抽屜中正確找到一雙襪子的光照
3 路燈下的人行道
1 能讀報紙的最低光照
0。6 滿月下的人行道
0。3 在地面上找不到鑰匙
0。1 沒有手電筒就無法在屋內行走
手機相機在30lux拍攝單張影象就很困難了。但是合成多張影象在3lux的情況下也可以得到滿意的影象。但是在暗光情況下就很難得到滿意的結果。所以針對夜景,我們的目標是用提高0。3lux到3lux光照情況下手機拍照的效果。 這項工作的主要任務就是獲取更多的光子。
獲取資料
當延長曝光時間以或得高信噪比和少噪聲的影象時,會產生兩個問題。第一個是,Pixel手機預設的拍照模式是0延時拍照(zero-shutter-lag),所以限制了曝光時間。當時拍照時能夠得到你按下拍照鍵那個時刻的場景,所以也就0延時。為了能得到15幀每秒的顯示,HDR+將曝光時間限制在了66ms之內無論場景有多暗。但是對於暗光場景,長時間的曝光是必要的。所以夜景模式採取了延時拍照(positive-shutter-lag(PSL))。當你按下拍照鍵時需要稍等片刻才開始拍照,所以你按下拍照鍵後還要舉著相機保持片刻。
第二個問題是延長每幀的曝光時間後產生的運動模糊,比如手抖和運動的物體。Pixel 2和pixel 3上有光學影象防抖(OIS)系統,降低中等曝光時間下的手抖。 但是對於長時間曝光和運動物體無效。為了解決OIS無法對應的運動模糊問題,Pixel 3的預設拍照方式是“運動測量”, 也就是用光流法測量當前場景的運動情況,然後選擇最低程度運動模糊的曝光時間。Pixel 1和2 沒有運動測量模式, 但都有夜景模式,在沒有太大運動的情況下將曝光時間提高到333ms。當檢測到相機是固定在三腳架上話,曝光時間可以提高到1s。
對齊合成
用多張合成降噪的方法是很傳統的方法,在天文攝影中叫曝光堆。 這個方法的難點是正確地對齊。在這個領域的我們開始於叫Synthcam的應用。實時地對齊合成多張影象。
夜景模式採用相似的方法,在Pixel 1和2上我們採用HDR+合成演算法,即使在噪聲的情況也能檢測出對齊失敗的幀。在Pixel3 上我們採用Super ResZoom。後者是為了得到超級畫素,但是對於降噪也適用。
其他的挑戰
縱使上述方法看上去很簡單,但是對於低光照的情況下還是有很多陷阱的。
自動白平衡在暗光下失效
人類善長顏色的一致性,即使在顏色光源下也能推測出物體的顏色。但是如果我們在一種光源拍照在另一種光源下檢視的話這種機能會在失效。為了矯正這種感覺效應,相機會調整影象的顏色已補償光源的主色,讓場景儘量看起來像是在白光源下拍攝的。這個過程叫自動白平衡。
但是白平衡在數學上是個病態問題。相機拍照時,雪是真正藍色的還是因為藍天的影響呢。這種不確定讓白平衡很難。白平衡演算法在非夜景模式非常有效,但是在暗光或者有色光源情況下很難確定光源的顏色。
為了解決這個問題,我們開發了基於學習的白平衡演算法。訓練區分效果好的白平衡影象和效果差的白平衡影象。當拍攝到一張效果差的白平衡影象,演算法會建議如何取平移顏色來得到中性光源的照明。訓練演算法需要用pixel手機拍攝續作場景的影象,然後手動的校正白平衡。
2。 無法看到的黑暗區域的色調對映
夜景模式的目的是為了可以看到肉眼看不清的地方。一個相關的問題是視網膜的錐體細胞的功能會停止,只有視杆細胞工作但是卻無法區分顏色。但是其實在夜景模式下的場景也是有顏色的,我們又想去看到這種顏色,所以會產生一個潛在的矛盾。最後我們的視杆細胞只有低空間敏銳度。所以在夜景情況下看到的物體是隱隱約約的。但是我們想讓夜景照片擁有銳度並且擁有更多你看不到的細節。
如果單純地延長曝光時間或者合成短曝光時間的多幅影象,這樣會使夜間的影象看起來像白天的影象。細節,顏色度和銳度也得到了保證,這樣其實並不是夜間應有的效果,如果和一個朋友分享這種圖片,會造成何時拍照的困擾。
藝術家們早就知道如何在油畫中營造夜間影象的效果。例如提高對比度,場景的周邊為黑色, 陰影為黑色。我們同樣用了這些小技巧, 用S-curve來實現色調對映。
夜景模式能運用到多黑的場景?
亮度低於0。3lux的話,自動對焦將會失效。我們在夜景模式中增添了2個手動對焦按鈕。 近的按鈕聚焦在4英尺,遠的按鈕聚焦在12英尺。後者的意思是距離大於6英尺的物體將被聚焦。我們在夜間模式自動對焦方面仍在努力。
如何得到最好的夜間模式
均勻光照優於強光
為了避免鏡頭光暈,避免亮光源
調節曝光度
用遠近對焦按鈕
為了或得最大銳度,保持手機平穩