使用YOLOv8结合DeepSORT实现人物追踪和体态检测

应用DeepSORT实现目标跟踪 但在这里,我们不使用官方的代码,而使用第三方代码,其网址为https://github.com/levan92/deep_sort_realtime。orginal_ltwh、det_conf、det_class:分别表示目标边框信息、置信值和类型,这三个值都是由tracker.update_tracks传入系统的原始目标的信息,但此时已匹配上了目标ID。max_iou_distance:IoU的门控阈值,大于该值的关联会被忽略,默认值为0.7。n_init:在初始阶段轨迹被保留的帧数,默认值为3。 阅读详情

 使用YOLOv8结合DeepSORT实现人物追踪和体态检测的Python代码

import cv2
import numpy as np
from ultralytics import YOLO
from deep_sort_realtime.deepsort_tracker import DeepSort

# 初始化YOLOv8姿势估计模型
pose_model = YOLO('yolov8n-pose.pt')  # 使用预训练的人体姿势估计模型

# 初始化DeepSORT追踪器
tracker = DeepSort(max_age=30)  # 设置最大追踪丢失帧数

# 打开视频文件或摄像头
cap = cv2.VideoCapture(0)  # 0表示默认摄像头,也可替换为视频路径

# 定义关键点连接关系(用于绘制骨骼)
skeleton = [
    (0, 1), (0, 2), (1, 3), (2, 4),  # 头部和肩部
    (5, 6), (5, 7), (7, 9), (6, 8), (8, 10),  # 手臂
    (11, 12), (11, 13), (13, 15), (12, 14), (14, 16)  # 腿部
]

while cap.isOpened():
    success, frame = cap.read()
    if not success:
        break

    # 使用YOLOv8进行姿势估计
    results = pose_model.track(frame, persist=True, classes=0)  # classes=0只检测人
    
    # 提取检测结果
    if results[0].boxes.id is not None:
        boxes = results[0].boxes.xyxy.cpu().numpy()
        track_ids = results[0].boxes.id.int().cpu().numpy()
        keypoints = results[0].keypoints.xy.cpu().numpy()
        
        # 准备DeepSORT需要的检测结果格式 [x1, y1, x2, y2, confidence]
        detections = []
        for box, keypoint in zip(boxes, keypoints):
            x1, y1, x2, y2 = box
            conf = 0.9  # 使用固定置信度(实际应根据需要调整)
            detections.append(([x1, y1, x2 - x1, y2 - y1], conf, keypoint))
        
        # 使用DeepSORT更新追踪
        tracked_objects = tracker.update_tracks(detections, frame=frame)
        
        # 绘制追踪结果和姿势
        for track in tracked_objects:
            if not track.is_confirmed():
                continue
                
            track_id = track.track_id
            ltrb = track.to_ltrb()
            
            # 绘制追踪框
            x1, y1, x2, y2 = map(int, ltrb)
            cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
            cv2.putText(frame, f"ID: {track_id}", (x1, y1 - 10), 
                        cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
            
            # 查找对应的关键点
            for det in detections:
                det_box = det[0]
                if abs(det_box[0] - x1) < 5 and abs(det_box[1] - y1) < 5:
                    keypoints = det[2]
                    break
            
            # 绘制关键点和骨骼
            for i, kp in enumerate(keypoints):
                x, y = int(kp[0]), int(kp[1])
                cv2.circle(frame, (x, y), 3, (0, 0, 255), -1)
                
            for start, end in skeleton:
                if start < len(keypoints) and end < len(keypoints):
                    x1, y1 = int(keypoints[start][0]), int(keypoints[start][1])
                    x2, y2 = int(keypoints[end][0]), int(keypoints[end][1])
                    cv2.line(frame, (x1, y1), (x2, y2), (255, 0, 0), 2)

    # 显示结果
    cv2.imshow('Person Tracking with Pose', frame)
    
    # 按'q'退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
  1. 依赖库:

    • OpenCV (cv2)

    • Ultralytics YOLOv8 (pip install ultralytics)

    • DeepSORT实时追踪 (pip install deep-sort-realtime)

  2. 主要功能:

    • 使用YOLOv8姿势估计模型检测人体并估计17个关键点

    • 使用DeepSORT算法进行人物追踪

    • 实时显示追踪ID和人体骨骼

【deep_sort_realtime库】deepsort_tracker.py 中文注释版 【代码】【deep_sort_realtime库】deepsort_tracker.py 中文注释版。 阅读详情

相关推荐

YOLO8实战:yolov8实现行人跟踪计数

行人跟踪统计是智能监控系统中的重要功能,可以广泛应用于人流控制、安全监控等领域。传统的行人跟踪算法往往受到光照、遮挡等因素的干扰,难以实现准确跟踪。随着深度学习技术的发展,目标检测模型逐渐成为行人跟踪的主流方案。本文介绍使用YOLOv8目标检测模型实现行人跟踪统计的方法。

qq_42681787的博客 1万+

基于 Python 和深度学习技术实现的人体姿态识别

人体姿态识别是计算机视觉领域的一个重要应用,它通过识别人体的关键点和关节位置,能够准确地判断人体的姿态和动作。这项技术可以应用在很多领域,比如运动训练、医疗康复、安保监控等,为人们的生活和工作带来了很大的便利和效益。

qq_46556714的博客 4177

Python实现简单的人体姿态估计

在使用OpenPose进行人体姿态估计时,需要先对图片进行目标检测,然后再对检测到的人体进行关键点预测。OpenPose在预测关键点坐标时,会使用多个尺度下的特征图,并且会对这些尺度的特征进行融合,从而得到更加准确的关键点坐标。人体姿态估计的关键任务是从一张图片中确定人体的关键点,也就是人体的各个关节的位置。人体姿态估计是计算机视觉中的一项重要任务,它的目的是从一张图片或一段视频中,估计出人体的姿势和动作信息。在构建人体姿态估计模型之前,需要准备一定量的数据,并进行预处理。人体姿态估计原理与算法。

吃不胖. 692

YOLOv11|deepsort目标跟踪|零基础

刚学习YOLOv1—deepsort目标跟踪方法,分享一下,需要源码关注+留言。YOLOv11|deepsort目标跟踪|零基础。3.需要源码关注+留言。

2401_84769586的博客 989

人体检测与追踪系统:YOLOv5与PyQt5界面集成

人体识别与追踪系统是一个集成了计算机视觉与深度学习技术的智能应用,旨在通过摄像头实时捕捉视频流,并识别视频中的个体,同时对特定人体进行追踪。该系统可以广泛应用于公共安全、智能监控、人机交互等领域。YOLOv5,作为You Only Look Once系列的最新成员,继承了YOLO系列模型速度快、准确率高的特点。YOLOv5的发展始于对早期版本YOLO的批评与优化。首先,让我们回顾一下YOLO系列的发展历程。YOLOv1在2015年发布,它采用了全新的目标检测方法,将目标检测任务转换为回归问题。

weixin_35671843的博客 412

基于YOLOV8-pose的姿态关键点检测项目,带数据集,可直接跑通源码

YOLO(You Only Look Once)是一种著名的实时目标检测系统,其设计目的是为了高效地进行物体检测。YOLO系列算法在计算机视觉领域广受欢迎,因为它们能够快速地在图像中定位和识别多个对象。YOLOV8-pose是YOLO系列的最新版本之一,特别针对人体姿态关键点检测进行了优化。 在基于YOLOV8-pose的姿态关键点检测项目中,重点在于利用神经网络模型来识别图像中人体的关键部位,如头部、肩部、肘部、手腕、髋部、膝部和脚踝等。这种技术在运动分析、人机交互、视频监控等多个领域有着广泛的应用。 YOLOV8-pose相比之前的YOLO版本,可能在以下几个方面进行了改进: 1. **模型结构优化**:YOLOV8-pose可能采用了更高效的网络架构,如更深层次的卷积层、残差连接和注意力机制,以提高检测精度和速度。 2. **损失函数调整**:在训练过程中,损失函数的设计对于关键点检测至关重要。可能使用了多任务损失函数,同时考虑物体框预测和关键点定位,以平衡精度与速度。 3. **数据增强**:为提高模型泛化能力,训练时通常会进行数据增强,包括翻转、旋转、缩放等,使得模型能适

毕业设计-基于yolo实现人物跟踪实时监测(附源码+可远程安装部署)

这种损失会存在一些问题,具体的问题如下图所示,(1)如状态1所示,当预测框和GT框不相交时,即IOU=0,此时无法反映两个框之间的距离,此时该 损失函数不可导,即IOU_Loss无法优化两个框不相交的情况。CIOU_loss-目标检测任务的损失函数一般由分类损失函数和回归损失函数两部分构成,回归损失函数的发展过程主要包括:最原始的Smooth L1 Loss函数、2016年提出的IoU Loss、2019年提出的GIoU Loss、2020年提出的DIoU Loss和最新的CIoU Loss函数。

Dalu_1226的博客 1575

基于yolov8+openpose人体骨骼关键点实现的摔倒姿态识别检测系统源码+所有模型+项目说明

本项目参考前人框架进行全面改进,改进如下: (1)将检测框架换成当前最流行框架yolov8,并封装成类实现模块化设计 (2)调整部分文件夹结构,比如模型归为一类文件夹,这样方便查看模型 (3)检测流程简化,使得人体骨骼关键点实现的摔倒姿态识别代码十分简单,实际只要40多行代码就实现整个检测流程 运行步骤:安装好yolov8环境后执行python main_video.py 更多实现细节参考博文:https://blog.youkuaiyun.com/FL1623863129/article/details/142413295

YOLOv8-DeepSORT-PaddleOCR-监督车辆管理

近年来,人工智能领域发展迅速。这种发展促使我们探索如何利用先进技术来增强高速公路交通摄像头系统。该项目的主要动机是将尖端的深度学习算法无缝集成到我们的车辆管理系统中。通过实现这些目标,我们希望创建一个更高效、更智能的交通监控系统,利用人工智能的力量来增强高速公路的安全和交通管理。或者您可以点击我上面提供的 Vehicle_Quick_Test 笔记本来快速运行测试并查看结果。,包括汽车、卡车、公共汽车和摩托车。,在车辆进入和离开监控区域时对其进行。,进一步增强系统的功能。

hsling 1461

matlab snr矩阵计算公式_基于MATLAB和Adams的悬置系统解耦计算方法对比

一、概述动力总成悬置系统主要有两个作用:一是固定和支撑动力总成,限制动力总成在各种工况下的位移量,防止与其它部件碰撞;二是隔振作用,将动力总成的振动尽可能少的传递到车身。悬置系统隔振性能的核心就是解决刚体模态的频率分配和振动耦合问题,简言之就是关注动力总成的刚体模态和解耦率。动力总成悬置系统的刚体模态频率和能量解耦分析,行业内的主流计算方法分两种:一是用MATLAB编程进行分析计算,二是...

weixin_33416900的博客 1449

Grey Hack v0.7.3618 保姆级教程:手把手教你用metaxploit.so写一个自动提权脚本

本文详细介绍了如何在Grey Hack v0.7.3618中使用metaxploit.so库编写自动化提权脚本。从环境准备到核心功能解析,再到漏洞利用链构建和权限提升的智能处理,手把手教你掌握游戏中的高级黑客技巧。通过多库联合利用和错误处理优化,提升脚本的效率和成功率。

weixin_42537919的博客 396

AI视觉,人体姿态关键点实时跟踪,附python完整代码

AI视觉,人体姿态关键点实时跟踪,附python完整代码

Python单行客的博客 6663

斯坦福大学CS224d基础1:线性代数知识

本文为斯坦福CS229的内容,也是CS224d课程的背景数学知识。概括了在机器学习和深度学习中用到的大部分线性代数知识。为了便于大家查漏补缺,这里根据英文版本整理了一个中文版本。

龙心尘 2万+

DAMO-YOLO多目标跟踪(MOT)扩展教程:DeepSORT集成与优化

本文介绍了如何在星图GPU平台上自动化部署DAMO-YOLO 智能视觉探测系统镜像,集成DeepSORT实现多目标跟踪功能。用户可快速构建稳定ID、连贯轨迹的视觉分析系统,典型应用于智能交通监控、仓储AGV调度及人流热力图生成等工业场景。

weixin_29317963的博客 425

由Sensor光谱响应曲线联想到的白平衡增益计算

由Sensor光谱响应曲线联想到的白平衡增益计算 由于传感器硬件的限制,传感器在某个预定波长范围内的响应不可能是100% 响应。现实中都是类似于正态分布的单峰函数。如果仅做粗略计算,由一个中心波长和半高宽(也成半波宽)完全可以由数学公式计算出一个高斯分布曲线。这个分布曲线就叫波谱响应函数。 波谱响应函数反映了传感器通道获取能量的情况。实际上每个传感器厂商都提供了具体的光谱响应函数,一般由两列数据组成,一列数据是波长,另一列数据是相对响应强度。下图某sensor光谱的响应的波谱响应函数。 ...

大熊 7490

推荐一个直接用于项目开发的PID库!很好用,很稳定

关注、星标公众号,不错过精彩内容大家好,我是小麦。最近有朋友问到有没有现成的C语言PID库。当然有了!现在我就准备给大家安利一下了。一般同学会去某度上搜,看到各种各样版本的PID示例,或者...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 9025

实时目标跟踪

如果检测器在弱光条件下出现故障,并且能够在几帧后再次检测到该人,则 Re-ID 模型可以与之前的 ID 关联。尽管建议在跟踪人员时使用人员重新识别模型,但我们可以使用任何大型预训练模型,例如,如果我们想在视频帧中跟踪和重新识别汽车。在本文中,我们将创建一个小型代码库,使我们能够测试Torchvision中的任何对象检测模型。此外,我们还将对不同检测器和Re-ID模型组合的FPS和结果进行定性和定量分析。尽管进行检测、跟踪和重新识别的单级跟踪器变得越来越普遍,但我们仍然有单独的 Re-ID 模型的用例。

whaosoft143ai的博客 603

【Java开发者必看】LangChain4j实战指南:使用AIService轻松集成聊天记忆Chat Memory到SpringBoot应用,通过封装多轮复杂对话,使聊天记忆的实现变得简单

聊天记忆是指在与用户的多轮对话过程中,能够记住之前的交互内容,从而提供更加连贯和个性化的回复。LangChain4j支持通过ChatMemoryProvider接口实现聊天记忆功能。

Spring Boot-Common On With You 448

YOLO结合DeepSORT实现多目标跟踪完整方案

通过YOLO实时检测与DeepSORT身份关联的协同架构,有效解决遮挡、ID跳变等多目标跟踪难题。系统兼顾速度与稳定性,适用于交通监控、客流统计与工业安防等场景,具备良好的工程落地性与扩展潜力。

weixin_42143092的博客 1131

大数据Alluxio面试题及参考答案

Alluxio 在大数据生态里的定位是作为数据编排层,能在不同计算框架和存储系统之间起到桥梁的作用。它的核心功能在于加速数据访问,让大数据应用能够更高效地使用数据。Alluxio 把数据存储和数据处理分离开来,使计算框架可以在不考虑底层存储细节的情况下访问数据,这样就提高了系统的灵活性和可扩展性。Alluxio 和 HDFS 既存在关联又有区别。从关联方面来看,HDFS 是一种广泛使用的分布式文件系统,很多大数据应用都将其作为主要的数据存储系统。Alluxio 可以和 HDFS 集成,把 HDFS 当作底层

大模型大数据攻城狮的专栏 862

数学建模Matlab算法,第七章 对策论

对策论作为研究竞争与决策的数学理论,从零和对策到非常数和对策,为分析各类博弈问题提供了系统框架。其核心要素包括局中人、策略集和赢得函数,通过稳定解、Nash平衡点等概念揭示竞争规律。该理论广泛应用于经济、军事、政治等领域,不仅提供具体分析工具,更改变了决策思维方式,强调在互动中实现理性选择。对策论既揭示了竞争本质,也凸显合作价值,为解决社会矛盾、促进共赢发展提供了重要启示,在全球化背景下将发挥更大作用。

unber的博客 109

【实战】YOLO11进行锻炼监测:俯卧撑,引体向上,深蹲统统搞定【附源码】

【实战】YOLO11进行锻炼监测:俯卧撑,引体向上,深蹲统统搞定【附源码】

阿旭的博客 3000

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【目标追踪1】基于YOLOv8+DeepSort的目标追踪-YOLOv8-DeepSORT-Object-Tracking模型训练自己的数据集的史诗级详细教程

主要讲解的是:基于YOLOv8-DeepSORT-Object-Tracking的目标跟踪训练自己的数据集,从数据标注、数据处理、环境部署、配置文件配置、模型训练、模型评估到模型预测的史诗级详细步骤,适合零基础入门的小白。

weixin_45736855的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

无人机视角航拍红外图像光伏板损伤缺陷太阳能板热斑脏污检测数据集VOC+YOLO格式2289张3类别

标注类别名称(注意yolo格式类别顺序不和这个对应,而以labels文件夹classes.txt为准):["qingweireban","wugou","yanzhongreban"]数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片分辨率:多分辨率图片,如640x512,636x508等。图片数量(jpg文件个数):2289。标注数量(txt文件个数):2289。标注规则:对类别进行画矩形框。

2403_88102872的博客 165

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

使用yoloV8实现自动化脚本

移动端自动化脚本里的“找图”一直是个让人头疼的环节。OpenCV模板匹配要求目标和素材几乎像素级一致,界面稍微缩放、换个主题、加个滤镜,匹配率就断崖式下跌。找色方案更脆弱,系统亮度一变,整段逻辑就废了。无障碍控件看起来是最优解,但短视频和游戏类应用普遍对控件树做了限制,经常拿不到有效节点。冰狐平台把YOLOv8的推理能力直接封装进了JavaScript运行环境,在安卓本地完成目标检测,不走云端,模型文件和截图都不会离开手机。

jcgu的专栏 288
上一篇: uniapp获取当前位置和经纬度信息
下一篇: 前端网页打印指定区域内容
irisMoon06
博客等级 码龄5年 280粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值