尚未解答行動通訊- 李永樂 手機AI計算攝影
李永樂 手機AI計算攝影
行動通訊- 李永樂 手機AI計算攝影
李永樂 手機AI計算攝影
各位同學 大家好 我是李永樂老師
最近有一個小朋友跟我說
他新買了一臺手機
這個手機的拍照功能特別強大
簡直可以媲美單反
還有很多附加的神奇功能
他想問我這些功能到底是如何實現的呢
為此我還特意買了一臺小米11 Pro
我們來體會一下它的拍照功能
首先是神奇夜景模式
它能夠在夜晚拍到特別清晰的照片
再比如說還有120倍的超大變焦
能夠拍攝到很遠的物體
還有人像模式
能夠對背景進行虛化 凸顯出人像
還可以進行魔法換天
把天空換成你想要的樣子
還可以進行魔法消除
那麼一個小小的手機
是如何具有這麼強大的功能的呢
我在拍照的時候發現有一個AI的標誌
這就表示的是
是否啟用人工智能系統來處理照片
原本需要在雲端進行的許多人工智能操作
現在在小小的手機上就可以完成了
目前最為普及的就是在拍攝影像方面
它可以極大地提升用戶的體驗
今天我們就來聊一聊人工智能在攝影上的應用
聊一聊AI計算攝影
AI 也就是人工智能
計算攝影
什麼叫計算攝影呢
首先我來放兩張圖
這個是沒有經過AI處理的圖片
然後我們經過AI處理之後
大家比較一下
這個也是沒有經過AI處理的
我們再把它處理一下
大家比較比較
大家看了之後是不是感覺到非常震撼呢
看了AI處理的圖之後
就不願意再看原圖了 對不對
因為差別實在是太大了
那麼在幾年以前我們還不具有這種技術
那主要是因為什麼呢
主要是因為那個時候AI的算力還不夠
那個時候我們使用的是傳統相機
傳統的相機不管是數碼相機 還是光學相機
它的基本原理其實都很簡單
那就是物體發出或者是反射的光線
經過了這個相機的鏡頭
進入到這個相機之中
然後通過鏡頭進入到感光的元件上
這個感光片可能是膠片
也可能是像CCD或者CMOS之類的電子元件
那麼就可以把一幅圖成像在這個感光片上
但是傳統相機其實是有一些問題的
首先傳統相機有一些復雜的參數
比如說光圈 焦距 什麼光這些
曝光時間等等這些東西
那麼你如果讓它自動調節的話
效果可能就不太好
如果你想拍出高質量的照片的話
就必須學習很復雜的攝影技術 對吧
對於我這種外行來講太復雜了
也就是說
在這過程中我可能需要手動調節一些東西
這個調節的過程是比較復雜的
如果調不好 效果就一般般
那麼第二個就是傳統的這種相機
它是存在物理極限的
它過於真實 存在物理極限
什麼叫過於真實存在物理極限呢
就是說因為鏡頭或者感光片的一些原因
它不可避免地會出現一些模糊
以及其他的一些問題
我們來簡單地介紹一下
說這個相機出現了模糊 原因是什麼
比如說有一個原因叫做光的衍射
光的衍射
我們知道這個相機成像
就是依靠鏡頭這個凸透鏡 對吧
那麼光線經過凸透鏡之後
其實並不是成為一個點 而是成一個光斑
這叫做艾裏斑
鏡頭越小 這個艾裏斑越大
那如果兩個艾裏斑重疊到一塊
我們就沒有辦法區分這兩條光線了 對吧
所以因為艾裏斑的存在
底片上呈現的像就會出現一定的模糊
所以你要想減小的這種模糊
你必須提高這個照相機的口徑 對吧
所以天文望遠鏡造得特別大
但是我們的相機不可能造得特別大
第二個就是因為它的感光片
比如說像CCD或者是CMOS
這種感光片它有一個分辨率的限製
分辨率的限製
什麼意思呢
比如說這個小米11 Pro這個手機
它的分辨率是5000萬像素 是怎麼回事呢
就是它的這個感光片是1/1.12英寸
也就表示這個感光片的對角線長度
是16/1.12 毫米
這16毫米的出現是歷史原因
然後這個長寬之比又是4:3
所以我們就可以知道
它的這個長和寬
大約都是11.4毫米和8.6毫米
你就可以計算出它的感光片有效的面積了
然後它一個像素點的面積
是1.4微米x1.4微米的一個方塊兒
你這麼一算你就知道
它一共有多少個
大約5000萬個這個方塊兒
所以說就有5000萬個像素點
像素點的密度越高
對外界信息的描述就會越準確
但是這個像素點不可能做得無限小
對於外界特別細微的結構
因為分辨率的限製
也會出現模糊
那麼第三個原因就是運動模糊 運動模糊
這個就比較好理解了
我們在拍照的時候
會讓一定的光進到我們的這個鏡頭裏面去
那麼進光的時候
我們這個手機不能運動 對吧
如果我的手機一抖動了
出現了運動的話
那就會出現模糊
所以說專業的相機你得架到三腳架上
不讓這個相機動才能夠拍得比較清楚 對吧
那麼如果你在拍攝遠景的時候
把鏡頭拉得非常非常長
或者是在晚上的時候需要長曝光
這個運動的模糊就會更加明顯
那第四個就是噪點 噪點
什麼叫噪點呢
就是這個CCD也好 CMOS也好
由於它的這個物理特性
比如說電子的這個無規則運動
就會出現一些雜亂的膠原狀的點
而這些點就稱之為噪點或者說噪聲
那如果說外界的光信號比較強的話
有用的信息多
這個噪聲的影響就不明顯
但是如果外界的信息比較少
比如說在晚上的時候拍照
本來有用的信息就弱
你就會發現很多的噪點
或者我們利用小光圈長焦鏡頭
來拍攝景物的時候
你也會發現這個噪點的影響是比較明顯的
此外還有這個鏡頭色差 對焦不準等等
會造成一定的模糊
當然我們可以通過物理方法對它進行改進
你比如說我可以增大鏡頭的大小 對吧
我可以增大感光片兒
我可以減小每一個像素點的尺寸
讓像素點變得更多
但是這些方法同時也就意味著成本的上升
以及功耗的變大
或者是相機尺寸的變大
而且有的時候這些個改進方法是彼此矛盾的
你比如說
你讓每一個像素點越來越小
那它就越來越密
你就可以收集到更多的這個外界的信息了
但是一旦一個像素點小了的話
外界有用的信息少
它的噪聲影響就會變大 對吧
所以用硬件的方法來提升分辨率
它是存在極限的
那麼我們該如何處理這個問題呢
現在越來越多的人使用手機進行拍照了
因為手機比起單反
不光不需要進行復雜的設置
不需要頻繁的更換鏡頭
更重要的是
隨著手機移動平臺構架和計算能力的逐代提升
圖像信號處理器和AI處理引擎越來越強大
許多廠商都把人工智能引入到拍攝當中
我們一點開手機的拍照功能
這個人工智能算法
都在為我們拍出一張好看的照片而努力
這個過程我們就稱之為是計算攝影的過程
計算攝影
它是算出來的一張照片兒
具體來講
這個手機廠商選定了攝像頭 感光芯片
操作系統等等這些東西之後
會有算法廠商來設計人工智能的算法
他們首先會用大量的圖片來進行投餵這個系統
首先我們先收集一大堆的圖片
然後我們去投餵這個人工智能的系統
就是告訴這個人工智能的系統
這個好的圖片 美觀的圖片 不模糊的圖片
它長什麼樣子
這個過程我們就叫它訓練過程 對吧
這是人工智能的第一個步驟
那麼訓練好了之後
用戶拿到這個手機拍了一張照片兒
然後這個人工智能系統
就會對照片進行什麼呢
進行修飾
它會把這個照片進行一定的調整
修飾的過程我們稱之為推理
這就是一個人工智能的處理圖像的一個過程
讓我們看起來這張照片顏色更加鮮艷
飽和度更好
看起來細節更加清楚
用業內的話說
人工智能攝影
就是用人工智能來突破光學的物理限製
用強大的算力來創造全新的視覺想象
用深度學習來超越人眼可見的細節
那麼以往的手機為什麼沒有人工智能攝影呢
這是因為以往的手機它支持的AI算力太少
難以支持理想的人工智能攝影效果
當然你可以把影像傳到雲端
利用雲端的計算能力來進行AI計算
不過這個過程一來是浪費時間 浪費流量
二來 它有泄露隱私的問題
所以手機終端側的AI算力就變得至關重要
那麼下面我們就來具體說一說
這個AI攝影到底在哪些方面改進了傳統攝影
我們首先來說一下超分辨率技術
超分辨率技術
大家可能沒有聽說過這個詞 是吧
什麼叫超分辨率呢
我們在電影裏面經常可能看到過這樣的情景
說這個警察拍到了一個嫌疑犯的影像
不清楚
然後按了幾個按鈕
結果這個影像就變得特別清楚
這就是超分技術
它可以從一個低分辨率的照片
變成一個高分辨率的照片
有人說這怎麼能做到呢
低分辨率變高分辨率
那這些細節你怎麼補充上呢
其實答案就是一個字 猜
比如說大家看這張照片
這張照片
你很顯然就知道它是個足球的照片 對吧
所以你腦子中有足球的影像
你就可以按照腦子中的這個形象
把這個足球的細節補充上去
於是就把這個模糊的 不清楚的照片
變成了一個清晰的 信息量更大的照片兒
這就是一個超分的過程
那麼近年來
隨著人工智能和深度學習的突破
在2014年的時候
香港大學的董超提出了一種
基於卷積神經網絡的超分過程
我們稱之為SRCNN
那現在
這個很多手機上使用的這個超分技術
大多都是SRCNN的一個變種
我們就來重點介紹一下
這個技術的原理是什麼樣子
首先我們要對這個人工智能系統進行訓練
我要告訴它
給你一張低分辨率圖片
那麼相應的高分辨率是什麼樣的
我得先給你一大堆高低分辨的對照圖
讓你去訓練
讓你系統了解這個事兒 對吧
所以首先我有一張
比如說一張圖片
這個圖片我們管它叫x
這個X是一張高分辨率圖片
比如說這個X是512x512的這麼一張圖
512x512的
那然後你首先通過一些方法
把它變成一個低分辨率的圖片x' 是吧
它比如說是128x128的
那你怎麼變成低分變率圖片呢
很簡單
你就丟掉一些信息就行了 是不是
它就變成了一個低分辨率的
好了 我們有了一個高分辨率 一個低分辨率
然後怎麼進行訓練呢
是這樣的一個過程
首先這個董超說
你先把這個x'進行上采樣
就是你再把它變回到一張512x512的
這麼一張這個分辨率比較高的圖片
這個圖片叫做Y
但大家註意
這個過程其實沒有太大意義
因為你只是把這個尺寸變大
它就變模糊了 對吧
你得把細節補充上去
讓這個Y跟x一樣才行
怎麼做呢
董超說 你可以這樣
你首先對它進行卷積操作
大家還記得什麼叫卷積嗎
我們在以前講人工智能的時候談到過這個事兒
就這個圖
在計算機看來它實際上是一個矩陣 對吧
它是512x512的一個矩陣
這個矩陣上每一個像素點就是一個數字 對吧
對這個數字進行一大堆的加法和乘法運算
我們稱之為卷積
卷積有個卷積核 叫W
對它進行卷積操作
然後再加上一個偏置
叫做B
進行了這些操作之後還要進行激活
然後就得到了一個新的這樣的一個信息
這個信息我們稱之為F (Y)
這個F (Y)
它就能夠提取出這張圖片的一些特征
比如說什麼這個橫著的線條 豎著的線條等等
如果你把這個公式寫出來
大概長這個樣子
就是說F (Y)
它等於max
這是激活造成的
0 然後這個W 卷積Y
然後再加上一個B
就這個公式比較復雜
大家不理解也沒有關系
反正意思就是你通過這樣的一個操作
提取出了這個圖像的一些特征 對吧
好 這是第一步
圖像特征提取
然後第二步
就是我再利用一個卷積核和一個偏置
我再做一次這個操作
就變成了F (Y)
這個操作跟第一個操作一樣
相當於是深度學習的第二層網絡
通過這種方法我可以進一步提取出我要的特征
比如說一些輪廓等等
如果具體寫出來這個F (Y)
它等於取最大值
0 然後W 卷積F (Y)
然後再加上B
這個看不懂也沒關系
反正就是繼續提取特征
第三步就是把它再變回一張圖
把它再變回一張圖
叫做F(Y)
那在這過程中我們又需要第三個卷積核
和第三個偏置
同樣道理
F(Y)它又等於max
0 然後W 卷積F (Y)
然後再加上一個B 是吧
反正通過這三個步驟的操作
我就把原來的這個比較低分辨率的圖
變成了一個比較高分辨率的512的圖
但是大家註意 經過這麼一大堆操作
這一張圖它不一定跟原來一樣
除非W B W B W B
這些個參數取得合適它才會一樣 對不對
於是下一個步驟幹什麼
下一步我就把這兩個圖進行比較
你把原來的這張圖
和你後來猜出來的這個圖進行比較
如果它們兩個是一模一樣的
就說明這些個參數調得非常合適
如果這兩個不一樣
就得調整W B W B 和W B
讓這兩張圖比較接近 是吧
至於說具體怎麼比較
還記得嗎
我們在上次講人工智能的時候說過這事
其實你就是算一個函數
這個函數叫損失函數
損失函數等於(1/n)Σ[x -F(Y )]2 是吧
這什麼亂七八糟的
其實很簡單
就意思是你用這個原圖x它的每一個像素點
和我算出來的這個圖的每一個像素點做差
把這個差值平方了取加和
加和完了之後再除以這個圖片的個數
因為你不是有很多張訓練圖片嗎
然後讓這個損失函數怎麼著
最小
它如果不是最小呢
你就通過這個BP算法
去調整這些參數讓它最小
這就訓練完成了 對不對
好 訓練完成了之後
你再給我一張低分辨率的圖
我沒有上面這個 沒有關系
你給我一張低分辨率的圖
相當於從這開始
我就可以直接算出來一個高分辨率的圖
然後我就認為
這張高分辨率的圖應該最接近事實 對不對
這就是所謂的推理過程
你給我一張低分辨率的
我就可以變成一個高分辨率的
超分辨率問題
現在的手機能夠進行大範圍的變焦
其實很大程度上是歸功於超分的
因為你把鏡頭拉得非常遠了之後
它這個有效的光信息會比較少
抖動也好 噪聲也好
都會占得比例比較大
所以你正是因為有這個超分辨率
你可以修正這個噪聲和抖動
你才讓圖片看起來非常清楚
比如大家看這幾張圖
這就是一個算法的廠商叫做慧鯉
它實現的這個圖片的超分效果
沒有超分的和超分的咱們比較一下
效果還是非常的明顯 對吧
再比如我們有時候遠距離掃描二維碼
如果要是沒有超分功能
你很有可能會掃描失敗
有同學在大學上課的時候坐在後排
你想拍老師前面板書
如果沒有超分的話可能板書也拍得不清楚
而且現在隨著移動平臺AI算力的不斷提升
許多的算法廠商
也在不停地改進自己的超分算法
可以支持規模更大 處理能力更強的算法
實時處理能力也變得更好
典型處理時間是300到400毫秒
用戶基本沒有感覺
我們甚至都不知道點開相機的時候
背後已經啟用了AI的超分算法
而且許多廠商已經開始使用了AI視頻技術
視頻超分也是其中一部分的基礎功能
或者是AR VR等交互領域
同時還得包含視頻和聲音的多路程處理
這就對AI芯片的處理能力提出了更高的要求
說完了超分咱們再來說說另外一個功能
超級夜景
在傳統拍攝夜景的時候其實面臨了很多的問題
比如說因為在晚上的時候有效的光線不足
所以這個噪聲就會非常的明顯
因此 我們經常會看到有很多的斑點
如果你要是想讓進光量足一點 就得長曝光
而長曝光的時候抖動造成的模糊就會很明顯
如果曝光時間不夠的話
整個畫面就會非常昏暗
而且如果這個場景中有燈的話
你就會發現長曝光的時候這個燈就會過曝
短曝光的時候那個暗的地方根本就看不清楚
你很難把所有的地方都看清
那麼這個問題在以前是怎麼解決的呢
我們說一下
傳統的解決方案
就是這個專業的攝影師
首先會用一個三腳架去固定這個相機 對吧
你不固定 手拿著 它就會晃
固定了之後進行長時間的曝光
比如說十幾秒的這種曝光 長曝光
同時還要同時拍攝一組短曝光的照片
因為長曝光的時候
那個特別亮的地方它就過曝 是吧
特別暗的地方能夠看清
然後短曝光是亮的地方比較合適
最後你還得進行後期處理
就是把這些個圖片
一張一張的全都導到photoshop裏邊去
把那些特別亮的過曝的地方去掉
把那些特別暗的地方也去掉
然後把這多張照片合到一起變成一張照片
整個這過程非常復雜 是吧
所以 如果你要想搞出一張高質量的照片的話
可能需要折騰好幾個小時
可是現在一切都不一樣了
在手機端AI的加持下
手機攝像頭可以在第六代高通AI引擎的控製下
自動的進行多次長短曝光
並且進行如下的操作
第一個
就是在用人工智能的方法來進行什麼呢
人工智能的方法來降噪
首先 我們把這個圖像上的噪聲可以進行去掉
第二 就是它可以自動的拍攝
很多張的長曝光 短曝光相結合的一些照片
然後它還可以自動的拍攝
很多組的長曝光 短曝光的照片 是吧
那這個長曝光
也遠遠沒有剛才傳統攝影師十幾秒那麼長
一般就2到3秒
把這些照片合到一塊 是吧
去掉那些過曝的部分 特別暗的部分
把它合到一起
這就稱之為什麼
稱之為高動態 高動態
在一張照片裏邊既能看到特別亮的部分
也能夠看到比較暗的部分
叫HDR 是吧 高動態
整個過程兩三秒鐘就完事
相比於傳統攝影可能需要幾個小時
這個時間就大大的縮短了
但是你怎麼知道哪些地方是噪點
哪些地方是圖像
哪些地方應該保留
哪些地方應該去掉呢
這就是要依靠人工智能的算法了
下面我們再來聊一聊背景虛化
剛才我們還演示了這個背景虛化的功能
我們知道這個傳統的單反相機
可以依靠大光圈來完成一個人像的背景虛化
這樣一來 看起來可以凸顯人像效果非常好
那麼這個手機是如何實現背景虛化的呢
這實際上是要區分前景和背景
就是我們區分人站在前面 以及他的背景
然後對前景和背景進行不同的處理
這樣就可以進行虛化了
傳統的這個手機處理方法是利用雙目攝像頭
手機上有好幾個攝像頭
這個至少有兩個攝像頭就可以進行背景虛化了
就好像人的兩只眼睛
人的兩只眼睛看同一個物體的時候
這個角度不太一樣
所以咱們就能感受到誰在前誰在後了 對不對
這就是所謂的雙目攝像頭來判斷這個深度信息
但是這種方法有兩個問題
第一個問題 就是如果這個距離特別遠的話
遠距離的時候這種方法是行不通的
咱們可以想象一下
如果兩個人離我們都很遠的話
你能判斷這兩個人誰在前 誰在後嗎
很困難的 對不對
第二個就是功率的問題
開一個攝像頭
電流就得幾百毫安
你開兩個攝像頭功率就更大
如果長時間開兩個攝像頭
或者說你拍攝視頻
想對視頻的背景進行虛化的話
那這個功耗就非常高
可能會造成手機的這個溫度超標
手機溫度一旦超標了
它就會自動降頻保護這個手機
所以感覺就會很卡
所以這個功率的問題
也是雙目攝像頭這種方法的一個限製
那麼為了解決這個問題
這個極感科技等公司就設計了一種方法
就是利用單目攝像頭再加上人工智能的方法
去解決深度計算的問題來區分前景和背景
那麼具體來講它的步驟是什麼呢
它是這樣 首先它先搭建
用軟件搭建一個3D的場景
搭建一個虛擬的3D場景
這個虛擬的3D場景是不存在的
是在計算機裏邊的
搭建一個虛擬的3D的場景
搭建好了之後
我們再用計算機對這個虛擬的3D場景
拍攝多角度的2D照片
你在計算機裏邊完成這個過程
拍攝2D的這個照片
現在你就有了一大堆的素材了
3D的場景是什麼樣的 深度信息你知道
2D的照片又是什麼樣的
你把這些玩意 把它統統送到什麼呢
送到卷積神經網絡裏面去
對這個卷積神經網絡進行計算
你訓練好了之後
你這個系統就具有了一種能力
看一張2D的照片
你就能區分這裏邊誰在前誰在後了
而且通過這種方法
你還可以實現人像和背景的一個精確分割
可以把這個人的圖整個的摳出來
同時還能對前景和背景做不同的處理
比如說魔法幻天或者背景虛化
這就是對背景進行處理的
魔法消除就是對前景進行處理的
而且你還可以把背景變成黑白的
前景是彩色的
就形成了《辛德勒的名單》的那種效果
總而言之 就只有你想不到沒有它做不到
甚至於這個算法還可以是實時進行的
也就是在拍錄像的過程中
也可以實時地對畫面中的人物進行追蹤
實現前景和背景的分割
對背景進行實時虛化 改色
對前景進行實時追焦等等
總之新一代的手機拍照幾乎都是AI計算攝影
它不光可以模擬出單反的效果
還能在一瞬之間
完成很多專業攝影師很長時間的工作
滿足用戶的各種需求
要實現這些功能需要算法算力
還有大量數據的支持
我們看到的是許多的熱銷手機
比如小米11 vivo X60 OPPO Find X3等等
它們強大的拍照功能
看不到的是實現這些功能所需要的算法
以及這些驍龍888手機上
所集成的高通第六代AI引擎
高達每秒26萬億次AI運算速度
讓很多有趣的攝像功能成為可能
你還發現了在手機上有哪些神奇的AI功能呢
歡迎在評論區裏面留言
我們在以後再給大家一起來聊一聊
手機上那些神奇的AI應用
--
0個答案
行動通訊- 李永樂 手機AI計算攝影
李永樂 手機AI計算攝影