20161113#CVPR#学习笔记
来源:互联网 发布:淘宝巧克力 编辑:程序博客网 时间:2024/06/13 05:46
图像函数
- 灰度图像函数
- RGB/Lab/HSV图像函数
滤波器
- 目标:为了对图像提取有用的信息并形成一个新的图像,或修改或提高图片的property
- 卷积核:卷积的模板,对图像的某一个pixel进行特定运算之后的反映在新图像对应的pixel上
边缘设置为0的原因
图中红色矩形为N2*M2,由于可能会出现卷积核的中心位于图像边缘时,卷积核的其他部分读取不到对应的pixel(如图中深绿色处的红色阴影部分),所以需要对深绿色部分做补零处理
在创建新图像的时候应该初始化图像大小为(n1+n2-1)*(m1+m2-1)这样才能够保证卷积核的读取不会出问题。
互相关运算
对一个图像进行自相关运算之后,可以对图像中相关性较大的部分进行强化,弱化不相关部分
如图中的黑色矩形色块,即为相关性较大的部分
边缘检测
边缘检测的一般步骤都是使用高斯模糊降噪,使用特定的算子对图像进行运算,然后使用阈值提取图像边缘
HOG
1、HOG特征描述子的定义:
locally normalised histogram of gradient orientation in dense overlapping grids,即局部归一化的梯度方向直方图,是一种对图像局部重叠区域的密集型描述符, 它通过计算局部区域的梯度方向直方图来构成特征。
2、本质:
Histogram of Oriented Gradient descriptors provide a dense overlapping description of image regions,即统计图像局部区域的梯度方向信息来作为该局部图像区域的表征。
HOG中最关键的就是构建直方图,利用直方图对图像进行分析。
构建直方图的步骤是
1. 分别计算RGB三个通道的梯度,选择三个通道中具有最大模值的梯度向量作为该像素的梯度向量。再计算每个像素点的梯度幅值和方向
2. 划分cells
3. 为每个cell构建梯度方向直方图,这个直方图即为该cell的描述
4. 将cells组成blocks进行下一步处理
任务
通过随机观察图像,整理总结边缘出现的位置和原因
在一张实际图像中,我们会发现边缘总是出现在亮度/颜色突变的地方。
对于一张灰度图片,图像中的边缘一般出现在图像灰度变化较大的地方,具体可见Lecture-3-EdgeDetection.pdf Page7,常见的有阶跃处、斜坡处、最高处和尖峰处,这些地方灰度变化比较大。
而用数学的表示便是,图像即亮度梯度的最大值点。或者说也是亮度的二阶导数的零点。(即对亮度使用拉普拉斯算子后的零点)HOG为何可以被用来刻画物体形状?
这是因为HOG对每个cell构建了一个以梯度方向为bin,再对bin加以梯度值为权的一个值。再把每一个block中的每一个cell串联起来,根据得到的直方图,可以读出边缘的位置。
我觉得边缘很可能出现在直方图的bin值最大的地方,对应的方向可以读出来,值越大方向,其作edge的可能性越大。而两个相邻block之间又有overlap,所以这些可以进行进一步判断是否为edge。
知道了每一个cell中最有可能为edge的梯度方向,那么就可以逐渐描绘出图像中物体的形状了。
学习过程中用于辅助理解的文章
卷积
- lecture4_pixels_and_filters_cs131
- Image Filtering
- 二维卷积运算
- 自相关函数与互相关函数
注:
lecture4_pixels_and_filters_cs131.pdf
Page53中用的就是对两个时刻的图像函数(如b与c)作Cross Correlation运算,进而通过得到的相关性函数图像分析得到两个时刻手的位移,再对电视进行相应的控制
边缘检测
- Lecture-3-EdgeDetection.pdf
- Prewitt算子
- 差分、梯度、Roberts、sobel、Prewitt、Laplace边缘检测算子的介绍、评估和比较
- LOG边缘检测–Marr-Hildreth边缘检测算法
- csdn-Canny边缘算子
- cnblog-Canny边缘算子
- Canny边缘检测算法 这里有双阈值检测的图例
注:
在Lecture-3-EdgeDetection.pdf中,双阈值中高的阈值为high,低的阈值为low,对梯度值高于high的认为其为边缘,对梯度值低于low的认为为非边缘,再对梯度值位于low和high之间的pixel进行双阈值算法检测处理
HOG
- Lecture-5.5-HOG.pdf
- HOG:从理论到OpenCV实践
- (扩展)SIFT特征提取分析
- 20161113#CVPR#学习笔记
- CVPR 2015深度学习回顾
- [深度学习论文笔记][CVPR 16]Deep Metric Learning via Lifted Structured Feature Embedding
- [深度学习论文笔记][CVPR 17 oral] Inverse Compositional Spatial Transformer Networks
- [深度学习论文笔记][CVPR 17]RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic
- [深度学习论文笔记][CVPR 16]ScribbleSup: Scribble-Supervised Convolutional Networks for Semantic Segmentation
- CVPR
- [深度学习论文笔记][CVPR 17 Best Paper Honorable Mention] Annotating Object Instances with a Polygon-RNN
- CVPR 2015 之深度学习总结
- CVPR 2015 之深度学习总结
- CVPR 2015 之深度学习总结
- 计算机视觉学习之CVPR系列文章
- 【CVPR 2016】faster r-cnn features for instance search 笔记
- 论文笔记——CVPR 2017 Dilated Residual Networks
- 论文笔记——CVPR 2017 Dilated Residual Networks
- CVPR 2017论文笔记— Dilated Residual Networks
- 论文笔记——CVPR 2017 Dilated Residual Networks
- 学习CMM的object detection 2014 CVPR(一)
- Adapter详解
- 高德地图---云图上传数据的坑
- fragment间的数据传递
- Nginx配置文件详细说明
- wpf之三:WPF的MVVM模式
- 20161113#CVPR#学习笔记
- HTTP Status 500 - could not initialize proxy - no Session
- ogre 引擎 框架追踪 第二章 初始化
- linux下查看和添加PATH环境变量
- 接口和抽象类有什么区别
- netstat -i 和ifconfig -s的输出解释
- python selenium执行所有测试用例并生成报告
- linux解压不同后缀名文件的用法
- Json-lib的处理机制(1)--Processor接口