Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

您好,很棒的代码,请教下大佬跨数据集的问题。 #19

Closed
lllllllllllll-llll opened this issue Apr 22, 2020 · 7 comments

Comments

@lllllllllllll-llll
Copy link

当做跨数据集测试的时候,在live上训练,在csiq和tid2013上测试srocc和plcc结果,plcc的结果需要进行非线性映射吧,真的求教一下这个非线性映射怎么做呢,不做的话对plcc的结果影响差异很大吗。有些论文要做1000次才得到最后的结果,那个这个过程到底怎么做呢,麻烦您了,感谢。

@lidq92
Copy link
Owner

lidq92 commented Apr 23, 2020

@lllllllllllll-llll 现在qa领域里跨数据测试的时候非线性映射的常见做法有2种。
第一种是在整个测试数据集上做非线性拟合。这时候只需要算1次指标即可。
第二种是将测试数据集随机划分为用于非线性拟合的训练数据和测试数据,比如按80%:20%的比例划分1000次。这时候会得到指标的1000个值,一般汇报均值和标准差或者中值。

备注1:计算拟合前的srocc, krocc和拟合后的plcc, rmse, or。
备注2:非跨数据集测试的时候本身就有训练和测试数据,这个时候所有的方法都在训练数据上拟合,在测试数据上算指标。
备注3:需要进行超参数选择的时候,一般还需要划分验证集,用验证集的结果来指导超参数的选取,不能直接用测试集的结果选取超参数(有作弊的嫌疑)。
备注4:非线性映射的函数有很多,常见的有两种:一种是vqeg建议的四参数logistic函数,另一种是live数据集那篇文章TIP2006中的五参数logistic函数。推荐你使用四参数的,初值的设定可以参考我SFA那篇文章TMM2019中写的值。

@lllllllllllll-llll
Copy link
Author

lllllllllllll-llll commented Apr 23, 2020

感谢您的解答,那我用这个CNNIQA在live上训练的model在tid和csiq上测试的时候非线性映射可以就用您SFA文章中的初始值吗。再次感谢。

@lidq92
Copy link
Owner

lidq92 commented Apr 23, 2020

@lllllllllllll-llll MATLAB的话可以就用这个函数nonlinearfitting

@lllllllllllll-llll
Copy link
Author

非常感谢您

@lllllllllllll-llll
Copy link
Author

您好,我试了一下,srocc计算出来的值是负值,请问这是什么原因呢,我用的在live上跑的CNNIQA,求解答呢。还有一个问题想请教您,用live数据集上的dmos跑和dmos_realigned跑有啥区别呢。

@lidq92
Copy link
Owner

lidq92 commented Apr 24, 2020

@lllllllllllll-llll 你需要多阅读一些i/vqa相关的文献以及对这些数据集的信息有一些了解。

live中分数越大对应主观质量越差,而TID是分数越大主观质量越好。所以你算出来是负数是合理的,这个时候趋势相反应该取一个负号(如果算出来是正的反而说明实际的趋势预测错误了)。

另一个问题请你自己去看live数据集的文章了解。

@lllllllllllll-llll
Copy link
Author

好的,再次感谢您;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants