时间:2015。
地点:武汉。
技能点:python,c++,machine learning,image processing。
最开始准备做这个异常视频事件检测的项目,还是因为看到了智慧城市大赛里面有这么一个项目。恰好,那个时候我正看一些关于异常事件检测的论文。
这个比赛中定义的异常事件分为5个类型,群体聚集,群体逃散,追赶,丢弃箱包,敏感区域徘徊。选手需要提供算法,针对每一个输入视频分别检测是否包含异常事件,以及异常事件的起始。然而,给定的训练样本只有拍摄得到的正常视频,没有包含异常视频
异常事件样例
显然比赛是希望我们用unsupervised learning 来解决这个问题,但是他们却人为的假设了5个异常事件类型。这实在是让人不解。结果就是比赛的时候大家基本都是用supervised learning的方式训练模型,并且通过人工标注得到正样本。最后也确实这样的方法成绩更好。
当时,看到这个题目的时候,我首先就想到了通过dictionary learning来从正常视频学习词典,并通过检验视频的重建误差来检测异常事件。后来发现,我们竟然是唯一的用unsupervised learning的参赛队伍。
具体的,我的思路如下:
具体的提取特征可用下图表述。
具体的dictionary learning的思路可以参考相关论文。
我们的算法在一定程度上还是能够检测出视频中的异常事件的,如上图。但是其实在整个测试视频中的效果还是不太理想。
不过,最后还是得了全国三等奖,哈哈赢了5000.