赵旭阳, 张延彬, 王忠勇, 陈明亮
(郑州大学 信息工程学院,河南 郑州 450001)
电子商品防盗系统(electronic article surveillance,EAS)是一种应用于零售实体店的门禁防盗系统[1]。随着开放式购物的不断发展以及电子技术的不断进步,EAS系统开始变得至关重要。商家采用EAS系统,不仅可以提供更加舒适的购物环境,同时也能保障自身的财产安全。目前,EAS系统主要分为4种:声磁系统、射频系统、电磁系统和微波系统[2]。其中,声磁系统利用音叉共振原理,具有良好的抗干扰能力、漏报率低等特性,得到了广泛的应用。
传统声磁EAS系统的标签识别算法大多采用快速傅里叶变换法(FFT)、信噪比法(SNR),或两者结合。姚江敏等[1]将FFT和SNR两者相结合,通过FFT在频域查找标签信号的特征,SNR的使用则是加上第二门限,进一步降低误报率。方元等[2]通过伪随机序列控制发射,同样采用FFT的方法检测标签信号。康雪娟等[3]则是将FFT法与最小二乘求信号包络斜率相结合,同时采用信号互相关运算的预处理方法对标签信号进行识别。
上述传统系统在无干扰环境下可以达到一定的识别率,但在某些复杂电磁环境下(如LED灯具附近、手扶梯附近、同类EAS系统附近等),其漏报、误报率会陡然上升,甚至完全失效。导致这种问题的原因是传统算法相对简单,只提取标签信号的特征,却忽略了实际工作环境中噪声的特征。针对这种问题,提出了一种基于SVM算法的收发一体式声磁EAS系统。通过FFT法提取标签、噪声信号的频域特征,将其作为SVM算法训练样本。SVM训练模型将低维特征进一步映射至高维空间,对实时采集的数据帧进行有标签和无标签二分类计算。SVM算法的训练部分在MATLAB上完成。分类部分在FPGA芯片内实现,采用三级并行计算结构对算法进行加速,用时小于0.5 ms。与传统算法相比,响应速度更快,具有更远的检测距离,更低的漏报、误报率,为复杂环境下EAS系统的稳定运行提供了一种解决方案。
声磁EAS系统利用音叉共振原理,即在一定范围内的一个音叉振动会引起另一个音叉的共振[4]。收发一体式EAS系统是将发射天线和接收天线缠绕在同一天线架上,发射天线在空间中产生固定频率的磁场,声磁标签进入区域后被激励,接收天线将标签信号收集起来[5]。信号经过滤波、放大等处理后由AD芯片采集到FPGA芯片。最后,经过算法处理识别标签信号并进行声光报警。通常情况下,一套完整的EAS系统包含1个主机,2个或多个收发一体式天线。天线之间摆放的距离可根据实际环境调整,间隔不得超过系统保护宽度。
系统整体硬件框图如图1所示。①算法实现平台采用Altera公司Cylone Ⅳ系列EP4CE22E22C8型号的FPGA芯片,可满足时序控制和数据处理需要。②同步信号由市电生成,频率为50 Hz。③发射模块在空间中形成检测区域。④接收模块用来采集标签、噪声数据。⑤声光报警模块主要由蜂鸣器、LED灯组成。⑥存储模块使用EEPROM存储,保证系统参数掉电重启后依然生效。⑦通信模块采用串口通信协议,上位机通过USB和主板连接,对系统进行参数读取、设置,数据采集等操作。
图1 系统硬件框图Figure 1 System hardware block diagram
声磁标签由磁性收缩材料制成,具有磁致伸缩性。当受到外部磁场作用时,声磁标签会产生物理形变,将电磁能转化为机械能[5]。这种形变会随着外部磁场的消失而恢复,此时机械能转化为电磁能[6]。系统通过接收天线将该信号采集,并通过算法识别标签信号。电子标签分为软标签和硬标签。软标签价格低廉,消磁过后不可重复使用;硬标签外壳坚硬,成本相对较高,可重复使用。
声磁标签的谐振频率分布在58~68 kHz[6],系统以580 kHz采样频率得到的时域波形如图2所示,频域波形如图3所示。图2和图3中,前512点数据为标签信号窗口数据,后512点数据为噪声信号窗口数据。
图2 时域波形Figure 2 Time domain waveform
图3 频域波形Figure 3 Frequency domain waveform
标签信号频域特征的所处位置由式(1)得出:
(1)
式中:f0为标签谐振频率,Hz;fs为采样频率,Hz;N为采样点数;n为目标频率点数。
本文采用的声磁标签谐振频率为58 kHz,采样频率为580 kHz,采样点数为512。由式(1)计算得出512点FFT计算后目标频率点在52点附近,即图3中第一个波峰所在位置。声磁标签离接收天线越近,信号强度越大,幅值就越大,标签信号与噪声信号在频域区别更大。通过FFT法提取了信号的频域特征,将其作为SVM算法训练样本。
FPGA顶层时序设计状态转移如图4所示。系统上电后完成看门狗复位、载入预设参数等初始化操作后,进入到初始状态(IDLE)。检测到同步信号后,发射窗口(Tx_win)开启,持续1.6 ms。发射结束后,标签信号接收窗口(Rx_sig)开启,采集512点数据。接着,经FFT计算得到对应的频域特征值,取频域特征点左右N/2个点暂存。经过短暂延迟后,对噪声信号接收窗口(Rx_noise)采集到的噪声数据做同样处理。然后,从RAM内读取暂存的N点数据,组成标签噪声数据帧SNN×1,开始进行分类计算(SVM_classfier)。分类计算的结果作为声光报警(Is_alarm)的依据。此时,一个完整的判断流程结束,用时13.33 ms。系统在两个同步信号周期内完成3次判断流程,根据计数器的数值返回相应状态。
图4 时序状态转移图Figure 4 Timing state transition diagram
支持向量机(support vector machine,SVM)是机器学习领域一种常见的判别方法,属于有监督学习模型,常用来做模式识别、分类和回归分析[7-8]。SVM具有很强的学习能力,能较好地解决小样本、非线性、过学习、高维数、局部极小点等实际问题,具有良好的推广能力。
SVM算法的实现主要包含3部分:训练数据采集、MATLAB模型训练和FPGA分类实现,流程图如图5所示。
图5 SVM算法实现流程图Figure 5 Flow chart of SVM algorithm implementation
SVM主要思想是找到空间中的一个能够将所有样本数据划开的超平面ωTx+b=0,使得所有数据距离这个超平面最近[9]。算法数学模型如下所示:
(2)
式中:xi为训练样本向量;yi为训练样本分类标签,一般为-1和+1;N为训练样本点的个数;ω为超平面方向的垂直向量;b为初始值的偏移量。
上述问题的最优解为参数ω和b。在解决实际问题时,往往需要引入惩罚参数C和松弛变量ξi来调整分类函数误差[10]。此时,问题可表示为
(3)
式中:ξi≥0;C值越大,对误分类的样本点的惩罚就越大。
为了方便计算,将式(3)转化为对偶问题,加入拉格朗日乘子,最终的分类模型可表示为
(4)
式中:xj为测试样本向量;αi为拉格朗日乘子,且αi≥0;K(xi,xj)为核函数,表示训练样本向量和测试样本向量在隐式映射后的空间中的内积计算[11]。
常用的核函数一般有线性核函数、多项式核函数、高斯核函数、指数核函数、拉普拉斯核函数和Sigmoid核函数[12]。核函数的类型、参数的选择对分类性能有着重要的影响[13],其选择目前仍是一个未决的问题,通常凭借经验选择[14]。对不同核函数进行初步试验对比后,选择了分类效果较好的线性核函数,其表达式为
K(xi,xj)=xi·xj。
(5)
SVM算法训练数据的采集环境分为无电磁干扰场景和有电磁干扰场景。无电磁干扰场景设置为实验室环境;有电磁干扰场景设置为3种常见场景:LED灯具附近、手扶梯附近、同类EAS设备附近。每个场景下采集91组数据,类别为有标签数据和无标签数据(环境噪声数据)。有标签数据分组类别包括标签类型(软、硬)、标签放置方向R(垂直地面、平行地面、垂直天线线圈)、距离天线距离D(间隔10 cm为一组)、距离地面高度H(高、中、低)。每组训练数据采集1 000帧,每一帧数据包含512点标签信号数据和512点噪声信号数据。具体标签放置位置如图6所示。采集无标签数据时,接收区域不放置任何标签,采集帧数和该场景下有标签信号数据帧数一致。
图6 采集标签放置图Figure 6 Label placement diagram
SVM算法训练部分在MATLAB上完成。经测试,以时域数据作为训练集得到的模型分类正确率只能达到50%~60%,不能满足系统要求。因此,将原始数据进行FFT预处理,提取信号频域特征作为训练集。为了进一步缩小模型、降低运算复杂度,分别截取标签、噪声信号峰值左右的N/2(N<1 024)个点作为训练集。最终在性能与复杂度之间进行折中,N设置为82,得到的3 000帧分类正确率达99%。
MATLAB训练得到的SVM算法模型主要包含:归一化的参数向量STN×1和SFN×1;支持向量矩阵SVM×N和支持向量分组指示向量AHM×1;超平面中的截距常量Bias。其中,M为支持向量的个数;N为支持向量的特征维数。训练模型得到的支持向量个数为111,支持向量特征维数为82。这些参数存放在FPGA片内ROM中,如有升级需要,可通过上位机进行更新。从RAM中读出标签噪声数据帧SNN×1进行分类计算,其数学模型可表示为
F=SV·SD·AHT+Bias;
(6)
SDi=SFi·(SNi+STi),i=1,2,…,N;
(7)
result=sign(F)。
(8)
式中:SD为中间变量;F为分类算法的结果值;sign为取最高位符号运算;result即为本次判断结果。result若为1,则存在标签,启动声光报警;若为0,则不存在标签。
FPGA实现式(6)、式(7)中的矩阵运算需要用到加法器、乘法器、乘法累加器(MAC)、寄存器(Reg)等单元,使用到的存储单元有RAM、ROM等单元。分类计算涉及大量矩阵和向量的乘法运算,采用常规的处理方式会导致系统延时过长,不能满足时序要求。为了进一步提高工作频率,减少分类算法用时,采用三级流水线设计,算法整体结构如图7所示。
图7 FPGA实现SVM分类结构图Figure 7 Classification structure of SVM implemented by FPGA
第一级流水线进行向量运算,目的是将数据帧SNN×1进行标准化。首先将数据帧SNN×1与STN×1相加,然后与SFN×1进行点乘。第二级流水线是三级流水线中延时最长、复杂度最高的部分,主要完成支持向量矩阵SVM×N与上级处理得到的标准化向量SDN×1的乘法运算。在此部分采用三级并行计算结构,将用时缩短为线性计算的1/3。随着数据量的增大,可扩展此部分并行加速单元,减少系统延迟。第三级流水线进行向量的点乘运算,作用是指示支持向量的类别,对上级处理得到的向量与分组指示向量AHM×1进行点乘,得到最终分类计算结果。分类计算部分时钟频率为100 MHz,经过三级流水线处理,可在0.5 ms内完成分类计算。与传统线性实现方式相比,三级并行结构具有更快的处理速度,所用FPGA硬件资源更少。
系统硬件采用模拟电路与数字电路相结合的方式,主板如图8所示。
图8 系统主板Figure 8 System board
将本系统和市面上某品牌进行对比测试,系统测试场景分为有电磁干扰场景和无电磁干扰场景,每个场景测试3 000帧,测试标签包括软标签和硬标签。最远距离测试条件为单发射天线、单接收天线,测试结果如表1所示,结果标准差如表2所示。系统识别率测试条件为双发射天线、双接收天线。将电子标签从天线中间抛过,模拟实际工作情况,记录系统报警次数,测试结果如表3所示。
表1 系统最远检测距离对比Table 1 Comparison of the farthest detection distance m
表2 最远检测距离结果标准差Table 2 Standard deviation of the farthest detection distance result cm
表3 系统正确识别率对比
表1、表2结果显示,本系统在有电磁干扰环境和无电磁干扰环境下均有着更远的检测距离,并且可以保持较高的稳定性。表3结果显示,本系统有着更高的识别率。无干扰环境下,硬标签最远检测距离可达1.55 m,识别率最高可达99.7%;软标签最远检测距离可达0.9 m,识别率最高可达99.4%。有干扰环境下,硬标签最远检测距离可达1.45 m,识别率最高可达99.4%;软标签最远检测距离可达0.75 m,识别率最高可达98.9%。在3种有电磁干扰场景下,硬标签最低识别率为99%,软标签最低识别率为98.7%。相比于无电磁干扰场景,系统性能虽然有所降低,但依然可以保持较高的稳定性。硬标签制作工艺优于软标签,相同距离下硬标签信号强度更大,因此,系统在使用硬标签时有着更远的检测距离、更高的识别率。本系统在有电磁干扰场景下测试性能有所下降,分析原因主要有:第一,环境中存在随机噪声,此类噪声无法完全消除,只能从硬件设计上尽量减少此类干扰;第二,SVM算法训练集数据库有限,得到的模型有一定的局限性;第三,为了节省硬件空间,对SVM模型进行了压缩,导致性能有所下降。
针对传统算法在强电磁干扰情况下性能急剧下降的问题,提出了一种基于SVM的声磁标签检测系统,算法实现平台为FPGA芯片。测试结果显示:无干扰环境下,硬标签最远检测距离可达1.55 m,最远检测距离结果标准差为3.9 cm,识别率最高可达99.7%;软标签最远检测距离可达0.9 m,最远检测距离结果标准差为2.8 cm,识别率最高可达99.4%。有干扰环境下,硬标签最远检测距离可达1.45 m,最远检测距离结果标准差最大为6.2 cm,识别率最高可达99.4%;软标签最远检测距离可达0.75 m,最远检测距离结果标准差最大为4.9 cm,识别率最高可达98.9%。与传统设备相比,本系统有着更远的检测距离,更低的误报率和更高的识别率,具有良好的抗干扰能力以及更加稳定的性能,为复杂电磁环境下EAS系统稳定运行提供了一种解决方案。
为了进一步提升系统性能,未来研究工作主要围绕以下方面进行:第一,扩充工作场景数据库,收集其他典型场景下的实时数据,增强系统适用性和抗干扰能力;第二,优化SVM算法分类模型,进一步提升分类效果,降低算法复杂度;第三,未来市场逐渐向物联网方向发展,为EAS系统增加物联网模块可以更加方便采集各种场景下的实时数据,客户也可以进行联网查询设备状态,更改参数,远程更新系统等操作。