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...

相关推荐
jie*1 小时前
小杰深度学习(five)——正则化、神经网络的过拟合解决方案
人工智能·python·深度学习·神经网络·numpy·matplotlib
拉一次撑死狗2 小时前
TensorFlow(1)
人工智能·python·tensorflow
weixin_525936332 小时前
2020年美国新冠肺炎疫情数据分析与可视化
hadoop·python·数据挖掘·数据分析·spark·数据可视化
小李独爱秋2 小时前
【机器学习宝藏】深入解析经典人脸识别数据集:Olivetti Faces
人工智能·python·机器学习·计算机视觉·人脸识别·olivetti
Carl_奕然3 小时前
【大模型】Agent之:从Prompt到Context的演进之路
人工智能·python·语言模型·prompt·多模态
eqwaak03 小时前
实战项目与工程化:端到端机器学习流程全解析
开发语言·人工智能·python·机器学习·语言模型
upgrador4 小时前
PYTHON:Python 新版本下载安装更新&py文件Pycharm运行指南
开发语言·python
闲人编程4 小时前
使用Django从零开始构建一个个人博客系统
后端·python·django·接口·restful·web·个人博客
做运维的阿瑞4 小时前
从入门到精通:Django的深度探索之旅
开发语言·后端·python·系统架构·django
czliutz5 小时前
Phpstudy博客网站apache2日志分析python代码
开发语言·python