yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别

这篇具有很好参考价值的文章主要介绍了yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本次开源计划主要针对大学生无人机相关竞赛的视觉算法开发。
开源代码仓库链接:https://github.com/zzhmx/yolov5-tracking-xxxsort.git
先按照之前的博客配置好环境:
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(一)–环境配置GPU版本
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(一)–环境配置CPU版本

1.训练模型

在下载好的代码包中,如果要训练自己的检测模型,需要在程序包中的yolov5文件夹中操作,这个文件夹里面的程序其实就是yolov5的开源代码,想要训练自己模型可以看下面的流程:
这是yolov5文件夹里面的文件。
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

1)在yolov5-5.0创建一个新的文件夹,比如person_data,在此文件夹下创建
labels (存放labelimg生成的标注文件)
images (存放你采集好的用于标注的图片)
ImageSets (在此文件夹再创建一个Main文件夹)

用手机拍摄两段包含你的识别目标的视频,一段40秒左右,一段10秒左右,40秒的视频用于训练。拍摄完成上传至电脑

2)安装darklabel,https://download.csdn.net/download/weixin_45398265/88860850
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

3)
标注完所有图像之后就可以查看标记结果了,最终得到txt格式的标注数据
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

运行下面的代码生成训练集、验证集和测试集:

# coding:utf-8
import os
import random
import argparse
from os import getcwd

parser = argparse.ArgumentParser()
#txt文件的地址,根据自己的数据进行修改
parser.add_argument('--xml_path', default='labels', type=str, help='input xml label path')
#数据集的划分,地址选择自己数据下的ImageSets/Main
parser.add_argument('--txt_path', default='ImageSets/Main', type=str, help='output txt label path')
opt = parser.parse_args()

trainval_percent = 0.8
train_percent = 0.8
xmlfilepath = opt.xml_path
txtsavepath = opt.txt_path
total_xml = os.listdir(xmlfilepath)
if not os.path.exists(txtsavepath):
    os.makedirs(txtsavepath)

num = len(total_xml)
list_index = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list_index, tv)
train = random.sample(trainval, tr)

file_trainval = open(txtsavepath + '/trainval.txt', 'w')
file_test = open(txtsavepath + '/test.txt', 'w')
file_train = open(txtsavepath + '/train.txt', 'w')
file_val = open(txtsavepath + '/val.txt', 'w')

for i in list_index:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        file_trainval.write(name)
        if i in train:
            file_train.write(name)
        else:
            file_val.write(name)
    else:
        file_test.write(name)

file_trainval.close()
file_train.close()
file_val.close()
file_test.close()
 
sets = ['train', 'val', 'test']
abs_path = os.getcwd()
print(abs_path)
for image_set in sets:
    image_ids = open('//home//jcfh//Desktop//yolov5-5.0//map_gongxunsai//ImageSets//Main//%s.txt' % (image_set)).read().strip().split()# 改成你自己的Main路径
    list_file = open('//home//jcfh//Desktop//yolov5-5.0//map_gongxunsai//%s.txt' % (image_set), 'w')# 改成你自己的ImageSets路径
    for image_id in image_ids:
        list_file.write(abs_path + '//images//%s.jpg\n' % (image_id))
    list_file.close()

运行代码后,生成三个txt文件
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

3)在yolov5目录下的data文件夹下新建一个person.yaml文件(可以自定义命名)
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

按照这种格式,改上你自己的路径,nc为你训练的模型一共有几类,如果只是检测人那就是1,names是你的目标的名字,如person。

4)在yolov5-5.0目录下的model文件夹下是模型的配置文件,这边提供s、m、l、x版本,逐渐增大(随着架构的增大,训练时间也是逐渐增大),假设采用yolov5s.yaml,只用修改一个参数,把nc改成自己的类别数;
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

自定义数据集就算是创建完毕了,接下来就是训练模型了。

当然标注视频文件也可以使用基于大模型的自动标注的软件会省力一些,有兴趣的同学自己探索。数据集整理好,yaml配置文件改好,将train.py中的参数改好就可以跑起来进行训练了。

5)在跟踪那一层文件夹里面weights文件夹里面有三个预训练模型:yolov5s.pt、yolov5m.pt、yolov5l.pt,官方还有一个yolov5x.pt是最大的一个,可以自己去官方下载。s是最轻量化的,我们假设使用该模型。我们需要修改train.py程序里面的几个参数:
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

epochs:指的就是训练过程中整个数据集将被迭代多少次,也就是训练轮次。第一次可以先设成100,生成的文件在runs/train文件夹的exp文件下,每运行一次训练代码,exp的序列号就会加一,如exp1,exp2。。。。里面的weights文件夹保存的best.pt就是你训练生成的最优模型。
batch-size:一次看完多少张图片才进行权重更新,梯度下降的mini-batch,显卡不行你就调小点,尽量调到让GPU所有显存都被用满,可以在任务管理器查看gpu使用情况。
cfg:存储模型结构的配置文件
data:存储训练、测试数据的文件
img-size:输入图片宽高,显卡不行你就调小点。
rect:进行矩形训练
resume:恢复最近保存的模型开始训练
nosave:仅保存最终checkpoint
notest:仅测试最后的epoch
evolve:进化超参数
bucket:gsutil bucket
cache-images:缓存图像以加快训练速度
weights:权重文件路径
name: 重命名results.txt to results_name.txt
device:cuda device, i.e. 0 or 0,1,2,3 or cpu
adam:使用adam优化
multi-scale:多尺度训练,img-size +/- 50%
single-cls:单类别的训练集

如果有报错:ImportError: cannot import name ‘COMMON_SAFE_ASCII_CHARACTERS’ from ‘charset_normalizer.constant’
可以在你的虚拟环境中运行:

pip install chardet

6)运行detect.py程序
yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别,YOLO,算法,python,深度学习,机器学习,计算机视觉,目标检测

weights为你要使用的yolov5模型路径
source为你要推理的视频或者图像或者摄像头路径,摄像头的话填0即可。在这里可以放上那段10秒视频的路径。可以选中你的视频文件,右击鼠标,在属性里面看路径,但是别忘了路径要加上你的文件名,例如你的test.mp4文件在属性里看到的路径是F:\yolo_tracking-8.0但是填写的时候要写成:F:\yolo_tracking-8.0\test.mp4
data 改成你之前创建的person.yaml的路径
conf-thres 是检测的阈值,置信度超过这个数才会显示对象
view-img 是设置检测视频的时候是否实时展示结果,在view-img逗号后面可以加一个:文章来源地址https://www.toymoban.com/news/detail-835834.html

default=True,

到了这里,关于yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5改进 | 融合改进篇 | 华为VanillaNet + BiFPN突破涨点极限

    本文给大家带来的改进机制是 华为VanillaNet 主干 配合 BiFPN 实现融合涨点,这个主干是一种注重极简主义和效率的神经网络我也将其进行了实验, 其中的BiFPN不用介绍了从其发布到现在一直是比较热门的改进机制,其主要思想是通过多层级的特征金字塔和双向信息传递来提高

    2024年02月20日
    浏览(38)
  • YOLOv5改进 | 检测头篇 | ASFFHead自适应空间特征融合检测头(全网首发)

    本文给大家带来的改进机制是利用 ASFF改进YOLOv5的检测 头 形成新的检测头 Detect_ASFF ,其主要创新是引入了一种自适应的空间特征融合方式,有效地过滤掉冲突信息,从而增强了尺度不变性。经过我的实验验证,修改后的检测头在所有的检测目标上均有大幅度的涨点效果,此

    2024年01月22日
    浏览(57)
  • 涨点技巧:Detect系列---Yolov5/Yolov7加入ASFF特征金字塔融合方法,涨点明显

    目录   1.ASFF介绍  2.ASFF加入Yolov5提升检测精度 2.1 ASFF加入common.py中: 2.2 ASFF加入yolo.py中:  2.3 修改yolov5s_asff.yaml 2.4 与cbam结合 进一步提升检测精度 🏆 🏆🏆🏆🏆🏆🏆Yolov5/Yolov7成长师🏆🏆🏆🏆🏆🏆🏆 🍉🍉进阶专栏Yolov5/Yolov7魔术师:http://t.csdn.cn/D4NqB 🍉🍉 ✨✨✨

    2023年04月08日
    浏览(46)
  • YOLOV5改进:顶刊TIP 2023 | CFP:即插即用的多尺度融合模块,有效涨点!

    特征金字塔网络现代识别系统中的一种基础网络结构,可有效地用于检测不同尺度的物体。 SSD  是最早使用特征金字塔结构表示多尺度特征信息的方法之一, FPN  则依赖于自下而上的特征金字塔结构,通过建立自上而下的路径和横向连接从多尺度高级语义特征图中获取特征

    2024年02月12日
    浏览(39)
  • YOLOv5改进 | Neck篇 | 利用ASF-YOLO改进特征融合层(适用于分割和目标检测)

    本文给大家带来的改进机制是 ASF-YOLO(发布于2023.12月份的最新机制) ,其是特别设计用于细胞实例分割。这个模型通过结合空间和尺度特征,提高了在处理细胞图像时的准确性和速度。在实验中, ASF-YOLO在2018年数据科学竞赛 数据集上取得了卓越的分割准确性和速度,达到了

    2024年01月15日
    浏览(47)
  • YOLOv5独家改进:多层次特征融合(SDI)结合PConv、DualConv、GSConv,实现二次创新 | UNet v2最新论文

    💡💡💡 本文独家改进: 多层次特征融合(SDI)高效结合DualConv、PConv、GSConv等实现二次创新 1)替代原始的Concat;      收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡💡💡 2024年计算机视觉顶会创新

    2024年01月20日
    浏览(72)
  • yolov8 tracking编码为web 和 rtsp流输出

    打开cmd 输入 conda env list 输入 conda activate py38 查看 nvidia-smi 查看 nvcc,如下图所示 cuda为11.7 ,为确认可以查看program files 下面的cuda 安装,看到11.7 就行了,读者可以自行确认自己的版本。 查看nvidia-smi 打开yolov8 track以后,发现速度超级慢, 打开cpu占用率奇高,gpu为零, 打开

    2024年01月22日
    浏览(33)
  • 如何运行代码mikel-brostrom/yolov8_tracking实现目标识别和跟踪?

    https://github.com/mikel-brostrom/yolov8_tracking 项目名:Real-time multi-object tracking and segmentation using Yolov8 (1)它的识别和分割是YOLO8完成的。它的多目标追踪是由后面四种算法实现的(botsort,bytetrack,ocsort,strongsort) (2)它这个是实时的Real-time,识别、跟踪、分割的速度很快 这个代码是

    2024年02月02日
    浏览(37)
  • 如何为目标识别追踪项目mikel-brostrom/yolov8_tracking增加计数功能?

    等待被改造的代码“mikel-brostrom/yolov8_tracking”地址GitHub - mikel-brostrom/yolo_tracking: A collection of SOTA real-time, multi-object tracking algorithms for object detectors 模仿的代码“Yolov5 + Deep Sort with PyTorch”地址:https://github.com/dongdv95/yolov5/tree/master/Yolov5_DeepSort_Pytorch 如果你想了解YOLOv8的模型细节

    2024年02月04日
    浏览(34)
  • YOLOv5 - yolov5s.yaml 文件

    🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营 🍖 原作者:[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/) 🚀 文章来源:[K同学的学习圈子](https://www.yuque.com/mingtian-fkmxf/zxwb45) 基于深度学习的目标检测模型的结构:输入-主干-脖子

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包