神经网络组植物分类学习规划与本周进展综述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配置文件,运行训练和测试命令,把训练好的模型传到共享网盘。

相关推荐
杜子不疼.2 分钟前
CANN计算机视觉算子库ops-cv的图像处理与特征提取优化实践
图像处理·人工智能·计算机视觉
大闲在人3 分钟前
软件仍将存在,但软件公司会以全新形式出现——从Claude智能体引发万亿市值震荡看行业重构
人工智能
艾莉丝努力练剑4 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
张人玉4 分钟前
VisionPro 定位与卡尺测量学习笔记
笔记·学习·计算机视觉·vsionprp
芷栀夏7 分钟前
从 CANN 开源项目看现代爬虫架构的演进:轻量、智能与统一
人工智能·爬虫·架构·开源·cann
梦帮科技17 分钟前
OpenClaw 桥接调用 Windows MCP:打造你的 AI 桌面自动化助手
人工智能·windows·自动化
User_芊芊君子20 分钟前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
永远都不秃头的程序员(互关)24 分钟前
CANN模型量化赋能AIGC:深度压缩,释放生成式AI的极致性能与资源潜力
人工智能·aigc
爱华晨宇27 分钟前
CANN Auto-Tune赋能AIGC:智能性能炼金术,解锁生成式AI极致效率
人工智能·aigc
聆风吟º30 分钟前
CANN算子开发:ops-nn神经网络算子库的技术解析与实战应用
人工智能·深度学习·神经网络·cann