1、对足球比赛中各个视频片段进行打标
主要对足球比赛中的射门、换人、受伤、红黄牌等事件的分类
1)在实际中各个镜头视频长短不一,同时射门等事件在整个镜头中的占比较小,传统的视频分类中对视频随机采样的方法不太适合。为了解决这个问题,对视频进行分成n段,即对各个事件看做是马尔可夫过程,每一段随机选取一帧。
2)开始采用I3d网络结构,为了提高准确率,借鉴SENet的思想,在I3d中加入SE模块,借鉴None-local思想,加入None-local模块。
3)由于单块GPU的显存有限,采用以数据并行的方式利用多GPU训练。由于batch normal没有实现同步,导致检测和训练准确率相差悬殊,为了解决这个问题将batch normal换成了group normal
4)在初步得到一个I3d模型后,为了提高模型的鲁棒性,采用Teacher-Student的方式对其多次训练, 并在Teacher-Student训练完成后,以固定的学习率对模型进一步训练,并将多次epoch得到模型进行权值平均得到最终模型。
5)在训练过程中每次迭代都需要在视频样本中抽取帧,这涉及很大的I/0操作,拖慢了训练速度,为了提高训练速度,将训练过程中用到的视频样本转换成图片,并将每个视频的帧率、视频中总的帧数以及视频帧的长宽都在训练前记录在一个文件中,减少训练程序对磁盘的访问量。
6)为了解决样本不均的问题,采用focal loss
7)识别框架使用Tensorflow,用docker对识别程序进行打包
2、对篮球比赛中精彩镜头的检测
主要是对CBA比赛中的一些精彩镜头进行检测。
1)将异常事件检测的思想应用到篮球比赛精彩镜头的检测
2)已固定的帧率对视频进行抽帧
3)采用基于Conv 3d和deConv 3d的encoder-decoder的方案,并在decoder过程增加一个预测分支,迫使网络能够学到视频更为细节的内容。为了更好的保留信息,激活函数使用LeRelu,而非Relu
4)为了降低网络的参数量,将样本中的彩色图换成灰度图
5)为了提高训练速度,将训练过程中用到的视频样本转换成图片,并将每个视频的帧率、视频中总的帧数以及视频帧的长宽都在训练前记录在一个文件中
6)识别框架使用Tensorflow
目前该项目还在进行中
3、基于人体姿态估计的足球运动员动作识别
主要实现对倒挂金钩、大脚、铲球和头球等球员动作的识别
1)利用open pose思想和框架对人体关键点进行检测定位
2)利用cython对网络输出的后处理python程序进行加速
3)复现了一篇基于骨架点序列的动作识别文献,但在足球比赛中球员跟踪比较困难,各个动作序列样本很难获得,在实际中没有用到
4)利用各个关键点的之间的角度以及球的位置,设计规则实现对各个动作的识别。
5)识别框架使用Tensorflow
4、基于人体姿态估计的相似姿态查找
将各个知名球员的经典动作存入库中,系统输入一张其他人摆的pose,系统输出与其最为相似的图片。
1)利用open pose思想和框架对人体关键点进行检测定位
2)事先求取各个球员的人体关键点,并存入redis数据库
3)相似度判断,主要是将待比较的两个人的关键点进行归一化,并计算相应关键点之间的距离。
4)识别框架使用Tensorflow
5、火灾检测
主要是对火灾视频进行检测分类
1)运用场景分类的方法对火灾进行检测,网络结构采用resnet 50
2)为了得到视频中火灾的空间上的大概位置,对网络最后一层的响应进行分析,对响应值大于阈值的单元依据感受野的大小计算在输入图像的大概位置,并将多个区域进行合并得到火灾的大概位置。
3)为了解决样本不均的问题,采用focal loss
4)识别框架使用Tensorflow,用docker对识别程序进行打包
6、爆炸检测
主要是对爆炸视频进行检测分类
1)运用C3D方法对视频进行分类
2)为了解决样本不均的问题,采用focal loss
3)识别框架使用Tensorflow,用docker对识别程序进行打包