二、 yolo检测车辆 https://docs.ultralytics.com/zh 使用yolov8n.pt 任务一 检测车辆图片 检测单一图片,将图片中的汽车检测出来 要求:去除其余类别,只留下car
时间: 2024-12-12 09:18:32 浏览: 2
红外弱小目标数据集(https://github.com/wanghuanphd/MDvsFA_cGAN.git)
二、 yolov8车辆检测
YOLO (You Only Look Once) 是一种快速高效的物体检测算法,特别适用于实时场景。Yolov8 是YOLO系列的最新版本之一,它在保持高效的同时提升了精度。在你的案例中,我们将使用 `yolov8n.pt` 进行车辆检测。
**任务一:使用yolov8检测车辆图片**
首先,确保你已经安装了必要的依赖,如`torch`, `torchvision`, 和 `ultralytics.yolov8`。如果你还没有安装,可以使用以下命令进行安装:
```bash
pip install torch torchvision ultralytics[yolov8]
```
接下来,你可以使用以下代码进行车辆检测,这里假设图片保存在`image.jpg`:
```python
import torch
from PIL import Image
from ultrautils import utils, YOLOv8
# 加载模型
model = YOLOv8("yolov8n.pt")
# 打开图片并转换为Tensor
img = Image.open('image.jpg')
img_tensor = utils.image_to_tensor(img).unsqueeze(0)
# 检测并过滤出车辆(class_id=7通常代表车辆)
results = model(img_tensor, classes=[7])
# 提取车辆位置信息
vehicle_boxes = results.xyxy[results.class_ids == 7]
# 只保留车辆区域
vehicle_image = img.crop(tuple(vehicle_boxes[:, :4].tolist()))
# 显示或保存结果
vehicle_image.show()
# 或者
vehicle_image.save('detected_vehicle.jpg')
```
这段代码会加载yolov8模型,检测图片中的车辆,并仅显示或保存车辆部分。`results.xyxy` 返回的是每个检测框的位置坐标,通过筛选`class_ids == 7` 来获取车辆,最后通过`crop`函数截取车辆区域。
阅读全文