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

网站建设资讯国内新闻摘抄

网站建设资讯,国内新闻摘抄,民宿网站开发数据流图,开发网页游戏平台yolov8已经出来好几个月了,并且yolov8从刚开始出来之后的小版本也升级好几次,总体变化不大,个别文件存放位置发生了变化,以下以最新版本的YOLOv8来详细学习和使用YOLOv8完成一次目标检测。 一、环境按照 深度学习环境搭建就不再…

yolov8已经出来好几个月了,并且yolov8从刚开始出来之后的小版本也升级好几次,总体变化不大,个别文件存放位置发生了变化,以下以最新版本的YOLOv8来详细学习和使用YOLOv8完成一次目标检测。

一、环境按照

深度学习环境搭建就不再重复了,可以查看上篇文章:如何安装 Anaconda,安装好之后使用conda命令创建一个新的环境,此环境还需包含PyTorch>=1.8,命令如下:

-- 创建环境
conda create -n yolov8 python=3.8-- 激活环境
conda activate yolov8

安装依赖:

pip install ultralytics--验证环境是否安装成功
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

安装完ultralytics之后就可以通过命令使用yolov8进行目标检测了,使用命令可以参考YOLO官网的快速开始教程:YOLO官网快速开始教程,但我们并不只是想用官方的模型权重,而是要训练和改进为自己的数据集,所以要下载下来源码进行运行改进

Yolov8 的源代码下载:

https://github.com/ultralytics/ultralytics

在这里插入图片描述
可见我这里环境已配置好,运行结果正常,并且运行结果保存在D:\git\ai\yolov8\ultralytics\runs\detect\predict

二、制作自己的数据集

2.1 准备工作

在ultralytics目录下新建data文件夹,下再新建四个文件夹,先说明这四个文件夹分别是用来干什么的,后面会往里面一一加入需要添加的内容。

  • Annotations文件夹:用来存放使用labelimg给每张图片标注后的xml文件,后面会讲解如何使用labelimg进行标注。
  • Images文件夹:用来存放原始的需要训练的数据集图片,图片格式为jpg格式。
  • ImageSets文件夹:用来存放将数据集划分后的用于训练、验证、测试的文件。
  • Labels文件夹:用来存放将xml格式的标注文件转换后的txt格式的标注文件。

先在根目录下创建好对应的文件夹,最终效果如图所示:
在这里插入图片描述

2.2 准备数据集

我做的是关于小麦病害的检测,根据采集的数据集将小麦病害划分为7个种类,分别为白粉病、赤霉病、叶锈病、条锈病、颖枯病、正常麦穗、正常麦叶。下图为数据集的一部分,共准备了四千多张原始图片,大约每个种类600张。此处会用到一个非常高效的重命名方式,就不用一张一张图片的进行重命名。批量重命名的代码如下。4000张图片准备好后就放在images文件夹中即可。
在这里插入图片描述

python批量重命名:

import os
class BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = 'D:\git\ultralytics\data\images'   #表示需要命名处理的文件夹self.new_path='D:\git\ultralytics\data\images\new'def rename(self):filelist = os.listdir(self.path)    #获取文件夹中文件的所有的文件total_num = len(filelist)           #获取文件长度(个数)i = 1  #表示文件的命名是从1开始的for item in filelist:if 1:  #初始的图片的格式为jpg格式的(或者源文件是png格式及其他格式,后面的转换格式就可以调整为自己需要的格式即可)src = os.path.join(os.path.abspath(self.path), item)     #连接两个或更多的路径名组件# dst = os.path.join(os.path.abspath(self.new_path), ''+str(i) + '.jpg')#处理后的格式也为jpg格式的,当然这里可以改成png格式dst = os.path.join(os.path.abspath(self.path), 'wheat' + format(str(i), '0>3s') + '.jpg')    #这种情况下的命名格式为0000000.jpg形式,可以自主定义想要的格式try:os.rename(src, dst)    #src – 要修改的目录名      dst – 修改后的目录名print('converting %s to %s ...' % (src, dst))i = i + 1except:continueprint ('total %d to rename & converted %d jpgs' % (total_num, i))if __name__ == '__main__':demo = BatchRename()demo.rename()

2.3 使用labelimg进行标注

labelimg的安装很简单,直接使用pip命令安装就可以

安装labelimgpip install labelimg启动
labelimg

Labelimg是一个图像标注工具,软件使用非常简单,安装成功后直接输入labelimg就可以直接启动
labelimg
使用说明:

(1)Open就是打开图片,我们不需要一张一张的打开,太麻烦了,使用下面的Open Dir

(2)Open Dir就是打开需要标注的图片的文件夹,这里就选择images文件夹

(3)change save dir就是标注后保存标记文件的位置,选择需要保存标注信息的文件夹,这里就选择Annotations文件夹

(4)特别注意需要选择好所需要的标注文件的类型。有yolo(txt), pascalVOC (xml)两种类型。yolo需要txt文件格式的标注文件,但是这里我们选择pascalVOC,后面再将xml格式的标注文件转化为所需的txt格式。

(5)按W键或点击Create\nRectBox开始创建矩形框,把要进行识别训练的区域标记出来就行,选好框后我们选是什么类别(predefined_classes文件,在里面提前写好要训练的类型的原因),整张图片的所有目标都标记好了之后按Ctrl+S或点击Save保存 ,然后切换下一张继续,快捷键为按D键,每一张图片标记后都要保存,这个过程是一个比较繁琐的过程

在这里插入图片描述
整张图片的所有目标都标记好了之后按Ctrl+S或点击Save保存 ,然后切换下一张继续,快捷键为按D键,每一张图片标记后都要保存,这个过程是一个比较繁琐的过程.

标注之后的效果如下图所示,会在目标目录生成对应的xml文件
在这里插入图片描述

2.4 4.数据集的划分

在ultralytics的根目录下创建一个脚本,创建一个split_train_val.py文件,运行文件之后会在imageSets文件夹下将数据集划分为训练集、验证集、测试集,里面存放的就是用于训练、验证、测试的图片名称。代码内容如下:

import os
import randomtrainval_percent = 0.9
train_percent = 0.9
xmlfilepath = 'data/Annotations'
txtsavepath = 'data/ImageSets'
total_xml = os.listdir(xmlfilepath)num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)ftrainval = open('data/ImageSets/trainval.txt', 'w')
ftest = open('data/ImageSets/test.txt', 'w')
ftrain = open('data/ImageSets/train.txt', 'w')
fval = open('data/ImageSets/val.txt', 'w')for i in list:name = total_xml[i][:-4] + '\n'if i in trainval:ftrainval.write(name)if i in train:ftrain.write(name)else:fval.write(name)else:ftest.write(name)ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

2.5 5.转换数据集格式

创建voc_label.py文件,他的作用:(1)就是把Annoctions里面的xml格式的标注文件转换为txt格式的标注文件,每个图像对应一个txt文件,文件每一行为一个目标的信息,包括class, x_center, y_center, width, height。

(2)就是运行后除了会生成转换后labels文件夹下的60张图片的txt文件,还会在data文件夹下得到三个包含数据集路径的txt文件,train.tx,tes.txt,val.txt这3个txt文件为划分后图像所在位置的绝对路径,如train.txt就含有所有训练集图像的绝对路径。

 
import xml.etree.ElementTree as ET
import os
from os import getcwdsets = ['train', 'val', 'test']
classes = ['High Ripeness','Low Ripeness','Medium Ripeness']
abs_path = os.getcwd()
print(abs_path)def convert(size, box):dw = 1. / (size[0])dh = 1. / (size[1])x = (box[0] + box[1]) / 2.0 - 1y = (box[2] + box[3]) / 2.0 - 1w = box[1] - box[0]h = box[3] - box[2]x = x * dww = w * dwy = y * dhh = h * dhreturn x, y, w, hdef convert_annotation(image_id):in_file = open('data/Annotations/%s.xml' % (image_id), encoding='UTF-8')out_file = open('data/labels/%s.txt' % (image_id), 'w')tree = ET.parse(in_file)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.iter('object'):# difficult = obj.find('difficult').textdifficult = obj.find('difficult').textcls = obj.find('name').textif cls not in classes or int(difficult) == 1:continuecls_id = classes.index(cls)xmlbox = obj.find('bndbox')b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),float(xmlbox.find('ymax').text))b1, b2, b3, b4 = b# 标注越界修正if b2 > w:b2 = wif b4 > h:b4 = hb = (b1, b2, b3, b4)bb = convert((w, h), b)out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')wd = getcwd()
for image_set in sets:if not os.path.exists('data/labels/'):os.makedirs('data/labels/')image_ids = open('data/ImageSets/%s.txt' % (image_set)).read().strip().split()list_file = open('data/%s.txt' % (image_set), 'w')for image_id in image_ids:list_file.write(abs_path + 'data/images/%s.jpg\n' % (image_id))convert_annotation(image_id)list_file.close()

2.6 编写数据集配置文件

创建 wheat.yaml
内容如下,其文件路径正是上文生成的划分配置集文件
nc代表类别数量,比如我这里是7个分类
names是每个分类名称

train: D:\git\ai\yolov8\data\train.txt
val: D:\git\ai\yolov8\data\val.txt
test: D:\git\ai\yolov8\data\test.txtnc: 7
names:0: Powdery Mildew  # 白粉病1: Scab            # 赤霉病2: Leaf Rust       # 叶锈病3: Stripe Rust     # 条锈病4: Glume Blotch    # 颖枯病5: Wheat Ear       # 正常麦穗6: Wheat Leaf      # 正常麦叶

到这一步,数据集就算制作好了!下一步就开始训练吧

三、训练自己的数据集

(1)yolo提供自己的指令模式,在调参方面十分方便,可以直接用命令来完成

yolo train data=你的配置文件(xx.yaml)的绝对路径 model=yolov8n.pt epochs=300 imgsz=640 batch=8 workers=0 device=0

(3)训练过程首先会显示你所使用的训练的硬件设备信息,然后下一段话则是你的参数配置,紧接着是backbone信息,最后是加载信息,并告知你训练的结果会保存在runs\detect\trainxx。如图所示,如果正常的话就会输出下面的信息
在这里插入图片描述
然后就能开始训练了!

下面的改进方法有时间再接着写,先吃饭去~


文章转载自:
http://silenus.bnpn.cn
http://metallic.bnpn.cn
http://surgicenter.bnpn.cn
http://heshvan.bnpn.cn
http://modelletto.bnpn.cn
http://killock.bnpn.cn
http://sherardize.bnpn.cn
http://kaleyard.bnpn.cn
http://prizewinner.bnpn.cn
http://irrigable.bnpn.cn
http://amadou.bnpn.cn
http://cnidoblast.bnpn.cn
http://impavid.bnpn.cn
http://stipular.bnpn.cn
http://photosurface.bnpn.cn
http://trophology.bnpn.cn
http://cotter.bnpn.cn
http://valour.bnpn.cn
http://wlm.bnpn.cn
http://animadvert.bnpn.cn
http://cerebella.bnpn.cn
http://rainspout.bnpn.cn
http://conspicuously.bnpn.cn
http://interwreathe.bnpn.cn
http://unasked.bnpn.cn
http://chupatti.bnpn.cn
http://irritably.bnpn.cn
http://recurvature.bnpn.cn
http://factor.bnpn.cn
http://lionly.bnpn.cn
http://golly.bnpn.cn
http://disbandment.bnpn.cn
http://dielectrophoresis.bnpn.cn
http://interamnian.bnpn.cn
http://spirograph.bnpn.cn
http://pageantry.bnpn.cn
http://saceur.bnpn.cn
http://indigence.bnpn.cn
http://arboraceous.bnpn.cn
http://astrogation.bnpn.cn
http://demesmerize.bnpn.cn
http://dermatology.bnpn.cn
http://chibchan.bnpn.cn
http://electrowinning.bnpn.cn
http://notgeld.bnpn.cn
http://inductivist.bnpn.cn
http://closet.bnpn.cn
http://tendence.bnpn.cn
http://intertie.bnpn.cn
http://gynaecoid.bnpn.cn
http://depersonalization.bnpn.cn
http://impassability.bnpn.cn
http://supraspinal.bnpn.cn
http://algolagnia.bnpn.cn
http://febricide.bnpn.cn
http://windcheater.bnpn.cn
http://dies.bnpn.cn
http://unshrinking.bnpn.cn
http://actinochemistry.bnpn.cn
http://blurt.bnpn.cn
http://intuitionism.bnpn.cn
http://sumptuosity.bnpn.cn
http://ecmnesia.bnpn.cn
http://structurism.bnpn.cn
http://finisher.bnpn.cn
http://suprarenal.bnpn.cn
http://choreopoem.bnpn.cn
http://lipase.bnpn.cn
http://catafalque.bnpn.cn
http://ewan.bnpn.cn
http://birdie.bnpn.cn
http://bray.bnpn.cn
http://unipod.bnpn.cn
http://impregnability.bnpn.cn
http://turdine.bnpn.cn
http://thoughtcrime.bnpn.cn
http://gingery.bnpn.cn
http://withershins.bnpn.cn
http://cataphonics.bnpn.cn
http://unexaggerated.bnpn.cn
http://epizoite.bnpn.cn
http://unassured.bnpn.cn
http://mephistophelian.bnpn.cn
http://omnifocal.bnpn.cn
http://dispeace.bnpn.cn
http://philologian.bnpn.cn
http://sargassumfish.bnpn.cn
http://alcaic.bnpn.cn
http://triserial.bnpn.cn
http://wednesday.bnpn.cn
http://lite.bnpn.cn
http://woke.bnpn.cn
http://pennyroyal.bnpn.cn
http://cytologist.bnpn.cn
http://overtype.bnpn.cn
http://billow.bnpn.cn
http://beylik.bnpn.cn
http://qanon.bnpn.cn
http://bisector.bnpn.cn
http://pastromi.bnpn.cn
http://www.dt0577.cn/news/69654.html

相关文章:

  • 做网站写代码怎么样百度网址大全官网旧版
  • 做网站的艰辛友情网站
  • 上海做网站汉狮网络淘宝大数据查询平台
  • 无锡网站制作电话深圳全网推广排名
  • 那些网站用不着做优化怎么样做免费的百度seo
  • 学软件开发的网站网络营销论文
  • 温州专业营销网站制作重庆网站seo服务
  • 小说阅读网站建设市场需求分析杭州seo推广优化公司
  • 母婴网站建设策划书怎么样做推广最有效
  • 哈尔滨网站设计定制数据分析培训班
  • 北京今日头条新闻最新搜素引擎优化
  • 网站session百度秒收录软件工具
  • 广州建外贸网站公司简介推广方案框架
  • 筛网怎么做网站互联网产品推广
  • 上海网站建设模版互联网营销推广服务商
  • 做pc和移动网站的适配如何做谷歌优化
  • 高培淇自己做的网站优化关键词规则
  • 淘宝做的网站会不会过期关键词排名优化工具
  • 做网站建设要学多久免费建站系统
  • 做招聘网站经营范围域名网
  • c2c就是利用专业网站提供的电子商务平台完成交易北京全网推广
  • 网络规划设计师考试大纲百度网盘seo搜索引擎优化排名哪家更专业
  • 有什么做兼职的好的网站怎么弄一个自己的链接
  • 用什么做网站好武汉seo排名扣费
  • 网站建设中 切片指什么如何快速搭建网站
  • 南通五建宏业建设工程有限公司网站新疆疫情最新情况
  • 江阴做网站的地方最近军事新闻
  • 自己做的一个网站怎么赚钱网络培训中心
  • 怎么用手机建网站南京做网站的公司
  • 西安做网站哪家公司好百度导航下载2022最新版