(ICIP-2019)通过神经结构搜索进行视频动作识别

news2024/9/21 4:35:51

通过神经结构搜索进行视频动作识别

paper题目:VIDEO ACTION RECOGNITION VIA NEURAL ARCHITECTURE SEARCHING

paper是奥卢大学发表在ICIP 2019的工作

paper地址:链接

ABSTRACT

深度神经网络在视频分析和理解方面取得了巨大成功。然而,设计高性能神经架构需要大量的努力和专业知识。在本文中,我们首次尝试让算法自动设计用于视频动作识别任务的神经网络。具体来说,时空网络是在由有向无环图建模的可微空间中开发的,因此可以执行基于梯度的策略来搜索最佳架构。尽管如此,它在计算上是昂贵的,因为评估每个体系结构候选者的计算负担仍然很重。为了缓解这个问题,我们针对视频输入引入了一种时间段方法,以在不丢失全局视频信息的情况下降低计算成本。对于架构,我们通过引入伪 3D 运算符在高效的搜索空间中进行探索。实验表明,在具有挑战性的 UCF101 数据集上,我们的架构在从头开始训练协议下的表现优于流行的神经架构,令人惊讶的是,其参数仅为其手动设计对应物的大约百分之一。

索引词——自动机器学习,神经结构搜索,视频动作识别

1. INTRODUCTION

视频动作识别 [1] 是视频分析和理解的热门话题,已经引起了学术界和工业界的广泛关注,因为它对行为分析 [2]、安全和视频情感等许多潜在应用具有重要价值计算[3]。一方面,新的大规模数据集,如 Kinetics [4]、SomethingSomething [5],对视频动作识别做出了巨大贡献。另一方面,视频分析和理解从深度神经网络的最新进展中受益匪浅,深度神经网络已经成功应用于各种任务,如目标检测 [6] 和机器翻译。然而,设计一个高性能的神经网络结构是一项艰巨的工作。它需要人类专家大量的时间和努力。具体来说,在动作识别任务中,为了获得令人满意的性能,应考虑远程时空连接。因此,它不可避免地导致复杂的网络架构和昂贵的计算成本。此外,必须为这样的网络提供大量训练数据。

最近,神经架构搜索 (NAS) [7] 显示出优于手动设计的神经架构。在图像分类中,NASNet [8] 和 AmoebaNet [9] 等自动设计的架构优于 VGG [10] 和 ResNet [11] 等流行的人工设计网络。在语义图像分割中,AutoDeeplab [12] 即使没有预训练程序也表现良好。这些有前途的进展主要得益于当前强大的计算能力、精细的搜索空间 [13] 以及强化学习 [7]、进化算法 [9] 和梯度方法 [14] 等搜索策略的效率。然而,涉及的任务仅限于文本和图像等低维输入的情况。

在本文中,我们旨在实现用于动作识别的自动神经架构设计。在 NAS 令人鼓舞的进展的推动下,我们提出以一种高效的方式将 NAS 引入到动作识别任务中。首先,采用类似于时间段网络(TSN)[15]的视频处理方案来捕获全局时间信息并降低计算成本。它还有助于数据扩充。其次,为了表征视频中的时空动态,我们通过在具有伪 3D [16] 运算符的搜索空间中分别处理空间和时间特征,提供了一种搜索 3D 神经运算符的有效解决方案。第三,我们引入了一个有向无环图来对搜索空间进行建模,并将离散空间松弛为连续和微分的空间[14]。因此,与之前需要数千 GPU 天进行搜索的计算资源相比,它能够以小数量级的计算资源实现极具竞争力的性能。

本文的贡献有三方面:首先,据我们所知,这是首次尝试针对视频动作识别问题自动设计时空神经网络。其次,我们设计了一个连续的伪 3D 神经网络搜索空间,可以在其中使用无代理策略探索高效算子。最后,我们在 UCF101 [17] 数据集上评估了所提出的方法。与没有预训练的流行动作识别神经架构相比,我们搜索到的架构仅用大约百分之一的参数就获得了最佳性能。

2. PROPOSED METHODS

在本节中,我们将详细介绍要搜索的模块化架构 C \mathcal{C} C和搜索策略。在这里,我们搜索单个 ( 2 + 1 ) D (2+1) \mathrm{D} (2+1)D卷积模块单元并重复多次以构建神经网络。在搜索过程中,我们构建了一个浅层网络 N ( C ) \mathcal{N}(\mathcal{C}) N(C),以在搜索空间中进行探索。

对于视频动作识别任务,引入了一种类似 TSN 的方案来处理各种长度的输入剪辑。它不仅降低了计算成本,而且有助于捕获全局信息和数据扩充。我们将剪辑统一分割成 N s N_s Ns个片段。在每个片段中,我们随机采样 N r N_r Nr帧,并按照原始顺序将它们重新组合以形成新的剪辑。然后将这些固定长度 ( N s × N r ) \left(N_s \times N_r\right) (Ns×Nr)的片段用作我们模型的输入。

2.1. Neural module architecture


如图 1 所示,我们构建了一个有向无环图来对神经模块单元 C \mathcal{C} C进行建模。假设 n n n个节点的 C \mathcal{C} C是我们神经网络中用于视频动作识别的基本单元。然后搜索过程是从一组候选算子 O \mathcal{O} O中找出这 n n n个节点及其对应的变换函数之间的连接,以优化性能。

图1

图 1:待搜索的神经模块概览。模块的架构由不同的节点(Hidden i)连接和运算符决定。该模块包含三个节点。连接它们的输出形成模块输出。对于节点之间的每个连接,有八个候选运算符,详见表 1 底部。在连续搜索空间中,每个运算符的贡献由权重 α ( k , j ) \alpha^{(k, j)} α(k,j)参数化。请注意,为了便于解释,此图中省略了前两个模块输出的连接。

连接。在这里,连接充当数据流。对于每个节点,即图 1 中的“Hidden_i”,我们将其之前节点的所有输出作为其输入。此外,从网络层面来看,前两个模块的输出也作为其输入(图1中未显示)。因此,总共有 n n n个节点的模块内有 M = ( n + 1 ) ( n + 2 ) 2 − 1 M=\frac{(n+1)(n+2)}{2}-1 M=2(n+1)(n+2)1个连接。对于每个节点的输出,在其不同的输入期间进行逐元素加法。最后,将这些节点的所有输出连接起来作为模块输出 C − { t } \mathcal{C}_{-}\{t\} C{t}

操作。所有的连接都充满了来自 O \mathcal{O} O的一个或多个运算符。在这里,我们将每个算子解耦为二维空间算子和一维时间算子,因为与三维算子相比,(2+1)D卷积滤波器的参数较少,但可以获得更好的性能。在本文中, O \mathcal{O} O中的初始算子集由8个候选算子组成,它们被列在表1的底部八行中。这里,最大或平均池层和RELU-CONV-BN块在现代人工设计的网络中普遍存在。'SpeConv_3’是由三个1D滤波器实现的。‘DilConv_3’ 的空间视角为 5 × 5 5 \times 5 5×5。出于计算上的考虑,我们将所有的运算符都设置为相对较小的核大小。

为了从 O \mathcal{O} O中找到最佳运算符,如 [14],我们将它们全部引入每个连接并使用架构参数 α \alpha α对它们进行建模。然后对于每个连接,在每个加权运算符的输出之间进行逐元素加法。因此,减少了搜索过程以找到最佳架构参数 α \alpha α,从而最大限度地提高验证数据的性能。在搜索结束时,可以通过 softmax 等函数获得离散架构。因此,搜索策略是在每个迭代步骤调整每个算子的贡献并找出网络架构参数 α = { α ( k , j ) } \alpha=\left\{\alpha^{(k, j)}\right\} α={α(k,j)},对于 k = 0 , … , M − 1 , j = 0 , . . ∣ O ∣ − 1 k=0, \ldots, M-1, j=0, . .|\mathcal{O}|-1 k=0,,M1,j=0,..O1,最小化任务损失,公式如下:
α ∗ = arg ⁡ min ⁡ α L valid  ( Θ ( α ) , α ) . ( 1 ) \alpha^*=\arg \min _\alpha \mathcal{L}_{\text {valid }}(\Theta(\alpha), \alpha) .(1) α=argαminLvalid (Θ(α),α).(1)
在这里,我们引入了 N ( C ) \mathcal{N}(\mathcal{C}) N(C)中的参数共享方案,因此 Θ \Theta Θ是网络内的权重,由每个架构候选者共享。 L valid  \mathcal{L}_{\text {valid }} Lvalid 是验证集上的损失函数。为了更好地评估架构, Θ \Theta Θ还将在每次迭代时根据训练数据进行更新。让 L train  \mathcal{L}_{\text {train }} Ltrain 表示训练的损失函数。显然,损失由模块架构 α \alpha α和网络权重 Θ \Theta Θ共同决定。求解公式(1)意味着找到最优的 α \alpha α,其中权重 Θ \Theta Θ最小化 L train  \mathcal{L}_{\text {train }} Ltrain 。这个双层问题很难,因为它们是相互依赖的,更准确地说,是嵌套的。我们将在下一节中讨论它。

2.2. Search Strategy


在本小节中,我们详细阐述了优化神经网络架构的搜索策略。

虽然搜索空间被放松为一个连续且有区别的空间,但公式(1) 的优化仍然具有挑战性甚至不可行。主要原因是对于架构 α \alpha α的任何变化,都必须通过最小化 L train  \mathcal{L}_{\text {train }} Ltrain 来重新计算 Θ ( α ) \Theta(\alpha) Θ(α)。为了减轻这种困难,执行交替迭代近似。更具体地说,给定一个搜索空间,有两个可选步骤来执行此搜索过程:首先,通过最小化 L train  \mathcal{L}_{\text {train }} Ltrain 来更新网络权重 Θ \Theta Θ,其中架构是固定的。其次,通过固定网络权重最小化 L valid  \mathcal{L}_{\text {valid }} Lvalid 来更新网络架构 α \alpha α。在此基础上,通过以迭代方式在网络权重和架构参数中的梯度下降步骤之间交替来优化 Θ \Theta Θ α \alpha α。事实上,这个任务与少样本元学习任务[18]非常相似,后者是使用少量数据和训练过程使模型适应新任务。从这个角度来看,神经架构搜索可以被视为一种元学习,其中 NAS 是将在训练数据上训练的网络通过微调架构来传输以适应验证数据。因此,在等式 (1) 中为 Θ ( α ) \Theta(\alpha) Θ(α)采用代理函数。那是
α ∗ = arg ⁡ min ⁡ α L valid  ( Θ ′ , α ) ( 2 ) Θ ′ = Θ − ϵ ∇ Θ L train  ( Θ , α ) . ( 3 ) \begin{aligned} \alpha^* & =\arg \min _\alpha \mathcal{L}_{\text {valid }}\left(\Theta^{\prime}, \alpha\right)(2) \\ \Theta^{\prime} & =\Theta-\epsilon \nabla \Theta \mathcal{L}_{\text {train }}(\Theta, \alpha) .(3) \end{aligned} αΘ=argαminLvalid (Θ,α)(2)=ΘϵΘLtrain (Θ,α).(3)
在这里, ϵ \epsilon ϵ在搜索步骤中是一个非常小的值。通过对架构参数 α ˉ \bar{\alpha} αˉ使用梯度下降法,我们可以找到架构的解决方案。那是
α = α − γ ∇ α . ( 4 ) \alpha=\alpha-\gamma \nabla_\alpha .(4) α=αγα.(4)
这里 γ \gamma γ是学习率, ∇ α \nabla_\alpha α由式(5)计算:
∇ α = ∇ α L valid  ( Θ ′ , α ) − ϵ ∇ α , Θ 2 L train  ( Θ , α ) ∇ Θ ′ L valid  ( Θ ′ , α ) ( 5 ) \begin{aligned} \nabla_\alpha= & \nabla_\alpha \mathcal{L}_{\text {valid }}\left(\Theta^{\prime}, \alpha\right)- \\ & \epsilon \nabla_{\alpha, \Theta}^2 \mathcal{L}_{\text {train }}(\Theta, \alpha) \nabla_{\Theta^{\prime}} \mathcal{L}_{\text {valid }}\left(\Theta^{\prime}, \alpha\right) \end{aligned}(5) α=αLvalid (Θ,α)ϵα,Θ2Ltrain (Θ,α)ΘLvalid (Θ,α)(5)
公式 (4) 和 (5) 为我们提供了一个通过 SGD 优化架构的解决方案。然而,它的计算效率不高,因为存在二阶导数,其中矩阵向量积的计算量很大。幸运的是,这里可以使用 Hessianvector 乘积来逼近二阶导数 [14],从而可以显著降低计算复杂度。此外,值得一提的是当 ϵ → 0 \epsilon \rightarrow 0 ϵ0,Eq (3) 表明 Θ ′ → Θ \Theta^{\prime} \rightarrow \Theta ΘΘ,这意味着二阶导数退化为一阶导数。因此,作为式(5)的一个特例,出于计算考虑,可以去掉式(3)中的一步展开权重操作,这样可以减少大约三分之一的计算成本,在一定损失的情况下在准确性上是宽容的。

3. EXPERIMENTS

在本节中,我们研究了所提出的设计动作识别网络的自动方法,以证明其优于其他著名动作识别架构的优势,例如 3D-ResNet [19]、C3D 网络 [20] 和 STC-ResNet [21]。我们在具有挑战性的动作识别数据集 UCF101 上评估我们的算法,该数据集是一个包含 101 个类的 13320 个视频剪辑的修剪数据集,使用从头开始训练协议。从头开始训练协议是常用的,对于有限数据或有限计算资源的问题具有重要价值。由于计算资源的限制,没有考虑其他架构,例如 I3D [22] 和 TSN,它们是具有额外输入模式的双流方法或在另一个更大的数据集上预训练的。

实施。设计自动动作识别网络有两个阶段:训练网络和更新架构,这两个阶段交替执行。我们在 UCF101 的 split 1 上搜索网络。在搜索过程中,我们构建了三层网络 N ( C ) \mathcal{N}(\mathcal{C}) N(C),每一层都由一个相同的模块 C \mathcal{C} C构建,这就是要搜索的模块。我们用四个通道初始化第一个模块,并将隐藏节点的数量 n n n设置为四个,作为准确性和效率之间的权衡。对于具有不同分辨率的特征输入,我们在模块之前添加了一个额外的特征图适配层。一旦需要降低特征图分辨率,输出通道就会相应加倍。该网络将 8 个大小为 112 × 112 112 \times 112 112×112的 RGB 帧作为输入。因此,对于视频输入预处理,我们设置分段数 N s = 4 N_s=4 Ns=4和随机样本数 N r = 2 N_r=2 Nr=2。采用归一化、随机水平翻转和随机裁剪等其他数据增强方法。对于目标函数,UCF101 上的分类任务采用交叉熵损失。为了搜索架构,整个搜索过程为 50 个 epoch,因此我们选择了一个相对较大的学习率。我们还降低了每次迭代的学习率。使这个搜索过程更有效的是搜索模型在每次验证后都不会被丢弃。

完成搜索过程后,我们将从头开始构建和训练最终网络。如前所述,我们用返回的搜索结果 α \alpha α构建网络,如图 1 所示。这里,对于每个节点,我们根据 α \alpha α保留前 2 个连接,然后根据他们的贡献。这里,在 α \alpha α上采用 softmax 函数来评估每个算子的贡献。然后可以通过离散架构构建网络,如图 2 所示。对于网络的深度,我们研究了不同的重复次数,发现当深度设置为 6 时网络表现最佳。每两层,我们将特征图分辨率沿宽度和高度方向降低两倍。因此,我们将特征图的通道加倍。整个训练过程设置如下:我们将第一个模块初始化为 8 个通道,训练迭代次数为 600 轮,学习率为 0.025,并通过迭代步数的余弦函数进行消减。该网络以 0.9 的动量、0.0003 的权重衰减和 72 的小批量进行训练。对于测试处理,我们的模型预测每个视频剪辑的分数而无需额外聚合。对于每个输入剪辑,我们采样八帧,仅对输入应用中心裁剪。

图2

图 2:通过我们的方法搜索的神经结构。在这里,我们根据 α \alpha α为每个节点保留两个连接。前两个模块 C − { t − 1 } \mathcal{C}_{-}\{t-1\} C{t1} C − { t − 2 } \mathcal{C}_{-}\{t-2\} C{t2}的输出被作为当前模块的输入。这四个节点的所有输出连接起来形成最终输出 C − { t } \mathcal{C}_{-}\{t\} C{t}

结果。当 50 次搜索迭代完成后,我们根据其性能选择最佳架构。我们在单个 Nvidia V100 GPU 上执行搜索过程。在 UCF101 上完成此搜索过程大约需要 25 个小时。搜索到的架构如图2所示。这表明该架构更喜欢具有更大视野的算子。

得到搜索结果后,我们通过重复这个神经模块单元来构建一个六层的网络。然后,我们对 600 个 epoch 的训练数据进行训练并进行测试。表 2 显示了 UCF101 与 3D-convNet、3D-ResNet 18、3D-ResNet 101 和不同种类的 STC-ResNet 网络相比的动作识别结果。结果表明,与该表中的任何其他模型相比,我们的方法使用更少的参数实现了更好的准确性。例如,3D-ConvNet,这是一种非常常用的架构,在参数大小方面比我们的网络大一百倍。尽管如此,我们的模型在识别准确率方面比它高出 7%。

4. CONCLUSION

在本文中,我们首次对动作识别任务执行神经架构搜索。具体来说,我们通过有向无环图对神经网络进行建模,并在连续搜索空间中有效地搜索时空神经架构。我们证明了我们的方法在从头开始协议训练下优于其他流行模型,模型尺寸小得惊人。更具体地说,我们的方法在 UCF101 数据集上提高了 10% 以上的准确性,其大小约为 3D-convNet 和 3D-ResNet 等著名模型的百分之一。在未来的工作中,我们计划将所提出的方法应用于其他计算机视觉任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/60383.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring系列】- Spring循环依赖

Spring循环依赖 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 一个有梦有戏的人 怒放吧德德 🌝分享学习心得,欢迎指正,大…

JMeter入门教程(11) --关联

文章目录1.任务背景2.任务目标3.任务实操1.任务背景 当JMeter执行脚本时,伪装成浏览器,然后根据脚本,把当初真的浏览器所发过的内容,再对网站服务器重新发送一遍,JMeter企图骗过服务器,让服务器以为它就是…

010. 递增子序列

1.题目链接: 491. 递增子序列 2.解题思路: 2.1.题目要求: 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 (数组可能有重复的元素,相等的元素排…

IDOC的状态

这篇文章介绍IDOC Status的概念和它们的用途,明确IDOC status的类别,看一下完整的状态列表,包括INBOUND和OUTBOUND,还有入站和出站iDoc处理时iDoc状态的顺序。 另外还有监控SAP IDOC status的工具,比如AIF,…

推特营销引流入门指南

一、关注 当您关注另一个Twitter用户时,您进行订阅,即可立即阅读其内容分享。因此,请评估您关注的人,尤其是刚开始时。跟踪新用户的一种简单方法是找到他们的个人资料,然后单击“关注”按钮。 Twitter对于那些疯狂点…

机器学习笔记之受限玻尔兹曼机(三)推断任务

机器学习笔记之受限玻尔兹曼机——推断任务引言回顾:受限玻尔兹曼机的模型表示推断任务求解——后验概率(posterior)基于隐变量的后验概率求解基于观测变量的后验概率求解受限玻尔兹曼机与神经网络的联系引言 上一节介绍了受限玻尔兹曼机的模型表示(Representation…

C++图书管理系统(管理员-读者)

C图书管理系统(管理员-读者) 一、设计一款文字式交互的图书管理系统,要求具备注册登录、浏览图书、借还图书等基本功能; 二、要求以外部文件的形式存储书籍信息、馆藏记录、借阅记录、用户信息等。【可参考提供的书籍清单】 三…

如何批量查询搜狗收录?提升搜狗收录8个方法介绍

如何批量查询搜狗收录? 批量查询搜狗收录的具体流程如下: 1、打开站长工具 2、在域名输入框添加需要查询的域名 3、在功能选择区勾选需要查询的功能(这里勾选搜狗是否收录,搜狗收录总数) 4、提交查询,等待查询结果 …

Android样式和主题背景

简介: 本文将简单介绍Android样式与主题背景的相关内容 文章目录前言一、样式二、主题背景三、样式层次结构四、创建并应用样式五、自定义默认主题六、添加特定于版本的样式七、常见的主题风格总结前言 借助 Android 中的样式和主题背景,我们可以将应用…

十五管还原炉舟皿自动卸料单元

目  录 摘要 Ⅰ 1 绪论 1 1.1 十五管还原炉舟皿产生和发展 1 1.2十五管还原炉舟皿的今天与明天 2 2 总体方案设计 4 2.1自动卸料单元的作用 4 2.2十五管还原炉舟皿自动卸料单元结构的选择 4 2.3设计技术参数: 7 2.4 自动卸料单元…

Python实现基于物品的协同过滤推荐算法构建电影推荐系统

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 基于物品的协同过滤推荐(Item-based CF)的假设原理为:跟你喜欢的东西…

python的数据可视化

python画图1.使用pyecharts画图1.1 画地图1.1.1 画2D中国地图1.1.2 画2D世界地图1.1.3 画3D世界地图1.2 pyecharts的三种图片渲染工具1.2.1 snapshot_selenium1.2.2 snapshot_phantomjs1.2.3 snapshot_pyppeteer1.3 词云图1.3.1依据图片渲染出指定形状的词云图1.3.2渲染出指定大…

基于Android的学生信息管理App设计(Android studio开发)

目 录 一、 题目选择(题目、选题意义) 3 二、 设计目的 3 1、 初衷 3 2、 结合实际 3 3、 使用工具 3 三、 最终页面效果展示 4 1、 登陆界面 4 2、 主界面 5 3、 各个功能模块 6 四、 各部分设计 11 1、活动页面Activity布局文件 11 2、Activity的编程 …

基于JSP网上书城的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

Figma UI UX设计教程

Figma UI UX设计教程 使用 Figma 获得 UI 设计、用户界面、用户体验设计、UX 设计和网页设计方面的工作 课程英文名:Figma UI UX Design Essentials 此视频教程共10.0小时,中英双语字幕,画质清晰无水印,源码附件全 下载地址 课…

毕业设计-基于机器视觉的行人车辆跟踪出入双向检测计数

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

网格化微型空气质量站 浅谈工作原理

产品简介 网格化微型空气质量站是一种集数据采集、存储、传输和管理于一体的无人值守的环境监测系统,能全天候、连续、自动地监测环境,在提供PM10、PM2.5、 SO2、 NO2、CO、O3等参数数据的基础上,可扩展对VOCs、氯气、硫化氢、氨气等多种特征…

[附源码]Python计算机毕业设计Django勤工俭学管理小程序

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Nginx的常用命令和配置文件

常用命令 1.查看 nginx版本号 在/usr/local/nginx/sbin 目录下执行 ./nginx -v 2.启动命令 在/usr/local/nginx/sbin 目录下执行 ./nginx 3.关闭命令 在/usr/local/nginx/sbin 目录下执行 ./nginx -s stop 4.重新加载命令 在/usr/local/nginx/sbin 目录下执行 ./nginx …

主流时序数据库分析及选型

目录一、当前主流的时序数据库二、主流时序数据库分析1、[Influxdb](https://docs.influxdata.com/influxdb)2、[Timescale](https://docs.timescale.com/)3、[Apache Druid](https://druid.apache.org/docs/latest/design/index.html)4、[Kdb](https://code.kx.com/home/)5、[…