教学Yolo简单上手
今晚不熬夜什么是Yolo?
YOLO(You Only Look Once,意思是“你只需看一次”)是一个用来识别图片里物体的AI算法,特点是又快又准。
YOLO 是怎么工作的?
普通的方法(比如 R-CNN)是先找出可能有目标的地方,再去分类。而 YOLO 直接把整张图片输入,一次性就能识别所有目标,就像人一眼扫过去就能看出画面里有什么。
YOLO 的厉害之处
- 速度快 🚀 —— 一次看完,立刻给出结果,适合实时应用,比如自动驾驶、监控识别等。
- 准确率高 🎯 —— 通过深度学习不断优化,能精准找到目标。
- 结构简单 🏗 —— 直接输入图片,输出结果,没有复杂的中间步骤。
有趣的应用项目
- 打蚊子 https://b23.tv/n5GAoEK
- 停车位检测 https://b23.tv/rUjtwbw
- 机械臂视角抓取 https://b23.tv/e51dYnB
- 人形机器人机械臂 https://b23.tv/UkVEofg
项目搭建
- 安装必要的库 你需要安装 OpenCV 和 ultralytics(YOLO 的 Python 库):
1
| pip install opencv-python ultralytics
|
- 加载 YOLOv8 模型 使用
yolov8n.pt
(轻量级 YOLOv8 版本)进行实时检测。
测试代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import cv2 from ultralytics import YOLO
model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture(0)
while cap.isOpened(): success, frame = cap.read() if not success: break
results = model(frame)
for result in results: for box in result.boxes: x1, y1, x2, y2 = map(int, box.xyxy[0]) confidence = box.conf[0] label = result.names[int(box.cls[0])]
if label == "person": cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.putText(frame, f"Person: {confidence:.2f}", (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
cv2.imshow("Real-time Human Detection", frame)
if cv2.waitKey(1) & 0xFF == ord("q"): break
cap.release() cv2.destroyAllWindows()
|