赞
踩
目录
YOLOv4检测算法主要是由主干特征提取网络CSPDarknet53、颈部特征融合网络Neck以及检测头Head这三部分组成。其中颈部网络Neck又由路径聚合网络(path aggregation network,PANet)和空间金字塔池化(spatial pyramid pooling,SPP)模块组成,其网络结构如下图所示:
上图展示了YOLOv4目标检测算法的网络框图。该目标检测算法通常可以划分为4个模块,具体包括:输入端、基准网络、Neck网络与Head输出端。
①这里的主要代码是老师在课堂上提供的,把它下载、解压。
②下载好自己的数据集,保存在"yolov4-pytorch-master\VOCdevkit\VOC2007\JPEGImages"目录下,统一图片格式为.jpg,且下载的图片至少要大于100张。(批量下载图片可以利用Microsoft Edge拓展中的图片批量下载或者利用python代码爬虫,当然,也可以分工合作。)
③win+r打开命令提示符,输入代码下载安装labelimg(目标检测标注工具)。
- 1.pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
- 2.labelimg
④安装好后,继续在命令提示符内使用命令:labelimg,对图像进行标注。点击Open Dir打开上述已经保存好的图片的文件夹点击Create RectBox手动标注图像、标注动物的名字。
⑤确保每个保存的图与上图两个绿色框里面的内容一致后,点击Save,将标注完后的图片保存在“yolov4-pytorch-master\VOCdevkit\VOC2007\Annotations”目录下面,格式为.xml,依次标注所有图片。)
①环境配置。配置python解释器、下载安装好所需的包和模块。
所需导入的包:
如果提示no module name PIL或者是no module name cv2等,说明这个库没安装。可以打开命令行安装:pip install +包名,缺哪个就下载哪个
- import datetime
- import os
- import numpy as np
- import torch
- import cv2
- from PIL import Image
- ......
②将“yolov4-pytorch-master\model_data\voc_classes.txt”中的内容修改为自己的类别,比如老虎和狗,那么voc_classes.txt的内容为tiger和dog,多个类别依次往下写。
③依次运行voc_annotation.py-->train.py-->predict.py。
将需要预测的图片保存在“yolov4-pytorch-master\img”下,在PyCharm中运行predict.py文件,输入文件地址,格式为:./img/dog.jpg。即可得到如下图所示的结果图。
Input image filename:./img/dog.jpg
不同网络的LOSS不同,LOSS只是一个参考指标,用于查看网络是否收敛,而非评价网络好坏,LOSS的值不重要,重要的是是否在变小,预测是否有效果。
如果一定要从0开始,那么训练的时候请注意几点:
下载cv2的时候出现错误,主要原因是没有激活环境,要激活对应的conda环境进行安装才可以正常使用。
可以通过修改train.py中的189行代码来改变训练数据集的迭代次数,如果数据集过小,训练次数应该不得少于300次。
下载很慢,加镜像源。如下载安装cv2,可在anaconda prompt中输入以下代码,可以使用以下镜像源加快下载速度。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
在运行代码的过程中,使用的是机房的电脑和自己的笔记本电脑,机房的电脑上好多包、库和模块都没有,不仅要重新配置环境,还要下载很多东西。下崩溃了。自己的电脑配置不够,所以还是用机房的了。
[1]苏盈盈,何亚平,喻骏,等.基于改进YOLOv4的轻量化目标检测方法[J/OL].中南民族大学学报(自然科学版),1-8[2024-04-27].https://doi.org/10.20056/j.cnki.ZNMDZK.20240311.
[2]晓红,李静,董诗琪,等.基于改进轻量级SE-Yolov4的热轧钢表面缺陷检测方法[J].湖南科技大学学报(自然科学版),2024,39(01):80-86.DOI:10.13582/j.cnki.1672-9102.2024.01.010.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。