MIT新算法加速搜索视频内动作效率

创见2014-06-06 17:20:26

数码相机普及的时代已经是过去式,现在的智能手机均带有高分辨率的摄像头,人们可以轻松地用这些摄像头来拍摄出自己想要的内容,但是内容生产的简单却带来了内容寻找的麻烦。现在许多计算机科学家正在开发更高效的算法来让视频更加有意义,简单来说就可以能够让计算机知道视频内某一刻的画面正在发生什么事情。

本文作者 Larry Hardesty,原文发表在麻省理工学院官方网站。


本文所介绍的可搜索视频内画面内容的技术由美国麻省理工学院博士后 Hamed Pirsiavash 和加州大学博士论文导师 Deva Romanan 开发,他们所用的“活动识别算法”比其他同类型算法更加优秀,运行效率更高。

其中一个优点就是算法执行的时间随视频内容体积的增大而线性增长,而非几何级增长。这就意味着,如果视频文件 B 是视频文件 A 的 10 倍大小,这个新算法在搜索内容时所消耗的时间相差了 10 倍,而不是其他同类算法的 1000 倍。

另外,这个算法对于部分完成的动作的猜测也比较准确。以前的算法需要等待画面中一个动作结束后计算机才会开始猜测完成的动作是否是某一动作,新的算法允许动作画面未完成便开始猜测这一动作的归类,效率增加,节省计算时间。

最后,算法执行过程中所需要的内存量下降,不再需要将已经“审查”过的视频内容存放在内存中。这也就意味着,这种新算法可以处理任意长度(或任意体积)的视频内容,完成了其他同类算法无法完成的任务。

动作语法

要实现上述特点,就需要新的自然语言处理技巧的支持,也要完成许多挑战:

Pirsiavash 说:“其中一个挑战要解决的就是理解句子。拿到一个句子之后,首先要分析句子,找出主语、动词和副词之类的,这就好比是理解一个复杂的动作,比如说泡茶、泡咖啡等,这些动作都会包含一些小动作,这些小动作也要分析出主语、动词和副词。”

这样一来,规定小动作之间关系的规则就相当于语法的规则。当人泡茶的时候,不必在意到底是先放茶还是先烧水,重要的是将炉子上烧好的水倒到茶杯里。这就好比语言,名词可以跟着动词后面,也可以放在动词前面,但是形容词一定是放在名词前的。

Pirsiavash 和 Ramanan 的算法要解决这个问题就得再学一种新的语法,这种新的语法要考机器学习来解决。Pirsiavash 和 Ramanan 用一些特定动作的视频来训练算法,规定了一个动作的小动作数量等。不过他们并未给大动作规定它附带的小动作是什么,也不规定动作之间的转变过程。

整理可能性

连接小动作的规则是决定算法效率的关键。视频开始播放之后,算法就开始构建一系列可能的小动作猜想,然后根据概率来排序。新算法一开始不可能只有一种动作猜测,因为每一帧都有可能改变动作的序列,但是它也可以根据语法规则来删除掉一种不符合的动作猜想,然后将动作的猜想限制在一定范围内。

研究者用他们的算法测试了 8 种运动员动作,比如举重、打保龄球等,视频均来自 YouTube 视频网站。他们发现,根据计算机领域的标准,他们的算法比之前的算法在发现相同动作的不同实例上更加准确。

Pirsiavash 对这一算法应用于医疗用途的动作检测非常感兴趣。可以用来帮助病人进行复健,或者是提醒上了年纪、忘记吃药的病人去吃药。

伊利诺伊大学计算机科学教授 David Forsyth 说:“很长时间一来,我们就知道一个动作会包含许多小动作。但问题是我们不知道这些小动作是什么,也没人能给我们有标记的训练数据,比如说‘跳水包含 2 个动作,举重包含 7 个动作,链球包含 21 个动作,然后给这些动作一次命名。’我们需要的是一种算法,它可以从无数个举重的视频中找出‘这个动作在举重中重复了无数次。’”

Forsyth 还说:“我不能说这个问题已经被解决了,但是这种新算法非常强大。这是我见过的此类算法中最好的。”

你可能感兴趣的文章