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