Science Score: 31.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (4.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: aivyh123
- Language: Python
- Default Branch: master
- Size: 101 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
README
概述
使用YOLOv5预训练模型及深度学习框架,对Pascal VOC2012数据集实现目标检测。
下载VOC2012数据集
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
只解压Annotations和JPEGImages这两个文件夹。
Annotations存放标注用的.xml文件,一个.xml对应一张图片。
JPEGImages存放原始图片。
ImageSets存放配置文件,指示训练和测试中使用哪些图片,需自己编写合适的,故不解压原有的。
解压至项目根目录下的my_VOC2012目录中,注意JPEGImages目录需改名为images。
若使用自己的数据集,应将Annotations和JPEGImages两个文件夹放置到my_VOC2012目录中。
GitHub拉取YOLOv5源码
https://github.com/ultralytics/yolov5.git
项目配置conda环境
新建conda环境
bash
conda create -n YOLOv5_for_VOC2012 python=3.8
启动
bash
conda activate YOLOv5_for_VOC2012
先配置GPU训练环境(根据本机的CUDA配置)
bash
pip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu117
再根据YOLOv5项目自带的requirements.txt下载依赖包
bash
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
数据集划分
编写my_split.py用于划分训练、验证、测试集,代码测试时可以只选一小部分图像。
输出的.txt文件记录了数据集的划分情况,存放于./my_VOC2012/ImageSets/Main下。
bash
python my_split.py
标注文件格式转换
编写my_xml2label.py用于将VOC提供的.xml格式的标注转为适合YOLOv5框架使用的标注格式。
其针对.txt文件中指示的每一张图像,将其对应的.xml标注转换并保存在./my_VOC2012/labels目录下。
注意my_xml2label.py的第68行包含绝对路径,需修改为本机的相应路径。
bash
python my_xml2label.py
创建数据集配置文件
根据VOC2012数据集的情况,在./data目录下创建myvoc.yaml配置文件。
配置文件中描述了分类的类别数量、各类别名称,以及记录了数据集划分情况的.txt文件的路径(需使用my_xml2label.py生成的位于my_VOC2012目录下的.txt文件)。
下载预训练模型
从
https://github.com/ultralytics/yolov5/releases/tag/v5.0
下载,这里选用了yolov5m.pt,存放在./weights目录下。
修改模型配置文件
根据选用的模型创建或修改相应的模型配置文件,模型配置文件位于./models目录下。
由于使用的yolov5m.pt权重文件已有相应的yolov5m.yaml,故仅需修改Parameters中的nc一项,改为4与模型的分类数量相同。
开始训练
运行项目根目录下的train.py启动训练。
bash
python train.py --img 416 --batch 4 --epoch 1 --data ./data/myvoc.yaml --cfg ./models/yolov5m.yaml --weights ./weights/yolov5m.pt
需要训练的epoch数量以及各文件的路径根据实际情况填写。
在./runs/train/exp/weights下会保存本次训练中的最优、最终模型。
开始验证
运行项目根目录下的val.py启动验证。
bash
python val.py --img 416 --data ./data/myvoc.yaml --weights ./runs/train/exp/weights/best.pt
在./runs/val/exp下会保存本次验证的相关结果图片。
开始检测
运行项目根目录下的detect.py启动检测。待检测的全部图片放在./data/images目录下。
bash
python detect.py --img 416 --weights ./runs/train/exp/weights/best.pt --source ./data/images
在./runs/detect/exp下会保存本次检测的相关结果图片。
Owner
- Name: aivyh123
- Login: aivyh123
- Kind: user
- Repositories: 1
- Profile: https://github.com/aivyh123
Citation (CITATION.cff)
cff-version: 1.2.0
preferred-citation:
type: software
message: If you use YOLOv5, please cite it as below.
authors:
- family-names: Jocher
given-names: Glenn
orcid: "https://orcid.org/0000-0001-5950-6979"
title: "YOLOv5 by Ultralytics"
version: 7.0
doi: 10.5281/zenodo.3908559
date-released: 2020-5-29
license: AGPL-3.0
url: "https://github.com/ultralytics/yolov5"
GitHub Events
Total
- Push event: 2
Last Year
- Push event: 2