- 🤖 以机器为中心: 绕过人类的主观感知,完全从深度学习模型的视角来评估图像质量。
- 📈 由任务驱动: 直接衡量图像降质(如模糊、噪声、压缩失真)对下游视觉任务性能的真实影响。
- 💡 全新范式: MIQA 为优化面向机器决策的图像处理流程提供了一个全新的、更有效的视角。
✨ MIQA 是否有效?
![]() |
![]() |
![]() |
使用 MIQA 分数过滤低质量图像后,各项任务的性能均得到提升
🗝️ 核心结论
我们的研究结果清晰地证明了 MIQA 在三个代表性的计算机视觉任务(图像分类、目标检测和实例分割)上的有效性。
该框架能够持续准确地识别出那些会降低模型性能的图像。通过滤除这些有害样本,MIQA 直接提升了下游任务的最终成果,并证明了“以机器为中心”方法的普适价值。这使得质量评估从一个被动的度量标准,转变为一个主动的性能保障工具,保护下游模型免受真实世界中不可预测的图像质量影响,确保其在关键时刻的稳健表现。
🛠️ 安装指南
第 1 步: 安装核心依赖
首先,您需要安装两个必要的库:mmcv 和 mmsegmentation。
安装 mmcv 和 mmsegmentation
若要安装最新版本的 mmsegmentation,请遵循其官方安装指南: MMsegmentation 安装指南
您也可以根据自己的 CUDA 和 PyTorch 版本,安装特定版本的 mmsegmentation。版本兼容性详情请参考: MMCV 安装指南
第 2 步: 处理 CUDA 版本兼容性问题
如果您的 CUDA 版本较高(例如 12.7 或更高),可能会遇到与 mmcv 的版本不匹配问题。此时,您需要安装一个兼容的 mmcv 版本。
安装一个兼容的 mmcv 版本
例如,您可以通过以下命令卸载现有版本并安装一个兼容的新版本:
pip uninstall mmcv mmcv-full -y
mim install "mmcv>=2.0.0rc4,<2.2.0" # 注意:此处版本号仅为示例,请根据您的 CUDA 和 PyTorch 环境选择最合适的版本。
第 3 步: 安装其他所需库
pip install -r requirements.txt
📦 模型权重与性能
代码与权重分工
| 内容 | 位置 |
|---|---|
| 训练 / 推理 / 评估代码 | GitHub:github.com/XiaoqiWang/MIQA |
| 已发布的 RA-MIQA 权重(9 个文件) | Hugging Face 模型库:xiaoqi-wang/miqa |
| MIQD-2.5M 数据 | Hugging Face 数据集:xiaoqi-wang/miqd-2.5m |
命名与缓存
Hub 上的权重命名示例:
miqa_ra_miqa_cls_composite_metric.pth.tarmiqa_ra_miqa_det_consistency_metric.pth.tarmiqa_ra_miqa_ins_accuracy_metric.pth.tar
首次运行会通过 huggingface_hub 下载到 models/checkpoints/{composite|consistency|accuracy}_metric/。
🚀 快速开始
评估单张图像
使用命令行界面对单张图像进行 MIQA 推理:
# 评估一张用于“面向分类的MIQA”的图像
python img_inference.py --input path/to/image.jpg --task cls --model ra_miqa
评估图像目录
处理一个目录中的所有图像:
# 评估一个目录中的所有图像(例如,用于“面向检测的MIQA”)
python img_inference.py --input ./assets/demo_images/coco_demo --task det --model ra_miqa
保存结果与可视化
保存输出并生成可视化结果:
# 为单张图像保存预测分数和可视化结果
python img_inference.py --input path/to/image.jpg --task cls --model ra_miqa --save-results --visualize
# 为一个目录保存批量结果并生成可视化
python img_inference.py --input ./assets/demo_images/imagenet_demo --task ins --save-results --visualize
🎬 视频评估
视频质量评估提供两种工作流: (1) 逐帧标注: 生成带有完整标注的视频,用于详细的视觉检查。这种方法适合演示和定性分析,但计算量较大。 (2) 选择性采样与聚合: 通过采样帧来生成图表和结构化数据(.json),用于高效的定量分析。这种方法是批量处理和生成报告的理想选择。
分析单个视频 (逐帧标注)
对一个视频进行 MIQA 推理,并保存带标注的输出。
# 使用 RA-MIQA 评估单个视频(面向分类的MIQA)
python video_annotator_inference.py --input assets/demo_video/brightness_distorted.mp4 --task cls --model ra_miqa
评估视频目录 (逐帧标注)
处理指定文件夹中的所有视频:
# 评估一个目录中的所有视频,用于面向目标检测的MIQA
python video_annotator_inference.py --input assets/demo_video/ --task det --model ra_miqa
主要输出是一个新的 .mp4 视频文件。该视频会同时播放原始画面和一个动态侧边栏,侧边栏会实时显示质量分数,并随着视频播放绘制一条折线图。
🎥 示例: 视频的逐帧MIQA预测
| 亮度变化 | 压缩伪影 | 无明显感知失真 |
分析单个视频 (选择性采样与聚合)
为了进行高效的定量分析,此脚本会对视频进行帧采样,而不是处理所有帧。它速度快得多,专为生成分析报告而设计。
# 分析一个视频,采样帧,并创建一个双粒度图表
python video_analytics_inference.py --input assets/demo_video/gaussian_distorted.mp4 --task ins --visualize --viz-granularity both```
评估视频目录 (选择性采样与聚合)
此工作流为批量处理进行了高度优化。
# 分析目录中的所有视频,每个视频采样120帧
python video_analytics_inference.py --input assets/demo_video/ --task det --video-frames 120 --visualize
python video_analytics_inference.py --input assets/demo_video/jpeg_distorted.mp4 --task det --visualize --viz-granularity both
# viz-granularity both : 指定要生成的图表类型。'composite' 会创建一个全面的并排比较图表,显示:
# 1. 原始的、逐帧的质量分数。 2. 平滑处理后的、每秒平均的质量分数。
这个过程不会创建新的视频,它会为每个分析的视频生成两个关键输出:
- 一个
.png图像: 一个详细的时间序列图,显示视频播放期间质量分数的波动。 - 一个
.json文件: 一个结构化数据文件,包含每秒的聚合分数、总体统计数据(平均值、最小值、最大值、标准差)和视频元数据。
📊 示例: 视频的聚合MIQA分析
| 亮度变化视频预测结果 | 压缩伪影视频预测结果 | 无明显感知失真视频预测结果 |
![]() |
![]() |
![]() |
🏃 训练与评估
模型训练
CUDA_VISIBLE_DEVICES=0,1 python train.py \
--dataset 'miqa_cls' \
--path_miqa_cls 'path/to/datasets_miqa_cls' \
--train_split_file '../data/dataset_splitting/miqa_cls_train.csv' \
--val_split_file '../data/dataset_splitting//miqa_cls_val.csv' \
--metric_type 'composite' --loss_name 'mse' --is_two_transform \
-a 'RA-MIQA' --pretrained --transform_type 'simple_transform' \
-b 256 --epochs 5 --warmup_epochs 1 --validate_num 2 --lr 1e-4 \
--image_size 288 --crop_size 224 --workers 8 -p 100 \
--multiprocessing-distributed --world-size 1 --rank 0
更多训练脚本请见 "scripts" 文件夹。
在标准基准上进行评估
# 在测试集上评估
python evaluate.py --model_name ra_miqa --train_dataset cls --test_dataset cls --metric_type composite
# 跨数据集评估:评估在miqa_cls数据集上训练并在miqa_det数据集上测试
python evaluate.py --model_name ra_miqa --train_dataset cls --test_dataset det --metric_type composite
📈 基准测试
表 1: 基于综合质量标签的基准测试
| 类别 | 方法 | 图像分类 | 目标检测 | 实例分割 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SRCC ↑ | PLCC ↑ | KRCC ↑ | RMSE ↓ | SRCC ↑ | PLCC ↑ | KRCC ↑ | RMSE ↓ | SRCC ↑ | PLCC ↑ | KRCC ↑ | RMSE ↓ | ||
| 基于人类视觉 (HVS-based) | PSNR | 0.2388 | 0.2292 | 0.1661 | 0.2928 | 0.3176 | 0.3456 | 0.2148 | 0.2660 | 0.3242 | 0.3530 | 0.2196 | 0.2553 |
| SSIM | 0.3027 | 0.2956 | 0.2119 | 0.2874 | 0.4390 | 0.4505 | 0.3011 | 0.2531 | 0.4391 | 0.4512 | 0.3011 | 0.2435 | |
| VSI | 0.3592 | 0.3520 | 0.2520 | 0.2816 | 0.4874 | 0.4940 | 0.3355 | 0.2465 | 0.4919 | 0.4985 | 0.3392 | 0.2365 | |
| LPIPS | 0.3214 | 0.3280 | 0.2258 | 0.2842 | 0.5264 | 0.5376 | 0.3697 | 0.2390 | 0.5342 | 0.5453 | 0.3754 | 0.2287 | |
| DISTS | 0.3878 | 0.3804 | 0.2724 | 0.2782 | 0.5266 | 0.5352 | 0.3659 | 0.2395 | 0.5363 | 0.5450 | 0.3738 | 0.2288 | |
| HyperIQA | 0.2496 | 0.2279 | 0.1741 | 0.2929 | 0.4462 | 0.4463 | 0.3031 | 0.2537 | 0.4456 | 0.4518 | 0.3031 | 0.2434 | |
| MANIQA | 0.3403 | 0.3255 | 0.2387 | 0.2844 | 0.4574 | 0.4617 | 0.3124 | 0.2515 | 0.4636 | 0.4680 | 0.3176 | 0.2411 | |
| 基于机器 (Machine-based) | ResNet-18 | 0.5131 | 0.5427 | 0.3715 | 0.2527 | 0.7541 | 0.7734 | 0.5625 | 0.1797 | 0.7582 | 0.7790 | 0.5674 | 0.1711 |
| ResNet-50 | 0.5581 | 0.5797 | 0.4062 | 0.2451 | 0.7743 | 0.7925 | 0.5824 | 0.1729 | 0.7729 | 0.7933 | 0.5826 | 0.1661 | |
| EfficientNet-b1 | 0.5901 | 0.6130 | 0.4320 | 0.2377 | 0.7766 | 0.7950 | 0.5859 | 0.1720 | 0.7808 | 0.7999 | 0.5918 | 0.1637 | |
| EfficientNet-b5 | 0.6330 | 0.6440 | 0.4680 | 0.2301 | 0.7866 | 0.8041 | 0.5971 | 0.1685 | 0.7899 | 0.8074 | 0.6013 | 0.1610 | |
| ViT-small | 0.5998 | 0.6161 | 0.4407 | 0.2370 | 0.7992 | 0.8142 | 0.6099 | 0.1646 | 0.7968 | 0.8139 | 0.6083 | 0.1585 | |
| RA-MIQA (Ours) | 0.7003 | 0.6989 | 0.5255 | 0.2152 | 0.8125 | 0.8264 | 0.6263 | 0.1596 | 0.8188 | 0.8340 | 0.6333 | 0.1505 | |
表 2: 一致性与准确性得分基准测试
| 方法 | 图像分类 | 目标检测 | 实例分割 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 准确性得分 | 一致性得分 | 准确性得分 | 一致性得分 | 准确性得分 | 一致性得分 | |||||||||||||
| SRCC ↑ | PLCC ↑ | RMSE ↓ | SRCC ↑ | PLCC ↑ | RMSE ↓ | SRCC ↑ | PLCC ↑ | RMSE ↓ | SRCC ↑ | PLCC ↑ | RMSE ↓ | SRCC ↑ | PLCC ↑ | RMSE ↓ | SRCC ↑ | PLCC ↑ | RMSE ↓ | |
| 基于人类视觉 (HVS-based) | ||||||||||||||||||
| PSNR | 0.2034 | 0.1620 | 0.3541 | 0.2927 | 0.2812 | 0.2692 | 0.2234 | 0.2449 | 0.2747 | 0.3712 | 0.3933 | 0.2839 | 0.2182 | 0.2398 | 0.2616 | 0.3796 | 0.4061 | 0.2770 |
| SSIM | 0.2529 | 0.2101 | 0.3509 | 0.3740 | 0.3663 | 0.2610 | 0.3434 | 0.3419 | 0.2662 | 0.5128 | 0.5130 | 0.2651 | 0.3271 | 0.3284 | 0.2545 | 0.5174 | 0.5204 | 0.2589 |
| VSI | 0.3020 | 0.2515 | 0.3473 | 0.4392 | 0.4336 | 0.2528 | 0.3799 | 0.3685 | 0.2634 | 0.5700 | 0.5571 | 0.2565 | 0.3703 | 0.3645 | 0.2509 | 0.5757 | 0.5749 | 0.2481 |
| LPIPS | 0.2680 | 0.2355 | 0.3488 | 0.3927 | 0.4032 | 0.2567 | 0.4064 | 0.3987 | 0.2598 | 0.6196 | 0.6232 | 0.2415 | 0.3972 | 0.3941 | 0.2476 | 0.6300 | 0.6344 | 0.2344 |
| DISTS | 0.3291 | 0.2768 | 0.3448 | 0.4683 | 0.4628 | 0.2487 | 0.4089 | 0.3999 | 0.2597 | 0.6174 | 0.6178 | 0.2429 | 0.4069 | 0.4012 | 0.2468 | 0.6255 | 0.6270 | 0.2362 |
| HyperIQA | 0.2100 | 0.1649 | 0.3540 | 0.2966 | 0.2777 | 0.2695 | 0.3646 | 0.3545 | 0.2649 | 0.5009 | 0.4943 | 0.2684 | 0.3486 | 0.3442 | 0.2530 | 0.5056 | 0.4995 | 0.2626 |
| MANIQA | 0.2924 | 0.2435 | 0.3481 | 0.3963 | 0.3870 | 0.2587 | 0.3839 | 0.3823 | 0.2618 | 0.4991 | 0.4975 | 0.2679 | 0.3755 | 0.3749 | 0.2498 | 0.5096 | 0.5098 | 0.2608 |
| 基于机器 (Machine-based) | ||||||||||||||||||
| ResNet-50 | 0.4734 | 0.4411 | 0.3221 | 0.5989 | 0.6551 | 0.2119 | 0.6955 | 0.6898 | 0.2051 | 0.8252 | 0.8457 | 0.1648 | 0.6863 | 0.6847 | 0.1964 | 0.8320 | 0.8480 | 0.1607 |
| EfficientNet-b5 | 0.5586 | 0.5149 | 0.3076 | 0.6774 | 0.7168 | 0.1956 | 0.7042 | 0.6991 | 0.2026 | 0.8353 | 0.8530 | 0.1612 | 0.6933 | 0.6949 | 0.1938 | 0.8419 | 0.8564 | 0.1565 |
| ViT-small | 0.5788 | 0.5197 | 0.3066 | 0.6798 | 0.7189 | 0.1950 | 0.7121 | 0.7052 | 0.2008 | 0.8459 | 0.8620 | 0.1566 | 0.7168 | 0.7146 | 0.1885 | 0.8487 | 0.8616 | 0.1539 |
| RA-MIQA | 0.6573 | 0.5823 | 0.2917 | 0.7707 | 0.7866 | 0.1732 | 0.7448 | 0.7370 | 0.1915 | 0.8526 | 0.8692 | 0.1527 | 0.7363 | 0.7327 | 0.1834 | 0.8632 | 0.8756 | 0.1464 |
📚 引用
如果本研究对您的工作有所帮助,请考虑引用我们的论文:
@article{wang2025miqa,
title={Image Quality Assessment for Machines: Paradigm, Large-scale Database, and Models},
author={Wang, Xiaoqi and Zhang, Yun and Lin, Weisi},
journal={arXiv preprint arXiv:2508.19850},
year={2025}
}
📧 联系我们
- 项目维护者: Xiaoqi Wang
- 问题反馈: 请通过 GitHub Issues 提交错误报告和功能建议。





