神经网络组植物分类学习规划与本周进展综述15

一、关于 "搭建共享空间 / 百度网盘" (百度网盘)

介绍:用一个大家都能随时访问的地方,统一存放项目中所有文件,避免两个人各存一份导致版本混乱。比如你们俩分工标注图片、写代码,如果你存自己电脑里,组员 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配置文件,运行训练和测试命令,把训练好的模型传到共享网盘。

相关推荐
江畔柳前堤5 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
晓梦林5 小时前
BUUCTF findKey-学习笔记
笔记·学习
阿里云大数据AI技术5 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客5 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
0566465 小时前
agent学习Day15——SQLAlchemy 查询过滤、分页与历史列表接口
python·学习·fastapi
阿里云大数据AI技术6 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO6 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术7 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架7 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab7 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能