劉文楷, 王海瑞, 武夢龍
(北方工業(yè)大學 信息學院,北京 100144)
隨著硬件計算能力的快速增長, 深度學習相關(guān)技術(shù)取得了長足的進步[1-4], 其被應(yīng)用于圖像處理領(lǐng)域解決了很多疑難問題, 這使將深度學習應(yīng)用于可見光屏幕通信成為可能。 近年來國內(nèi)外可見光屏幕通信研究主要集中于通信鏈路、多種形式的編碼以及非實時的解析方式等方面, 彩色和灰度等編碼方式雖然提高了信息攜帶量, 但增加了接收單元的識別解析難度以及降低了屏幕通信系統(tǒng)的可靠性[5-8]。當前可見光屏幕通信主流傳輸方案采用尋找定位圖形的方法來定位信息區(qū)域, 而定位圖形的大小也在一定程度上影響了帶寬[8-9]。 同時,在實際應(yīng)用中收發(fā)兩端產(chǎn)生晃動會導致信息無法正確接收, 所以大多實驗均固定收發(fā)兩端以減少圖像失真[10]。 以上問題導致可見光屏幕通信的實際應(yīng)用效果并不理想。
針對當前可見光屏幕通信系統(tǒng)可靠性不高、通信速率較低和單幀攜信量受限等問題, 本文采用快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Region with Convolutional Neural Networks,Faster R-CNN)算法對信息區(qū)域進行處理, 使光學攝像頭在不依賴傳統(tǒng)定位尋像圖形的情況下智能定位攜信區(qū)域,進而提高單幀攜信量,同時采用盧卡斯-卡納德 (Lucas-Kanade, LK)光流法對抖動引入的幀間信息區(qū)域位置變化進行估計, 提高了連續(xù)幀處理速率從而提高了系統(tǒng)通信速率。實驗結(jié)果表明, Faster R-CNN平均精度均值(Mean Average Precision, mAP)達到了90.91%, 同時引入LK光流法提升系統(tǒng)的處理效率, 克服了終端系統(tǒng)處理能力瓶頸, 相較于僅采用Faster R-CNN算法,處理時間縮短了59.5%以上。
本文涉及可見光屏幕通信系統(tǒng)中接收單元對Faster R-CNN算法和LK光流法的引入, 其中Faster R-CNN算法的引入使接收單元可不依賴于定位尋像圖形對信息區(qū)域進行定位, 同時可設(shè)計占用較少或不包含定位圖形的條碼以達到提升單幀攜信量的目的; 跟蹤算法可減少系統(tǒng)計算開銷, 解決了Faster R-CNN算法處理連續(xù)幀圖像所需時間較長的問題。
本文所涉及的可見光屏幕通信系統(tǒng)框架如圖1所示。 系統(tǒng)分為發(fā)送單元與接收單元, 發(fā)送單元首先將數(shù)據(jù)根據(jù)任意編碼規(guī)則生成對應(yīng)條碼并通過屏幕顯示; 接收單元通過光學攝像頭捕獲信號, 將生成的視頻進行幀拆分, 采用Faster R-CNN算法確定圖像中信息區(qū)域的位置, 并采用跟蹤算法對后續(xù)幀信息區(qū)域的位置進行跟蹤, 最后進行解碼和寫入文件。
圖1 可見光屏幕通信系統(tǒng)框架圖
現(xiàn)有可見光屏幕通信系統(tǒng)接收方案大多依靠定位尋像圖形進行定位, 如圖2所示, 此類圖形占據(jù)條碼面積, 導致條碼可攜帶信息量受到了限制, 從而限制了系統(tǒng)性能, 且接收單元需要與之對應(yīng)的解碼器進行解碼, 普適性較低。 通過對神經(jīng)網(wǎng)絡(luò)進行訓練, 使接收單元可不依賴于定位尋像圖形自適應(yīng)地識別多種類型條碼并進行定位,并可通過設(shè)計包含較少或不含定位圖形的條碼以達到提升單幀攜信量的目的,.根據(jù)條碼類型的不同, 攜信量提升最高可達30%。
圖2 常見條碼及定位尋像圖形
為提高可見光屏幕通信系統(tǒng)單幀的信息攜帶量以及適用性, 接收單元引入了Faster R-CNN算法, 通過訓練卷積神經(jīng)網(wǎng)絡(luò)使接收單元學習棋盤格圖像特征, 從而達到在盡可能去除非有效信息的定位點和校正點后可以智能提取出棋盤格圖像的要求。 Faster R-CNN算法的主要結(jié)構(gòu)是區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network, RPN)和特征提取網(wǎng)絡(luò), 如圖3所示。
圖3 Faster R-CNN算法結(jié)構(gòu)圖
首先將圖像輸入卷積神經(jīng)網(wǎng)絡(luò)進行特征提取, 用RPN生成候選框, 將候選框映射到特征圖上, 通過候選框池化層使每個候選框生成固定尺寸的特征圖, 將特征圖進行全連接操作, 之后利用分類函數(shù)Softmax層進行分類, 再利用回歸函數(shù)Smooth L1完成邊框回歸任務(wù), 從而提升預測位置精度。
RPN是一個基于完全卷積網(wǎng)絡(luò)的深度學習網(wǎng)絡(luò), 用于生成高質(zhì)量的候選框, 它與檢測網(wǎng)絡(luò)共享整個圖形的卷積特征, 解決了選擇性搜索(Selective Search)的速度問題, 極大地提高了對象檢測的效果。 在速度與精度上可以初步滿足可見光屏幕通信系統(tǒng)的需要。
RPN采用一個n×n的滑動窗口在卷積特征圖上進行滑動并生成512維特征向量, 然后分別輸入到分類層和回歸層以獲得分類信息和位置信息。
在每個滑動窗口位置, 同時預測多個候選框, 其中每個位置的最大可能建議窗口數(shù)為K, 所以回歸層輸出4K個向量來編碼K個候選框坐標(x,y, width, height)(中心點坐標及候選框的寬高), 分類層輸出2K個向量來判別每個候選框是否是目標。 錨點位于滑動窗口中, 默認使用3個尺度和3個橫縱比, 在每個滑動位置產(chǎn)生K=9個錨點, 對于W×H的卷積特征圖, 共有W×H×K個錨點,W和H分別為卷積圖的寬和高。
滑動窗口和錨點的組合可以基本把條碼可能出現(xiàn)的區(qū)域全部覆蓋, 從而達到較為精確的定位效果, 滿足了在去除傳統(tǒng)定位點的同時要求準確定位的需求。
Faster R-CNN的損失函數(shù)由式(1)[1]給出:
以不含定位圖形的普通棋盤格圖形為例, 使用Faster R-CNN算法可以較準確地定位單幀圖片中棋盤格所在區(qū)域, 因棋盤格相對背景特征明顯, 所以識別提取效果較好, 效果圖如圖4所示。 圖中棋盤格所在區(qū)域為信息區(qū)域, 其他為背景區(qū)域, 紅色邊框表示找到的信息區(qū)域為定義的code類的概率為1.0。
圖4 Faster R-CNN算法定位棋盤格效果圖
可見光屏幕通信系統(tǒng)的處理能力由于硬件平臺的不同而有所差異, 由于采用 Faster R-CNN算法對信息區(qū)域定位的計算量較大, 現(xiàn)有的大多數(shù)設(shè)備處理能力無法滿足實時處理的實際要求, 因此引入LK光流法應(yīng)對接收單元與發(fā)送單元之間產(chǎn)生的小運動導致的信息區(qū)域位置變化, 減少計算開銷并提升系統(tǒng)速率, 克服系統(tǒng)性能瓶頸。
可見光屏幕通信系統(tǒng)應(yīng)用場景符合LK光流法的3個條件:亮度恒定、運動相對緩慢和區(qū)域性一致, 如式(2)所示:
式中:I為坐標為(x,y)的點在t時刻的亮度, 因亮度恒定, 所以在變化δx、δy和δt后亮度相等。將式(2)泰勒展開:
化簡即
即可得到某個點的速度矢量(式中,Vx和Vy分別為該點橫、縱坐標軸上的速度矢量),因區(qū)域一致性, 所以只需要幾個點即可判斷信息區(qū)域整體的運動情況。
使用LK光流法對幀中的信息區(qū)域位置進行跟蹤,因其計算量小,所以速度相對較快,可達到30 FPS,同時精度較高,相比于僅采用Faster R-CNN算法可大輻提升終端系統(tǒng)處理效率。同時為提升定位跟蹤準確度,保證后續(xù)信息被正確恢復,可采用穿插定位跟蹤的方法,即一幀由Faster R-CNN算法進行定位,后續(xù)幾幀由LK光流法跟蹤,再由Faster R-CNN算法進行位定。
本文對所設(shè)計方法進行了實驗驗證, 實驗所用設(shè)備操作系統(tǒng)為Windows 10,中央處理器(Central Processing Unit, CPU)為 CORE i7 6700HQ,圖形處理器(Graphics Processing Unit,GPU)為 GTX 1060 3G。
引入Faster R-CNN算法可較為精確地定位信息區(qū)域地位置, 為解碼器降低了計算量。 本文使用VGG16網(wǎng)絡(luò)進行特征提取, 定義一個code類, 通過將彩色條碼與無關(guān)背景合成來產(chǎn)生訓練圖像, 為防止過擬合, 迭代4 940次, 其損失函數(shù)收斂曲線如圖5所示。 迭代4 940次, 訓練損失最終降至0.03, mAP達到了90.91%, 表明Faster R-CNN算法的引入使得接收單元的mAP達到了90.91%, 可以保證在傳輸中去掉糾錯以及校正棋盤格后的系統(tǒng)穩(wěn)定性。
圖5 損失函數(shù)收斂曲線
使用LK光流法可以較為精確地對信息區(qū)域進行跟蹤, 同時速度較快。 圖6所示為LK光流法運動軌跡圖,如圖所示,彩色的線條表示信息區(qū)域的運動路徑, 在由Faster R-CNN算法精準定位的結(jié)果下, 可以對其進行跟蹤, 而無需消耗大量的計算資源, 提升了系統(tǒng)的通信速率及穩(wěn)定性。
圖6 LK光流法運動軌跡
經(jīng)實驗驗證, 采用LK光流法進行位置估計每幀需要的時間約為0.032 s。如圖7所示,相比于只采用Faster R-CNN算法, 引入LK光流法可以大幅提升系統(tǒng)的處理效率。僅采用Faster R-CNN算法處理49幀圖像所消耗的時間為5.089 s。為避免誤差疊加, 在本實驗中, 每10幀使用一次FasterR-CNN算法確定當前幀的信息區(qū)域位置, 后續(xù)9幀采用LK光流法對信息區(qū)域進行跟蹤, 處理49幀圖像所消耗的時間為2.063 s, 處理效率提升了59.5%, 由此可得出結(jié)論:采用Faster R-CNN算法與LK光流法相結(jié)合的處理方式可以有效應(yīng)對接收單元處理性能瓶頸。
圖7 處理效率對比
本文針對可見光屏幕通信系統(tǒng)的接收單元, 設(shè)計了引入Faster R-CNN算法和LK光流法的定位跟蹤方法。 實驗結(jié)果表明,F(xiàn)aster R-CNN算法的引入可使接收單元在不依賴定位尋像圖形的情況下較為精確地定位信息區(qū)域, mAP達到了90.91%;引入LK光流法提升了系統(tǒng)的處理效率, 有效克服了接收單元處理能力瓶頸, 處理速率可達21 FPS。 未來可通過引入結(jié)構(gòu)更精準快速的深度學習框架以及設(shè)計更加高效的編碼方案和包含較少定位圖像的編碼方式來進一步提高通信速率。