让树莓派可以识别身边的一些物品
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 按钮