一、安装Anacoda
因为我原本是已经安装了python,后面直接卸载了,然后安装了最新版的anacoda
下载网址为:
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
下载版本是:
按照安装教程直接安装即可:
史上最全最详细的Anaconda安装教程-CSDN博客
二、下载YOLO
1.创建虚拟环境
conda create -n yolo8 python=3.10
创建完成后显示的内容
2.激活虚拟环境
conda activate yolo8
命令行输入该代码,如果无报错,表示虚拟环境创建成功
3.ultralytics下载:
(ultralytics是一个功能强大且易于使用的YOLO实现,适用于需要在计算机视觉任务中进行目标检测的开发者)
激活虚拟环境后,命令行输入该指令。
pip install ultralytics
具体展示如下:
1.conda activate yolo8 激活yolo8环境
2.pip install ultralytics 安装ultralytics
3.安装完成,查看是否安装好,输入pip list
4.测试YOLO8
安装模型yolov8n,然后检测图片
ultralytics的网页下载地址(如果直接用pip命令行安装,此处不需要下载):
”ultralytics“ 的搜索结果 | GitHub 中文社区 (github-zh.com)
三、图片检测结果
以下是在VScode里面的yolov8使用代码,图片结果为识别结果。
import time
import cv2
import numpy as np
import pyrealsense2 as rsfrom ultralytics import YOLO # 将YOLOv8导入到该py文件中# 深度相机
pipeline = rs.pipeline() # 定义流程pipeline,创建一个管道
config = rs.config() # 定义配置config
config.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30) # 初始化摄像头深度流
config.enable_stream(rs.stream.color, 1280, 720, 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_imageif __name__ == '__main__':model = YOLO(r"E:\Deep learning\YOLOv8\yolov8n.pt") # 加载权重文件,如需要更换为自己训练好的权重best.pt即可# 设置计时器start_time = time.time()#获取当前时间interval = 3 # 间隔时间(秒)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) # 将图像color_impage和depth_colormap水平堆叠images = np.hstack((img_color, depth_colormap))# 设置窗口,窗口大小根据图像自动调整cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE) # 将图像images显示在窗口中 cv2.imshow('RealSense', images)# 检查是否达到间隔时间if time.time() - start_time >= interval:start_time = time.time() # 重置计时器source = [img_color]#将其赋值给source列表# 调用YOLOv8中的推理,还是相当于把d435i中某一帧的图片进行detect推理#results = model.predict(source,save=True,show_conf=False) # model = YOLO(r"E:\Deep learning\YOLOv8\yolov8n.pt")# 置信度show_conf=False,表示不显示置信度results = model.predict(source,save=True,show_conf=False) key = cv2.waitKey(1)#等待用户输入# Press esc or 'q' to close the image windowif key & 0xFF == ord('q') or key == 27:cv2.destroyAllWindows()pipeline.stop()breakfinally:# Stop streamingpipeline.stop()