在 CMAKE 项目中添加编译参数 -pg
add_compile_options("-pg")无效是因为会被 CMAKE 变量CMAKE_CXX_FLAGS_DEBUG=-p覆盖掉。
解决方案是直接修改CMAKE_CXX_FLAGS_DEBUG为-pg
1SET(CMAKE_CXX_FLAGS_DEBUG -pg)
SwinTrack
概述
基于 Siamese 框架的简单而高效的全注意力跟踪模型。
提出了motion token,编码了目标的历史轨迹,通过提供时间上下文来改进跟踪性能,且轻量不影响速度。
SwainTrack 由三个部分组成:
用于特征提取的 Swin-Transformer主干网络。
用于视觉-运动特征融合的编码器-解码器网络。
用于分类与边界框回归的头部网络。
方法
Swin-Transformer
与 ResNet 相比,Swin-Transformer 能够提供更紧凑的特征表示和更丰富得到语义信息。
与 Siamese 网络一致,SwinTrack 需要Template与search两个输入,两个输入都如 Swin-Transformer 的处理方式一样,被分割为不重叠的 patch 送入网络,分别得到 φ(z)\varphi(z)φ(z) 与 φ(x)\varphi(x)φ(x)。
视觉-运动特征编码器-解码器
编码器
将template特征 φ(z)\varphi(z)φ(z) 与search特征 φ(x)\varphi(x)φ(x) 简单的拼接得到混合表示 fm1f^1_m ...
SiamMask
概述
兼顾视频对象分割与目标追踪。
由于是通过分割再根据掩码划出边缘框,拥有相当高的精度,但是也导致网络无法应对被遮挡的情况。
分为两个部分,其中第二个部分有两种结构:
Siamese网络:分别提取template与search输入图像的特征,进行通道互相关。
第二部分:
二分支结构:
Score 分支:目标是区分每个 row 是目标对象or背景。
Mask 分支:为每个 row 输出一个分割掩码。
三分支结构:
Mask 分支:为每个 row 输出一个分割掩码。
Box 分支 & Score 分支:与 SiamRPN 中的一样,生成k个锚框,预测每个位置上的对象概率与回归kkk个锚框的x,y,h,w。
方法
Siamese 网络
与SiamFC不同的是,为了让每个 Row 编码更丰富的信息,将原始的简单互相关操作 ⋆\star⋆ 替换为深度互相关 ⋆d\star_d⋆d 即每个 channel 单独计算互相关,最后拼接在一起,得到一个与template特征和search特征相同深度的响应图。
第二部分
由于三分支结构中的MaskBranch与二 ...
最优化理论与算法 - 单纯形法
单纯形法的主要思想是,从一个初始基本可行解开始,迭代改进可行解,直到达到最优。
基本概念
对于线性规划的标准形式:
minf≡cxs.t.Ax=bx≥0\begin{aligned}
\min &&f &\equiv cx \\
\text{s.t.}&& Ax&=b \\
&& x &\geq 0
\end{aligned}
mins.t.fAxx≡cx=b≥0
通过变换行,使其前 mmm 行线性无关,对矩阵AAA的分割,得到基矩阵 BBB 与非基矩阵 NNN:
Am×n=(P1,P2,...,Pm,Pm+1,...,Pn)=(B,N)\underset{m \times n}{A} = (P_1,P_2,...,P_m,P_{m+1},...,P_n) = (B,N)
m×nA=(P1,P2,...,Pm,Pm+1,...,Pn)=(B,N)
同样对CCC、xxx进行划分得到(CB,CN)(C_B,C_N)(CB,CN) (xB,xN)(x_B,x_N)(xB,xN)
初始基 ...
DETR
概述
基于Transformer的端到端目标检测网络
由于Transformer强大的上下文理解能力,无需人工设计锚框与NMS,能够检测出先前方法nms会误判的两个目标重叠的情形。对于大型物体与Faster RCNN相比具有优势,但是小物体检测不如Faster RCNN
一次预测所有对象
DETR 由四个部分组成:
用于提取紧凑特征表示的CNN backbone
Transformer 编码器,以加上位置编码的打散的CNN输出特征作为输入。
Transformer 解码器,以编码器的输出与一个Object Query(可学习的位置编码)作为输入。
进行最终检测的简单FFN。
方法
CNN Backbone
使用传统CNN(丢弃了分类层的ResNet)将 H0×W0×3H_0 \times W_0 \times 3H0×W0×3 的输入图像映射到 H032×W032×2048\frac{H_0}{32} \times \frac{W_0}{32} \times 204832H0×32W0×2048 的特征图。
Transformer Encoder
使用 1×11 ...
SiamRPN
概述
将目标检测中的RPN网络应用在目标追踪。
两部分:
用于特征提取的Siamese网络(使用预训练的AlexNet)。
预测边缘框和置信度的 RPN 网络。
方法
Siamese 网络
共享参数的 AlexNet:
第一帧给定的 127×127127 \times 127127×127 模板图像,输入Siamese网络,得到 256×6×6256 \times 6 \times 6256×6×6 的特征图,文中记为 φ(z)\varphi(z)φ(z)。
当前帧 255×255255 \times 255255×255 的Search Image,输入Siamese网络,得到 256×22×22256 \times 22 \times 22256×22×22 的特征图,φ(x)\varphi(x)φ(x)。
RPN 网络
kkk 为每个位置上生成的锚框数量。
分类分支
将Siamese的输出 φ(z)\varphi(z)φ(z) 和 φ(x)\varphi(x)φ(x) 分别通过 3×33 \times 33×3 卷积层(两个卷积参数不共享)映射到 4×4×(2k ...
SA-Siam
简介
本文基于SiamFC,主要提升SiamFC的泛化能力
SA-Siam 拥有两个分支
外观(Appearance)分支:与SiamFC一致。
语义(Semantic)分支:输出特征是high-level,健壮的,不易受外观影响,使模型能够剔除无关的背景,可以补充外观特征。
用于语义分支的通道注意力机制:对在特定目标中发挥更重要作用的通道给予更高的权重。
方法
Semantic Branch
对于搜索
输入图像 XXX 经过一个CNN(AlexNet)fs(⋅)f_s(\cdot)fs(⋅),将最后两层的特征拼接以获得不同层次的信息。然后使用 1×11 \times 11×1 卷积网络 g(⋅)g(\cdot)g(⋅) 在相同层中融合特征。
g(fs(X))g(f_s(X))
g(fs(X))
对于目标
不直接使用目标模板zzz,而使用以目标模板 zzz 为中心,与搜索输入XXX一样大的图像 zsz^szs 作为CNN的输入(以获得更多上下文信息)得到 fs(zs)ff_s(z^s)ffs(zs)f。同时以 fs(z)f_s(z)fs(z) 来表示fs(zs)f ...