VScode+YOLOv8+深度相机D435i实现物体追踪

一、相关环境搭建

Anacode+YOLO识别图片-CSDN博客

二、物体追踪实现

通过导入相关的检测模型后,就可以实现物体追踪与识别。

python 复制代码
import cv2
import numpy as np
import pyrealsense2 as rs
from ultralytics import YOLO  # 将YOLOv8导入到该py文件中

# 加载官方或自定义模型
model = YOLO(r"E:\Deep learning\YOLOv8\yolov8n.pt")  # 加载一个官方的检测模型
model = YOLO(r"E:\Deep learning\YOLOv8\yolov8s.pt")  # 加载一个官方的检测模型
# model = YOLO(r"E:\Deep learning\YOLOv8\yolov8n-seg.pt")  # 加载一个官方的分割模型
# model = YOLO(r"E:\Deep learning\YOLOv8\yolov8n-pose.pt")  # 加载一个官方的姿态模型


# 深度相机配置
pipeline = rs.pipeline()  # 定义流程pipeline,创建一个管道
config = rs.config()  # 定义配置config
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)  # 初始化摄像头深度流
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
pipe_profile = pipeline.start(config)  # 启用管段流
align = rs.align(rs.stream.color)  # 这个函数用于将深度图像与彩色图像对齐

def get_aligned_images():  # 定义一个获取图像帧的函数,返回深度和彩色数组
    frames = pipeline.wait_for_frames()  # 等待获取图像帧
    depth_frame = frames.get_depth_frame()  # 获取深度帧
    color_frame = frames.get_color_frame()  # 获取对齐帧中的的color帧
    depth_image = np.asanyarray(depth_frame.get_data())  # 将深度帧转换为NumPy数组
    color_image = np.asanyarray(color_frame.get_data())  # 将彩色帧转化为numpy数组
    return depth_image, color_image

if __name__ == '__main__':
    try:
        while True:
            img_depth, img_color = get_aligned_images()  # 获取深度帧和彩色帧
            # cv2.applyColorMap()将深度图像转化为彩色图像,以便更好的可视化分析
            depth_colormap = cv2.applyColorMap(
                cv2.convertScaleAbs(img_depth, alpha=0.07), cv2.COLORMAP_JET)
            source = [img_color]
            # 轨迹追踪,persist=true表示数据储存
            results = model.track(source, persist=True)
            img_color = results[0].plot()  # 在图像上添加色彩帧(追踪结果)
            # 将图像color_impage和depth_colormap水平堆叠
            # images = np.hstack((img_color, depth_colormap))
            # 设置窗口,窗口大小根据图像自动调整
            cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
            # 将图像images显示在窗口中,这个显示的是带有追踪结果的图像
            cv2.imshow('RealSense', img_color)
            key = cv2.waitKey(1)  # 等待用户输入
            # Press esc or 'q' to close the image window
            if key & 0xFF == ord('q') or key == 27:
                cv2.destroyAllWindows()
                pipeline.stop()
                break
    finally:
        # Stop streaming
        pipeline.stop()

相关识别效果如下视频:

这里当人或者物体移动的时候,相应的识别框和标识也会跟着动。此外,如果采用了-Pose还可以识别人的姿态。

D435i相机+VScode+YOLOv8视频识别追踪

相关推荐
fl1768314 小时前
苹果成熟度检测数据集VOC+YOLO格式2039张4类别
深度学习·yolo·机器学习
hhzz4 小时前
全局实例跟踪(GIT):像人类一样定位目标——VideoCube基准与SiamFC实战全解析
大数据·python·计算机视觉·目标跟踪·数据分析
hhzz13 小时前
基于监控视频的水位尺自动识别技术方案与实现
python·opencv·yolo·图像识别·cv
林中青木18 小时前
CT重构原理及C++代码实现
c++·计算机视觉·重构
2601_9516599920 小时前
YOLOv11 改进 - 主干网络 ConvNeXtV2全卷积掩码自编码器网络:轻量级纯卷积架构破解特征坍塌难题,提升特征多样性
深度学习·yolo·计算机视觉
极光代码工作室21 小时前
基于YOLO目标检测的智能监控系统
python·深度学习·yolo·机器学习·计算机视觉
这张生成的图像能检测吗1 天前
(论文速读)REF-DDPM:一种新的基于DDPM的不平衡滚动轴承故障诊断数据增强方法
人工智能·计算机视觉·故障诊断·扩散模型
2601_951659991 天前
YOLOv11 改进 - 下采样 轻量化突破:ADown 下采样让 YOLOv11 参量减、精度升
深度学习·yolo·计算机视觉
辰尘_星启1 天前
【三维重建】概述
计算机视觉·机器人·slam·控制·三维重建·sfm
林中青木1 天前
OpenCV 5.0 使用方法及注意事项
人工智能·opencv·计算机视觉