葉 彬,朱興帥,姚 康,丁上上,付威威
1.中國科學技術大學生物醫學工程學院(蘇州)生命科學與醫學部,江蘇 蘇州 215000
2.中國科學院蘇州生物醫學工程技術研究所,江蘇 蘇州 215000
目前,虛擬現實已經在全球掀起研究的熱潮,相關應用不斷涌現。其中一個重要應用場景是桌面書寫,然而在這種場景中還沒有一種針對性的交互方式解決方案:基于硬件控制器的交互在虛擬空間書寫場景中交互效果不夠直觀;基于視覺的交互方式[1]相比較硬件控制器更能直觀體現交互過程,但現有研究缺少筆的三維識別而無法重現完整的書寫交互過程,且三維精度不足導致精細交互動作識別效果較差,在桌面書寫應用場景中適用性不高。相較而言,一種同時包含手與筆的高精度三維識別技術可以提供更好的書寫交互體驗,其中三維識別精度的提升離不開更加準確的深度計算,因此針對于桌面書寫場景的高精度深度估計在手筆聯合的三維識別中有著關鍵作用。在現有技術上,單目視覺[2-3]可以獨立完成深度估計,但存在精度受限且不夠穩定的問題,而雙目視覺包含了潛在的深度信息,可以更好地完成深度估計任務,同時相比其他三維測量技術,雙目立體視覺系統具有成本低、結構簡單、易于部署等優點,現已廣泛應用于諸如自動駕駛[4]、三維重建[5]、工業檢測、醫療影像、虛擬現實等多個領域。
立體匹配算法是雙目立體視覺深度計算中的關鍵環節,傳統立體匹配方法[6]可以總結為四個步驟,即匹配代價計算、代價聚合、視差計算和視差優化。近來研究者們將深度學習方法應用在立體匹配領域,且在稠密視差圖計算的精度和效率上有了更優良的表現[7]。研究者們初期[8]嘗試使用卷積神經網絡取代傳統算法中的部分過程,之后在端到端的立體匹配網絡上做出了努力。EdgeStereo[9]利用一個邊緣預測的子網絡輔助指導視差的學習,改善視差學習效果。Kendall 提出的GCNet[10]通過共享權重的卷積網絡提取左右特征圖后將其拼接形成一個四維視差成本特征張量,最后利用三維卷積編解碼結構直接回歸視差值,后續的諸多研究者們也采取了此思路。PSM-Net[11]在特征提取階段使用了金字塔結構結合了多尺度語義信息并在三維卷積回歸階段引入了堆疊沙漏結構;GwcNet[12]在PSM-Net 的基礎上提出了組相關特征構建匹配代價體;DeepPruner[13]在構建成本代價體的過程中結合了patch match算法。上述算法盡管在精度和實時性上做出了一定改善,但仍然存在計算成本過大、實時性較差、易受匹配范圍的限制等缺點。近來有部分研究者嘗試尋找替代三維卷積的方法來降低模型計算成本[14-15],但相比于三維卷積結構可以更好地提取圖像結構信息的優點,替代方法在估計精度上存在不足。
在桌面書寫環境中,上述擁有較高精度的立體匹配算法在計算成本和運算時間上的缺點限制了輸入圖像對的分辨率,而網絡中輸入的空間分辨率的不同選擇會帶來檢測精度和效率上的沖突,因此如何合理平衡算法精度以及效率成為了本文深度測量方法的關鍵問題。考慮到虛擬桌面書寫場景中精細交互動作大多通過筆尖實現,筆尖區域需要更高的交互精度,而背景區域精度要求最低。基于此,本文采集了高分辨率、近距離的圖像對作為網絡的輸入,并提出了一種分級精度的多階段深度測量方法,區分了全局信息和局部關鍵信息并分尺度輸入來解決算法中分辨率限制的問題,同時在不同階段對全局信息和局部關鍵信息進行了融合以提升檢測精度與速度,具體為創新性地提出利用ROI Align方法在不同階段構建了區域特征金字塔結構,結合了多尺度語義信息;并且采用視差級聯結構初始化視差,有效縮減視差匹配范圍,減少算法在視差搜索上的用時。實驗證明,本文方法相比現有算法提升了速度和書寫關鍵區域的精度,并減少了顯存占用,能夠實現桌面書寫場景下高精度深度測量,有效輔助手筆聯合三維識別技術的精度提升,改善虛擬現實中桌面書寫交互體驗。在未來本文方法可以作為書寫交互三維識別的輔助技術促使虛擬書寫應用于近視防控,通過虛擬空間解決青少年長時間近距離用眼問題,具有重要的應用價值。
為了解決深度估計不準確導致的視覺交互方式在桌面書寫環境中適用性不高的問題,本文提出了一種高精度桌面場景雙目深度測量方法,針對書寫交互區分了圖像對中的全局信息和局部關鍵信息。首先在桌面書寫場景中采集高分辨的雙目圖像對;然后輸入本文分級精度式的多階段雙目立體匹配算法,算法流程如圖1,通過低尺度全局輸入結合高尺度局部輸入平衡高分辨率立體圖像對帶來的精度和效率問題。其中定義了兩個局部區域,分別是包含了整個手部和握持筆的手部區域1和包含了筆尖部分的筆尖區域2,區域1在圖像中的位置以筆身中心為區域中心而區域2 位置以握持筆筆尖和筆身交界處為區域中心,兩個區域在算法中初始位置不定而是由預訓練好的區域檢測模塊決定。

圖1 分級精度式算法流程圖Fig.1 Hierarchical precision algorithm flow chart
高分辨率立體圖像對的原圖在k倍降采樣后額外通過一個區域檢測分支網絡,提取關鍵交互區域以更高的區域分辨率計算圖像對的特征相關性;區域1以小于k的降采樣比例k′提供更多的區域細節信息保證更高的區域深度精度,區域2則不進行降采樣以最豐富的細節信息獲得最高的區域深度精度。
本文針對書寫交互提出了一種多精度級聯立體匹配網絡(multi-precision cascaded network,MPC-Net),充分利用全局與局部重要信息交叉融合的思路提升手部以及筆尖所在局部區域深度估計的檢測精度,在特征提取模塊構建了區域特征金字塔結構融合不同分辨率尺度的圖像對特征,提供多尺度的圖像語義信息;同時使用上一區域的視差輸出結果作為初始值優化下一個區域匹配代價體的構建,大幅減少視差搜索范圍,降低網絡的運算量;最后利用不同數量的堆疊沙漏結構為每個區域階段的視差代價體回歸視差值,并給三個階段分配不同的損失權重促使網絡趨向重要交互區域的學習,MPC-Net 結構如圖2,圖中?表示左右特征量通過點積和級聯形成四維匹配代價張量。

圖2 MPC-Net網絡結構Fig.2 Structure of MPC-Net
為了獲取交互關鍵區域位置,本文參考目標檢測領域的區域建議網絡(region proposal network,RPN)并進行了修改,檢測器結合了左右特征圖像間的同一區域位置相關性以及區域先驗知識,進行左右圖像對應關鍵交互區域位置信息的提取,檢測器結構如圖3所示。

圖3 區域檢測結構Fig.3 Region detection structure
檢測器共有兩個任務:區域分類和區域定位,首先在特征圖像對每個像素位置處生成固定尺寸的候選回歸框,在特征圖像對輸入后經過一個3×3卷積層利用滑動窗口生成回歸框特征向量,之后利用兩個1×1卷積層替代全連接,實現區域分類并進行位置定位。區域分類的主要任務是給所有候選回歸框確定一個類別,類別總共有三個:背景區域、區域1和區域2,其中區域1和區域2是需要定位的關鍵交互區域,算法過程中利用候選框和真實回歸框交并比(IOU)確定標簽類別,當候選框和任一關鍵區域IOU 比例高于設定的高閾值0.7 時,將其設定該區域的正類別標簽,而如果和所有區域IOU均小于設定的低閾值0.3 時標記為負標簽,表示其代表背景區域,IOU占比為中間值時舍棄樣本。
在偏移位置回歸任務中,檢測器為每一個立體圖像對目標都訓練一個三元回歸項:[Δul,Δur,Δv],分別代表了參考左圖的水平偏移參數、目標右圖的水平偏移參數和兩者的垂直偏移參數。考慮到立體圖像對的位置相關性以及在立體匹配任務中存在的尺寸一致性,本文提前設定了標簽區域大小并同步了區域垂直位置,其中手部(區域1)區域大小為640×640,筆尖(區域2)區域大小為256×128,因此檢測器不做預測框高度和寬度參數的回歸,且圖像對共享垂直偏移參數Δv。
區域檢測器在獲得預測回歸框后,可通過計算公式(1)獲得圖像對的關鍵交互區域中心:
同時對區域內的視差進行調整,表示為:
在理想雙目相機系統中,Xl和Xr分別代表了同一個匹配點出現在參考(左圖)圖像像素坐標系和目標(右圖)圖像像素坐標系中的水平坐標。
在近來的深度學習任務中,研究者們注意到圖像金字塔結構能夠結合多尺度的語義信息改善學習效果,因此多種改進的特征金字塔結構[16-18]成為了各類學習方向中重要的組成部分,在提升網絡性能上起到了重要作用。其中,也有部分研究者[11,19]將空間金字塔池化(spatial pyramid pooling,SPP)和特征金字塔(feature pyramid network,FPN)應用在雙目立體匹配任務中來結合上下文信息,改善圖像對特征信息間的對應關系,豐富后續構建的視差代價體包含的信息。
為了能夠充分利用不同分辨率區域間的語義信息,本文構建了基于ROI Align 方法的區域特征金字塔(region feature pyramid,RFP),構建方法如圖4,主要思想是基于ROI Align 中利用雙線性插值代替量化取整方法的特點,獲得局部關鍵區域在全局區域對應的卷積特征圖,并在下一個階段和該關鍵區域的自身卷積特征圖共同構建特征金字塔。

圖4 區域特征金字塔Fig.4 Region feature pyramid
在ROI Align 中,利用雙線性插值獲得了關鍵區域的浮點數邊界,解決了局部區域特征圖區域定位不準確的問題,最后按預設輸出大小平均化對應特征圖進行池化操作。雙線性插值計算如式(3),假設浮點數坐標為(x,y),此時特征圖中該浮點數周圍四個坐標代入計算特征值,公式中各坐標點的權重α與浮點數坐標到各點間距離相關。
本文在多任務級聯卷積網絡[20]中受到啟發,采用從粗匹配到精細匹配的思路,提出了多區域級聯成本代價計算模塊,減少網絡用于視差搜索的時間。
級聯模塊可以分為兩個階段,分別代表了視差代價體構建的不同方式,方式1是傳統的視差代價體構建方式,應用區域為背景區域,需要以覆蓋整個場景的視差范圍進行估計,由于對輸入圖像進行降采樣改變了左右圖像像素位置對應關系,需要對視差值和視差范圍進行縮小,縮小比例為降采樣比例k,此時實際視差搜索間隔從1擴大為k。方式2是本文采用的改進式視差代價體構建方式,應用區域為手部區域1和筆尖區域2,應用區域在網絡中提高了輸入分辨率以增加圖像細節信息且可利用上一區域的視差估計結果初始化視差,因此階段2的視差范圍可以大幅縮小,同時低比例的降采樣操作帶來了更小的視差搜索間隔,保證了更高的視差估計精度。其中三精度模型手部區域和筆尖區域的視差范圍分別定義為-8~8和-4~4。
其中視差代價體的構建方式如圖5,由輸出的左右特征張量在預設范圍內逐視差將對應特征元素相關聯構成四維代價張量,關聯方式由左右特征圖對應位置像素的點積和級聯共同組成,其大小為D×C×H×W,其中D為每個階段的視差等級范圍大小,C表示輸出通道數量,W和H分別表示特征圖的寬度和高度。

圖5 級聯視差代價體Fig.5 Cascade disparity cost volume
方式1不存在初始視差值,因此視差代價體的構建方式需要以覆蓋全場景的視差范圍逐步搜索,即在右特征圖上從零到場景最大視差值依次找尋左特征圖待匹配點對應的目標特征點。由于輸入圖像經過校對使得左右圖像極線平行,因此目標特征點和待匹配點僅在X軸坐標方向上存在位置差異,目標特征點X軸坐標計算如式(4),Δd為視差搜索范圍內的某值。
方式2的輸入補充了圖像細節信息,因此可以利用上一尺度階段的粗匹配結果初始化估計視差值,并以更小的細化視差范圍在初始值周圍繼續搜索來優化視差結果。由于每一階段視差估計結果在進行初始化時并不為整數,需要利用雙線性插值的方法在右特征圖上生成浮點數特征值。此時目標特征點X軸坐標位置為:
式中,dp為上一階段估計視差值,Δd′為細化匹配范圍內某值且從負數開始依次增大。
在構建四維匹配成本代價張量后需要使用三維卷積同時在視差維度和空間維度上聚合特征信息,本文借助了堆疊沙漏模型組建了一個三維編解碼卷積結構完成信息提取。模型結構如圖6,N表示沙漏模塊數量,考慮到不同尺度輸入階段存在不同的精度需求且三維卷積資源占用較大,本文為每個階段設置了不同的沙漏模塊數量。經多次實驗驗證,本文三精度模型從低尺度到高尺度的三個階段設置數量分別為2、2、3,在訓練時每一個沙漏模塊會額外給出一個輸出用于中間監督,提高估計精度。

圖6 三維沙漏卷積結構Fig.6 3D hourglass convolution structure
圖像特征經三維堆疊卷積結構后會輸出一個四維張量,此時需要通過視差回歸函數計算每個像素的視差估計值,本文采用常用的Soft-Argmin[10]方法:
式中,Min和Max分別代表了不同分辨率階段視差估計范圍中的最小值和最大值;dp表示上一階段視差估計結果,在階段1 輸入時值為0。Cd為卷積后的視差代價,σ(·)則表示對其進行了Softmax操作,將視差成本轉化為了每個視差的可能性。
完成視差的估計后,可通過坐標系轉換和雙目相機存在的空間位置關系直接計算絕對深度值Depth。圖像視差信息到空間深度信息轉換如式(7):
式中,B為雙目相機系統中的基線距離;f為相機的焦距。
本文總的損失包含了每一個分辨率階段各自的視差回歸損失并分配了不同的權重。而基于Smooth L1損失函數在魯棒性以及異常值敏感度上的優勢,選擇其作為視差預測的損失計算函數。三階段視差總損失計算如式(8):
式中,λi為每個階段分配到的損失權重,選擇λ1=0.6,λ2=0.8,λ3=1;而在具體每個階段損失中結合了中間監督和最后輸出的結果,μk表示中間監督結果的系數,是第i個階段下標K的中間結果輸出的預測視差值,則為該階段的視差真值。smooth L1 損失函數具體的計算公式如式(9):
本文算法也為檢測任務分支構建了損失函數,包含了分類損失和區域回歸損失,分類損失采用了交叉熵損失函數,區域回歸同樣采用了Smooth L1函數進行損失計算,分類損失如式(10):
式中,n為檢測器過程中選擇用于訓練的回歸框數量;k表示類別小標,此處僅存在背景以及區域一和區域二;pk為回歸框中類別號是k的可能性,p′k表示類別標簽值,當IOU 計算超過設定高閾值0.7 時為1 而小于設定低閾值0.3時為0。區域回歸損失如式(11):
式中,tk為回歸框需要預測的三元數[Δul,Δur,Δv],t′k則為標簽真值回歸量。
2.1.1 實驗環境
本實驗在Windows 環境下進行;具體使用了PyTorch1.12.1版本,CUDA11.3版本,Python3.7.0版本構建網絡模型;訓練過程中均使用Adam優化器并設置參數β1=0.9,β2=0.99,初始學習率為0.001。硬件方面使用了NVIDIA GeForce RTX 3060顯卡,12 GB顯存;CPU為Intel?CoreTMi5-10400F @2.90 GHz 6核處理器。
2.1.2 評價指標
由于本研究主要關注桌面場景深度信息的獲取,因此主要評價指標采用端點平均誤差(EPE)和錯匹配像素誤差比例。其中端點平均誤差(EPE)即視差預測結果和標注視差真值之間的平均歐式距離值,單位為像素(pixel),用以表示立體匹配網絡平均學習精度,計算如式(12),其中N表示了計算區域內所有像素。
錯匹配像素誤差比例具體指圖像中視差預測結果和真值之間距離大于某個閾值的像素占所有像素的比例,即式(13),其中δ的值為3:
2.1.3 數據集
本實驗的數據集是在圖7雙目視覺平臺中采集的,圖中展示了拍攝的部分視角。本文在桌面場景中從多個不同的書寫方向以不同的交互姿勢拍攝了立體圖像對,圖像分辨率為1 920×1 080,同時使用采集的深度圖像作為標簽真值。此外,本研究同時在圖像對上使用了模糊、亮度變化、翻轉以及增加噪聲等數據增強技術擴增數據集,最終隨機獲得了2 936 對雙目圖像用于網絡訓練,592對雙目圖像用作測試。

圖7 雙目數據集Fig.7 Binocular dataset
2.2.1 降采樣實驗
首先,為觀察輸入圖像空間分辨率對網絡效率以及精度的影響,本文對輸入圖像進行了不同程度的降采樣,為兼顧速度與精度,降采樣方法選擇雙線性插值,并在網絡預測完成后對輸出結果上采樣至原分辨率對比,比較結果如表1所示,表中加粗部分為每個指標對比最佳值:當輸入圖像的空間分辨率增加時,精度有所提升但網絡運行效率隨之下降,計算復雜度增加,而如果降低了輸入分辨率,在上采樣輸出時視差結果的平均誤差會上升,無法保證桌面場景高精度交互需求。可以得知,本文提出的區域檢測器以多尺寸輸入能夠起到平衡網絡精度和效率的作用,在不損失重要區域立體精度的同時防止網絡消耗過多資源。

表1 降采樣對比實驗Table 1 Experiment of downsampling comparison
2.2.2 網絡消融實驗
本文在手部區域(ROI-1)和筆尖區域(ROI-2)中結合了金字塔結構和級聯代價體結構,為了驗證這些模塊的有效性,在相同環境的實驗中針對這兩個模塊進行了增刪對比,以確定模塊在網絡中對受關注區域的性能是否起到正向作用,對比結果如表2。

表2 網絡模塊消融對比結果Table 2 Comparison results of network module ablation
消融實驗中,首先取消ROI特征金字塔和代價級聯結構,僅采用檢測器實現區域檢測以及原圖和區域1的降采樣來完成多階段視差估計,然后單獨引入區域特征金字塔和級聯結構分別與單檢測器的模型結果進行對比,由表2可知本文提出的結構在深度預測的精度上均有所提升,且級聯結構明顯提升了網絡的運行速度并減少了部分顯存占用。最后同時加上兩個結構,視差估計結果的誤差進一步下降,相比于單檢測器模型,手部關注區域(ROI-1)的平均誤差相對下降了14%,三像素錯誤匹配率下降了6.4個百分點;筆尖關注區域(ROI-2)平均誤差則相對下降15%,同時三像素錯誤匹配率也減少4.5 個百分點,而在運行效率上,顯存占用從1 769 MB下降到了1 595 MB,推理時間從209.4 ms 減少到了131.6 ms。在手部關鍵區域1(ROI-1)的預測精度上,本章算法也僅與ACVNet存在著較大差距,原因是本章算法在手部關鍵區域1上進行了降采樣,限制了精度。由此可知本文提出的區域特征金字塔(RFP)結構和級聯結構對受關注區域的視差預測精度和穩定性有良好的提升,在運行效率方面也有明顯進步。
2.2.3 算法對比
本文以GwcNet[12]作為基礎網絡結構進行改進,選用了幾種較具代表性的立體匹配算法對桌面場景進行視差估計對比來表明所提算法在性能上的提升。考慮到原分辨率1 920×1 080像素的雙目圖像輸入在主流算法上對硬件要求過高,對比實驗輸入改為檢測到的手部區域,分辨率大小為640×640 像素,本文方法也修改為兩精度模型。實驗主要在手部區域(ROI-1)和筆尖區域(ROI-2)從精度、顯存消耗和推理時間三個方面進行對比,結果如表3。

表3 不同算法的性能對比Table 3 Performance comparison of different algorithms
由表3 可知,相比于目前主流的立體匹配算法,本文提出的算法在顯存占用和運算速度上有一定的提升,且筆尖關鍵區域(區域2)也保證了足夠的精度,與本文參考網絡Gwc-Net[12]相比端點誤差(EPE)上相對下降了17%,三像素誤匹配率下降了3.7個百分點,同時顯存占用從4 880 MB 下降至了1 532 MB 而運算時間從0.39 s下降至0.09 s。
本節的桌面交互實驗主要是對場景中三維交互深度準確度的驗證,圖8為不同視角的輸入在本文算法上的視差圖,為了便于觀察將視差圖視差值轉化為了顏色像素值,偏藍表示視差小深度值大,偏紅表示視差大深度值小。

圖8 視差估計結果Fig.8 Results of disparity estimation
此外,為了驗證本文方法在書寫交互三維識別技術中的有效性,本文還利用算法測試了連續幀筆尖交互深度估計的效果,圖9 為展示效果圖,其中水平面交互表示在桌面空間中平行于桌面進行交互動作,X軸傾斜交互為按圖像坐標軸X軸所在的方向進行了水平傾斜的交互動作而Y軸傾斜交互則是按圖像坐標軸Y軸所在方向進行了水平傾斜的交互動作。需要注意的是,由于雙目相機采集位置不完全與桌面平行而是在圖像坐標軸Y軸所在方向和桌面存在一定傾斜角,因此平行于桌面的水平面沿圖像坐標軸Y軸正方向深度會逐漸減小。

圖9 書寫交互深度測量效果展示Fig.9 Writing interactive depth measurement effect disparity
本實驗將預測視差值歸一化到0~255 范圍后轉換為了顏色像素值,對應方式為JET 顏色映射算法,以達到明顯化展示效果的目的,顏色由藍至紅表示距離由遠至近。除展示效果外,本文實驗還在平行桌面的平面沿圖像坐標軸X軸所在方向和Y軸所在方向繪制直線來直觀表達連續幀深度測量精度,理想情況下平行桌面的平面深度值在X軸方向不變而在Y軸方向線性變化。精度測試結果如圖10,其中藍色曲線為X軸方向直線連續幀深度估計結果,代表理論深度無變化時的深度精度實驗,曲線圖上縱軸每單位深度為0.5 mm,紅色曲線為Y軸方向直線連續幀深度估計結果,代表理論深度線性變化時的深度精度實驗,縱軸每單位深度為5 mm。右側為所繪制曲線及其所在方向,可知X軸方向直線繪制不完全水平,因此藍色曲線前后存在一定線性變化。由X方向直線測試結果看出本文在深度測量上的相對精度可以達到1 mm。

圖10 書寫交互深度測量精度Fig.10 Write interactive depth measurement accuracy
本文實驗結果顯示,所提方法在桌面小空間場景中基本能夠做到正確的連續視差估計,可以應用于手筆聯合的三維識別技術中提高識別精度,實現能夠適用于桌面書寫場景的一種新型交互方式,提供良好的書寫交互體驗。
本文提出了一種適用于虛擬現實的桌面書寫應用場景深度測量方法,用于輔助手筆聯合的三維識別技術。該方法中,通過雙目視覺系統采集高分辨率立體圖像對,然后針對手筆聯合三維識別的特殊性使用本文搭建的分精度級聯立體匹配算法MPC-Net 可以實現書寫場景高精度深度測量。算法構建了一個區域檢測任務分支區分場景中的全局信息以及手部和筆尖局部關鍵區域信息,同時利用區域特征金字塔模塊和視差級聯模塊加深了各尺度階段之間的聯系。與當前主流立體匹配模型相比,本文設計的模型以更少的運算時間和計算成本在關鍵交互區域達到了相當甚至更好的立體匹配精度,筆尖區域坐標轉換后的深度預測結果可以達到1 mm 的連續相對精度,能夠有效輔助解決虛擬現實視覺交互方式中三維識別精度不足的問題。
但是本文方法依然存在部分問題:模型不夠輕量化,運行速度依然無法滿足虛擬設備的低延遲要求;連續交互深度的準確度有待提升。后續研究計劃進一步提高網絡的實時性,探索時序信息對書寫交互的影響,為虛擬桌面場景中的三維識別技術提供更穩定的深度測量方法。