PIXEL 計算攝影.jpg

Google 的 pixel 手機一向是世人公認拍照數一數二好的手機,然而在所有廠商的感光元件都一樣的情況下,為何Pixel還是能拍出比它廠還好看的照片?
答案就是Pixel手機的演算法,Google運用了許多巧妙的演算法,讓只有一顆鏡頭的Pixel手機也能拍出類似單眼相機的效果。
而最近,有位XDA的開發者成功將Google Pixel / NEXUS內的Google Camera (簡稱GCAM)抽取出來,應用到其他手機上,讓其他Android手機也能使用這破解版的Google Camera,而使的GCAM在近期成了一個熱門話題,且隨著最近Night Sight功能的推出,Google Camera也開始在許多論壇盛行,
究竟Google是如何做到靠演算法做出手持夜拍、散景、無損變焦、拍出超高動態範圍的照片的呢? 請看以下文章 :

傳統的拍照模式

傳統的相機、手機拍照的方式就是調整好iso、快門後,再經由硬體電路,如:ISP,做處理(去馬賽克、伽馬校正、降噪、白平衡、銳化、調色…),然而隨著手機的處理器性能越來越強大,許多廠商開始運用手機的運算能力,將硬體規格的比拚轉向演算法的精進。

 

Google Camera的演算法 - HDR+

Google Pixel的HDR+就是一個很好的計算攝影的例子,HDR+是Google開發的一種演算法,增強照片的動態範圍,藉以改善低光源拍照、避免高光過曝。傳統的HDR是拍多張過曝、欠曝、正常曝光的照片去合成,但這種算法會造成部分高光區域過曝、暗部過多雜訊,使的HDR演算法難以去做疊圖,造成鬼影…

而HDR+的原理是一次拍攝多張欠曝的圖片(9~15張),不同於傳統的HDR是由多張欠曝/過曝/正常曝光的照片所組成,Google的HDR+可同時保留高光及低光區域,再透過疊圖將暗部的雜訊移除

figure1.jpg
▲疊圖 (原圖來自)

不過HDR+當然不是單純的將照片疊起來而已,為了避免手震帶來的影響,演算法會仔細比對各個照片中的每個區域,將偏移的圖片拉回,並將莫名出現的物體去掉。而除了影像位置矯正,HDR+還會決定要保留多少亮部及暗部,避免出現太假的圖片,例如 :

HDR+Sample.jpg
▲圖片引用自影片

而為了保證零快門延遲,在打開Google Camera後,它會自動開始捕捉畫面存到環形緩衝區 ( 環形緩衝區會不斷地刪除舊照片,以讓出空間給新照片 ) ,當按下快門後,再對之前儲存的畫面去做合成,達成零延遲快門。且搭配Google Pixel內置的Pixel Visual Core,加速運算速度,之所以說加速,是因為HDR+仍可支援沒有Pixel Visual Core的Pixel 1、NEXUS、其他手機…所以可推測,Pixel Visual Core僅是加速運算用。

而為了保證用戶能夠及時預覽畫面,每張照片會被限制快門時間至66mS,讓取景器能有至少15fps的畫面更新率。

HDR+2.jpg

▲未開啟HDR+(左),與已開啟HDR+(右) 的動態範圍差異 (原圖來自)

HDR+1.jpg

▲未開啟HDR+(左),與已開啟HDR+(右) 的動態範圍、細節差異 (原圖來自)

而由於HDR+會一次疊很多張圖,也使的Google Camera能拍出比傳統拉高ISO/快門時間還要清晰的夜景圖,但是HDR+只能在亮度3 Lux以上的環境發揮作用,低於3 Lux,HDR+無法拍出正常的圖片,所以Google在今年11月推出了新功能 – Night Sight ,以解決極限低光源拍照的問題。

 

  參考資料

Google AI Blog

Youtube : Nat and Friends

文章標籤

創作者介紹
創作者 阿湯 ATon 的頭像
阿湯 ATon

阿湯 ATon 3C

阿湯 ATon 發表在 痞客邦 留言(0) 人氣()