yolov8 视频识别动物实战

环境搭建

本人使用mac m1电脑安装

设置虚拟环境

sh 复制代码
brew install python@3.9 # 只能使用3.9的python
python3.9 -m venv yolo8_env # 使用3.9 创建
source yolo8_env/bin/activate # 激活
python -V  # 查看版本

安装依赖库

sh 复制代码
pip install torch torchvision torchaudio

安装 YOLOv8

sh 复制代码
pip install ultralytics 
yolo --version # 查看版本

验证

这里会自动拉取官方的模型yolov8s.pt,同时识别图片里面的人物和汽车是否识别

sh 复制代码
yolo detect predict model=yolov8s.pt source='https://ultralytics.com/images/bus.jpg'

看到正常使用模型运算

输出的文件 runs/detect/predict/bus.jpg

这里看到人和车都被识别出来了

实现视频的微调

yolov8不仅能处理图片,视频也是杠杠的(其实视频也是一张张图片动态识别而已)

这是用自带yolov8s.pt的模型检查

sh 复制代码
yolo detect predict model=yolov8s.pt source='./mov_bbb.mp4'  show=True save=True

输出识别有问题,有时候把兔子识别成dog,有时候识别成sheep,我们来调教一下吧

微调目前主要是通过图片做坐标标记来实现的。

准备素材和整理文件夹

在dataset下的images

  • train 代表验证的图片文件夹
  • val 代表二次检验图片文件夹

在dataset下的labels

  • train 代表验证的坐标x和y的信息
  • val 代表二次检验的坐标x和y的信息

图片通过播放视频的时候分别截取5张,train 放3张,val放2张。

安装图像标记编辑工具 labelImg

安装

js 复制代码
pip install labelImg

直接运行

js 复制代码
labelImg

选择左边的工具栏

  • open Dir 选择上面的./dataset/images/train文件夹,作为输入路径
  • change save Dir 选择上面的./dataset/labels/train文件夹,作为输出路径

选择yolo模式

开始标记 ,点击左边的createRect box,

选中动物的范围,然后输入标记名称为 rabbit

每次标记完后,点击ok,再点击save,然后再点击 next image,快速编辑下一张

相同的操作 处理 ./dataset/images/val./dataset/labels/val

  • open Dir 选择上面的./dataset/images/val文件夹,作为输入文件夹
  • change save Dir 选择上面的./dataset/labels/val文件夹,作为输出文件夹

处理完最后再 labels下面的 train和val都会生成对应的坐标信息

创建配置 code.yaml 文件

设置一下信息

yaml 复制代码
path: ./dataset  # 相对于你运行脚本的位置
train: images/train # 训练的图片地址
val: images/val # 训练的图片地址2
nc: 1
names: ['rabbit']

训练命令(根据图片+标记训练)

sh 复制代码
yolo detect train \
  model=yolov8s.pt \
  data=code.yaml \
  epochs=100 \
  imgsz=640 \
  batch=16 \
  project=code_project2 \
  name=exp2

这时候就要考验你的硬件能力了,我是漫长的等待

结束后最重要的是 这个模型文件 code_project2/exp2/weights/best.pt

我们这时候就可以使用上面这个微调过的新模型进行识别

运行命令

code_project2/exp2/weights/best.pt 这个就是上面生成的新模型

sh 复制代码
 yolo detect predict \
  model=code_project2/exp2/weights/best.pt \
  source=./mov_bbb.mp4 \
  conf=0.25 \
  save=True

最后输出结果

rabbit , nice ~

当然还有优化的空间,蝴蝶也被标记成rabbit ,可以继续使用labelImg标记 butterfly

参考代码

github.com/mjsong07/yo...

相关推荐
东小西8 小时前
番外篇一:《Spring AI Alibaba 到底是啥?一张图理清两者关系》
openai·ai编程
逻辑帧8 小时前
洞见AI本质系列-参数的演化
ai编程
9i编程8 小时前
工具是编程的铠甲(下篇):从文件对比、全文搜索到数据库设计
后端·openai·ai编程
用户45989204565168 小时前
我用 AI Agent 自动生成了整个 App 的业务地图(开源)
ai编程·客户端
ServBay8 小时前
MCP Server 是什么?为什么是2026年开发团队的必备?
aigc·ai编程·mcp
北斗落凡尘8 小时前
如何使用LangGraph(1)
python·langchain
Cerrda8 小时前
把团队 Mock 工作流做成可安装 Skill:faker-mock-setup 上架 skills.sh 实践
ai编程·cursor
Livia要学习9 小时前
Python装饰器
开发语言·python
八号当铺10 小时前
使用 Figma Agent Kit:插件 + MCP + 还原 Skill,打通本地设计协作
前端·人工智能·ai编程
无责任此方_修行中10 小时前
搓了一个国产大模型与 AI Agent 比价工具
前端·后端·ai编程