机器学习图像特征提取

您所在的位置:网站首页 桂圆的属性及特征图片 机器学习图像特征提取

机器学习图像特征提取

2024-07-12 21:33:35| 来源: 网络整理| 查看: 265

目录

1 SIFT简介

2 SIFT原理及特点

2.1 SIFT算法特点

2.2 SIFT特征检测

3 SIFT代码实现

1 SIFT简介

       SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。

      SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。

2 SIFT原理及特点 2.1 SIFT算法特点

   SIFT算法具有如下一些特点:

(1)SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;

(2) 区分性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;

(3) 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;

(4)高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;

(5)可扩展性,可以很方便的与其他形式的特征向量进行联合。

2.2 SIFT特征检测

  SIFT特征匹配主要包括2个阶段:

  第一阶段:SIFT特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量。

  第二阶段:SIFT特征向量的匹配。

  SIFT特征的生成一般包括以下几个步骤:

(1) 构建尺度空间,检测极值点,获得尺度不变性。

(2) 特征点过滤并进行精确定位。

(3)为特征点分配方向值。

(4)生成特征描述子。

      具体可以参考博客SIFT特征提取分析_Rachel-Zhang的博客-CSDN博客_sift特征提取 ,他这里写的非常的详细。

3 SIFT代码实现

(1)这部分主要是提取图像中的SIFT特征点,并在原图中绘制出来。

import cv2 img_path = r'./img1.jpg' img = cv2.imread(img_path) # print(img.shape) # img = cv2.resize(img,(136 * 3,512 * 3)) cv2.imshow("original",img) gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) #使用SIFT sift = cv2.xfeatures2d.SIFT_create() keypoints, descriptor = sift.detectAndCompute(gray,None) cv2.drawKeypoints(image = img, outImage = img, keypoints = keypoints, flags = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, color = (51,163,236)) cv2.imshow("SIFT",img) img = cv2.imread(img_path) # img = cv2.resize(img,(136 * 3,76 * 3)) cv2.waitKey(0) cv2.destroyAllWindows()

(2)这部分代码是提取图像中的SIFT特征点,并利用PCA(主成分分析)进行降维,并提取特征值。注:SIFT提取出来的特征是一个128维的矩阵,我在这里利用PCA将其降成100维。

import cv2 from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler img_path = r'./photo/2-5-1250-1.bmp' img = cv2.imread(img_path) gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) #使用SIFT sift = cv2.xfeatures2d.SIFT_create() keypoints, descriptor = sift.detectAndCompute(gray,None) # print(descriptor.shape) # m,n=descriptor.shape # print(m,n) descriptor = StandardScaler().fit_transform(descriptor) pca = PCA(n_components = 100) pca.fit(descriptor) print(pca.singular_values_)#查看特征值 print(pca.components_)#打印查看特征值对应的特征向量 # print(pca.components_.shape) cv2.drawKeypoints(image = img, outImage = img, keypoints = keypoints, flags = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, color = (255,0,255)) cv2.imshow("SIFT",img) cv2.waitKey(0) cv2.destroyAllWindows()

参考来源:SIFT特征提取分析_Rachel-Zhang的博客-CSDN博客_sift特征提取

Python计算机视觉——SIFT特征提取与检索_-pufferflip的博客-CSDN博客_sift特征提取python



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭