龔星衡, 吳肖伶, 張衛華
(四川大學計算機學院, 成都 610065)
隨著工業4.0[1]的到來,無人車成為了最近研究的熱點,在各種工業/物流等場景下應用無人車能夠降低人工成本,提高生產效率.無人車現多用于承擔工業園區的運輸工作,但由于園區無線電規制,用于無人車圖傳的帶寬可能受限,需要編碼技術能夠在碼率較低的情況下對圖像視頻信號進行壓縮[2],需要對視頻編碼技術進行改進,同時,考慮圖傳設備算力有限,采用的編碼方法應盡可能的簡單,保證不過多占用圖傳設備的算力,節約成本.
然而,園區無人車除了需要實時圖像傳輸之外,還需要利用RTK進行解算GPS信息,故圖像壓縮的復雜度不能過高,同時園區無人車上的圖像傳輸需要保持較高的實時性,在網絡帶寬有限的情況下,如何降低圖像的數據量,同時保證圖像質量能用于識別是急需解決的問題.本文為了同時滿足有限網絡帶寬、壓縮率高、低復雜度的要求,同時保證被壓縮圖像的質量,選用了H.264/AVC[3]作為基礎方法.H.264具有較高的壓縮率,同時,H.264的復雜度比H.265要低,容易滿足低算力的圖像采集設備.據此,本文提出一種基于姿態傳感器和H.264/AVC視頻壓縮算法提取圖像感興趣區域,以感興趣區域來分割壓縮圖像質量的算法,旨在利用有限帶寬的情況下保證圖像的可識別性.
地面無人車輛集環境感知、規劃決策與多等級輔助駕駛功能于一體,是涉及到傳感、信息融合、計算機、通訊、人工智能及自動控制技術等多學科多領域的高技術集合體[4].地面無人車又常被稱為無人車、智能車、智能機器人等.憑借其靈活小巧的特性,其被運用于大量行業.
國外地面無人車輛研究主要集中在歐洲地區與美日等國;國內多家企業與高校針對無人車的研究取得一系列的成果,已廣泛用于各個行業,如工業運送、物流、公共交通等.百度公司2013年開始研發無人駕駛車項目[5],京東公司在2016年正式發布無人配送車,以自動駕駛核心技術為基礎[6].
現在無線圖像傳輸使用的壓縮方法十分豐富,有使用JPEG[7]、MJPEG[8]直接對視頻圖像直接進行壓縮的方法,優點是壓縮速度很快,圖像清晰,幾乎不占用CPU計算資源,缺點是壓縮率不高,圖像傳輸帶寬占用資源巨大;也有使用H.264[9]、H.265[10]對視頻先進行一定壓縮處理,然后再通過網絡傳輸,優點是圖像清晰、壓縮率很高、圖像傳輸帶寬占用資源較小,缺點是需要使用一定的CPU計算資源、壓縮需要一定的時間.
無人車在園區移動的時候,需要關注的地方只有水平視場是否有人、車等可能出現妨礙駕駛的物體.無人車需要搭載圖像采集設備用于檢測行動水平視場的圖像數據,但考慮到園區路面顛簸不平,水平視場是一個動態的狀態,例如當無人車由于路面上仰的時候,無人車的水平視場大小會變小,同時水平視場所占圖像中的位置會隨之下降.為解決因路面不平出現的水平視場動態變化問題,本文利用姿態傳感器用于計算無人車實時姿態,從而計算水平視場大小與水平視場所在圖像位置.同時為了保證無人車所采集圖像數據能夠較快傳輸,并盡可能少占用傳輸帶寬,以免控制無人車信號產生較大的延時,本文采用了將水平視場視為圖像感興趣區域,水平視場以外的地方視為非感興趣區域,非感興趣區域進行壓縮擴大的壓縮方法.
實驗所用無人車控制器采用RaspberryPi 3B實現,安裝ICM20948九軸傳感器,采集車的偏轉角度.九軸傳感器的靈敏度軸和旋轉極性的方向如圖1所示,其中,Z為偏航角,Y為翻滾角,X為俯仰角.

圖1 靈敏度軸和旋轉極性的方向
ICM20948九軸傳感器包括了三組傳感器,加速度傳感器,陀螺儀與羅盤儀以用于計算姿態使用,如果直接使用三組傳感器原始數據,會算出三種無人車姿態,簡單的選取一個傳感器計算出的姿態不夠精確,本文選用卡爾曼濾波將傳感器數據進行融合得到最終的車輛姿態,同時能夠處理一定的噪聲信號.如圖2所示,利用RTIMULib庫[11]可以方便的將使用卡爾曼濾波融合了三組傳感器的角度數據提取出來.
無人車在園區行駛時,可能出現的障礙物與目標標志物均貼近地面的情況,如果將貼近地面部分與天空部分進行同等碼率的壓縮,為了保留更多的細節,則接近天空那部分區域就極大的占用網絡傳輸帶寬.如圖3所示,以貼近地面的那部分區域為感興趣區域,如果園區無人車以相對水平的姿態前進的話,圖像的上三分之一部分的可用消息很少,我們可以將其視為背景消息,將其的壓縮比例變得比其他區域更大,且在保持感興趣區域圖像質量不變的情況下,使最終視頻的尺寸更小.

圖2 融合傳感器參數,得到當前姿態

園區無人車在路面不平穩的情況下會發生顛簸,除因顛簸導致的車頭左右偏移之外,車頭上下俯仰與左右偏轉對感興趣區域的影響比較巨大.如前所述,只有貼近地面的部分為感興趣區域,車頭的俯仰會導致車頭向上偏移或者向下偏移,攝像頭采集到的畫面隨之上下偏移,當攝像頭向上偏移的時候,拍攝到天空的部分會增加,感興趣區域應該隨之向下移動且減少;當攝像頭向下偏移的時候,拍攝到地面的部分會增加,感興趣區域隨著向下移動且增加.設車的俯仰角度為△?,提出一種簡單的線性關系如下式.
ROIpitch:{(x,y)|x∈φ0W,y∈(?0+△?)H}
(1)
其中,x與y是感興趣區域的坐標點;?0是路面平整時感興趣區域的寬度系數;W是圖像的寬度;φ0是路面平整時感興趣區域的寬度系數;H為圖像的高度.
當車開始傾斜,傳感器采集到翻轉角度時,攝像頭隨之左右傾斜,當攝像頭向左偏移的時候,拍攝到地面向左邊偏轉,感興趣區域即隨之左移;當攝像頭向右偏移的時候,拍攝到地面向右邊偏轉,感興趣區域即隨之右移動.設車的偏轉角度為△φ,感興趣區域的集合如下.
ROIroll:{(x,y)|?0Wtan△φ-xtan△φ-y≥0}
(2)
其中,?0是人為的設定的,作為圖像開始偏轉的基礎位置.當車同時遇到翻轉與上下顛簸時,就需要將兩種情況綜合起來考慮,將式(1)和式(2)綜合起來得到式(3)和式(4).
(3)
ROIpitch,roll:{(x,y)|f(x,y)≥0}
(4)
有上式即可在既有翻轉又有俯仰角度的情況下進行感興趣區域的計算.在完成感興趣區域計算后,對感興趣區域保留更多的空間細節.在H.264算法中,使用量化參數(Quantization Parameter,QP)來反應空間細節壓縮情況.如QP小,則圖像的大部分細節會被保留,隨著QP值增大,一些細節丟失,碼率降低,但圖像質量下降.本文所用感興趣區域壓縮算法將興趣區域的QP值設置為0,非感興趣區域的默認QP值設置為10,之后再利用H.264/AVC技術把原始yuv視頻壓縮為mp4或者H.264裸流,方便通過網絡傳輸.
在真實園區情況中,如果無人車遇到上坡直線前進或者上坡傾斜上行的情況,利用式(1)和式(3)即可算出無人車傳回圖像的感興趣區域,圖4為無人車分別在平坦路面,傾斜路面,傾斜向上路面行駛,并獲得感興趣區域的流程圖.

圖4 平坦、傾斜、傾斜向上路面感興趣區域提取流程圖Fig.4 The step that extract ROI of flat, inclined, inclined upward pavement
如圖5,實驗所用系統可簡單分為視頻采集端、姿態傳感器端、視頻處理算法這三個部分.其中,視頻采集端為搭載無人車上的視頻采集設備,對無人車行進道路進行原始視頻數據采集.姿態傳感器端為車上搭載的ICM20948九軸傳感器,利用其對當前的姿態信息進行采集.視頻處理算法主要是利用姿態傳感器數據設計一種簡單的感興趣區域提取方法,使用H.264/AVC編碼方式對視頻感興趣區域與非感興趣區域設置不同的壓縮比.
首先,測試姿態傳感器姿勢與角度的對應關系,通過將當前轉動著的Rasberry Pi 3B的偏航角,翻滾角,俯仰角實時打印,來測試傳感器姿勢與傳感器參數的關系;然后,模擬6種場景(平地、上坡、下坡、橫向、斜向上和斜向下),讓無人車分別在這6種情況前進,并記錄無壓縮視頻與傳感器測出的無人車姿態角度;最后,將無壓縮視頻分別使用libx264壓縮與本文所提方法壓縮并對比兩種壓縮方法輸出結果感興趣區域的差別.
實驗所用模擬無人車為ArduRover2.5,車上固定九軸傳感器(sense-hat)與Raspberry PI Camera攝像頭.實驗設定第3節式(1)~式(3)的初始值為,φ0=1,?0=0.43,?0=0.5.

圖5 系統架構Fig.5 System architecture
為測試傳感器參數靈敏度,我們將以幾個典型角度來測試傳感器參數.實驗結果如表1所示.

表1 靈敏度軸和旋轉極性的角度對應傳感器參數
由實驗結果知,我們以圖1所示的x軸坐標系為基準,按順時針轉動,傳感器翻轉角度與傳感器數值正負相反,以轉動180°為界,傳感器數值變為正值.例如實際傳感器轉動了0°~180°的時候,傳感器數值為0°~-180°的弧度值;傳感器轉動180°~360°,傳感器數值為180°~360°的弧度值.我們以圖2所示的y軸為基準,按順時針轉動,傳感器翻轉角度與傳感器數值對應,傳感器翻轉角度超過180°后,數值從-180°開始直到0°.
由以上分析可知,姿態傳感器能精確地反應真實世界的姿態,而且傳感器翻轉角度與現實角度的對應關系比較簡單.傳感器轉動角度從使用場景與現實生活經驗可知,車轉動不會超過±90°,即轉動有效角度為0°~ 90°,270°~ 360°,從實驗結果來看傳感器參數就是0°~±90°的弧度值.故真實轉動角度與轉動傳感器參數轉化也比較簡單.
為驗證本方法可以用于改進無人車圖像傳輸,本實驗利用車上拍攝的多種分辨率的多個視頻,進行本方法的壓縮與原始H.264壓縮的壓縮信噪比進行比較,同時分別對感興趣區域與非感興趣區域進行兩種壓縮方法的壓縮信噪比對比.本實驗將對車的俯仰與偏轉進行了單獨測試與綜合測試,首先考慮俯仰的情況,如圖6(a),在固定角度的坡上使無人車從下到上和從上到下運動,以模擬無人車俯仰的情況;然后考慮翻轉的情況,如圖6(b),在同一個坡上以側方向角度開動無人車,以模擬車翻轉的情況;最后考慮車同時翻轉與俯仰,如圖6(c),在同一個坡上以斜上角度開動無人車以模擬車同時翻轉與俯仰的情況.本實驗對上面的幾種情況進行測試,如圖6所示,無人車以三種的箭頭所示方向前進為實驗設計的6種情況.本實驗把攝像頭采集原始yuv2視頻數據保存下來,將視頻數據進行H.264壓縮和按感興趣區域壓縮,并進行客觀視頻尺寸,質量對比.

圖6 模擬無人車翻轉俯仰實驗示意Fig.6 Simulated unmanned vehicle rollover and pitch experiment

圖7 libx264為原始H.264壓縮方法,mask為本文使用方法的對應掩膜,ours為本文使用壓縮算法
圖像掩膜為用選定的圖像、圖形或物體,對處理的圖像(全部或局部)進行遮擋,來控制圖像處理的區域或處理過程.本實驗主要用圖像掩膜來提取感興趣區,根據傳感器參數計算的感興趣區掩模與待處理圖像相乘,得到感興趣區圖像,感興趣區內圖像值保持不變,而區外圖像值都為0.為了說明本實驗的壓縮質量,本實驗選取了峰值信噪比作為視頻質量的量度標準.峰值信噪比[12](Peak Signal-to-Noise Ratio,常縮寫為PSNR)是一個表示信號最大可能功率和影響它的表示精度的破壞性噪聲功率的比值的工程術語.本實驗在得到傳感器翻轉與偏移角度的通過,根據第3節的式(1)~所示的(4)得到的區間,圖像在區間內的像素將其賦值為0,否則為255,則得到了該幀感興趣區域的掩膜圖像,通過感興趣區域的掩膜將未壓縮圖像、libx264壓縮圖像與本文算法壓縮圖像進行分割處理,然后將分割保留部分進行PSNR計算,即為感興趣區域的PSNR計算方法.
如圖7,列舉了以上情況的視頻的某一幀,并計算了感興趣區域的PSNR值與掩膜.由圖7所示,本文算法將非感興趣區域的壓縮率設置的比較大,從圖7可看到,非感興趣區域比較模糊,但感興趣區域中與H.264方法壓縮的圖像基本沒有變化.本文這種壓縮方法可以保持對感興趣區域是否有汽車、人等特殊關注物體細節的同時壓縮車所傳輸的視頻體積,實時性更佳.
我們將以上情況所作實驗進行整合,得到本文算法每幀圖像的感興趣區域的PSNR與libx264所壓縮算法的每幀圖像的PSNR,繪制為折線圖如圖8.

圖8 6種情況下視頻感興趣區域的PSNR對比,除下坡情況(e)因感興趣區域太小,非感興趣區域占圖片較大比例,明顯比原圖PSNR值低外,其余情況均和原始圖像感興趣區域的PSNR沒有太大變化
圖8中橫坐標為視頻的幀數,縱坐標為對應的幀的PSNR值和感興趣區域的PSNR值.因H.264算法壓縮視頻采用了關鍵幀(I幀),向前搜索幀(P幀),雙向搜索幀(B幀)的壓縮方法[13],不同的幀之間的PSNR值會有一定誤差.從圖8中可以看到,本實驗壓縮方法感興趣區域PSNR值和改進前整體趨勢符合預期,證明本文所述感興趣區域壓縮方法有效.
我們將以上情況所做的實驗進行整合,得到結果如表2.
由以上實驗數據得出,對于天空這種圖片信息不豐富的地方,壓縮比例提高對視頻壓縮大小有顯著提升,而對于視頻的感興趣區域的平均PSNR值變化不是很大.我們可以得出結論:對于景區而言,對無人車所拍攝車載圖像來說,視頻上部分,壓縮比增大,雖對觀看視頻有一定影響,但是對機器對感興趣區域特殊物體識別幾乎沒有影響,同時對視頻傳輸的網絡資源更加友好.

表2 俯仰傾斜視頻壓縮實驗,?為俯仰角,φ為翻轉角,表中PSNR為感興趣區域與的PSNR
綜上所述,針對無人車在園區行駛這種情況,利用姿態傳感器提出一種計算感興趣區域的模型,并利用該模型進行了視頻分區編碼壓縮,從而明顯地減少了視頻的大小,同時PSNR值并沒有有較大的損失,肉眼觀察非感興趣區域與感興趣區域的清晰度并沒有明顯變化,滿足園區無人車圖傳的要求.盡管如此,本文設計的無人車圖傳系統仍有不足的地方:(1) 當小車的運動速度過快,路面稍有不平,傳感器的采集到的數值會出現一個抖動現象,本文所提算法沒有對抖動現象有一個有效的處理;(2) 當路面顛簸程度較大,小車速度過快,會導致圖傳的實時性降低,本文所提方法不能很好解決這個問題.