一、关于 "搭建共享空间 / 百度网盘" (百度网盘)
介绍:用一个大家都能随时访问的地方,统一存放项目中所有文件,避免两个人各存一份导致版本混乱。比如你们俩分工标注图片、写代码,如果你存自己电脑里,组员 B 看不到;如果用 U 盘传,容易丢文件。
用网盘 / 共享空间的好处是:
标注好的图片、训练好的模型、写的代码,传上去后两个人随时能下载最新版本;
老师要查看进度时,直接发链接就能分享,不用一个个文件发;
防止电脑坏了、文件误删导致数据丢失。
具体操作(以百度网盘为例):
一人注册百度网盘,创建文件夹,命名为 "植物 - 土壤分割项目";
里面再建 4 个子文件夹:
01_原始影像(存 QGIS 组给的预处理图片)
02_标注数据(存你们用 LabelMe 标好的图片和.json 文件)
03_代码与模型(存 YOLOv5 代码、训练好的.pt 模型、配置文件)
04_结果与论文(存分割结果图、蒸散量数据、小论文)
右键文件夹→"共享",生成链接发给组员,设置 "可编辑" 权限,两人就能共同上传 / 下载文件了。
二、YOLOv5 训练代码完全入门指南(从 0 开始,复制就能用)
不用自己 "写代码",YOLOv5 官网已经做好了所有核心代码,只需要改几个配置文件 + 运行现成的命令。以下是一步一步的操作:
Step 1:下载 YOLOv5 代码(5 分钟)
打开电脑的 "命令提示符"(Win+R 输入 cmd),复制粘贴下面的代码,按回车:
bash
# 安装git(如果没有的话,先运行这个,装完后重启cmd)
conda install git
# 下载YOLOv5代码到电脑
git clone https://github.com/ultralytics/yolov5
cd yolov5 # 进入下载好的yolov5文件夹
Step 2:安装依赖(10 分钟)
还是在 cmd 里,输入:
bash
# 安装需要的Python库(自动安装torch、opencv等)
pip install -r requirements.txt
Step 3:准备数据集(关键!对应之前的标注数据)
1.假设你们已经用 LabelMe 标好了 50 张图,现在要把它们转换成 YOLO 能识别的格式:
在yolov5文件夹里,新建一个data文件夹,再在里面建 4 个子文件夹:

2.转换 LabelMe 的.json 到 YOLO 的.txt:
复制下面的代码,保存为json2yolo.py,放在yolov5文件夹里,然后把所有标注好的.json 文件和图片放在同一个文件夹,运行这个脚本(需要改代码里的路径):
python
import json
import os
from PIL import Image
# 改这里:你的标注文件(.json)所在的文件夹
json_dir = "C:/你的标注文件夹路径"
# 改这里:转换后的txt标签要存的位置(对应train或val的labels文件夹)
txt_dir = "yolov5/data/labels/train"
# 类别:0=plant,1=soil(和你标注时的名称对应)
class_names = ["plant", "soil"]
for json_file in os.listdir(json_dir):
if json_file.endswith(".json"):
with open(os.path.join(json_dir, json_file), "r", encoding="utf-8") as f:
data = json.load(f)
# 获取图片尺寸
img_path = os.path.join(json_dir, data["imagePath"])
img = Image.open(img_path)
width, height = img.size
# 生成txt标签
txt_name = json_file.replace(".json", ".txt")
with open(os.path.join(txt_dir, txt_name), "w") as f:
for shape in data["shapes"]:
cls = class_names.index(shape["label"]) # 类别编号
points = shape["points"] # 多边形坐标
# 转换坐标为YOLO格式(归一化到0-1)
normalized = []
for (x, y) in points:
normalized.append(x / width)
normalized.append(y / height)
# 写入txt:类别 坐标1 坐标2 ...
f.write(f"{cls} " + " ".join(map(str, normalized)) + "\n")
Step 4:写配置文件(告诉 YOLO 你的数据集信息)
在yolov5/data文件夹里,新建一个plant_soil.yaml文件,用记事本打开,复制下面的内容:
python
# 训练集和验证集的图片路径(相对于yolov5文件夹)
train: data/images/train
val: data/images/val
# 类别数
nc: 2
# 类别名称(和标注时一致)
names: [ 'plant', 'soil' ]
Step 5:开始训练(核心命令,复制运行)
在 cmd 里进入yolov5文件夹,输入训练命令:
python
# 用预训练模型yolov5s.pt开始训练,epochs=50(训练轮数),batch-size=8(根据电脑配置调整)
python train.py --data data/plant_soil.yaml --weights yolov5s.pt --epochs 50 --batch-size 8 --img 640
第一次运行会自动下载yolov5s.pt预训练模型(小文件,很快);
训练时会显示进度,最后在yolov5/runs/train/exp/weights里生成best.pt(最好的模型)和last.pt(最后一轮模型)。
Step 6:用训练好的模型做分割(测试效果)
找一张没训练过的图片,放在yolov5/test.jpg,运行:
python detect.py --weights runs/train/exp/weights/best.pt --source test.jpg
结果会存在yolov5/runs/detect/exp里,打开图片就能看到植物和土壤被不同颜色标注出来了。
三、分工建议(针对代码部分)
1.一人负责 "数据准备":用 LabelMe 标注图片,运行json2yolo.py转换标签,整理到data文件夹,确保路径正确;
2.另一人负责 "代码运行":安装环境,修改plant_soil.yaml配置文件,运行训练和测试命令,把训练好的模型传到共享网盘。