
Citation: | Yu XU, Yu LIN, Haigang YANG. Optimization Algorithm of Dual-port Memory Mapping on FPGA[J]. Journal of Electronics & Information Technology, 2020, 42(10): 2549-2556. doi: 10.11999/JEIT190077 |
目标跟踪是计算机视觉领域中的基础研究课题,它是视频分析中的一项重要技术,其目标是利用视频数据估计目标的状态。目标跟踪在视频监控、车辆导航、人机交互、智能交通、运动分析和姿态估计等民用领域,以及视觉制导、目标定位和火力控制等军事领域均有重要的应用价值。近年来,虽然目标跟踪有了较大发展,但是其仍然面临复杂背景、目标变化和快速运动等诸多难题,目前仍然是计算机视觉领域中研究的热点问题。
受到结构化SVM在目标检测中应用的启发,Hare等人[1]于2011年在ICCV上首次提出基于结构化SVM的目标跟踪方法Struck,2015年该文的扩展[2]发表在顶级国际期刊IEEE Transactions on Pattern Analysis and Machine Intelligence上。Struck把目标跟踪看作结构化学习问题,避免了传统判别式跟踪的中间分类环节,显著提高了目标跟踪的性能。为了适应目标的变化同时又不丢失目标的时间上下文信息,Yao等人[3]于2012年提出一种加权在线结构化SVM跟踪方法,进一步提升了结构化SVM跟踪的性能。为了提高遮挡与形变目标的跟踪性能,2013年,Yao等人[4]又以在线算法Pegasos为基础,提出一种在线结构化SVM用于目标跟踪。为了解决目标跟踪中存在的模型漂移问题,2012年Bai等人[5]提出一种在线拉普拉斯排序SVM跟踪。同样是为了应对模型漂移问题,Zhang等人[6]于2014年提出了MEEM跟踪,该方法以在线SVM作为基础跟踪建立专家组跟踪目标,取得了较好的效果。2015年Hong等人[7]利用在线SVM指导反向传播特定目标的CNN特征到输入层,进而建立特定目标的显著图跟踪目标,该方法建立的显著图保持了目标的空间结构,增强了目标跟踪的鲁棒性。2016年Ning等人[8]基于对偶坐标下降原理提出一种对偶线性结构化SVM目标跟踪方法,该方法保证了目标跟踪的鲁棒性,同时又提高了目标跟踪的速度。2017年Wang等人[9]提出LMCF跟踪,该方法利用相关滤波对基于结构化SVM的目标跟踪进行了加速。2018年Ji等人[10]采用了与LMCF跟踪类似的思想来加速基于目标部件的结构化SVM跟踪。2019年Zuo等人[11]提出一种基于离散傅里叶变换的交替优化方法求解相关滤波器,并设计了多通道支撑相关滤波器跟踪目标,进一步提升了基于SVM的目标跟踪的性能。
综上所述,基于结构化SVM的目标跟踪方法具有较优的跟踪性能,受到了广泛的关注,但是现有方法存在正样本和负样本不平衡的问题。针对基于结构化SVM的目标跟踪中存在的负样本和正样本不平衡的问题,本文提出一种代价敏感结构化SVM模型,基于对偶坐标优化原理设计了该模型的求解算法,并利用该算法实现了单尺度目标跟踪算法(Dual Liner Cost Sensitive Structured Support Machine, DLCS-SSVM)和多尺度目标跟踪方法(Scale Dual Liner Cost Sensitive Structured Support Machine, Scale-DLCS-SSVM)。利用OTB100数据集[12]和VOT2019数据集[13]对提出的目标跟踪方法进行了实验验证,并与现有的先进目标跟踪方法进行了比较。实验结果表明,本文提出的目标跟踪方法达到了预期的跟踪效果,与现有目标跟踪方法相比具有较好的性能。
为了解决SVM中存在的正负样本不平衡的问题,文献[14]提出一种代价敏感支持向量机。假设二分类训练数据集是
argminw,b,ξi12‖w‖2+C(C1∑{i|yi=1}ξi+1κ∑{i|yi=−1}ξi)∀ξi≥0s.t.(wTxi+b)≥1−ξi;yi=+1(wTxi+b)≤−κ+ξi;yi=−1 | (1) |
其中
κ=12C−1−1,0<κ≤1≤1κ≤C1 | (2) |
w和b分别是SVM分类器的法向量和偏置,ξi是松弛变量,C, C1, C–1和κ是正则化参数。
受到结构化SVM在目标检测中应用的启发,2011年Hare等人[1]提出了基于结构化SVM的目标跟踪Struck。Struck把目标跟踪看作结构化学习问题,避免了传统判别式跟踪的中间分类环节,显著提高了目标跟踪的性能。在利用结构化学习器进行预测时,其目标是预测给定样本x∈Rd的结构化输出y∈Y,其中Y可以是任意结构输出空间。在基于结构化SVM的目标跟踪中,Y是矩形框空间,它的任一元素用(x,y,w,h)表示,其中(x,y)表示矩形框的中心位置,w和h分别表示矩形框的宽和高。假设训练数据为
y∗=argmaxy∈Yf(x,y,w) | (3) |
其中,
minw12‖w‖2+C∑i=1ξis.t. ∀i,ξi≥0∀i,∀y≠yi:⟨w,Ψi(y)⟩≥L(yi,y)−ξi | (4) |
其中,
L(yi,y)=1−s(yi,y) | (5) |
其中
s(yi,y)=yi∩yyi∪y | (6) |
现有基于结构化SVM的目标跟踪方法存在正样本和负样本不平衡的问题。如图1所示,与目标重叠区域较大的训练样本称为正样本,与目标重叠区域较小的训练样本称为负样本。目标跟踪需要在当前目标周围区域中进行采样更新表观模型。从图1可以看出,在采样得到的样本中,负样本的数量远大于正样本的数量,即负样本与正样本严重不平衡。其中,黑色实线是非代价敏感结构化SVM的超平面,红色虚线是代价敏感结构化SVM的超平面。当训练数据集不平衡时,SVM分类器对少数类的识别率较低,因此该问题制约了目标跟踪的性能。为了解决正样本和负样本不平衡对基于结构化SVM目标跟踪方法性能的影响,本文将文献[14]的思想引入到文献[1]提出的结构化SVM中,设计一种基于代价敏感的结构化SVM模型,描述为
minw12‖w‖2+C(C+∑y≠yi,L(yi,y)<mξi+1κ∑y≠yi,L(yi,y)≥mξi)∀i,ξi≥0s.t.∀i,∀y≠yi,L(yi,y)<m⟨w,Ψi(y)⟩≥L(yi,y)−ξi∀i,∀y≠yi,L(yi,y)≥m⟨w,Ψi(y)⟩≥κL(yi,y)−ξi | (7) |
其中,
κ=12C−−1,0<κ≤1≤1κ≤C+ | (8) |
为了求解本文提出的代价敏感结构化支持向量机式(7),使用拉格朗日乘子法可得到其对偶问题,为此引入拉格朗日乘子
∀i,∀y≠yi:αyi≥0,βyi≥0 | (9) |
则式(7)的拉格朗日函数为
L(w,ξ,α,β)=12‖w‖2+C(C+∑i,y≠yiL(yi,y)<mξi+1κ∑i,y≠yiL(yi,y)≥mξi)−∑i,y≠yiL(yi,y)<mαyi(⟨w,Ψi(y)⟩+ξi−L(yi,y))−∑i,y≠yiL(yi,y)≥mαyi(⟨w,Ψi(y)⟩+ξi−κL(yi,y))−∑i,y≠yiβyiξi | (10) |
将拉格朗日函数
w=∑i,y≠yiαyiΨi(y) | (11) |
∀i,y≠yi,L(yi,y)<m,CC+−αyi−βyi=0 | (12) |
∀i,y≠yi,L(yi,y)≥m,Cκ−αyi−βyi=0 | (13) |
将式(11)—式(13)代入式(10),可以将
minα≥0L(α)=12‖∑i,y≠yiαyiΨi(y)‖2−∑i,y≠yi,L(yi,y)<mαyiL(yi,y)−κ∑i,y≠yi,L(yi,y)≥mαyiL(yi,y) |
s.t.∀i,y≠yi,L(yi,y)<m,αyi≥0,∑yαyi≤CC+ |
∀i,y≠yi,L(yi,y)≥m,αyi≥0,∑yαyi≤Cκ |
本文模型采用线性核,并基于对偶坐标优化原理[15]设计模型式(14)的求解算法。由文献[15]可知,对偶坐标优化(Dual Coordinate Descent,DCD)算法每次利用式(15)从训练集中选择一个训练样本k,然后利用式(16)更新其对偶标量
y∗k=argmaxy∈YkL(y,yk)−wTΨk(y) | (15) |
αy∗(new)k=αy∗(old)k+Δαy∗k | (16) |
解决问题的关键是如何求得式(16)中的
L(Δαy∗k)=12(αy∗(old)k+Δαy∗k)2‖Ψk(y∗)‖2+Δαy∗k∑i≠ky≠yiy≠y∗αyiΨi(y)Ψk(y)−Δαy∗kL(yk,y∗)|L(yk,yi)<m−κΔαy∗kL(yk,y∗)|L(yk,yi)≥m+c | (17) |
其中,
∀i,y≠yi,L(yi,y)<m,Δαy∗k=L(yk,y∗)−wTΨk(y∗)‖Ψk(y∗)‖2 | (18) |
∀i,y≠yi,L(yi,y)≥m,Δαy∗k=κL(yk,y∗)−wTΨk(y∗)‖Ψk(y∗)‖2 | (19) |
根据约束条件式(14b)可得
当
[−αy∗(old)k,CC+−∑yαyk] | (20) |
根据约束条件式14(c)可得
当
[−αy∗(old)k,Cκ−∑yαyk] | (21) |
利用式(18)—式(21)可以得到
w(new)=w(old)+Δαy∗kΨk(y∗) | (22) |
在基于结构化SVM的目标跟踪中,随着时间的推移,结构化SVM中的支持向量的数量不断增加。为了保证目标跟踪的效率,需要固定支持向量的数目。为此,当结构化SVM中模式数超出预算时,根据式(23)选择一个支持向量删除,本文提出的代价敏感结构化SVM采用这一策略。
α∗=argminαyi∈α‖αyiΨi(xi,y)‖2 | (23) |
综上所述,本文提出的代价敏感结构化SVM学习算法如算法1所示。
算法1 代价敏感结构化SVM学习算法
输入:t-1时刻代价敏感结构化SVM的参数
输出:t时刻代价敏感结构化SVM的参数
步骤1
For j=1:n1
步骤2 计算模式集
步骤3 令
步骤4 用式(15),从模式
步骤5 用式(16),更新
步骤6 用式(22),更新
步骤7 如果模式集
步骤8 计算模式集
For p=1:n2
令
步骤9 用式(15),从模式
步骤10 用式(16),更新
步骤11 用式(22),更新
End For
End For
步骤12 令
说明:算法1中n1和n2是外部循环和内循环的迭代次数,本文分别取5和10。
本文使用网格搜索生成候选样本,搜索区域的大小由跟踪目标的大小自适应确定。样本的大小设定为20×20。在得到代价敏感结构化SVM的超平面w后,利用内积运算计算候选样本的得分,根据最大得分准则式(24)估计目标的状态。
y∗=argmaxy∈YwTΨt(y) | (24) |
对于目标特征,本文选择目标的Lab颜色和局部秩变换(Local Rank Transformation, LRT)特征,LRT特征的计算方法同文献[16],这里不再详述。基于上面的分析,本文提出的代价敏感结构化SVM目标跟踪方法描述如下。
方法1 代价敏感结构化SVM目标跟踪方法
输入:序列图像
输出:每一帧的跟踪结果
步骤1 根据当前目标状态
步骤2 初始
步骤3 调用算法1初始化t=1时刻DLCS_SSVM的参数
For (t=2:T),
For (k=1: length(Sp))
It,k=Scale(It,Sp[k]);
步骤4 利用滑动窗口在It,k上的搜索区域中采样测试样本
步骤5 利用最大化得分准则估计目标当前状态:
End For
st=max(smt,k),m∈Sp |
步骤6 根据当前目标状态
步骤7 调用算法1更新DLCS_SSVM的
End For
方法1中It,k=Scale(It, Sp[k])的功能是利用尺度参数Sp[k]对图像It进行缩放,结果赋予It,k。对于单尺度目标跟踪,尺度参数Sp设定为{1},即可完成单尺度目标跟踪,称为单尺度代价敏感结构化SVM目标跟踪方法(简称DLCS_SSVM)。对于多尺度目标跟踪,尺度参数Sp={Sp[1], Sp[2], ···, Sp[n]},本文Sp={1, 0.995, 1.005},即在3种不同尺度图像上分别跟踪目标,以最大得分作为跟踪结果,即可完成多尺度目标跟踪,称为多尺度代价敏感结构化SVM目标跟踪(Scale-DLCS_SSVM)。
在SYS-7048GR-TR台式机(CPU型号为Intel Xeon(R) ES-2630v4@2.20 GHz×20,内存为64 GB,GPU为RTX2080Ti 11 GB)上使用Matlab和OpenCV实现了本文提出的跟踪方法,其中Matlab版本为R2017a, OpenCV版本为2.4.8。一方面利用OTB100数据集[12]对提出的目标跟踪方法进行实验验证。评价指标为OPE, TRE和SRE[12]。另一方面利用VOT2019数据集[13]对提出的目标跟踪方法进行实验验证。评价指标为EAO, Accuracy, Robustness[13]。本文提出的目标跟踪方法中有一些需要设置参数,实验中这些参数固定不变。惩罚系数C的值为100,支持向量的预算设为100,C+的值设为2,κ的值设为0.67,正样本与负样本的阈值m设为0.5。多尺度估计参数设置为Scale={1, 0.995, 1.005}。
表1给出了本文方法DLCS_SSVM, Scale-DLCS_SSVM, DLSSVM[8], Scale-DLSSVM[8], Struck[1]和LMCF[9]等6种基于结构化SVM跟踪器在OTB100数据集上的OPE性能指标比较结果。从表1可以看出,在精度和成功率两项指标上,本文提出的方法Scale-DLCS_SSVM均明显优于其它跟踪器。在跟踪速度上,本文选择一个长视频liquor(1741帧)[12]进行评估。由表1中的比较结果可以看出:本文方法与DLSSVM[8]方法相比不仅在性能上有明显提升,而且对目标跟踪速度几乎没有影响。
由表2与其他高性能跟踪器跟踪速度比较可知,相较于深度学习目标跟踪方法,如DeepLMCF[9]和DeepSRDCF[17],本文方法速度明显更快。相较于相关滤波目标跟踪方法,如TADT[18],本文单尺度方法速度与其速度相当,能够达到实时的跟踪效果。
在OTB100数据集上,将本文提出的目标跟踪方法与4种优秀的目标跟踪方法进行比较。4种方法分别是基于深度学习的DeepSRDCF[17]、基于相关滤波的Staple[19]、基于结构化SVM的多尺度跟踪Scale-DLSSVM[8]及基于结构化SVM与相关滤波的LMCF[9]。图2为6种跟踪器在OTB100数据集上取效果前5名的OPE, TRE和SRE性能指标曲线。从图2中的结果可以看出,本文提出的Scale-DLCS_SSVM与DLCS_SSVM跟踪器在准确度和成功率两个指标上相比Scale-DLSSVM跟踪方法都有明显的提高。且在OPE评价指标上Scale-DLCS_SSVM相比DeepSRDCF[17]在成功率上高1.3%,在TRE评价指标上Scale-DLCS_SSVM相比DeepSRDCF[17]在成功率上高1.5%,在SRE评价指标上Scale-DLCS_SSVM相比DeepSRDCF[17]在成功率上高1.0%。
如表3所示,本文选取近两年高性能的深度学习与相关滤波跟踪方法在VOT2019数据集上进行比较。由表3可知,本文多尺度方法在单个指标上略低于SiamMask,但是相较于其他高性能方法来说在各个性能上有着优势。
从上述所有实验结果可以看出:本文提出的目标跟踪方法达到了预期的跟踪效果,其跟踪性能优于现有基于结构化SVM的目标跟踪方法;与相关滤波目标跟踪方法相比,本文方法跟踪精度较高;与深度学习目标跟踪方法相比,本文方法具有速度优势。
本文分析了基于结构化SVM的目标跟踪在进行训练时存在正样本和负样本不平衡的问题。针对该问题,基于代价敏感SVM和结构化SVM提出一种代价敏感结构化SVM模型,并利用对偶坐标下降优化设计了代价敏感结构化SVM算法。最后,利用提出的代价敏感结构化SVM实现了一种多尺度目标跟踪方法。利用OTB100数据集和VOT2019数据集分别对提出的目标跟踪方法进行了实验验证和分析。实验结果表明,与相关滤波目标跟踪中的一些优秀方法相比,本文方法跟踪精度较高,与深度目标跟踪中的一些优秀方法相比,本文方法具有速度优势。在目标跟踪中,由于跟踪误差会引起模型漂移,进而导致跟踪失败,如何利用结构化SVM解决这一问题是进一步研究的方向。
TRIMBERGER S M. Three ages of FPGAs: A retrospective on the first thirty years of FPGA technology[J]. Proceedings of the IEEE, 2015, 103(3): 318–331. doi: 10.1109/JPROC.2015.2392104
|
KUON I and ROSE J. Measuring the gap between FPGAs and ASICs[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2007, 26(2): 203–215. doi: 10.1109/TCAD.2006.884574
|
WILTON S J E. Architectures and algorithms for Field-Programmable Gate Arrays with embedded memory[D]. [Ph. D. dissertation], University of Toronto, 1997.
|
TESSIER R, BETZ V, NETO D, et al. Power-efficient RAM mapping algorithms for FPGA embedded memory blocks[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2007, 26(2): 278–290. doi: 10.1109/TCAD.2006.887924
|
HSU T Y and WANG Tingchi. A generalized network flow based algorithm for power-aware FPGA memory mapping[C]. The 45th ACM/IEEE Design Automation Conference, Anaheim, USA, 2008: 30–33.
|
DU Fangqing, LIN C Y, CUI Xiuhai, et al. Timing-constrained minimum area/power FPGA memory mapping[C]. The 23rd International Conference on Field programmable Logic and Applications, Porto, Portugal, 2013: 1–4.
|
HO W K C and WILTON S J E. Logical-to-physical memory mapping for FPGAs with dual-port embedded arrays[C]. The 9th International Workshop on Field Programmable Logic and Applications, Glasgow, UK, 1999: 111–123.
|
CONG J and YAN K. Synthesis for FPGAs with embedded memory blocks[C]. 2000 ACM/SIGDA Eighth International Symposium on Field Programmable Gate Arrays, Monterey, USA, 2000: 75–82.
|
MA Yufei, CAO Yu, VRUDHULA S, et al. An automatic RTL compiler for high-throughput FPGA implementation of diverse deep convolutional neural networks[C]. The 27th International Conference on Field Programmable Logic and Applications (FPL), Ghent, Belgium, 2017: 1–8.
|
GUAN Yijin, LIANG Hao, XU Ningyi, et al. FP-DNN: An automated framework for mapping deep neural networks onto FPGAs with RTL-HLS hybrid templates[C]. The 25th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Napa, USA, 2017: 152–159.
|
LIANG Shuang, YIN Shouyi, LIU Leibo, et al. FP-BNN: Binarized neural network on FPGA[J]. Neurocomputing, 2018, 275: 1072–1086. doi: 10.1016/j.neucom.2017.09.046
|
GUO Kaiyuan, SUI Lingzhi, QIU Jiantao, et al. Angel-eye: A complete design flow for mapping CNN onto embedded FPGA[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018, 37(1): 35–47. doi: 10.1109/TCAD.2017.2705069
|
MA Yufei, SUDA N, CAO Yu, et al. ALAMO: FPGA acceleration of deep learning algorithms with a modularized RTL compiler[J]. Integration, 2018, 62: 14–23. doi: 10.1016/j.vlsi.2017.12.009
|
Xilinx. Virtex-4 FPGA user guide[EB/OL]. https://china.xilinx.com/support/documentation/user_guides/ug070.pdf, 2008.
|
Xilinx. LogiCORE IP product guide block memory generator v8.4[EB/OL]. https://china.xilinx.com/support/documentation/ip_documentation/blk_mem_gen/v8_4/pg058-blk-mem-gen.pdf, 2019.
|