林 昊, 桂 林, 王煉棟, 邢昊楠, 曹明玉
(上海第二工業大學a. 資源與環境工程學院;b. 計算機與信息工程學院;c. 智能制造與控制工程學院,上海 201209)
二維成像技術廣泛應用于醫療臨床診斷、物體無損檢測等方面。自動駕駛技術實現的關鍵在于能否在短距離內以高分辨率查看到障礙物的精確距離和速度,二維成像無法滿足上述需求,必須結合場景深度方向上的距離信息,才能有效地還原整個三維場景[1]。目前應用較為廣泛的三維成像技術主要包括三角測量法和飛行時間法(time of flight,TOF)兩大類。與三角測量法相比,TOF 測距技術具有原理簡單、測量快速等優點。同時, 自動駕駛技術對激光雷達技術也提出了更高的要求,低成本、小型化、高精確度都是目前激光雷達技術的主要研究方向。伴隨著電子技術和互補金屬氧化物半導體(complementary metal oxide semiconductor,CMOS)工藝水平的飛速發展,TOF 測距技術受到越來越廣泛的關注。基于TOF 技術的激光雷達具有算法簡單、抗干擾能力強、可集成化、穩定性高等優點;且由于采用了主動近紅外光照明的方案,TOF 測距系統不受周圍環境限制,可在無光照環境下工作;此外,對紅外光進行調制解調能夠有效地抑制白光的干擾。
由于受自身成像和測量特點影響以及外界環境因素的干擾,TOF 激光雷達的測量數據存在著各種誤差, 可分為系統和非系統誤差[2]。系統誤差主要是由TOF 激光雷達自身硬件系統產生的實測深度距離高于實際距離的情況, 包括諧波相關誤差、相位纏繞等[2-3]; 非系統誤差一般是使用環境的差異導致的,包括像素飽和、積分時間等[2,4]。
提升TOF 激光雷達測距精度是保證低成本TOF 激光雷達精確還原實際應用場景的前提,因此研究TOF 激光雷達測距誤差的問題,消除各種測距誤差對其廣泛應用的影響是非常有必要的。影響測距誤差的因素有很多,本文主要研究積分時間對TOF 激光雷達測距誤差的影響。積分時間是指照明調制和傳感器解調都有效的時間, 又稱曝光時間。對于TOF 激光雷達來說,影響其成像陣列接收環境光的參數只有積分時間[5]。積分時間的長短會影響到TOF 激光雷達接收到的環境光的強度,從而影響測距過程的信噪比[6]。
Kahlmann 等[7]對深度數據建立1 個查找表來校正積分時間對于測距誤差的影響。Radmer 等[8]提出了1 種校正方法, 使用1 個各處具有相同反射屬性的物體, 測量不同積分時間下距離的誤差,通過建立查找表, 對距離進行標定, 并結合線性插值對于查找表中不存在的距離和積分時間進行標定。Lindner 等[9]分析了接收光的強度對深度誤差的影響, 通過建立誤差查找表(look-up-table,LUT),對光強和距離影響的深度圖像提出了校準方法。Steiger 等[10]研究了溫度、距離、積分時間、反射率等多種因素對TOF 激光雷達深度誤差的影響,提出了設置最佳全局積分時間的方法。
本文采用基于脈沖調制法的TOF 激光雷達,首先采集不同積分時間下的原始數據; 然后對數據進行先行處理;再根據處理后的數據計算距離;最后基于計算結果詳細分析不同積分時間對測距誤差的影響。最終得出TOF 激光雷達在最佳積分時間下測距平均絕對誤差下降為22 mm,誤差下降率為97.23%,均方根誤差為0.8 mm,測距準確度大大增加。
TOF(飛行時間法), 顧名思義就是通過測量光的飛行時間來求取距離,它通過采用CCD/CMOS 成像陣列結合主動紅外激光調制技術來獲取距離信息, 通過給被測目標連續發送紅外激光脈沖, 然后傳感器成像陣列接收被反射的紅外激光脈沖,通過計算發射光脈沖與接收光脈沖的相位差或時間差,能夠進一步獲得系統與被測目標之間的距離[11]。根據測量傳播時間方式的不同, TOF 技術又可分為直接測量法(direct-TOF, d-TOF) 和間接測量法(indirect-TOF,i-TOF)。本文主要介紹了i-TOF 技術。
TOF 激光雷達利用間接測量法測量距離是通過解調發射光與接收光的相位差實現的。即:
由式(1)、(2)可得:
根據式(1),式(3)也可改寫為
式中:d為TOF 激光雷達到被測目標的測量距離;調制頻率為f;調制波長為λ;周期為T;發射光與接收光的相位差為?φ; 光速c= 3×108m/s;n為發射光與反射光之間的周期數。
TOF 激光雷達能夠同時獲得幅值圖(強度圖)和深度圖,幅值圖表示每個像素接收到光子的數量,用以表征光的強度;深度圖上的每個像素則編碼了到目標物中對應位置的深度信息。根據調制方法的不同, i-TOF 又可分為脈沖調制法和連續波調制法[12]。本文主要介紹脈沖調制法。
脈沖調制法發射光脈沖能量較高, 抗環境干擾能力較強, 信噪比較高。發射的光脈沖通常使用方波脈沖調制,因為它相對容易用數字電路實現。接收端CMOS 成像陣列中的每個像素都是由將入射光轉換成電荷的光電二極管、高頻轉換開關、充電電容組成。該結構可以把電荷導入不同的電容中。
系統在工作時,控制單元打開照明單元,發出1個光脈沖,同一時間,控制單元打開1 個接收端的電子快門,此時接收端接收到的電荷q0被存儲到電容中,記為S0。然后控制單元關閉光源,打開第2 個接收端的電子快門,同時關閉第1 個電子快門,即在光源關閉的時間點打開。此時接收到的電荷q1也被存儲到電容中,記為S1,如圖1 所示[13]。

圖1 光脈沖發射與接收示意圖Fig.1 Schematic diagram of optical pulse transmission and reception
假設tp為光脈沖持續時間,td為光脈沖的飛行時間,c為光速,理想情況下,由脈沖調制法可推導出距離d的計算公式如下:
TOF 激光雷達測距原理如圖2 所示,α是激光器半發射角, 其數值為45?, 視場角(field of view,FOV)是CMOS 傳感器水平視場角,其數值為90?。

圖2 TOF 激光雷達測距原理圖Fig.2 TOF LiDAR ranging principle diagram
TOF 激光雷達系統主要由光源發射模塊和感光接收模塊兩部分組成[14]。光源發射模塊主要由發光單元、衍射光學元件(diffractive optical elements,DOE)等構成。發光單元為能發出波長940 nm 的邊發射激光器(edge-emitting laser, EEL); 擴散板(diffuser)是DOE 衍射光學元件的一種,也屬于波束整形器, 主要是提供1 個均勻的面光源。感光接收模塊主要由窄帶濾光片和光學鏡頭、CMOS 傳感器等構成。鏡頭的焦距為8 mm。CMOS 傳感器為矩形成像陣列,其成像像素為32×1024。
本實驗所用TOF 激光雷達可以采用垂直腔面發射激光器(vertical-cavity surface-emitting laser,VCSEL),但是由于EEL 功率密度、脈沖峰值功率更高,整體實驗效果更好,故本文采用EEL,平均功率滿足人眼安全標準。
CMOS 傳感器通過驅動時序實現開窗讀出功能, 又稱感興趣區域讀出功能, 可以讀出CMOS 傳感器成像陣列中感興趣的區域。CMOS 傳感器每個像素點都可以接收光脈沖,并且按照Ambient 窗、A窗、B 窗的時序接收光信號,如圖3 所示。

圖3 各個像素點光脈沖接收時序圖Fig.3 Timing diagram of light pulse reception at each pixel
Ambient 窗是在激光器發射光脈沖之前接收環境光,接收到的環境光強度如圖4 所示。

圖4 CMOS 傳感器接收環境光強度圖Fig.4 CMOS sensor receives ambient light intensity map
為了保證能在第一時間接收到反射光脈沖,通過控制驅動時序在脈沖發射之前打開A 窗開始接收電荷。脈沖發射完畢之后,關閉A 窗,打開B 窗接收反射光脈沖。為了保證3 個窗接收到的環境光的一致性,Ambient 窗、A 窗、B 窗3 個窗持續時間一致,且為了保證A 窗、B 窗能夠接收到1 個完整的反射光脈沖,窗口的持續時間不短于2 倍的光脈沖持續時間。
TOF 激光雷達測距時,EEL 激光器發射波長為940 nm 的脈沖激光,經過擴散板之后擴散為發射角為90?的均勻面光源,照射到表面光滑的白墻上。經白墻反射回來的光脈沖經小孔成像,最終被CMOS傳感器收集。基于以上原理, TOF 激光雷達每個像素點的距離計算公式為
式中:α為比例系數假設為1;c為光速(m/s);Tw為激光的脈沖寬度25 ns;SA(x,y)、SB(x,y)、SM(x,y)分別為A、B 窗和Ambient 窗接收的光脈沖的強度數值;(x,y)表示像素點在傳感器上的位置坐標;Toffset為系統補償的誤差時間,通常設置為5.5 ns。
基于上述原理所設計的實驗流程如圖5 所示。首先, 通過USB 接口將TOF 激光雷達與上位機互連。然后調整鏡頭的焦距,在上位機上設置TOF 激光雷達系統增益、積分時間、幀率等相關參數。接著利用上位機軟件觀察實驗情況, 采集實驗數據。最后利用matlab 軟件對實驗數據進行分析處理。

圖5 實驗流程圖Fig.5 Experimental flow chart
實驗采用的是基于自主設計的TOF 激光雷達,采集的實驗數據中存在各種誤差,為了更好的分析積分時間對TOF 激光雷達測距誤差的影響,針對原始數據先行處理。數據處理流程圖如圖6 所示。①利用TOF 激光雷達進行待測距離的測量,利用上位機軟件采集不同積分時間下的原始數據;②采用均值濾波算法對采集得到的原始數據進行預處理,降低噪聲導致的誤差;③根據經過預處理后的數據和信號相對強度進一步濾除低幅值的像素區域,選取有效區域的數據;④將選取的有效區域的強度數值代入式(8)中計算測量的距離。

圖6 TOF 激光雷達數據處理流程圖Fig.6 TOF LiDAR data processing flow chart
2.2.1 均值濾波
均值濾波是一種的線性濾波算法, 用當前像素點某鄰域窗口內所有像素值的均值來代替當前像素值。計算公式如下:
式中:G(x,y) 為數字濾波后當前像素點的像素值;S(x,y)為窗口內像素點的像素值,即接收到的反射光脈沖的強度值;n為窗口內像素點總個數;k為窗口內像素點的集合。
使用該方法遍歷處理圖像內的每一個像素點,可完成整幅圖像的均值濾波。本實驗采用的是5×5個像素的窗口對采集得到的原始數據進行預處理。以積分時間為600μs 為例,經過預處理之后的數據對比圖如圖7 所示。

圖7 均值濾波預處理前后對比圖Fig.7 Comparison of before and after mean filtering pre-processing
2.2.2 選取有效區域
當主動光對場景照明的強度降低時,將導致信噪比降低,從而引起測距誤差,這種情況導致的誤差和像素幅值的不一致性有關[15]。同時由于受到制造工藝的限制, 對于CMOS 傳感器而言, 所有的像素點都是好的情況幾乎不可能,會存在一定數量的壞點,導致不能有效成像或相應不一致性大于參數允許范圍。壞點接收反射光的光子數量較少, 信號強度較弱, 從而增大測距的誤差。這就導致傳感器會產生數據無效的區域。因此在進行實驗數據的處理時需要濾除數據無效的區域,即濾除相對強度較低的像素區域,選取數據有效的區域,來解決相對強度過小的問題。本文選取20×100 個像素的有效區域,并將有效區域中的強度數值代入式(8), 計算得到測量的距離。
在環境光強一定的情況下, 接收到的反射光量與積分時間呈正相關。但CMOS 傳感器具有飽和值,其值與器件的物理結構、材料和積分時間等因素相關。飽和值代表了最大可檢測的信號強度。光電二極管接收到反射光而產生的電子,需要臨時存儲在電容里,等待被讀取。電容不斷累積光電子,隨著積分時間的增加,光子數量不斷增加,電容逐漸飽和,無法再接收更多的光。CMOS 傳感器成像陣列每個像素點存在閾值為1024,即:
積分時間在150~900μs 之間,每隔50μs 進行調整。TOF 激光雷達到光滑墻面距離為0.6 m。通過對不同積分時間下測量均值、平均絕對誤差、均方根誤差、誤差率的比較, 分析積分時間對誤差的影響,如表1 所示。

表1 不同積分時間下測量均值、平均絕對誤差、均方根誤差和誤差下降率Tab.1 Measurement mean, mean absolute error, root mean square error and error decline rate at different integration times
TOF 激光雷達的測量均值是選取區域內所有像素點計算得到的距離的平均值,計算公式為:
式中:P為選取區域的行數,取10;L為選取區域的列數, 取200;P·L為選取區域內像素點總個數為2000。
由三角函數關系可得,理想狀態下的距離如下式所示:
式中:dideal表示水平方向第N個像素點對應的理想距離,N(1 ≤N≤1024,N ∈Z)表示水平方向第N個像素點;dreal是TOF 激光雷達與白墻之間的真實距離。
CMOS 傳感器每個像素點計算得到的距離與理想距離之間的誤差值derror計算公式如下:
CMOS 傳感器的平均絕對誤差是選取區域所有像素點誤差絕對值的平均值,計算公式為:
式中:P為選取區域的行數,取10;L為選取區域的列數,取200;P·L為選取區域內像素點總個數,取2000。
均方根誤差表示1 組數據的離散程度,能夠很好地反映出測量的精密度。均方根誤差可以評價數據的變化程度,dR值越小, 說明預測模型描述實驗數據具有更好的精確度。計算公式為:
式中:P為選取區域的行數,取10;L為選取區域的列數,取200;P·L為選取區域內像素點總個數,取2000。
誤差下降率為
式中:β是原始數據計算得到的平均絕對誤差;θ是校正后得到的平均絕對誤差; 誤差率ξ表示平均絕對誤差與理想距離之間的比值,即
通過折線圖可以直觀地看出不同的積分時間與平均絕對誤差、均方根誤差、誤差率之間的關系。由圖8 可見, 積分時間在600 μs 處, TOF 激光雷達測距的平均絕對誤差達到最小,且在600μs 附近的積分時間誤差均有效可靠。因此積分時間過長或過短,均會導致測距誤差的增大;由圖9 可見,TOF 激光雷達測距的均方根誤差在600μs 處達到最低點,即TOF 激光雷達在此積分時間600μs 下測距最為穩定, 積分時間過長或過短, 都會對測距的穩定性產生降低的影響;由圖10 可見,不同積分時間與誤差率的關系折線圖與平均絕對誤差折線圖基本一致,這也從側面證明了圖8 所展現的規律:積分時間過長或過短, 均會導致測距誤差的增大。故在利用TOF 激光雷達進行距離測量時,需將積分時間設置為600μs 及其附近,以最大程度的減少積分時間帶來的誤差。

圖8 不同的積分時間與平均絕對誤差的關系Fig.8 Relationship between different integration times and mean absolute error

圖9 不同的積分時間與均方根誤差的關系Fig.9 Relationship between different integration times and root mean square error

圖10 不同的積分時間與誤差率的關系Fig.10 Relationship between different integration times and root mean square error
當積分時間設置為600μs 時,實驗結果如圖11所示,其中圖11(a)是TOF 激光雷達在0.6 m 處的測量距離,并與理想距離作對比,圖11(b)是測量距離與理想距離的誤差值。根據三角函數關系和式(12),選取的有效區域內理想距離與真實距離最大誤差為7 mm,可以忽略不計,故采用真實距離0.6 m 代替有效區域內的理想距離,因此計算得到的平均絕對誤差為22 mm,均方根誤差為0.8 mm。

圖11 TOF 激光雷達測距圖Fig.11 TOF LiDAR distance measurement chart
當積分時間設置為600 時, 根據原始數據計算得到的平均絕對誤差為0.7955 m, 均方根誤差為0.6457 m,可知誤差下降率為97.23%。
將上述方法應用到其他不同的距離上,驗證方法的普適性,得到如表2 所示的結果。

表2 不同距離測距校正前后對比Tab.2 Before and after comparison of different distance ranging correction
由表2 中的數據可見,真實距離在0.3~1.0 m 之間,TOF 激光雷達測距的誤差下降率能達到97%以上, 取得了較為理想的效果。同時可以看出距離的不同對TOF 激光雷達測距誤差幾乎沒有影響。
本文分析了飛行時間法的測距原理,介紹了實驗室現有的TOF 激光雷達系統的脈沖調制方案以及測距計算方法;通過采集TOF 激光雷達在不同積分時間下的原始數據,并對原始數據進行處理,然后根據處理后的數據計算測量的距離,最后根據計算結果詳細著重分析了不同積分時間對測距誤差的影響。TOF 激光雷達系統在最佳積分時間下誤差下降率達到97%以上,TOF 激光雷達的測距精確度大大增加。為了追求更高的精確度,后續還有很多工作需要進一步研究,如針對不同材質不同反射率的物體進行校正; 針對不同大氣環境如煙霧等的影響進行研究。