1.直方图

用于计算图片特征,表达, 使得数据具有总结性, 颜色直方图对数据空间进行量化,好比10个bin

2. 聚类

类内对象的相关性高

类间对象的相关性差

常用算法:kmeans, EM算法, meanshift, 谱聚类(密度聚类), 层次聚类

kmeans聚类

选取k个类中心,随机选取

计算每个点跟k个类中心的位置

把数据点分配给距离最近的一个类中心

计算新的类中心-对该类中的所有点取均值

类中心数K的选取

K类平均质心的距离加权平均值, 当k=5时的斜率发生变化,我们可以选取5作为分类的个数

kmeans ++ 半随机(初始点的选取)

第一类中心 - 随机选取

记D(x) 为数据点x距离最近的聚类中心的距离

选取下一个聚类中心, 选取的概率正比于D(x) ^ 2

以此类推,到第k个

量化颜色直方图

聚类颜色直方图: 使用聚类算法对像素点颜色向量进行聚类, 单元由聚类中心代表

3. 边缘检测

像素明显变化的区域, 具有丰富的语义信息

用途: 物体识别,几何视角变化

定义: 像素函数快速变化的区域, 一阶导数的极值区域,二阶导数的0点位置

步骤:

先高斯去噪,再使用一阶导数获取极值

公式:        对x方向进行求导  б 表示的是标准差                                                    对y方向进行求导

梯度幅值/强度

hx(x,y)^ 2 + hy(x, y) ^ 2

梯度(增加最快)方向

arctan(hy(x, y)/ hx(x, y))

4. 兴趣点/关键点

稳定局部

特点: 可重复性,显著性

抗图片变化

外貌变化(亮度,光照)

几何变化(平移, 选择,尺度)

5.Harris角点

一种显著点:在任何方向上移动小观察窗,导致大的像素变动

  E(u, v) =  ΣW(x, y)[I(x+u, y+v)-I(x, y)] ^2

W(x, y)是高斯函数进行加权的, x,y表示当前位置, u和v表示移动了的位置

6.斑点(Blob)

拉普拉斯梯度:一阶导数极值点 - 二阶导数零点

梯度/边缘可以通过查找:二阶导数接近零, 一阶导数足够大

对噪声很敏感, 需要先做高斯平滑

公式: Δf = δ2f / δ2x +  δ2f / δ2y 对x求二阶导, 对y方向求二阶导

斑点是找拉普拉斯的极值

边缘是找拉普拉斯的零值

7.SIFT

SIFT特征计算

计算高斯差分(DoG)尺度空间,获取极值点

特征点处理: 位置插值, 去除低对比度点, 去除边缘点

方向估计: 2*2网格, 8个方向,获得最高值为关键点的主方向,特征点方向归一化,即所有方向为同一方向

描述子提取: 在旋转坐标上采样16*16的像素窗, 4*4网格,8方向直方图,总共178维

8.纹理特征

HOG(方向梯度直方图)

梯度幅值,方向 s = sqrt(sx^2 + sy^2)

Block 拆分

16*16的block 步长是8, 包含2*2个cell, 每个cell8*8, 9个方向

积累梯度幅值,使用位置高斯加权,使用相邻bin线性插值

64&128的维度图:7*15 * (2*2) * 9 = 3780

LBP(局部二值模式)

将每个像素点与周围点大小半径比较,半径R的圆上,均匀采样P个点,根据赫值大小,量化为0或1

图像特征与描述子(直方图, 聚类, 边缘检测, 兴趣点/关键点, Harris角点, 斑点(Blob), SIFI, 纹理特征)的更多相关文章

  1. BRIEF特征点描述子

    简介 BRIEF是2010年的一篇名为<BRIEF:Binary Robust Independent Elementary Features>的文章中提出,BRIEF是对已检测到的特征点 ...

  2. 第三讲_图像特征与描述Image Feature Descriptor

    第三讲_图像特征与描述Image Feature Descriptor 概要 特征提取方法 直方图 对图片数据/特征分布的一种统计:对不同量进行直方图统计:可以表示灰度,颜色,梯度,边缘,形状,纹理, ...

  3. Brief描述子

    一.Brief算法 1.基本原理 BRIEF是2010年的一篇名为<BRIEF:Binary Robust Independent Elementary Features>的文章中提出,B ...

  4. [OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (一)

    部分 V图像特征提取与描述 OpenCV-Python 中文教程(搬运)目录 29 理解图像特征 目标本节我会试着帮你理解什么是图像特征,为什么图像特征很重要,为什么角点很重要等.29.1 解释 我相 ...

  5. (一)ORB描述子提取

    ORBSLAM2中使用ORB描述子的方法 经典的视觉SLAM系统大体分为两种:其一是基于特征点法的,其二是基于直接法的.那么本文主要就讲特征点法的SLAM. 基于特征点法的视觉SLAM系统典型的有PT ...

  6. LBP纹理特征[转自]

    LBP方法(Local binary patterns)是一个计算机视觉中用于图像特征分类的一个方法.LBP方法在1994年首先由T. Ojala, M.Pietikäinen, 和 D. Harwo ...

  7. 图像的特征工程:HOG特征描述子的介绍

    介绍 在机器学习算法的世界里,特征工程是非常重要的.实际上,作为一名数据科学家,这是我最喜欢的方面之一!从现有特征中设计新特征并改进模型的性能,这就是我们进行最多实验的地方. 世界上一些顶级数据科学家 ...

  8. SIFT算法:特征描述子

    SIFT算法:DoG尺度空间生产  SIFT算法:KeyPoint找寻.定位与优化 SIFT算法:确定特征点方向  SIFT算法:特征描述子 目录: 1.确定描述子采样区域 2.生成描述子 2.1 旋 ...

  9. SIFT解析(三)生成特征描述子

    以上两篇文章中检测在DOG空间中稳定的特征点,lowe已经提到这些特征点是比Harris角点等特征还要稳定的特征.下一步骤我们要考虑的就是如何去很好地描述这些DOG特征点. 下面好好说说如何来描述这些 ...

随机推荐

  1. 基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类

    from:http://www.freebuf.com/articles/system/182566.html 0×01 前言 目前的恶意样本检测方法可以分为两大类:静态检测和动态检测.静态检测是指并 ...

  2. 003——数组(三)count()reset()end()prev()next()current()

    <?php /** * count 统计数组中元素的个数 */ /*$arr=array('blog.com','博客论坛',array('php课程','css课程')); echo coun ...

  3. nfs的无敌时间更改的配置参数

    nfs服务端重启之后,共享文件夹进入grace time(无敌时间) 客户端在服务端重启后写入数据大概要等90秒 nfs配置文件:/etc/sysconfig/nfs [root@backup ~]# ...

  4. 201621123010《Java程序设计》第3周学习总结

    1.本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1 写出你认 ...

  5. Unix网络编程第三版源码编译

    配置: $ cd Unix-Network-Programming/ $ chmod 755 configure $ ./configure 主要的工作是检查系统是否有源码编译所依赖的各种资源(系统版 ...

  6. 重写ajax方法实现特定情况下跳转登录页面

    jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _suc ...

  7. IO综合练习--文件切割和文件合并

    有时候一个视频文件或系统文件太大了,上传和下载可能会受到限制,这时可以用文件切割器把文件按大小切分为文件碎片, 等到要使用这个文件了,再把文件碎片合并成原来的文件即可.下面的代码实现了文件切割和文件合 ...

  8. HDU4819 Mosaic【树套树】

    LINK 题目大意 给你一个\(n*n\)矩阵,每个点有初始权值 q次询问每次把一个矩形的中心节点变成这个矩形中最大值和最小值的平均数 思路 很显然的树套树啊 就是一开始傻逼了没想到怎么去维护这个东西 ...

  9. prisma middleware 简化 graphql resolver 编写的类库

      prisma 推出middleware 的目的就是保持resolver 的简洁 作用: 输入参数访问同一个resolver 决定resolver 最终的返回值 在resolver 连中捕获异常以及 ...

  10. centos7上docker安装和使用教程

    Docker 是一个创建和管理 Linux 容器的开源工具.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上 ...