监控视频长度压缩算法
帧差-> I-mean(I) -->openFilter -->medianFilter + Sobel --> psnr(sobel, black)
1. 帧差法+PSNR
缺点:
亮度剧烈变化检测失败, 人物静止时检测失败
2. 背景差分法+psnr
原图,背景图 该图误检为静帧 44
---》代码加入 abs 并且高斯滤波核设置为3X3
然鹅 然并卵
---》继续删除guassian滤波 然并卵 差分图如下
--》删除openfilter 一样 变成了43
--> modify code as follow 静止照片检测出错 34
median_m = cv::Mat(minus_m.size(), CV_8U); for (int i = 0; i != median_m.cols*median_m.rows; ++i) { int of3 = i*3; float d = _max(minus_m.data[of3] , minus_m.data[of3] , minus_m.data[of3]); median_m.data[i] = (int)d; }
---> 增加openfilter 静帧误检消失, 但是动帧误检出现 44
感觉使用max ( dr,dg,db ) 并不能反应真实的颜色距离???
---》refreshBg 参数设置为0.04 (以前是0.1)
有误检 这么平滑的图像都会被误检??? 用图片分块,然后用熵来判断是否会好一点
--》 refreshBg的时候 把后一帧进行高斯滤波 并且修改阈值为28 (改为高斯滤波后, 平均psnr会增大)
动帧检测失败, 背景噪声和人物信号同时增大了, 如何抑制背景噪声???
----》curr image 差分前使用3X3高斯滤波 37
然并卵
---》 使用 min_psnr 8 块
psnr 变32
--》 去掉sobel滤波
same 31
--->去掉 openfilter
same 30
--->阈值设置为32
静帧检测为了动帧 有问题
--》 分辨率改为320X240
恢复openfilter sobel 阈值恢复为29
same 32
只有这一帧检测错误, 后续通过滤波可以解决!!
----》发现实在是没办法,只能用大杀器深度学习了!!
深度学习比较两张图片的余弦相似度