超维空间M1无人机使用说明书——31、基于模板匹配的物体识别功能

news2024/11/16 5:59:13

引言:ROS提供的物体识别功能包find_object_2d,该功能包用起来相对简单,只需要简单进行模板匹配即可。需要接显示器进行模板训练,远程比较卡,不建议

一、功能包find_object_2d简介

ROS的优点之一是有大量可以在应用程序中复用的软件包。在我们的例程中,想要实现对一个物体的识别和检测。而find_object_2d包就是一个物体识别和检测的ROS功能包,它实现了SURF、SIFT、FAST和BRIEF特征检测器和用于物体检测的描述符。通过此包提供的GUI,可以标记待检测的物体,保存后可用来进行特征检测。而此包提供的检测器节点可检测摄像头图像中的物体,并通过主题发布物体的具体信息。此包还能通过3D传感器估计物体的深度信息和朝向信息。整体来说这个功能包安装是相当方便的,不过因为是模板匹配,所以局限性比较大,在目标物体未正对摄像头的情况下识别成功率不高,而且想要得到良好的匹配效果需要认真的调节参数,旋转合适的算法,另外输出的tf中心点坐标大致准确,但是姿态就不是很靠谱了。
使用find_object_2d功能包进行物体识别,该功能包采用模板匹配算法,相比较于yolov其优点在于操作简单,对硬件配置要求低,因此在树莓派和jetson nano两种主控板上都可以使用此功能包。其缺点在于模板匹配通常需要正对着图像效果较好。系统镜像都已经配置好了环境,按照使用说明即可操作。

先看一下这个功能包的效果:

在这里插入图片描述

二、启动摄像头

默认普通USB摄像头,不支持转换出真实的相对位置信息,如果需要获取位置的话,可以使用深度摄像头

注:适当降低摄像头发布频率,可以降低机载电脑计算压力

步骤1、启动USB摄像头或者D435摄像头(根据实际硬件选择)

roslaunch usb_cam usb_cam_test.launch //USB摄像头
或
roslaunch realsense2_camera rs_camera.launch //D435深度摄像头

在这里插入图片描述

三、启动find_object_2d功能包,启动后如下

终端输入:roslaunch find_object_2d find_object_2d.launch //USB摄像头
或
终端输入:roslaunch find_object_2d find_object_3d.launch //D435深度摄像头

find_object_3d.launch用于深度摄像头,可以获取相对坐标系位置

在这里插入图片描述

该命令将打开如图所示的物体检测器窗口,可以在其中看到摄像头采集到的图像和物体上的特征点。

在这里插入图片描述

那么如何用它来检测一个物体呢?下面是使用此工具执行基本检测的步骤。
①、右键单击此窗口左侧面板(Objects),将会出现Add objects from scene选项,选择此选项,将会弹出一个Add object对话框,它将引导你标记所关注的物体,在完成标记之后,标记物体即开始被跟踪。下图显示了第一步,它正在拍摄包含该物体的场景。
②、将物体对准摄像头后,按Take Picture按钮获取物体快照。
③、下一个窗口用于从当前快照中标记物体,如图所示。首先使用鼠标指针来标记框选物体,然后单击“Next”按钮裁剪物体,接着继续下一步。
在这里插入图片描述
④、裁剪物体后,将显示物体特征描述符总数,你可以点击“End”按钮添加此物体模板进行检测。
⑤、恭喜!你已经添加了一个待检测物体。一旦添加好物体,你将会看到物体周围多了一个边框,这说明此物体被检测到了,如图所示。

在这里插入图片描述在这里插入图片描述
5.2、查询物体的位置
步骤1、终端输入:rosrun find_object_2d print_objects_detected
在这里插入图片描述

步骤2、你还可以通过/object主题获取被检测物体的完整信息。该主题发布一个多维数组,该数组包含物体的宽、高信息和单应性矩阵信息,这些信息用来计算物体的位置、方向和剪切值。利用话题回显命令,回显话题/object将得到如图所示的结果。
在这里插入图片描述

date:后面第二、三个数据是宽度和高度,剩下的9个数据构成一个3x3的矩阵,
可以用下图公式计算位置和方向

其中,H是3×3的单应性矩阵,(x1,y1)是物体在存储图像中的位置,(x2,y2)是物体在当前帧中的位置。
这就对我们开发机器人很便利了,我们只需要订阅这个话题,获取我们想要的消息。

以下功能只针对深度摄像头,如果是普通的USB摄像头,可以直接跳过以下内容

启动坐标系转换节点

rosrun visual_trans visual_trans

此节点会监听物体相对于摄像头的位置,然后发布三维位置信息,信息如下:

①、未识别到物体的时候,会有红色,表示没有识别到对应的物体

在这里插入图片描述

②、识别到物体后发布三维位置信息

在这里插入图片描述

此文相当于介绍性质,这里不再做进一步的分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1359879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Solid Converter 10.1(PDF转换器)软件安装包下载及安装教程

Solid Converter 10.1下载链接:https://docs.qq.com/doc/DUkdMbXRpZ255dXFT 1、选中下载好的安装包右键解压到【Solid Converter 10.1.11102.4312】文件夹。 2、选中"solidconverter"右键以管理员身份运行 3、选择”自定义安装”,勾选”我已阅…

通用Mapper怎么开接口扫描

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

申请CSDN博客专家的历程

今天是2024年第一周的周五下午13:55,我怀着非常非常激动的心情写下这篇博客记录这难忘的时刻:我的博客专家认证通过了!现在唯一想说的就是非常感谢CSDN平台,我会继续努力,把最好的分享给大家。 与CSDN的缘分…

全面 正进制数转化 函数模板(直接调用)

本题链接:用户登录 题目: 样例: 输入 2 2 10 10101 11 2 1793A5068 输出 21 10101111001010100111010101011 思路: 对于进制数之间的转化,我们可以通过 以 十进制作为桥梁 进行进制数之间的转化 比如&#xff1…

【项目实战】Cadence工具的使用1

需要 Candece Jasper文档的朋友可以和我联系@tommi.wei@qq.com Vmanager 自动化仿真管理工具 对于这款工具,笔者用到最多的地方就是写testplan! 没错,根据设计文档(Target Specication),细分feature list. 对于验证工程师要做的事情,就是验证设计功能的完备性,需要逐一…

Django 7 实现Web便签

一、效果图 二、会用到的知识 目录结构与URL路由注册request与response对象模板基础与模板继承ORM查询后台管理 三、实现步骤 1. terminal 输入 django-admin startapp the_10回车 2. 注册, 在 tutorial子文件夹settings.py INSTALLED_APPS 中括号添加 "the…

基于spring boot的中小型仓库物流管理系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

流行的Jmeter+Ant+Jenkins接口自动化测试框架在网络上走红

大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件;Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具。将这三者结合起来可以搭建一套We…

Linkage Mapper 工具参数详解——Pinchpoint Mapper

【小白一学就会无需其他教程】此文档用于解析使用Linkage Mapper 各输入输出参数详情以及可能的影响,并介绍了如何解释模型输出结果和输出参数,适合刚入手的人。篇幅很长很啰嗦,是因为每个参数都解释的万分细致。 从以下链接中获取内容&…

PCIe 6.0生态业内进展分析总结

上一篇,我们针对PCIe 6.0的功能更新与实现挑战做了简单的分析与总结。更多详细内容可以参考: 扩展阅读:浅析PCIe 6.0功能更新与实现的挑战 那么,PCIe 6.0已经发布了一段时间了,业内硬件支持PCIe 6.0目前有哪些进展呢…

接口开发—hrun语法和用例规范

学习目标: 1、常见的抓包方法 2、如何提取和使用token 3、用例规范 4、辅助函数 具体内容: 1、常见的抓包方法 做接口测试前,肯定需要使用抓包工具去请求接口,然后才开始正常写接口用例。 常用的2种抓包方法有&#xff1a…

快递物流怎么寄最便宜?你一定要知道的5个方法 !

家人们,临近年关,大家的钱包是不是鼓鼓的了,难免的亲戚朋友之间会相互寄送一些东西,所以最近因为需要经常寄快递物流,小编所以特地整理了5个我们平时个人寄快递便宜的方法攻略,推荐第五个,实用干…

1.大数据概述

目录 概述hadoophadoop 模块hadoop 发行版apache社区版本CDP(CDHHDP)其它云产商框架选择 hadoop 安装 结束 概述 先了解几个常用的网站 apache 官网hadoop 官网hadoop githubhttps://github.com/apache/xxx [https://github.com/apache/spark (example)] hadoop hadoop 模块…

【计算机算法设计与分析】棋盘覆盖问题(C++_分治法)

文章目录 题目描述测试样例算法原理算法实现参考资料 题目描述 在一个 2 k 2 k 2^k \times 2^k 2k2k个方格组成的棋盘中,若恰有一个方格与其他方格不同,则称该方格为一个特殊方格,且称该棋盘为一个特殊棋盘。显然,特殊方格在棋…

论文阅读: Semantics-guided Triplet Loss

ICCV 2021 Abstract 一个度量学习方法,通过浏览语义引导的局部集合去优化内在深度表示。一个新颖的特征融合模块能有效利用跨模态特异质特征。 Senantics-guided Triplet Loss 基本假设: 在场景语义分割图像中,目标内部相邻像素拥有同样…

书生·浦语大模型全链路开源体系(陈恺|上海人工智能实验室 青年科学家)-听课笔记

大模型重要性 大模型确实已成为发展通用人工智能(AGI)的重要途径。它们通过整合和处理大量数据,学习语言、图像、声音等多种模式的表示,以此来模拟人类的学习和思维方式。通过不断地学习和优化,这些模型能够在各种任…

基于SSM的人事档案管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Fiddler抓取https原理?

首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。 第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器C…

各类Java对象

相关概念的混淆 在某一时间段,人们对某种编程困境感到烦恼,不少人脑中产生了一种新开发方式的概念 一些代表人物提出了他们的意见,而同一时期可能又不少人对同一问题,用自己的不同语言提出不同概念 如果又官方组织维护概念&#x…

CSS新增文本描边-text-stroke属性

-webkit-text-stroke属性 概念:-webkit-text-stroke属性为文本添加描边效果。所谓的描边效果,指的是给文字添加边框 语法: -webkit-text-stroke:width color;Chrome和Firefox这两个浏览器都只能识别带有-webkit前缀的text-stroke属性 -web…