python运行yolo
时间: 2025-06-23 17:11:22 浏览: 8
### 如何使用Python运行YOLO
#### 准备工作
为了成功利用Python执行YOLO进行物体检测,需先安装必要的库和工具。这通常涉及设置环境以及下载预训练模型。
对于YOLOv5的小型版本(yolov5s),可以通过`torch.hub`加载预训练模型[^1]:
```python
import torch
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
```
此命令会自动处理依赖项并获取指定的YOLOv5模型权重文件。
#### 物体检测函数实现
定义一个名为`detect_objects`的功能来接收图像路径作为输入参数,并返回该图中所有被识别对象的信息。以下是具体实现方式:
```python
def detect_objects(image_path):
# 加载预训练的YOLO模型
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
# 读取图片
import cv2
img = cv2.imread(image_path)
# 使用YOLO进行物体检测
results = model(img)
# 获取检测结果并显示
results.show()
results.save()
```
这段代码不仅展示了如何加载模型并对单张静态图片实施预测操作,还包含了展示与保存分析成果的方法。
#### 实时物体检测应用实例
当目标是从连续帧序列(如来自网络摄像头的数据流)中提取信息时,则需要构建循环结构不断抓拍新画面并即时反馈给用户界面。这里给出一段简单的演示片段用于启动默认设备上的相机采集服务[^4]:
```python
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
# 将每一帧传递给之前创建好的detect_objects函数做进一步处理...
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
上述脚本通过OpenCV库建立了连接至本地硬件资源(即内置Webcam),随后进入无限循环直至按下键盘上任意键为止;期间每一轮迭代都会捕获当前时刻的画面快照供后续步骤调用。
#### 模型转换支持不同平台部署
如果计划将YOLO应用于特定嵌入式系统或者移动终端之上,那么可能还需要经历额外一步——即将原始ONNX格式或其他形式的目标检测器转变为适用于目标架构优化后的RKNN文件[^3]。这一过程可通过如下指令完成:
```bash
conda activate RKNN-Toolkit2
cd <rknn_model_zoo Path>/rknn_model_zoo/examples/yolov8/python
python3 convert.py ../model/yolov8s.onnx rv1106
```
这样就完成了从通用框架到专用芯片组之间的适配准备工作,使得最终产品能够在更低功耗条件下维持高效能运作状态。
阅读全文
相关推荐


















