物品识别 树莓派4 YOLO v11

发布于:2025-05-11 ⋅ 阅读:(11) ⋅ 点赞:(0)

 让树莓派可以识别身边的一些物品

python3  -m venv --system-site-packages yolooo

source yolooo/bin/activate

树莓派换清华源,bookworm

下面这条命令将安装 OpenCV 以及运行 YOLO 所需的基础设施

pip install ultralytics
还会安装大量其他软件包,容易失败
如果安装失败(会显示一大片红色)
 

  • 官方PyPI源在2025年Q1出现过区域性访问故障
  • 推荐改用阿里云镜像:
    pip install ultralytics[export] -i https://mirrors.aliyun.com/pypi/simple/

如果有问题,再用这个装一下  

pip install ultralytics[export] -i https://pypi.tuna.tsinghua.edu.cn/simple

 安装完毕,接着,打开Thonny,切换到常规模式。重新打开

 

 

 

 用 Thonny 创建个文件 yolo.py

import cv2
from picamera2 import Picamera2
from ultralytics import YOLO

# Set up the camera with Picam
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 1280)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

# Load YOLOv8
model = YOLO("yolov8n.pt")

while True:
    # Capture a frame from the camera
    frame = picam2.capture_array()
    
    # Run YOLO model on the captured frame and store the results
    results = model(frame)
    
    # Output the visual detection data, we will draw this on our camera preview window
    annotated_frame = results[0].plot()
    
    # Get inference time
    inference_time = results[0].speed['inference']
    fps = 1000 / inference_time  # Convert to milliseconds
    text = f'FPS: {fps:.1f}'

    # Define font and position
    font = cv2.FONT_HERSHEY_SIMPLEX
    text_size = cv2.getTextSize(text, font, 1, 2)[0]
    text_x = annotated_frame.shape[1] - text_size[0] - 10  # 10 pixels from the right
    text_y = text_size[1] + 10  # 10 pixels from the top

    # Draw the text on the annotated frame
    cv2.putText(annotated_frame, text, (text_x, text_y), font, 1, (255, 255, 255), 2, cv2.LINE_AA)

    # Display the resulting frame
    cv2.imshow("Camera", annotated_frame)

    # Exit the program if q is pressed
    if cv2.waitKey(1) == ord("q"):
        break

# Close all windows
cv2.destroyAllWindows()

点一下绿色 Run 按钮

 


网站公告

今日签到

点亮在社区的每一天
去签到