位置: IT常识 - 正文

【计算机视觉】目标检测—yolov5自定义模型的训练以及加载(计算机视觉就业前景)

编辑:rootadmin
【计算机视觉】目标检测—yolov5自定义模型的训练以及加载 1.摘要

推荐整理分享【计算机视觉】目标检测—yolov5自定义模型的训练以及加载(计算机视觉就业前景),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:计算机视觉就业前景,计算机视觉的未来发展方向有哪些,计算机视觉技术的应用,计算机视觉技术,计算机视觉的未来发展方向有哪些,计算机视觉就业前景,计算机视觉技术,计算机视觉技术的应用,内容如对您有帮助,希望把文章链接给更多的朋友!

目标检测是计算机视觉主要应用方向之一。目标检测通常包括两方面的工作,首先是招到目标,然后就是识别目标。目标检测可以分为单物体检测和多物体检测。常用的目标检测方法分为两大流派:一步走(one_stage)算法:直接对输入的图像应用算法并输出类别和相应的定位,典型的算法有yolo,ssd;两步走(two_stage)算法:先产生候选区域,然后在进行CNN分类,代表的算法有R-CNN。 本文重点讲述yolov5如何应用在实际项目中,主要包括两大部分,第一部分:如何使用yolov5训练自定义模型;第二部分:选练好自己的模型,如何加载并解读模型。

2.yolov5训练自定义模型【计算机视觉】目标检测—yolov5自定义模型的训练以及加载(计算机视觉就业前景)

首先,去yolov5官网(https://github.com/ultralytics/yolov5)进行下载官方文件,也可以通过克隆地址(git clone https://github.com/ultralytics/yolov5.git)进行获取,并且下载预训练权重文件,放到yolov5文件下。结果如图: 下载好所有的文件后,接下来,我们需要进行配置环境,yolov5要求python>=3.7,pytorch>=1.7,我们可以通过 pip3 install -r requirements.txt进行其他安装包的安装,完成这些安装后,我们可以通过运行yolov5底下的detect.py文件来查看,环境是否配置成功。如果成功,则可以对data/image下的图片文件完成检测。原始模型可以识别80类目标,如下: 通过以上,我们可以检测预训练模型里面的目标,比如:球,人,大巴车等等,那该如何训练我们自己的数据集呢?通过labelImg将图片标注好,标签格式为yolo格式标签。将标注好的数据放在datasets/dataset_new/images,标签放在datasets/dataset_new/labels,各自底下分别有train,test,val三个文件。image格式为jpg格式,labels为文本文档。 一个图一个txt标注文件,每行一个物体,每行数据格式:类别id、x_center y_center width height,xywh必须归一化(0-1),其中x_center、width除以图片宽度,y_center、height除以画面高度,类别id必须从0开始计数。如下图所示。 准备好datasets文件后,将yolov5同级目录。YOLO会自动将…/datasets/dataset_new/images/train/1.jpg中的/images/替换成/labels/以寻找它的标签,如…/datasets/dataset_new/labels/train/1.txt。 准备好数据集后,将yolov5/data/coco128.yaml复制一份,重新命名为coco_1.yaml,并修改里面的文件路径和类别名称、数目。 复制models下对应模型的yaml文件,重命名,并修改nc值。 数据准备完成,模型需要修改的参数也完成了修改,接下里我们可以进行训练了train.py。 我们可以对trian.py里面的参数(如下图)按照自己的想法进行修改,也可以选择默认值。 训练需要一些时间,训练完成后,将得到我们需要的pt文件。下一步我们将加载与解读我们的模型。

3.模型的加载与解读

使用torch.hub.load()加载我们训练好的模型,如下,通过torch.hub.load进行加载模型,将图片导入,得到的results。可以通过results.pandas().xyxy[0]解读,结果是个张量,前四列为目标框的左上角和右下角,confidence为置信度,class为类别编号,name为类别名称。

import torch# Modelmodel = torch.hub.load('ultralytics/yolov5', 'yolov5s')# Imageim = 'https://www.yuucn.com/wp-content/uploads/2023/04/1681889905-fc0dd6fac1776eb.jpg'# Inferenceresults = model(im)results.pandas().xyxy[0]# xmin ymin xmax ymax confidence class name# 0 749.50 43.50 1148.0 704.5 0.874023 0 person# 1 433.50 433.50 517.5 714.5 0.687988 27 tie# 2 114.75 195.75 1095.0 708.0 0.624512 0 person# 3 986.00 304.00 1028.0 420.0 0.286865 27 tie

下面,是我加载自己训练模型的演示结果:

import cv2import torchimport timeimport numpy as npmodel = torch.hub.load('./yolov5', 'custom', path='./weights/yolov5n_1.pt',source='local')model.conf = 0.4cap = cv2.VideoCapture(0)fps_time = time.time()while True: ret,frame = cap.read() frame = cv2.flip(frame,1) img_cvt = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) results = model(img_cvt) # print(results.pandas().xyxy[0].to_numpy())# tensor-to-numpy results_ = results.pandas().xyxy[0].to_numpy() i = 0 for box in results_: l,t,r,b = box[:4].astype('int') confidence = str(round(box[4]*100,2))+"%" cls_name = box[6] if cls_name == "person": i += 1 cv2.rectangle(frame,(l,t),(r,b),(0,255,0),2) cv2.putText(frame,cls_name + "-" + confidence,(l,t),cv2.FONT_ITALIC,1,(255,0,0),2) cv2.putText(frame, "person:"+str(i), (10, 20), cv2.FONT_ITALIC, 1, (0, 0, 0), 2) now = time.time() fps_txt = 1/(now - fps_time) fps_time = now cv2.putText(frame,str(round(fps_txt,2)),(50,50),cv2.FONT_ITALIC,1,(0,255,0),2) cv2.imshow("result",frame) if cv2.waitKey(10) & 0xFF == ord("q"): breakcap.release()cv2.destroyAllWindows()

本篇主要给大家讲解如何使用yolov5端到端这个模型,希望对大家有多帮助。有疑问,可以进行交流。

本文链接地址:https://www.jiuchutong.com/zhishi/283630.html 转载请保留说明!

上一篇:1050ti能玩绝地求生吗,1050ti绝地求生评测(1050ti能玩绝地求生吗)

下一篇:【Vant4】Vant4 样式不显示问题 && Toast 轻提示不显示 && Notify 消息提示不显示(vant3.0)

  • 小米平板5pro怎么开启省电模式(小米平板5pro怎么切换电脑模式)

    小米平板5pro怎么开启省电模式(小米平板5pro怎么切换电脑模式)

  • 希沃投屏如何使用(希沃投屏怎么投屏图片)

    希沃投屏如何使用(希沃投屏怎么投屏图片)

  • 华为p40pro支持呼吸灯吗(华为p40pro呼叫限制怎么设置)

    华为p40pro支持呼吸灯吗(华为p40pro呼叫限制怎么设置)

  • 扫描件与照片的区别(扫描件和拍照件具有同样的效力吗)

    扫描件与照片的区别(扫描件和拍照件具有同样的效力吗)

  • 苹果铃声导入音质变了(iphone手机铃声导入)

    苹果铃声导入音质变了(iphone手机铃声导入)

  • tws1怎么设置单耳机模式(tws1单耳和双耳怎么切换)

    tws1怎么设置单耳机模式(tws1单耳和双耳怎么切换)

  • 苹果平板5代上市时间(iphone平板5代)

    苹果平板5代上市时间(iphone平板5代)

  • 超链接是一种什么关系(超链接的主要作用是什么)

    超链接是一种什么关系(超链接的主要作用是什么)

  • 卖家拉黑买家能投诉吗(卖家拉黑买家能收到钱吗)

    卖家拉黑买家能投诉吗(卖家拉黑买家能收到钱吗)

  • 可能不支持此配件充电解决办法(可能不支持此配件怎么解决 苹果充电)

    可能不支持此配件充电解决办法(可能不支持此配件怎么解决 苹果充电)

  • 错误675怎么解决(错误678解决方法)

    错误675怎么解决(错误678解决方法)

  • word excel ppt啥意思

    word excel ppt啥意思

  • 华为平板可以用笔写吗(华为平板可以用procreate吗)

    华为平板可以用笔写吗(华为平板可以用procreate吗)

  • 网站服务器出错是什么意思(网站服务器出错怎么处理)

    网站服务器出错是什么意思(网站服务器出错怎么处理)

  • 语音激活阈值什么意思(语音激活阈值啥意思)

    语音激活阈值什么意思(语音激活阈值啥意思)

  • hw-100400c00充电器是哪个型号手机(hw-100400c00充电器是多少瓦的)

    hw-100400c00充电器是哪个型号手机(hw-100400c00充电器是多少瓦的)

  • 小米键盘变小了怎么弄大(小米键盘变小了怎么还原)

    小米键盘变小了怎么弄大(小米键盘变小了怎么还原)

  • vivo智慧识屏怎么用(vivo智慧识屏怎么保存图片)

    vivo智慧识屏怎么用(vivo智慧识屏怎么保存图片)

  • 支付宝实名认证上限怎么办(支付宝实名认证可以更改吗)

    支付宝实名认证上限怎么办(支付宝实名认证可以更改吗)

  • nova5pro录屏设置方法(nova5pro手机录屏)

    nova5pro录屏设置方法(nova5pro手机录屏)

  • 笔记本安内存条步骤(笔记本安内存条要多少钱)

    笔记本安内存条步骤(笔记本安内存条要多少钱)

  • 想学计算机编程怎样起步(想学计算机编程从什么学起)

    想学计算机编程怎样起步(想学计算机编程从什么学起)

  • 快手滑动看下一个视频怎么设置(快手滑动看下一页怎么弄)

    快手滑动看下一个视频怎么设置(快手滑动看下一页怎么弄)

  • 如何添加候补需求(如何添加候补需求12306)

    如何添加候补需求(如何添加候补需求12306)

  • Vue中,一个组件调用其他组件的方法(非父子组件)(vue中的组件)

    Vue中,一个组件调用其他组件的方法(非父子组件)(vue中的组件)

  • 税务稽查以前年度进项税额转出
  • 公司给个人的补偿金需要交税吗
  • 有主营业务收入就一定有销项税吗
  • 影响年初未分配利润的事项
  • 会计净额法和总额法
  • 收到电子退库如何操作
  • 进项税加计扣除账务处理
  • 技术转让所得的税收优惠
  • 交易性金融资产的交易费用计入哪里
  • 成品油发票如何同步
  • 财务报表实收资本
  • 增值税一般纳税人证明文件
  • 无形资产的初始计量和后续计量
  • 一张报关单上最多不能超过
  • 资金账簿怎么交
  • 餐饮业个体工商户怎么交税
  • 预付帐款科目如何转平?
  • 合伙制创投企业与合伙制创投基金
  • 民间非营利组织会计科目
  • 专项应付款与补助的区别
  • 收到对方公司的货款怎么记账
  • 监事会职权口诀
  • php如何定义一个常量?常量名有哪些命名规则?
  • php代码封装成dll
  • win11自动更新卡在94%
  • 出差补贴是必须的吗
  • web前端有哪些
  • 企业规模扩大后更易于管理吗
  • 前端没思路怎么办
  • 银行贷款成本高
  • 机关事业单位体检费用标准规定
  • 专项储备怎么理解
  • 记录一次排查PHP脚本执行卡住的问题
  • opencv拼接图片
  • function函数的定义
  • ln s命令
  • 外经证过期没有注销罚款多少
  • 职工福利费怎么处理
  • 营业收入为什么不包括营业外收入
  • ps填充内容识别在哪
  • 劳务公司承接项目的方案怎么写
  • mysql安装总结
  • 织梦添加文章如何修改高级参数
  • 将房产以股权形式出售
  • 开票资料需要哪些东西
  • 生活服务的行业
  • 转让厂房需要交哪些税
  • 转让旧固定资产可以开专票吗
  • 土地承包费摊销当月摊销吗
  • 预交税会计分录
  • 土地增值税的预征和清算
  • 收到科技局研发项目资金计入什么科目
  • 产品质量问题扣款账务处理
  • 建筑企业预缴增值税款
  • 建筑业分项目核算会计账务处理
  • 转让无形资产使用权税率
  • 进口关税税款的计税依据
  • 投标保证金退回是不是没中标
  • ubuntu20.04
  • SQL里类似SPLIT的分割字符串函数
  • sql转换
  • window10预览在哪里找
  • blg是什么文件
  • window102021年更新计划
  • linux进程详解
  • 磁盘限制
  • win7无线网络开关在哪里
  • linux中的top命令
  • window无法正常启动怎么办
  • win7怎么禁止程序自启动
  • 命令行批处理文件
  • android长按app快捷功能
  • python怎么获取命令行参数
  • jsoni
  • 新办企业没有员工要报个人所得税吗
  • 车辆购置税如何入账
  • 个人所得税工资扣税标准
  • 去税务局补缴税款医疗费不带证件可以吗
  • 税务筹划企业所得税案例分析题
  • 企业演讲稿 英文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设