基于CLIP-ReID和YOLOv8的行人检测与重识别系统
YPCRer — Pedestrian Re-Identification System Based on YOLOv8 and CLIP-ReID 📚 项目简介YPCRer 是在 YoloSide v2 项目基础上进行的再开发,在原有的目标检测功能上进行改动。引入CLIP-ReID,新增了数据管理(增删改查)、行人重识别和任务记录功能。此次项目是为了学习目标检测和重识别技术,同时学习使用了QT的Pyside6进行桌面应用开发。我也有相关的资料可以找我QQ:1379239710。 Github:https://github.com/ylm1379239710/YOLOv8-PySide6-CLIP-REID ✏️ 参考项目链接CLIP-ReID 项目源码链接: Github:https://github.com/Syliz517/CLIP-ReID 界面功能等参考链接: Github:https://github.com/Jai-wei/YOLOv8-PySide6-GUI B站:YoloSide V2.0 ~ yolov8 pyside6 可视化界面 gui...
(ROS)第4章 ROS运行管理
第4章 ROS运行管理ROS是多进程(节点)的分布式框架,一个完整的ROS系统实现: 可能包含多台主机; 每台主机上又有多个工作空间(workspace); 每个的工作空间中又包含多个功能包(package); 每个功能包又包含多个节点(Node),不同的节点都有自己的节点名称; 每个节点可能还会设置一个或多个话题(topic)… 在多级层深的ROS系统中,其实现与维护可能会出现一些问题,比如,如何关联不同的功能包,繁多的 ROS节点应该如何启动?功能包、节点、话题、参数重名时应该如何处理?不同主机上的节点如何通 信? 4.1 ROS元功能包 场景 完成ROS中一个系统性的功能,可能涉及到多个功能包,比如实现了机器人导航模块,该模 块下有地图、定位、路径规划…等不同的子级功能包。那么调用者安装该模块时,需要逐一的安装 每一个功能包吗? 显而易见的,逐一安装功能包的效率低下,在ROS中,提供了一种方式可以将不同的功能包打包成一个 功能包,当安装某个功能模块时,直接调用打包后的功能包即可,该包又称之为元功能包...
(ROS)第3章 ROS通信机制进阶——常用API
第3章 ROS通信机制进阶——常用API3.1 常用API首先,建议参考官方API文档或参考源码: ROS节点的初始化相关API; NodeHandle 的基本使用相关API; 话题的发布方,订阅方对象相关API; 服务的服务端,客户端对象相关API; 时间相关API; 日志输出相关API。 另请参考 http://wiki.ros.org/APIs https://docs.ros.org/en/api/roscpp/html/ 3.1.1 初始化C++初始化 12345678910111213141516/** @brief ROS初始化函数。 * * 该函数可以解析并使用节点启动时传入的参数(通过参数设置节点名称、命名空间...) * * 该函数有多个重载版本,如果使用NodeHandle建议调用该版本。 * * \param argc 参数个数 * \param argv 参数列表 * \param name 节点名称,需要保证其唯一性,不允许包含命名空间 * \param options...
(ROS)第2章 ROS通信机制——参数服务器
第2章 ROS通信机制——参数服务器2.3 参数服务器参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据。 关于参数服务器的典型应用场景如下:导航实现时,会进行路径规划,比如:全局路径规划,设计一个从出发点到目标点的大致路径。本地路径规划,会根据当前路况生成时时的行进路径。 上述场景中,全局路径规划和本地路径规划时,就会使用到参数服务器:路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全局路径规划节点与本地路径规划节点都可以从参数服务器中调用这些参数参数服务器,一般适用于存在数据共享的一些应用场景。 概念:以共享的方式实现不同节点之间数据交互的通信模式。 作用:存储一些多节点共享的数据,类似于全局变量。 2.3.1参数服务器理论模型参数服务器实现是最为简单的,该模型如下图所示,该模型中涉及到三个角色: ROS Master (管理者) Talker (参数设置者) Listener (参数调用者) ROS...
(ROS)第2章 ROS通信机制——常用命令与通信机制比较
第2章 ROS通信机制——常用命令与通信机制比较2.4 常用命令机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服 务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节 点通信时,如何获取对方的话题、以及消息载体的格式呢? 在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下: rosnode : 操作节点 rostopic : 操作话题 rosservice : 操作服务 rosmsg : 操作msg消息 rossrv: 操作srv消息 rosparam : 操作参数 作用 和之前介绍的文件系统操作命令比较,文件操作命令是静态的,操作的是磁盘上的文件,而上述命令是 动态的,在ROS程序启动后,可以动态的获取运行中的节点或参数的相关信息。 2.4.1 rosnoderosnode 是用于获取节点信息的命令 123456rosnode ping 测试到节点的连接状态rosnode list 列出活动节点rosnode info ...
(ROS)第2章 ROS通信机制——服务通信
第2章 ROS通信机制——服务通信2.2 服务通信服务通信也是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。也即: 一个节点A向另一个节点B发送请求,B接收处理请求并产生响应结果返回给A。比如如下场景:机器人巡逻过程中,控制系统分析传感器数据发现可疑物体或人…此时需要拍摄照片并留存。在上述场景中,就使用到了服务通信。一个节点需要向相机节点发送拍照请求,相机节点处理请求,并返回处理结果与上述应用类似的,服务通信更适用于对时时性有要求、具有一定逻辑处理的应用场景。 概念:以请求响应的方式实现不同节点之间数据交互的通信模式。 作用:用于偶然的、对时时性有要求、有一定逻辑处理需求的数据传输场景。 2.2.1 服务通信理论模型服务通信较之于话题通信更简单些,理论模型如下图所示,该模型中涉及到三个角色: ROS master(管理者) Server(服务端) Client(客户端) ROS Master 负责保管 Server 和 Client 注册的信息,并匹配话题相同的 Server 与 Client ,帮助 Server 与 Client...
3.无重复字符的最长子串 - 力扣
力扣算法题Day3 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 123输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 123输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 1234输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 提示: 0 <= s.length <= 5 * 104 s...
(ROS)第2章 ROS通信机制——话题通信
第2章 ROS通信机制——话题通信在机器人上可能集成各种传感器(雷达、摄像头、GPS…)以及运动控制实现,为了解耦合,在ROS中每一个功能点都是一个单独的进程,每一个进程都是独立运行的。更确切的讲,是进程(也称为Nodes)的分布式框架。因为这些进程甚至还可分布于不同主机,不同主机协同工作,从而分散计算压力。不过随之也有一个问题: 不同的进程是如何通信的?也即不同进程间如何实现数据交换的?在此就需要介绍一下ROS中的通信机制了。 ROS 中的基本通信机制主要有如下三种实现策略: 话题通信(发布订阅模式) 服务通信(请求响应模式) 参数服务器(参数共享模式)下面介绍一下话题通讯。 2.1...
2.两数相加 - 力扣
力扣算法题Day2 **题目:**给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 123输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807. 示例 2: 12输入:l1 = [0], l2 = [0]输出:[0] 示例 3: 12输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]输出:[8,9,9,9,0,0,0,1] 提示: 每个链表中的节点数在范围 [1, 100] 内 0 <= Node.val <=...
RHEL常用 Linux命令操作
RHEL常用 Linux命令操作实验操作过程: 项目一:(1)启动计算机,利用root用户登录到系统,进入字符提示界面。 (2)用pwd命令查看当前所在的目录。 1#pwd (3)用ls命令列出此目录下的文件和目录。 1#ls (4)用-a选项列出此目录下包括隐藏文件在内的所有文件和目录。 1#ls -a (5)用man命令查看ls命令的使用手册。 1#man ls 注意:按q返回 (6)在当前目录下,创建测试目录test。 1#mkdir test (7)利用ls命令列出文件和目录,确认test目录创建成功。 1#ls (8)进入test目录,利用pwd查看当前工作目录。 1#cd test 1#pwd (9)利用touch 命令,在当前目录创建一个新的空文件newfile。 1#touch newfile 注:不写目标文件默认在当前目录中创建。 (10)利用cp命令复制系统文件/etc/profile到当前目录下。 1#cp /etc/profile . 注:cp不写目标文件会提示缺少目标文件,所以不能省略。 . ...