论文阅读《Deep Learning in Video Multi-Object Tracking: A Survey》-程序员宅基地

技术标签: 多目标跟踪  

时间:2019年11月

作者机构:萨勒诺大学&格拉纳达大学等

链接:https://arxiv.org/abs/1907.12740


《DEEP LEARNING IN VIDEO MULTI -OBJECT TRACKING :   A SURVEY》


1.Introduction

mot的output

应用领域:video surveillance 、autonomous cars 、action recognition 、 crowd behaviour analysis

大多数性能高的MOT算法都使用了DL,以帮助解决MOT中存在问题的子任务

 main contributions

1.提供了最新的、最全的 DL in MOT 工作总结  single-camera videos  2D image

2.总结了MOT 算法的四个步骤,并描述了每个步骤中采用的不同DL模型和方法,包括使用它们的算法环境。
表格中还总结了每个分析工作所使用的技术,以及指向可用源代码的链接,以作为将来研究的快速参考。

3.我们在最常用的MOT数据集上收集实验结果,以在其中进行数值比较,并确定性能最佳的算法的主要趋势

 MOT: algorithms, metrics and datasets

many MOT algorithms formulate the task as an assignment problem

许多MOT数据集提供了一组标准的检测结果,算法可以使用这些检测结果(从而可以跳过检测阶段),以便专门比较其性能与关联算法的质量,因为检测器的性能会严重影响跟踪结果 。

MOT algorithms 可以分为 batch and online methods

尽管文献中介绍的方法种类繁多,但是大多数MOT算法都共享以下部分或全部步骤(汇总于图2):

  • Detection stage
  •  Feature extraction/motion prediction stage: 一种或多种特征提取算法分析检测和/或轨迹,以提取外观,运动和/或交互特征。 可选地,运动预测器预测每个跟踪目标的下一个位置;
  • Affinity stage: 特征和运动预测用于计算成对的检测和/轨迹之间的相似度/距离得分;
  • Association stage:

 Metrics

为了提供可以公平地测试和比较算法的通用实验设置,事实上已经建立了一组度量标准,并且几乎在所有工作中都使用了它们。
最相关的是CLEAR MOT指标[20]和最近的ID指标[21]。这些指标集旨在反映测试模型的整体性能,并指出每个模型可能存在的缺点

Classical metrics

这些指标由Wu和Nevatia [19]定义,强调了MOT算法可能产生的不同类型的错误

CLEAR MOT metrics

不能与假设相关联的GT边界框被视为假阴性(FN),而不能与真实边界框相关联的假设被标记为假阳性(FP)。另外,每次GT跟踪中断并在以后恢复时,都计为fragmentation,而在跟踪持续时间内每次跟踪的GT对象ID发生错误更改时,都将被视为ID switch。然后,计算出的简单指标如下:

The ground truth bounding boxes that cannot be associated with a hypothesis are counted as false negatives (FN),

the hypotheses that cannot be associated with a real bounding box are marked as false positives (FP).

Also, every time a ground truth object tracking is interrupted and later resumed is counted as a fragmentation,while every time a tracked ground truth object ID is incorrectly changed during the tracking duration is counted as an ID switch.

MOTA   MPTP

 Benchmark datasets

MOTChallenge

MOT15

 它包含从旧数据集中收集的一系列22个视频(用于训练的11个视频和用于测试的11个视频),具有各种特征(固定和移动摄像机,不同的环境和光照条件等) 总共包含11283个不同分辨率的帧,其中1221个不同ID和101345个框。 提供的检测是使用ACF检测器获得的[24]

MOT16/17

MOT16集合中总共包含14个视频(用于训练的7个视频和用于测试的7个视频),使用基于可变形部分的模型(DPM)v5获得的公开检测结果[25,26],与其他模型相比,发现它们在检测问题上具有更好的性能。这次数据集包括11235帧,具有1342个id和292733个框。

MOT17数据集包含与MOT16相同的视频,但具有更准确的GT,每个视频具有三组检测:一组来自Faster R-CNN [4],一组来自DPM,一组来自比例相关池检测器(SDP) [27]。然后,必须证明跟踪器具有足够的通用性和鲁棒性,以使用不同的检测质量获得良好的性能。

MOT19

最近,CVPR 2019 Tracking Challenge的数据集的新版本已经发布,其中包含8个视频(用于训练的4个,用于测试的4个)的行人密度非常高,在最拥挤的视频中,平均每帧最多可容纳245位行人。数据集包含13410帧,具有6869条轨迹,总共2259143个bbox,比以前的数据集多得多。

 

Deep learning in MOT

DL in detection step

 Faster R-CNN

 SSD

 

 DL in feature extraction and motion prediction

 Autoencoders: first usage of DL in a MOT pipeline

 CNNs as visual feature extractors

SORT算法[35]后来经过深化改进,新版本称为DeepSORT [41]。 该模型合并了通过自定义残差CNN提取的视觉信息[92]。 CNN提供了具有128个特征作为输出的归一化向量,并将这些向量之间的余弦距离添加到SORT中使用的affinity scores中。 网络结构图如图4所示。
实验表明,这种修改克服了SORT算法的主要缺点,即高的IDswitches。

 

Mahmoudi等人[42]结合了CNN提取的视觉特征以及动态和位置特征,然后通过匈牙利算法解决了关联问题;

在[93]中,ImageNet上预训练的ResNet-50 [3]被用作视觉特征提取器;

在[94]中可以找到有关如何使用CNN区分行人的详尽解释。在他们的模型中,Bae等人将CNN的输出与形状和运动模型相结合,并为每对检测计算出 Affinity 得分; 然后通过匈牙利算法解决了关联问题。


Ullah等人[95]应用了现成的GoogLeNet [2]版本进行特征提取

Fang等人[96]选择了Inception CNN [97]的隐藏卷积层的输出作为视觉特征。
Fu等[98]采用DeepSORT特征提取器,并使用判别相关滤波器测量特征的相关性。然后,将匹配分数与时空关系分数相结合,最终分数在高斯混合概率假设密度过滤器中用作可能性[99]。
[100]中的作者在ILSVRC CLS-LOC [101]数据集上使用了经过微调的GoogLeNet,用于行人识别。
在[70]中,作者重用了基于CNN的检测器提取的视觉特征,并使用反向最近邻技术进行了关联[102]。
Sheng等人[103]利用GoogLeNet的卷积部分提取外观特征,使用它们之间的余弦距离来计算检测对之间的亲和力得分,并将该信息与运动预测合并,以计算整体亲和力,从而图问题中的边缘成本。
Chen等[104]利用ResNet的卷积部分建立了一个自定义模型,在卷积顶部堆叠了一个LSTM单元,以便同时计算相似性评分和边界框回归。

Ran等[52]提出了将经典CNN用于视觉特征提取和将AlphaPose CNN用于姿势估计的组合。然后,将这两个网络的输出与Tracklet信息历史记录一起输入LSTM模型中,以计算相似性,如第3.3.1节中所述。

 

Siamese networks

另一个经常出现的想法是使用损失函数来训练CNN,这些函数结合了来自不同图像的信息,以学习最能区分不同对象示例的一组特征。 这些网络通常称为Siamese网络(该体系结构的示例如图5所示)。

 

Kim等 [106]提出了一个使用对比损失进行训练的Siamese网络[107]。 网络拍摄了两个图像,它们的IoU得分和面积比作为输入,并产生了对比损失作为输出。 训练好网络后,删除计算对比损失的层,最后一层用作输入图像的特征向量。随后通过组合特征向量之间的欧式距离,IoU分数和边界框之间的面积比来计算相似度分数。
使用自定义的贪婪算法解决了关联步骤。

Wang等[108]还提出了一个Siamese网络,该网络采用了两个图像补丁并计算了它们之间的相似度得分。计算测试时间的得分,比较网络为两个图像提取的视觉特征,包括时间上的受约束的信息。用作相似性评分的距离是带有权重矩阵的马氏距离,该距离也由模型学习。

 

 More complex approaches for visual feature extraction

还提出了更复杂的方法。 Lu等人[59]将检测步骤中由SSD预测的类别作为特征,并将其与通过RoI池提取的图像描述符结合起来用于每次检测。之后,将提取的特征用作LSTM网络的输入,该网络学习了计算检测的关联特征。这些特征随后通过它们之间的余弦距离被用于亲和力计算。

LSTM有时用于运动预测,以便从数据中学习更复杂的非线性运动模型。在图6中,显示了LSTM通常用于运动预测的方案。

 

Sadeghian等人展示了使用循环网络的一个例子 [123],他提出了一个模型,该模型采用三种不同的RNN来为每次检测计算各种类型的特征,而不仅仅是运动特征。第一个RNN用于提取外观特征。该RNN的输入是VGG CNN [1]提取的视觉特征向量,该向量经过专门训练以进行人的重新识别。第二个RNN是经过LSTM训练的LSTM,可以预测每个跟踪对象的运动模型。在这种情况下,LSTM的输出是每个对象的速度矢量。训练了最后一个RNN,以学习场景中不同对象之间的相互作用,因为某些对象的位置可能会受到影响通过周围物品的行为。然后由另一个LSTM以其他RNN的信息作为输入执行亲和力计算。

 

 CNNs for motion prediction: correlation filters

相关滤波跟踪的基本思想就是,设计一个滤波模板,利用该模板与目标候选区域做相关运算,最大输出响应的位置即为当前帧的目标位置。

Wang等人[128]研究了相关滤波器[129]的使用,其输出是被跟踪物体的响应图。该响应图是对下一帧中对象新位置的估计。 将该亲和力进一步与使用Lucas-Kanade算法[130]计算的光流亲和力,通过卡尔曼滤波器计算的运动亲和力和比例亲和力(由涉及边界框的高度和宽度的比率表示)相结合。将两次检测之间的亲和力计算为先前得分的线性组合。还有一个步骤,即使用SVM分类器消除错误的检测,并丢失检测处理,为此任务使用先前步骤中计算出的响应图。 如果某个对象被错误丢失并重新识别,则该步骤可以修复错误并重新连接损坏的轨迹。

在[61]中,相关滤波器也被用来预测物体在后续帧中的位置。filter接收CNN提取的外观特征作为输入,之前使用PCA对其进行了缩小,并生成了下一帧中对象的预测位置的响应图作为输出。预测位置随后用于计算相似度得分,将预测和检测之间的IoU与响应图的APCE得分相结合。构建成本矩阵后,计算帧之间每对检测的得分,便可以使用匈牙利算法解决分配问题。

 

 DL in affinity computation

尽管许多作品通过对CNN提取的特征使用某种距离度量来计算tracklets和检测(或tracklets和其他tracklets)之间的亲和力,但也有一些算法使用深度学习模型直接输出亲和力分数,而无需指定显式 特征之间的距离度量。 本节重点介绍此类作品。

 Recurrent neural networks and LSTMs

 Siamese LSTMs

 Bidirectional LSTMs

 Uses of LSTMs in MHT frameworks

 

 DL in Association/Tracking step

有些工作虽然不如其他步骤那么多,但它们已经使用深度学习模型来改善由经典算法(例如匈牙利算法)执行的关联过程,或管理轨道状态(例如,通过决定开始或终止 轨道)

 

 Analysis and comparisons

本节介绍了在一个MOTChallenge数据集上测试过其算法的所有作品之间的比较。我们将仅关注MOTChallenge数据集,因为对于其他数据集,没有足够的相关论文使用深度学习来进行有意义的分析。

根据前面介绍的分类,显示了每个组合数据集/检测源的表。表2和表3分别​​显示了使用公共和私人检测得出的关于MOT15的结果;

表4和5在MOT16上执行相同的操作;最后,表6显示了MOT17的结果,MOT17目前仅发布了使用公共检测的算法。
每个表分别将在线方法和批处理方法分组,并且对于每个组,按年份对论文进行排序,如果论文来自同一年,则按MOTA分数递增,因为这是MOTChallenge数据集中考虑的主要指标【18】。
如果一件作品使用相同的检测集和相同的操作模式在同一数据集上呈现多个结果,则我们仅显示具有最高MOTA的结果。每个指标的最佳性能是以粗体突出显示,而在以相同模式(批处理/在线)运行的论文中,最佳性能用下划线标出。
重要的是要注意,尽管对Hz指标的比较可能并不可靠,因为通常仅针对算法的跟踪部分报告性能,而没有检测步骤,有时甚至不包括深度学习模型的运行时,这通常是本次调查提出的算法中计算量最大的部分;此外,这些算法在多种不同的硬件上运行。

 

 

 

 

 

 

Discussion of the results

不出所料,每个数据集上性能最佳的算法都使用私有检测,这证实了检测质量在跟踪器的整体性能中占主导地位的事实:MOTA为56.5%,MOT15为42.3%,MOT16为71.0%,49.3%。
此外,在MOT16和MOT17上,即使在线方法逐渐接近批处理算法的性能,批处理算法也略胜于在线算法。实际上,在MOT15上,使用深度学习的报道最好的算法以在线方式运行。但是,这可能是更加关注开发在线方法的结果,这是MOT深度学习研究社区的趋势。
如我们所见,在线方法之间的一个普遍问题是MOTA得分未反映出的问题是碎片数量较多,发生在表7中。发生这种情况的原因是,当发生遮挡或缺少检测时,在线算法无法向前看, 在视频中,重新识别丢失的目标并插补轨迹的缺失部分[124、89、94]。我们在图8中可以看到一个轨迹示例,该轨迹由在线方法MOTDT [118]分割,而通过批处理方法eHAF16 [103]可以正确跟踪。

 

图8:在线方法在咬合过程中产生碎片的例子。 上图:在线算法MOTDT [118]的跟踪结果。下图:批处理算法eHAF16 [103]的跟踪结果。 从左到右分别显示了两种方法的MOT16-08视频的第50、60和70帧。 仅显示相关框,以避免混乱。如图所示,虽然某些在线算法能够在遮挡之后重新识别丢失的目标,但是当目标不可见时,它们通常无法跟踪它们,这会导致碎片化。另一方面,批处理方法能够通过推断给定的过去和未来信息来确定目标的位置,从而重建碎片化的轨迹。

 

值得注意的另一点是,由于MOTA分数基本上是FP,FN和ID switch的标准化总和,并且FN的数量通常至少比FP高一个数量级,并且比ID switch高至少两个数量级。设法最大程度地减少FN数量的方法是获得最佳性能的方法
因此,尽管使用公共检测在减少FN方面有有限的改进,但最有效的方法仍是构建和训练自定义检测器

为了避免此问题,许多新算法都包括解决该问题的新策略。实际上,尽管执行插值的基本方法能够在遮挡期间恢复丢失的框,但这仍然不足以检测甚至单个检测都无法覆盖的目标,在MOT15和MOT16上已显示它们占总数的18% [14]。
例如,Sheng等人[103]提出的eHAF16算法采用了超像素提取算法来补充公开提供的检测,实际上能够显着减少MOT17上的假阴性数量,达到数据集上最高的MOTA得分。
MOTDT算法[118]却使用R-FCN将丢失的检测与新候选物集成在一起,并且能够在MOT17的在线算法中达到最佳的MOTA和最低的假阴性数。
AP-RCNN算法[145]还能够通过采用粒子滤波算法并仅依靠检测来初始化新目标并恢复丢失的目标,从而避免了由于缺少检测而导致的问题。
[150]中提出的算法还通过设计深度预测网络来减少FN,其目的是学习物体的运动模型。在测试时,网络能够预测它们在后续帧中的位置,从而减少由于缺少检测而产生的假阴性的数量。实际上,就此指标而言,它是MOT16中在线方法中的第二好的方法。

必须针对亲和力网络的训练策略进行重要观察。
如[93]所述,使用GT轨迹训练网络以预测亲和力可能会产生次优的结果,因为在测试时,这些网络将暴露于不同的数据分布,其中包含可能包含丢失/错误检测的嘈杂轨迹。 实际上,许多算法都选择使用实际检测[96]或通过将噪声和错误手动添加到GT轨迹[93、115]来训练网络,尽管这有时会减慢训练过程,但并不总是可行的[60]。 。

Best approaches in the four MOT steps

(1)谈到私有检测,表格表明,性能最好的检测器目前是Faster R-CNN及其变体。实际上,[38]中提出的使用改良的Faster R-CNN的算法在MOT16的在线方法中一直保持着最高的排名,而且其他许多性能最高的MOT16算法也采用了相同的检测方法 。相反,采用SSD检测器的算法(例如[60]和[61]中提出的算法)的性能往往较差。不过,SSD的一大优势在于它的速度更快:尽管有大量的在线方法,但是在MOT管道中使用深度学习技术的主要问题仍然是获取实时预测的困难,这使得这种算法在大多数实际的在线场景中不可用。

(2)关于特征提取,在三个考虑的数据集上所有表现最好的方法都使用了CNN来提取外观特征,其中GoogLeNet是最常见的一种。
不利用外观的方法(用深层方法或经典方法提取)往往表现较差。但是,视觉特征还不够:许多最佳算法还采用其他类型的特征来计算亲和力,尤其是运动的亲和力。实际上,通常使用LSTM和Kalman滤波器之类的算法来预测目标在下一帧中的位置,这通常有助于提高关联质量。各种贝叶斯滤波器算法(例如粒子滤波器和假设密度滤波器)也用于预测目标运动,并且它们受益于深度模型的使用[158、145、98]。但是,即使与非视觉功能一起使用,外观仍然在提高算法的整体性能[123,158]中起着主要作用尤其是在避免ID切换[83]或长时间遮挡后重新识别目标[ 41]。在后一种情况下,简单的运动预测器不起作用,因为线性运动假设很容易被破坏,正如Zhou等人[55]所指出的。

(3)虽然深度学习在检测和特征提取中起着重要作用,但是使用深度网络来学习亲和力函数的普及性却不高,并且尚未被证明对于好的MOT算法是必不可少的。实际上,许多算法都依赖于各种深度和非深度特征的手工距离度量的组合。然而,一些工作已经证明了使用亲和力网络如何产生性能最佳的算法[148、145、51、96],其方法从使用连体CNN到递归神经网络不等。特别是,Ma等人[148]提出的经过改进的sam网络能够产生可靠的相似性度量,这些度量有助于遮挡后的人重新识别,并使算法在MOT16上达到最高的MOTA得分。身体部位信息的整合对于Tang等人[51]提出的StackNetPose CNN也是至关重要的:它是一种关注机制,可以使网络专注于输入图像的相关部位,从而产生更准确的相似性度量,使用私有检测,该算法能够在MOT16上达到最高性能。

相反,很少有作品探索使用深度学习模型来指导关联过程,这可能是未来方法的有趣研究方向。

 

Other trends in top-performing algorithms

在当前排名最高的方法中,可以发现其他一些趋势。 例如,一种在线方法的成功方法是使用单对象跟踪算法,并对其进行适当修改以解决MOT任务。实际上,这3个数据集上一些性能最高的在线算法已经采用了SOT跟踪器,并添加了深度学习技术以从遮挡中恢复或刷新目标模型[159、115、123]。有趣的是,据我们所知,尚未使用任何经过修改的SOT算法对私人检测进行跟踪。正如我们已经观察到的,使用私有检测可以减少完全未被发现的目标的数量。由于一旦确定目标,SOT跟踪器通常不需要检测就可以继续跟踪目标,因此未发现目标的减少可能意味着丢失的轨道数量少得多,从而可以提高跟踪器的整体性能。因此,将SOT跟踪器应用于私人检测可能是一个很好的研究方向,以试图进一步改善MOTChallenge数据集的结果。
批处理方法还可以利用SOT跟踪器查看过去的帧,以便在检测器首次识别目标之前恢复错过的检测。但是,基于SOT的MOT跟踪器有时仍易于跟踪漂移并产生更多的IDsw。

例如,KCF16算法[159]在公开检测的MOT16在线方法中达到最高的MOTA评分时,由于跟踪器的漂移,它仍然会产生相对较高的开关数量,如图10所示。此外,基于SOT的MOT算法必须注意不要跟踪虚假的轨迹,这是由高质量检测器预测的不可避免的假阳性检测次数过多而导致的,因为帧太多,因为这可能抵消FN数量的减少 。当前的方法[159,115]仍然倾向于使用检测重叠来了解轨迹从长远来看是对还是错,但是应该研究更好的解决方案,以避免完全依赖检测。

尽管许多方法通过将任务表述为图形优化问题来执行关联,但是批处理方法尤其可以从中受益,因为批处理方法可以对其进行全局优化。 例如,在CNN计算的相似性的帮助下,最小成本提升的多割问题已在MOT16上达到了最高性能[148,51],而在两种顶级MOT17方法上使用了异构关联图融合和相关聚类[103,155]。

最后,可以注意到边界框的准确性从根本上影响了算法的最终性能。
实际上,在MOT15上排名靠前的跟踪器[89]仅通过使用深度RL代理对先前的最新算法[89]的输出执行包围盒回归步骤即可获得相对较高的MOTA分数。
开发一个有效的包围盒回归器以结合到未来的MOT算法中可能是一个有趣的研究方向,尚未进行深入探讨。
此外,批处理方法不是依靠单个框架来固定框,而是可以在发生遮挡时将错误的目标围起来,而批处理方法还可以尝试利用将来和过去的目标外观来更准确地使右边的边界框回归 目标。

 

 Conclusion and future directions

四个主要步骤来表征通用的MOT管道:检测,特征提取,相似性计算,关联
尽管大多数方法都集中在前两种方法上,但是也存在深度学习以学习亲和力函数的一些应用,但是只有极少数的方法使用深度学习直接指导关联算法。所提出的方法之间可以发现一些共同点:

检测质量很重要:假阴性的数量仍占MOTA得分的主导。虽然深度学习在这方面允许采用公共检测的算法有所改进,但使用高质量检测仍然是减少假阴性的最有效方法。 因此,在检测步骤中仔细使用深度学习可以大大提高跟踪算法的性能;

CNN在特征提取中必不可少:外观特征的使用对于良好的跟踪器也是至关重要的,而CNN在提取它们方面特别有效。而且,强大的跟踪器往往将它们与运动特征结合使用,可以使用LSTM,卡尔曼滤波器或其他贝叶斯滤波器来计算运动特征;

SOT跟踪器和全局图形优化工作:借助深度学习,使SOT跟踪器适应MOT任务,最近产生了性能良好的在线跟踪器; 相反,批处理方法受益于将深度模型集成到全局图优化算法中。

 

promising future research directions :

1. 研究更多的策略来减轻检测错误:尽管现代检测器不断取得越来越好的性能,但在复杂的场景(如密集的行人跟踪)中,它们仍然易于产生大量的假阴性和假阳性。一些算法提供了解决方案,通过将其与从其他来源(例如,超像素[103],R-FCN [118],粒子过滤器[145]等)提取的信息集成在一起,从而减少了对检测的排他性依赖,但是进一步策略需要去研究 ;

2.应用DL跟踪不同的目标:大多数基于DL的MOT算法都专注于行人跟踪。由于不同类型的目标面临着不同的挑战,因此应研究使用深度网络在跟踪车辆,动物或其他物体方面可能的改进;

3.应用DL指导关联:使用深度学习指导关联算法并直接执行跟踪仍处于起步阶段:需要更多的研究以了解深度算法在此步骤中是否也有用;

4.将SOT跟踪器与私人检测结合起来:减少丢失的轨迹数量,从而减少假阴性的一种可能方法是将SOT跟踪器与私人检测结合使用,尤其是在批处理环境中,可以恢复过去错过的检测。

5.调研边界框回归:已证明使用边界框回归是获得较高MOTA分数的有希望的步骤,但尚未对此进行详细探讨,应研究进一步的改进,例如使用过去和将来的信息来指导回归;

6.研究跟踪后处理:在批处理环境中,可以对跟踪器的输出应用校正算法以提高其性能。Babaee等人已经证明了这一点。 [132],这是在现有算法的基础上应用遮挡处理的,由Jiang等人提出。 [152]具有上述包围盒回归步骤。可以对跟踪器的结果应用更复杂的处理,以进一步改善结果。

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TYUT_xiaoming/article/details/103588364

智能推荐

settext 下划线_Android TextView 添加下划线的几种方式-程序员宅基地

文章浏览阅读748次。总结起来大概有5种做法:将要处理的文字写到一个资源文件,如string.xml(使用html用法格式化)当文字中出现URL、E-mail、电话号码等的时候,可以将TextView的android:autoLink属性设置为相应的的值,如果是所有的类型都出来就是**android:autoLink="all",当然也可以在java代码里 做,textView01.setAutoLinkMask(Li..._qaction::settext 无法添加下划线

TableStore时序数据存储 - 架构篇_tablestore 时间类型处理-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏10次。摘要: 背景 随着近几年物联网的发展,时序数据迎来了一个不小的爆发。从DB-Engines上近两年的数据库类型增长趋势来看,时序数据库的增长是非常迅猛的。在去年我花了比较长的时间去了解了一些开源时序数据库,写了一个系列的文章(综述、HBase系、Cassandra系、InfluxDB、Prometheus),感兴趣的可以浏览。背景随着近几年物联网的发展,时序数据迎来了一个不小的爆发。从DB..._tablestore 时间类型处理

Ubuntu20.04下成功运行VINS-mono_uabntu20.04安装vins-mono-程序员宅基地

文章浏览阅读5.7k次,点赞8次,收藏49次。可以编译成功但是运行时段错误查找原因应该是ROS noetic版本中自带的OpenCV4和VINS-mono中需要使用的OpenCV3冲突的问题。为了便于查找问题,我只先编译feature_tracker包。解决思路历程:o想着把OpenCV4相关的库移除掉,但是发现编译feature_tracker的时候仍然会关联到Opencv4的库,查找原因是因为cv_bridge是依赖opencv4的,这样导致同时使用了opencv3和opencv4,因此运行出现段错误。oo进一步想着(1)把vins-mon_uabntu20.04安装vins-mono

TMS320C6748_EMIF时钟配置_tms 6748-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏12次。创龙TL6748开发板中,EMIFA模块使用默认的PLL0_SYSCLK3时钟,使用AISgen for D800K008工具加载C6748配置文件C6748AISgen_456M_config(Configuration files,在TL_TMS6748/images文件夹下),由图可以看到DIV3等于4,注意这里的DIV3就是实际的分频值(x),而不是写入相应PLL寄存器的值(x-1)。_tms 6748

eigen稀疏矩阵拼接(基于块操作的二维拼接)的思考-程序员宅基地

文章浏览阅读5.9k次,点赞4次,收藏13次。转载请说明出处:eigen稀疏矩阵拼接(块操作)eigen稀疏矩阵拼接(块操作)关于稀疏矩阵的块操作:参考官方链接 However, for performance reasons, writing to a sub-sparse-matrix is much more limited, and currently only contiguous sets of columns..._稀疏矩阵拼接

基于Capon和信号子空间的变形算法实现波束形成附matlab代码-程序员宅基地

文章浏览阅读946次,点赞19次,收藏19次。波束形成是天线阵列信号处理中的一项关键技术,它通过对来自不同方向的信号进行加权求和,来增强特定方向的信号并抑制其他方向的干扰。本文介绍了两种基于 Capon 和信号子空间的变形算法,即最小方差无失真响应 (MVDR) 算法和最小范数算法,用于实现波束形成。这些算法通过优化波束形成权重向量,来最小化波束形成输出的方差或范数,从而提高波束形成性能。引言波束形成在雷达、声纳、通信和医学成像等众多应用中至关重要。它可以增强目标信号,抑制干扰和噪声,提高系统性能。

随便推点

Ubuntu好用的软件推荐_ubuntu开发推荐软件-程序员宅基地

文章浏览阅读3.4w次。转自:http://www.linuxidc.com/Linux/2017-07/145335.htm使用Ubuntu开发已经有些时间了。写下这篇文章,希望记录下这一年的小小总结。使用Linux开发有很多坑,同时也有很多有趣的东西,可以编写一些自动化脚本,添加定时器,例如下班定时关机等自动化脚本,同时对于服务器不太了解的朋友,建议也可以拿台Linux来实践下,同时Ubuntu在Androi_ubuntu开发推荐软件

Nginx反向代理获取客户端真实IP_nginx获取到的是交换机的ip-程序员宅基地

文章浏览阅读2.2k次。一,问题 nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中。二,解决 Nginx服务器增加转发配置 proxy_set_header Host $host;_nginx获取到的是交换机的ip

Wireshark TCP数据包跟踪 还原图片 WinHex应用_wireshark抓包还原图片-程序员宅基地

文章浏览阅读1.4k次。Wireshark TCP数据包跟踪 还原图片 WinHex简单应用 _wireshark抓包还原图片

Win8蓝屏(WHEA_UNCORRECTABLE_ERROR)-程序员宅基地

文章浏览阅读1.5k次。Win8下安装VS2012时,蓝屏,报错WHEA_UNCORRECTABLE_ERROR(P.S.新的BSOD挺有创意":("),Google之,发现[via]需要BIOS中禁用Intel C-State,有严重Bug的嫌疑哦原因有空再看看..._win8.1 whea_uncorrectable_error蓝屏代码

案例课1——科大讯飞_科大讯飞培训案例-程序员宅基地

文章浏览阅读919次,点赞21次,收藏22次。科大讯飞是一家专业从事智能语音及语音技术研究、软件及芯片产品开发、语音信息服务的软件企业,语音技术实现了人机语音交互,使人与机器之间沟通变得像人与人沟通一样简单。语音技术主要包括语音合成和语音识别两项关键技术。此外,语音技术还包括语音编码、音色转换、口语评测、语音消噪和增强等技术,有着广阔的应用。_科大讯飞培训案例

perl下载与安装教程【工具使用】-程序员宅基地

文章浏览阅读4.7k次。Perl是一个高阶程式语言,由 Larry Wall和其他许多人所写,融合了许多语言的特性。它主要是由无所不在的 C语言,其次由 sed、awk,UNIX shell 和至少十数种其他的工具和语言所演化而来。Perl对 process、档案,和文字有很强的处理、变换能力,ActivePerl是一个perl脚本解释器。其包含了包括有 Perl for Win32、Perl for ISAPI、PerlScript、Perl。_perl下载

推荐文章

热门文章

相关标签