基于SIFT特征与词袋模型的图像特征提取系统
项目介绍
本项目实现了一个基于SIFT特征和词袋模型的图像特征提取系统。系统分为训练和特征提取两个阶段:训练阶段通过K-means聚类生成视觉单词表;特征提取阶段利用单词表将图像转换为固定维度的词袋特征向量。该系统可用于图像检索、分类等计算机视觉任务的基础特征表示。
功能特性
- SIFT特征提取:使用尺度不变特征变换算法提取图像的局部特征描述子
- 视觉词典构建:采用K-means聚类算法对训练图像的SIFT特征进行聚类,生成视觉单词表
- 词袋向量生成:将新图像的SIFT特征映射到视觉单词,统计频率生成特征向量
- 标准化输出:生成可直接用于机器学习算法的特征文件格式
使用方法
训练阶段
- 准备训练图像数据集,放置在指定文件夹中
- 设置视觉单词数量(聚类中心数)
- 运行训练程序,系统将:
- 自动读取所有训练图像
- 提取每张图像的SIFT特征
- 使用K-means聚类生成视觉单词表
- 保存单词表文件(.mat格式)
特征提取阶段
- 准备待处理图像(单张或文件夹)
- 加载训练阶段生成的单词表文件
- 运行特征提取程序,系统将:
- 对输入图像提取SIFT特征
- 基于单词表进行特征量化
- 生成词袋特征向量
- 输出文本格式的特征文件
系统要求
- MATLAB R2018b或更高版本
- 图像处理工具箱(Image Processing Toolbox)
- 统计和机器学习工具箱(Statistics and Machine Learning Toolbox)
- 支持常见图像格式:JPG、PNG、BMP等
文件说明
主程序文件集中实现了系统的核心流程控制,包括训练和特征提取两个主要模式的调度。它负责协调图像读取、SIFT特征检测、K-means聚类执行、视觉词典构建以及词袋向量生成等关键环节,同时处理参数设置、文件输入输出和结果保存等辅助功能,确保整个特征提取流程的完整执行。