yolov5 车辆 行人识别
时间: 2025-05-04 16:47:54 浏览: 25
### YOLOv5 实现车辆和行人检测教程
YOLO (You Only Look Once) 是一种高效的实时目标检测算法,而 YOLOv5 则是在其基础上进一步优化的版本。以下是关于如何使用 YOLOv5 进行车辆和行人的识别的具体方法:
#### 准备工作
为了训练模型以适应特定的任务需求(如车辆和行人检测),需要准备数据集并调整配置文件。
1. **安装依赖项**
首先克隆官方仓库并设置环境:
```bash
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt
```
2. **收集标注的数据集**
数据集应包含带有边界框标签的图像,这些标签用于指示每张图片中的对象类别及其位置。可以利用公开可用的数据集,例如 KITTI 或 COCO[^1] 中的相关部分来获取车辆和行人类别的样本。
3. **转换到正确的格式**
将现有的标注格式转化为 YOLO 所需的形式——即相对坐标表示法下的 `.txt` 文件形式。每一行代表一个物体实例,遵循如下模式:
```
<class_id> <x_center> <y_center> <width> <height>
```
其中 `<class_id>` 对于本案例而言可能是 `0` 表示 “car”,`1` 表示 “pedestrian”。
4. **创建 YAML 配置文件**
定义路径以及类名列表等内容的一个 YAML 文件对于指定自定义项目至关重要。
```yaml
train: ../path_to_train_images/
val: ../path_to_val_images/
nc: 2 # number of classes
names: ['vehicle', 'person']
```
#### 训练过程
完成上述准备工作之后就可以启动训练流程了。
运行命令如下所示:
```bash
python train.py --img 640 --batch 16 --epochs 50 --data custom_data.yaml --weights yolov5s.pt
```
这里解释一下参数的意义:
- `--img`: 输入分辨率大小,默认为 640×640 像素;
- `--batch`: 每次迭代使用的批量大小;
- `--epochs`: 总共执行多少轮完整的遍历周期;
- `--data`: 自己制作好的 yaml 格式的配置文档地址;
- `--weights`: 初始化权重的位置,可以选择预训练模型或者随机初始化。
#### 测试与评估
当训练结束后,可以通过验证脚本来查看效果好坏程度,并生成相应的指标报告。
```bash
python detect.py --source path/to/test/images --weights runs/train/exp/weights/best.pt --conf 0.4
```
此操作会基于最佳性能保存下来的 checkpoint 来预测未知测试集中是否存在目标物象,并且按照设定阈值过滤掉低可信度的结果。
#### 结果分析
通过以上步骤可以获得针对具体应用场景定制化后的高性能检测器,在自动驾驶领域尤其重要的是能够精准区分道路上不同类型的参与者从而保障安全行驶[^2]。
---
### 提供一段简单的 Python 脚本作为辅助工具展示加载模型及推理的过程
```python
import torch
from PIL import Image
import matplotlib.pyplot as plt
model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs/train/exp/weights/best.pt')
# 加载一张待测图片
image_path = './test_image.jpg'
img = Image.open(image_path)
results = model(img, size=640)
print(results.pandas().xyxy[0])
plt.imshow(img)
plt.show()
```
阅读全文
相关推荐



















