物品识别 树莓派4 YOLO v11
让树莓派可以识别身边的一些物品
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 cameraframe = picam2.capture_array()# Run YOLO model on the captured frame and store the resultsresults = model(frame)# Output the visual detection data, we will draw this on our camera preview windowannotated_frame = results[0].plot()# Get inference timeinference_time = results[0].speed['inference']fps = 1000 / inference_time # Convert to millisecondstext = f'FPS: {fps:.1f}'# Define font and positionfont = cv2.FONT_HERSHEY_SIMPLEXtext_size = cv2.getTextSize(text, font, 1, 2)[0]text_x = annotated_frame.shape[1] - text_size[0] - 10 # 10 pixels from the righttext_y = text_size[1] + 10 # 10 pixels from the top# Draw the text on the annotated framecv2.putText(annotated_frame, text, (text_x, text_y), font, 1, (255, 255, 255), 2, cv2.LINE_AA)# Display the resulting framecv2.imshow("Camera", annotated_frame)# Exit the program if q is pressedif cv2.waitKey(1) == ord("q"):break# Close all windows
cv2.destroyAllWindows()
点一下绿色 Run 按钮