假设你想让一个完全不懂篮球的AI学会判断“投篮、传球、抢断”这些动作。你把它想象成一位从未看过球赛的教练,它面前摆着一叠比赛照片——每个瞬间都被定格成一帧。可是它翻来翻去,发现投篮和传球在某一张照片上几乎一模一样:球都举在头顶,手臂都在发力。真正的区别,藏在照片与照片“之间”的连续变化里:手腕的翻转、球离手的弧线、身体的腾空轨迹。这就是视频理解的核心难题——时间维度。 今天出场的三位“教练”,代表了解决这个难题的三代思路。第一位叫C3D,是个埋头苦学的门外汉,用一把“3D立方体抓拍器”从零开始硬啃录像;第二位叫I3D,是位“照片鉴赏家”转行,把看2D图片的经验“充气”成看视频的能力,省下了海量学费;第三位叫SlowFast,是位双屏协作的老教练,一块屏幕慢放看细节,一块屏幕快进看节奏,两路信息融合,又快又准。从C3D到I3D再到SlowFast,正是一部“让AI看懂动态世界”的进化史。

岗位关联

视频理解是AI走向真实世界的必经关卡,掌握C3D、I3D、SlowFast三大经典模型,你就握住了动作识别、时序建模领域的核心钥匙,无论是面试攻防还是项目选型都能游刃有余。

目录
  1. 可视化演示
  2. 视频理解的独特挑战
  3. C3D核心思路与设计
  4. C3D的贡献与局限
  5. I3D的膨胀迁移策略
  6. SlowFast的快慢双通路
  7. 演进脉络与工程选型
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示哈希表使用链地址法解决哈希冲突的过程,键值通过哈希函数映射到桶中,冲突时在链表尾部追加节点。

本节配有交互动效(进入视口后自动加载,约 3KB)。

哈希表初始化 紫色节点为哈希表桶中存储的键值 粉色节点为最新插入的键 h(k) = k % m 链地址法将冲突键组织为链表

视频理解的独特挑战

假设要教一位从没看过篮球的教练判断“投篮、传球、抢断”。你给他一叠比赛照片,他第一反应一定是逐张研究:画面里有几个人、球在哪。但光看一张照片,投篮和传球几乎无法区分——关键动作藏在“照片与照片之间”的连续变化里。这个“帧与帧之间的连续变化”,就是视频理解独有的挑战:时间维度。

图像AI处理的是单张照片(高×宽×通道),视频则是很多张照片按时间排列的数据体,多出来的那个维度叫时间轴T。早期的2D CNN处理视频,是逐帧提取特征再取平均,相当于教练把每张照片的笔记单独记完再汇总。代价是丢掉了“谁在动、往哪个方向动、动得多快”这些最关键的线索。

所以视频AI必须同时建模空间与时间。一段输入视频可以形式化为一个四维张量:

把视频想成一本“翻页动画书”:H×W×C是每一页的画面,T是页数。只看某一页,动作是静止的;只有快速翻页,投篮的弧线才会浮现。接下来出场的三位教练,学到的第一件事都是:必须把时间轴和画面放在一起看。

X∈RT×H×W×C\displaystyle X \in \mathbb{R}^{T \times H \times W \times C}
  1. T 帧数视频被抽样成多少张连续画面,相当于教练观察动作的时间窗口。
    TT
  2. H 与 W每帧画面的高和宽,代表空间分辨率,决定教练能看清多小的细节。
    H×WH \times W
  3. C 通道数每个像素的颜色信息维度,RGB视频中 C=3。
    C=3C = 3
  4. 整体含义视频不是“更大的图片”,而是多了一条时间轴的三维数据体。
    RT×H×W×C\mathbb{R}^{T \times H \times W \times C}

C3D核心思路与设计

C3D这位教练,是典型的“从零学起的门外汉”。他没有篮球经验,但他有一把“立方体抓拍器”(3D卷积核),在录像的宽、高、时间三个方向上同时滑动。一次抓拍覆盖连续3帧,把三帧里的像素变化浓缩成一个“动作笔记”(特征值)。扫遍整段视频,一本厚厚的动作笔记就诞生了,动作分类就靠读这些笔记来判断。

这个“立方体抓拍器”就是3D卷积核。2D卷积核是N×N的扁片,只能在单张图片上滑动;3D卷积核是N×N×N的小立方体,除了宽高外还能沿时间轴滑动,所以每次计算都同时看到“过去、现在、未来”三个时间点的画面。C3D(3D Convolutional Networks)由Tran等人在2015年提出,是第一个系统验证“直接用3D卷积做动作识别”的模型。

C3D输入16帧画面,使用8个3D卷积层加5个池化层、2个全连接层,卷积核统一取3×3×3。某个位置的特征值是如何算出来的?

正是这把立方体抓拍器,让C3D在UCF101(经典动作识别数据集)上拿到约85%的准确率。对一个从零学起的门外汉来说,这已是了不起的成绩——他证明了“连起来看”比“逐张看”有效得多。但门外汉的瓶颈很快也暴露出来:积累经验的速度,实在太慢了。

yt,h,w=∑t′=0kt−1∑h′=0kh−1∑w′=0kw−1xt+t′, h+h′, w+w′×Wt′,h′,w′+b\displaystyle y_{t,h,w}=\sum_{t'=0}^{k_t-1}\sum_{h'=0}^{k_h-1}\sum_{w'=0}^{k_w-1} x_{t+t',\,h+h',\,w+w'} \times W_{t',h',w'} + b
  1. y 输出特征某一次“抓拍”浓缩出的动作笔记,位置由(t,h,w)标记。
    yt,h,wy_{t,h,w}
  2. x 输入窗口卷积核当前覆盖的3×3×3小立方体像素块。
    xt+t′, h+h′, w+w′x_{t+t',\,h+h',\,w+w'}
  3. W 卷积核权重抓拍器的“偏好模板”,训练中学出哪些像素组合代表动作。
    Wt′,h′,w′W_{t',h',w'}
  4. 三重求和分别沿时间、高、宽三个方向逐一相乘再累加,等价于“把立方体里所有数字对位相乘后求和”。
    ∑t′=0kt−1∑h′=0kh−1∑w′=0kw−1\sum_{t'=0}^{k_t-1}\sum_{h'=0}^{k_h-1}\sum_{w'=0}^{k_w-1}
  5. b 偏置调整特征基准的小常数。
    +b+b

C3D的贡献与局限

门外汉教练有个致命短板:需要“喂”海量比赛录像才能积累经验,而且记笔记的方式极其铺张——每学一个动作都要写满厚厚一摞。换成技术语言:C3D的参数量高达约3300万,训练需要大量带标注的视频;数据一旦不够,他就会“死记硬背”(过拟合),换个场地就认不出动作。

C3D的贡献必须肯定:它是第一个系统验证“3D卷积可直接用于视频理解”的模型,为后续所有时空特征模型铺好了路。但局限同样突出——参数冗余。原因很简单:3D卷积核比2D核多了一个时间维度,权重数量成倍膨胀。把这种冗余算清楚:

在UCF101上跑出约85%的准确率后,研究者意识到:光堆参数、靠大数据硬喂的路走不通。标注视频极贵,计算资源也吃不消。C3D留下了两个待解问题:怎么减少对数据的渴求?怎么在同样算力下做得更快?这两个问题,分别由I3D和SlowFast来回答。

门外汉教练辛苦了,但他最大的贡献,是让行业相信“看动态”这条路值得走下去。接下来,团队决定换思路:不再从零培养,而是直接请一位“看了十几年照片的老专家”转行。

Params=Cout×(Cin×kt×kh×kw+1)\displaystyle \text{Params}=C_{out}\times(C_{in}\times k_t \times k_h \times k_w+1)
  1. C_out 输出通道数这一层打算记多少种不同类型的“动作笔记”。
    CoutC_{out}
  2. C_in 输入通道数上一层传来的特征图谱数量。
    CinC_{in}
  3. k_t×k_h×k_w卷积核在时间、高、宽三个方向的尺寸连乘,即核内权重个数。
    kt×kh×kwk_t \times k_h \times k_w
  4. +1每个输出通道额外的一个偏置项。
    +1+1
  5. 整体含义因为多了 k_t,参数量相比同尺寸2D核直接翻 k_t 倍(C3D中为3倍)。
    Params=Cout×(Cin×kt×kh×kw+1)\text{Params}=C_{out}\times(C_{in}\times k_t \times k_h \times k_w+1)

I3D的膨胀迁移策略

图片领域有一位身经百战的“照片鉴赏家”——在ImageNet上预训练过的2D CNN。它看一眼就能分清猫狗、识别物体、判断场景。可它只会看单张照片,怎么让它“动起来”?I3D的答案简单又巧妙:把2D卷积核“充气”成3D卷积核。2D核是N×N的扁片,沿时间轴复制 k_t 份,就变成了 N×N×k_t 的小立方体。

这个“复制充气”的操作在论文里叫 膨胀(Inflation),I3D全称 Inflated 3D ConvNet,2017年由Carreira等人提出。但“充气”不是简单的复制粘贴——如果原样复制,一个窗口里 k_t 份相同的权重相加,卷积响应会膨胀到原来的 k_t 倍。正确做法是复制后除以 k_t,让输出量级与2D保持一致:

这样初始化后,整个网络继续用视频数据微调即可,不再从零训练。I3D还搭配了批归一化(BN)和在大规模视频数据集Kinetics上的预训练。效果立竿见影:双流I3D(RGB加光流)在UCF101上达到98.0%的准确率,比C3D高出13个百分点。数据需求大幅下降——图像先验帮它省去了大量基础视觉概念的探索。

这位转行的照片专家,把“看照片”的本事平移成了“看视频”的能力,几乎没交学费就上岗了。I3D的贡献在于:视频AI不必从零开始,站在图像大模型的肩膀上,可以跳得更高。

Wt′,h′,w′(3D)=1kt Wh′,w′(2D)\displaystyle W^{(3D)}_{t', h', w'}=\frac{1}{k_t}\,W^{(2D)}_{h', w'}
  1. W(2D)照片鉴赏家已有的2D卷积核权重,里面藏着丰富的图像先验。
    Wh′,w′(2D)W^{(2D)}_{h', w'}
  2. t′时间轴上的第几层副本,从0到 k_t-1。
    t′∈{0,1,…,kt−1}t' \in \{0, 1, \dots, k_t-1\}
  3. 1/k_t归一化系数,把复制产生的信号放大抵消掉。
    1kt\frac{1}{k_t}
  4. 整体含义3D核的每一层都是同一套2D先验的“等分拷贝”。
    Wt′,h′,w′(3D)=1kt Wh′,w′(2D)W^{(3D)}_{t', h', w'}=\frac{1}{k_t}\,W^{(2D)}_{h', w'}

SlowFast的快慢双通路

现在来了一位更老练的教练。他看比赛时面前摆着两块屏幕:一块慢速回放,画面清晰、帧率低,专门研究手腕角度、重心位置这些“静态细节”;另一块正常速度直播,帧率极高,专门追踪球路弧线和爆发力。两块屏幕的信息在脑中汇合,判断“这一球是投篮还是传球”。这个双屏思路,就是 SlowFast。

SlowFast把网络拆成两条通路。慢路(Slow Path)以低帧率采样,但通道数多,负责提取“是什么”——颜色、纹理、物体身份等空间语义;快路(Fast Path)以高帧率采样(慢路的α倍,通常α=8),但通道数只有慢路的1/β(β=8),负责捕捉“发生了什么变化”——运动、速度、方向。两条路的配置差异用公式写清:

两条路各自算完后,怎么把信息合起来?SlowFast设计了横向连接(lateral connections):把快路的特征做时间与空间下采样后,拼接到慢路的对应层,慢路由此获得运动信息。这样慢路既能看清“谁在做什么”,又知道“动得多快”。在Kinetics-400数据集上,SlowFast达到了约75%以上的top-1精度,且快路增加的计算量很小,整体效率优于单路大模型。

双机位教练的智慧不在于看更多,而在于“分工”——用最小的资源捕捉最关键的差异。这也解释了它为什么叫SlowFast:快的那条路负责“动”,慢的那条路负责“懂”,两者合璧,又快又省。

rfast=α×rslow,Cfast=Cslowβ\displaystyle r_{fast}=\alpha \times r_{slow}, \qquad C_{fast}=\frac{C_{slow}}{\beta}
  1. r_fast 与 r_slow快路与慢路的帧采样率,α=8意味着快路每秒看的帧数是慢路的8倍。
    rfast=α×rslowr_{fast}=\alpha \times r_{slow}
  2. C_fast 与 C_slow两路的通道数,β=8意味着快路通道数只有慢路的1/8。
    Cfast=CslowβC_{fast}=\frac{C_{slow}}{\beta}
  3. 一高一低帧率与通道数成反比,快路“多而瘦”,慢路“少而胖”,总计算量可控。
    α=8,β=8\alpha=8, \quad \beta=8

演进脉络与工程选型

现在三位教练站在你面前:一位勤奋但费钱的门外汉(C3D),一位转行快但依赖底子的照片专家(I3D),一位双屏协作、效率极高的老教练(SlowFast)。该选谁?没有标准答案,得看你的“学员情况”——数据有多少,算力有多大,任务要实时还是离线。

核心权衡是数据量与先验。C3D从头学3D卷积,适合数据集足够大的探索性研究;I3D用图像预训练权重初始化,在中小数据集(如UCF101、HMDB51)上迁移效果显著;SlowFast在I3D基础上做了效率优化,适合大规模数据加真实场景部署。选型时还要算一笔“体力账”——估算计算量:

三模型的演进脉络是一条清晰的接力链:C3D证明“能做”(3D卷积可行)→ I3D让“能学好”(迁移先验解决数据饥饿)→ SlowFast让“能快用”(双路分工降低冗余)。每一代都在回答上一代留下的问题。如今做视频理解项目的首选路径通常是:用I3D预训练权重起步做迁移,或在资源允许时用SlowFast架构做精度与效率的平衡。

选教练没有“最厉害”,只有“最合适”。三位教练的接力恰是深度学习演进史的缩影——先证明方向,再降低门槛,最后打磨效率。理解了这条脉络,你就握住了视频理解领域的“观赛指南”。

FLOPs≈T×H×W×Cin×Cout×kt×kh×kw\displaystyle \text{FLOPs}\approx T \times H \times W \times C_{in} \times C_{out} \times k_t \times k_h \times k_w
  1. T 帧数输入视频的时长,帧越多计算量线性增长。
    TT
  2. H×W×C_in输入特征图的空间大小与通道数,是每帧要处理的“像素总量”。
    H×W×CinH \times W \times C_{in}
  3. C_out 与核尺寸卷积核的权重个数,直接决定每步计算的乘加次数。
    Cout×kt×kh×kwC_{out} \times k_t \times k_h \times k_w
  4. 直观理解任何一维翻倍,算力账单就翻倍,所以降通道或降帧率都能省下大量算力。
    FLOPs≈T×H×W×Cin×Cout×kt×kh×kw\text{FLOPs}\approx T \times H \times W \times C_{in} \times C_{out} \times k_t \times k_h \times k_w

AI 应用场景

养老院跌倒检测与实时告警

阶段:模型部署与推理优化

解决的问题:传统监控靠人盯屏幕,疲劳后极易漏报。SlowFast的快慢双路设计推理效率高,能在边缘设备上实时分析监控画面,识别“跌倒、徘徊、异常躺倒”等动作并触发告警。

具体案例:某养老院在公共区域部署顶装摄像头,用SlowFast模型24小时分析老人的活动状态。快路捕捉跌倒瞬间的速度急变,慢路确认人体姿态细节,双路融合后将误报率压到很低。检测到跌倒动作约2秒内,系统推送告警到护工手机。

篮球训练营的智能数据统计

阶段:模型微调与迁移学习

解决的问题:体育视频专业标注成本高,从零训练不现实。I3D用ImageNet与Kinetics预训练权重初始化,再用少量体育数据微调,即可快速识别投篮、传球、运球等专业动作,辅助自动剪辑与球员统计。

具体案例:一支篮球队用I3D分析训练录像,自动统计每次进攻中的投篮、传球和运球次数,并生成高光片段。团队仅用2000段标注视频微调,一周内就完成了系统上线,省去了数百小时的人工标录工作。

短视频平台的动作粗筛与推荐

阶段:离线批量推理与数据标注

解决的问题:海量短视频需要先做粗粒度动作分类(做饭、跳舞、跑步)以便打标签。C3D结构简单、部署轻量,在千万级视频的离线管线中能以极低的单条成本完成首轮粗筛,后续再由更强模型精排。

具体案例:某短视频平台用C3D在离线集群上批量给新上传视频打“动作类别”标签,准确率虽不及SlowFast,但单条成本仅为后者的约三分之一,吞吐量高出数倍。粗筛后的候选集再交给I3D精排,兼顾了成本与质量。

Python 演示

python55 行
import numpy as np def make_video(frames=8, height=16, width=16):    """生成模拟视频: 返回形状为 (T, H, W) 的随机帧序列"""    np.random.seed(42)    return np.random.random((frames, height, width))  def conv3d(video, kernel):    """单核3D卷积, 无padding: 核沿时间/高/宽三个方向滑动"""    T, H, W = video.shape    kT, kH, kW = kernel.shape    out = np.zeros((T - kT + 1, H - kH + 1, W - kW + 1))    for t in range(T - kT + 1):        for i in range(H - kH + 1):            for j in range(W - kW + 1):                patch = video[t:t + kT, i:i + kH, j:j + kW]                out[t, i, j] = np.sum(patch * kernel)    return out  def slow_fast_estimate(video, alpha=4, beta=8, slow_c=256):    """估算SlowFast双路计算量: 慢路隔alpha帧采样, 快路全帧率"""    slow = video[::alpha]    fast = video    slow_flops = slow.size * slow_c    fast_flops = fast.size * slow_c / beta    return slow_flops + fast_flops  def c3d_estimate(video, c=256):    """估算C3D单路全帧率全通道计算量"""    return video.size * c  def main():    video = make_video()    print("模拟视频形状 (T帧, H高, W宽):", video.shape)     np.random.seed(1)    kernel = np.random.random((3, 3, 3))    feat = conv3d(video, kernel)    print("3D卷积(3x3x3核)输出特征形状:", feat.shape)    print("特征值范围: %.3f ~ %.3f" % (feat.min(), feat.max()))     single = c3d_estimate(video)    dual = slow_fast_estimate(video, alpha=4, beta=8)    speedup = single / dual    print("C3D单路估算计算量:", single)    print("SlowFast双路估算计算量:", dual)    print("双路节省比例: %.1f%%" % ((1 - 1 / speedup) * 100))  if __name__ == "__main__":    main()
目的:用numpy从零实现一次简化的3D卷积,并对比C3D单路与SlowFast双路的估算计算量,直观展示“3D卷积怎么扫视频”和“双路设计为何省算力”。
  1. out = np.zeros((T - kT + 1, H - kH + 1, W - kW + 1))卷积输出比输入小,尺寸取决于卷积核能滑动几步。
  2. patch = video[t:t + kT, i:i + kH, j:j + kW]取出与卷积核同样大小的“时空小块”。
  3. out[t, i, j] = np.sum(patch * kernel)小块与核逐元素相乘后求和,得到一个特征值。
  4. slow = video[::alpha]慢路隔 alpha 帧采样,帧数降为 1/alpha。
  5. fast = video快路保留全帧率,专心捕捉运动变化。
  6. fast_flops = fast.size * slow_c / beta快路通道数只有慢路的 1/beta,计算量等比下降。

常见误区

误区视频不就是很多张图片吗,把每帧抽出来用2D CNN识别,最后把结果平均一下就是视频理解了,为什么还要搞3D卷积?

正解单帧图片丢失了时间信息。投篮和传球在某一帧上几乎一样,区别在球和手臂的“运动轨迹”上。2D CNN逐帧加平均的late fusion方案,正是早期视频模型性能上不去的原因之一。好比教练只看一页页静止照片,永远分不清投篮和传球——必须把帧间的变化纳入建模。

为何常见:图片识别太成熟,人天然会想“拆成图片处理”,而且实现起来最简单,容易忽略时间维度的关键作用。

误区C3D效果不够好,多叠几层、把卷积核从3×3×3换成5×5×5,性能不就更好了吗?

正解C3D用3×3×3的小核已经证明了“连起来看”有效。核越大参数越多,数据不够时过拟合更严重。提升效果的正确方向是:I3D用“膨胀加预训练”省数据,SlowFast用“双路分工”省算力。教练不是装备越贵越好,而是训练方法要对。

为何常见:直觉上“模型越大能力越强”,容易忽略数据与算力的约束,这是工程新手最常见的思维惯性。

误区膨胀不就是把2D权重沿时间轴复制几份吗?复制粘贴谁都会,I3D效果好应该主要靠更大的数据集吧?

正解简单复制会让卷积响应放大 k_t 倍,必须除以 k_t 做归一化;膨胀后的网络还要搭配批归一化、预训练数据和迁移微调才能发挥威力。I3D的贡献是一整套“用图像先验启动视频训练”的配方,而不只是复制权重这一个动作。照片专家“转行”不只要把照片叠起来,还要学会用时间轴思考。

为何常见:膨胀操作看起来简单,背后的初始化逻辑和数据配方容易被忽视,导致低估它的工程价值。

误区SlowFast是新一代SOTA,做视频项目直接上SlowFast就对了,还纠结什么C3D和I3D?

正解模型效果依赖数据规模与算力。小数据集、低算力场景下,I3D预训练权重的迁移性价比更高;C3D在简单小任务上依旧轻量可用。选型要看数据量、算力和实时性要求。给小区篮球队请NBA级教练团队当然好,但预算(算力)和球员(数据)不一定撑得住。

为何常见:关注“排行榜模型”而忽略工程约束,是算法工程师入行时最容易踩的坑。

面试题

Q1. 视频理解相比图像理解最核心的额外挑战是什么?

单选题 · easy

  • A.画面分辨率要求更高
  • B.必须处理时间维度信息← 正确答案
  • C.颜色通道数量更多
  • D.存储空间大幅增加

答案:B。视频由一帧帧连续画面构成,动作语义藏在帧间变化里。分辨率、颜色、存储问题图像同样面临,只有“时间维度”是视频独有。好比教教练看篮球,静止照片分不清投篮与传球,只有把时间轴纳入建模才行。

Q2. C3D 模型最核心的设计特点是?

单选题 · easy

  • A.只提取单帧空间特征
  • B.使用二维卷积核对帧操作
  • C.使用3D卷积核建模时空← 正确答案
  • D.依赖光流训练双流网络

答案:C。C3D用3×3×3三维卷积核直接在原始视频上学习时空特征,这是它的开山贡献。A和B是2D CNN的思路,D是后来I3D双流变体采用的技术路线,均非C3D的核心。

Q3. I3D 中“膨胀”Inflation 操作的本质是?

单选题 · easy

  • A.把视频帧分辨率放大
  • B.将2D卷积核沿时间复制← 正确答案
  • C.提高输入视频的帧率
  • D.扩充训练数据规模

答案:B。膨胀是把N×N的2D卷积核沿时间轴复制k_t份并除以k_t,形成N×N×k_t的3D核,从而复用图像预训练权重。放大分辨率、提高帧率、扩充数据都不是参数初始化层面的操作。

Q4. C3D 的主要局限是什么?

单选题 · mid

  • A.无法处理连续的视频帧
  • B.参数多且对数据需求大← 正确答案
  • C.只能识别静态图像内容
  • D.完全无法使用RGB输入

答案:B。C3D的3D卷积核带来约3300万参数,训练需要海量标注视频,数据不足时容易过拟合。A、C、D都与事实相反:C3D恰恰是为连续帧设计的,且原生支持RGB输入。

Q5. I3D 膨胀时 2D 卷积核权重如何初始化 3D 核?

单选题 · mid

  • A.复制权重并除以核时间深度← 正确答案
  • B.复制权重并乘以核时间深度
  • C.直接随机初始化不用预训练
  • D.取权重的平均值再填零

答案:A。复制k_t份后除以k_t,是为了保持卷积响应的量级不膨胀。直接复制会让输出放大k_t倍,随机初始化则丢失图像先验。照片专家“充气”时要把知识均分到每一层时间切片,而不是叠加。

Q6. SlowFast 中“快路”Fast Path 的主要职责是?

单选题 · mid

  • A.捕捉高频运动变化信息← 正确答案
  • B.提取精细的颜色纹理
  • C.降低整体输入帧率
  • D.完成最终动作分类

答案:A。快路以高帧率、低通道运行,专门捕捉运动、速度等高频变化;慢路负责颜色纹理、物体身份等空间语义。最终分类由两路融合后的特征共同完成。快屏看球路,慢屏看姿态。

Q7. 下列属于 SlowFast 设计要点的有哪些?

多选题 · mid

  • A.快路使用高帧率低通道← 正确答案
  • B.慢路使用低帧率高通道← 正确答案
  • C.两路通过横向连接融合← 正确答案
  • D.两路帧率必须完全一致

答案:ABC。SlowFast的核心正是帧率与通道数的反比配置,再加横向连接融合。D与设计相反:快慢两路帧率不同(通常差α=8倍)才有分工意义。慢镜头和直播必须快慢有别,双屏才能互补。

Q8. 2D CNN 逐帧处理视频的传统做法主要不足是?

单选题 · hard

  • A.逐帧提取后融合丢失运动信息← 正确答案
  • B.参数量过大导致无法训练
  • C.无法使用任何预训练权重
  • D.只能处理单通道灰度视频

答案:A。逐帧提取特征再平均或拼接的late fusion,把时间关系压扁,帧间的运动轨迹被丢弃。B、C、D都不是逐帧2D CNN的固有缺陷:预训练权重可用,彩色图也能处理。把翻页动画拆成单张看,动作就消失了。

Q9. 以下场景中更适合优先选择 SlowFast 的有哪些?

多选题 · hard

  • A.实时监控中的跌倒检测← 正确答案
  • B.只含静态照片的图库分类
  • C.高帧率运动捕捉与分析← 正确答案
  • D.计算资源受限的端侧部署← 正确答案

答案:ACD。SlowFast的强项是高效捕捉运动且算力可控,适合实时监控、高帧率动作分析和边缘部署。B是纯图任务,视频模型用不上,交给2D CNN即可。让双机位教练去看一叠静态照片,属于大材小用。

Q10. 关于 C3D、I3D、SlowFast 的技术演进,说法正确的有哪些?

多选题 · extreme

  • A.C3D 开创了 3D 卷积视频建模思路← 正确答案
  • B.I3D 用膨胀迁移解决数据饥饿← 正确答案
  • C.SlowFast 以双路分工提升效率← 正确答案
  • D.三者在精度上完全互不相关

答案:ABC。三者是清晰的演进链:C3D证方向,I3D降数据门槛,SlowFast提效率。D错误——三者是继承与改进的关系,精度一路提升。三位教练层层接力,后一位始终站在前一位的肩膀上。