因为我原本是已经安装了python,后面直接卸载了,然后安装了最新版的anacoda
下载网址为:
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
下载版本是:

按照安装教程直接安装即可:
conda create -n yolo8 python=3.10
创建完成后显示的内容

conda activate yolo8
命令行输入该代码,如果无报错,表示虚拟环境创建成功
(ultralytics是一个功能强大且易于使用的YOLO实现,适用于需要在计算机视觉任务中进行目标检测的开发者)
激活虚拟环境后,命令行输入该指令。
pip install ultralytics
具体展示如下:
1.conda activate yolo8 激活yolo8环境
2.pip install ultralytics 安装ultralytics

3.安装完成,查看是否安装好,输入pip list

安装模型yolov8n,然后检测图片

ultralytics的网页下载地址(如果直接用pip命令行安装,此处不需要下载):
”ultralytics“ 的搜索结果 | GitHub 中文社区 (github-zh.com)
以下是在VScode里面的yolov8使用代码,图片结果为识别结果。
- import time
- import cv2
- import numpy as np
- import pyrealsense2 as rs
-
- from 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_image
-
- if __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 window
- if key & 0xFF == ord('q') or key == 27:
- cv2.destroyAllWindows()
- pipeline.stop()
- break
- finally:
- # Stop streaming
- pipeline.stop()
