關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?

來源 |  車右智能
知圈  進“域控制器群”請加微13636581676,備注

=====================

引子:TeslaVision技術的概要描述引發本公眾號發布以來的最大點擊量,同時在后臺我們也觀察到一些問題陸陸續續浮出水面,主要焦點是關于視覺能力的機器化進程主題。最為自動駕駛的基礎技術和核心問題,小編感覺有必要在我們車右智能的理解范圍內,提供一些基礎資料和分析,與諸位共享。

=====================

 

問題之一:在技術實操層面,通常攝像頭采集視頻是每秒X幀,圖片分辨率是a*b,計算機處理圖像是每秒Y幅。可是,人在認知世界時,人眼看世界是每秒多少幀?人類視覺的分辨率是多少?大腦處理視覺的效率如何量度?即,人是把每一秒分成多少份在認知這個世界?

 

++生命體中的視覺結構和性能簡析++


先從人眼說起吧!小編不是生物和生命領域的專家,但我們每個人都明白,AI的核心意思還是“A的I”即“類人的、仿人的Intelligence”,所以仿生仿的還需要是人類,以人類的生物結構為核心。雷達這種傳感器雖然可以仿蝙蝠、仿海豚,但視覺能力的建立,尤其是自動駕駛為核心任務的自動駕駛任務(這也是人類特有的后天獲得性能力),主要還是應該仿人類的眼球結構和對應的腦神經結構,這是不是終極絕配我們不知道,但至少是未來很長一段時間內我們應當全力追求的目標。

 

下劃線部分參考tobilipro.cn/一家眼動儀設備制造商所公布的相關信息人類雙眼的視野范圍約水平220度,垂直135度。但是視野區域能夠獲取視覺信息的清晰度等級分部卻并不均勻,這是由于視網膜上分布的兩種不同的感光細胞造成的——視桿細胞和視錐細胞。我們眼球中約有94%的感光細胞是視桿細胞。如之前提到的,視網膜的周邊區域不能很好地記錄顏色和提供目標的形狀,該區域即主要被視桿細胞所覆蓋。視桿細胞不需要充足的光線就可以工作,因此它只能為我們提供周邊環境的模糊且色彩較少的圖像;為了獲得更多細節內容和清晰的視野,要靠我們的眼球中的另一類感光細胞——視錐細胞。視錐細胞在我們眼球中的所有感光細胞中所占比例約為6%。視錐細胞通常位于視網膜的中央窩,他們排列緊密以提供盡可能清晰的圖像。

 

人類眼球的時間和空間采樣能力限制了我們從周圍環境中提取視覺信息的方式。由于我們在將視線從視野范圍的中央區域移出時,視覺精度會迅速下降,所以我們使用了一系列眼動行為使我們能夠將視線放在目標物或場景的感興趣的位置。眼跳是一種將中央窩視野從一點移到另一點的快速眼動行為,而注視則是將中央窩視野在目標上保持一定的時長以獲得足夠的視覺圖像細節。我們對物體和場景的視覺感知是通過一系列的注視和眼跳來完成的。由于眼跳發生時眼球的移動速度極快,這期間幾乎不會獲得任何有效的視覺信息,而多數的視覺信息是通過注視獲取的。

 

關于眼跳和注視行為的具體指標為,眼跳的平均時間約為20-40毫秒,而注視的時間在80-600毫秒之間變化。參見以下這幅圖:                

 

關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖1


上圖顯示,當人眼從位置1通過“眼跳”操作移植下一個注意力點位置2的時候,如果要實現對于位置2物體或者景物的觀察,還需要進行“注視”操作。人類的視覺技能并不能像光學Camera那樣一次性完整捕捉整個畫幅(對應為人眼視野),而必須通過額外耗時的“眼跳”和“注視”操作進行補充,從而帶來額外的性能損耗。

 

人類的眼睛除了具有非常受限的清晰視野范圍的特征之外,與現代的計算機屏幕的刷新率相比較,我們的眼睛對圖像變化的記錄也非常遲鈍。研究已證實在常規的光線條件下,視網膜需要80毫秒來記錄一幅新圖像,這僅僅是眼睛記錄下來的一次變化。記錄圖像的能力還取決于這幅圖像上的光線密度。這可以與照相機的快門速度加以對比,光線較差的環境會導致圖像發黑并且非常模糊,很難看清任何東西。但是,如果記錄的物體或場景的光線環境很好,例如窗戶,那么就可以用較快的快門速度且不會出現此問題。除了記錄圖像需要一定的時間,我們的眼睛還需要一定的時間讓圖像從視網膜消失。這同樣取決于光線的密度。舉例來說,當物體暴露在非常強的光線下時(如閃光燈的閃光),圖像在閃光結束后還會在視網膜上停留很久。

 

除了眼睛對光線的敏感度,我們對所觀察事物的感知速度還取決于我們觀察的內容。研究發現當在正常的光線下閱讀時,多數人為了感知一個文字而進行的觀察時間僅需50-60毫秒。但在觀察例如一幅圖片時,人們需要對其觀察至少150毫秒才能詮釋他們看到的內容。小編:這里需要注意的是,這個對于“感知速度”的技術性的描述實際上并未確定這里的“感知”是僅僅對應自動駕駛AI流程中的Perception,還是也需要在對于內容理解基礎上再覆蓋后續的Prediction和Planning過程?比如觀察一幅圖片,150ms是只能看到這里有一幅圖片,但實際不理解其內容并作出符合上下文的判斷?這個差別還是比較關鍵的,小編傾向于前者。

 

綜上所訴,這里所羅列的人眼數據指標上看,并不是在性能上高不可攀的傳感器。從視野范圍受限,到已經受限的視野范圍內狹小的高精度數據捕獲區域(只占視野范圍內的區區6%),再到視錐細胞狹小范圍所引發的生物彌補手段(眼跳和聚焦),和有限的視覺信息刷新率,最終再到完整捕獲視錐細胞范圍區域內的識別對象同樣需要消耗時間……這一個視覺數據捕獲鏈條下來,尚未送到大腦的視神經皮層,已經是代價不菲了。

 

根據以上指標,我們可以在這里做一個不確定的計算。如果對標人體前向水平220度,垂直135度的區域進行視覺識別,實際上人類只能通過眼跳和注視識別其中面積大約6%的高價值視覺信息【小編:當然距離不能太遠,人眼的視角有效距離是一定的;但人類的優勢還是在于高質量的、通過先天遺傳和后天學習所獲取的世界經驗體系,會告訴我們如何快速找到最敏感的視覺區域。】,而到這一步已經耗費了100-640毫秒的時間了。如果在一個注視周期內無法完成對于圖像的鎖定,那么至少需要一個以上的注視周期(對應的刷新率是額外的80毫秒),則此時時間耗費來到了180-720毫秒。如果在這個基礎之上還需要對視覺聚焦區內的文字或者圖像內容做出識別,那么總體的時間消耗最終會達到230-870毫秒……就這么簡單的加法運算來判斷,定性角度看這已經接近一秒鐘,達到秒級別了!

 

這似乎和我們的日常經驗相吻合,不論你是在利用視覺能力日常觀察行為還是駕駛狀態下的持續動態觀察中,秒級的時間資源消耗就是大概一眨眼的衡量尺度,除此之外我們也確實需要轉動眼球甚至頭部去捕捉更大視野范圍內的必要視覺信息,比如在駕駛狀態中一個合格的人類駕駛員就需要不斷通過觀測兩側反光鏡和后視鏡來獲取360度環境信息,這引入的時間資源消耗,需要另算,同樣是秒級。據此我們可以判斷,如果單純考量視覺信息的獲取能力,包括絕對的視覺信息獲取量和獲取時間、頻率,人眼未見得就一定強過現有達到車載商用級別的光學系統。

 

++機器世界中的光學結構和NN網絡性能簡析++


對比之下,基于現代Camera光學技術和計算機視覺所依賴的卷積神經網絡CNN和發展迅速的Transformer network,在視覺數據的捕獲和識別等硬指標上,反而更好。我們這里還是以典型的Tesla Autopilot系統為例,如下圖:


 

關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖2


本次CVPR2021的自動駕駛Workshop上,Karpathy給出了Autopilot系統所對應的標準8 Cameras硬件體系和其背后的Camera network(CNN)概要性能指標:8 cameras(1280*960*3) uint8 @36Hz【小編:這里的uint8代表無符號整數類型,意味著每一個單色像素都會被以8位的無符號整型數據存儲下來,并做后續處理】。這意味著8個攝像頭在各自獨立的視野范圍,以每秒36幀的頻率記錄著以無符號整數8bit為單位記錄RGB像素信息。在這里讀者不必在意每單個攝像頭的視野具體范圍,因為整體看,做到車周360度水平視場無死角覆蓋對于自動駕駛來說是個標準需求。但是垂直視場可能因廠家而異,比如高大SUV車輛的車頭下部的近距離區域,就有可能造成視場上的死角。我們如果動手做個簡單的運算,這些攝像頭每秒鐘所貢獻的原始數據量Raw data rate為,1280*960*3*8*36=1061MBuint8

 

但讀者也可能注意到了,雖然Tesla Autopilot的硬件Raw data的捕獲數據量驚人,但實際上產生的有效數據按照Karpathy的說法,是保持在每秒產生8M bits所可以描述的constraints(約束)這個規模【小編:按照我的理解,這里的constraints描述的是主車車身四周的交通場景約束定義,他有兩個特點:首先constraints的源泉是來自于Camera的硬件信息流raw data的,其次constraints還是語義級別的識別結果,通過constraints的形式準確描述車身四周的物理環境和其交通互動關系】。這里面有比較大的收斂比,而收斂比的定義和具體的駕駛場景相關,也和Autopilot中的Camera networks處理方式和網絡規模相關。其實,只要車載光學器件和自動駕駛中央域CPU的計算力足夠,從Raw data到constraints的收斂比就不需要我們在這里做進一步的猜測了。但如果讀者希望了解更多關于所謂的Tesla“camera networks”的工作方式,還是應該了解以下的事實:

 

從視覺處理的流程上看TeslaData Pipeline架構: 


關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖3


大概一年多前,Tesla的公開Data pipeline專利附圖(如上圖)顯示了使用深度學習流水線過程的autopilot圖像處理流程圖。圖中的過程主要說明了在大規模的視覺機器學習中使用“預處理”技術的必要性。通過預處理傳感器數據,可為深度學習提供有效數據,并獲得更精確的結果來控制車輛。在一些具體的實施例中,預處理過程還可以解決傳感器捕獲的數據與神經網絡期望用于深度學習的數據之間的數據失配問題。【小編:在今天的主題下,我們關注的是Data pipeline中的101和103環節,這些環節上體現的功能基本可以和人眼功能和視神經連接結構劃等號

 

上圖的101處,Tesla的專利表明數據獲取的源頭在于車輛的各類型傳感器所捕獲的外界數據,包括Lidar、Camera、mmRadar和microwave甚至V2X等技術在專利文件中都有描述,但我們知道目前對于Tesla和其Tesla Vision技術來說,長遠看還是以視覺數據為主,甚至為單一數據來源。

 

需要注意的是,在一些實施例中,某種性質的傳感器數據的“位深度”可能超過用于深度學習分析的神經網絡的位深度。通常來講,傳感器直接獲取的各類型數據的“數據深度”普遍都是比較豐富的。以可視的圖形獲取為例,即便是只有400*400大小,也有16萬個像素點,如果再考慮每個像素的顏色(一般都是多通道的彩色圖像捕獲),可以用紅R、綠G、藍B、透明度四個值描述,大小范圍都是0 ~ 255,比如黑色是[0,0, 0, 255],白色是[255, 255, 255,255],那么圖形文件的數據厚度會大大加重后端神經網絡的工作量從而使得在車端本地和云端中央處理大量可視的圖形文件變得不可能。【小編:提醒大家此處位深度的概念和我們之前提到的uint8數據結構不完全一致,主要還是指傳感器所產生的raw data的數據流量和后端機器學習NN的處理能力是否匹配的問題】Tesla的8個標準配備的camera像素并不算太高,1280*960p大約1百萬像素級別只能說勉強算是準高清標準,這也是Tesla對于數碼硬件規格的一貫風格。但實際上我們考慮攝像頭的規格最主要還是需要后端處理能力匹配才能發揮最大效能,所以我們對于camera的像素指標并不十分看重。半年前蔚來發布ET7的時候李斌特意強調過他們的攝像頭分辨率更高,足足八百萬!參見下圖,更有利于觀察到更遠距離上的交通細節(在687m的距離上可以等效實現1百萬像素相機在229m距離上的信息獲取能力)……小編覺得分辨率高低之爭的核心還是在于評估最終的識別效果,單純拼硬件指標沒有太大的實際意義。蔚來藏在攝像頭后端的NN神經網絡的識別能力,如果要匹配如此強大的光學和數碼圖像獲取能力,勢必要更加強大,才可以提供更好的識別效果。蔚來的相關資料比較少,我們在后面的篇幅會介紹一下我們所掌握的Tesla的camera networks(NN)一些公開分析,讀者可以了解到光學和數字圖像能力是必須和后端NN處理能力協調一致才能發揮最大效力。


關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖4

 

因此,提前統一考慮傳感器數據的異構型、來源不同和數據位數的豐厚不一,就十分有必要。因此有了圖中的103模塊——Pre-processing。從這個角度看,Tesla Vision作為單一傳感器性質的信息獲取手段,至少在數據預處理這個環節上看還是有優勢的:簡單、劃一。

 

同時在上圖的103處(Pre-processing模塊),Data Pipeline將會對傳感器數據執行數據預處理操作,這些操作包含但不限于以下:

第一:在一些實施例中,可以對傳感器數據執行一個或多個預處理過程。例如,可以首先對數據進行預處理以去除噪聲,校正對準問題和/或模糊等;根據目前普遍的計算機視覺技術,對于圖案的噪聲去除技術(相當于高頻率波)和模糊技術(相當于低頻濾波),通常有兩種做法,一種是在圖像的頻域利用數字濾波技術來獲取所需要的處理效果;另外一種是在圖像的空間域,直接利用數字圖像的卷積操作(Convolution)來獲取所需要的處理效果。Tesla的具體處理方法不確定,小編傾向于后者基于機器學習CNN技術的處理方法;

第二:在一些實施例中,對數據執行兩次或更多次不同的濾波通過。例如,可以對數據執行高通濾波器,并且可以對數據執行低通濾波器。這個圖像數字處理方法同上,在頻率域上的高低通濾波或者帶通濾波,都會在原始圖像上捕捉到和后續處理重點相合拍的圖像內容,這里不做重點描述;

第三:在一些實施例中,可以執行一個或多個帶通濾波器。例如,除了高通和低通以外,還可以對數據執行一個或多個帶通。同上,但此處強調的是在Pre-processing預處理階段,Data Pipeline的相關模塊化組織,不僅可以容納單個高低通濾波操作,也還可以根據后端處理(AI神經網絡的識別)的需要,提供各種各樣的組合(包括一個或者多個的頻域處理結果)。

 

在以上的各種實施例中,傳感器數據都按照處理通道被分成兩個或多個數據集,這里所謂不同的數據集就是原始傳感器數據的不同組成部分。

 

更具體的Data Preprocessing預處理操作,在Data pipeline的專利描述中有這樣的介紹。

第一:在一些實施例中,通過對傳感器數據執行高通或帶通濾波器來創建特征和/或邊緣分量,并且通過對傳感器數據執行低通或帶通濾波器來創建全局數據分量;例如,可以通過從圖像數據去除噪聲和/或增強圖像數據的局部對比度來處理高通分量;

第二:在一些實施例中,不同的分量(可以是高通分量也可以是低通分量)被壓縮和/或下采樣。例如,可以適當地壓縮,調整大小和/或下采樣組件,以調整數據的大小和/或分辨率,以將數據輸入到機器學習模型的某一層。具體來說,預處理模塊可以調整傳感器數據的位深度。例如,將以20位或另一適當位深度捕獲數據的相機的數據通道壓縮或量化為8位,以為8位機器學習模型準備通道。同樣可以實現的是,一個或多個傳感器以12位,16位,20位,32位……

 

在上圖103處執行的預處理的模塊,物理基礎為圖像預處理器。需要關注的是,“圖像預處理器”不是一個固定的硬件資源,而是根據不同的預處理任務的需求不同而靈活調度的相關硬件資源。例如:在一些實施例中,圖像預處理器可以是圖形處理單元(GPU),或者中央處理單元(CPU),或者人工智能(AI)處理器,專用的圖像信號處理器、色調映射器處理器或其他類似的硬件處理器。在各種實施例中,不同的圖像預處理資源用于并行地提取和/或預處理不同的數據分量。

 

以上的描述對于大多數沒有計算機視覺知識背景的讀者并不算友好,但如果你堅持看到這里了,那么小編可以提供對于這些晦澀的Computer Graphic詞匯有一種很好的理解方式,如下圖:

 

關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖5


上圖對于熟悉CG領域的讀者來說,可能是再熟悉不過了。這是鼎鼎大名的模特Lena和其對應的右側高頻處理結果圖。照片是在1972年底拍攝的,是當月份《花花公子》一張裸體插圖照片的一部分,但陰差陽錯地被美國南加州大學的信號圖像處理研究所的一個助理教授選為作為一個學術會議的數字照片樣本,并在那之后,萊娜圖在圖像壓縮算法界成為最廣泛應用的標準測試圖——她的臉部與裸露的肩部已經變成了事實上的工業標準。此側身肖像圖在科研領域流行的原因后來被總結為:1 該圖適度的混合了細節、平滑區域、陰影和紋理,從而能很好的測試各種圖像處理算法;2 Lenna是個不折不扣的美女,對于圖像處理界的研究者(大部分都是男性)來說,美女圖可以有效的吸引他們來做研究。【此段文字來源為CSDN博主「菜鳥知識搬運工」的原創文章,遵循CC 4.0 BY-SA版權協議,原文鏈接:https://blog.csdn.net/qq_30815237/article/details/87168416】

 

另一個概念是針對圖像文件的頻域分析,雖然理解起來比較晦澀,但實際上只要理解這是針對圖形文件的另外一種信息表達方式。讀者只需要知道圖像文件中,往往圖幅中亮度變化明顯的點,比如邊緣區域或者線條等細節部分與圖像頻譜的高頻分量相對應即可。正因為如此,對于圖形文件的頻域信息采用高通濾波技術就可以實現讓高頻分量順利通過,而大幅度過濾掉低頻信息,從而使圖像的邊緣或者線條細節變得清楚,最終實現邊緣的提取和圖像銳化效果。以下圖為例,他們對應四種截止頻率的高通濾波器,從左到右,截止頻率逐漸增加。這意味著從左到右,這些濾波器允許通過頻率信息逐漸增加。

 

關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖6


關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖7

 

因此當將這些濾波器作用于Lena標準像上時,高通濾波的效果得以展示,我們可以看到明顯的邊緣信息提取效果:截止頻率越低,越多的低頻信息被過濾掉,得以保留的輪廓和線條信息就越明顯。對應Tesla的Data Pipeline專利中對于camera networks的架構描述,高通分量、低通分量和帶通分量,在卷積網絡得到視覺輸入信息后,會得到一一處理和存儲,并在后續的視覺信息識別(identification)功能模塊上得到進一步處理。掌握了這一點,就明白了103所代表的圖像數字信號預處理功能的意義。

 

為了更好的理解,這里可以再看一個關于“帶通分量”數字處理的效果,帶通頻域數字處理的目標在于,盡可能在抓到數字圖像的高頻邊緣部分和低頻局部特征部分,下圖的最底部即為這個平衡的最終效果。不同的頻域信息處理方法,可以得到圖像文件不同的處理效果,小編不是CG專業,也只能說這么多了。但是這些包含不同特征的處理結果,在Tesla的Data Pipeline中被做各種分項的專題處理,并按需組合,最終滿足視覺系統identification的效果。


關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖8


在Data Pipeline流程中的105處,Data pipeline跳出了“預處理”過程而進入真正的Deep Learning模塊而開始執行深度學習分析。使用機器學習模型(例如神經網絡)執行深度學習分析。到此為止就相當于進入大腦皮層環節了,不再展開討論。總得來說,Tesla的Data Pipeline流程,其本質就是卷積神經網絡在對于圖形文件特征提取(卷積操作)和圖像壓縮/下采樣(池化操作)的重新梳理和組織。當然Data pipeline一定會針對Tesla的神經網絡結構,而做出具體的調整。比如上述的,“神經網絡接收高通分量作為對網絡第一層的初始輸入,而低通分量作為對網絡后繼層的輸入。”即使一種比較新穎的數據喂養方式。

 

從視覺處理網絡的規模上看機器視覺的處理能力:

……

 

篇幅所限,精力所限,關于對于Tesla camera networks v9的分析我們放到下一期完成,主要技術來源是jimmy_dreddit上的一篇分析文章,小編個人感覺很精彩。

敬請期待。


備注:

1 插圖1來自于tobiipro.cn的產品介紹插圖,參考URL:https://www.tobiipro.cn/learn-and-support/learn/eye-tracking-essentials/types-of-eye-movements/;

2 插圖2來自于CVPR大會自動駕駛Workshop的online會議Karpathy議題的截圖,參考URL:https://www.youtube.com/watch?v=eOL_rCK59ZI&t=28286s;

3 插圖3來自于Tesla Pipeline專利文件插圖,參考URL:https://patents.justia.com/patent/20190391587;

4 插圖4來自于蔚來網站ET7宣傳資料截圖;

5 插圖5來自于推特用戶@im_abhisshekumar的推文截圖,參考URL:https://twitter.com/im_abhishekumar/status/501702123843629057;

5 插圖6/7來自于CSDN文章“高通濾波法、微分算子法、神經網絡方法實現圖像邊緣檢測”的插圖,參考URL:https://blog.csdn.net/adamding1999/article/details/106151917/;

7 插圖8來自于CSDN文章“數字圖像處理與python實現——帶通濾波器”中的插圖,參考URL:https://blog.csdn.net/qq_43808611/article/details/106562794?utm_term=%E5%AF%B9%E5%9B%BE%E5%83%8F%E8%BF%9B%E8%A1%8C%E5%B8%A6%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%A4%84%E7%90%86&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-0-106562794&spm=3001.4430;

8 封面插圖來自于https://www.tesmanian.com/blogs/tesmanian-blog/tesla-cameras-helped-catch-a-criminal-accused-of-shooting-at-moving-cars ;

關于Tesla Vision的一些問題:視覺如何一步步發展到今天的?的圖9

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP