以会议场景为例,在会议室里面如果有一个摄像头可以把周围的场景拍摄下来,它就可以做很多事情,比如可以用手势来控制演讲的幻灯片播放等。 大约三、四年前我们开发了一个采用ARM CPU的小盒子,它可以连接上投影仪和Kinect,一方面实现无线投影的功能,另一方面还可以通过Kinect实现手势控制。要知道,Kinect原本是连接到Xbox上的,在Xbox上实现手势识别,但我们做的小盒子处理器能力较弱,所以需要服务器或者云的帮忙。 在云端做识别还有一个好处,就是识别算法的更新升级可以更快。这样,就需要深度图像的压缩和传输。解压缩的图像不是为了看,而是为了识别,因此对压缩算法的设计要求就有所不同。另一方面,我们的手势有时是为了控制,有时是为了演讲的需要,因此我们可以有选择地控制采集频率。总之,在这样的系统中,需要综合考虑计算机视觉、视频压缩和多媒体通信等领域技术,使它们协同工作。 前面的应用主要是以视频作为输入,由用户来主动控制计算机,而更加智能的应用则是让计算机主动地理解环境。以会议场景为例,机器如果知道在会议室的某个角落有几个人在交谈,它可能会把一些灯光切到这个地方,或者是做一些相关的操作,比如把会议内容摘要记录下来等等,这些都需要对整个环境进行理解。 对人的理解和动作的识别,是以对人的检测和跟踪为基础的。所以,在智能视频分析上,我们重点关注的是实时的多目标检测和跟踪,特别是人的检测和跟踪。 人体是非刚体,所以人体检测通常比人脸检测更难,更具有挑战性。而深度学习和卷积神经网络的发展极大地提高了精度,但也带来了极大的计算开销。目标的跟踪是在目标检测的基础上进行的,算法的执行比较快,但算法通常很复杂,处理的情况很多。例如,当一个人被遮挡后,在重新出现时需要保持ID不变,也就需要Re-ID的技术。我们在目标检测和跟踪上都有一些核心算法。在一些公开的数据集上也有很好的排名。 那么到底应该在云里做,还是在摄像头里做? 我们针对现在的算法做了一些实验。如果在摄像头上做人体检测,在保证精度的前提下,基本上需要1秒1帧。而人体跟踪可以比较快,所以可以做到60毫秒1帧。显然,这个速度满足不了实时的要求,如果在云或者服务器端做,速度可以很快,但是把视频上传到服务器的代价也比较高,容易产生比较大的延迟。 所以,最直接的想法就是采用云和摄像头的混合方案,把关键帧送到云里做人体检测,再把结果返回摄像头继续做人体跟踪。这样,大部分视频帧是在摄像头直接完成的,减少了视频传输的开销,也减小了延迟。 当然,对关键帧的人体检测仍然会有比较大的延迟,在算法实现上还可以通过前面目标跟踪的结果加速目标检测的过程。总之,实际的算法会相对比较复杂,流程涉及到的一些小算法比较多,需要合在一起才能得到一个比较完美的结果。这也是我们组现在研究的重点。
给大家看看这个结果,这是一个人的检测算法,大家可以看到,如果我们想在高端机器上去做,结果会变得很完美,但实际上因为是在摄像头里面做的,所以有时候稍微有一些抖动,但是整体的结果还是相当棒的。 我们可以检测出人的位置,而且能把他的ID保持不变。这个位置的定位很有意思,我们是通过单一摄像头来实现的,所以也是一个简单的算法,基本上就可以把每个人的位置算出来。后面是车的检测,其实车的检测相对来说会容易很多,基本上所有的车都能检测出来,主要是因为人是非刚体。
总结一下,今天主要介绍如何通过多媒体技术连接云与端,通过用户界面的虚拟化为云计算带来智能的交互。重点讲了两个项目,云中的屏幕和云中的视觉。通过这个报告,想告诉大家我们既做基础算法研究,也做交叉学科的系统研究,包括云计算、移动计算、计算机视觉、机器学习、多媒体计算与通信等不同的领域。 我们多媒体计算组致力于推进媒体技术以帮助计算技术的演进。 这就是我今天报告的内容,谢谢! 作者简介
吕岩,微软亚洲研究院资深研究员 (责任编辑:本港台直播) |