论文阅读《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

智能推荐

python opencv resize函数_python opencv 等比例调整(缩放)图片分辨率大小代码 cv2.resize()...-程序员宅基地

文章浏览阅读1.3k次。# -*- coding: utf-8 -*-"""@File : 200113_等比例调整图像分辨率大小.py@Time : 2020/1/13 13:38@Author : Dontla@Email : [email protected]@Software: PyCharm"""import cv2def img_resize(image):height, width = image...._opencv小图等比例缩放

【OFDM、OOK、PPM、QAM的BER仿真】绘制不同调制方案的误码率曲线研究(Matlab代码实现)-程序员宅基地

文章浏览阅读42次。对于这些调制技术的误码率(BER)研究是非常重要的,因为它们可以帮助我们了解在不同信道条件下系统的性能表现。通过以上步骤,您可以进行OFDM、OOK、PPM和QAM的误码率仿真研究,并绘制它们的误码率曲线,以便更好地了解它们在不同信道条件下的性能特点。针对这些调制技术的BER研究是非常重要的,可以帮助我们更好地了解这些技术在不同信道条件下的性能表现,从而指导系统设计和优化。6. 分析结果:根据误码率曲线的比较,分析每种调制方案在不同信噪比条件下的性能,包括其容忍的信道条件和适用的应用场景。_ber仿真

【已解决】Vue的Element框架,日期组件(el-date-picker)的@change事件,不会触发。_el-date-picker @change不触发-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏3次。1、场景照抄官方的实例,绑定了 myData.Age 这个值。实际选择某个日期后,从 vuetool(开发工具)看,值已经更新了,但视图未更新。2、尝试绑定另一个值: myData,可以正常的触发 @change 方法。可能是:值绑定到子对象时,组件没有侦测到。3、解决使用 @blur 代替 @change 方法。再判断下 “值有没有更新” 即可。如有更好的方法,欢迎评论!..._el-date-picker @change不触发

PCL学习:滤波—Projectlnliers投影滤波_projectinliers-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏8次。Projectlnliersclass pcl: : Projectlnliers< PointT >类 Projectlnliers 使用一个模型和一组的内点的索引,将内点投影到模型形成新的一个独立点云。关键成员函数 void setModelType(int model) 通过用户给定的参数设置使用的模型类型 ,参数 Model 为模型类型(见 mo..._projectinliers

未处理System.BadImageFormatException”类型的未经处理的异常在 xxxxxxx.exe 中发生_“system.badimageformatexception”类型的未经处理的异常在 未知模块。 -程序员宅基地

文章浏览阅读2.4k次。“System.BadImageFormatException”类型的未经处理的异常在 xxxx.exe 中发生其他信息: 未能加载文件或程序集“xxxxxxx, Version=xxxxxx,xxxxxxx”或它的某一个依赖项。试图加载格式不正确的程序。此原因是由于 ” 目标程序的目标平台与 依赖项的目标编译平台不一致导致,把所有的项目都修改到同一目标平台下(X86、X64或AnyCPU)进行编译,一般即可解决问题“。若果以上方式不能解决,可采用如下方式:右键选择配置管理器,在这里修改平台。_“system.badimageformatexception”类型的未经处理的异常在 未知模块。 中发生

PC移植安卓---2018/04/26_电脑软件移植安卓-程序员宅基地

文章浏览阅读2.4k次。记录一下碰到的问题:1.Assetbundle加载问题: 原PC打包后的AssetBundle导入安卓工程后,加载会出问题。同时工程打包APK时,StreamingAssets中不能有中文。解决方案: (1).加入PinYinConvert类,用于将中文转换为拼音(多音字可能会出错,例如空调转换为KongDiao||阿拉伯数字不支持,如Ⅰ、Ⅱ、Ⅲ、Ⅳ(IIII)、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ、Ⅹ..._电脑软件移植安卓

随便推点

聊聊线程之run方法_start 是同步还是异步-程序员宅基地

文章浏览阅读2.4k次。话不多说参考书籍 汪文君补充知识:start是异步,run是同步,start的执行会经过JNI方法然后被任务执行调度器告知给系统内核分配时间片进行创建线程并执行,而直接调用run不经过本地方法就是普通对象执行实例方法。什么是线程?1.现在几乎百分之百的操作系统都支持多任务的执行,对计算机来说每一个人物就是一个进程(Process),在每一个进程内部至少要有一个线程实在运行中,有时线..._start 是同步还是异步

制作非缘勿扰页面特效----JQuery_单击标题“非缘勿扰”,<dd>元素中有id属性的<span>的文本(主演、导演、标签、剧情-程序员宅基地

文章浏览阅读5.3k次,点赞9次,收藏34次。我主要用了层次选择器和属性选择器可以随意选择,方便简单为主大体CSS格式 大家自行构造网页主体<body> <div class='main' > <div class='left'> <img src="images/pic.gif" /> <br/><br/> <img src="images/col.gif" alt="收藏本片"/&_单击标题“非缘勿扰”,元素中有id属性的的文本(主演、导演、标签、剧情

有了这6款浏览器插件,浏览器居然“活了”?!媳妇儿直呼“大开眼界”_浏览器插件助手-程序员宅基地

文章浏览阅读901次,点赞20次,收藏23次。浏览器是每台电脑的必装软件,去浏览器搜索资源和信息已经成为我们的日常,我媳妇儿原本也以为浏览器就是上网冲浪而已,哪有那么强大,但经过我的演示之后她惊呆了,直接给我竖起大拇指道:“原来浏览器还能这么用?大开眼界!今天来给大家介绍几款实用的浏览器插件,学会之后让你的浏览器“活过来”!_浏览器插件助手

NumPy科学数学库_数学中常用的环境有numpy-程序员宅基地

文章浏览阅读101次。NumPy是Python中最常用的科学数学计算库之一,它提供了高效的多维数组对象以及对这些数组进行操作的函数NumPy的核心是ndarray(N-dimensional array)对象,它是一个用于存储同类型数据的多维数组Numpy通常与SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用,用于替代MatLabSciPy是一个开源的Python算法库和数学工具包;Matplotlib是Python语言及其Numpy的可视化操作界面'''_数学中常用的环境有numpy

dind(docker in docker)学习-程序员宅基地

文章浏览阅读1.1w次。docker in docker说白了,就是在docker容器内启动一个docker daemon,对外提供服务。优点在于:镜像和容器都在一个隔离的环境,保持操作者的干净环境。想到了再补充 :)一:低版本启动及访问启动1.12.6-dinddocker run --privileged -d --name mydocker docker:1.12.6-dind在其他容器访问d..._dind

推荐文章

热门文章

相关标签