1.安装Anaconda(从官网下载)
参照网上其他教程。
2.创建一个新的Anaconda环境并指定Python版本为3.8
2.1打开Anaconda Prompt或Anaconda PowerShell Prompt。创建新环境:
conda create -n myenv python=3.8
这里myenv
是环境名称,可以根据需要更改。
2.2激活新环境:
conda activate myenv
2.3确认新环境中的Python版本
在激活新环境后,使用以下命令确认Python版本:
python --version
输出位Python 3.8.x表示成功。
2.4在新环境中安装项目所需的库:
# 安装PyTorch及其依赖
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
# 安装其他依赖库
pip install numpy opencv-python pillow matplotlib tqdm
pip install labelImg
下载有点久......如果pip install 失败可以采用conda install
3.数据准备和标注
3.1启动 LabelImg:
labelImg
如果要用固定的标注集进行标注:进入到下面这个classes的父文件夹下执行下面指令。
labelimg ./data predefined_classes.txt
3.2建立文件结构
在本地文件夹中建立如下结构:
dataset/
├── images/
│ ├── train/
│ │ ├── img1.jpg
│ │ └── img2.jpg
│ └── val/
│ ├── img1.jpg
│ └── img2.jpg
├── labels/
│ ├── train/
│ │ ├── img1.txt
│ │ └── img2.txt
│ └── val/
│ ├── img1.txt
│ └── img2.txt
└── data.yaml
data.yaml
文件内容示例:
train: dataset/images/train
val: dataset/images/val
nc: 62
names: [ '0', '1', '2', ..., 'Z' ]
3.3标注图片:
3.2.1设置 LabelImg
- 选择图像目录:点击“Open Dir”按钮,选择包含你要标注的图片的文件夹。例如,选择
dataset/images/train
文件夹 - 选择保存目录:点击“Change Save Dir”按钮,选择标注文件保存的目录。选择
dataset/labels/train
文件夹。 - 选择YOLO格式:在菜单栏中,选择
View
->YOLO
格式。 - 创建新标注:点击“Create RectBox”按钮,或者按快捷键
w
,然后在图片上拖动鼠标绘制一个矩形框。 - 绘制完矩形框后,会弹出一个对话框,让你输入标签名称。输入对应的字符标签(如“A”、“b”、“3”等),然后点击“OK”。
- 点击“Save”按钮,或者按快捷键
Ctrl+S
,保存标注文件。文件会以相同的文件名保存为.txt
格式(如果使用YOLO格式)。 - 重复步骤4,直到所有图片都被标注完成。
- 注:YOLO格式的标注文件是TXT文件,包含了每个标注对象的类别ID、矩形框的中心点坐标、宽度和高度(相对于图片宽度和高度的归一化值)。
0 0.5 0.5 0.1 0.1
1 0.3 0.3 0.2 0.2
4.训练YOLOv7模型
4.1克隆YOLOv7仓库:
git clone https://github.com/WongKinYiu/yolov7.git
cd yolov7
pip install -r requirements.txt
4.2配置数据文件:
修改data.yaml
文件,指定数据路径和类别信息。
4.3训练模型:
python train.py --data data.yaml --cfg cfg/training/yolov7.yaml --weights 'yolov7.pt' --batch-size 16 --epochs 50
可能会产生如下报错
按报错信息进行安装。无cv2执行pip install opencv-python
4.4使用训练好的模型进行评估:
看上一次训练模型保存的best.py在哪个文件夹,例如exp5,则把下面的exp改成exp5。
python test.py --data data.yaml --weights runs/train/exp5/weights/best.pt --batch-size 2
4.5使用训练好的模型进行推理:
python detect.py --weights 'runs/train/exp/weights/best.pt' --source 'dataset/images/train'