刘文楷, 王海瑞, 武梦龙
(北方工业大学 信息学院,北京 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。 未来可通过引入结构更精准快速的深度学习框架以及设计更加高效的编码方案和包含较少定位图像的编码方式来进一步提高通信速率。