使用LabVIEW AI视觉工具包快速实现SIFT特征检测(含源码)

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主

🍻本文由virobotics(仪酷智能)原创首发

🥳欢迎大家关注✌点赞👍收藏⭐留言📝

前言

Hello,大家好,我是virobotics(仪酷智能),一个深耕于LabVIEW和人工智能领域的开发工程师。

前言

之前我们给大家介绍了LabVIEW实现Harris角点检测,Harris角点检测算法具有旋转不变性,但不具有尺度不变性,以下图为例,在左侧小图中可以检测到角点,但是图像被放大后,在使用同样的窗口,就检测不到角点了。所以本文给大家介绍Lowe教授在1999年提出的尺度不变特征变换匹配算法SIFT在LabVIEW中的部署。


一、环境搭建

1.1 部署本项目时所用环境

  • 操作系统:Windows10
  • python:3.6及以上
  • LabVIEW:2018及以上 64位版本
  • AI视觉工具包:techforce_lib_opencv_cpu-1.0.0.98.vip

1.2 LabVIEW工具包下载及安装


二、SIFT简介

SIFT(Scale Invariant Feature Transform,尺度不变特征变换匹配算法)是由David G. Lowe教授在1999年(《Object Recognition from Local Scale-Invariant Features》)提出的高效区域检测算法,在2004年(《Distinctive Image Features from Scale-Invariant Keypoints》)得以完善。

SIFT可以应用到物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对等方向。

SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等,SIFT特征对于旋转和尺度均具有不变性,并且对于噪声、视角变化和光照变化具有良好的鲁棒性。

三、SIFT原理

Lowe将SIFT算法分解为如下四步

  1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯差分函数来识别潜在的对于尺度和旋转不变的关键点。
  2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
  3. 关键点方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而保证了对于这些变换的不变性。
  4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度作为关键点的描述符,它允许比较大的局部形状的变形或光照变化。

四、SIFT特征检测实战

0️⃣相关VI及参数介绍

new.vi:实例化sift 参数说明:

  • nfeatures默认值为3,表示保留的最佳特性的数量。特征按其得分进行排序,若输入为0则表示保留所有特征;其他输入端使用默认值即可

Detector.vi:在图像中找到关键点;

参数说明:

  • img:进行关键点检测的图像,注意是灰度图像
  • vector_KeyPoint out:表示关键点信息向量

draw_KeyPoints.vi:在关键点的位置绘制小圆圈

参数说明:

  • img: 原始图像;
  • vector_KeyPoint:关键点信息,将其绘制在图像上;
  • dst out:绘制关键点信息后的图片

1️⃣实现SIFT特征检测 实现步骤:读取图片并转化为灰度图>>实例化SIFT>>检测关键点>>将关键点检测结果绘制在图像上(对每一个关键点只绘制中间点)

2️⃣运行结果


五、项目源码

项目源码下载:download.csdn.net/download/vi...


总结

以上就是今天要给大家分享的内容,希望对大家有用。下篇文章将给大家介绍SIFT特征匹配,我们下篇文章见~

如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299。进群请备注:LabVIEW机器视觉

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏

相关推荐
柯南二号3 分钟前
深入理解 Agent 与 LLM 的区别:从智能体到语言模型
人工智能·机器学习·llm·agent
珂朵莉MM4 分钟前
2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·职场和发展·机器人
IT_陈寒19 分钟前
Element Plus 2.10.0 重磅发布!新增Splitter组件
前端·人工智能·后端
jndingxin19 分钟前
OpenCV CUDA模块图像处理------创建一个模板匹配(Template Matching)对象函数createTemplateMatching()
图像处理·人工智能·opencv
&永恒的星河&30 分钟前
基于TarNet、CFRNet与DragonNet的深度因果推断模型全解析
深度学习·因果推断·cfrnet·tarnet·dragonnet
盛寒1 小时前
N元语言模型 —— 一文讲懂!!!
人工智能·语言模型·自然语言处理
weixin_177297220691 小时前
家政小程序开发——AI+IoT技术融合,打造“智慧家政”新物种
人工智能·物联网
Jay Kay1 小时前
ReLU 新生:从死亡困境到强势回归
人工智能·数据挖掘·回归
C137的本贾尼1 小时前
(每日一道算法题)二叉树剪枝
算法·机器学习·剪枝
Blossom.1181 小时前
使用Python和Flask构建简单的机器学习API
人工智能·python·深度学习·目标检测·机器学习·数据挖掘·flask