github上排版可能有些问题,也可以访问我的博客https://blog.csdn.net/weixin_42907473/article/details/103470208
## 一、简述
**队名**:学学没完
**队伍成绩**:
初赛榜 0.85245 排名第一 (a榜第二,b榜重回第一)
决赛榜 0.9307 排名第二 (第一老哥很猛,搞得我们很慌,硬是肝了一晚上才拉近了和他们的差距)
受益于官方对大家前三个月工作的肯定,初赛的权重是复赛的两倍,因此最后加权总榜第一。
## 二、比赛方案
### 1.初赛回顾
初赛赛题是对一组唇语图片序列进行中文单词的预测,给定的数据集是封闭集(类别数量是一定的,测试集中的类别均在训练集中出现过),如下图所示:<div align=center>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191210141555553.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwNzQ3Mw==,size_16,color_FFFFFF,t_70)
上图一共有5组唇语序列,代表着不同的中文词语。<div align=left>
### 2.数据分析
拿到数据,我们先简单的对数据进行了分析:
* 训练数据数量一共9996个样本,测试数据一共2504个样本,总的类别是313类。
* 词语中只有两字词和四字词,样本比例为6816:3180,在313个类中的类别比例为213:100
* 313类中有311个类别有32个样本,只有“落地生根”和“卓有成效”两个样本有22个样本,可以说样本非常均衡。
* 样本的图片数量,除了异常数据外,基本分布在2张到24张之间,且两字词和四字词的图片数量有大量重叠,这意味着这一维信息很难利用,在测试集中的图片数量也基本和训练集一致。<div align=center>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191210145411627.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwNzQ3Mw==,size_16,color_FFFFFF,t_70)
两字词和四字词图片数量对比<div align=center>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191210145454531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwNzQ3Mw==,size_16,color_FFFFFF,t_70)
训练集和测试集样本图片数量对比<div align=left>
 数据分析让我们对数据有了一个整体的把握。除此以外,我们还观察了一些样本数据,发现了他们采集的样本中,包含说话的有用信息图片大都集中在前半序列中,而最后几张往往都是闭嘴状态,没有提供任何有用的信息。
### 3.数据清洗以及数据切割问题
* 通过对数据的分析,我们对低于两张的异常样本数据进行了清除。
* 考虑到很多样本中的嘴唇并不是一直在一个位置,因此考虑是否要定位和切割一下嘴唇部位。
因此我们手动标注了七八百张图片图片送进了CornerNet_Lite网络中去训练一个检测嘴唇的网络。
Why CornerNet_Lite?
其实其他的也可以,如Yolov3,毕竟任务简单,但是这篇论文号称吊打Yolov3,且我前一段时间也跑过这个网络,所以就拿来用了,下图即为文章中的性能对比图,由于没有速度的要求,我们最终采用的是Cornernet-Saccade版本。<div align=center>
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019121015223315.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwNzQ3Mw==,size_16,color_FFFFFF,t_70)<div align=left>
切割效果基本完美,我们切割原则是:1.保证嘴巴在图片正中央;2、保持一组图片切割大小一样,且嘴唇不能占满全图。
在切割的时候我们也发现一些图片没有检测到嘴唇,结果发现样本序列中夹杂了一些噪声数据,我们将这些进行了去除,大致如下图所示:<div align=center><img src="https://img-blog.csdnimg.cn/20191210153204766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwNzQ3Mw==,size_16,color_FFFFFF,t_70" width =50% height = 50%><div align=left>
我们当时的切割程序写了一些BUG,导致没有贯彻思想,最终直接测试的结果并没有不切割的好。当时也没发现这个问题,所以初赛并没有用到切割图片,但是我也对标注的图片中嘴唇边界离图片边界的信息进行了统计,最后大致对图片做了一个统一的切割或者说限制区域的操作。
### 4.模型选择
  通过对数据的分析,且考虑到任务是多分类问题,无需考虑词与词之间的关系,所以我们将这个问题简单的看作动作视频多分类的问题,因此我们尝试了多种类别的 SOTA 模型。
**1)基于3D 卷积模型**
  3D 卷积模型是我们首先想到和尝试的,3D 模型的代表之一是《ECO: Efficient convolutional Network For online video understanding》,这篇文章是去年 ECCV 的文章,模型结构如下:<div align=center>![在这里插入图片描述](https://img-blog.csdnimg.cn/20191210162610847.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwNzQ3Mw==,size_16,color_FFFFFF,t_70)<div align=left>
S1 到 SN 是从视频中采样的 N 个帧图像。
1. 对于每个帧图像,采用共享的 2D 卷积子网络 来得到 96 个 28\*28 大小的 feature map,堆叠后得到一个 N\*28\*28\*96 大小的特征 volume。此处使用的是 BN-Inception 网络中的第一部分(到 inception-3c 层前)。
2. 对于得到的特征 volume,采用一个 3D 子网络进行处理,直接输出对应动作类别数目的一维向量。此处采用了 3D-Resnet18 中的部分层。 如上的两部分,就构建了这篇文章中构建的第一种网络结果 ECO-Lite。除了用 3D 卷积进行融合,还可以同时使用 2D 卷积,如下图所示,即为 ECO-Full 网 络 结 构 。 此 处 多 的 一 个 2D 网 络 分支 采 用 的 是 BN-Inception 网 络 中 inception-4a 到最后一个 pooling 层间的部分,最后再采用 average-pooling 得到 video-level 的表示,与 3D net 的结果 concat 后再得到最后的 action 分类结果。 <div align=center>
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019121016255243.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwNzQ3Mw==,size_16,color_FFFFFF,t_70)<div align=left>
这个模型的效果也不错,我们队伍前期霸榜就是依靠这个模型,ECO-lite 最高 0.74 多,ECO-Full 最高 0.76 多,之后我们又尝试了其他一些模型,如今年的CVPR 何凯明实验室的文章《SlowFast Networks for Video Recognition》,但是该网络需要高低帧率间配合才能有更好的效果,而我们这个数据毕竟不是视频,帧数实在有限,最终跑出来效果不尽如人意,但如果有高帧率的视频,我想应该会有不错的效果。
***篇外探讨:***
关于《SlowFast Networks for Video Recognition》这篇文章中提出的一个观点我觉的**值得我们去思考**,大致意思:
  我们对于一张图片,我们可以简单的将其分为两个维度来看待,I(x,y) 。似乎很合理,x与 y方向的重要性似乎是相等的。然而对于一个视频,引入了时间维度t ,I(x,y,t) 。但这个t与 x,y可以同等看待吗,显然不是的啊,现实这个世界中,大多数的物体都是静止的。而我们传统的卷积如 3D卷积却是同等对待的,按照作者的理解,这是不合理的。既然不合理,就需要将时间t与空间(x,y)单独的处理。
  值得一提的是,今年这个领域几篇顶会如SlowFast、STM、TSM都是基于2D卷积
探索电平
- 粉丝: 674
- 资源: 1716
最新资源
- COMSOL光学仿真:介电常数近零薄膜等离子体谐振折射率传感
- 新能源电动汽车VCU hil BMS hil硬件在环仿真 文件包含电动汽车整车建模说明书, 模型包含驾驶员模块,仪表模块,BCU整车控制器模块,MCU电机模块,TCU变速箱模块,减速器模块,BMS电池
- STM32F103热电偶采集PID温控采集系统 基于stm32设计,可以实现热电偶采集,PID温度控制,注意51单片机源码基于keil开发环境,STM32源码基于IAR开发环境 提供原理图, PCB
- 通过simulink优化控制参数提高电机效率,进行最大扭矩最小损耗MTPL Max Torque Per Loss 控制,获取电机铁损、铜损最小时候的id,iq电流组合 使用导入的FEM数据和
- 主机厂基于Simulink MBD新能源电动汽车主驱电驱控制器算法模型及开发资料,量产模型,量产软件,量产代码,软件架构设计,输入输出定子,单元测试,MIL测试资料 Sumlink MCU电机控
- 双目相机实现物体三维重建,得到三维点云 可替代RealSenseD435,奥比中光等3D相机,性价比高!RTX3060上可实现50fps Jetson Xavier上可实现8fps 三维重建精度
- COMSOL光学模型:PT对称耦合波导
- 八自由度车辆动力学Simulink仿真模型(前轮转向和四轮转向都有) 目前发现有小辣鸡倒卖我的模型(ip为江苏盐城) 模型包括.slx文件.m车辆参数文件和word说明文档 Matlab版本2018a
- 基于模型预测控制(自带的mpc模块)和最优控制理论的Carsim与Matlab simulink联合仿真实现汽车主动避撞和跟车功能(acc自适应巡航),包含simulink模型(其中有车辆逆纵向动力学
- 永磁直驱风力发电系统,永磁同步电机,风力发电系统,风力机仿真模型,采用背靠背结构 风力机mppt采用最佳尖速比控制,机侧采用零d轴控制;网侧采用电网电压定向矢量双闭环控制 附相关文献
- MATLAB 变步长LMS均衡算法误码率仿真 您看到的介绍及图片即为本程序实现的功能,程序经过我自己电脑的测试,确保能实现相应的功能 有详细的说明文档,能帮助您迅速上手 仿真均衡方式:变步长LMS
- 直流充电桩方案 通讯协议板源码,PCB和原理图,全套
- FPGA SATA IP,K7 V7 KU等全系列支持,可提供源码或网表,附赠使用手册与测试例程 SATA 1 2 3全速支持,三星 凯侠等SSD均通过测试,SATA3速度实测写450MB s,读实
- 基于FPGA的自定义控制命令的串口收发功能 实现pc电脑与fpga的参数控制,可设置波特率,实现实时参数下发,下发参数回显,用于判断参数下发与回读是否一致,目前支持十个参数帧,带仿真,也可支持新增,可
- 深入剖析内容分发网络(CDN)工作原理与应用实践,加速网站访问提升体验
- JavaScript 编程语言的基础知识及应用实例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈