开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算:视频事件检测(下)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/811/detail/15705
视频事件检测(下)
单模态特征主要研究什么:
比如有长时间的哨声,有短哨声,观众的兴奋声,激动的解说,普通的解说。就在音频分析里面在线时通常是可以检测到的。
比如现在还想做类似的研究,可以找一找类似的文章去看,通过这个可以预测到,这些这些音频的特征,可以用来判断犯规,可以用来判断进球和射门,
长哨声和短哨声,长哨声有的时候是进球,有的时候已经比赛截止或者是开球的时候。短哨声有的可能是犯规等等。通常在提取的声音的在线特征的时候通常把它变换到频率来看评估。
视觉特征:
足球里面最主要的就是要检测出球场区域,通过球场区域在图像中占的比例要把整个的足球比赛分成中,远,近和特写镜头。另外一个就提取比分盘,特定区域,比分牌有两个,进球以后通常是在这个地方跳出来
还有一个比分牌通常是在屏幕的左上角或者右上角的区域。像在这种大的比赛里面,这个区域跳出来一定是进球事件发生,或者是换人。
这就是球门检测,镜头的分割,前面讲到过很多视频分析的知识,在这里面都作为了事件检测的基础。
比如以足球事件为例,先来对一个连续的视频进行镜头分割,再把镜头进行分类,远镜头中镜头特写镜头,通常进球发生在特写镜头,特写镜头是对球员或者回放镜头里的,在这里面,再提取它的球门,球场,比分牌,回放事件。通过特征联合来判定它是犯规,进球还是射门。
比如说有两个射门和进球之间。从视觉上很难区分,加了听觉音频音频就记住了,射门没有进的欢呼声和进球以后的欢呼声是截然不同的,但是加上比分牌了以后就解决了。
单纯依靠外部文本,是直播文本检测,有的比赛有直播文本,还有一些比赛没有直播的文本,但是它有一些新闻报道,可能就几百个字,但这里面有很多的关键词,比如昨天某队和某堆,比如说中国队跟韩国队打了一场场比赛中国队表现异常突出,以3 : 0战胜韩国队,在第50分钟的时候,谁进了一个球,58分钟的时候谁又进了一个球。把关键词提取出来,就是找特定事件的重要的线索的依据。原来本以为有关系的,通过跨媒体,通过多模块就可以把这些信息联系在一起,可是现在的主流的模式就是要把多个模态的特征能提出来的,或者能提出提得准的,西罗列出来,然后在彼此的特征之间,,建立一个联系,甚至还可以构建一个复杂的知识图谱,通过知识图谱,再加上知识推理,就可以把特定的事件分析出来。
比如说所有在足球里面的精彩镜头,比如说射门,包括进球,还有甚至一些犯规,都是一些很重要的事件,像红黄牌。这些事件的发生都有回放镜头,所以把回放镜头检测出来之后,基本上就把所有的可能精彩的镜头给涵盖了,然后在这些回放镜头相邻的这些镜头里面,再去分哪些是进球,哪些是犯规。
为什么有回放:
所有的比赛是人去做导播去转播的,它之所以把回放的镜头重复放,是因为人判断这件事,这个事件值得重复放映,已经在回放镜头里面已经把人的一个主观的观点,它融合进去,而现在的反向要利用这个线索去找精彩的。
以上都是基于传统的特征方法去提取或者去检测事件,它的特点是它要依靠人的一些先验的知识,针对不同的事件要设计不同的特征,能够准确的来描述这个信息。
这样做的针对性比较强,但问题是它的泛化能力比较弱,是用在检测足球里面的,一定不能用在篮球里,更不能用在网球里。
结合视觉音频文本来辅助信息检测事件对特定事件的检测效果非常好,足球里面通过音频和视觉信息找到进球的镜头是但是要找到谁进的球,几乎是不可能的,但是通过外部的文本就可以找到了,因为在那个时间段,他说第58分钟谁进的球这一句话把是谁进的球给说清楚了,再通过时间跟镜头关联上,就可以准确的把这个事件给描述出来。
粗略的估计事件发生的范围,对事件边界的定位,传统的方式是很难做的。
近十年开始尝试,能不能把深度学习加在一起,团队呢近五年开始做,它一般与镜头的特征相结合,将镜头分割作为预处理的基础。比如足球视频为例,先把它分成一个一个镜头,排队镜头进行分类,然后利用这种深层的深度学习的网络模型,你可以用 CN ,可以用其它的来提取特定镜头,每一个镜头里面再把它分成,比如五秒钟判断一个片段,或者是多少个帧一个片段,每一个片段具体特征,输出是镜头的类型和时间边界,这是它的主要思路。对这些比赛也有很多人去做统计。
利用深度的深度特征来检测事件的时候,一定要准备好一个数据集,这个表里面是针对体育视频里面不同的比赛的类型准备的数据。如果想把深度学习的算法用好,数据集是基础。
这个方法的好处:
特征的泛化能力强,同时可以提取不同层次的特征,可以在不同的任务上的重复使用这些特征。但它也有缺点,通过大量的实验发现这些特征不可解释,原来在传统的特征里面,那些各领域知识在深度学习课程里面无法融入进去,而那些领域知识,有的时候线索是非常重要的,它只能从已有的数据中去学习,无法验证数据本身的正确性,它的数据较少的事件,他的训练效果就差了,比如像90分钟的足球比赛,进球没几个,还有一些,比如像越位检测起来就更困难,因为样本少,200场比赛加在一起,可能也就几百个样本儿。
像其它,很多的,比如射门等等,远远比这种多,而进球就更稀少了,通过越少的事件,数据越少,用这种深度学习的方式检测的准确度就越低。
它的全局特征不充分,局部特征有的时候难以提取,因此单纯依靠深度学习来检测事件的方式从目前得到的结果来看其实是不准确的,
怎么做,目前一个大的趋势就是把传统的手工特征和深度学习的特征结合在一起,把深度学习一块,不要把所有内容都交给深度学习,而是把深度学习的特征仅仅作为特征之一,其它传统的提取不到的特征用深度课程去代替,只要是传统的特征好用的,依然用在用传统特征。因为传统特征有很强的语义性,尤其在深度学习越火的时候盲目的使用深度学习
以为它包治百病,这个观点其实是错误的。深度学习只能给出结果,它为什么这么好,有的数据解释不了,为什么这么差,有的数据也解释不了。
只看它的结果就有问题,刚才说的这番话其实是经过大量的事件验证的,费了很大的劲准备的数据集,有时候甚至准确率降低了这个时候是得不偿失的,因此也在事件的检测方面要重新审视传统和深度学习特征它们彼此的优缺点,在正确的地方使用正确的方法那才是未来解决这个问题的正确的路线。