yolo目标检测实践

CLIP-GmP-ViT-L-14编码模型

CLIP-GmP-ViT-L-14编码模型

图像识别
CLIP

CLIP-GmP-ViT-L-14编码模型` 是一个图文双塔编码模型,适合做图文匹配、零样本分类和跨模态检索演示。本镜像已经完成 Web 部署,打开页面即可上传图片并测试图文表征能力

记录下如何玩yolo,这个yolo可以用于目标检测,就是识别图像中物体知道在哪里。我这里使用autol(算力平台)做 yolo模型带的部署及微调。

开通机器资源

平台地址

AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL

容器创建

选择容器实列

点租用容器

选择按量服务就行,配置参考如下

这里点更多有个无卡模式,比如自己配置环境或者上传训练数据集,可以选择无卡启动,比较省钱,用gpu的时候在正常开机就行。

环境搭建

这里直接使用记事本

依赖包安装

分别安装yolo sdk huggingface-hub命令仓库用于下载模型在进入autodl-tmp目录下

pip install ultralytics
pip install huggingface-hub
cd autodl-tmp/

创建模型保存目录,并且创建下载模型脚本和清理模型缓存的脚本

mdkir models
touch clear_downloads_cache.sh downloads.sh

模型下载脚本

这里是做了个简单的封装,对模型下载进行加速并且设置模型文件存放目录。

#!/bin/bash

# 检查是否提供了模型仓库ID
if [ $# -lt 1 ]; then
    echo "用法: $0 <模型仓库ID> [本地存储目录] [忽略模式1 忽略模式2 ...]"
    exit 1
fi

# 从命令行参数获取模型仓库ID
REPO_ID=$1

# 处理本地存储目录,如果未提供则使用默认值
if [ $# -ge 2 ]; then
    LOCAL_DIR=$2
else
    LOCAL_DIR="./models/$(echo $REPO_ID | tr '/' '_')"
fi

# 设置Hugging Face镜像以加速下载
export HF_ENDPOINT="https://hf-mirror.com"

# 构建huggingface-cli命令
COMMAND="huggingface-cli download $REPO_ID --local-dir $LOCAL_DIR"

# 添加忽略模式参数(如果有的话)
if [ $# -gt 2 ]; then
    for pattern in "${@:3}"; do
        COMMAND="$COMMAND --ignore-patterns \"$pattern\""
    done
fi

# 输出即将执行的命令
echo "即将执行命令: $COMMAND"

# 执行命令
eval $COMMAND

# 检查命令执行状态
if [ $? -eq 0 ]; then
    echo "模型 $REPO_ID 已成功下载到 $LOCAL_DIR"
else
    echo "下载模型时出现错误,请检查网络或模型仓库ID是否正确。"
fi

模型下载缓存清理脚本

#!/bin/bash

# 获取操作系统类型
OS=$(uname)

# 根据不同操作系统确定缓存目录
if [ "$OS" = "Darwin" ]; then
    # macOS 系统
    CACHE_DIR="$HOME/.cache/huggingface"
elif [ "$OS" = "Linux" ]; then
    # Linux 系统
    CACHE_DIR="$HOME/.cache/huggingface"
elif [ "$OS" = "MINGW64_NT" ] || [ "$OS" = "CYGWIN_NT" ]; then
    # Windows(Git Bash 环境)
    CACHE_DIR="$USERPROFILE/.cache/huggingface"
else
    echo "不支持的操作系统类型,无法确定缓存目录。"
    exit 1
fi

# 检查是否设置了自定义的 HF_HOME 环境变量
if [ -n "$HF_HOME" ]; then
    CACHE_DIR="$HF_HOME"
fi

# 定义要清理的子目录
SUB_DIRS=("hub" "transformers")

# 遍历子目录并清理
for sub_dir in "${SUB_DIRS[@]}"; do
    full_path="$CACHE_DIR/$sub_dir"
    if [ -d "$full_path" ]; then
        echo "正在清理 $full_path..."
        rm -rf "$full_path"
        if [ $? -eq 0 ]; then
            echo "成功清理 $full_path"
        else
            echo "清理 $full_path 时出现错误"
        fi
    else
        echo "$full_path 不存在,跳过清理"
    fi
done

命令使用

首先去https://huggingface.co/搜下要使用的模型,这里我用的是yolo8,选择yolo8后进到模型仓库复制仓库id然后执行下载命令。

# 下载模型
./downloads.sh Ultralytics/YOLOv8
# 清理缓存这里看情况自己如果不在乎磁盘容量不用管
./clear_downloads_cache.sh

模型使用(预测)

创建要用的文件夹和目录

# 这里为了演示预测下载ultralytics工程
git clone https://github.com/ultralytics/ultralytics
# 创建项目目录
mkdir yolo_demo
cd yolo_demo
# 简单的demo脚本,脚本内容在下面给出
touch hello_yolo_demo.py

脚本

这里直接看注释就行

from ultralytics import YOLO
# 指定模型目录,
# task = "detect" 指明要做预测任务
yolo = YOLO("../models/Ultralytics_YOLOv8/yolov8n.pt" ,task = "detect")
# 对图片/视频进行监测
# result=yolo(source="./ultralytics/ultralytics/assets/bus.jpg")
# 对屏幕进行检测
# result=yolo(source="screen")
# 对摄像头进行检测
# result=yolo(source=0)

# source 要识别内容图片的路径 
# save=True 对结果进行保存
# 对了这个返回结果可以自己输出下
# 包含的就是识别的信息,
# 自己可以根据结果做个服务什么的用
result=yolo(source="../ultralytics/ultralytics/assets/bus.jpg",save=True)

运行脚本,查看结果

python hello_yolo_demo.py

这里是结果文件的保存路径,也可以直接用编辑器直接打开看下到这个目录。

模型训练(训练模型)

数据集格式

数据集的话需要用到labelme这里自己可以搜索下如何使用,我这里直接是用的自己准备好的。然后需要在看下训练数据的配置如图,训练集和验证集的存储目录用自己的,还有打标签的类型改下,最后是标签集合。

train: ../datasets/yhtj/all/images/train
val: ../datasets/yhtj/all/images/val

nc: 10
names: ['barrel','bot','head','dead','fork','EXIT','dead001','dead002','generator','jacket']

训练脚本

这里的脚本主要看下epochs=50, # 训练轮数就行,一般设置大点就行,相当于多练一会,模型效果会更好。其它的默认就好。(还有就是如果是无卡模式记得切成gpu模型,就是关机正常点打开。)

touch yolo_train_demo.py
# 这是模型用的训练数据集配置(课本)
touch dataset.yaml
from ultralytics import YOLO

# 加载预训练的 YOLOv8n 模型
model = YOLO('../models/Ultralytics_YOLOv8/yolov8n.pt')

# 开始训练
results = model.train(
    data='./dataset.yaml',  # 数据集配置文件路径
    epochs=50,  # 训练轮数
    #imgsz=640,  # 输入图像的大小
    batch=-1,  # 批次大小
    device=0  # 使用 GPU 进行训练,若使用 CPU 则设置为 'cpu'
)
python yolo_train_demo.py

这里运行完,会输出模型预测目录。

训练测试脚本

这里自己训练好的模型路径,注意自己改下,看下上步训练好的模型保存目录。

touch use_train_yolo_demo.py
from ultralytics import YOLO

yolo = YOLO("/root/autodl-tmp/yolo_demo/runs/detect/train4/weights/last.pt" ,task = "detect")
# 对图片/视频进行监测
# result=yolo(source="./ultralytics/ultralytics/assets/bus.jpg")
# 对屏幕进行检测
# result=yolo(source="screen")
# 对摄像头进行检测
# result=yolo(source=0)

# save=True 对结果进行保存
result=yolo(source="/root/autodl-tmp/datasets/Vehicle_dataset/all/images/test/1041.jpg",save=True)
python use_train_yolo_demo.py

您可能感兴趣的与本文相关的镜像

CLIP-GmP-ViT-L-14编码模型

CLIP-GmP-ViT-L-14编码模型

图像识别
CLIP

CLIP-GmP-ViT-L-14编码模型` 是一个图文双塔编码模型,适合做图文匹配、零样本分类和跨模态检索演示。本镜像已经完成 Web 部署,打开页面即可上传图片并测试图文表征能力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静水深渊

随便

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值