/****************************************************************************************************************
文件说明:
OpenCv3.0中新架构以及新增功能的详解
时间地点:
陕西师范大学 问津楼 2017.5.16
作 者:
九 月
****************************************************************************************************************/
/****************************************************************************************************************
文件说明:
OpenCv3.0.0新特性的分析
(一)OpenCv3.0相对于OpenCv2.X系列的改变
1)项目架构的改变
OpenCv3.0抛弃了整体的项目架构方式,采用了内核+插件的架构形式
2)添加了更多的cuda加速模块
3)所有的算法都将继承自cv::Algorithm接口
(二)语言层、OS、硬件
1)语言:支持Python、C/C++、Java
2)OS:windows、linux、MacOS、ios、Android、WinRTx
3)硬件:GPU、X86、ARM、MIPS
(三)OpenCv编程中的加速手段
1)针对GPU的加速:CUDA、OpenCL
2)针对x86和x64的加速:OpenCl、SSE/AUX
(四)OpenCv各模块的总结
1)calib3d---Calibration(校准)和3D这两个单词的组合:这个模块主要用于:
1)摄像机的校准
2)三维重建
3)包括:基本的多视角几何算法、单个摄像机的标定、物体姿态估计、
立体相似性算法、3D信息的重建等
2)core模块:核心模块功能,包含以下内容:
1)OpenCv基本的数据结构
2)动态数据结构
3)绘图函数
4)数据操作相关函数
5)辅助功能与系统函数和宏
6)与OpenGL的互操作
3)imgproc模块:图像处理模块,主要包括以下功能:
1)线性和非线性的滤波
2)图像的几何变换
3)其他的图像变换
4)直方图相关操作
5)结构分析与形状分析
6)运动分析与目标跟踪
7)特征检测
8)目标检测
4)feature2d模块:包含如下功能:
1)特征的检测与描述
2)特征检测器的通用接口(Feature Detectors)
3)特征提取器的通用接口(Descriptor Extractors)
4)特征描述符的通用接口(Descriptor)
5)描述符匹配器的通用接口
6)关键点绘制函数和匹配功能绘制函数
5)flann:
1)快速近似最近邻搜索
2)聚类
6)highgui模块:
1)高层GUI图形用户界面
2)媒体的输入输出
3)视频捕捉
4)图像和视频的编码解码
5)图形交互界面
7)legacy:一些已经废弃的代码
8)ml:机器学习模块库
9)nonfree模块:
1)一些具有专利的算法模块
2)包括GPU相关的内容
10)objdetect:目标检测模块
1)级联分类
2)Latent SVM
11)photo:包含图像修复和图像去燥两部分
12)stitching:图像拼接模块,包含如下的内容:
1)拼接流水线
2)特点寻找和匹配图像
3)估计旋转
4)自动校准
5)图片歪斜
6)接缝估测
7)曝光补偿
8)图片混合
13)superres:超分辨了技术
14)video:视频组件分析,该模块包括:
1)运动估计
2)背景分离
3)对象跟踪
15)Gpu:gpu加速代码模块
16)viz:3D视觉的可视化
17)
(五)OpenCv机器学习库中主要实现的算法如下所示:
1)一般贝叶斯分类器
2)K近邻分类
3)支持向量机
4)期望最大化
5)决策树
6)随机森林
7)Boost分类器
8)神经网络
每种算法实现的函数主要如下所示:
1)数据处理:获得训练样本的测试样本
2)分类器初始化参数设置
3)训练
4)预测分类
5)分类器的读写保存:主要完成从文件节点中读取分类器相关信息以及得到的分类器相关信息保存到文件中等
(六)OpenCv中的CUDA加速模块:
1)cuda:CUDA-加速的计算机视觉算法,包括数据结构cuda、GpuMat、基于cuda的相机标定以及三维重建等
2)cudaarithm: CUDA加速的矩阵运算模块
3)cudabgsegm: CUDA加速的背景分割模块,通常用于视频监控
4)cudacodec: CUDA加速的视频编码解码
5)cudafeature2d:CUDA-加速的特征提取和描述模块,与feature2d模块类似
6)cudafilters: CUDA-加速的图像滤波算法
7)cudaimgproc: CUDA-加速的图像处理算法、包括直方图计算、霍夫变换等
8)cudaoptflow: CUDA-加速的光流检测算法
9)cudastereo: CUDA-加速的立体匹配算法
10)cudawarping: CUDA-加速的快速图像变换,如透视变换、旋转、改变尺寸等
11)cudev:CUDA核心功能,类似core模块中的基础算法
(七)OpenCv3.0增加的功能:
1)opencv_contrib/ccalib 全方位摄像机标定和立体三维重建
2)opencv_contrib/sfm module 从运动信息中恢复三维场景结构
3)opencv_contrib/dpm module 改进的变形部件为基础的模型
4)opencv_contrib/tracking module 采用核心化相关滤波实时多目标跟踪
5)opencv_contrib/text module 改进和扩展场景文字探测
6)opencv_contrib/stereo module 立体匹配的改进
7)opencv_contrib/structured_light 结构关系标定
8)opencv_contrib/aruco 运用棋盘 + ArUco库标定摄像头
9)opencv_contrib/dnn module 深度神经网络框架的通用接口的实现
10)opencv_contrib/calib3d and opencv_contrib/ximgproc 边缘意思过滤的最新进展,改进SGBM立体算法
11)opencv_contrib/xobjdetect 改进的ICF检测,WaldBoost实现
12)opencv_contrib/tracking module 多目标TLD算法跟踪
13)opencv_contrib/cnn_3dobj 3D姿态估计使用细胞神经网络
**********************************************************************************************************/