相关滤波论文

2023-11-05

MOSSE(2010)

Visual Object Tracking using Adaptive Correlation Filters (PDF)

Minimum Output Sum of Squared Error(MOSSE)是第一篇将correlation filter(CF)引入object tracking的论文,是CSK和KCF/DCF等算法的基础。首先我们来看一下CF的概念,

CF(相关滤波)

相关一般分为自相关和互相关,这里我们一般指的是互相关,假设我们有两个信号f和g

(f\bigotimes g)(\tau)\overset{def}{=}\int_{ - \infty }^{ + \infty } {f^*(t)g(t+\tau)dt}

(f\bigotimes g)(n)\overset{def}{=}\sum _{ - \infty }^{ + \infty } {f^*[m]g(m+n)}

  • f^*表示f的共轭,互相关的直接解释就是衡量两个信号在某个时刻\tau时的相似程度。

假设f和g的形状一样,那么一定是f和g对齐的时候二者的相似程度最大,此时达到最大的输出响应,如下图所示:

由上图可知,卷积计算和相关计算的关系

  • Two-dimensional correlation is equivalent to two-dimensional convolution with the filter matrix rotated 180 degrees.

将CF应用在tracking方面最基本的思想就是,设计一个滤波模板,使得该模板与跟踪目标的ROI做卷积运算,得到最大的输出响应。

如上图所示, 将该思想用数学语言描述为:

g=f\bigotimes h

其中,

  • g表示输出响应
  • f表示输入原始图片的灰度图像
  • h表示滤波模板

在该tracking模型中,我们只需要通过不断的修正滤波模板hh,得到最大的输出响应即可。

在该算法中用卷积运算进行输出响应的计算,可以用快速傅立叶变换(FFT)进行加速计算,将空域里的卷积变为了频域里的点乘。具体计算公式如下:

F(g)=F(f\bigotimes g)=F(f)\cdot F(h)^*

简写为G=F\cdot H^*, 从而得到滤波模板的频域表示:

H^*=\frac{G}{F}

在跟踪的光照等其他因素的影响下,为了提高滤波模板的鲁棒性,在文章中作者对GroundTruth进行随机仿射变换得到一系列的训练样本fifi,gigi是由高斯函数产生的并且其峰值位置是在fifi的中心,我们同时考虑mm帧作为参考,这就是MOSSE模型的思想,最终该模型的目标函数表示为:

min_{H^*}=\sum_{i=1}^m\left | H^*F_i-G_i \right |^2

我们需要将目标函数最小化,对上式在频域进行求导(复数域不同于实数域),得到:

H=\frac{\sum_{i=1}^m F_i\bigodot G_i^*}{\sum_{i=1}^mF_i\bigodot F_i^*}

在跟踪过程中,我们只需要将以上模板与当前帧与滤波模板做相关操作,在输出响应中找到最大值的位置,该位置就是目标在当前帧中的位置。本文的参数更新的策略为:

H_t=\frac{A_t}{B_t}

A_t=\eta F_t\cdot G_t^*+(1-\eta )A_{t-1}

B_t=\eta F_t\cdot F_t^*+(1-\eta )B_{t-1}

其中,ηη是一个超参数,为经验值。

缺点:

  • 输入的特征为单通道灰度图像,特征表达能力有限

  • 没有尺度更新,对于尺度变化的跟踪目标不敏感

CSK(2012)

Exploiting the Circulant Structure of Tracking-by-detection with Kernels(PDF)

在跟踪算法当中最主要的部分是分类器和特征,CSK最大亮点就是提出了利用循环移位的方法进行稠密采样并结合FFT快速的进行分类器的训练。

在基于MOSSE的基础上主要有以下几点改进:

  • 通过密集采样(Dense Sampling)将整张图片的特征利用起来,并不是只是利用每个候选框的局部特征

  • 引入循环矩阵实现了密集采样,从而实现了整张图片特征的提取

  • 在MOSSE中通过训练滤波模板得到一个线性回归模型,CSK中通过引入核函数的方式将分类器变为非线性回归模型,解决了低维线性不可分或者非线性可分的情况,从而使得分类器在丰富的高维特征空间中起作用。(核函数的本质就是通过映射关系将特征从低维空间映射到高维空间,从而将低维空间中的不可分变为在高维空间中的可分)。

引入核方法后的数学模型的数学表达为:

f(z)=\omega ^T\phi (z)=\alpha ^T\phi (X)\phi (z)

该模型最终要确定的系数矩阵ww,就像MOSSE中最终要确定滤波模板HH, 在求f(z)f(z)的过程中我们首先对输入用核函数ϕ(x)ϕ(x)进行映射,在核方法中,我们一般不知道非线性映射函数ϕ(x)ϕ(x)的具体形式,一般只是刻画在核空间的核矩阵Kernel MatrixKernel Matrix,将原始输入通过核矩阵映射到核空间, 其定义如下:

K_{ij}=<\phi (x),{\phi(x)}'>=\kappa <x,x'>

  • K表示核空间的核矩阵

根据Representer Theorem定理,参数矩阵可以表示为:

w=\sum _i\alpha _i\phi (x_i)

其中,带有核函数的最小二乘法拥有封闭解:

\alpha =(K+\lambda I)^{-1}y

这样我们就得到了模型参数ww的解。

下面的公式是一个典型的加入正则项的最小二乘法(RLS:Regularized Least Squares)的目标函数:

  • L(yi,f(xi))为Loss Function ,λ为正则化系数

Circulant matrices(循环矩阵)与Kernel Matrix(核函数矩阵)的循环性

由上图可知,一维向量的循环移位的到一个循环矩阵,具体效果如下图所示:

对于二维图像而言,对于目标区域的循环移位相当于采样窗口的位移,如下图所示,对于目标图像进行不同次数的循环后得到的位移图,

如下图所示,在CSK中训练样本是由循环移位得到的,训练标签是由高斯函数产生的连续值,本质上关滤波是回归模型而不是分类模型,

  • 原始样本是跟踪框加1~1.5倍padding得到的图像块,再乘一个余弦窗(为了减轻由于边界移位导致图像不光滑),训练样本集是原始样本通过循环移位产生,原始图像中心(红点)移位后对应高斯图位置的值就是这个移位样本的标签(蓝点)

具体的跟踪过程:

  • 首先使用红色虚线框确定了跟踪目标,,然后红色实线框就是使用了padding的图像块,其他的框就是将padding之后的图像块循环移位之后得到的训练样本

  • 由这些训练样本训练出一个分类器,这是左图完成的工作

  • 如右图所示,当下一帧图像读入之后,首先在预测区域内(红色实线框内)进行区域内采样,然后对该采样进行循环移位得到周围的候选区域框,使用分类器对这些候选框计算响应,显然这时候白色框响应最大,因为和前一帧中的红色实线框一样,最后通过白色框的相对移位就能推测目标的位移了

为什么CSK会如此的快速? 利用循环矩阵的性质进行加速

首先我们来看一下线性回归部分训练提速(RLS),线性回归的最小二乘法的解为:

w=(X^HX+\lambda I)^{-1}X^Hy

根据循环矩阵的性质,所有的循环矩阵都可以通过离散傅里叶变换实现对角化,并且可以由其生成向量表示,将循环矩阵的相乘转变为向量的相乘:

X^HX=F\cdot diag(\hat{x}\bigodot \hat{x}^*)\cdot F^H=C(F^{-1}(\hat{x}\bigodot \hat{x}^*))

这样就可以使用向量的点积运算取代矩阵运算,特别是求逆运算,大大提高了计算速度,两个方阵相乘的原始的计算量为:O(K^3), 转化后的计算量为:反向傅里叶变换和向量的点乘 Klog(K)+K。

在核方法方面的提速,前面我们提到,在RLS的基础上,我们引入了核函数方法,最后将求解ww的问题转化为求解αα的问题,同时在某些特定的条件(K is a unitarily invariant kernel,Particular examples are the polynomial and Gaussian kernels.)下,Kernel Matrix也是循环矩阵,这样我们依然可以像在线性回归部分一样将核矩阵用向量表示,通过向量的计算减少运算量进而提高性能。

缺点:

  • 采用单通道的灰度特征,特征表达能力有限

  • 引入循环卷积导致产生边际效应

  • 没有尺度更新,对尺度变化不敏感

KCF/DCF(2014)

High-Speed Tracking with Kernelized Correlation Filters(PDF)

CSK遗留了尺度变化、输入为灰度图片和循环矩阵产生的边际效应等问题,KCF、DCF算法在多通道特征以及核方法上做了优化。

  • CSK的输入的是单通道的灰度图像,本篇论文中输入的为多通道特征图像,特征图像可以为彩色特征也可以是Hog特征,由于卷积在频域是点乘求和,所以将不同通道的特征向量连接在一起成为一个特征向量即可

  • 输入特征为Hog特征,当核函数为高斯核时候,称为KCF;当核函数为线性核时候,称为DCF,linear-kernel的DCF更简单速度更快,以DCF为基准,再来看加了kernel-trick的KCF,mean precision仅提高了0.4%,而FPS下降了41%,

采用高斯核时的解为:

k^{xx'}=exp(-\frac{1}{\sigma^2}(\left \| x \right \|^2+\left \| x' \right \|^2-2F^{-1}(\sum _c\hat{x_c}^*\bigodot \hat{x_c}')))

采用线性核时的解为:

k^{xx'}=F{-1}(\sum _c\hat{x_c}^*\bigodot \hat{x_c}')

缺点:

  • KCF引入高斯核方法之后,速度下降了46.46%,性能仅提高了0.21%

  • 对尺度变化不敏感

CN (2014)

Adaptive Color Attributes for Real-time Visual Tracking(PDF)

CSK, KCF/DCF和CN,区别主要在于有没有Kernel trick和用什么特征(灰度像素,fHOG,Color Names),在KCF/DCF从算法层面进行了改进之后,CN则是在特征方面进行了优化,主要改进点如下:

  • 将RGB的3通道图像投影到11个颜色通道,Color Attributes把颜色分为11类,就是将RGB三种颜色细化为11种基本颜色(black,blue,brown,grey,green,orange,pink,purple,red,white,yellow)

  • 特征降维:自适应指的是实时的选择比较显著的颜色,这个选择的过程是一种类似PCA(主成分分析)中降维的思想,将11维特征降为2维从而去除了Color Name中的冗余信息,使得对目标的外观描述更加精确和鲁棒

  • 在分类器的训练中,在CSK算法的代价函数的基础,在每一帧求Loss值时引入一个固定的权值βjβj,使得分类器的训练和更新更加准确和鲁棒

通过充分的利用颜色特征和梯度特征,KCF、DCF和CN在对光照变化,遮挡,非刚性形变,运动模糊,背景杂乱和旋转等视频均能跟踪良好

下面是HOG特征和8个CN特征通道可视化的图像:

  • HOG是梯度特征,而CN是颜色特征,两者可以互补,HOG+CN在近两年的跟踪算法中成为了人工特征提取的标配

缺点:

  • 对尺度变化不敏感

  • 对于快速颜色变化不敏感

DAT(2015)

In Defense of Color-Based Model-Free Tracking(PDF)

将原始 RGB 图像映射到 CN 空间,可以有效提高颜色表示的鲁棒性,却无法解决背景相似区域的干扰,当我们所跟踪的目标周围具有非常相似的目标干扰时,很容易产生目标漂移的问题,本篇论文最主要的创新点在于基于颜色直方图的统计特征利用贝叶斯分类器分别建立了Object Surrounding 模型和Object distractor 模型,并且最终通过将两个模型的输出结果线性加权达到抑制目标漂移的目的。

 

算法的主要思想是统计前景目标和背景区域的颜色直方图并归一化,分别建立前景和背景的概率模型,以后每帧线性插值更新颜色直方图。在检测时对检测区域每个像素,根据其颜色值贝叶斯模型判别这个像素属于前景的概率,得到像素级颜色概率图,在加上高斯权值函数抑制边缘相似颜色的物体,就能得到跟踪目标的区域。

Object Surrounding 模型:

  • O为目标所在的矩形区域

  • Ω∈I,其中II为整个图像

  • S为目标区域的Surrounding Region

  • bx为在I中x处的颜色值

我们用H_\Omega^I(b)表示非归一化颜色直方图第b个bin,通过颜色直方图的特征统计来估计概率,

P(b_x|x\in O)\approx \frac{H_O^I(b_x)}{\left | O \right |}

P(b_x|x\in S)\approx \frac{H_S^I(b_x)}{\left | S \right |}

P(b\in O)\approx \frac{\left | O \right |}{\left | O \right |+\left | S \right |}

将原公式化简为:

Object distractor 模型:

最后将两个模型的输出结果合并:

P(x\in O|b_x)=\lambda _pP(x\in O|O,D,b_x)+(1-\lambda _p)P(x\in O|O,S,b_x)

  • λp是预先定义的超参数

缺点:

  • 对于颜色快速变化不敏感

DSST&fDSST(2016)

Discriminative Scale Space Tracker(PDF)-Project Page

Accurate Scale Estimation for Robust Visual Tracking(PDF)

为了解决前面算法的尺度变化的问题,在DSST中用了位置滤波器(Translation Filter)和尺度滤波器(Scale Filter),分别用于跟踪目标的定位和评估尺度变化,两个滤波器的基本原理相同,由于这两个滤波器是相对独立的,从而可以用不同的特征进行训练和测试。

  • 如图(a)所示,在训练位置滤波器的时候,通过跟踪目标周围区域提取d维的多通道颜色特征(d-1维的 hog特征+1维的灰度特征)得到d个 Patch
  • 如图(b)所示,在训练尺度滤波器的时候,通过对目标区域进行不同尺度的缩放采样,构成了一个层数为S的金字塔,对应在每层金字塔上,将 Patch 图像缩放成统一尺寸提取d维Hog特征,以该特征向量作为训练样本得到相关滤波器HH用来预测输出尺度

两种滤波器的求解过程:

其中位置滤波器的求解是和前面算法一样的,下面主要讲一下1维尺度空间滤波器的跟踪过程:

  1. 在新的一帧中,首先利用2维位置滤波器确定跟踪目标的最新位置,注意此时的目标尺度依然是前一帧中的目标尺度

  2. 再利用1维的尺度滤波器进行目标样本的尺度选择,用于目标尺度的选择样本为:

    a^nP\times a^nR,n\in {\left \lfloor -\frac{S-1}{2} \right\rfloor,...,\left \lfloor \frac{S-1}{2}\right \rfloor}

    其中,P和R分别表示在前一帧中目标的宽和高,S=33为尺度的个数,a=1.02表示尺度因子,尺度系数为大于1的指数函数,33种尺度不是线性增长的,实现了对较大的尺度进行粗检测,对较小的尺度进行细检测

  3. 在提取的33种样本中计算出最大的尺度响应输出从而得到目标准确的尺度

fDSST:

在基于DSST的基础上,为了减少计算代价主要改进思路有两点:

  • 相关性插值(sub-grid interpolation of correlation scores),即仅仅选取17个尺度变化(原来33个),然后用相关性插值的方式扩展为33个尺度变化

  • 通过PCA降维来减少特征维度,利用奇异值分解得到PCA变换矩阵,源代码中将维度最大化压缩从744维到17维,通过降维得到的模型矩阵只有17×17(17个尺度和17特征维度)大小,从而获得了极大加速

缺点:

  • 对于快速形变和遮挡不敏感

  • 循环卷积产生的边际效应

Staple(2016)

Staple: Complementary Learners for Real-Time Tracking(PDF)-Project Page

这篇论文主要从特征结合的角度去优化算法,对于目标检测区域而言,HOG特征是基于cell_size的梯度统计特征,局部鲁棒性较好,但是对全局的形变效果不太好,而颜色直方图特征是不考虑像素的位置的全局特征,这在一定程度上可以减少形变带来的影响,但是又不足以将目标和背景区分开,于是就有了本文特征融合的思路:

  • 将HOG特征和颜色直方图特征进行结合,充分地利用了不同特征的特点去优化算法性能

  • 在利用特征的时候,并不是将两种特征融合去训练一个模型,而是分别独立地使用不同的模型进行训练,最后通过两种模型的得分进行最后结果的融合

如上图所示:

  1. 利用HOG特征进行基于相关滤波算法的训练,然后得到基于HOG特征的输出响应

  2. 利用颜色直方图的统计特征进行基于贝叶斯分类模型的训练,然后得到基于颜色直方图的输出响应

  3. 按照特定的规则将两个模型的输出响应进行线性组合,公式如下:

f(x)=c_{tmpl}f_{tmpl}(x)+c_{hist}f_{hist}(x)

  • tmpl表示template(梯度特征)
  • hist表示histogram(颜色直方图特征)

其中,

f_{tmpl}(x;h)=\sum _{u\in \tau }h[u]^T\phi_x[u]

  • h为滤波模型的参数
  • ϕx为图像梯度特征
  • T∈Z2为二维多通道特征图

f_{hist}(x;\beta )=\beta ^T(\frac{1}{\left | H \right |}\sum _{u\in H}\psi _x[u])

  • β为贝叶斯分类模型的参数
  • ψx为图像的颜色直方图特征
  • H为二维多通道彩色图像

令整个模型的参数为θ=(h,β),则整个Staple算法的数学模型表示为为:

p_t=\arg max_{p\in S_t}f(T(x_t,p);\theta _{t-1})

  • t表示帧索引
  • xt表示第t帧图像,x指代任意一帧图像
  • pt第t帧图像中目标区域的最优矩形,p指代任意一帧图像
  • St第t帧图像中目标对应的所有矩形
  • T(xt,p)可以理解为第tt帧的HOG特征和颜色直方图特征,实际上这两种特征是利用不同的模型分别进行模型优化的

那么整个模型的损失函数为:

\theta _t=\arg min_{\theta \in \Omega }L(\theta ;X_t)+\lambda R(\theta )

  • L(\theta ;X_t)=\sum _{t=1}^Tw_tl(x_t,p_t,\theta )为损失函数,l(x,p,\theta )=cost(p,\arg max_{q\in S}f(T(x,q);\theta ))代表了每帧的损失函数,p表示每帧的GroundTruth
  • X_t=(x_i,p_i)_{i=1}^t=(x_1,p_1),(x_2,p_2),...,(x_t,p_t), 每个样本都包含之前每一帧中目标的位置
  • λR(θ)正则项

这样我们通过最小化损失函数就得到模型的参数θ=(h,β)θ=(h,β), 其中分别优化两个模型:

h_t=\arg min_hL_{tmpl}(h;X_t)+\frac{1}{2}\lambda _{tmpl}\left \| h \right \|^2

\beta _t=\arg min_\beta L_{hist}(\beta ;X_t)+\frac{1}{2}\lambda _{hist}\left \| \beta \right \|^2

缺点:

  • 分别计算两个模型的结果然后进行融合,计算比较复杂

Summary

在整个系列的方法当中无非是从两方面进行优化,一方面是模型的优化,另一方面是特征的优化:

  • MOSSE是单通道灰度特征的相关滤波,

  • CSK在MOSSE的基础上扩展了密集采样(加padding)和kernel-trick

  • KCF在CSK的基础上扩展了多通道梯度的HOG特征

  • CN在CSK的基础上扩展了多通道颜色的Color Names

  • DSST在MOSSE的基础上扩展了尺度滤波器(Scale Filter),fDSST通过降维的方式进行加速计算

  • Staple本质上就是DAT和DSST的模型输出结果进行融合

各个算法对比表:

算法 性能(FPS) 特征表达 尺度变化
MOSSE 615 单通道灰度 No
CSK 362 单通道灰度 No
KCF 172 多通道HOG No
DCF 292 多通道HOG No
CN 152 ColorName特征 No
DAT(非CF) 89.56 颜色直方图 No
DSST 65.2 fHOG特征+单通道灰度 Yes
fDSST 86.1 fHOG特征+多通道灰单 Yes
Staple 121.2 颜色直方图+fHOG Yes

Expectation

在特征的优化上,可以尝试用深度特征代替传统特征(深度特征不同于深度学习方法),比如DeepSRDCF在SRDCF基础上用CNN来提取特征CNN第一层输出作为输入的特征,

深度学习在视频目标跟踪中的应用进展与展望

  • 特定目标的跟踪可以利用先验知识 对目标外观进行建模, 典型代表有手的跟踪、人眼跟 踪、头或脸部跟踪等, 其中手的跟踪在人机交互方面有重要应用, 是未来非接触式交互工具的基础
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相关滤波论文 的相关文章

  • Python+moviepy使用manual_tracking和headblur函数10行代码实现视频人脸追踪打马赛克

    前往老猿Python博文目录 一 背景知识 1 1 headblur简介 追踪人脸打马赛克需要使用headblur函数 调用语法 headblur clip fx fy r zone r blur None 说明 其中参数fx和fy是两个函
  • Object Tracking using OpenCV (C++/Python)(使用OpenCV进行目标跟踪)

    原文链接 xff1a https www cnblogs com annie22wang p 9366610 html 本博客翻译搬运自https www learnopencv com object tracking using open
  • 【论文学习】Robust Tracking against Adversarial Attacks论文学习

    一 知识点补充 OTB中的评价指标 xff08 1 xff09 one pass evaluation xff08 OPE xff09 这是目标追踪领域常用的评估方式 xff0c 只给第一帧ground truth没有随机性的算法只跑一遍就
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|Tracking|1-25】

    在Tracking类中 有一些成员变量和成员函数 下面是它们的简要概述 成员变量 System mpSystem 指向System类对象的指针 用于访问和操作ORB SLAM2系统 FrameDrawer mpFrameDrawer 指向F
  • 随记(2):PP-Tracking工具

    目标跟踪任务意义 需求 xff1a 自动驾驶 智慧城市 安防领域面向车辆 行人 飞行器等快速运行的物体实时跟踪及分析 算法优势 xff1a 单纯的目标检测算法只能输出目标的定位 43 分类 xff0c 无法对移动的目标具体的运动行为及运动特
  • 论文笔记(十九)RGB-D Object Tracking: A Particle Filter Approach on GPU

    RGB D Object Tracking A Particle Filter Approach on GPU 文章概括摘要1 介绍2 贡献3 粒子滤波器4 可能性评估5 实施细节6 实验A 物体模型B 合成序列C 真实序列 7 结论8 鸣
  • 相关滤波论文

    MOSSE 2010 Visual Object Tracking using Adaptive Correlation Filters PDF Minimum Output Sum of Squared Error MOSSE 是第一篇将
  • Kinect SDK用于手指检测?

    我是新加坡南洋理工大学 NTU 的学生 目前正在开发一个使用Kinect SDK的项目 我的问题是 任何人都知道如何使用 Kinect SDK 开发一个程序来检测手指 或指尖 甚至可能知道一些可能的参考代码 不管怎样 我也尝试在google
  • 重新初始化后 OpenCV 3 Tracker 将无法工作

    我在使用 OpenCV 3 跟踪模块进行跟踪时遇到问题 它的行为是相同的 我使用接口类 cv Tracker 或带有实现的类 如 cv TrackerMedianFlow 或 cv TrackerMIL 等 示例是 OpenCV 示例文件夹
  • 构建基于角色的应用程序

    我要做一个小网站 我有 7 种类型的用户 即可登录系统 一些用户仅具有添加设备的权限 而其他用户则可以添加 编辑 其中一些只能查看 系统中添加设备的所有用户都会有一些通用字段 而一些字段将是用户特定的 我必须跟踪用户更改设备时设备的所有更改
  • Android 应用安装跟踪如何工作?

    这里有人能解释一下 Android 应用程序推荐跟踪的工作原理吗 一位朋友给了我一个 Android 应用程序的 google play 推荐网址 我安装了该应用程序并打开了它 应用程序开发人员如何知道是我的朋友向我推荐了他们的应用程序 我
  • 跟踪 GA 中的主题标签和查询字符串

    我有一些贴纸 其中包含我网站的 URL 二维码 如下所示 我会把它贴在街上 正如你所看到的 如果有人阅读了这个二维码 他就会转发到http issocial net qr page 现在我想跟踪通过此二维码贴纸访问我的网站的人 遗憾的是 G
  • 版本控制(即 Subversion)适用于文档跟踪吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我负责大约 100 多个文档 word 文档 而不是源代码 需要由我部门的不同人员进行修改 目前 所有文档都位于一个共享文件夹中 它们将在其中检
  • 跟踪电子邮件以真实图像打开

    我正在考虑将电子邮件跟踪添加到我为小型客户企业构建的网络服务中 我打算做嵌入式图像解决方案 参考我服务器上的图像 除非其他人有更好的方法 但是当我使用图像标签引用服务器上的 PHP 页面时 它会加载 损坏的图像 图标 我怎样才能使它成为有效
  • Flurry 4.2.2 SDK 未在 iOS 中发送事件会话数据

    我知道 Flurry 的报告有延迟 但是 我们在第二天没有看到 Flurry 报告的任何结果 Flurry setDebugLogEnabled YES Flurry setLogLevel FlurryLogLevelDebug Flur
  • Adsense 的自定义点击跟踪

    我需要在点击广告时识别我的用户 例如 当用户A在线时 我需要知道他是点击广告单元的人 当使用我自己的广告时 这是小菜一碟 使用 URL 重定向 但是 现在我们计划切换到 Adsense 它通过 javascript 呈现广告 因此我无法在那
  • 如何跟踪 SQL 更新的进度?

    假设我有一个更新 例如 UPDATE db1 sc1 tb1 SET c1 LEFT c1 LEN c1 1 WHERE c1 like 此更新基本上将遍历数百万行并修剪冒号 如果 c1 列中有冒号 我如何跟踪表中的进展情况 Thanks
  • Excel VBA 宏用于跟踪单独工作表中的更改

    我正在尝试编写一个 VBA 宏来跟踪对单独工作表中工作簿的更改 如果您手动执行此操作 命令顺序为 工具 gt 跟踪更改 gt 突出显示更改 并选择 单独工作表 选项 您必须执行该命令的两次迭代 一次是激活内联跟踪 第二次是将跟踪移动到单独的
  • DHL 追踪 API 和 PHP

    我目前正在开展一个项目 我必须获取数据包的状态 通过 DHL 发送 我读到过有关 DHL API 的内容 它返回 XML 但不知何故没有好的示例 我找到了一些代码片段 但我不知道在哪里注册 API 密钥 有人给我一些链接或例子吗 此致 卢卡
  • 如何在没有 UDID 的情况下跟踪 iOS5 上的下载

    谁知道如何在没有 UDID 的情况下跟踪 iOS 应用程序下载 通过网络广告 我认为这是不可能的 特别是如果用户从网站转到 AppStore 但一家名为 WDA 的公司似乎使这成为可能 http www lovefortech com 20

随机推荐

  • php保存tsv格式,PHP header发送各种类型文件及设置文件上载名

    PHP header发送各种类型文件及设置文件下载名 header Content type application image pjpeg 输出的类型 header Content Disposition attachment filen
  • Python类和对象

    什么是 Python 类 python 中的类是创建特定对象的蓝图 它使您可以以特定方式构建软件 问题来了 怎么办 类允许我们以一种易于重用的方式对我们的数据和函数进行逻辑分组 并在需要时进行构建 考虑下图 类变量是一个类的所有不同对象 实
  • iceberg对比hive优势

    1 事务性 从事务性上来说 iceberg具有更高的数据质量 因为iceberg本质是一种table format 屏蔽了底层的存储细节 写入数据时候需要严格按照schema写入 而hive可以先写入底层数据 然后使用load partit
  • 使用Pandas进行数据预处理 笔记3 任务 5.3 标准化数据

    文章目录 5 3 标准化数据 5 3 1 离差标准化数据 5 3 2 标准差标准化数据 代码 5 27 标准差标准化示例 5 3 3 小数定标标准化数据 代码 5 28 小数定标标准化示例 5 3 4 任务实现 代码 5 29 对订单详情表
  • 中国裁判文书网接口解密

    中国裁判文书网接口解密 前景提要 具体实现 数据解密 传参解密 结语 前景提要 最近有个采集中国裁判文书网的需求 做下来觉得接口加密方式还挺有意思的 分享一下解密过程 具体实现 数据解密 首先找到页面上对应数据来源于哪个接口 很明显是某种加
  • Android 获取视频(本地和网络)缩略图的解决方案

    在Android 开发视频的时候 通常都需要显示视频列表 而视频列表通常都有一张视频缩略图 那么它是怎么获取的呢 关于网络视频的缩略图的实现方案主要有两种 1 后台返回视频时顺便连缩略图的路径都返回给你了 这样前端压力轻松 2 后台是返回视
  • 数据权限实现(Mybatis拦截器+JSqlParser)

    由于本人才疏学浅 刚刚入门 本文章是我在实现数据权限的过程中的学习体会 总体思想 一 Mybatis拦截器 参考 Mybatis中文官网 慕课网Mybatis方面视频 SQL解析 引用官网说明 MyBatis 允许你在已映射语句执行过程中的
  • 论文学习:Occlusion Robust Face Recognition Based on Mask Learning

    论文地址 Occlusion Robust Face Recognition Based on Mask Learning with Pairwise Differential Siamese Network 综述 深度卷积网络作为人脸识别
  • C++ 中关于前++和后++重载的问题

    首先我们要对基本数据类型的前 和后 有一个认知 int a a 返回 const int a 返回 int 即a的引用 那么我们在设计类方法的时候也要这样来 include
  • 如何将Android Studio卸载的干干净净?

    请先看这篇文章 本博打开方式 请详读 请详读 请详读 Cat CSDN博客 1 打开控制面板 选择 程序 在卸载或更改程序界面找到Android Studio 2 找到所有的SDK NDK文件路径 可以在Android studio软件中的
  • 澳大利亚黑客技术如何变成人类福音?

    澳大利亚黑客技术如何变成人类福音 澳大利亚科学家David Putrino 将多种科技融于一体 帮助饱受战乱的南苏丹难民装上了义肢 开发出了可网上购买的低成本虚拟现实康复设备 为全世界人民带来了福音 Putrino与他的科技惠民之路 Dav
  • 使用Moment Timezone将时间转换为目标时区的时间

    1 moment timezone moment是一个强大JavaScript 日期处理类库 但为了根据时区计算对应的时间时 一般会采用手动设置时间偏移量的方法 使用起来十分繁琐 于是就有了moment timezone JavaScrip
  • MinIO+NPS+DDNS+旧笔记本搭建私有图床

    MinIO NPS DDNS 旧笔记本搭建私有图床 前言 一篇好的博文 是需要图文并茂的 以前最好用的免费图床应该是PicGo gitee方式了 但今年 这种gitee已打击这种使用仓库作为图床做法 并且还做了防盗链处理 因此行不通了 所以
  • Java 9模块系统Jigsaw项目简介

    众所周知 Java SE 8带有三个重要的新功能 即Lambda Expressions Stream API和Date API 同样 Java SE 9具有三大功能 即Java模块系统 Jigsaw Project Java REPL M
  • vue+less 电池电量图标组件

    父组件调用
  • MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置

    MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 文章目录 MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 制作局部放大图的方法 文本箭头的便捷设置 小结 本文主要介绍如何在MATLAB中绘制局部放大图和如何便捷地设置
  • DJI Onboard-SDK-ROS-4.0.1 在妙算2-G上编译运行

    编译ROS工程前先按照DJI OSDK4 0 1在妙算2 g上编译运行文章中描述的方法将OSDK 4 0 1编译成功 Onboard SDK ROS 4 0 1 项目地址 https github com dji sdk Onboard S
  • 题目0145-端口合并

    端口合并 题目描述 有M 1 lt M lt 10 个端口组 每个端口组是长度为N 1 lt N lt 100 的整数数组 如果端口组间存在2个及以上不同端口相同 则认为这2个端口组互相关联 可以合并 第一行输入端口组个数M 再输入M行 每
  • 【山河送书第八期】:《用ChatGPT轻松玩转机器学习与深度学习》突破传统学习束缚,借助ChatGPT的神奇力量,解锁AI无限可能!

    山河送书第八期 用ChatGPT轻松玩转机器学习与深度学习 一 前言 二 关键点 三 内容简介 四 作者简介 五 购买链接 六 参与方式 七 往期赠书回顾 一 前言 随着科技的飞速发展 人工智能已经成为了当今社会最热门的话题之一 从自动驾驶
  • 相关滤波论文

    MOSSE 2010 Visual Object Tracking using Adaptive Correlation Filters PDF Minimum Output Sum of Squared Error MOSSE 是第一篇将