劉文楷, 王海瑞, 武夢龍
(北方工業大學 信息學院,北京 100144)
隨著硬件計算能力的快速增長, 深度學習相關技術取得了長足的進步[1-4], 其被應用于圖像處理領域解決了很多疑難問題, 這使將深度學習應用于可見光屏幕通信成為可能。 近年來國內外可見光屏幕通信研究主要集中于通信鏈路、多種形式的編碼以及非實時的解析方式等方面, 彩色和灰度等編碼方式雖然提高了信息攜帶量, 但增加了接收單元的識別解析難度以及降低了屏幕通信系統的可靠性[5-8]。當前可見光屏幕通信主流傳輸方案采用尋找定位圖形的方法來定位信息區域, 而定位圖形的大小也在一定程度上影響了帶寬[8-9]。 同時,在實際應用中收發兩端產生晃動會導致信息無法正確接收, 所以大多實驗均固定收發兩端以減少圖像失真[10]。 以上問題導致可見光屏幕通信的實際應用效果并不理想。
針對當前可見光屏幕通信系統可靠性不高、通信速率較低和單幀攜信量受限等問題, 本文采用快速區域卷積神經網絡(Faster Region with Convolutional Neural Networks,Faster R-CNN)算法對信息區域進行處理, 使光學攝像頭在不依賴傳統定位尋像圖形的情況下智能定位攜信區域,進而提高單幀攜信量,同時采用盧卡斯-卡納德 (Lucas-Kanade, LK)光流法對抖動引入的幀間信息區域位置變化進行估計, 提高了連續幀處理速率從而提高了系統通信速率。實驗結果表明, Faster R-CNN平均精度均值(Mean Average Precision, mAP)達到了90.91%, 同時引入LK光流法提升系統的處理效率, 克服了終端系統處理能力瓶頸, 相較于僅采用Faster R-CNN算法,處理時間縮短了59.5%以上。
本文涉及可見光屏幕通信系統中接收單元對Faster R-CNN算法和LK光流法的引入, 其中Faster R-CNN算法的引入使接收單元可不依賴于定位尋像圖形對信息區域進行定位, 同時可設計占用較少或不包含定位圖形的條碼以達到提升單幀攜信量的目的; 跟蹤算法可減少系統計算開銷, 解決了Faster R-CNN算法處理連續幀圖像所需時間較長的問題。
本文所涉及的可見光屏幕通信系統框架如圖1所示。 系統分為發送單元與接收單元, 發送單元首先將數據根據任意編碼規則生成對應條碼并通過屏幕顯示; 接收單元通過光學攝像頭捕獲信號, 將生成的視頻進行幀拆分, 采用Faster R-CNN算法確定圖像中信息區域的位置, 并采用跟蹤算法對后續幀信息區域的位置進行跟蹤, 最后進行解碼和寫入文件。

圖1 可見光屏幕通信系統框架圖
現有可見光屏幕通信系統接收方案大多依靠定位尋像圖形進行定位, 如圖2所示, 此類圖形占據條碼面積, 導致條碼可攜帶信息量受到了限制, 從而限制了系統性能, 且接收單元需要與之對應的解碼器進行解碼, 普適性較低。 通過對神經網絡進行訓練, 使接收單元可不依賴于定位尋像圖形自適應地識別多種類型條碼并進行定位,并可通過設計包含較少或不含定位圖形的條碼以達到提升單幀攜信量的目的,.根據條碼類型的不同, 攜信量提升最高可達30%。

圖2 常見條碼及定位尋像圖形
為提高可見光屏幕通信系統單幀的信息攜帶量以及適用性, 接收單元引入了Faster R-CNN算法, 通過訓練卷積神經網絡使接收單元學習棋盤格圖像特征, 從而達到在盡可能去除非有效信息的定位點和校正點后可以智能提取出棋盤格圖像的要求。 Faster R-CNN算法的主要結構是區域建議網絡(Region Proposal Network, RPN)和特征提取網絡, 如圖3所示。

圖3 Faster R-CNN算法結構圖
首先將圖像輸入卷積神經網絡進行特征提取, 用RPN生成候選框, 將候選框映射到特征圖上, 通過候選框池化層使每個候選框生成固定尺寸的特征圖, 將特征圖進行全連接操作, 之后利用分類函數Softmax層進行分類, 再利用回歸函數Smooth L1完成邊框回歸任務, 從而提升預測位置精度。
RPN是一個基于完全卷積網絡的深度學習網絡, 用于生成高質量的候選框, 它與檢測網絡共享整個圖形的卷積特征, 解決了選擇性搜索(Selective Search)的速度問題, 極大地提高了對象檢測的效果。 在速度與精度上可以初步滿足可見光屏幕通信系統的需要。
RPN采用一個n×n的滑動窗口在卷積特征圖上進行滑動并生成512維特征向量, 然后分別輸入到分類層和回歸層以獲得分類信息和位置信息。
在每個滑動窗口位置, 同時預測多個候選框, 其中每個位置的最大可能建議窗口數為K, 所以回歸層輸出4K個向量來編碼K個候選框坐標(x,y, width, height)(中心點坐標及候選框的寬高), 分類層輸出2K個向量來判別每個候選框是否是目標。 錨點位于滑動窗口中, 默認使用3個尺度和3個橫縱比, 在每個滑動位置產生K=9個錨點, 對于W×H的卷積特征圖, 共有W×H×K個錨點,W和H分別為卷積圖的寬和高。
滑動窗口和錨點的組合可以基本把條碼可能出現的區域全部覆蓋, 從而達到較為精確的定位效果, 滿足了在去除傳統定位點的同時要求準確定位的需求。
Faster R-CNN的損失函數由式(1)[1]給出:

以不含定位圖形的普通棋盤格圖形為例, 使用Faster R-CNN算法可以較準確地定位單幀圖片中棋盤格所在區域, 因棋盤格相對背景特征明顯, 所以識別提取效果較好, 效果圖如圖4所示。 圖中棋盤格所在區域為信息區域, 其他為背景區域, 紅色邊框表示找到的信息區域為定義的code類的概率為1.0。

圖4 Faster R-CNN算法定位棋盤格效果圖
可見光屏幕通信系統的處理能力由于硬件平臺的不同而有所差異, 由于采用 Faster R-CNN算法對信息區域定位的計算量較大, 現有的大多數設備處理能力無法滿足實時處理的實際要求, 因此引入LK光流法應對接收單元與發送單元之間產生的小運動導致的信息區域位置變化, 減少計算開銷并提升系統速率, 克服系統性能瓶頸。
可見光屏幕通信系統應用場景符合LK光流法的3個條件:亮度恒定、運動相對緩慢和區域性一致, 如式(2)所示:
式中:I為坐標為(x,y)的點在t時刻的亮度, 因亮度恒定, 所以在變化δx、δy和δt后亮度相等。將式(2)泰勒展開:
化簡即
即可得到某個點的速度矢量(式中,Vx和Vy分別為該點橫、縱坐標軸上的速度矢量),因區域一致性, 所以只需要幾個點即可判斷信息區域整體的運動情況。
使用LK光流法對幀中的信息區域位置進行跟蹤,因其計算量小,所以速度相對較快,可達到30 FPS,同時精度較高,相比于僅采用Faster R-CNN算法可大輻提升終端系統處理效率。同時為提升定位跟蹤準確度,保證后續信息被正確恢復,可采用穿插定位跟蹤的方法,即一幀由Faster R-CNN算法進行定位,后續幾幀由LK光流法跟蹤,再由Faster R-CNN算法進行位定。
本文對所設計方法進行了實驗驗證, 實驗所用設備操作系統為Windows 10,中央處理器(Central Processing Unit, CPU)為 CORE i7 6700HQ,圖形處理器(Graphics Processing Unit,GPU)為 GTX 1060 3G。
引入Faster R-CNN算法可較為精確地定位信息區域地位置, 為解碼器降低了計算量。 本文使用VGG16網絡進行特征提取, 定義一個code類, 通過將彩色條碼與無關背景合成來產生訓練圖像, 為防止過擬合, 迭代4 940次, 其損失函數收斂曲線如圖5所示。 迭代4 940次, 訓練損失最終降至0.03, mAP達到了90.91%, 表明Faster R-CNN算法的引入使得接收單元的mAP達到了90.91%, 可以保證在傳輸中去掉糾錯以及校正棋盤格后的系統穩定性。

圖5 損失函數收斂曲線
使用LK光流法可以較為精確地對信息區域進行跟蹤, 同時速度較快。 圖6所示為LK光流法運動軌跡圖,如圖所示,彩色的線條表示信息區域的運動路徑, 在由Faster R-CNN算法精準定位的結果下, 可以對其進行跟蹤, 而無需消耗大量的計算資源, 提升了系統的通信速率及穩定性。

圖6 LK光流法運動軌跡
經實驗驗證, 采用LK光流法進行位置估計每幀需要的時間約為0.032 s。如圖7所示,相比于只采用Faster R-CNN算法, 引入LK光流法可以大幅提升系統的處理效率。僅采用Faster R-CNN算法處理49幀圖像所消耗的時間為5.089 s。為避免誤差疊加, 在本實驗中, 每10幀使用一次FasterR-CNN算法確定當前幀的信息區域位置, 后續9幀采用LK光流法對信息區域進行跟蹤, 處理49幀圖像所消耗的時間為2.063 s, 處理效率提升了59.5%, 由此可得出結論:采用Faster R-CNN算法與LK光流法相結合的處理方式可以有效應對接收單元處理性能瓶頸。

圖7 處理效率對比
本文針對可見光屏幕通信系統的接收單元, 設計了引入Faster R-CNN算法和LK光流法的定位跟蹤方法。 實驗結果表明,Faster R-CNN算法的引入可使接收單元在不依賴定位尋像圖形的情況下較為精確地定位信息區域, mAP達到了90.91%;引入LK光流法提升了系統的處理效率, 有效克服了接收單元處理能力瓶頸, 處理速率可達21 FPS。 未來可通過引入結構更精準快速的深度學習框架以及設計更加高效的編碼方案和包含較少定位圖像的編碼方式來進一步提高通信速率。