秦浩的“不络葛” - 可扩展多媒体分析平台
可扩展多媒体分析平台 
【版权声明】本文中的所有文字和图片涉及柏林工业大学(Technische Universitaet Berlin)的知识产权。如果需要转载务请先行与我联系。

从 2005 年中算起的话,我在学校的 MMSA 组已经混了近两年的时间。在项目即将赴汉诺威(Hannover)参加 CeBit 电脑展的前夕,我也姑且写一些东西,权当作给自己的一个交代。

MMSA 即是多媒体信号分析之意。我们的目标实际上是把视频信号自动按照内容归类。比如说分类成新闻、体育、音乐、卡通等等所谓的风格(Genre)。其中涉及的内容很多,从视频解码一直到模式识别【图一】。


【图一】视频分类系统

在我产生为此开发一个平台的念头之前,2005 年有大约一半的时间我是在写一个 MPEG-2 的解码器。万事开头难,尤其是那个学期我同时进修了两个课程设计(课题是 MPEG-2 和 MPEG-7)和一个实验课(通信技术)。一个学期下来我几乎只剩下半条命……现在回想起来几乎有点不可思议。

从数据分流(Demux)到霍夫曼(Huffman)解码,从余弦变换(IDCT)到运动补偿(Motion Compensation),所有的细节统统都亲历亲为,实在是一件非常艰巨的事情。不过最后解码器好歹是写出来了,尽管非常慢 ^_^bbb。但是在当时,那是我们能够找到的唯一提供了运动矢量(Motion Vector)导出功能的解码器。这使得其他的同事们开发基于运动矢量的识别算法提供了可能。这个解码器一直沿用到了我修改了 mpeg2lib 的代码使之能够导出附加编码信息为止。关于 MPEG-2 我以后或许会另外写一些东西,这里就不赘述了。

2006 年我便开始做我的研究作业(Student Research Project),课题是一个具有高度复用性的框架。因为当时各位同学们的作业都是用五花八门的编程语言制作的,所以接口也就千奇百怪。这么一来这些成果的可复用性几乎为零;另外对于一个初学者来说,自己编写 GUI 是一件非常耗时的工作,而且往往还做不好。这样我的另一个目标就是将用户界面进行封装,用统一的制式界面把其他人从繁重的 GUI 编码中解放出来。

从另一个方面来说,因为目前尚缺乏理论的指导,在进行多媒体识别的时候,大家基本上都是采取“摸着石头过河”的撞大运方式。这样一来就需要进行大量的实验去把各种方案进行对比和筛选。如果缺乏统一接口的话,进行这种实验将在重复编码方便耗费大量的时间。

于是乎,可扩展多媒体分析平台(eXtensible Platform for Multimedia Analysis)应运而生。其实 XPMA 在 2006 年的 8 月就已经处于准完成状态,而后的“舾装”则一直延续至今。平台最初的名字是 Universal Classification Platform,后来又更名为 General Classification Platform。直到2006年底才最终修订为现在的名字【图二】。


【图二】XPMA 版本及授权信息

简单的说来,XPMA 实际上是一个基于数据帧的可编程信号处理器。平台的功能由插件来实现【图三】,而最终用户则可以凭借 XML 按照自己的需求来对这个平台进行编程,使之完成自己想做的事情。为了简化插件开发者的工作,平台对数据容器进行了封装,并提供了一系列的 API 来使得数据操作变得简单。同时平台还维护着一个通信机制,使得 .NET 和 Win32 的插件能够协同工作。


【图三】程序主窗口以及插件总览

XPMA 编程的原理其实很简单。一个系统是由若干个独立的模块(Module)组成的,各个模块之间进行数据交换。抽象的说来,每一个功能模块都有诸如输入、输出、选项等属性,这些属性都有一些预定义的名字。用户的工作就是凭借这些名字,用 XML 把这些模块的输入端和输出端联系起来【图四】。


【图四】源代码编辑器——以一个视频播放器的源代码为例

作为一个多媒体的实验平台,XPMA 提供了对任务流程的“启动”、“暂停”以及“步进”等功能。除此之外,你可以在 Hierarchy 页面查看所有接口数据的值【图五】,也可以在 Flow 页面查看所有模块运行的效率【图六】。如果你定义了可视化的模块的话,你还可以在 Visualization 页面中查看已经被图形化了的数据(图像、文本、曲线等)【图七】。


【图五】运行时界面之数据浏览


【图六】运行时界面之模块效率


【图七】运行时界面之可视化效果

因为所有的数据都是通过名字来进行索引的,因此模块的文档就显得十分重要。XPMA 也同时考虑到了这一点。在插件浏览器(Library Explorer)中,用户能够即时查看到所有的插件详细描述【图八】。


【图八】插件浏览器以及插件文档

XPMA 目前的版本是 1.1.0.83。使用的视频解码器有 MPEG2Lib 和 FFMpeg。这两个著名的解码库都经过了我的修改。前者能够提供 MPEG-2 的附加信息,但是可惜却不支持音频解码;而后者则能够解码几乎所有的常见视频格式,并把所有的音频帧重新同步对齐到视频帧,因而适合于需要视频音频同步分析的场合。

近两年的时间里,我主要负责的是平台和接口的设计以及解码插件的制作,而有很多具体的描述以及识别功能则是由另几位同学贡献的。此外,我还制作了一个能够通过数学表达式定义输出的音频信号发生器。在信号处理的教学中,诸如讲解调制方式时,大家可以通过实时的频谱观察得到最直观的体验【图九】。


【图九】调幅(上)与调频(下)的波形及频谱(载波频率4KHz,信号频率1KHz)

从下个学期开始,XPMA 将作为学校《识别技术(Classification Techniques)》这门课的实验平台,并且将在识别模型方面有关键性的扩展。同时,我们也很乐意与其他的学校或企业展开合作。如果你对这个平台有兴趣的话不妨与我联系:)

够专业。。。。。
表吓倒ddmm们。。。。。。。

不懂:(

liuchang 
咳……咳咳……(是啥意思?)


vor 
啊哈!大家都比较迷惑,我也是!
Frage
1。这是一个什么软件?
1。针对哪些人群设计的?我们也可以用这个吗?
2。可以用在哪些方面?
可以用简单的几句话解释一下让俺们Laien也知道个大概吗?呵呵。
谢谢蛋糕!

秦浩 
我改:P

liuchang 
鹤,问得好啊!!
看来你还没复习糊涂呢,呵呵

秦浩 
岂止是不糊涂?简直就是清醒得不得了:D

VOR 
啊!大概知道是干什么的软件了。哈哈哈!谢谢蛋糕!
真高级啊!还可以自动分类啊!HoHoHo...有空给大家演示一下噢.

vor考试考完了?这么high?
我的cf卡是不是在你哪里啊?
你的手机号码是不是变了啊?

liuchang 
她的手机号就不用问了……

秦浩 
听说她的手机昨天又找到了……

liuchang 
看到你光顾我那里,以为你又有什么“大作”发表呢。
我还不是很了解你:P

liuchang 
费加罗的blog打不开……

liuchang 
打开了,:P

秦浩 
貌似要先登录……

liuchang 
是的。
打开了,什么都没写……
问:cebit好玩吗?
答:无聊透了!!
哈哈哈哈哈

淘了些什么东东?。。。。。

秦浩 
没什么好看的,最后只是得到了两根电缆,还是展商送的……

评论 

发表评论

填写下面的表单来发表您的评论。









插入标签:


:-_-: :ANGRY: :ANIME: :PERSPIRATION: :BIG_LAUGH: :BIG_SMILE: ^_^bbb :BLUSHED: :BOWING: :CHILLOUT: :CONDUCTOR: :CRYIN: :CURSOR_STAB: :DOG_FACE: :DROOL: :EVIL_SMILE: :EYE_CLOSE: ;) ;-) :FAINT: :GROWLER: :HAPPY: :HEY: :JUGGLING: :MEDITATE: :BIGGER: :MUAHAHAH: :NORMAL: :OO: :OOPS: :PACMAN: :PACMAN2: :PAIN: :PANIC: :PARANOID: :PAT: :PIRATE: :PLOTTING: :SAD: :SCARED: :SEE_NO_EVIL: :SHOOT: :SKULL: :SMILE: :SMITTEN: :SMOKE: :SORRY: :SPEACHLESS: :SPEAK_NO_EVIL: :SUCK: :SUN_GLASSES: @_@ :SURPRISED: :SWEET: :) :-) :TEETHS: :THINKIN: :TONGUE: :UUUUUUU: :WISPER: :WOOO: :WOW: :WTF: :XD: