科大讯飞AI大赛:玉米雄穗识别挑战赛

科大讯飞AI大赛:玉米雄穗识别挑战赛

赛题名称:

玉米雄穗识别挑战赛

赛题类型:

计算机视觉、物体检测

赛题任务:

通过田间图像正确识别植株雄穗,并进行标注。

赛事背景

随着中国经济发展和人口增长,对农业生产的需求不断增加,玉米作为重要的粮食作物之一,一直处于国家粮食安全和生态保护的重要位置。玉米制种产业是玉米生产的基础保障。随着玉米制种技术的不断发展,不育系生产由于无需去雄,节省劳动力,已经越来越普及。在玉米种子生产过程中,母本去雄作为种子纯度保障至关重要的环节,准确识别母本去雄后残留雄穗并去除是提升种子质量的重要手段。

赛事任务

在玉米花期,通过田间图像正确识别植株雄穗,并进行标注。

数据说明

本次比赛将会为选手提供玉米处于花期阶段的图片作为数据集,选手需要根据训练集进行训练,对测试集数据进行标定。

数据集已上传至资源。

样本标注

评估指标


部分代码

python 复制代码
import os
import glob
import shutil

# 创建验证集目录
os.makedirs('val', exist_ok=True)
os.makedirs('val/labels', exist_ok=True)
os.makedirs('val/images', exist_ok=True)

# 获取训练集标签和图像路径
labels = glob.glob('./train/labels/*')
images = glob.glob('./train/images/*')

# 排序路径列表
labels.sort()
images.sort()

# 移动最后 50 个样本到验证集
for x, y in zip(labels[-50:], images[-50:]):
    shutil.move(x, 'val/labels/')  # 移动标签文件
    shutil.move(y, 'val/images/')  # 移动图像文件
python 复制代码
import os
import warnings
from pathlib import Path

from ultralytics import YOLO

if __name__ == '__main__':
    # 忽略警告
    warnings.filterwarnings('ignore')

    # 取消设置 CUDA_VISIBLE_DEVICES
    os.environ.pop("CUDA_VISIBLE_DEVICES", None)

    # 初始化模型
    model_path = Path('yolov8m.pt')

    # 确保路径正确
    if not model_path.exists():
        raise FileNotFoundError(f"Model path {model_path} does not exist.")

    model = YOLO(str(model_path))

    # 创建必要的目录
    project_dir = Path('runs/train/yolov8m_finetuned')
    project_dir.mkdir(parents=True, exist_ok=True)

    # 开始训练
    results = model.train(
        data="./yolo.yaml",
        epochs=200,  # 增加训练轮数
        device="cuda:0",
        batch=16,
        lr0=0.01,  # 初始学习率
        lrf=0.001,  # 最终学习率
        optimizer='AdamW',
        augment=True,  # 启用数据增强
        save_period=10,  # 每 10 轮保存一次模型
        patience=20,  # 早停法,连续 20 轮没有提升则停止训练
        cache=True,  # 使用缓存加速数据加载
        workers=8,  # 增加数据加载线程数
        project=str(project_dir),  # 保存结果的目录
        name='yolov8m_finetuned'  # 保存的模型名称
    )
python 复制代码
import os
import glob
from ultralytics import YOLO

# 加载最优模型
## model = YOLO("runs/detect/train/weights/best.pt")
model = YOLO("runs/train/yolov8m_finetuned/yolov8m_finetuned2/weights/best.pt")

# 创建提交目录
os.makedirs('submit', exist_ok=True)

# 获取测试图片路径
test_paths = glob.glob('test/*')

# 遍历测试图片路径
for path in test_paths:
    # 进行预测
    results = model(path, save_txt=False)  # 确保不保存预测结果为文本文件
    predictions = results[0]
    
    # 打开文件以写入预测结果
    output_path = "./submit/" + os.path.basename(path).split('.')[0] + '.txt'
    with open(output_path, 'w') as file:
        boxes = predictions.boxes
        for box in boxes:
            cls = int(box.cls.item())
            xywhn = box.xywhn[0].tolist()
            # Write line to file in YOLO label format: cls x y w h
            file.write(f"{cls} {xywhn[0]} {xywhn[1]} {xywhn[2]} {xywhn[3]}\n")

结束

仅仅提供思路,完整需要学习整体架构

相关推荐
开开心心就好5 分钟前
免费自媒体多功能工具箱,图片音视频处理
人工智能·pdf·ocr·excel·音视频·语音识别·媒体
昨夜见军贴06166 分钟前
AI审核守护透析安全:IACheck助力透析微生物检测报告精准合规
大数据·人工智能·安全
东方不败之鸭梨的测试笔记6 分钟前
如何对AI测试用例生成方案进行评估?
人工智能·测试用例
新新学长搞科研12 分钟前
【高届数会议征稿】第十二届传感云和边缘计算系统国际会议(SCECS 2026)
大数据·人工智能·生成对抗网络·边缘计算·传感器·学术会议
一只大袋鼠16 分钟前
CNN 图像特征提取完整流程
人工智能·计算机视觉·cnn
码以致用18 分钟前
GPT架构详解:从Transformer到大型语言模型
人工智能·深度学习·transformer
2501_9083298524 分钟前
NumPy入门:高性能科学计算的基础
jvm·数据库·python
LDG_AGI40 分钟前
【人工智能】OpenClaw(一):MacOS极简安装OpenClaw之Docker版
运维·人工智能·深度学习·机器学习·docker·容器·推荐算法
一水鉴天41 分钟前
智能代理体系 之2 20260325 (腾讯元宝)
人工智能·重构·架构·自动化
Monster丶62642 分钟前
Docker 部署 Ollama 全流程指南:支持 CPU/GPU、生产环境可用的工程化实践
运维·人工智能·docker·容器