YOLOv1 代码实现

本文介绍了如何从头开始使用PyTorch实现YOLOv1算法,包括数据集VOC2012的下载与预处理,以及train.py和test.py的执行过程。过程中涉及参数设置、预训练问题和OpenCV的安装与配置。最终虽然精度不高,但详细展示了整个开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 代码:1、GitHub - lavendelion/YOLOv1-from-scratch: YOLOv1-from-scratch

数据:The PASCAL Visual Object Classes Challenge 2012 (VOC2012) (ox.ac.uk)

选择第一个下载即可。

参考博客:动手学习深度学习pytorch版——从零开始实现YOLOv1_自己实现的yolov-优快云博客

1、数据集介绍:

下载完成,解压VOC2012后有五个文件夹。

Annotations:保存的是xml文件,里面存放的是对应照片的标注信息。

ImageSets里面有四个文件夹:

保存的是txt文件。我们关注的是Main里面的train.txt和val.txt。

JPEGImages:保存的是对应的图片。

剩下两个跟分割有关,暂时不管。

2、操作步骤:

(1)、将下载好的VOC2012文件夹放到与程序在同一个目录下,并在VOC2012文件夹下面建一个空文件夹,命名为voc2012_forYolov1;

(2)、找到prepare_data.py,修改数据保存地址,将里面数据path全部改成实际的地址。

(3)、运行prepare_data.py程序

运行完后,在新建文件夹下就会生成一些图片和文件。

(4)执行train.py程序

设置参数:

batch_size=32,lr=1e-4。lr不能设置的太大,会出现loss=Nan的情况。

优化器设置为SGD。

如果执行时,提示预训练报错,把默认值设置为default=None就可以了。程序从头开始训练。

设置完成后就开始执行程序。

输出:

运行60个epoch之后,loss维持到0.1左右。

(5) 执行test.py测试程序

执行前,先将my_arguments.py程序中set_test_args,需要修改两个个地方:

--dataset_dir将需要测试的图片加载进来,测试图片在voc2012_forYolov1下的img文件夹下;

--weight path加载前面训练产生的pkl文件。

报错:If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'

解决办法:先卸载原来的opencv

pip uninstall opencv-python

然后重新安装。

pip install opencv-contrib-python

结果能显示,但是精度不高。有些图片识别不出来。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值