视频图像质量检测
视频质检不仅可以智能检测视频画面中抖动重影、模糊、低光照、过曝光、黑边、白边、黑屏、白屏、花屏、噪点、马赛克、二维码等在内的多个场景,还可以基于整体视频画面进行无参考质量打分。
抖动重影
- 抖动检测核心方法:
- 基于时域特征的抖动判断
- 灰度投影法:计算帧间行/列方向的灰度投影曲线,通过相关性分析判断位移。若相邻帧位移量超过阈值(如像素位移>5),则判定为抖动。
- 特征点匹配法:使用ORB/SIFT提取特征点,通过RANSAC算法计算仿射变换矩阵,若匹配点位移方向离散度高且存在整体偏移,则判定抖动。
- 频域运动矢量分析:对连续帧进行FFT变换,检测频域能量分布方向。抖动场景中,运动模糊核的能量方向呈现随机性,而正常视频能量分布方向一致。
- 基于时域特征的抖动判断
- 重影检测核心方法:
- 残影区域定位
- 多帧叠加法:取连续3-5帧叠加分析,若存在相同物体的半透明重叠轮廓(Alpha值0.3-0.7),则判定为重影。
- 边缘扩散检测:使用Canny算子提取边缘后,计算边缘宽度。重影区域的边缘宽度比正常区域宽1.5倍以上。
- 光流异常检测:计算稠密光流场(如Farneback算法),若局部区域出现双向运动矢量(如某区域同时存在向左和向右矢量),则可能为运动补偿残留导致的重影。
- 残影区域定位
模糊
- 基于空域分析:
- 梯度特征:
- 拉普拉斯方差(Laplacian Variance):通过计算图像二阶导数(拉普拉斯算子)的方差评估模糊程度。清晰图像边缘丰富导致方差高,模糊图像方差低。经验阈值通常在50-200之间,需根据场景调整。
- Tenengrad梯度法:利用Sobel算子提取水平和垂直梯度,计算梯度幅值之和。清晰图像梯度值高,模糊时梯度显著下降。
- 图像方差法:直接计算图像灰度方差,低方差表明细节丢失,适用于均匀模糊场景。
- 边缘与对比度:
- 局部对比度检测:通过分块计算区域对比度(标准差或梯度差异),模糊区域对比度显著低于清晰区域。
- 边缘宽度量化:提取图像边缘后测量边缘扩散宽度,模糊图像边缘更宽且梯度变化平缓。
- 梯度特征:
- 基于频域分析:
- 高频能量占比法:对图像进行傅里叶变换(FFT)或离散余弦变换(DCT),清晰图像高频分量能量占比高,模糊图像高频能量衰减明显。可通过设定高频区域能量阈值判断模糊。
- 频域噪声分析:模糊图像在频域中噪声分布与清晰图像不同,例如运动模糊会导致频域能量沿特定方向扩散,利用方向滤波器分离特征。
- 基于深度学习的模糊判断:
低光照
- 基于亮度特征的判断:
- 全局亮度统计【 YUV 空间分析】:将图像转换为YUV颜色空间,计算亮度通道(Y)的均值。若亮度均值低于经验阈值(如0.1-0.3范围,取决于场景),可初步判定为低光照图像。
- 全局亮度统计【直方图分布】:观察亮度直方图,若像素集中在低亮度区域(如0-50灰度级)且高光区域占比极低,则可能为低光照。
- 局部对比度检测:计算图像局部区域的对比度(如标准差或梯度幅值),低光照图像通常整体对比度较低且细节模糊,可使用Sobel算子或频域变换(DCT)量化分析。
- 基于特征分解的判断:
- Retinex 理论应用:使用Retinex算法(如MSRCR或单尺度Retinex)分解图像的光照分量。若光照分量整体偏暗且分布不均匀,可判断为低光照环境。
- 频域噪声分布:低光照图像常伴随高频噪声(如高斯噪声或泊松噪声)。通过傅里叶变换分析高频能量占比,若显著高于正常光照图像,可作为辅助判断依据。
- 基于数据集预分类模型:
过曝光
- 基于直方图分析的方法
- 全局亮度统计:通过分析图像亮度直方图,若高光区域(如灰度级>200)像素占比过高,可判定为过曝光。例如,YUV空间的亮度通道(Y)均值超过0.7时可能过曝。
- 局部区域检测:将图像分块计算局部亮度方差,过曝区域通常表现为低对比度和细节丢失,结合Sobel算子或频域变换量化评估。
- 频域特征分析
- 对图像进行傅里叶变换(FFT),过曝区域高频能量显著降低(因细节丢失),通过高频能量占比阈值判断过曝程度。
- 深度学习分类模型
- 使用CNN(如ResNet、MobileNet)训练二分类模型,输入图像直接输出过曝/正常标签。常用数据集包括合成过曝数据集和真实场景数据集(如Exposure-Error)。
- 使用CNN(如ResNet、MobileNet)训练二分类模型,输入图像直接输出过曝/正常标签。常用数据集包括合成过曝数据集和真实场景数据集(如Exposure-Error)。
黑边
○ 传统图像处理算法:
■ 基于亮度统计与双条件校验:通过统计图像边缘行列的亮度值,结合像素亮度阈值和相邻像素差异阈值双重判断黑边区域(如亮度低于阈值且相邻像素差异小于阈值)。
■ 边缘检测与霍夫变换结合:使用Canny边缘检测提取图像边缘,霍夫直线检测定位黑边边界线(如水平/垂直直线),非极大值抑制(NMS)筛选最优边界。
■ 无效值检测与轮廓分析:通过识别无效像素(如RGB=0或255)生成掩膜,结合形态学操作(腐蚀/膨胀)确定有效区域轮廓。ArcGIS工具中常用此方法处理遥感影像黑边。
○ 机器学习与深度学习:比如训练自监督模型(如ResNet50)提取图像特征,通过对比学习拉近相似内容距离,区分黑边与有效区域。
白边
类似白边检测
黑屏
类似白屏检测
白屏
视频图像白屏检测算法主要用于识别监控画面或前端页面因信号丢失、设备故障、网络中断等原因导致的画面全白或内容缺失问题。
- 基于图像处理的检测:
- 亮度阈值法:通过统计图像亮度分量(YUV或灰度化处理)的平均值,结合预设阈值判断是否白屏。
- 图像二值化与连通区域检测:对图像进行二值化处理,将偏白区域标记为前景,计算最大连通区域面积;若面积占比超过阈值(如90%以上),判定为白屏。
- 频域分析与梯度检测:对图像进行DFT频谱分析,检测高频分量异常(如横向/纵向条纹干扰),辅助区分白屏与其他噪声。
- 基于动态分析的检测
- 帧差法与运动检测:对比连续视频帧的差异,若长时间无变化且亮度均匀,可能为白屏;使用特征点匹配(如SIFT、ORB)跟踪画面运动轨迹,静态特征点占比过高时触发告警。
- 帧差法与运动检测:对比连续视频帧的差异,若长时间无变化且亮度均匀,可能为白屏;使用特征点匹配(如SIFT、ORB)跟踪画面运动轨迹,静态特征点占比过高时触发告警。
花屏
视频图像花屏检测算法是通过分析视频帧的异常特征来识别画面中出现的随机像素变化、条纹、色块等问题。
- 传统图像算法:
- 统计分析与阈值判定:
- 均值与标准差计算方法通过计算图像灰度均值和标准差,判断像素分布是否异常。若标准差超过阈值,则判定为花屏
- 直方图分析:统计亮度或色彩通道的直方图分布,若出现集中或离散异常(如全黑/全白峰值),可能为信号丢失或偏色问题
- 频域与梯度分析
- 傅里叶变换:检测图像频域中的高频噪声(如雪花噪点)或特定方向条纹(如横向/纵向干扰)。
- 梯度计算:分析图像边缘梯度分布,若梯度异常集中可能为花屏或模糊。
- 统计分析与阈值判定:
- 深度学习算法:目标检测与分类网络、数据增强与迁移学习
噪点
- 空域噪声检测:Hessian矩阵特征分析、局部相似度与中值滤波、梯度算子与卷积模板
- 时域噪声检测:光流法等
- 深度学习算法:基于卷积神经网络(如DnCNN)训练噪声分布模型,端到端检测复杂混合噪声,尤其在低光或动态场景中表现优异。
马赛克
- 传统的图像处理算法:
- 边缘检测与区域生长:通过Canny/Sobel等算法提取边缘,结合霍夫变换检测直线特征,定位矩形马赛克区域边界;
- 频域特征分析:计算图像水平/垂直方向像素灰度差的FFT频谱,通过频谱密度分布差异判断马赛克特征。实验表明,马赛克区域在频域呈现高频能量集中特性;
- FCM 模糊聚类:结合模糊C均值聚类(FCM)分割图像区域,通过模板匹配筛选马赛克特征,提升复杂背景下的检测精度;
- 深度学习算法:
- 端到端检测模型:基于神经网络训练二分类模型,输入为视频帧图像,直接输出马赛克/非马赛克判定结果;
- 多特征融合网络:集成空间特征(如边缘、纹理)与频域特征,通过注意力机制强化马赛克区域的特征表达;
二维码
- 传统的图像处理算法:
- 边缘检测与形态学处理:通过Canny/Sobel边缘检测定位二维码轮廓,结合腐蚀膨胀去除噪点并强化区域特征。
- 几何矫正技术:利用霍夫变换拟合四边形边界,通过仿射变换矫正倾斜或透视变形的二维码,提升解码成功率。
- OpenCV 原生方案:QRCodeDetector检测速度快(约12ms/帧),直接输出角点坐标,但对模糊或反光场景鲁棒性不足。
- 深度学习算法:
- 微信开源模型(WeChatQRCode)
- YOLO系列目标检测