作者 | 李溪
編輯 | 餘快
2021年12月11日,由雷峰網 & AI 掘金志主辦的第四屆中國人工智能安防峰會,在深圳正式召開。
本屆峰會以「數字城市的時代突圍」為主題,會上代表城市AIoT的14家标杆企業,為現場和線上觀衆,分享迎接數字城市的經營理念與技術應用方法論。
作為上午場的開場嘉賓,虞晶怡從深度學習的角度,從建模、渲染以及隐私保護三個方面分享了對未來城市元宇宙的理解。
虞晶怡提到,他所研究的計算機視覺領域一個非常重要的任務,就是完成物理世界向數字世界的映射。為了完成這個映射,産生了非常多的概念,比如最早的數字孿生,到現在的元宇宙。但無論是什麼概念,歸根到底需要解決幾個核心問題:
三維建模如何完成?圖像分析如何完成?隐私保護如何完成?
虞晶怡教授從四個方面出發闡述了對以上問題的理解:
計算成像、三維重建、智能融合、隐私保護。
2D計算成像。過去幾年,編碼成像取得了很大的進步。在圖像質量方面,利用編碼成像可以在高速和離焦的情況下獲得更好的圖像。
虞晶怡指出,做智慧城市離不開三維重建。計算機視覺界已經做了很多年,其中最為出色的解決方案來自谷歌的“一日建模”。具體有三個步驟:通過針對大量圖像進行位置猜測,再通過特征提取獲取精确的相機位置,再對圖像特征進行匹配和三維确認,最後得到模型,這個方式在大規模城市重建中非常常用。
基于神經網絡深度學習的最新方法,即2D 3D融合。因為很多智慧城市模型并不精确,将城市進行三維重建後,把二維的貼圖與三維模型融合,可以得到多視角視頻。
最後,虞晶怡教授着重分享了隐私保護,他認為重建做得無論多好,最重要的是保護隐私。
以下是虞晶怡演講全文,雷峰網AI掘金志作了不改變原意的整理與編輯:
今天給大家分享一個我認為非常有意思的話題,主題叫《The future of MetaCity:Modeling,Rendering,and Privacy Protection》,講講我眼裡的元城市,我會從深度學習的角度分享如何建模、如何渲染,以及最重要的如何保護個人隐私。
大家讨論的智慧城市是什麼?這是一件很有意思的事情。我記得很多年前王堅博士跟我有個讨論,他想要知道智慧城市的一個功能,比如“你能不能告訴我現在馬路上有多少輛車在開?”
這個問題聽上去好像很簡單,其實很複雜,雖然我們已經有大量攝像頭,但每個攝像頭隻能看到城市中很小一部分的車輛,如何統計出它們分别在什麼位置,如何計算出有多少車輛是非常大的挑戰。
我研究的領域是計算機視覺,其中一個非常重要的任務是完成從物理世界向數字世界的映射。完成了這個映射,大家就可以玩各種概念。而從最早的數字孿生到現在的元宇宙,歸根到底,需要解決幾個核心問題:
三維建模怎麼完成?圖像分析怎麼完成?隐私保護怎麼完成?
今天的演講主要分為四個部分:計算成像、三維重建、基于神經網絡深度學習的最新方法、隐私保護。
計算成像/2D高清圖像/智能視覺
第一部分,所謂的2D高清圖像,就是傳統的計算成像。過去二十年我一直在做計算成像,設計了各種各樣的相機系統。
相機系統本身很複雜,有很多組成部分,比如相機的鏡頭、快門、閃光燈、光圈以及各相機陣列。得益于計算成像,在獲取圖像之後可以通過各種計算方法對圖像進行進一步的分析,基于此,我們已經可以做很有意思的事情了。
2018年上海第一屆進博會,我們展示了一個技術,叫“億萬像素的上海”,照片可以進行實時無窮盡地推進。
可能大家都去過上海,但絕大部分的人沒有去過東方明珠的塔尖(因為去的話就會被就地拘留)。這幅圖片是140億像素的上海,我可以随時随地做實時渲染,也可以推進到東方明珠的塔尖,你甚至可以看到塔尖上有幾根天線。
這個系統是如何完成的?通過光場相機系統,用很多相機拍攝後進行拼接,再進行渲染。我們不希望這個渲染是在集群上進行的,因為雲端渲染非常昂貴,而是在手機等便攜終端上,比如剛才的示範樣片就是在小米電腦上進行實時渲染。
我們當時利用了計算成像的算法技術,其實就是把圖像進行分級的分割和存儲,最後在存儲之後,就能夠非常快地索引到每一個部分的模塊,這個文章發在TVCG上。
這項技術最近有很多進展,過去一年,有很多基于深度學習的方法,能把整個圖像壓縮在一個網絡之中。
計算成像另一個優勢是,不但能做超高清的成像,還能做超高速的成像。
十年前我做了一項工作,叫“超高速下的編碼快門成像”(Coded Shutter Imaging:Ultra-High Speed),我拍攝了高速運動的車輛,試圖通過圖像的逆問題把圖像恢複出來,比如高清恢複車牌。
傳統的快門在高速運動下為什麼做不了?
在傳統快門高拍攝的過程中,整個快門就是關和開,如果把這個問題映射到傅裡葉域,首先面臨的是圖像卷積的問題,它等于是用模糊的(也就是低頻的)卷積核卷積了一張清晰的圖像,整個圖像的高頻成分會被損壞,更糟糕的是逆卷積非常難,因為這是基本的數學問題。
Sinc function有一個弊端,首先它的高頻部分會發生非常猛烈的振蕩。其次,它會多次切入零點,如此,這個乘積就無法做除法,因為到處都是0點,那怎麼求解這個問題?十年前我們就開始想如何解決這個問題。
第一種方式是快門随機地開/關,圖像同樣會被模糊掉。但為什麼這個随機的開/關能使得“去模糊”的方法做得更好?因為随機開/關,等價于每次開的時候是sinc 函數,但因為它的位置不一樣,等于把不同的sinc 函數在裡面疊加,其結果就是這個頻譜非常好看,因為同時在這個位置出現0的可能性非常低,我的目标是在頻域裡不希望出現0點,出現0點沒辦法除。有了這個頻譜之後,用編碼成像的方法對圖像進行恢複,結果恢複得很好。
舉個例子,這是一幅編碼成像的圖片,是我的同事在MIT拍攝的。大家可以猜一下這輛紅色小轎車是什麼型号?是哪個廠出的?絕大部分的人會猜測它是奧迪,也有人說是TOYOTA,但其實這個車通過編碼成像,恢複出來的是大衆的車牌。在過去這些年,編碼成像得到了長足發展,在高速成像、散焦成像上都能通過編碼成像得到更好的圖像,過去幾年很多高質量的圖像都是通過編碼成像技術獲得。
三維重建
做智慧城市避不開三維城市重建,這在計算機視覺界已經研究了很多年,其實最為出色的解決方案是來自谷歌的“一日建羅馬”。大家都說“羅馬不是一日建成的”,所以他們在羅馬這樣的城市級别做了大規模重建。他們的想法是拍攝大量城市的圖像,把這些城市的圖像通過相機位置的标定和三維重建的方法進行三維重現。
具體展開,分為幾個步驟:
先是針對大量圖像進行位置猜測,有很多方式,對城市級别來說,可以用GPS信号等數據做粗略定位,再通過特征提取獲取精确的相機位置,然後再對圖像特征進行匹配和三維關聯确認,最後得到稀疏的3D點雲信息。
對于大規模的城市這個方法非常常用。大家最熟悉的是傾斜攝影,大規模的城市尺度都是利用無人機拍攝然後進行計算,這個方法本身有幾個比較嚴重的問題,最主要的問題是非常昂貴。
凡是做過大規模城市尺度重建的都知道,在集群上運算的時間長達半天,其實半天時間已經非常少見,絕大部分都需要運算幾天幾夜,而且,運算完後得到的點雲依然很差。這是因為點雲本身依靠特征來提取,特征本身是稀疏的,所以得到的點雲本身是稀疏的三維點雲。
如果這樣給政府做城市級别的重建,會非常辛苦,你需要找一個非常大的藝術團隊幫你修複,因為所有的點雲都需要把噪音抹掉,把點雲修正成幾何形狀,這是所有做過智慧城市的人都感同身受的。
智能融合
随着技術的發展,這兩步分别都将得到很大的進展。第一個是三維點雲的獲取,傳統三維點雲的獲取是依靠傾斜攝影和圖像,現在可以通過視覺定位、掃描和點雲的LiDAR進行補償。
因為LiDAR系統本身無法做三維空間的定位,你可以把LiDAR系統和視覺相機混合,靠視覺相機進行三維定位。
舉個例子,我的學生在上科大創辦的岱悟智能,讓用戶頭上頂着LiDAR和RGB相機,RGB相機做定位,LiDAR獲取場景裡三維稀疏的點雲信息,通過不斷行走就可以把整個場景呈現出來。
我們上次做了一個嘗試,把這個設備裝在小車上,15分鐘就可以完成一平方公裡的地下車庫掃描流程,效率非常高。
給大家演示一下我們當時完成的上海科技大學地下車庫的數字孿生,人徒步完成還是比較吃力(但對碼工來說走一個半小時還是蠻減肥的)大概15-20分鐘就可以完全完成數據的采集。三維點雲的采集不再需要複雜的計算機視覺系統,而是用比較簡單的LiDAR 視覺定位的方式來解決,這将成為未來的大趨勢。
同理,這個系統也可以裝在無人機上,過程非常快。我們做了一個嘗試,在上科大一平方公裡的範圍内進行邊飛邊實時産生點雲,結果很酷。
幾年前我看過一個電影《普羅米修斯》,就是拿三維小球,在三維空間進行掃描,隧道場景很快就出現了,也就是說這個夢想已經成真了,可以非常快地做外部場景的掃描。
有什麼用?掃描之後你可以做很有意思的事情。
比如對工地進行監控,看工地是否每日按照圖紙的規劃進行建設,随着多次的掃描,不但可以獲取非常高清的工地三維數字孿生模型,還可以把無人機拍到的視頻信息融合。其實也就是把圖片和三維幾何的模型融合,切入到模型時,瞬間可以切換到高清圖片,可以看到每一個圖片的高清細節,效果非常酷炫,而且确實有用,上海很多社區都開始使用這個技術進行二緯和三維的融合了。
這對智慧城市有什麼用?
第一,很多智慧城市的模型并不精确,是CG模型,通過我們的技術可以進行點雲數據 視頻/圖像融合。
第二,很重要的點,能解決當時王堅博士的問題:在三維空間裡判斷有多少輛車。
2018年、2019年我們在徐家彙商圈做了一個很有意思的事情。當時我們用上述方式,把整個徐家彙的商圈進行了三維重建。重建之後,把路燈、樓頂視角的視頻融合在一起,現在各位看到的是多個視角融合的視頻。
如果我把一個區域内所有的視頻融合在三維空間,我就可以告訴你現在路上有多少輛車在跑,有多少人在行走,這對智慧城市來說解決了非常重要的一個問題。有了這套系統,可以做非常多很酷的應用,比如可以做碳排放的檢測,因為我知道有多少輛車,耗能是多少。
傳統的三維重建,幾何是幾何、圖片是圖片,幾何和圖像是分離的。下面我想講最為有意思的一部分,《Neural Modeling and Rendering》,用神經網絡的辦法把幾何和圖像融合在一起。
這是來自英偉達非常酷的一個demo,是為了遊戲而做的。在這個demo裡所有的幾何都是定死的,但我可以随意地做風格遷徙,比如我希望它是沙漠,它就可以是沙漠,我希望樹是真實的,就可以做真實的樹。左下角是非常粗略的模型,但是有語義分割。根據語義分割和三維場景的粗略幾何,可以變換分割成右上角這樣看上去非常真實的三維圖像。
換言之,我可以通過學習的方法,把粗略的幾何恢複成非常好的三維的模型,從而大幅度降低人工成本。
過去十年裡,我最為欣賞的一個項目來自加州大學伯克利分校,他們把幾何和外觀融合在一起。
在傳統的方式中,要用點雲或mesh來表示幾何,然後再用貼圖的方法構建外觀,如果點雲或貼圖的質量不好,合成效果就很差。
前面講了,我需要從多視角拍攝圖片重建幾何,那我不如把所有的圖片都輸入到一個神經網絡NeRF中,訓練完之後可以渲染任意視角下的任意圖片,這樣可以實現無需幾何先驗的幾何重建。
怎樣實現這件事?用神經網絡完成光線-顔色-深度的映射,每一根光線可以用X、Y、Z,也就是光線的原點以及方向來表述,通過網絡可以告訴你沿着這個光線應該看到什麼樣的RGB顔色,此外網絡還會預測一個sigma參數,它代表的是X、Y、Z處的物質密度,如果密度很高說明存在物體,密度很低說明是真空的。
如此一來我就可以做很有意思的東西,也就是說,我們訓練網絡的時候,可以把幾何和紋理的概念抛棄,我擁有的就是神經網絡,隻需完成利用這個神經網絡從光線到顔色到深度的預測,幾何和紋理就自然地生成了,這是我過去看到的非常酷的工作。過去幾年大家逐漸意識到,原來用NeRF框架,不但能做元宇宙物體的生成,也能做元城市級别的生成。
以上介紹的主要是别人的工作,先說一篇《NeRF in the Wild》的工作,跟前面的工作的思路是一緻的:也即是輸入很多圖片,同時這些圖片包含了位置和圖像性質,以及一個很有意思的概念——瞬态。瞬态是什麼意思呢?比如我在三維空間拍攝了很多圖片,因拍攝的視角不同,有的地方有遮擋,比如樓前面有樹的遮擋,也有行走的人的遮擋。但因為我拍了很多圖片,而且是在不同視角拍的,所以會産生很多不同的視角,唯一不變的就是靜态幾何,一直在變的是瞬态。然後我們可以将瞬态和靜态幾何一起重建,最後還可以把瞬态和靜态幾何進行分離。同樣,用NeRF框架,所有一系列的工作,都可以通過一個神經網絡的訓練而完成。
我們看一下它的結果,非常酷。因為圖片是白天和黑夜不同時刻拍攝的,但我能夠在不同時刻展現出前景和後景的渲染,沒有幾何,用NeRF框架、神經網絡表征這麼大尺度的場景。
我們再看一些更複雜的場景,比如它可以在布拉格的街區用網絡成像來做。
這是羅馬的噴泉。雖然點雲用傳統的三維重建會很差,但沒關系,用NeRF框架可以産生非常好的三維結構。這個方法不僅能重建外部幾何,也可以在重建内部幾何,比如在一個建築的内部拍攝大量圖片,然後用神經網絡的框架進行重建。
這是在印度做的,通過多視角的圖片,其實沒有真正顯示重建幾何,而是隐式地表示三維重建的效果,它是全自動的,不需要人去修,所以大家看到這個結果應該覺得非常驚豔,如果用artist去修是非常大的工作量。
去年有一篇很有意思的論文《Urban Radiance Field》。想法類似,輸入很多圖片,但跟前面論文不一樣的是,它還結合了LiDAR的點雲信号。
前者的幾何依然需要NeRF訓練,但NeRF的訓練非常慢,所以他們索性就用LiDAR産生的點雲信号作為輸入,輸出是完整、高清的三維重建,同時還有一個高清的視角渲染,這非常酷,從多視角圖片的傾斜攝影技術往點雲融合。
但我當時研究還差了一步,用NeRF的框架做渲染,現在大家可以看到神經網絡的這個強大功能。
這是一部分渲染的結果,可以看到上面的點雲和光斑變化。這是聖保羅的場景,可以在裡面走來走去,産生相當不錯的渲染效果。
最為重要的是,這裡不需要artist去修,否則人力成本太高了,不可能完成元城市(MetaCity)的重建。不同的國家和不同的城市都能使用這個方法,相當大規模的幾何重建渲染,全是依靠NeRF的框架實現,所以我覺得它的效果還是非常酷的。
給大家介紹了基于神經網絡三維重建的工作,很多是别人的工作,也有一部分是我們的工作。
隐私保護
最後我想講,重建做得無論多好,最重要的是保護隐私。
給大家講一個我的故事。2010年,十年前我和林海濱教授做了一個項目,内容是如何在安防系統下進行隐私保護。現在看來這個工作還是非常有意思的,因為2010年并沒有想到安防會發展到如此高的地步,隐私保護當時也沒有受到重視。
前面提到,可以通過圖片快門的控制,把曝光變得模糊。我們在想,能不能故意把圖片進行模糊?模糊了圖片就可以保護隐私了。
聽起來很容易,但問題來了,模糊完了圖片,怎麼保證捕捉重要的信息?比如我需要知道這個人的行為,但不希望洩露這個人的身份。
當時我們提出一個非常酷的概念。把一個視頻用兩種不同的模式進行模糊,我們把這兩種模式稱為互素的,這裡借鑒了數學中的素數概念。
這樣做有什麼好處?如果隻是給低權限的人看,隻需要給他看模糊線條輪廓,它可以用任何現有的算法,對監控視頻進行去模糊,結果看不到臉,但能看到人的行為。但對于高權限的人來說,我可以給到兩個已經模糊後線條輪廓,通過互素性質對圖像進行去模糊,從而産生非常高清的監控視頻,我們的論文發在PAMI上,當時這個想法還是非常酷的。
這個結果很有意思,左上角是一個模糊的圖像,你可以通過最好的方法進行去模糊。右上角和左下角的去模糊方法可以恢複人在行走的信息,但無法恢複出人臉的細節。而在右下角,如果是高權限人群,可以同時拿到兩個blur stream,利用互素的性質對整個圖像進行解碼。非常重要的一點是,不需要知道這些圖像用什麼kernel進行模糊的,就可以對其進行解碼。
另外,我們希望通過多閃光燈的方法進行保護。可能大家會覺得很奇怪,為什麼多閃光燈能進行隐私保護?
通過閃光燈,可以産生影子。閃光燈如果在左邊,影子就會在右邊。如果閃光燈在右邊,影子會在左邊。随着閃光燈位置的變化,影子也會産生變化。根據影子的變化,我可以分析這些影子是如何變化的,從而獲取到一個非常有意思的圖像。雖然我沒辦法精确知道它的深度是什麼,但可以提取出它的深度邊界。
為什麼這件事對隐私保護很重要?這是一款老舊的車,通過多閃光燈的方法,可以非常準确地把邊界提取出來。其中一些細節,比如看左上角的圖,我知道這個車生鏽了,但左下角的圖看不出生鏽,這是很具體的生鏽的紋理,跟深度不相關的信息,會被我們輕易抹去。
如果我的安防是由多個閃光燈組成的,就可以把多個重要的身份信息隐藏,比如海報上的字,比如衣服上的花紋,都可以被抹掉,從而起到隐私保護的作用。
再比如人臉上有很多特征,像左圖裡的痣,是非常明顯的身份标志,但痣本身是一個紋理,通過閃光燈的方法,可以把痣去掉,通過邊界對圖像進行模糊,刻意去掉這個信息。
2010年的時候,美國對隐私保護不夠重視,當時我們兩人寫了一個非常激動人心的項目,但被否定了。我記得非常清楚,其中有一個回複的意見說:隐私保護是已經解決的問題,你們為什麼還要再寫一個隐私保護的提案。可見大家在做研究的時候,必須先有先知,要意識到這個事情對整個社會的影響。
總結一下。我給大家介紹的最新的MetaCity的工作,包括2D成像、3D重現的技術、用神經網絡的建模和渲染方法對整個智慧城市進行建模,它的最大功效,不需要人工參與,就可以對渲染起到增強和去噪作為。隐私保護是重要組成部分,前面講到兩種隐私保護的方法,我今天特别介紹了用神經網絡,本身它就具有隐私保護的作用,因為傳統方式需要傳幾何、圖片,但幾何和圖片全都被編碼在神經網絡中,這個神經網絡本身又能起到隐私保護的作用,又能有效地渲染圖片。
,