利用Shape Context进行形状识别
什么是Shape Context
Shape Context是一个用于形状识别的,非常经典的特征(一串便于计算机处理的数字)提取方法,它由Serge Belongie和Jitendra Malik 于2002年在他们的文章“Shape matching and object recognition using shape contexts”中提出。这种特征提取方法使得计算机能够衡量形状之间的相似性,并且能够同时得出形状上的点对应关系。
Shape Context在表示形状时,首先会在形状的轮廓上采样N个点;而对每一个点来说,会利用其周围点的信息,为其提取一个向量,来表示这个点(具体的提取方法可以参考原始的论文)。如此一来,每一个形状便由N个向量来表示了;向量之间是可以衡量距离的,在确定这种距离的衡量方式后,便可以利用匈牙利(Hungarian)算法找出两个形状之间,N对N的最佳匹配关系了。当然文章的作者又进一步提出可以使用TPS(Thin Plate Spline)变换对待匹配的形状进行不断的形变,以取得更佳的匹配结果,这里便不做介绍。
相同形状轮廓点的匹配
不同形状轮廓点的匹配
利用Shape Context进行字符识别
利用Shape Context进行字符识别的过程,便是找出与待识别形状最相似模板库图像的过程。这个过程虽然思路比较简单,不过其中也有一些需要注意的东西,这里写一下我自己的做法。
1)模板字符库的准备
由于Shape Context可以在形状发生倾斜、位移、大小等平面变换时,都可以进行比较良好的匹配。所以与基于统计的模型不同,使用Shape Context特征的每一种字符只需要较少的模板就可以进行识别了。这里的实验对每一种字符仅使用一到两个模板,每一个模板都是由手工绘制的单像素轮廓图。
用于识别的字符模板库
2)形状点的采样
在使用Shape Context提取形状的特征时,首先会在形状轮廓上采样N个点。而实际输入图像的轮廓点个数一般是未知的,而根据图像大小的不同,这些点的坐标的大小也是不同的,因此需要对这些情况进行一些预处理。
当输入图像的轮廓点足够时,首先可以将图像中包含轮廓的最小区域截取出来,然后将这个区域中的轮廓采样N个点,最后将这些点的坐标保持长宽比缩放到[0-1]区间,以完成尺度归一化的目的。
对输入图像的轮廓点进行采样及归一化
而当输入图像的轮廓点个数不足时,我们可以将图像进行放大,待轮廓点个数足够时,再按上面的方法进行采样。不过需要注意的是,图像放大时候,原来的形状轮廓可能会变粗,因此还需要进行图像的细化操作,使得轮廓的宽度尽量保持单像素宽。
输入图像轮廓点个数不够时的处理
字符识别程序的演示
点我打开视频观看
利用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 ...
- 【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法
原文地址:点击访问 本期,为大家推送CVPR 2020一篇关于图神经网络与3D相关的文章.自我感觉挺有趣的,有兴趣的同学推荐一读. 论文题目:View-GCN: View-based Graph Co ...
- 形状上下文(shape context)算法完全解读
形状上下文(Shape Context)算法完全解读 前言 一. 轮廓提取(Canny Edge Detection)和轮廓点采样(Jitendra's Sampling) 二. 形状上下文(Shap ...
- 二维物体形状识别方法比较
二维物体形状识别方法比较 摘 要 针对模式识别中二维物体的形状识别问题,以二值图像中的物体形状为主要研究对象,依次从特征提取.分类器设计两个主要层面对形状识别方法进行了全面综述,并分析了国内外研究 ...
- MVTN:用于3D形状识别的多视图转换网络(ICCV2021)
论文标题:MVTN: Multi-View Transformation Network for 3D Shape Recognition 论文.项目地址:在公众号「3D视觉工坊」,后台回复「MVTN ...
- 利用svg合成任意形状的图片
什么是svg: 百度百科这样说: SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它是基于XML(Extensibl ...
- 二维物体形状识别方法(一)
原文:http://blog.csdn.net/liuqz2009/article/details/47624145 物体识别是计算机视觉应用的一项基本任务.识别通常基于目标物体的灰度信息.颜色信息或 ...
- 二维物体形状识别方法(二)
这个论文不知道作者转自哪里,暂时就写博客作者地址吧:http://blog.chinaunix.net/uid-24517893-id-3140811.html 摘 要 针对模式识别中二维物体的形 ...
最新文章
- 北大华为鹏城联合首次提出视觉 Transformer 后量化算法!
- SQL 语句使用to_char函数时,检索结果有空格
- 碎碎念-----快排与工作
- PyTorch 官方教程发布,限时免费开放!
- 物理化学 化学 动力学(下)
- 如何求两个向交矩形的交集的面积?
- Struts 2的OGNL表达式
- ACM模板——拓扑排序
- 编写一个可动态注入Spring 容器的工具类
- command模式 java_命令模式(Command)_java实现
- gitglone 指定分支_安装说明 · harryxu/gitube Wiki · GitHub
- 温故10个经典排序算法(Java版)
- LINUX虚拟机与WINDOWS主机,直接复制交换文件会有问题
- 聚类分析--k中心点算法
- 网卡加到linux网桥,[Linux] ubuntu 14 通过网桥将无线网络桥接给有线网卡
- 对于程序员来说什么才是A站B站。。。Z站?
- selenium 模拟登陆豆瓣,爬取武林外传的短评
- Linux安装Kibana详细教程
- Mybatis3基础示例
- 2022中国连锁企业人才管理报告
热门文章
- python 匹配字符串开头和结尾
- 国产化Kettle、JDK、MySQL下载安装操作步骤
- 基于51单片机的8位数码管显示的可调时电子时钟
- 2022年中职组网络安全国赛A模块解析第二套
- OpenStack Designate系统架构分析
- 人工智能走过了怎样的70年?
- 最新爬取携程酒店信息上:思路讲解
- IEEE 802.15.4和ZigBee
- JDBC 学习笔记 day02 用 PreparedStatement 实现 CRUD 操作
- 统计字符串中每个字符的个数。(原始字符串是:“aabccdeefff”,结果是:a2 b1 c2 d1 e2 f3)