[YOLOv8] 基于yolo的原神鱼群目标检测

原神启动!恰好把之前抽的雷神培养一下,正好没有专武,想着把鱼叉弄一下。自己又不想钓鱼,正好就试着把原神自动钓鱼项目(基于深度强化学习的原神自动钓鱼AI)复现一下 ,于是便有了这篇博文。

1、YOLO 环境配置

1.1 安装 CUDA 和 cudnn

参考之前写的 博客,按其中步骤安装即可。这里安装的是 version 为 11.2 的cuda。

1.2 安装 pytorch-gpu

torch官网 寻找与自己 cuda 版本相对应的 pytorch,这里我没有找到对应 cuda-11.2 版本的torch安装命令,于是选择了安装 cuda-11.1 的torch(自己安装torch的cuda版本应不能超过电脑的 cuda 版本

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

建议先安装 torch,再安装 yolo;若先安装 yolo,系统会自行安装 torch-cpu,还需卸载

1.3 安装 YOLOv8

git 拉取 ultralytics: YOLOv8 🚀 Ultralytics 同步更新官方最新版 YOLOv8 (gitee.com):

git clone https://gitee.com/monkeycc/ultralytics.git

进入 ultralytics 目录内,安装 yolo 及相关依赖

pip install -e .

验证是否安装成功

import ultralytics
ultralytics.checks()
Ultralytics YOLOv8.0.230 � Python-3.8.8 torch-1.8.1+cu111 CUDA:0 (NVIDIA GeForce GTX 1050 Ti, 4096MiB)
Setup complete ✅ (4 CPUs, 15.9 GB RAM, 13.4/50.0 GB disk)

1.4 下载预权重

下载训练模型,推荐yolov8s.pt或者yolov8n.pt,模型小,下载快,在gitee或者github下方readme里面,下载完成后,将模型放在主文件夹下

yolov8s.pt下载地址:yolov8s.pt

yolov8n.pt下载地址:yolov8n.pt

1.5 测试环境

yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg'
Speed: 0.0ms preprocess, 80.1ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 480)
Results saved to runs\detect\predict
💡 Learn more at https://docs.ultralytics.com/modes/predict

2、安装数据标注工具

2.1 标注工具基本介绍

这里只介绍两种标注工具:labelimglabelme;LabelMe和LabelImg都是用于图像标注的工具,但它们有一些不同之处:

  1. 开发者和平台:
    • LabelMe:LabelMe是由麻省理工学院(MIT)开发的在线标注工具,允许用户标注图像,并支持多种标注格式。
    • LabelImg:LabelImg是由Tzutalin开发的开源工具,它是一个基于Python的图像标注工具,可以在本地使用,支持多种格式的图像标注。
  2. 功能:
    • LabelMe:LabelMe提供了一些高级的标注功能,如实例分割(不仅限于矩形框标注)和复杂形状标注的能力。
    • LabelImg:LabelImg相对简单,适用于一般的对象检测任务,支持常见的矩形标注和类别标签
  3. 使用场景和灵活性:
    • LabelMe:适合需要更复杂标注需求(如实例分割)的项目,同时需要在线协作或访问的团队。
    • LabelImg:适合简单的对象检测标注需求,更适合个人或小团队在本地使用。

选择使用哪个工具取决于你的具体需求和标注的复杂程度。如果你需要更高级的标注功能并且团队需要在线协作,LabelMe可能更适合;而如果你只需要简单的对象检测标注,LabelImg可能更加方便。这里我们只是进行简单的目标检测,选择使用LabelImg;当然你也可以选用LabelMe,注意LabelMe标注生成的文件为json,还需额外脚本将其生成txt才能用作yolo训练。

2.2 LabelMe安装

参考 GitHub主页安装:

conda create --name=labelme python=3
conda activate labelme
pip install labelme

# or install standalone executable/app from:
# https://github.com/wkentaro/labelme/releases

运行命令,启动 labelimg

labelme

2.3 LabelImg安装

参考 github主页安装步骤安装:

# GitHub官方安装步骤,可能失败
conda install pyqt=5
conda install -c anaconda lxml
pyrcc5 -o libs/resources.py resources.qrc
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
----------------------------
#国内源进行安装
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple 

3、训练模型

3.1 创建数据加载配置文件

新建data文件夹(可自定义),再在data目录下新建images, labels, data.yaml

YOLOv8 从环境搭建到推理训练_yolov8 predict-优快云博客

教程:超详细从零开始yolov5模型训练_yolo训练-优快云博客

&#

### 如何使用 YOLOv8 构建鱼类检测识别系统 #### 1. 数据集准备 为了构建一个高效的鱼类检测系统,首先需要收集和标注高质量的数据集。数据集中应包含多种鱼类的目标图像以及背景环境的多样性[^1]。通常可以采用 COCO 或 Pascal VOC 的格式来存储标签文件。 对于水下场景中的目标检测,建议采集不同光照条件下的鱼群视频或图片,并对其进行裁剪、增强处理以提高模型鲁棒性。如果已有公开可用的数据集,则可以直接下载并整理成适合训练的形式[^2]。 #### 2. 环境搭建与依赖安装 在开始之前,请确保已安装 Python 和 PyTorch 环境。以下是必要的库列表及其版本推荐: ```bash pip install ultralytics==8.0.93 torch torchvision opencv-python-headless matplotlib numpy scikit-image gradio ``` 其中 `ultralytics` 是官方支持 YOLOv8 的核心包;而 `gradio` 则用于快速开发 GUI 应用程序[^3]。 #### 3. 模型初始化及配置调整 加载预训练权重或者自定义设置超参数前需先实例化 YOLO 类对象: ```python from ultralytics import YOLO model = YOLO('yolov8n.yaml') # 使用默认架构模板创建新项目 # 或者加载现有 checkpoint 文件继续微调 pretrained_model = YOLO('./runs/detect/exp/weights/best.pt') ``` 接着修改 YAML 配置文档内的类别名称字段 (`names`) 来匹配实际需求,比如这里设定了三种常见淡水观赏鱼种作为例子: ```yaml nc: 3 names: 0: Goldfish 1: Koi 2: Betta ``` #### 4. 训练过程详解 启动训练脚本时指定路径指向本地保存好的 dataset.zip 解压后的根目录位置即可完成自动化流程控制: ```python results = pretrained_model.train( data='path/to/custom_dataset', epochs=50, imgsz=640, batch=-1, name='custom_fish_detection' ) ``` 此阶段会经历多次迭代更新网络权值直至收敛达到预期精度指标为止。 #### 5. 推理演示功能扩展 最后一步便是封装好整个逻辑链路供外部调用测试效果如何。下面给出一段完整的 Gradio WebApp 实现方案展示最终成果画面布局样式设计思路: ```python import gradio as gr from ultralytics import YOLO import cv2 def detect_fish(image): model = YOLO("./runs/detect/custom_fish_detection/weights/best.pt") results = model.predict(source=image, conf=0.5, iou=0.45)[0] annotated_frame = results.plot() return annotated_frame iface = gr.Interface(fn=detect_fish, inputs=gr.Image(type="filepath"), outputs=gr.Image(), live=True) if __name__ == "__main__": iface.launch(server_name="localhost", server_port=7860, share=False) ``` 以上就是关于如何运用最新版 YOLOv8 技术框架打造专属定制化的鱼类物种分类器解决方案概述说明[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值