編者按:隨著深度學習技術的進展,如何透過深度學習對三維資料進行學習並提高几何處理方法的智慧性成為近期研究工作的熱點。三維技術的發展和應用正在受到學術界和工業界越來越多的關注。VALSE Webinar 2020-16期邀請高林(中科院計算所)、李鴻升(香港中文大學)、章國鋒(浙江大學)、郭裕蘭(國防科技大學)、盛律(北京航空航天大學)針對“點雲深度學習:多一維看世界” 開展了深入探討,本文是該次討論的文字實錄,共計6個議題。點選檢視本次活動的報告資訊、講者及Panel嘉賓介紹:VALSE Webinar 20-16期 點雲深度學習:多一維看世界
點雲深度學習的很多工和影像理解一致,也是分類、分割、檢測等,它與現有的影像域深度學習的主要區別在哪?有何聯絡?點雲深度學習要解決的核心問題是什麼?
目前來說,二維的深度學習對於三維點雲處理的深度學習的網路設計還是有重要的指導作用。比如,三維檢測工作整體的大框架還是類似現在2D檢測,比如proposal-refine two-stage的方案、類似anchor free的方案、single stage的方案,透過二維的網路對三維的網路設計有一定的指導價值。另一例子是三維點雲分割,二維網路裡面encoder-decoder結構也影響了三維分割網路的設計,三維分割網路裡也看到了encoder-decoder這樣的網路結構。現階段,二維深度學習網路設計對於三維點雲的處理還是有比較強的借鑑和作用。
逐漸發展之後,三維點雲會出現更多更獨特的網路結構的設計,比如PointNet,技術上也是一個非常獨特的backbone的設計方式。點雲深度學習當前得研究核心解決問題仍然是資料的表達,針對不同資料表達設計不同具體網路模型。
郭裕蘭:無論是做影像理解,還是做點雲深度學習,最關鍵的都是特徵學習問題。但是點雲相對影像有自己的特殊性,包括點雲的無序性、稀疏性。透過感測器獲得點雲中,在三維空間中有很多地方並沒有點,通常只在場景的表面上會有點。此外,還有點分佈的不均勻性,比如近的地方點比較密,遠處的點就很少。
影像並沒有點雲的上述特殊性。因此,在做網路設計時,需要考慮怎麼針對某一種特定的資料表示型別去學習特徵。當輸入為點雲時,也有很多方法嘗試把點雲轉成中間的某種表達方式,比如多檢視、體素、或混合表示。這些方法本質上為了針對點雲本身特有的性質去更好地學習特徵表示。此外,也需要考慮在目前的GPU所能承受的計算代價下去學習一個好的特徵。
點雲分類、分割和目標檢測等任務的網路框架跟現有影像領域的工作有很多相似之處,能在影像領域找到不少借鑑。影像和點雲的工作有相互促進的地方,做影像的人比較多做的也比較早,所以有不少思想對點雲深度學習任務的網路設計能夠產生比較好的啟發。
02
針對相同的任務,例如目標檢測、語義分割,點雲深度學習的SOTA與影像深度學習的SOTA,哪個更接近實用?多一維度看世界,點雲是否可以做得更好?目前有哪些因素限制了點雲處理技術的發展?
郭裕蘭:個人理解不一定會存在哪一個取代哪一個的問題,實際上兩者有很強的互補性,一個在表觀資訊上比較強,另一個在幾何資訊上比較強,有各自的優勢。如果想要獲得很精確的位姿資訊,獲得很好的三維空間結構資訊,則點雲會更合適。在很多應用場景下,單一模態型別的感測器難以包打天下。比如自動駕駛在天氣很好的情況下,用RGB相機可以把環境感知與理解任務做的很好,但如果遇到光線不好或是雨霧天氣,光靠相機就有風險,這個時候就需要鐳射雷達來做補充。因此,在實際應用中,很多時候需要將影像和點雲相結合,而不是用一個替換另一個。
李鴻升:二維和三維當前還是有著不同的適用場景。從目標檢測的角度來講,目前影像上目標檢測已經非常實用了,比如人臉識別必須先做人臉檢測,這些二維檢測任務的效能已經非常高以及實用化。如果是從自動駕駛的角度來看,相比於基於影像的目標檢測,基於三維點雲的目標檢測更接近實用。從KITTI的檢測方法上看到,基於點雲的三維目標檢測比基於雙目影像的目標檢測精度高很多。在一些任務場景中,如果三維點雲的資料可以獲得、感測器容易部署,那麼在這種情況下,可以儘量地使用三維點雲的資料來增強整個檢測的精度。
章國鋒:這個問題裡,點雲深度學習如果也是包括RGB顏色資訊的,那多了一維RGB加深度或點雲資訊的話,理論上肯定會做得更好。因為點雲的無序性,之前確實不容易做得很好,後來PointNet這樣的方法出來之後,點雲深度學習也是取得了比較大的進展。總之,如果不考慮深度獲取的代價,顏色加深度學習的肯定能做得更好。
盛律:多一個維度肯定會有比較好的效能增益。但是問題是哪種更接近實用,不同的方式需要需要服務於不同的場景,或者說是一種任務導向選擇。比如手機場景下,影像就足夠了,但是無人車、機器人場景下,一般需要明確的幾何感知。在這種場景下,RGB加點雲的融合的方案會更有利。關於哪些因素限制點雲處理的發展,實際上跟第一個問題相像,無序性、稀疏性、不均勻性肯定會影響點雲的特徵表達。我想說的是點雲還存在著比較強的冗餘性,大量輸入點不一定對學習空間特徵表達有用。雖然現有點雲網路一般只處理上萬個點或幾千個點,但點雲模型訓練或推理消耗非常巨大。我認為需要最佳化點雲網路設計,比如使得點雲網路可以承載更多的有效點,或者更容易抓取有意義的關鍵點的資訊,這樣才會更加實用。
高林:面對相同的任務,例如目標檢測、語義分割等,不同的工業任務驅動是不一樣的,比如無人駕駛,特斯拉比較偏視覺,完全從影像上來做,可能就導致一些事故。但是像奧迪這類非常傳統的廠商,他們都是考慮點雲,多一個維度相當於多一些非常硬的約束,從任務上來說無人駕駛會更安全。從其他的任務倒向工業任務,比如微軟的HoloLens,AR、VR的應用,如果沒有深度的話,很多東西非常難做,只從影像去恢復一個場景是非常困難的。但是有了點雲以後,使得三維的重建和三維環境的感知更加地容易。像一些純3D的任務,比如室內模型、室內場景的裝修及公司裡3D建模,這些具體的工業任務裡面用到的點雲分割目前做的都不是特別好。一方面點雲用深度學習做還是比較新,網路還在不斷地最佳化和改進,不如影像技術成熟。另一方面,點雲資料本身標註困難,雖說都是點雲,但室外室內點雲分佈的區別很大,需要專有的資料集。目前室內場景的點雲分割資料集還沒有一個特別大的資料集,所以無論是技術上還是資料上,都是對點雲處理比較大的瓶頸,這方面將來可能有很多機會。
03
三維點雲深度學習技術對標註資料的需求如何?三維點雲是否存在類似影像領域的ImageNet、COCO等大規模benchmark?
高林:我們最近跟阿里巴巴淘系的趙斌強、賈榮飛等人以及SFU的張老師、悉尼大學的陶老師合作開源了場景資料集3d-front和高質量3d幾何模型資料集3d-future,(http://www.geometrylearning.com/data.html)三維幾何的資料會更多一些,同時我們提供了取樣的工具,這樣也可以在3d-future上取樣,得到室內場景的點雲的資料。對於室內場景來說,這樣增加了一些點雲的資料來源,這對室內場景的特定的任務包括分割檢測,是很有幫助的。因為這些資料都是初始資料,還會進行進一步的標註和分析,這將是一個新的開端。
像針對點雲分割任務而標註的幾個比較大的公共資料集,多大有公司的參與。點雲目標檢測領域目前比較大的資料集是Waymo資料集和nuScenes資料集,它們的場景數量和類別都比較豐富了,這些也都是由大公司釋出,這些資料對學術界的研究起到了很好的推動作用。我們最近把點雲形狀分類、三維目標檢測和點雲分割等領域的工作做了一個完整的綜述,對相關的資料集和近三年的主要方法都做了系統分析,這個工作前兩天剛剛被TPAMI錄用了,入門的同學如果想了解相關內容的話,可以參考一下,論文“Deep Learning for 3D Point Clouds: A Survey”的下載地址是https://arxiv.org/abs/1912.12033。
章國鋒:三維資料還可以透過模擬的方式來得到,相對於影像的模擬可能還更容易一點。目前已經有一些合成的資料集,例如SUNCG、InteriorNet等。另外,現在的三維資料集主要分為兩種,一種是室內的RGB-D的這種資料集,像ScanNet、Matterport3D;另外一種是室外的基於Lidar的資料集,主要是自動駕駛場景使用,像KITTI這種。
04
三維計算機視覺有一套成熟的理論基礎,也就是多視角幾何學,三維點雲深度學習與多視角幾何學目前有什麼結合點嗎?相對於傳統的影像深度學習,三維點雲深度學習是否具備更多的理論可供挖掘?三維點雲深度學習的可解釋性如何?
盛律:從我目前瞭解到的相關理論解釋及研究,說實話並不多,不過大家也是努力在這方面分析探索。有些研究把點雲學習的邏輯,比如PointNet的網路設計邏輯用在傳統問題上。比如說多視角幾何問題中特徵點匹配,以往很多時候用RANSAC或相關的方法來做多視角攝像機引數的估計,現在有一些方案是把所有的潛在匹配點對拿出來形成一個比較大的匹配點集,以點集作為一種點雲的輸入,最後預計出每個點集是否匹配。即把對集合的分類操作轉換成適合點雲處理的方案來做。還有一些在做立體匹配時,很可能在後面的最佳化過程中引入點雲以及點雲最佳化的方案。我相信這些方面可以存在著一些結合。
章國鋒:從我站在更偏傳統的三維視覺的角度來看,因為傳統的多視角幾何主要靠匹配,但這個匹配容易不準,如果直接有三維點這種比較可靠的資訊,並且能夠把這個資訊嵌入進去作為一種約束,那肯定能做得更好,得到更準確更完整的三維。另外三維點雲,如果是用Lidar或者是一些深度感測器得到的,可能有一些問題,比如可能比較稀疏,也有區域深度資訊缺失,基於多檢視幾何可以將缺失的深度資訊補全。而且直接基於點雲,遮擋的準確判斷會比較困難。利用好多檢視幾何關係,可以更好地進行三維點雲的處理,比如對遮擋關係的準確判斷,所以兩者是可以互補的。
高林:點雲本身來自於多視角幾何,從某種角度上來說不太好定義連續微分幾何的概念,它是一種非常離散的表示,所以如果要在點雲上面做更多數學理論挖掘的話,可能會是以其他幾何的表示,像網格的形式,因為它有一些流形的分佈更容易做幾何理論的分析和挖掘。現在很多工作,相當於在微分曲面上做卷積,做一些微分域上的操作,這樣可以把一些連續的理論拿過來,那方面更容易做某種偏數學理論的東西。
郭裕蘭:多視角幾何學是為了獲得一個三維場景的深度資訊,得到深度圖或三維點雲;點雲深度學習的目標更多的是為了做點雲理解。但中間有一環節大家關注的比較少,就是點雲的傳輸,比如點雲壓縮和編碼等工作。考慮到點雲的資料量通常非常大,如果要實現實時應用,在點雲壓縮編碼方向未來或許有一些工作可以挖掘。另外,在點雲可解釋方面,學界也有一些嘗試性的工作。比如,在3D point capsule networks中,用膠囊網路去做三維形狀的生成,可以獲得部件和部件之間的對應關係。類似從一個飛機變到另一個飛機,兩個飛機的機翼部分可以很好地對應起來。類似這樣的一些嘗試,還是值得關注。
05
三維資料的主要表現形式有點雲、體素、網格,哪種形式更適合三維深度學習?不同的應用對這些資料形式有沒有選擇性?相對於點雲深度學習,其他資料形式的三維深度學習技術研究現狀如何?
高林:如果是從任務導向或應用導向來看,在沒有深度學習之前,點雲、體素、網格,每個表達分工不一樣。舉個例子,我們山寨一個手機外殼,從外在的物體到數字的幾何表示依次經歷了點雲、體素、網格的任務,先是用鐳射掃描器得到點雲,然後點雲轉成了體素或者是隱式場的表達,再進一步生成了網格。在非深度學習時代,每個表示有它固有的功能,點雲負責獲取感知,體素和隱式場負責建模,網格負責精細的表示、渲染和二次編輯。深度學習是個智慧化的方法,從任務導向來說,本身的任務是適用於不同的表示,所以深度學習可能會加速和智慧化這個過程,但是它還是每個表示適合固有的任務。深度學習是如何分別地加速每個任務,而不是哪一個方法更適合深度學習。因為哪個方法都能結合深度學習讓它變得更好,這取決於任務導向,哪個任務用哪個方法更適合,比如分割的話,點雲更適合,建模的話,網格更適合,我的理解還是任務導向。
李鴻升:對於三維資料的處理,大家的想法區別還是非常大的,即使是對同一個任務,我們也看到有很多的工作,比如目標檢測,有的基於點雲,有的基於點雲體素,有的基於網格。近年來,點雲、體素、網格都探索的差不多了,CVPR2020有很多相關工作,比如我們組做3D檢測的那篇PV-RCNN就是點雲加體素的。像Grid-GCN是點雲加網格,再加上一個graph attention network。可以看出大家目前對於不同任務是否有一個比較固定的三維資料的表達形式還沒有定論,現在對於很多檢測、分割等任務,也都是在嘗試不同資料表達的方式。我認為當前合適的資料表達現在還沒有一個定論,三維視覺的表達和網路結構的探索都還有很長的路要探索,但是可能最終會類似二維的CNN,最終會收斂到同一個技術點。目前大家都是在不同的方向非常自由地在探索,在未來的幾年中,希望大家能夠一起找到這樣的收斂點的存在。
06
三維視覺技術在工業界的應用情況如何?有沒有殺手級的應用需求?三維視覺技術從學術界到工業界需要跨越的困難有哪些?
高林:從工業界的應用角度,我是感覺到了工業界對3D深度學習一個非常大的需求和渴望。因為工業界有很多的資料,這些資料怎樣去促進現有的業務流程,包括3D建模、3D分析的任務,現在是沒有一個很好的智慧化方法的,但是有了3D深度學習,他們的資料就變成了生產力,相當於是優勢。
目前我瞭解到他們還是已有的業務流程,怎樣去深度學習,去促進已有的業務流程,比如一個基本的任務,像遊戲場景裡需要大量的3D建模,原先建模一個3D模型的成本大概在一兩百美元,現在可能有些模型不需要大改變,只需要把已有的模型二次複用就行,所以從數字內容生產的角度,這部分用3D深度學習能很大地減少成本。另一方面感覺需求比較強烈的是電子商務,因為受疫情的影響,去實體店購物或選裝修方案越來越少,很多都在網際網路上選擇裝修或智慧裝潢的搭配,這種智慧推薦就是3D視覺的任務。
我認為工業界對3D視覺的任務的需求是很大的,本身3D在工業界裡的應用就很多,又有著3D視覺任務的發展,相當於可以減少成本、加速開發。就已有任務來說需求是很大的,怎麼加速效能減少成本,對3D視覺任務的高效解決方案是非常渴求的。
李鴻升:現在自動駕駛行業也需要非常多的三維視覺技術,第一個是目標檢測,如果要實現自動駕駛,首先需要對周圍環境有一個感知。第二個是高精地圖的建立。第三個是自動駕駛場景的建模和模擬器。這些都是自動駕駛目前在工業界有強烈需求的研究方向。
從學術界到工業界需要跨越的困難,首先是需要大規模資料的標註,其次在實際的工業界的場景中,大量的corner case的訓練樣本的收集是非常困難的。例如,前段時間特斯拉在臺灣撞到一個翻倒在高速公路上的貨車,這很可能是因為深度模型在訓練的時候,是經歷過這樣的corner case。當然,這些資料也可以透過模擬器來進行模擬和生成。這次CVPR上,Uber ATG還有Waymo都發表了oral論文來介紹自己在自動駕駛場景的模擬器。另外還有演算法的效率,這些演算法如果想要在車上應用,就像車上的工業電腦,它的算力目前還是非常侷限。
現在開發的很多強有力的演算法,目前都沒有辦法直接地放到車載PC和GPU上去跑。現在車載的GPU跑的演算法還都是比當前早一到兩年的演算法,因此這也是額外的限制。
章國鋒:現在三維視覺技術的應用越來越多,無論是機器人、自動駕駛,還是AR、VR。至於這裡面有沒有殺手級的應用,我認為這個問題跟技術的成熟度是相關的。如果物體或場景的三維數字化能做得很好,那麼像電子商務行業對這個需求量是非常大的。目前還很難說能把物體的三維數字化做得又好又高效,這也極大地阻礙了AR/VR內容的生成。所以我認為並不缺殺手級應用,主要取決於技術的成熟度能否支撐這些殺手級的應用。
在AR方面也有大量的三維視覺技術的應用,比如SLAM、高精地圖的構建。目前有越來越多的公司釋出了相應的高精度地圖跟SLAM結合的解決方案和應用,特別是應用在室內外的高精度的定位導航,像華為釋出的Cyberverse和AR地圖,在大場景能夠做到非常高精度的定位和導航。這是如何實現的呢?一般是需要事先把場景進行三維數字化,可以用一些裝置(比如鐳射雷達、相機等)去掃描這個場景;三維數字化得到場景的高精度地圖之後,透過視覺的定位(當然還可以配合其他訊號的定位),就能夠做到非常精準的定位,然後結合SLAM技術可以實現連續跟蹤定位和內容增強。
最近,蘋果釋出的ARKit4.0增加了一個定位錨的功能,能夠實現在特定位置的AR體驗,比如整個城市或某個著名地標,透過這個位置錨點,在那裡放置相應的虛擬的物體。雖然沒有看到這個功能的技術介紹,但是能猜到應該是利用高精度地圖的技術,再結合視覺的定位(可能還有GPS的輔助),跟SLAM結合,從而實現在大尺度場景下的擴增實境體驗。這方面的應用需求確實可能很大,今年越來越多的公司,包括百度還有一些創業公司也推出了相應的技術解決方案。但是不是真正做到殺手級的應用呢?我個人是比較看好的,尤其在室內的定位導航和導覽上。因為目前室內GPS不能用,像WIFI、藍芽定位的精度對於一些應用來說不夠高,而且裝置成本、工程量都比較大,所以如果能借助視覺技術做到精準定位導航的話,還是非常有前景的。因為像商場或一些比較大的室內場景,這種室內定位導航的需求還是很強烈的。
第三個問題,我也在跟工業界比如商湯合作,把技術應用到相應的產品上,這個過程還是挺不容易的。在學術界,主要追求創新性,只要這個東西有創新,一般就能發論文。但是對工業界來說,更關心的是能否落地。做產品很多時候一定要跨過應用的及格線,如果跨不過去,對產品來說不可能會成功。但是要跨過的話,從一篇論文到一個能落地的產品,這中間往往有很大的gap,一篇論文可以只解決一小部分的問題,但是產品可能需要百分之九十幾以上都能工作得很好,這個挑戰性很大。我的課題組主要是做SLAM和三維重建方面的研究,原來我們自己覺得做得還不錯的工作,最後要落地到產品裡,還是有很多的問題需要解決,甚至很多程式碼都要重寫。這裡面可能遇到功耗的問題,比如應用到手機上,功耗就一定要低於多少,否則就不可能上線。另外各種corner case、魯棒性等方面都要去解決。如果主要是發論文的話,可能不會特別去關心這些問題,但是真正在工業的產品裡,這些問題是一定要解決的。如果想把技術應用落地在工業界,要有這方面的心理準備。另一種方式是需要有一種合作機制,能夠把學術界和工業界的各自優勢發揮出來,形成優勢互補,學術界更專注在技術創新和前沿探索,工業界則更側重工程實現和產品落地,但兩邊能夠很好地配合起來。比如,高校和企業可以共建聯合實驗室或聯合研究中心。老師、學生去做工程的東西往往並不擅長,所以高校的課題組還是更適合專注在前沿探索和技術創新上;公司的研究員或演算法工程師可以把有前景的技術成果接過來,使其工程落地。兩邊如果能夠緊密地合作,我認為是可以實現一些前沿成果比較快速的落地的。
盛律:現在的基於深度學習或是基於資料驅動的方法,相比傳統的方法來說,更加受限於資料集,這導致在一些在學術集或是在單一工業場景訓練的模型,在新的場景完全無法泛化。這種實際上是機器學習的固有問題,如何持續地更新模型,如何使模型保持泛化能力,是一個從學術界到工業界都需要考慮的問題。
傳統的三維視覺主要從多種場景中總結人為假設或觀察來設計演算法,例如傳統興趣點的檢測子和描述子的設計等。這類演算法相對來說可以在很多場景都能做到泛化,比如在數字化三維重建中SIFT等運算元是很穩定的。但是把這類三維視覺任務完全變成用資料驅動的方式來建模,比如說學習三維物體定位,或者三維物體檢測,面向多種場景的泛化效能就會變得十分有限。從學術界來說,不少方案可以在學術集上得到很好的效能,但是在工業界上要得到一個穩定的效果,還有很多路要走,這個問題不單只是三維視覺,實際上大量的影像視覺任務上也存在這個問題。