智能视频分析中的光照强度突然变化的处理方法
2013-08-23 12:46
411 查看
在智能视频分析系统的研究过程中,尤其是对于一些工程应用来说,光照的突然变化是一个很棘手的问题。尽管,不少学者对光照的突然变化进行了大量的研究,而且也提出了相关的光照不变的算法(illumination invariant),对解决这类问题提供了一定的思路。一般都是通过计算光照不变特征来实现,文章包括:
1)An Illumination Invariant Change Detection Algorithm.
2)Bayesian Illumination-Invariant Motion Detection.
3)robust and illumination invariant change detection based on linear dependence for surveillance application.
4)reflectance ratio-a photometric invariant for object recognition_ICCV93.
5)computing reflectance ratios from an image_PR93.
6)Color Invariant Edge Detection
7)Learning Photometric Invariance for Object Detection-IJCV2010
8)making background subtraction robust to sudden illumination changes
9)Object Detection Using Local Difference Patterns.
尽管,以上论文中的方法都声称对光照变化具有不变形,但是在实际中,有很多是靠不住的,可能说对缓慢光照的变化具有一定的鲁棒性更准确。有些算法的复杂度也是可待商榷的(如making background subtraction robust to sudden illumination changes)。
根据实际情况,本文提出两种解决光照突然变化的方法,一是多模式的背景模型,而是背景重建,我想这也应该是工程中应用较多的途径和思路吧。
多模式背景模型就是对一个场景建立多种环境下的背景模型,算法检测环境的变化,自动选择背景模型。如对于光照条件正常的情况建议一个背景模型,进行保存;而对于背景较暗的情况建立一个背景模型,也进行保存;如果有多种情况,就建立多个背景模型。(而对于缓慢的光照变化现在应该有很多算法能够处理)。
而对另外的背景重建的思路,现在已经有相当普遍的算法能够就一帧建立起背景模型(如SOBS、VIBE等)。在检测到有突然光照变化的情况下,就进行背景模型的重建,接着对运动进行检测。然而,这种情况下,比较棘手的问题是如何判断光照的变化,很多论文上说的采用前景像素占整个图像大小的比例作为依据,然后改中方法在实际中也常常带有误判,误判率较高。本文介绍一种思路,而且经过试验也很不错,相比比率方法有了不少提高。
思路如下:将整个图片进行分块,统计每一块的前景像素个数,当某块的前景像素大于某一个阈值时,则计数器+1,依次遍历整个图像,统计得到计数器的值,计算机计算器与整个图像块数的比值,比值大于某一阈值,则判断为光照突变。
核心代码如下:
1)图像分块
2)计算比值
转载请注明出处:http://blog.csdn.net/kezunhai
1)An Illumination Invariant Change Detection Algorithm.
2)Bayesian Illumination-Invariant Motion Detection.
3)robust and illumination invariant change detection based on linear dependence for surveillance application.
4)reflectance ratio-a photometric invariant for object recognition_ICCV93.
5)computing reflectance ratios from an image_PR93.
6)Color Invariant Edge Detection
7)Learning Photometric Invariance for Object Detection-IJCV2010
8)making background subtraction robust to sudden illumination changes
9)Object Detection Using Local Difference Patterns.
尽管,以上论文中的方法都声称对光照变化具有不变形,但是在实际中,有很多是靠不住的,可能说对缓慢光照的变化具有一定的鲁棒性更准确。有些算法的复杂度也是可待商榷的(如making background subtraction robust to sudden illumination changes)。
根据实际情况,本文提出两种解决光照突然变化的方法,一是多模式的背景模型,而是背景重建,我想这也应该是工程中应用较多的途径和思路吧。
多模式背景模型就是对一个场景建立多种环境下的背景模型,算法检测环境的变化,自动选择背景模型。如对于光照条件正常的情况建议一个背景模型,进行保存;而对于背景较暗的情况建立一个背景模型,也进行保存;如果有多种情况,就建立多个背景模型。(而对于缓慢的光照变化现在应该有很多算法能够处理)。
而对另外的背景重建的思路,现在已经有相当普遍的算法能够就一帧建立起背景模型(如SOBS、VIBE等)。在检测到有突然光照变化的情况下,就进行背景模型的重建,接着对运动进行检测。然而,这种情况下,比较棘手的问题是如何判断光照的变化,很多论文上说的采用前景像素占整个图像大小的比例作为依据,然后改中方法在实际中也常常带有误判,误判率较高。本文介绍一种思路,而且经过试验也很不错,相比比率方法有了不少提高。
思路如下:将整个图片进行分块,统计每一块的前景像素个数,当某块的前景像素大于某一个阈值时,则计数器+1,依次遍历整个图像,统计得到计数器的值,计算机计算器与整个图像块数的比值,比值大于某一阈值,则判断为光照突变。
核心代码如下:
1)图像分块
// winSize default 32 void buildGrid( const Mat& input, vector<Rect>& grid, int winSize=32 ) { grid.clear(); int height = input.rows; int width = input.cols; Rect rc; for ( int i=0; i<height; i=i+winSize) { for ( int j=0; j<width; j=j+winSize ) { rc.y = i; rc.x = j; if (rc.x + winSize>width-1) rc.width = width-rc.x-1; else rc.width = winSize; if (rc.y+winSize>height) rc.height = height-rc.y-1; else rc.height = winSize; grid.push_back(rc); } } }
2)计算比值
// winSize default 32, ratio default 1.0/winSize bool isSuddenChange( const vector<Rect>& grid, Mat& foreground, int winSize=32, double ratio=1.0/32.0) { int count = 0; int gridSize = grid.size(); for ( int i=0; i<gridSize; ++i ) { int nonZero = countNonZero( foreground(grid[i])); double _r = double(nonZero)/(double)(winSize*winSize); //if ( nonZero>32) if ( _r> ratio) count++; } double ratio = (double)count/(float)gridSize; cout<<" NonZero ratio: "<<ratio<<endl; if ( ratio > 0.60 ) { imwrite("fore.jpg",foreground); return true; } return false; }
转载请注明出处:http://blog.csdn.net/kezunhai
相关文章推荐
- 智能视频分析中的光照强度突然变化的处理方法
- 【计算机视觉】【视频开发】智能视频分析中的光照强度突然变化的处理方法
- 视频图像的MATLAB处理(2)两种主成分分析方法
- asp.net C#调用mencoder处理视频的方法
- Python sqlite3事务处理方法实例分析
- IIS7传大于30M的视频时出现找不到文件或目录错误正确处理方法
- VC智能提示失效 的处理方法
- 国内智能视频分析监控技术的出路
- SharePoint 2007运行 Edit In DataSheet 时在IE 6下页面卡死的分析和处理方法
- IOS 应用事件处理方法分析
- 智能视频分析技术可发展的商业产品功能设想
- 需要视频质量诊断,智能行为分析,人数统计的联系我
- 入门视频采集与处理(学会分析YUV数据)
- android播放视频时在立体声与单声道之间切换无变化原因分析及解决
- 【工业大数据】大数据驱动的智能车间运行分析与决策方法体系
- 关于FragmentPagerAdapter中getItem()方法失效的问题分析与处理
- 入门视频采集与处理(学会分析YUV数据)
- JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
- 入门视频采集与处理(学会分析YUV数据)
- 网页视频出现两个一样的视频的处理方法