Shape Context
http://blog.csdn.net/u012507022/article/details/52437149
形状上下文特征是一种很流行的形状描述子,多用于目标识别,它采用一种基于形状轮廓的特征描述方法,其在对数极坐标系下利用直方图描述形状特征能够很好地反映轮廓上采样点的分布情况。
形状上下文的基本原理如下:
Step1:对于给定的一个形状,通过边缘检测算子(如:canny算子)获取轮廓边缘 ,对轮廓边缘采样得到一组离散的点集P={p1,p2,p3,..pn},如图1中的字母A。
Step2:计算形状上下文。以其中任意一点pi为参考点,在pi为圆心、R为半径的局域内按对数距离间隔建立N个同心圆。将此区域沿圆周方向M等分,形成如图1所示的靶状模板。点pi到其它各点的向量相对位置简化为模板上各扇区内的点分布数。这些点的统计分布直方图hi(k),称为点pi的形状上下文,其计算公式为:
其中,k={1,2,……,K},K=M*N;
![](/assets/blank.gif)
![](/assets/blank.gif)
采用对数距离分割可以使形状上下文描述子对邻近的采样点比远离点更敏感,能强化局部特征。轮廓不同点处的形状上下文是不同的,但相似轮廓的对应点处趋于有相似的形状上下文,如图2。
对于整个点集P ,分别以其n个点 p1,p2,p3,..pn作参考点,依次计算与剩下的n-1个点构成的形状直方图,最终得到 n个形状直方图。以n*(n-1)大小的矩阵存储。这样,对于任一目标,可用n*(n-1)大小的矩阵表示其形状信息,n*(n-1)大小的矩阵就是点集P的形状上下文,它描述了整个轮廓形状的特征。采样点越多,形状表达也越精细,计算量也会成倍加大。
利用步骤1,2得到每个目标的形状上下文后,接下来需要计算这两个目标的形状上下文的相似度,从而得到相似与否的结论。形状上下文之间的相似度计算方法叙述如下:
Step3:计算代价矩阵cost
计算一个目标的形状直方图与另一目标的形状直方图之间的匹配代价,代价函数如下:
其中,hi(k)为目标P的点pi的形状直方图;hj(k)为目标Q的点qi的形状直方图。
按照公式,即可得到两个目标之间的代价矩阵C,大小为n*n。
Step4:
然后,基于计算得到的代价矩阵C,进行点的匹配操作,使公式(2)获得最小值。
经分析,上述点的匹配问题即为典型的双向图的匹配问题。利用匈牙利算法,该问题得到解决。
至此,该方法以一个非矢量的数值表示两个目标的相似度。由于是基于代价矩阵进行计算。所以结果越大表示越不相似,结果越小表示越相似。
Shape Context相关推荐
- 模式识别之Shape Context---利用Shape Context进行形状识别
什么是Shape Context Shape Context是一个用于形状识别的,非常经典的特征(一串便于计算机处理的数字)提取方法,它由Serge Belongie和Jitendra Malik ...
- shape context matlab,形状上下文(shape context)算法完全解读
形状上下文(Shape Context)算法完全解读 前言 一. 轮廓提取(Canny Edge Detection)和轮廓点采样(Jitendra's Sampling) 二. 形状上下文(Shap ...
- 利用Shape Context进行形状识别
什么是Shape Context Shape Context是一个用于形状识别的,非常经典的特征(一串便于计算机处理的数字)提取方法,它由Serge Belongie和Jitendra M ...
- 形状上下文(shape context)算法完全解读
形状上下文(Shape Context)算法完全解读 前言 一. 轮廓提取(Canny Edge Detection)和轮廓点采样(Jitendra's Sampling) 二. 形状上下文(Shap ...
- 解密Kotlin 1.6.20 新功能 Context Receivers
这篇文章我们一起来聊一下 Kotlin 1.6.20 的新功能 Context Receivers,来看看它为我们解决了什么问题. 通过这篇文章将会学习到以下内容: 扩展函数的局限性 什么是 Cont ...
- shape context-形状上下文
形状上下文是一种很流行的形状描述子,原始论文已经被引用上千次了.自然,很多研究者进行了诸多改进,但还是不能克服shape context一些自身的缺点. 下面先简单介绍形状上下文的一个基本原理: 形状 ...
- PCL:点云特征描述子3D_object_recognition_(descriptors)
PCL官网:https://pointclouds.org/ 翻译自该网站:http://robotica.unileon.es/index.php/PCL/OpenNI_tutorial_4:_3D ...
- 点云及三维图像处理综述
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 点云概念 点云与三维图像的关系:三维图像是一 ...
- PCL 点云特征描述与提取
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:开着拖拉机唱山歌 链接:https://zhuanlan.zhihu.com/p/1032192 ...
最新文章
- Android插件化原理解析——概要
- 光纤连接器百科小知识
- [ECMAScript] module、export、import分别有什么作用?
- html 两个图片并排,HTML – 两个图像并排和响应
- android fileinputstream 获取file,Android FileInputStream没有读取文件
- axure选中状态的值_关于编写Axure的心得
- python写ini文件不能保持原有顺序问题_python 生成 xml文件 属性的顺序问题
- 记录一个可以word,xls,PDF互转思维导图的工具
- linux bttrack服务,给centos7上的aria2添加BT Tracker服务器
- freeswitch的使用
- 关于补码与booth算法的想法与逻辑推导
- Java 将文件转换写入byte[]
- 什么!爬虫要违法了?别慌:守住规则,大胆去爬
- 【AR实验室】mulberryAR : ORBSLAM2+VVSION
- 2017.05.22 房多多 曾熙闭门会
- HDFS DataNode高密度存储机型的探索尝试
- 如何轻松地打造一款免开发RGB 三路产品?
- 华为防火墙配置策略路由实现多个ISP出接口的智能选路
- Cmake在Windows下安装Opencv3.2遇到的问题
- 利用Mininet环境-交换机转发实验整个过程
热门文章
- 服务器安装红帽系统进入不图形界面,CentOS 安装图形化界面方法
- html拖放数据库字段,HTML5 拖放(Drag 和 Drop)
- css实战手册第四版 pdf_你真的了解CSS继承吗?看完必跪
- 一所传闻要被“降级”的211高校,让这位网红教授“救活了”
- 微信新功能又来了,这些功能再次打开了我新世界的大门!
- 直男们给我看清楚!这才是小姐姐的真面目......
- 叫板BBC!80后湖南姑娘,花3年首次拍出水下的中国,惊艳了全世界
- 15个只有数学老师懂的泪流满面瞬间
- linux 内核 三天吐血,编译安装——吐血经验,内附脚本
- imac android studio,Mac安装Android Studio的时候忘记安装Avd Manager怎么办?