张掖PVC管道管件粘接胶 里的动作, AI是怎么"看懂"的: 双流网络的故事

2014年,度学习已经在图像识别上得风生水起了。
AlexNet横空出世才两年,卷积经网络在ImageNet上把传统法按在地上摩擦,准确率路飙升。按理说,这套法拿到上应该也能横扫切才对,毕竟不就是张张图片叠起来的吗。
但事实很脸。
在动作识别这个域,度学习整整两年没能过个叫"密集轨迹"的老派手工特征法。不是差点点,是实实地落后。当时好的度学习法在UCF-101数据集上准确率大概是65左右,而手工特征法能做到87左右,差了20多个百分点。
20个百分点是什么概念。意味着每5个动作里,pvc管道管件胶度学习就要比手工法多认错1个。这在图像识别域是不可想象的差距,AlexNet当年横扫ImageNet靠的就是碾压的优势,怎么到了这里反而成了弟弟。
这篇发表于2014年NeurIPS的论文,题目叫《Two-Stream Convolutional Networks for Action Recognition in Videos》,作者是Karen Simonyan和Andrew Zisserman,来自牛津大学。这两个名字你可能觉得眼熟,没错,他们几个月后就发表了VGGNet,同个实验室,同个时间段的工作。这篇论文就是要回答个问题:度学习到底能不能在动作识别上翻身。
答案是能,而且翻身的式很巧妙。
到底难在哪
先说说这件事为什么难。
图片识别很直观,张猫的照片,网络学会识别耳朵、胡须、毛发纹理这些视觉特征就够了。但不样,的核心信息是动作,动作是随时间展开的,个人挥手和个人举手不动,单看某帧图像可能长得几乎样,区别只在于"接下来发生了什么"。
如果直接把的每帧当成立图片扔给卷积经网络,网络确实能学到些东西,比如场景、物体、颜这些静态信息。但动作本身的动态特征,网络学不到,因为网络看到的永远是孤立的静态画面,不知道这些画面之间发生了什么变化。
之前也有人尝试用3D卷积直接在时间和空间两个维度上做卷积,想让网络自己从原始像素里学出动态特征。但这个思路当时果并不好,个关键原因是数据量不够,网络很难从有限的数据里自己学出复杂的运动模式。这就像让个从没学过物理的人,光看几张连续照片就总结出牛顿运动定律,太难了。
光流:把运动本身画出来
这篇论文的核心思路,是不让网络自己去猜运动信息,而是先把运动信息计出来,直接喂给网络。
这个计出来的运动信息叫光流。
> 光流:描述中每个像素点在相邻两帧之间移动向和速度的种表示法,本质上是张张记录了运动矢量的图。
光流图长什么样,你可以想象成给每个像素点画个箭头,箭头指向它在下帧里移动到的向,箭头的长短代表移动的速度。把这些箭头拆成水平向和垂直向两个分量,就得到了两张图张掖PVC管道管件粘接胶,分别记录了每个像素的横向运动和纵向运动。
这样来,里的动作信息就被提前"翻译"成了种网络容易学习的形式。网络不需要自己去对比前后两帧图像找差异,这些差异已经被计好摆在面前了。
这就好比你想教个刚学英语的孩子理解篇很难的古文,直接把古文甩给他,他大概率头雾水。但如果你先把古文翻译成白话文再给他看,理解难度立刻降了大截。光流做的就是这个翻译工作,把"动作"这种网络不擅长直接理解的原始信号,翻译成"运动矢量"这种网络擅长处理的结构化信号。如果不做这个翻译,直接让网络硬啃原始像素序列,网络就得同时兼顾学习"什么是运动"和"这是什么运动"两件事,任务难度直接翻倍,这也是为什么之前3D卷积的路子走得比较艰难。
两条流,条看空间条看时间
有了光流这个工具,论文提出的架构就顺理成章了,这也是这篇论文核心的贡献,叫双流网络。
> 双流网络:种把信息拆成两路分别处理再融结果的卷积经网络架构,路处理单帧静态图像,另路处理光流运动图。
具体来说,网络分成两个立的卷积经网络分支。
条叫空间流,输入是里的单帧RGB图像,负责识别画面里的场景、物体、人物外观这些静态信息。比如你要判断里的动作是"篮球"还是"踢足球",光看帧图像,能不能看到篮球场、篮筐这些场景元素,就是很强的线索。
二条叫时间流,输入是连续多帧计出来的光流图,堆叠在起形成个多通道的输入,负责捕捉动作本身的运动模式。比如"挥手"和"鼓掌"这两个动作,画面场景可能长得差不多,但手部运动的轨迹不同,这就得靠时间流来分辨。
两条流各自训练各自的卷积网络,后把两边的预测结果融起来,可以简单加权平均,也可以再训练个支持向量机来组两边的输出特征。
> SVM(支持向量机):种经典的机器学习分类法,这里用来把两条流各自输出的特征分数组成终的判断结果。
为什么要分成两条立的网络而不是揉在起训练个大网络?这背后是研究者的个判断,静态外观信息和动态运动信息,它们的统计规律差别很大,个是关于"像素颜纹理怎么分布",个是关于"像素怎么随时间移动",硬塞进个网络里让它自己去分辨这两种截然不同的模式,不如干脆分开,各自用适的网络结构和数据去学。
这个设计思路你可以类比成个团队解决案子。侦探需要同时观察现场留下的物证(相当于空间流看到的场景线索)和监控录像里的行动轨迹(相当于时间流看到的运动线索),这两种线索的质不同,个是静态的物理证据,个是动态的行为模式。如果强迫个侦探同时用同套思维式去处理这两类不同的信息,果往往折扣,好的做法是让擅长看物证的和擅长看录像的分别分析,后再碰头汇总结论。双流网络的两个分支就是这两位,分别精,后融。
如果只用空间流会发生什么?论文里做了对比实验,只用空间流,在UCF-101上的准确率是72.6。加上时间流融之后,准确率提升到88.0,整整多了15个百分点。这说明动作识别里光看画面长什么样是远远不够的,运动信息本身携带的判别力非常强,甚至比静态外观关键。

论文里的架构图画得很清楚,输入之后被拆成两路,上面路是单帧图像进空间流卷积网络,下面路是多帧光流叠加进时间流卷积网络,两边立跑完各自的卷积层和全连接层,输出的分类分数在后做融,给出终的动作类别判断。
多帧光流叠加:给时间流长的记忆
时间流具体怎么处理光流数据张掖PVC管道管件粘接胶,这里还有个值得展开的细节设计。
单帧的光流信息其实很有限,只能反映相邻两帧之间瞬间的运动。但个完整的动作往往需要长的时间窗口才能看清楚,比如"起跳"这个动作,如果你只看某个瞬间的运动矢量,可能看起来只是"往上移动点",很难和别的动作区分开。
论文的解法是把连续多帧(论文里用的是10帧)的光流图堆叠在起,作为时间流网络的输入,让网络能看到个长的运动轨迹片段,而不是孤立的瞬间。
这就好比看段慢动作回放来判断裁判该不该判罚,如果只给你张截图,你很难判断球员是不是真的犯规了,但给你连续十几张连拍照片拼在起看整个过程,动作轨迹就清楚多了。堆叠多帧光流,本质上就是给网络多看几张"连拍照片",让它能捕捉到个动作从开始到结束的完整运动模式,而不是被单瞬间的信息误。
论文还比较了两种光流的表示式,种是常规的光流,另种叫轨迹叠加光流,是把光流沿着物体运动轨迹重新采样对齐后再叠加,理论上能好地消除相机自身晃动带来的干扰。实验发现两种式果相差不大,常规光流已经够用,这也说明了论文法的鲁棒,不需要过分复杂的预处理就能拿到不错的果。
数据不够怎么办:多任务训练
度学习个老生常谈的问题是数据饥渴,越复杂的网络越需要海量数据才能训好,而当时能用的动作识别数据集规模都不大,比如UCF-101只有101类动作,几千段,跟ImageNet动辄百万的图片量比起来差得远。
论文用了个技巧来缓解这个问题,叫多任务学习。
> 多任务学习:让同个网络同时在多个相关但不相同的数据集或任务上训练,共享底层特征,分别输出对应任务的结果。
具体做法是把网络后的分类层拆成两个分支,个对应UCF-101的101个类别,个对应另个数据集HMDB-51的51个类别,底层的卷积特征是共享的,两个数据集的样本混在起训练,反向传播的时候各自只新自己对应的输出分支和共享的底层参数。
这么做的好处是相当于把两个小数据集拼成了个大的训练资源,底层的通用运动特征可以从两份数据里起学,虽然两个数据集的类别定义不样,但都是关于人体动作的,共享的底层规律是相通的。
这有点像个学生同时准备两门相关的考试,比如物理和数学,虽然考试内容不重叠,但很多基础的逻辑理能力、计能力是通用的,同时准备反而能让这些通用能力练得扎实,不会因为单科题量太少而练不出手感。多任务训练之后,论文报告在HMDB-51上准确率从54.6左右提升到59.4,提升幅度相当可观,证明了这个"资源拼凑"的思路确实管用。
终成绩单
那么这套双流网络后得怎么样。
在UCF-101数据集上,双流网络融后的准确率达到88.0,这个数字终于追平甚至过了当时好的手工特征法(比如密集轨迹特征约87.9)。在HMDB-51上,准确率是59.4,也是当时具有竞争力的水平。
| **双流融(SVM融)** | **88.0** | **59.4** |
这是度学习次在动作识别这个具体任务上,平甚至反手工特征法。在2014年,这句话的分量不亚于两年前AlexNet在图像识别上的横空出世。区别是AlexNet那次赢得干脆漂亮,双流网络这次赢得来之不易,足足晚了两年,而且靠的不是纯粹的端到端学习,是巧妙地把光流这个手工设计的运动表示嵌进了度学习的框架里。
这个"不端到端"的特点后来也成了争议点和改进向。
后来发生的事
这篇论文之后,双流网络成了动作识别域接下来好几年的标准范式,大量后续工作都是在这个骨架上做改进。
2016年,Feichtenhofer等人发表了论文,提出了好的双流融式,让空间流和时间流在网络中间层就开始交互融,而不是等到后才融分类分数,这个改进让准确率进步提升。
2017年,Carreira和Zisserman(没错,还是Zisserman)发表了I3D(Inflated 3D ConvNets)论文,把双流的思路和3D卷积结起来,同时提出了大规模数据集Kinetics,用海量数据直接训练3D卷积网络,某种程度上验证了双流网络当年绕过的那个数据不足问题,只要数据量真的上去了,3D卷积也能学出很好的时空特征,不定非要依赖手工计的光流。这也从另个角度说明了双流网络当年的设计选择,是那个数据稀缺时代下的个聪明妥协。
这两篇后续工作都在用不同式,尝试解决双流网络本身的个软肋,光流的计本身很耗时,而且是立于分类任务之外单出来的,没有真正做到端到端优化。这条改进的线直延续到后来的SlowFast网络等新的架构设计里。
写在后面
读这篇论文触动我的地,是它没有执着于"度学习须端到端"这个信念。
2014年那会儿,端到端学习正是度学习引以为傲的招,不需要手工设计特征,让网络自己从原始数据里学切。但Simonyan和Zisserman很务实地承认,在数据不够的情况下,硬要端到端反而学不好,不如把光流这个前人已经研究得很成熟的手工工具直接嵌进网络里用。
这种"该妥协就妥协"的态度,反而换来了当时好的结果。这让我想起很多工程问题里的个共同规律,理论上优雅的案,不定是当下条件可行的案。双流网络能被后来的I3D等纯数据驱动法部分取代,恰恰印证了这点,法本身没有对的对错,只有匹配不匹配当下的资源约束。
如果现在的数据和力放到2014年,双流网络这个中间案还会被提出来吗?这个问题留给你想。
Q&A
Q1:双流网络是什么?
A:双流网络是2014年Simonyan和Zisserman提出的种动作识别法,把信息拆成空间流和时间流两条立的卷积经网络分支分别处理,空间流处理单帧静态图像识别场景外观,时间流处理多帧堆叠的光流图捕捉运动模式,后融两边的预测结果。
Q2:双流网络里的光流有什么用?
A:光流是描述中每个像素点在相邻帧之间运动向和速度的表示法,相当于提前把动作信息翻译成网络容易学习的运动矢量形式,让时间流网络不需要自己从原始像素里摸索运动规律,直接学习已经计好的运动信息,大大降低了学习难度。
Q3:双流网络和后来的I3D网络有什么关系?
A:I3D是2017年Carreira和Zisserman提出的后续工作,把双流思路和3D卷积结,并配大规模Kinetics数据集直接训练,某种程度上验证了双流网络当年靠光流绕开数据不足问题的判断,旦数据量足够大,3D卷积也能自己学出好的时空特征。相关词条:设备保温 塑料挤出机厂家 预应力钢绞线 玻璃丝棉 万能胶厂家
奥力斯 万能胶厂家 联系人:王经理 手机:18231788377(微信同号) 地址:河北省任丘市北辛庄乡南代河工业区
1.本网站以及本平台支持关于《新广告法》实施的“极限词“用语属“违词”的规定,并在网站的各个栏目、产品主图、详情页等描述中规避“违禁词”。
2.本店欢迎所有用户指出有“违禁词”“广告法”出现的地方,并积极配合修改。
3.凡用户访问本网页,均表示默认详情页的描述张掖PVC管道管件粘接胶,不支持任何以极限化“违禁词”“广告法”为借口理由投诉违反《新广告法》,以此来变相勒索商家索要赔偿的违法恶意行为。