使用 YOLO v5 进行目标检测

2021-08-20 10:07:39 浏览数 (1)

一般来说,分类技术在自动驾驶汽车中没有多大帮助,因为它只预测图像中的一个对象,并且不给出该图像的位置。而目标检测在自动驾驶汽车中非常重要,可以检测场景中的对象及其位置。YOLO(你只看一次)是由 Joseph Redmon 等人创建的一种高速实时对象检测算法。YOLO使用卷积神经网络 (CNN)解决概率的回归问题。后来又进行了一些修改。为了进行预测,YOLO 只需要通过 CNN 进行一次前向传播。它输出具有相应边界框的对象。它广泛用于自动驾驶汽车以检测场景中的物体。

在这篇文章中,我们将使用来自 AWS 上的 COCO 数据集(可定制)的图像设置和运行 YOLO。

第 1 步:设置帐户(这步可以跳过)

登录wandb.ai网站并复制以下内容:

来自 wandb.ai/authorize 的 API 密钥 wandb.ai/settings 中的团队名称。默认团队名称将是用户 ID。

第 2 步:创建 AWS 实例(如果你在本机训练这步也可以跳过)

在创建实例时,选择“Deep Learning AMI (Ubuntu 18.04) Version 47.0 — ami-01f1096e6659d38fa”AMI,因为它具有深度学习任务所需的库。如果我们在“选择AWS机器映像 (AMI)”步骤中搜索“deep learning”,我们可以找到这。为“实例类型”选择 P3 实例。实例类型 p3.2xlarge(V100) 就足够了。为了节省成本,请在“配置实例”步骤下选择 Spot 实例。

第 3 步:安装依赖项

登录 AWS 实例后,使用以下命令创建 conda 环境并设置 Weights & Bias 环境变量:

代码语言:javascript复制
# Create conda environment with name 'test'
$ conda create -n test python=3.9.6 wandb

# login to test environment
$ conda activate test  

# clone the latest yolov5 and install the required libraries
$ git clone https://github.com/ultralytics/yolov5 
$ cd yolov5
$ pip install -r requirements.txt
 
# Set the Weights & Bias environment
# Key from https://wandb.ai/authorize$
export WANDB_API_KEY=337....4a8 

# Team name from https://wandb.ai/settings
$ export WANDB_ENTITY=user_team_name

# Project name
$ export WANDB_PROJECT=yolov5

第 4 步:训练、验证和测试

代码语言:javascript复制
# Train a model. By default, it uses data/coco128.yaml and runs for 300 epochs. Dataset is downloaded from  https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip (128 images under images/train2017 from coco128.zip)
$ python train.py  

# Validate a model for Precision, Recall and mAP (128 images under images/train2017 from coco128.zip).
$ python val.py --weights yolov5s.pt    

# There are two images. We can use our custom images.
$ python detect.py --weights yolov5s.pt --source /home/ubuntu/yolov5/data/images

第 5 步:检查指标

验证集真实标签

验证集预测标签

训练的损失

测试

以上所有结果都会保存在文件夹yolov5runsdetectexp下

作者:Surya Gutta

0 人点赞