{
"cells": [
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.401092Z",
"start_time": "2025-03-11T16:39:14.399279Z"
}
},
"cell_type": "code",
"source": [
"''' Extract data from file by the special keyword '''\n",
"import pandas as pd\n",
"import glob\n",
"import re\n",
"import numpy as np\n",
"import scipy.stats as stats\n",
"from scipy.stats import f_oneway"
],
"id": "3db8dc37abb935af",
"outputs": [],
"execution_count": 142
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.420609Z",
"start_time": "2025-03-11T16:39:14.417506Z"
}
},
"cell_type": "code",
"source": [
"def read_log(file, regression_name):\n",
" line_list = []\n",
" with open(file) as f:\n",
" while True:\n",
" lines = f.readline()\n",
" line_list.append(lines)\n",
" if not lines:\n",
" break\n",
" # print(line_list)\n",
" if regression_name == 'mlp':\n",
" keyline = \"INFO - Average testing results among all repeated 80-20 holdouts:\\n\"\n",
" elif regression_name == 'svr':\n",
" keyline = \"Average testing results among all repeated 80-20 holdouts:\\n\"\n",
" for i in range(len(line_list)):\n",
" if line_list[i] == keyline:\n",
" key_index = i\n",
" srcc = line_list[key_index + 1]\n",
" krcc = line_list[key_index + 2]\n",
" plcc = line_list[key_index + 3]\n",
" rmse = line_list[key_index + 4]\n",
" return srcc, krcc, plcc, rmse\n",
"\n",
"def get_value(coef, model_name, decimals):\n",
" if model_name == 'mlp':\n",
" pattern = r\"INFO - (\\w+): (\\d+\\.\\d+) \\(std: (\\d+\\.\\d+)\\)\"\n",
" elif model_name == 'svr':\n",
" pattern = r\"(\\w+): (\\d+\\.\\d+) \\(std: (\\d+\\.\\d+)\\)\"\n",
"\n",
" matches = re.findall(pattern, coef)\n",
" for match in matches:\n",
" metric, value, std_dev = match\n",
" value = format(float(value), f'.{decimals}f')\n",
" std_dev = format(float(std_dev), f'.{decimals}f')\n",
" plusmius = u\"\\u00B1\"\n",
" coef_value = f\"{value} ({plusmius}{std_dev})\"\n",
" return coef_value\n"
],
"id": "initial_id",
"outputs": [],
"execution_count": 143
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.447744Z",
"start_time": "2025-03-11T16:39:14.444612Z"
}
},
"cell_type": "code",
"source": [
"def process_log_files(data_name, model_names, regression_name, log_path, decimals):\n",
" df_results = pd.DataFrame(columns=['DATASET', 'MODEL', 'SRCC (±STD)', 'KRCC (±STD)', 'PLCC (±STD)', 'RMSE (±STD)'])\n",
" data_list, model_list, srcc_list, krcc_list, plcc_list, rmse_list = [], [], [], [], [], []\n",
" \n",
" for model in model_names:\n",
" log_file = f'{log_path}{data_name}_{model}_{regression_name}.log'\n",
" try:\n",
" srcc, krcc, plcc, rmse = read_log(log_file, regression_name)\n",
" srcc = get_value(srcc, regression_name, decimals)\n",
" krcc = get_value(krcc, regression_name, decimals)\n",
" plcc = get_value(plcc, regression_name, decimals)\n",
" rmse = get_value(rmse, regression_name, decimals)\n",
" \n",
" data_list.append(data_name)\n",
" model_list.append(model)\n",
" srcc_list.append(srcc)\n",
" krcc_list.append(krcc)\n",
" plcc_list.append(plcc)\n",
" rmse_list.append(rmse)\n",
" \n",
" except FileNotFoundError:\n",
" print(f\"FileNotFoundError: No such file or directory for {model}\")\n",
" except Exception as e:\n",
" print(f\"Error occurred while processing {model}: {str(e)}\")\n",
"\n",
" df_results['DATASET'] = data_list\n",
" df_results['MODEL'] = model_list\n",
" df_results['SRCC (±STD)'] = srcc_list\n",
" df_results['KRCC (±STD)'] = krcc_list\n",
" df_results['PLCC (±STD)'] = plcc_list\n",
" df_results['RMSE (±STD)'] = rmse_list\n",
" \n",
" return df_results"
],
"id": "7e9a39184bac25a7",
"outputs": [],
"execution_count": 144
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Performance comparison of the evaluated NR-VQA models",
"id": "65b1cb6929ece5aa"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.454239Z",
"start_time": "2025-03-11T16:39:14.448711Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'cvd_2014'\n",
"model_names = ['brisque', 'vbliinds', 'tlvqm', 'videval', 'rapique']\n",
"regression_name = 'svr'\n",
"log_path = './reported_results/'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results\n",
"# csv_name = f'./csv/{data_name}_svrlog.csv'\n",
"# df_results.to_csv(csv_name, index=None, encoding=\"UTF-8\")\n",
"# xlsx_name = f'./save_csv/{data_name}_{regression_name}_log.xlsx'\n",
"# df_results.to_excel(xlsx_name, index=False, encoding=\"utf-8\")"
],
"id": "2ca72decdd62d8ab",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) PLCC (±STD) \\\n",
"0 cvd_2014 brisque 0.5553 (±0.0231) 0.3895 (±0.0161) 0.5527 (±0.0627) \n",
"1 cvd_2014 vbliinds 0.7306 (±0.0511) 0.5393 (±0.0473) 0.7853 (±0.0414) \n",
"2 cvd_2014 tlvqm 0.5399 (±0.0352) 0.4006 (±0.0298) 0.5785 (±0.0498) \n",
"3 cvd_2014 videval 0.7663 (±0.0214) 0.5634 (±0.0221) 0.8062 (±0.0216) \n",
"4 cvd_2014 rapique 0.8530 (±0.0301) 0.6836 (±0.0357) 0.8766 (±0.0326) \n",
"\n",
" RMSE (±STD) \n",
"0 18.4752 (±1.0274) \n",
"1 13.7267 (±1.2130) \n",
"2 18.0832 (±0.7052) \n",
"3 13.1151 (±0.6579) \n",
"4 10.6670 (±1.1939) "
],
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" cvd_2014 | \n",
" brisque | \n",
" 0.5553 (±0.0231) | \n",
" 0.3895 (±0.0161) | \n",
" 0.5527 (±0.0627) | \n",
" 18.4752 (±1.0274) | \n",
"
\n",
" \n",
" 1 | \n",
" cvd_2014 | \n",
" vbliinds | \n",
" 0.7306 (±0.0511) | \n",
" 0.5393 (±0.0473) | \n",
" 0.7853 (±0.0414) | \n",
" 13.7267 (±1.2130) | \n",
"
\n",
" \n",
" 2 | \n",
" cvd_2014 | \n",
" tlvqm | \n",
" 0.5399 (±0.0352) | \n",
" 0.4006 (±0.0298) | \n",
" 0.5785 (±0.0498) | \n",
" 18.0832 (±0.7052) | \n",
"
\n",
" \n",
" 3 | \n",
" cvd_2014 | \n",
" videval | \n",
" 0.7663 (±0.0214) | \n",
" 0.5634 (±0.0221) | \n",
" 0.8062 (±0.0216) | \n",
" 13.1151 (±0.6579) | \n",
"
\n",
" \n",
" 4 | \n",
" cvd_2014 | \n",
" rapique | \n",
" 0.8530 (±0.0301) | \n",
" 0.6836 (±0.0357) | \n",
" 0.8766 (±0.0326) | \n",
" 10.6670 (±1.1939) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 145,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 145
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.460774Z",
"start_time": "2025-03-11T16:39:14.454807Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'konvid_1k'\n",
"model_names = ['brisque', 'vbliinds', 'tlvqm', 'videval', 'rapique']\n",
"regression_name = 'svr'\n",
"log_path = './reported_results/'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "42997a595fb2bca8",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) PLCC (±STD) \\\n",
"0 konvid_1k brisque 0.6781 (±0.0083) 0.4935 (±0.0091) 0.6746 (±0.0069) \n",
"1 konvid_1k vbliinds 0.7258 (±0.0115) 0.5322 (±0.0109) 0.7155 (±0.0107) \n",
"2 konvid_1k tlvqm 0.7616 (±0.0067) 0.5635 (±0.0067) 0.7463 (±0.0065) \n",
"3 konvid_1k videval 0.8073 (±0.0174) 0.6036 (±0.0165) 0.7923 (±0.0169) \n",
"4 konvid_1k rapique 0.8219 (±0.0057) 0.6264 (±0.0074) 0.8191 (±0.0079) \n",
"\n",
" RMSE (±STD) \n",
"0 0.4753 (±0.0040) \n",
"1 0.4498 (±0.0071) \n",
"2 0.4285 (±0.0047) \n",
"3 0.3928 (±0.0133) \n",
"4 0.3693 (±0.0070) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" konvid_1k | \n",
" brisque | \n",
" 0.6781 (±0.0083) | \n",
" 0.4935 (±0.0091) | \n",
" 0.6746 (±0.0069) | \n",
" 0.4753 (±0.0040) | \n",
"
\n",
" \n",
" 1 | \n",
" konvid_1k | \n",
" vbliinds | \n",
" 0.7258 (±0.0115) | \n",
" 0.5322 (±0.0109) | \n",
" 0.7155 (±0.0107) | \n",
" 0.4498 (±0.0071) | \n",
"
\n",
" \n",
" 2 | \n",
" konvid_1k | \n",
" tlvqm | \n",
" 0.7616 (±0.0067) | \n",
" 0.5635 (±0.0067) | \n",
" 0.7463 (±0.0065) | \n",
" 0.4285 (±0.0047) | \n",
"
\n",
" \n",
" 3 | \n",
" konvid_1k | \n",
" videval | \n",
" 0.8073 (±0.0174) | \n",
" 0.6036 (±0.0165) | \n",
" 0.7923 (±0.0169) | \n",
" 0.3928 (±0.0133) | \n",
"
\n",
" \n",
" 4 | \n",
" konvid_1k | \n",
" rapique | \n",
" 0.8219 (±0.0057) | \n",
" 0.6264 (±0.0074) | \n",
" 0.8191 (±0.0079) | \n",
" 0.3693 (±0.0070) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 146,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 146
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.466743Z",
"start_time": "2025-03-11T16:39:14.461700Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'live_vqc'\n",
"model_names = ['brisque', 'vbliinds', 'tlvqm', 'videval', 'rapique']\n",
"regression_name = 'svr'\n",
"log_path = './reported_results/'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "ccdd1ce4bc21ed69",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) PLCC (±STD) \\\n",
"0 live_vqc brisque 0.6096 (±0.0133) 0.4420 (±0.0127) 0.6652 (±0.0176) \n",
"1 live_vqc vbliinds 0.6925 (±0.0103) 0.5046 (±0.0111) 0.6872 (±0.0124) \n",
"2 live_vqc tlvqm 0.8133 (±0.0104) 0.6231 (±0.0105) 0.7912 (±0.0148) \n",
"3 live_vqc videval 0.7725 (±0.0093) 0.5874 (±0.0080) 0.7752 (±0.0211) \n",
"4 live_vqc rapique 0.7328 (±0.0130) 0.5418 (±0.0134) 0.7520 (±0.0119) \n",
"\n",
" RMSE (±STD) \n",
"0 12.7480 (±0.2697) \n",
"1 12.4031 (±0.1948) \n",
"2 10.4409 (±0.3123) \n",
"3 10.7846 (±0.4082) \n",
"4 11.2538 (±0.2285) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" live_vqc | \n",
" brisque | \n",
" 0.6096 (±0.0133) | \n",
" 0.4420 (±0.0127) | \n",
" 0.6652 (±0.0176) | \n",
" 12.7480 (±0.2697) | \n",
"
\n",
" \n",
" 1 | \n",
" live_vqc | \n",
" vbliinds | \n",
" 0.6925 (±0.0103) | \n",
" 0.5046 (±0.0111) | \n",
" 0.6872 (±0.0124) | \n",
" 12.4031 (±0.1948) | \n",
"
\n",
" \n",
" 2 | \n",
" live_vqc | \n",
" tlvqm | \n",
" 0.8133 (±0.0104) | \n",
" 0.6231 (±0.0105) | \n",
" 0.7912 (±0.0148) | \n",
" 10.4409 (±0.3123) | \n",
"
\n",
" \n",
" 3 | \n",
" live_vqc | \n",
" videval | \n",
" 0.7725 (±0.0093) | \n",
" 0.5874 (±0.0080) | \n",
" 0.7752 (±0.0211) | \n",
" 10.7846 (±0.4082) | \n",
"
\n",
" \n",
" 4 | \n",
" live_vqc | \n",
" rapique | \n",
" 0.7328 (±0.0130) | \n",
" 0.5418 (±0.0134) | \n",
" 0.7520 (±0.0119) | \n",
" 11.2538 (±0.2285) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 147,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 147
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.472960Z",
"start_time": "2025-03-11T16:39:14.467320Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'youtube_ugc'\n",
"model_names = ['brisque', 'vbliinds', 'tlvqm', 'videval', 'rapique']\n",
"regression_name = 'svr'\n",
"log_path = './reported_results/'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "d46b6e4cca31e163",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) \\\n",
"0 youtube_ugc brisque 0.3517 (±0.0165) 0.2416 (±0.0119) \n",
"1 youtube_ugc vbliinds 0.4783 (±0.0188) 0.3396 (±0.0143) \n",
"2 youtube_ugc tlvqm 0.6802 (±0.0183) 0.4892 (±0.0168) \n",
"3 youtube_ugc videval 0.7814 (±0.0049) 0.5906 (±0.0052) \n",
"4 youtube_ugc rapique 0.7994 (±0.0064) 0.5989 (±0.0054) \n",
"\n",
" PLCC (±STD) RMSE (±STD) \n",
"0 0.3768 (±0.0200) 0.6349 (±0.0056) \n",
"1 0.4967 (±0.0228) 0.5949 (±0.0094) \n",
"2 0.6876 (±0.0207) 0.4977 (±0.0132) \n",
"3 0.7929 (±0.0038) 0.4177 (±0.0033) \n",
"4 0.8300 (±0.0070) 0.3823 (±0.0068) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" youtube_ugc | \n",
" brisque | \n",
" 0.3517 (±0.0165) | \n",
" 0.2416 (±0.0119) | \n",
" 0.3768 (±0.0200) | \n",
" 0.6349 (±0.0056) | \n",
"
\n",
" \n",
" 1 | \n",
" youtube_ugc | \n",
" vbliinds | \n",
" 0.4783 (±0.0188) | \n",
" 0.3396 (±0.0143) | \n",
" 0.4967 (±0.0228) | \n",
" 0.5949 (±0.0094) | \n",
"
\n",
" \n",
" 2 | \n",
" youtube_ugc | \n",
" tlvqm | \n",
" 0.6802 (±0.0183) | \n",
" 0.4892 (±0.0168) | \n",
" 0.6876 (±0.0207) | \n",
" 0.4977 (±0.0132) | \n",
"
\n",
" \n",
" 3 | \n",
" youtube_ugc | \n",
" videval | \n",
" 0.7814 (±0.0049) | \n",
" 0.5906 (±0.0052) | \n",
" 0.7929 (±0.0038) | \n",
" 0.4177 (±0.0033) | \n",
"
\n",
" \n",
" 4 | \n",
" youtube_ugc | \n",
" rapique | \n",
" 0.7994 (±0.0064) | \n",
" 0.5989 (±0.0054) | \n",
" 0.8300 (±0.0070) | \n",
" 0.3823 (±0.0068) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 148,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 148
},
{
"metadata": {},
"cell_type": "markdown",
"source": "vsfa performance",
"id": "8489668427d0c619"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.480216Z",
"start_time": "2025-03-11T16:39:14.473866Z"
}
},
"cell_type": "code",
"source": [
"datasets = {\n",
" 'cvd_2014': \"./reported_results/VSFA-CVD2014-EXP0_metrics.npy\",\n",
" 'konvid_1k': \"./reported_results/VSFA-KoNViD_1k-EXP0.npy\",\n",
" 'live_vqc': \"./reported_results/VSFA-LIVE-VQC-EXP0_metrics.npy\",\n",
" 'youtube_ugc': \"./reported_results/VSFA-YOUTUBE_UGC_ALL-EXP0.npy\"\n",
"}\n",
"data_list, srcc_list, krcc_list, plcc_list, rmse_list = [], [], [], [], []\n",
"def load_metrics_npy(file_path, indices):\n",
" data = np.load(file_path, allow_pickle=True)\n",
" return [data[index] for index in indices]\n",
"for dataset_name, file_path in datasets.items():\n",
" indices = [3, 4, 5, 6] if dataset_name in ['konvid_1k', 'youtube_ugc'] else [1, 2, 3, 4]\n",
" srcc, krcc, plcc, rmse = load_metrics_npy(file_path, indices)\n",
" data_list.append(dataset_name)\n",
" srcc_list.append(srcc)\n",
" krcc_list.append(krcc)\n",
" plcc_list.append(plcc)\n",
" rmse_list.append(rmse)\n",
"\n",
"df_vsfa = pd.DataFrame({\n",
" 'DATASET': data_list,\n",
" 'MODEL': 'VSFA',\n",
" 'SRCC': srcc_list,\n",
" 'KRCC': krcc_list,\n",
" 'PLCC': plcc_list,\n",
" 'RMSE': rmse_list\n",
"}).round(4)\n",
"df_vsfa"
],
"id": "cca8633823b8c802",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC KRCC PLCC RMSE\n",
"0 cvd_2014 VSFA 0.8825 0.7179 0.8784 9.8619\n",
"1 konvid_1k VSFA 0.8067 0.6102 0.8182 0.4056\n",
"2 live_vqc VSFA 0.5898 0.4120 0.5894 15.3245\n",
"3 youtube_ugc VSFA 0.7857 0.5814 0.7808 0.4321"
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC | \n",
" KRCC | \n",
" PLCC | \n",
" RMSE | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" cvd_2014 | \n",
" VSFA | \n",
" 0.8825 | \n",
" 0.7179 | \n",
" 0.8784 | \n",
" 9.8619 | \n",
"
\n",
" \n",
" 1 | \n",
" konvid_1k | \n",
" VSFA | \n",
" 0.8067 | \n",
" 0.6102 | \n",
" 0.8182 | \n",
" 0.4056 | \n",
"
\n",
" \n",
" 2 | \n",
" live_vqc | \n",
" VSFA | \n",
" 0.5898 | \n",
" 0.4120 | \n",
" 0.5894 | \n",
" 15.3245 | \n",
"
\n",
" \n",
" 3 | \n",
" youtube_ugc | \n",
" VSFA | \n",
" 0.7857 | \n",
" 0.5814 | \n",
" 0.7808 | \n",
" 0.4321 | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 149,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 149
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Performance on ReLax-VQA",
"id": "b02ee184866c506c"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.486341Z",
"start_time": "2025-03-11T16:39:14.480691Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'cvd_2014'\n",
"model_names = ['relaxvqa']\n",
"regression_name = 'mlp'\n",
"log_path = './reported_results/'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "eefdd17b16239b3a",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) PLCC (±STD) \\\n",
"0 cvd_2014 relaxvqa 0.8643 (±0.0301) 0.6960 (±0.0442) 0.8895 (±0.0255) \n",
"\n",
" RMSE (±STD) \n",
"0 9.8185 (±1.0969) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" cvd_2014 | \n",
" relaxvqa | \n",
" 0.8643 (±0.0301) | \n",
" 0.6960 (±0.0442) | \n",
" 0.8895 (±0.0255) | \n",
" 9.8185 (±1.0969) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 150,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 150
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.497193Z",
"start_time": "2025-03-11T16:39:14.491884Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'konvid_1k'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "9bb3deaf95e64d06",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) PLCC (±STD) \\\n",
"0 konvid_1k relaxvqa 0.8535 (±0.0218) 0.6594 (±0.0232) 0.8473 (±0.0214) \n",
"\n",
" RMSE (±STD) \n",
"0 0.3370 (±0.0185) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" konvid_1k | \n",
" relaxvqa | \n",
" 0.8535 (±0.0218) | \n",
" 0.6594 (±0.0232) | \n",
" 0.8473 (±0.0214) | \n",
" 0.3370 (±0.0185) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 151,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 151
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.527297Z",
"start_time": "2025-03-11T16:39:14.522356Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'live_vqc'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "3c66f4b2588f1baa",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) PLCC (±STD) \\\n",
"0 live_vqc relaxvqa 0.7655 (±0.0378) 0.5785 (±0.0365) 0.8079 (±0.0352) \n",
"\n",
" RMSE (±STD) \n",
"0 9.8596 (±0.9099) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" live_vqc | \n",
" relaxvqa | \n",
" 0.7655 (±0.0378) | \n",
" 0.5785 (±0.0365) | \n",
" 0.8079 (±0.0352) | \n",
" 9.8596 (±0.9099) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 152,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 152
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.583026Z",
"start_time": "2025-03-11T16:39:14.577518Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'youtube_ugc'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "fac097145800c895",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) \\\n",
"0 youtube_ugc relaxvqa 0.8014 (±0.0196) 0.6167 (±0.0193) \n",
"\n",
" PLCC (±STD) RMSE (±STD) \n",
"0 0.8204 (±0.0186) 0.3801 (±0.0177) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" youtube_ugc | \n",
" relaxvqa | \n",
" 0.8014 (±0.0196) | \n",
" 0.6167 (±0.0193) | \n",
" 0.8204 (±0.0186) | \n",
" 0.3801 (±0.0177) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 153
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Ablation study on fragments",
"id": "ba6cedaad3ce5f1"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.648748Z",
"start_time": "2025-03-11T16:39:14.628197Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'konvid_1k'\n",
"model_names = ['frame_diff_resnet50', 'optical_flow_resnet50', 'frame_diff_vit', 'optical_flow_vit', 'RF_frame_diff_resnet50', 'RF_optical_flow_resnet50', 'RF_frame_diff_vit', 'RF_optical_flow_vit',\n",
" 'MF_resnet50', 'MF_vit', 'MF_resnet50_vit']\n",
"regression_name = 'mlp'\n",
"log_path = './reported_results/ablation_study/fragmentation/'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "f4b41d3d64b5b4c",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) KRCC (±STD) \\\n",
"0 konvid_1k frame_diff_resnet50 0.6526 (±0.0221) 0.4654 (±0.0170) \n",
"1 konvid_1k optical_flow_resnet50 0.5793 (±0.0392) 0.4088 (±0.0298) \n",
"2 konvid_1k frame_diff_vit 0.6384 (±0.0333) 0.4633 (±0.0245) \n",
"3 konvid_1k optical_flow_vit 0.5692 (±0.0376) 0.4075 (±0.0293) \n",
"4 konvid_1k RF_frame_diff_resnet50 0.7082 (±0.0345) 0.5168 (±0.0301) \n",
"5 konvid_1k RF_optical_flow_resnet50 0.4844 (±0.0504) 0.3356 (±0.0369) \n",
"6 konvid_1k RF_frame_diff_vit 0.7145 (±0.0297) 0.5221 (±0.0265) \n",
"7 konvid_1k RF_optical_flow_vit 0.5032 (±0.0495) 0.3508 (±0.0360) \n",
"8 konvid_1k MF_resnet50 0.6792 (±0.0424) 0.4852 (±0.0342) \n",
"9 konvid_1k MF_vit 0.7062 (±0.0298) 0.5130 (±0.0270) \n",
"10 konvid_1k MF_resnet50_vit 0.7324 (±0.0340) 0.5337 (±0.0298) \n",
"\n",
" PLCC (±STD) RMSE (±STD) \n",
"0 0.6525 (±0.0202) 0.4889 (±0.0153) \n",
"1 0.5848 (±0.0423) 0.5356 (±0.0233) \n",
"2 0.6454 (±0.0298) 0.4890 (±0.0162) \n",
"3 0.5844 (±0.0385) 0.5243 (±0.0191) \n",
"4 0.7073 (±0.0345) 0.4547 (±0.0185) \n",
"5 0.4958 (±0.0518) 0.5634 (±0.0213) \n",
"6 0.7226 (±0.0281) 0.4487 (±0.0153) \n",
"7 0.5335 (±0.0582) 0.5504 (±0.0224) \n",
"8 0.6788 (±0.0440) 0.4761 (±0.0254) \n",
"9 0.7057 (±0.0296) 0.4582 (±0.0175) \n",
"10 0.7291 (±0.0335) 0.4408 (±0.0216) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" konvid_1k | \n",
" frame_diff_resnet50 | \n",
" 0.6526 (±0.0221) | \n",
" 0.4654 (±0.0170) | \n",
" 0.6525 (±0.0202) | \n",
" 0.4889 (±0.0153) | \n",
"
\n",
" \n",
" 1 | \n",
" konvid_1k | \n",
" optical_flow_resnet50 | \n",
" 0.5793 (±0.0392) | \n",
" 0.4088 (±0.0298) | \n",
" 0.5848 (±0.0423) | \n",
" 0.5356 (±0.0233) | \n",
"
\n",
" \n",
" 2 | \n",
" konvid_1k | \n",
" frame_diff_vit | \n",
" 0.6384 (±0.0333) | \n",
" 0.4633 (±0.0245) | \n",
" 0.6454 (±0.0298) | \n",
" 0.4890 (±0.0162) | \n",
"
\n",
" \n",
" 3 | \n",
" konvid_1k | \n",
" optical_flow_vit | \n",
" 0.5692 (±0.0376) | \n",
" 0.4075 (±0.0293) | \n",
" 0.5844 (±0.0385) | \n",
" 0.5243 (±0.0191) | \n",
"
\n",
" \n",
" 4 | \n",
" konvid_1k | \n",
" RF_frame_diff_resnet50 | \n",
" 0.7082 (±0.0345) | \n",
" 0.5168 (±0.0301) | \n",
" 0.7073 (±0.0345) | \n",
" 0.4547 (±0.0185) | \n",
"
\n",
" \n",
" 5 | \n",
" konvid_1k | \n",
" RF_optical_flow_resnet50 | \n",
" 0.4844 (±0.0504) | \n",
" 0.3356 (±0.0369) | \n",
" 0.4958 (±0.0518) | \n",
" 0.5634 (±0.0213) | \n",
"
\n",
" \n",
" 6 | \n",
" konvid_1k | \n",
" RF_frame_diff_vit | \n",
" 0.7145 (±0.0297) | \n",
" 0.5221 (±0.0265) | \n",
" 0.7226 (±0.0281) | \n",
" 0.4487 (±0.0153) | \n",
"
\n",
" \n",
" 7 | \n",
" konvid_1k | \n",
" RF_optical_flow_vit | \n",
" 0.5032 (±0.0495) | \n",
" 0.3508 (±0.0360) | \n",
" 0.5335 (±0.0582) | \n",
" 0.5504 (±0.0224) | \n",
"
\n",
" \n",
" 8 | \n",
" konvid_1k | \n",
" MF_resnet50 | \n",
" 0.6792 (±0.0424) | \n",
" 0.4852 (±0.0342) | \n",
" 0.6788 (±0.0440) | \n",
" 0.4761 (±0.0254) | \n",
"
\n",
" \n",
" 9 | \n",
" konvid_1k | \n",
" MF_vit | \n",
" 0.7062 (±0.0298) | \n",
" 0.5130 (±0.0270) | \n",
" 0.7057 (±0.0296) | \n",
" 0.4582 (±0.0175) | \n",
"
\n",
" \n",
" 10 | \n",
" konvid_1k | \n",
" MF_resnet50_vit | \n",
" 0.7324 (±0.0340) | \n",
" 0.5337 (±0.0298) | \n",
" 0.7291 (±0.0335) | \n",
" 0.4408 (±0.0216) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 154
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Ablation study on layer stack",
"id": "df44ade0d921b4b5"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.741037Z",
"start_time": "2025-03-11T16:39:14.722921Z"
}
},
"cell_type": "code",
"source": [
"data_name = 'konvid_1k'\n",
"model_names = ['pool_vgg16', 'pool_resnet50', 'pool_vit', 'layer_stack_vgg16', 'layer_stack_resnet50', 'pool_pool_vgg16_vit', 'pool_pool_resnet50_vit', 'layer_stack_pool_vgg16_vit', 'layer_stack_pool_resnet50_vit']\n",
"regression_name = 'mlp'\n",
"log_path = './reported_results/ablation_study/layer_stack/'\n",
"df_results = process_log_files(data_name, model_names, regression_name, log_path, decimals=4)\n",
"df_results"
],
"id": "49f7b819608adda7",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL SRCC (±STD) \\\n",
"0 konvid_1k pool_vgg16 0.6665 (±0.0370) \n",
"1 konvid_1k pool_resnet50 0.6751 (±0.0313) \n",
"2 konvid_1k pool_vit 0.6661 (±0.0396) \n",
"3 konvid_1k layer_stack_vgg16 0.7513 (±0.0250) \n",
"4 konvid_1k layer_stack_resnet50 0.7630 (±0.0239) \n",
"5 konvid_1k pool_pool_vgg16_vit 0.7100 (±0.0273) \n",
"6 konvid_1k pool_pool_resnet50_vit 0.7253 (±0.0259) \n",
"7 konvid_1k layer_stack_pool_vgg16_vit 0.7650 (±0.0245) \n",
"8 konvid_1k layer_stack_pool_resnet50_vit 0.7697 (±0.0230) \n",
"\n",
" KRCC (±STD) PLCC (±STD) RMSE (±STD) \n",
"0 0.4878 (±0.0313) 0.6880 (±0.0328) 0.4629 (±0.0188) \n",
"1 0.4881 (±0.0257) 0.7047 (±0.0292) 0.4550 (±0.0162) \n",
"2 0.4906 (±0.0332) 0.7082 (±0.0356) 0.4515 (±0.0199) \n",
"3 0.5626 (±0.0228) 0.7700 (±0.0219) 0.4108 (±0.0186) \n",
"4 0.5699 (±0.0219) 0.7828 (±0.0224) 0.3990 (±0.0162) \n",
"5 0.5210 (±0.0235) 0.7364 (±0.0247) 0.4370 (±0.0153) \n",
"6 0.5308 (±0.0223) 0.7469 (±0.0263) 0.4277 (±0.0151) \n",
"7 0.5742 (±0.0236) 0.7827 (±0.0213) 0.4042 (±0.0177) \n",
"8 0.5779 (±0.0213) 0.7897 (±0.0209) 0.3948 (±0.0152) "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" SRCC (±STD) | \n",
" KRCC (±STD) | \n",
" PLCC (±STD) | \n",
" RMSE (±STD) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" konvid_1k | \n",
" pool_vgg16 | \n",
" 0.6665 (±0.0370) | \n",
" 0.4878 (±0.0313) | \n",
" 0.6880 (±0.0328) | \n",
" 0.4629 (±0.0188) | \n",
"
\n",
" \n",
" 1 | \n",
" konvid_1k | \n",
" pool_resnet50 | \n",
" 0.6751 (±0.0313) | \n",
" 0.4881 (±0.0257) | \n",
" 0.7047 (±0.0292) | \n",
" 0.4550 (±0.0162) | \n",
"
\n",
" \n",
" 2 | \n",
" konvid_1k | \n",
" pool_vit | \n",
" 0.6661 (±0.0396) | \n",
" 0.4906 (±0.0332) | \n",
" 0.7082 (±0.0356) | \n",
" 0.4515 (±0.0199) | \n",
"
\n",
" \n",
" 3 | \n",
" konvid_1k | \n",
" layer_stack_vgg16 | \n",
" 0.7513 (±0.0250) | \n",
" 0.5626 (±0.0228) | \n",
" 0.7700 (±0.0219) | \n",
" 0.4108 (±0.0186) | \n",
"
\n",
" \n",
" 4 | \n",
" konvid_1k | \n",
" layer_stack_resnet50 | \n",
" 0.7630 (±0.0239) | \n",
" 0.5699 (±0.0219) | \n",
" 0.7828 (±0.0224) | \n",
" 0.3990 (±0.0162) | \n",
"
\n",
" \n",
" 5 | \n",
" konvid_1k | \n",
" pool_pool_vgg16_vit | \n",
" 0.7100 (±0.0273) | \n",
" 0.5210 (±0.0235) | \n",
" 0.7364 (±0.0247) | \n",
" 0.4370 (±0.0153) | \n",
"
\n",
" \n",
" 6 | \n",
" konvid_1k | \n",
" pool_pool_resnet50_vit | \n",
" 0.7253 (±0.0259) | \n",
" 0.5308 (±0.0223) | \n",
" 0.7469 (±0.0263) | \n",
" 0.4277 (±0.0151) | \n",
"
\n",
" \n",
" 7 | \n",
" konvid_1k | \n",
" layer_stack_pool_vgg16_vit | \n",
" 0.7650 (±0.0245) | \n",
" 0.5742 (±0.0236) | \n",
" 0.7827 (±0.0213) | \n",
" 0.4042 (±0.0177) | \n",
"
\n",
" \n",
" 8 | \n",
" konvid_1k | \n",
" layer_stack_pool_resnet50_vit | \n",
" 0.7697 (±0.0230) | \n",
" 0.5779 (±0.0213) | \n",
" 0.7897 (±0.0209) | \n",
" 0.3948 (±0.0152) | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 155
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.762824Z",
"start_time": "2025-03-11T16:39:14.759557Z"
}
},
"cell_type": "code",
"source": [
"def process_finetune_csv(pattern, select_criteria, is_finetune):\n",
" csv_files = glob.glob(pattern)\n",
" combined_df = pd.DataFrame()\n",
" if is_finetune == True:\n",
" for file in csv_files:\n",
" df = pd.read_csv(file)\n",
" df['LAYER_NAME'] = 'layer_stack+pool'\n",
" combined_df = pd.concat([combined_df, df], ignore_index=True)\n",
" df.to_csv(file, index=False)\n",
" combined_df = combined_df.sort_values(by='DATASET')\n",
" combined_df = combined_df.round(4)\n",
" df_byrmse = combined_df[combined_df['SELECT_CRITERIA'] == 'byrmse']\n",
" df_bykrcc = combined_df[combined_df['SELECT_CRITERIA'] == 'bykrcc']\n",
" if len(df_byrmse) == len(df_bykrcc):\n",
" combined_horizontal = pd.concat([df_byrmse.reset_index(drop=True), df_bykrcc.reset_index(drop=True)], axis=1)\n",
" print(f\"Performance with SELECT_CRITERIA = {select_criteria} on LSVQ trained model\")\n",
" return combined_horizontal\n",
" else:\n",
" for file in csv_files:\n",
" df = pd.read_csv(file)\n",
" df['LAYER_NAME'] = 'layer_stack+pool'\n",
" combined_df = pd.concat([combined_df, df], ignore_index=True)\n",
" df.to_csv(file, index=False)\n",
" combined_df = combined_df.sort_values(by='DATASET')\n",
" combined_df = combined_df.round(4)\n",
" return combined_df"
],
"id": "8ca6931697279736",
"outputs": [],
"execution_count": 156
},
{
"metadata": {},
"cell_type": "markdown",
"source": "with Fine-tuning on an LSVQ-trained model",
"id": "8d249d7514f827ad"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.828569Z",
"start_time": "2025-03-11T16:39:14.809573Z"
}
},
"cell_type": "code",
"source": [
"log_path = './reported_results/fine_tune/'\n",
"pattern_rmse = log_path + \"/*_relaxvqa_byrmse_finetune.csv\"\n",
"result = process_finetune_csv(pattern_rmse, 'byrmse', True)\n",
"result"
],
"id": "fbbf12f1692e1070",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Performance with SELECT_CRITERIA = byrmse on LSVQ trained model\n"
]
},
{
"data": {
"text/plain": [
" DATASET MODEL LAYER_NAME SRCC KRCC PLCC RMSE \\\n",
"0 cvd_2014 relaxvqa layer_stack+pool 0.8974 0.7299 0.9294 8.1812 \n",
"1 konvid_1k relaxvqa layer_stack+pool 0.8720 0.6881 0.8668 0.3211 \n",
"2 live_vqc relaxvqa layer_stack+pool 0.8468 0.6649 0.8876 7.9869 \n",
"3 youtube_ugc relaxvqa layer_stack+pool 0.8469 0.6623 0.8652 0.3437 \n",
"\n",
" SELECT_CRITERIA DATASET MODEL LAYER_NAME SRCC KRCC \\\n",
"0 byrmse cvd_2014 relaxvqa layer_stack+pool 0.8899 0.7169 \n",
"1 byrmse konvid_1k relaxvqa layer_stack+pool 0.8694 0.6834 \n",
"2 byrmse live_vqc relaxvqa layer_stack+pool 0.8367 0.6531 \n",
"3 byrmse youtube_ugc relaxvqa layer_stack+pool 0.8456 0.6562 \n",
"\n",
" PLCC RMSE SELECT_CRITERIA \n",
"0 0.9124 9.0719 bykrcc \n",
"1 0.8620 0.3263 bykrcc \n",
"2 0.8726 8.4696 bykrcc \n",
"3 0.8631 0.3462 bykrcc "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" LAYER_NAME | \n",
" SRCC | \n",
" KRCC | \n",
" PLCC | \n",
" RMSE | \n",
" SELECT_CRITERIA | \n",
" DATASET | \n",
" MODEL | \n",
" LAYER_NAME | \n",
" SRCC | \n",
" KRCC | \n",
" PLCC | \n",
" RMSE | \n",
" SELECT_CRITERIA | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" cvd_2014 | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8974 | \n",
" 0.7299 | \n",
" 0.9294 | \n",
" 8.1812 | \n",
" byrmse | \n",
" cvd_2014 | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8899 | \n",
" 0.7169 | \n",
" 0.9124 | \n",
" 9.0719 | \n",
" bykrcc | \n",
"
\n",
" \n",
" 1 | \n",
" konvid_1k | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8720 | \n",
" 0.6881 | \n",
" 0.8668 | \n",
" 0.3211 | \n",
" byrmse | \n",
" konvid_1k | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8694 | \n",
" 0.6834 | \n",
" 0.8620 | \n",
" 0.3263 | \n",
" bykrcc | \n",
"
\n",
" \n",
" 2 | \n",
" live_vqc | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8468 | \n",
" 0.6649 | \n",
" 0.8876 | \n",
" 7.9869 | \n",
" byrmse | \n",
" live_vqc | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8367 | \n",
" 0.6531 | \n",
" 0.8726 | \n",
" 8.4696 | \n",
" bykrcc | \n",
"
\n",
" \n",
" 3 | \n",
" youtube_ugc | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8469 | \n",
" 0.6623 | \n",
" 0.8652 | \n",
" 0.3437 | \n",
" byrmse | \n",
" youtube_ugc | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8456 | \n",
" 0.6562 | \n",
" 0.8631 | \n",
" 0.3462 | \n",
" bykrcc | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 157,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 157
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.844063Z",
"start_time": "2025-03-11T16:39:14.842635Z"
}
},
"cell_type": "code",
"source": [
"# pattern_krcc = \"./reported_results/old/*_relaxvqa_bykrcc_finetune.csv\"\n",
"# result = process_finetune_csv(pattern_krcc, 'bykrcc', True)\n",
"# result"
],
"id": "a3e5697b434fb2e5",
"outputs": [],
"execution_count": 158
},
{
"metadata": {},
"cell_type": "markdown",
"source": "without Fine-tuning on an LSVQ-trained model",
"id": "3862e848cc4a698c"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.924048Z",
"start_time": "2025-03-11T16:39:14.910223Z"
}
},
"cell_type": "code",
"source": [
"pattern_rmse_wo = log_path + \"/*_relaxvqa_byrmse*_wo_finetune.csv\"\n",
"result_wo_finetune = process_finetune_csv(pattern_rmse_wo, 'byrmse', False)\n",
"result_wo_finetune"
],
"id": "84a42c874461ba03",
"outputs": [
{
"data": {
"text/plain": [
" DATASET MODEL LAYER_NAME SRCC KRCC PLCC RMSE \\\n",
"1 cvd_2014 relaxvqa layer_stack+pool 0.7845 0.5930 0.8336 12.2445 \n",
"0 konvid_1k relaxvqa layer_stack+pool 0.8312 0.6418 0.8427 0.3466 \n",
"2 live_vqc relaxvqa layer_stack+pool 0.7664 0.5812 0.8242 9.8201 \n",
"3 youtube_ugc relaxvqa layer_stack+pool 0.8104 0.6131 0.8354 0.3768 \n",
"\n",
" SELECT_CRITERIA \n",
"1 byrmse \n",
"0 byrmse \n",
"2 byrmse \n",
"3 byrmse "
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" DATASET | \n",
" MODEL | \n",
" LAYER_NAME | \n",
" SRCC | \n",
" KRCC | \n",
" PLCC | \n",
" RMSE | \n",
" SELECT_CRITERIA | \n",
"
\n",
" \n",
" \n",
" \n",
" 1 | \n",
" cvd_2014 | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.7845 | \n",
" 0.5930 | \n",
" 0.8336 | \n",
" 12.2445 | \n",
" byrmse | \n",
"
\n",
" \n",
" 0 | \n",
" konvid_1k | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8312 | \n",
" 0.6418 | \n",
" 0.8427 | \n",
" 0.3466 | \n",
" byrmse | \n",
"
\n",
" \n",
" 2 | \n",
" live_vqc | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.7664 | \n",
" 0.5812 | \n",
" 0.8242 | \n",
" 9.8201 | \n",
" byrmse | \n",
"
\n",
" \n",
" 3 | \n",
" youtube_ugc | \n",
" relaxvqa | \n",
" layer_stack+pool | \n",
" 0.8104 | \n",
" 0.6131 | \n",
" 0.8354 | \n",
" 0.3768 | \n",
" byrmse | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 159,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 159
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.926433Z",
"start_time": "2025-03-11T16:39:14.924907Z"
}
},
"cell_type": "code",
"source": [
"# pattern_krcc_wo = \"./reported_results/old/*_relaxvqa_bykrcc*_wo_finetune.csv\"\n",
"# result = process_finetune_csv(pattern_krcc_wo, 'bykrcc', False)\n",
"# result_wo_finetune"
],
"id": "8dfee368cceec0e1",
"outputs": [],
"execution_count": 160
},
{
"metadata": {},
"cell_type": "markdown",
"source": "overall performance",
"id": "6c02e6c294f8adf7"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-11T16:39:14.984802Z",
"start_time": "2025-03-11T16:39:14.977867Z"
}
},
"cell_type": "code",
"source": [
"# new\n",
"data = {\n",
" 'BRISQUE': {'SRCC': [0.5553, 0.6781, 0.6096, 0.3517], 'PLCC': [0.5527, 0.6746, 0.6652, 0.3768]},\n",
" 'V-BLIINDS': {'SRCC': [0.7306, 0.7258, 0.6925, 0.4783], 'PLCC': [0.7853, 0.7155, 0.6872, 0.4967]},\n",
" 'TLVQM': {'SRCC': [0.5399, 0.7616, 0.8133, 0.6802], 'PLCC': [0.5785, 0.7463, 0.7912, 0.6876]},\n",
" 'VIDEVAL': {'SRCC': [0.7663, 0.8073, 0.7725, 0.7814], 'PLCC': [0.8062, 0.7923, 0.7752, 0.7929]},\n",
" 'RAPIQUE': {'SRCC': [0.8530, 0.8219, 0.7328, 0.7994], 'PLCC': [0.8766, 0.8191, 0.7520, 0.8300]},\n",
" 'VSFA': {'SRCC': [0.8825, 0.8067, 0.5898, 0.7857], 'PLCC': [0.8784, 0.8182, 0.5894, 0.7808]},\n",
" 'Fast-VQA-B (w/o FT)': {'SRCC': [0.8124, 0.8581, 0.8261, 0.7241], 'PLCC': [0.8221, 0.8551, 0.8466, 0.7364]},\n",
" 'Fast-VQA-B (w/ FT)': {'SRCC': [0.8530, 0.8869, 0.8484, 0.8385], 'PLCC': [0.8456, 0.8776, 0.8703, 0.8302]},\n",
" 'DOVER (Technical Branch)': {'SRCC': [0.8571, 0.8736, 0.7898, 0.8181], 'PLCC': [0.8588, 0.8852, 0.8573, 0.8197]},\n",
" 'ReLaX-VQA (ours)': {'SRCC': [0.8643, 0.8535, 0.7655, 0.8014], 'PLCC': [0.8895, 0.8473, 0.8079, 0.8204]},\n",
" 'ReLaX-VQA (w/o FT)': {'SRCC': [0.7845, 0.8312, 0.7664, 0.8104], 'PLCC': [0.8336, 0.8427, 0.8242, 0.8354]},\n",
" 'ReLaX-VQA (w/ FT)': {'SRCC': [0.8974, 0.8720, 0.8468, 0.8469], 'PLCC': [0.9294, 0.8668, 0.8876, 0.8652]},\n",
"}\n",
"# avg performance of each model for each dataset\n",
"avg_performance = {}\n",
"for model, metrics in data.items():\n",
" avg_srcc = np.mean(metrics['SRCC'])\n",
" avg_plcc = np.mean(metrics['PLCC'])\n",
" avg_performance[model] = {'SRCC': avg_srcc, 'PLCC': avg_plcc}\n",
"df_avg_performance = pd.DataFrame.from_dict(avg_performance, orient='index').round(4)\n",
"df_avg_performance"
],
"id": "ce48ed6f16d15be6",
"outputs": [
{
"data": {
"text/plain": [
" SRCC PLCC\n",
"BRISQUE 0.5487 0.5673\n",
"V-BLIINDS 0.6568 0.6712\n",
"TLVQM 0.6988 0.7009\n",
"VIDEVAL 0.7819 0.7916\n",
"RAPIQUE 0.8018 0.8194\n",
"VSFA 0.7662 0.7667\n",
"Fast-VQA-B (w/o FT) 0.8052 0.8151\n",
"Fast-VQA-B (w/ FT) 0.8567 0.8559\n",
"DOVER (Technical Branch) 0.8347 0.8552\n",
"ReLaX-VQA (ours) 0.8212 0.8413\n",
"ReLaX-VQA (w/o FT) 0.7981 0.8340\n",
"ReLaX-VQA (w/ FT) 0.8658 0.8872"
],
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SRCC | \n",
" PLCC | \n",
"
\n",
" \n",
" \n",
" \n",
" BRISQUE | \n",
" 0.5487 | \n",
" 0.5673 | \n",
"
\n",
" \n",
" V-BLIINDS | \n",
" 0.6568 | \n",
" 0.6712 | \n",
"
\n",
" \n",
" TLVQM | \n",
" 0.6988 | \n",
" 0.7009 | \n",
"
\n",
" \n",
" VIDEVAL | \n",
" 0.7819 | \n",
" 0.7916 | \n",
"
\n",
" \n",
" RAPIQUE | \n",
" 0.8018 | \n",
" 0.8194 | \n",
"
\n",
" \n",
" VSFA | \n",
" 0.7662 | \n",
" 0.7667 | \n",
"
\n",
" \n",
" Fast-VQA-B (w/o FT) | \n",
" 0.8052 | \n",
" 0.8151 | \n",
"
\n",
" \n",
" Fast-VQA-B (w/ FT) | \n",
" 0.8567 | \n",
" 0.8559 | \n",
"
\n",
" \n",
" DOVER (Technical Branch) | \n",
" 0.8347 | \n",
" 0.8552 | \n",
"
\n",
" \n",
" ReLaX-VQA (ours) | \n",
" 0.8212 | \n",
" 0.8413 | \n",
"
\n",
" \n",
" ReLaX-VQA (w/o FT) | \n",
" 0.7981 | \n",
" 0.8340 | \n",
"
\n",
" \n",
" ReLaX-VQA (w/ FT) | \n",
" 0.8658 | \n",
" 0.8872 | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 161,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 161
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}