开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算:视频场景分割与语义分段(下)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/811/detail/15703
视频场景分割与语义分段(下)
镜头怎么去聚类:
场景中通常镜头具有相同或者相似的内容,比如说动作,场所或者时间。凭什么把镜头它划分成一个场景,举个例子,上课一个镜头拍的是我,一个镜头拍的同学们,如果这里边没有拍到相同的任何一个对象。这事情怎么去合并,如果拍到了,比如说角度里面,后面的摄像机拍我的时候拍到了课桌,前面这个相机拍你的时候也拍到了课桌,就找到了相同的对象,说这两个镜头里面同时含有了课桌,那应该是同一个场景,教室,就应该是老师给学生上课,如果没在视觉上没有任何相同的内容,怎么来判定它是不是同一个场景,其实可以通过光线。比如这个教室里面它的光线是一样的,这也是线索,其实镜头聚类里面找相同或者相似的线索是一个重要的内容,如果镜头具有相同或者相似的内容就认为这两个镜头属于同一个场景。它的语义是相关的。
如何度量相似度:
度量两个镜头,如果从视觉上来度量这个相似度有两种方法,一个就是视频的帧序列。两个镜头里面的图像真去求它的相关性,另外一个就是提取它的关键针来判定关键帧之间的相处,
哪个效率更高,第一个一帧一帧的去比,肯定会慢慢,还涉及到说某一个镜头帧多一点,另外镜头少一点,还是要一个怎么去配准的问题。
第二个就是关键帧的方式其实效率是比较高的,但它依赖于你关键帧的提取算法是不是正确,计算这个帧对的相似度,可以设计两个镜头的之间的这种计算,就设计一个对准函数和一个构造函数来计算镜头的相似度。
这个特点是需要计算镜头里面每一个帧的相似度,它的计算量很大,设计一个好的对准函数,或者构造函数是很困难。在历史上,也有很多学者做过一些努力,但效果不是特别好。
基于关键帧这种方式,使镜头的关键帧的相似度,它的方法是只计算镜头的关键帧,因此它的效率高,计算量小,速度快。但它的问题是错误很多,就相当于视觉上完全没有任何关系的时候,它相似度算出来是非常小的。但是视觉上不相关不代表其它地方就不相关。
根据问题进行思考,有很多的文章也讲过,大家有兴趣的可以去查找相关参考文献,去看一看早期的学者是如何研究这个问题。
对于大多数这种视频数据来说,用户很难再聚类之前给出簇的数目,因此镜头聚类大多情况下使用的是一个层次化的聚类方法。
视频聚类可以这样来分:
第一个就可以分为不考虑时间因素,比如一部片子里。在运动视频下,时间的相关性很重要,因为整个比赛它是连贯的进行,很多很多镜头,只把只要相关的聚集在一个场景。另外一个呢,就是我要考虑事件的连贯性。
这个看分析的内容。如果是在同一部片子,比如说在在这种运动视频下,如果把前后隔了很久的把它聚在一起,即便是发生在同一个地点,它也已经是不是一回事儿,就像前面的五分钟以前,这个镜头是射门和五分钟以后那个进球未必是有关系的,但把它硬在一起就有问题了。但是在这个电视剧里面,有的时候是可以的,尤其成年人看的这种这个故事片,故事片很复杂,有多个线索同时存在的时候。比如拍一个片子说于老师上课,另外一个可能讲另外一个线索去了,回过头又来讲于老师在上课,其实虽然已经被其他的很多聚分割开了,而我上课这个场景还是同一个。
对于这样的分析不考虑时间,就是有道理的。但是如此复杂的分析,让机器去看是有问题的话,比如说张艺谋的电影经常看完了以后怎么没看懂,不知道什么意思,为什么他整个的情节设计的就一个呢,情节很多,还有一个就是很多的故事讲得太多讲得太短。
回答前面的问题,如果视觉上没有任何的相同的东西,怎么去分析场景,这个时候可以考虑什么视频之外,比如是不是有连续的语音,是不是有连续的背景音乐,以连续的语音为例,虽然拍你们的镜头里面没有任何拍我的镜头里面的这种物体,比如说我这里有奖牌,有 PPT的,有投影,而你们只有课桌,但是整个的视频里面它有连续的声音,都是我在讲话,这实际上就是给了一个重要的线索。
还有比如说在咖啡厅里谈话,在里面拍了很多的场景,一个就拍,你比如说你和女朋友俩人在喝咖啡,另外一个可能拍整个的这个咖啡厅的场景,它也没有相同的视觉的元素在里面,但可能咖啡厅里面正在播放的那首曲子是连续的,这样也可以把这两个不同的镜头把它划分在一个场景里面。
关于这个可以在真正的不同领域的视频里面来选择不同的线索。把不同的镜头聚类成场景之后,再往上其实就是要去分析情节和逻辑的故事单元了。
情节与逻辑故事单元:
从编辑的角度来看镜头是视频沿时间的一个基本的单元,场景或者事件是视频中最小的语义单元,或者它是将一个或者几个相关的镜头进行组合。一个场景以由多个场景片段构成,一个事件片段可以由一个或多个镜头构成。
情节包含时间上相关的一个故事内容,一个情节可以由多个场景组成。有的时候去讲一个情节,比如约会,张三去约李四,一开始可能打电话问今晚有空,打电话的拍了一个镜头,对方接电话一个镜头,两个加在一起是打电话的场景,后来说同意了,骑着自行车是一个场景,最后在湖边散步又是一个场景,这加在一起是一个故事,是一个情节,就是约会。
但是这样复杂的内容,怎么样去把它连在一起的,有时候要分析它的逻辑性,一系列时间上连续的镜头,其中最具有类似内容的元素,是否有重复的连接,去找哪个是故事单元的主体,在电视剧里去找人为主要的线索。
早期很多学者就来分析电视剧,分析的准确性怎么样,如果不拿剧本的话单看视频内容这个事儿太难了,后来借助这些剧本,再加上音频和视频在一起分析这个是有可能的,但是总体来讲,越往高层越到了故事这一层次机器的分析能力就偏弱了,因为人工智能还不能理解到故事这个层次,这是整个视频分段的示意图。
要想这件事做得好,目前的技术水平只能是针对特定领域的视频分割,就是到了语义这一块不要去做一个通用的分割方法,一个包打天下的,这是不可能的,因为特定领域里面,就有特定的领域知识。
针对特定视频类型视频分割:
比如说新闻报道中的场景检测。体育视频里边另外一个记录片里边的,还有比如访谈节目。
因为它有它节目的结构,你把这个节目的结构,把它放在我们的算法里面去,就以来辅助你对视频内容进行改革。另外一个趋势呢,就是要结合音频和视觉信息一起去做,它的效果会好很多,比如说这是一个我们新闻视频的一个处理的方式。
建议对这个方向感兴趣的同学,可以去搜集近几年的,整个多媒体领域,视觉领域和人工智能领域有非常重要的几个会,比如说 ACM Multimedia ,ICME , ICPR ,包括 CVPR ,ICCV 等等。
可以去那里面去找,现在最新的方法是什么,现在的对会像 CVPR ,包括这个 Triple AI等等每年收入几大几千篇文章,因为投稿的文章几万片,有的上万片,有的大几千片,一般它收一两千篇是正常的,这里面去找最新的研究成果,它们在不同的领域其实有一些比较巧妙的一些方式来辅助我们作为我们课程学习的补充。