继续调研
参考paper with code种VQA比赛的结果,可看到主流数据集中不同方法的效果!
KoNViD-1k Benchmark (Video Quality Assessment) | Papers With Code
• Blind Image Quality Assessment Using A Deep Bilinear Convolutional Neural Network. 2019
• Unified Quality Assessment of In-the-Wild Videos with Mixed Datasets Training 2021 IJCV
• Deep learning based full-reference and no-reference quality assessment models for compressed ugc videos 2021 ICMEW
• Blindly Assess Quality of In-the-Wild Videos via Quality-aware Pre-training and Motion Perception 2022 TCSVT
• MANIQA: Multi-dimension Attention Network for No-Reference Image Quality Assessment 2022 CVPRW
• FAST-VQA: Efficient End-to-End Video Quality Assessment with Fragment Sampling, and its extended version FasterVQA. ECCV 2022
• Exploring Video Quality Assessment on User Generated Contents from Aesthetic and Technical Perspectives 2023
• EXPLORING OPINION-UNAWARE VIDEO QUALITY ASSESSMENT WITH SEMANTIC AFFINITY CRITERION (BUONA-VISTA)] (github)
方法理解
VODER
方法主要思路:美学分支和技术分支,美学分支关注语义和构图,技术分支关注噪声、抖动等
美学分支:实用空间降采样和时序稀疏采样,降低时序敏感性,注重画面的美感;同时加入交叉尺度正则化,可实用不同程度下采样保证美学评价的稳定性;
技术分支:实用fragments来进行特征提取,将图片进行碎片化以减少图片美感对其影响,同时使用连续采样以保证对时序扭曲的采集。
Qpred = 0.428Qpred,A +0.572Qpred,T
关键代码
pip install sk-video
测试DOVER预训练模型,在train上的结果:SRCC: 0.6281 PLCC: 0.6401
• finetune
训练epoch=10;
结果:按照0.8和0.2进行分割,训练10轮后得到结果:srcc=0.8548, plcc=0.8514;
耗时:训练一轮2.15mins,验证45s;训练10轮耗时30mins
FasterVQA
图像采集进行方块化以降低计算量和模型复杂度,同时借鉴swin-transformer方法进行位置编码(绝对和相对),使用FA-Net进行注意力计算得到模型。
关键代码
将swin-transformer进行改进,为3D swin-transformer;
修改dataloader并训练模型
主要是修改yam中文件路径,训练代码自动设置数据分割比例训练;
模型不同类型,n和s,使用不同模型结构、不同head进行训练,得到对应结果;
python new_train.py -o options/fast/fast-b.yml
python /code/new_train.py -o /code/options/fast/fast-b.yml >> /code/pretrain_model/train_faster_vqa.log
MDT(Mixed Dataset Training)
方法思路:不同数据集输入模型,计算相对分数,使用线性匹配,预测不同数据集对应误差损失函数,最终昂给得到特定数据集的分数预测!
-
判断是否需要使用(可能对多数据训练有效吗)
可以使用,但需要多数据集,时间不允许 -
训练时长和结果
提取特征并训练模型,应该时间不太久,从排行榜MSU Video Quality Metrics Benchmark 2022 结果非常好,超过了DOVER,需要考虑,如将模型提取特征后融合训练,看是否有效!
在比赛训练集上验证方法效果。
数据分析
数据划分和优化
-
如何划分数据集?
5%,10%,20%,30%四种 -
如何进行K折验证
训练集分成10份,进行循环训练和验证,最后求指标的平均值,得到最终模型能力;
根据实际情况,训练集分为3个部分,将这三个部分分别进行均匀拆分,得到不同的训练和测试集,训练10个数据划分方式计算模型性能; -
Training data: A 414(55场景),B 210(30场景), C 215(43场景) 累计 839个
按照5个数据集进行划分,A分为11个一份,B分为6个1分,C分为8个一份
划分5个数据集,分别是25,25,25,25,28; -
对比不同方法结果并提交最好结果
-
调参训练优化
-
相关经验学习
这个比赛速度加分太多了,因此优化推理速度是主要的方向。那些花里胡哨的VQA模型没什么卵用(有个fast-vqa,所谓的sota,比赛数据上比resnet18低了十个点)
提交
split data: SRCC: 0.7442, KRCC: 0.5424, PLCC: 0.7491, and RMSE: 8.7150
强调:在最终提交环节,一般正式的比赛都不止是提交一个最终结果,而是需要完整的face_sheet,提交队伍信息,使用硬件,得到验证集和测试集结果,对应代码和数据等,需要比较完整、全面的说明方法的有效性,如何使用,能够复现等!
总结
- 在完成比赛后,确实有些遗憾,如果早点参加,能进行验证集的验证,可能会更有针对性的调整模型和方法。
- 经过调研发现,最新的方法,排名高的方法不一定有效,很多论文就是噱头大于实用性,要有批判性看待;
- 不要只看对应领域工作,要根据baseline的预测结果找到模型存在的普遍问题,根据问题找相关论文和方法,进行模型或者策略的改进,不要一上来就调参,走不远;
- 比赛看的是单位时间内谁能有效提高,重点是高效的训练和分析,及时做好记录和分析,可以尝试和同学讨论交流,扩展思路!
总的来说,这次比赛收获很多。一方面也锻炼了我快速了解和上手一个新的领域问题,有合适思路来分析和思考;另一方面也有效提高了我的实践动手能力,有了一个非常紧迫、明确的目标确实能大大提高效率、推进行动!
如果你从我的记录和分享中有所收获,欢迎点赞、收藏、评论,我会分享更多有价值的经验!
参考资料