Skip to content

Bil369/YOLOv4-PyTorch-Simple-Implementation

Repository files navigation

YOLOv4 PyTorch Simple Implementation

build build build build

本仓库是自己阅读 YOLOv4 论文时对其进行的复现。

检测结果

在 PASCAL VOC 2007 数据集上进行测试,最终 mAP 值为 78.93%.

由于本人水平有限,该仓库的复现还有诸多不够完善的地方,可以在 Issues 中提出,我也会继续改进。

目录

安装

需要安装以下依赖:

  • Python >= 3.7
  • PyTorch >= 1.4.0
  • torchvision >= 0.5.0
  • opencv-python >= 4.2.0.32
  • Jupyter >= 1.0.0
  • numpy >= 1.17.0

使用

Inference on image

使用 Jupyter Notebook 打开 predict.ipynb。

默认在 GPU 上推理,如果需要在 CPU 上进行,请修改

#device = torch.device('cuda')
device = torch.device('cpu')

下载预训练好的模型(下载地址(提取码:s5h5))并放在同一目录下。

在 Jupyter Notebook 中运行以下代码:

predictImage(image_path)

例如:

predictImage('testImage.JPG')

Inference on video

使用 Jupyter Notebook 打开 predict.ipynb。

默认在 GPU 上推理,如果需要在 CPU 上进行,请修改

#device = torch.device('cuda')
device = torch.device('cpu')

下载预训练好的模型(下载地址(提取码:s5h5))并放在同一目录下。

在 Jupyter Notebook 中运行以下代码:

predictVideo(image_path)

例如:

predictVideo('testVideo.mpeg')

Evaluate on PASCAL VOC 2007 test dataset

使用 Jupyter Notebook 打开 eval.ipynb。

默认在 GPU 上推理,如果需要在 CPU 上进行,请修改

#device = torch.device('cuda')
device = torch.device('cpu')

下载 PASCAL VOC 2007 test 数据集(下载地址),并将其中的 JPEGImages 和 Annotations 单独放到一个目录。

下载预训练好的模型(下载地址(提取码:s5h5))并放在同一目录下。

在 Jupyter Notebook 中运行以下代码:

eval(dir_path)

例如:

eval('dataset/VOC2007test')

然后进入 mAP 目录:

cd mAP

命令行运行以下代码:

python main.py

Train on PASCAL VOC 2007 train dataset

使用 Jupyter Notebook 打开 train.ipynb。

默认在 GPU 上推理,如果需要在 CPU 上进行,请修改

#device = torch.device('cuda')
device = torch.device('cpu')

下载 PASCAL VOC 2007 train(下载地址) & test(下载地址)数据集,并将其中的 JPEGImages 和 Annotations 分别单独放到一个目录。

设置好数据集路径:

train_data = PASCALVOC('dataset/VOC2007train', get_transform(train=True))
test_data = PASCALVOC('dataset/VOC2007test', get_transform(train=False))

下载 PyTorch 预训练好的模型(下载地址)并放在同一目录下。

其余超参数可以在源码中进行修改。

参考

License

GPL © Bil369

About

YOLOv4 PyTorch Simple Implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published