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

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

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

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

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

前言

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

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

image.png


一、环境搭建

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
image.png

参数说明:

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

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

参数说明:

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

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

参数说明:

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

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

image.png

2️⃣运行结果
image.png


五、项目源码

项目源码下载:https://download.csdn.net/download/virobotics/87808362


总结

以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。后续还会继续给各位朋友分享其他案例,欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~

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

目录
相关文章
|
2月前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
15天前
|
存储 人工智能 SEO
全开源免费AI网址导航网站源码
Aigotools 可以帮助用户快速创建和管理导航站点,内置站点管理和自动收录功能,同时提供国际化、SEO、多种图片存储方案。让用户可以快速部署上线自己的导航站。
34 1
|
1月前
|
机器学习/深度学习 人工智能 JSON
微信小程序原生AI运动(动作)检测识别解决方案
近年来,疫情限制了人们的出行,却推动了“AI运动”概念的兴起。AI运动已在运动锻炼、体育教学、线上主题活动等多个场景中广泛应用,受到互联网用户的欢迎。通过AI技术,用户可以在家中进行有效锻炼,学校也能远程监督学生的体育活动,同时,云上健身活动形式多样,适合单位组织。该方案成本低、易于集成和扩展,已成功应用于微信小程序。
|
1月前
|
机器学习/深度学习 人工智能 算法框架/工具
基于人体姿势估计的舞蹈检测(AI Dance based on Human Pose Estimation)
基于人体姿势估计的舞蹈检测(AI Dance based on Human Pose Estimation)
52 0
|
3月前
|
人工智能 前端开发 Java
【实操】Spring Cloud Alibaba AI,阿里AI这不得玩一下(含前后端源码)
本文介绍了如何使用 **Spring Cloud Alibaba AI** 构建基于 Spring Boot 和 uni-app 的聊天机器人应用。主要内容包括:Spring Cloud Alibaba AI 的概念与功能,使用前的准备工作(如 JDK 17+、Spring Boot 3.0+ 及通义 API-KEY),详细实操步骤(涵盖前后端开发工具、组件选择、功能分析及关键代码示例)。最终展示了如何成功实现具备基本聊天功能的 AI 应用,帮助读者快速搭建智能聊天系统并探索更多高级功能。
1343 2
【实操】Spring Cloud Alibaba AI,阿里AI这不得玩一下(含前后端源码)
|
2月前
|
人工智能 计算机视觉
AI计算机视觉笔记十五:编写检测的yolov5测试代码
该文为原创文章,如需转载,请注明出处。本文作者在成功运行 `detect.py` 后,因代码难以理解而编写了一个简易测试程序,用于加载YOLOv5模型并检测图像中的对象,特别是“人”类目标。代码实现了从摄像头或图片读取帧、进行颜色转换,并利用YOLOv5进行推理,最后将检测框和置信度绘制在输出图像上,并保存为 `result.jpg`。如果缺少某些模块,可使用 `pip install` 安装。如涉及版权问题或需获取完整代码,请联系作者。
|
3月前
|
机器学习/深度学习 人工智能 编解码
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
3D智能导诊系统源码,基于AI引擎,针对患者的病情及症状,结合性别年龄特征,智能推荐医院科室
智能导诊系统是一款基于AI技术的医疗辅助工具,利用自然语言处理和机器学习分析患者病情,精准推荐科室和医生。系统支持按性别分类导诊,设有3D人体模型辅助定位症状,界面简洁易操作。采用B/S架构,可无缝对接HIS数据库,支持多种接入形式,包括公众号、小程序和App,有效提升就诊效率并减轻医护人员负担。
|
3月前
|
机器学习/深度学习 人工智能 数据处理
AI计算机视觉笔记一:YOLOV5疲劳驾驶行为检测
如何使用云服务器AutoDL进行深度学习模型的训练,特别是针对YOLOV5疲劳驾驶行为训练检测
|
5月前
|
人工智能 图形学
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
78 1
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)