当前位置: 首页 > news >正文

邓卅做网站在什么地方/免费发布广告

邓卅做网站在什么地方,免费发布广告,网页布局有哪几种,求推荐公司网站建设刚开始跟着网上的教程做,把环境安装错了,后来直接用GitHub的官方教程来安装环境。 地址是yolov5官方团队代码及教程,看readme文件就可以。 系列文章: 基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集…

刚开始跟着网上的教程做,把环境安装错了,后来直接用GitHub的官方教程来安装环境。

地址是yolov5官方团队代码及教程,看readme文件就可以。

系列文章:

基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注

基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换

目录

环境搭建

数据集格式转换

文件夹配置

标签文件的格式转换

更改配置文件

训练模型


环境搭建

       很简单,不要想的复杂。

       先下载完整的官方代码。地址在开头,下完解压。

       用conda为例,新建一个python3.8的版本的环境,可以就叫yolov5,然后进入下好的代码文件夹根目录,命令行激活新建的yolov5这个环境,并运行下面这句话来安装所有的必须的依赖包:

pip install -r requirements.txt

       没错,你没看错也没想错,就是在conda环境里用pip安装,我刚开始不知道,用conda install去挨个安装,最后还是失败重来,真的浪费时间。

       等待全部安装好后,应该是这个效果:

        如果下载太慢或者网络问题失败报错,建议进行换源。教程在我另外的博客中:

Anaconda使用conda连接网络时,出现网络错误CondaHTTPError(包括Anaconda安装与入门)

使用Python的pip方法安装第三方包时,很慢或者失败的问题

数据集格式转换

文件夹配置

        环境搭建好后,在项目的data文件夹中,新建mydatas文件夹,用来放自己做好的数据集。

        在mydatas文件夹中,新建images文件夹和labels文件夹。

        在images文件夹和labels文件夹中,新建train2021文件夹和val2021文件夹。

        效果为:

        把数据集的图片直接放入images/train2021/中(也可以留出一部分做验证集、测试集)。

标签文件的格式转换

        这一步很重要,大部分报错都因为这个。而最终判断是否成功运行起来的标志就是,如果你用的是笔记本,散热风扇有没有突然满速运转hhh

        接下来把标签文件放入 labels/train2021/中,但是不是把上一篇文章的一堆json文件放过来,而是把那些json转换为txt文件,因为yolov5需要的标签文件就是txt文件。这里借用一张知乎的博客截图,需要注意的是这一项需要把字符串对应顺序换成012345的数字,不然报错。

       需要注意的是json文件经过loads方法读取后是dict类型,而如果里面有嵌套的第二层json数据,会读取为list类型,不能通过简单的[‘key’]取出数据,需要安装并用jsonpath模块(简单有效),以   $..  模式寻找第二层子节点。

load() 或 loads()  :用于读取json文件,返回的是dict格式。
dump() 或 dumps()  :用于写入json文件,写入的是str格式。

       jsonpath基本语法:

value = jsonpath(theJsonData, '$..label')

        后面的 描述 的规则是:

       以下是多个文本内容的文件的合并代码以及格式转换代码。

# 合并一个文件夹下的多个文本内容形式的文件  
# 通用于txt、csv、json等的简单合并import osfiledir = './yourdir'
filenames = os.listdir(filedir) # 获取当前文件夹中的文件名称列表
f = open('result.json','w') # 打开当前目录下的result文件,如果没有则创建
i = 0
for filename in filenames: # 先遍历文件名i += 1print(i)if i > 0:filepath = filedir + '\\' + filenameprint(filepath)#遍历单个文件,读取行数for line in open(filepath,encoding = 'gbk', errors = 'ignore'):# print(str(line))f.writelines(line)f.write('\n') # 最后换行
f.close() # 关闭文件
# 转换json为txt,并按规则计算坐标import os 
import json
from jsonpath import jsonpathfiledir = ''./yourdir/'
str2float = {'yourLabel_1':0, 'yourLabel_2':1, 'yourLabel_3':2, 'yourLabel_4':3, 'yourLabel_5':4, 'yourLabel_6':5}def jsontotxt(jsonfile):txt_path = './txts/'imginfo = json.load(open(filedir + jsonfile))fn = txt_path + imginfo['imagePath'].replace('.jpg', '.txt')file = open(fn, 'a')print(fn)height = imginfo['imageHeight']weight = imginfo['imageWidth']category = jsonpath(imginfo, '$..label')[0] # 最有效,取子节点,返回列表(假列表),取第一个就是strcategory = str2float[category]# 通过字典把字符串格式的标签名换成012345,解决 could not convert string to float 的报错pointsValue = jsonpath(imginfo, '$..points') # 有的图标了多个矩形,是个真列表for ap in pointsValue: # 将坐标换算成yolov5的需求格式:相对坐标x1,y1 = ap[0]x2,y2 = ap[1]x = ((x2+x1)/2)/weighty = ((y2+y1)/2)/heightw = (x2-x1)/weighth = (y2-y1)/heightx = round(x,8)y = round(y,8)w = round(w,8)h = round(h,8)file.write(str(category) + ' ')file.write(str(x) + ' ')file.write(str(y) + ' ')file.write(str(w) + ' ')file.write(str(h) + '\n')file.close()if __name__ == "__main__":filenames = os.listdir(filedir)for filename in filenames:jsontotxt(filename) # 处理

更改配置文件

       接下来修改配置文件(也可以自己新建),由于我还是初学者,所以先直接修改模板文件。

       1、项目的data目录下的coco128.yaml文件修改:

       我们需要修改的是  train: 和 val: 和 nc: 和 names: [ 'a', 'b', 'c'] 四行,分别对应训练图片的路径,验证图片的路径,以及数据集的类别的数量,和那些类别的名字。改完的效果例子(sm隐藏):

       2、项目的models目录下的yolov5s.yaml(也可选择其他的模型方法)文件修改:

       这个文件只需要修改 nc: 那行,跟上一个文件对应就可以。改完的例子:

       3、修改时需要注意的问题是,train: val: 以及 nc: name: 的后面要有一个空格,原来的模板里就有,修改的时候不要删除就可以,跟后面的路径和数字隔开,不然会报错。

训练模型

       在项目根目录运行命令,如果报错就按照错误信息修改命令或文件,或依赖包,或者重新配置环境。

python train.py --img 640 --batch 16 --epochs 5 --data ./data/coco128.yaml --cfg ./models/yolov5s.yaml --weights weighs/yolov5s.pt

       有点长,我们分开解读一下参数。 

–img:输入网络的图片经预处理后的照片尺寸
–batch:每次输入网络的照片数量,这里如果太大了会超过gpu的显存,根据实际情况调整
–epoch:代表要训练的循环次数,根据你的想法调
–data:上一步更改的第一个文件
–cfg:上一步更改的第二个文件
–weights:开发团队训练好的模型,用来进行迁移训练,可以加上也可以不加,不加的话可能就是训练效果不好以及训练时长更长。

       官方训练好的模型需要自己fq去作者给的链接去下载,放在weighs文件夹中。

       模型的百度云链接:百度网盘 请输入提取码
       提取码:8g6c

       作者团队是利用tensorboard来可视化训练过程的,训练开始会在主目录生成一个runs文件.利用tensorboard打开即可(需要TensorFlow环境)。

tensorboard --logdir=./runs

       运行5个Epoch之后,就得到了一个初版训练模型(运行中的JPEG corrupt的报错不用管,会自动跳过然后继续训练)。 

参考文章:

https://github.com/ultralytics/yolov5/readme.md

yolov5训练自己的数据集(垃圾检测分类) - 知乎

https://blog.csdn.net/yapifeitu/article/details/106932503

相关文章:

基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换

刚开始跟着网上的教程做,把环境安装错了,后来直接用GitHub的官方教程来安装环境。 地址是yolov5官方团队代码及教程,看readme文件就可以。 系列文章: 基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集…...

Office project 2019安装

哈喽,大家好。今天一起学习的是project 2019的安装,Microsoft Office project项目管理工具软件,凝集了许多成熟的项目管理现代理论和方法,可以帮助项目管理者实现时间、资源、成本计划、控制。有兴趣的小伙伴也可以来一起试试手。…...

【leetcode-mysql】1251. 平均售价

题目: Table: Prices ---------------------- | Column Name | Type | ---------------------- | product_id | int | | start_date | date | | end_date | date | | price | int | ---------------------- (product_id,start_date,end_dat…...

Razor代码复用

1.布局&#xff08;Layout&#xff09;复用 Layout的使用&#xff0c;就像WebForm的模板页一样&#xff0c;甚至会更加简单&#xff0c;更加方便和明了。 要使用Layout&#xff0c;首先要在模板页相应的位置添加RenderBody()方法&#xff1a; <!DOCTYPE html><html la…...

PRL:上海交大张文涛团队实现量子材料相关突破

来源&#xff1a;上海交通大学 近期&#xff0c;上海交通大学物理与天文学院张文涛研究组利用自行研制的高能量和高时间分辨率角分辨光电子能谱系统对量子材料1T-TiSe₂电子结构进行了超快激光操控研究。利用超快光激发与电荷密度波相有关的相干声子&#xff0c;引起晶格内原子…...

impala中group_concat()函数无法对内容进行order by

描述&#xff1a; 使用的是impala数据库&#xff0c;假设有四笔数据&#xff0c;是无序的&#xff0c;业务上要求将其行转列成一行数据&#xff0c;并且里面的数据要按从小到大排序。 过程&#xff1a; 猜测&#xff1a; 数据库Oracle、Mysql、MSsql等支持group_concat中使…...

MySQL 数据库全局变量中文解释

NameValueauto_increment_incrementAUTO_INCREMENT 字段值的自增长步长值。auto_increment_offsetAUTO_INCREMENT 字段值的初始值。autocommit指示新连接的默认提交模式是否启用。automatic_sp_privileges控制是否在存储过程上创建或更改时自动分配特定权限。back_log在开始拒绝…...

设计模式之~状态模式

状态模式&#xff08;State&#xff09;&#xff0c;当一个对象的内部状态改变时允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 能够让程序根据不同的外部情况来做出不同的响应&#xff0c;最直接的方法就是在程序中将这些 可能发生的外部情况全部考虑到&#xff…...

【21JavaScript break 和 continue 语句】JavaScript中的break和continue语句:控制循环流程的关键技巧

JavaScript break 和 continue 语句 在JavaScript中&#xff0c;break和continue是两个关键字&#xff0c;用于控制循环结构的执行流程。 break语句 break语句用于中断循环并跳出循环体&#xff0c;使程序执行流程继续到循环之后的下一行代码。 在for循环中使用break for (…...

【SpringBoot】 设置随机数据 用于测试用例

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 设置随机数据——常用于测试用例 SpringBoot设…...

chatgpt赋能python:Python如何获取微信聊天记录

Python如何获取微信聊天记录 作为世界上最受欢迎的即时通讯工具之一&#xff0c;微信被大量用户使用。然而&#xff0c;微信聊天记录的备份和管理是一个重要的问题&#xff0c;特别是对于那些需要在工作和个人生活中快速查找重要信息的人来说。 幸运的是&#xff0c;Python编…...

VP记录:Codeforces Round 599 (Div. 2) A~D

传送门:CF 前提提要:无 A题:A. Maximum Square 刚开始的第一个想法是排序然后二分答案.但是一看范围才1000,果断直接使用暴力枚举. 考虑枚举最终的答案,然后记录有多少个 a i ai ai大于此值,然后判断能否构成一个正方形即可. #include <bits/stdc.h> using namespace…...

01-项目介绍

1、特色与亮点 千万级流量的大型分布式系统架构设计。 高性能、高并发、高可用场景解决方案。 2、项目安排 架构搭建&#xff0c;使用前后端分离架构。 功能开发&#xff0c;实现基本的选座排队购票功能。 引入高并发技术&#xff0c;实现高性能抢票。 3、项目收获 学习…...

《Python编程从入门到实践》学习笔记06字典

alien_0{color:green,points:5} print(alien_0[color]) print(alien_0[points])green 5 alien_0{color:green,points:5} new_pointsalien_0[points] print(fyou just earned {new_points} points!)you just earned 5 points! #添加键值对 alien_0{color:green,points:5} prin…...

为什么说程序员和产品经理一定要学一学PMP

要回答为什么说程序员和产品经理一定要学一学PMP&#xff1f;我们得先看一下PMP包含的学习内容。PMP新版考纲备考参考资料绝大多数涉及IT项目的敏捷管理理念。主要来源于PMI推荐的10本参考书&#xff1a; 《敏捷实践指南&#xff08;Agile Practice Guide&#xff09;》 《项目…...

LearnOpenGL-高级OpenGL-9.几何着色器

本人初学者&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 文章目录 几何着色器使用几何着色器造几个房子爆破物体法向量可视化 几何着色器 简介 在顶点和片段着色器之间有一个可选的几何着色器几何着色器的输入是一个图元&#xff08;如点或三角形&#xff09;的一…...

8.视图和用户管理

目录 视图 基本使用 用户管理 用户 用户信息 创建用户 删除用户...

bootstrapvue上传文件并存储到服务器指定路径及从服务器某路径下载文件

前记 第一次接触上传及下载文件&#xff0c;做个总结。 从浏览器上传本地文件 前端 本处直接将input上传放在了button内实现。主要利用了input的type“file” 实现上传框。其中accept可以限制弹出框可选择的文件类型。可限制多种&#xff1a; :accept"[doc, docx]&qu…...

Qt OpenGL(四十二)——Qt OpenGL 核心模式-GLSL(二)

提示:本系列文章的索引目录在下面文章的链接里(点击下面可以跳转查看): Qt OpenGL 核心模式版本文章目录 Qt OpenGL(四十二)——Qt OpenGL 核心模式-GLSL(二) 冯一川注:GLSL其实也是不断迭代的,比如像3.3版本中,基本数据类型浮点型只支持float型,而GLSL4.0版本开始就…...

C++基础讲解第八期(智能指针、函数模板、类模板)

C基础讲解第八期 代码中也有对应知识注释&#xff0c;别忘看&#xff0c;一起学习&#xff01; 一、智能指针二、模板1. 概念2.函数模板1. 函数模板和普通函数 3. 类模板1.类模板的定义2.举个例子3.举例 一、智能指针 举个栗子: 看下面代码, 当我们直接new一个指针时, 忘记dele…...

JMeter 测试 ActiveMq

JMeter 测试 ActiveMq 的资料非常少&#xff0c; 我花了大量的时间才研究出来 关于ActiveMq 的文章请参考我另外的文章。 版本号: ActiveMq 版本号: 5.91 Jmeter 版本号: 1.13 添加ActiveMq 的jar包 将 ActiveMq 下的 "activemq-all-5.9.1.jar" 复制…...

2023年4月和5月随笔

1. 回头看 为了不耽误学系列更新&#xff0c;4月随笔合并到5月。 日更坚持了151天&#xff0c;精读完《SQL进阶教程》&#xff0c;学系统集成项目管理工程师&#xff08;中项&#xff09;系列更新完成。 4月和5月两月码字114991字&#xff0c;日均码字数1885字&#xff0c;累…...

新Linux服务器安装Java环境[JDK、Tomcat、MySQL、Nacos、Redis、Nginx]

文章目录 JDK服务Tomcat服务MySQL服务Nacos服务Redis服务Nginx服务 说明&#xff1a;本文不使用宝塔安装 温馨提示宝塔安装命令&#xff1a;yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh JDK服务…...

精简总结:一文说明软件测试基础概念

基础概念-1 基础概念-2 目录 一、什么是软件测试&#xff1f; 二、软件测试的特点 三、软件测试和开发的区别 1、内容&#xff1a; 2、技能区别 3、工作环境 4、薪水 5、发展前景 6、繁忙程度 7、技能要求 四、软件测试与调试的区别 1、角色 2、目的 3、执行的阶…...

通过 Gorilla 入门机器学习

机器学习是一种人工智能领域的技术和方法&#xff0c;旨在让计算机系统能够从数据中学习和改进&#xff0c;而无需显式地进行编程。它涉及构建和训练模型&#xff0c;使其能够自动从数据中提取规律、进行预测或做出决策。 我对于机器学习这方面的了解可以说是一片空白&#xf…...

【二叉树】298. 二叉树最长连续序列

文章目录 一、题目1、题目描述2、基础框架3、原题链接 二、解题报告1、思路分析2、时间复杂度3、代码详解 三、本题小知识 一、题目 1、题目描述 给你一棵指定的二叉树的根节点 root &#xff0c;请你计算其中 最长连续序列路径 的长度。 最长连续序列路径 是依次递增 1 的路…...

Matlab论文插图绘制模板第100期—紧凑排列多子图(Tiledlayout)

不知不觉&#xff0c;《Matlab论文插图绘制模板》系列来到了第100期。 在此之前&#xff0c;其实我也没想到会有这么多种数据可视化表达方式&#xff0c;论文里不是折线图就是柱状图&#xff0c;单调的很。 假如研究生那会要是能遇到现在的自己&#xff08;分享的内容&#x…...

[2.0快速体验]Apache Doris 2.0 日志分析快速体验

1. 概述 应用程序、服务器、云基础设施、IoT 和移动设备、DevOps、微服务架构—最重要的业务和 IT 发展趋势帮助我们以前所未有的方式优化运维和客户体验。但这些趋势也导致由机器生成的数据出现爆炸式成长&#xff0c;其中包括日志和指标等&#xff0c;例如&#xff0c;用户交…...

MySQL学习-数据库创建-数据库增删改查语句-事务-索引

MySQL学习 前言 SQL是结构化查询语言的缩写&#xff0c;用于管理关系数据库(RDBMS)中的数据。SQL语言由IBM公司的Donald Chamberlin和Raymond Boyce于20世纪70年代开发而来&#xff0c;是关系型数据库最常用的管理语言。 使用SQL语言可以实现关系型数据库中的数据处理、数据…...

浏览器渗透攻击-渗透测试模拟环境(9)

介绍了浏览器供给面和堆喷射技术。 “客户端最流行的应用软件是什么,大家知道吗?” 这个简单的问题,你当然不会放过:“当然是浏览器,国内用得最多的估计还是 IE 浏览器,其实 360安全浏览器遨游啥的也都是基于IE内核的。” “OK,浏览器是客户端渗透攻击的首要目标,目前IE…...