阅读:2245回复:0
INDEMIND带你玩转OpenCV 4.0:新特性介绍及DIS光流算法解析
在OpenCV 3.0发布至今三年半的时间中,经过 Alpha、Beta、RC等版本的打磨,OpenCV 4.0终于正式来袭,为我们带来很多新特性。这些新特性具体会为OpenCV带来怎样的提升?在实际使用情况下表现如何?INDEMIND在接下来的一段时间中将带大家一一解析。
一.OpencCV 4.0 新特性介绍 新版OpenCV 4.0更加聚焦图像处理基础功能和深度学习模块,尤其是DIS光流算法的更新,算是补足了光流算法落后的短板,然而DIS算法表现怎么样,我们不妨让事实说话。[1]首先是OpenCV完全支持了C++ 11 注:本次DIS光流算法分析基于OpenCV测试集以及INDEMIND双目视觉惯性模组运行DIS算法实测。 二.Opencv 4.0 安装 首先,我们要安装OpenCV 4.0,具体操作如下: 1. 下载最新的opencv 4.0.0。 图片:1.1.png 2. 解压下载的压缩包。从源码安装opencv4.0.0 a) 安装openv依赖性。 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev b) Cmake 配置opencv,运行命令如下: cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. 初次安装opencv可以选择/usr/local,对于电脑中已经有opencv的,可以选择其他安装目录。 c) 运行Make 和 Make install 三.DIS 光流 1.DIS光流介绍 [2]光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”。光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。 DIS 光流算法是Dense Inverse Search-based method的简称,于2016年由Till Kroeger等人提出的一种在光流质量和计算时间中取得平衡的算法。 主要包含3个方面: 1) 基于块对应关系的逆搜索 2)沿着多尺度做图像块的聚合从而获得稠密的光流场 3)精细化搜索。 DIS算法最大的优点在于运算速度的提升,在单核cpu上,1024*436分辨率可以达到300Hz-600Hz运行速率;包含图像预处理,例如平滑,缩放,梯度计算等运行速度能达到42/46 Hz,完全满足实时的需求。 运行时间及效果对比图如下:
具体详细信息,请查看《Fast Optical Flow Using Dense Inverse Search》原论文。 2.DIS光流调用流程 Dis光流算法在OpenCV 4.0中被集成到video模块中。 调用 Ptr<DenseOpticalFlow> algorithm = DISOpticalFlow::create(DISOpticalFlow::PRESET_MEDIUM); algorithm->calc(prevgray, gray, flow); 调用流程如下: 图片:未命名文件 (1).png 3.Dis光流结果 说明:将光流场转换到HSV空间中显示,光流的数值用不同颜色来区分,色斑颜色深浅代表运动速率,白色代表物体无运动。 图像说明:左侧彩图为原始图像,白色背景图像为HSV空间显示,蓝色背景图像为HSV空间显示叠加原始图像。 为了充分测试DIS光流算法,我们对比了Farneback 光流算法在不同的纹理和光照下的结果,具体结果如下 本次的demo所用的测试集为:opencv 中的samples/data/vtest.avi。这个demo前景和背景的纹理都较为丰富。 图片:1-恢复的.png 如上图所示,Dis光流算法背景纯白无光斑,说明算法对纹理丰富的背景区域或无运动区域处理的更好。 图片:2-恢复的.png 图片:3-恢复的.png 图片:4-恢复的.png 在光流算法中,图像中的同一移动物体的速度应该一致,对应的色斑应是一致或平滑渐变,而Farneback 光流算法光斑却出现了突变,证明DIS光流算法对图像运动物体处理更精确。 图片:5-恢复的.png 如图,图像中行人路过路灯时,Farneback 光流算法将路灯识别成了移动物体,DIS光流算法并未出现类似错误,证明DIS光流算法对移动物体于固定物体叠加状态处理更精准迅速。 总结: 在纹理丰富场景,OpenCV 4.0中DIS光流算法对运动物体检测精准流畅,行人色斑一致顺畅,复杂场景(运动与固定物体重叠)无明显错误,达到了实用标准,比Farneback 光流算法表现更好。 INDEMIND双目视觉惯性模组运行DIS光流算法 说明:本Demo演示Dis光流算法与Farneback 光流算法在前景和背景纹理都较弱(天空部分无纹理),效果如下: 图片:our-恢复的.png 从Demo中可以看出, DIS光流算法对天空无纹理、地面弱纹理等场景支持不足,出现了大量混乱光斑,实用效果不及Farneback 光流算法。建议各位在使用OpenCV 4.0应对弱纹理场景时,使用Farneback 光流算法。 关于DIS光流算法的介绍到这里先告一段落,接下来INDEMIND将为大家带来更多OpenCV 4.0的新特性解析验证,敬请关注。 四.关于INDEMIND INDEMIND是一家专注于计算机视觉技术研发与嵌入式计算平台研发的人工智能公司,行业领先的计算机视觉方案提供商。研发团队结合自身在计算机视觉技术上的优势,研发了包含空间感知、环境语义、多传感器融合等算法的软硬件全栈技术方案,推出了双目视觉惯性模组、环境感知视觉前端计算平台,以满足智能摄像头、机器人及穿戴计算等行业的感知计算需求。 参考资料: [1] 周强.千呼万唤始出来!OpenCV 4.0正式发布!.2018-11-22 [2] jobbofhe.光流法简单介绍.2018-5-25 [3]Kroeger,T&R.Timofte&D.X.Dai&L.V. Gool. Fast Optical Flow Using Dense Inverse Search [J] .2016-09-17 [4]Kroeger,T&R.Timofte&D.X.Dai&L.V. Gool. Fast Optical Flow Using Dense Inverse Search [J] .2016-09-17 |
|