copy_times代表所有图片至少复制的次数,frame_num代表模型输入的帧数,这里我们设定的是24帧,len(images)代表的是样本中原始图片的数量,moreone_num代表的是需要多复制一遍的图片数量。预测时,我们直接将前moreone_num张图片多复制一次,以达到24帧的输入。
而对于训练过程,我们考虑到采集者说话可能在每个字上的时间并不相同,为了提高模型的鲁棒性,我们并没有采用固定位置多复制一次的方法,而是随机选择一个起始点进行多复制一次操作。
除此之外,我们还加入了随机丢帧的处理,具体做法是对样本图像数量大于一定值(如12)的样本进行随机丢帧,当然帧数小于2且不能为连续帧。另外还加入了图片随机移动,让一组嘴巴并不在一个位置,来增强模型的泛化能力。
对于数据增广,我们还采用了一些常规的增广方式:随机加入高斯噪声,随机对图像做双边滤波,随机调图像的明暗度、对比度、饱和度、色度,随机对图像加入小旋转(5°以内),随机对图像做上下左右小平移,随机水平反转操作。这些数据增广操作都是在不损失模型的关键信息的原则上,去告诉模型它应该关注的信息是什么,以此来增强模型的泛化能力。
#### 初赛最终方案:

## 决赛篇简述:
决赛由于数据由中文单词变成了数字组合,且数据量极少,所以我们也尝试过将1000类问题转化为10类去做,由于策略不佳最终的准确率却只有八十多,所以还是用的初赛方案,将其视作1000类分类问题,也取得了不错的效果。
#### 决赛最终方案:

**题外话**:
比赛的时候我们对预测出来的答案就做了分析,发现1,4,7包含这些数字的样本相对于其他就很少,我们猜测可能官方为了让准确率变得更好看,所以刻意将难分的数据去掉了一些。事后我们问了出题的小哥,事实确实如此。
记得当时决赛那天第一支上传成绩的队伍,直接八十多,而我们线下验证集才六十多,心态都炸了,还以为成都旅游来了。结果最后发现是测试集变简单了。
附一张比赛成绩实时榜,不得不说,官方做的很用心

## 总结
很开心也很荣幸能够获得这次比赛的冠军,但是说起来也有些惭愧,只是跨领域的做了一下做了一些尝试,没有理论性的创新,可能我们是属于运气比较好的那一支队伍吧,答辩中看到其他队伍的一些工作也很棒,非常希望其他队伍的大佬能开源方便我们学习一波。最后感谢一下主办方和协办单位的工作人员,他们非常辛苦,同时也感谢我的两个队友,没有他们也没有这个冠军奖杯。欢迎交流!
# Lip_Reading_Competition