bag of words model 应用于图像

本文介绍了bagofwords(BOW)模型的基本概念及其在图像处理中的应用。BOW是一种将文档转换为向量数据的方法,便于计算机处理。在图像处理中,通过将图像分割为多个patch并提取SIFT特征来构建单词表,再使用K-means算法进行聚类,从而实现图像的BOW建模。

本文记录bag of words(BOW)在图像中的应用相关思路。
1. 简介
bag of words是文档的一种建模方法,它可以把一个文档表示成向量数据,从而使计算机处理文档数据更加方便。
wiki的例子很清晰的描述了BOW对一个文档建模的过程。
http://en.wikipedia.org/wiki/Bag-of-words_model
现有如下两个文档:
John likes to watch movies. Mary likes movies too.
John also likes to watch football games.
把文档中的单词抽取出来,可以构成一个单词表:
{
“John”: 1,
“likes”: 2,
“to”: 3,
“watch”: 4,
“movies”: 5,
“also”: 6,
“football”: 7,
“games”: 8,
“Mary”: 9,
“too”: 10
}
这个单词表中有10个不同的词,根据单词表中每个词的索引号,可以把两个文档表示成如下的两个含有10个元素的向量:
[1, 2, 1, 1, 2, 0, 0, 0, 1, 1]
[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
其中,元素值代表其索引号在单词表中对应的词在文档中出现的次数。比如第一个文档对应的向量,前两个元素值为1和2,1代表“John”在该文档中的出现1次,2代表“likes”在该文档中出现2次。
这样的建模,只提取了单词,忽略了语法和语序,等于把单词一个一个放进一个袋子里,所以是词袋模型。

2, BOW在图像中的应用
此部分描述参考文章:http://blog.sina.com.cn/s/blog_65f81ec601012sd5.html
要应用到图像中,我们要把一幅图看成一个文档,图片分割成的patch对应的sift特征看成单词。所以首先要做的是单词表的构造。
用人脸,自行车,和吉他,三张图片举例。
主要有以下3步:
1)把图像分割成一个个patch,并对每个patch的中心点计算sift特征。sift算法可以提取图像中的局部不变特征,这一步是做dense sift.
这里写图片描述

2)利用kmeans算法,将这些patch的中心点的sift特征聚成为k个类,用这k个聚类中心来构造单词表。因为一幅图像中能提取出成千上万个sift向量,而每个sift向量是128维的,为了减小计算量,需要对这些sift向量做聚类,把相似的patch合并,取聚类中心作代表,构造单词表。
这里写图片描述

以上的众多patch中可以看到有一些是相似的,设定k=4,则聚类后的单词表如下:

这里写图片描述

其他参考资料:
http://en.wikipedia.org/wiki/Bag-of-words_model_in_computer_vision
http://www.douban.com/note/310140053/
http://blog.youkuaiyun.com/pupu_2009/article/details/6427222

文章出处:http://blog.youkuaiyun.com/happyer88/article/details/45769413

本资源集提供了针对小型无人机六自由度非线性动力学模型的MATLAB仿真环境,适用于多个版本(如2014a、2019b、2024b)。该模型完整描述了飞行器在三维空间中的六个独立运动状态:绕三个坐标轴的旋转(滚转、俯仰、偏航)与沿三个坐标轴的平移(前后、左右、升降)。建模过程严格依据牛顿-欧拉方程,综合考虑了重力、气动力、推进力及其产生的力矩对机体运动的影响,涉及矢量运算与常微分方程求解等数学方法。 代码采用模块化与参数化设计,使用者可便捷地调整飞行器的结构参数(包括几何尺寸、质量特性、惯性张量等)以匹配不同机型。程序结构清晰,关键步骤配有详细说明,便于理解模型构建逻辑与仿真流程。随附的示例数据集可直接加载运行,用户可通过修改参数观察飞行状态的动态响应,从而深化对无人机非线性动力学特性的认识。 本材料主要面向具备一定数学与编程基础的高校学生,尤其适合计算机、电子信息工程、自动化及相关专业人员在课程项目、专题研究或毕业设计中使用。通过该仿真环境,学习者能够将理论知识与数值实践相结合,掌握无人机系统建模、仿真与分析的基本技能,为后续从事飞行器控制、系统仿真等领域的研究或开发工作奠定基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
### 正则表达式的概念 正则表达式是一种用于匹配字符串中字符组合的模式[^4]。通过使用一系列特殊字符和规则,正则表达式可以定义复杂的搜索模式,广泛应用于文本处理、数据验证和字符串操作等领域。 ### Web数据抽取的概念 Web数据抽取是从网页中提取结构化或半结构化数据的过程[^5]。它通常涉及解析HTML、CSS或JavaScript代码,并从中获取特定的信息。常见的方法包括基于规则的抽取、机器学习模型辅助的抽取以及混合方法。 ### 隐马尔可夫模型(HMM)的概念 隐马尔可夫模型(HMM)是一种统计模型,用于描述由隐藏状态序列生成的观测序列的概率过程[^6]。HMM在语音识别、自然语言处理和生物信息学等领域有广泛应用。其核心思想是通过观察到的数据推断隐藏状态的分布。 ### 词袋模型(Bag of Words Model)的概念 词袋模型是一种将文本表示为单词集合的方法,忽略单词的顺序和语法结构[^2]。每个文档被表示为一个向量,其中每个维度对应于词汇表中的一个单词,值表示该单词在文档中的出现频率或其他权重。 ### 统计语言模型的概念 统计语言模型是一种用于估计给定句子或单词序列概率的数学模型[^7]。它的目标是根据上下文预测下一个单词的可能性,常用于机器翻译、语音识别和文本生成等任务。 ### 包装器的工作原理及两种抽取方法的比较 包装器是一种自动化工具,用于从网页中提取特定类型的数据。其工作原理是通过预定义的规则或模板,识别并提取网页中的目标信息[^8]。 - **基于规则的抽取**:依赖于明确的规则集,适用于结构化程度较高的数据源,但扩展性较差。 - **基于机器学习的抽取**:利用训练数据自动学习特征,适应性强,但在标注数据需求和计算成本上较高。 ### CBOW模型的结构与训练过程及其应用 CBOW(Continuous Bag of Words)模型是一种用于生成词嵌入的神经网络架构[^9]。其结构包括输入层、投影层和输出层。训练过程中,CBOW通过最大化上下文中单词与目标单词共现的概率来调整权重。其主要应用包括词向量生成、文本分类和情感分析。 ### 常用的图像局部特征及其思想 常用的图像局部特征包括SIFT(尺度不变特征变换)、SURF(加速稳健特征)和ORB(快速旋转不变二进制描述符)。这些特征的核心思想是通过检测关键点并提取描述符,实现对图像局部区域的鲁棒表示[^10]。它们广泛应用于图像匹配、对象识别和三维重建等领域。 ```python # 示例代码:使用SIFT检测图像特征 import cv2 image = cv2.imread('example.jpg', 0) sift = cv2.SIFT_create() keypoints, descriptors = sift.detectAndCompute(image, None) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值