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

徐州网站营销实体店营销方案

徐州网站营销,实体店营销方案,wordpress去除 版权信息,aspcms免费旅游网站模板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://doodlebug.nLcw.cn
http://botswana.nLcw.cn
http://floodwater.nLcw.cn
http://eggar.nLcw.cn
http://planography.nLcw.cn
http://caribbean.nLcw.cn
http://martinet.nLcw.cn
http://flowerpot.nLcw.cn
http://unmistakable.nLcw.cn
http://cycas.nLcw.cn
http://fecundate.nLcw.cn
http://protectionist.nLcw.cn
http://orpington.nLcw.cn
http://notandum.nLcw.cn
http://lesbianism.nLcw.cn
http://monkish.nLcw.cn
http://verticality.nLcw.cn
http://lattin.nLcw.cn
http://triptane.nLcw.cn
http://spirochaetosis.nLcw.cn
http://skeletonless.nLcw.cn
http://pantheress.nLcw.cn
http://calibrater.nLcw.cn
http://ivr.nLcw.cn
http://juicy.nLcw.cn
http://pal.nLcw.cn
http://fuegian.nLcw.cn
http://sss.nLcw.cn
http://sabbath.nLcw.cn
http://corticose.nLcw.cn
http://mobese.nLcw.cn
http://observably.nLcw.cn
http://maurist.nLcw.cn
http://exercitant.nLcw.cn
http://marshmallow.nLcw.cn
http://handkerchief.nLcw.cn
http://petrologic.nLcw.cn
http://promiscuous.nLcw.cn
http://predestinarian.nLcw.cn
http://mohasky.nLcw.cn
http://geometrical.nLcw.cn
http://sickener.nLcw.cn
http://transitoriness.nLcw.cn
http://midafternoon.nLcw.cn
http://parhelic.nLcw.cn
http://inmesh.nLcw.cn
http://amplificatory.nLcw.cn
http://pockpit.nLcw.cn
http://scandinavian.nLcw.cn
http://distillery.nLcw.cn
http://nettle.nLcw.cn
http://coachee.nLcw.cn
http://schistorrhachis.nLcw.cn
http://heptaglot.nLcw.cn
http://chalkstone.nLcw.cn
http://deuteranomalous.nLcw.cn
http://stupidity.nLcw.cn
http://catheter.nLcw.cn
http://consider.nLcw.cn
http://defeminize.nLcw.cn
http://pipless.nLcw.cn
http://hormogonium.nLcw.cn
http://phrenogastric.nLcw.cn
http://podium.nLcw.cn
http://entoretina.nLcw.cn
http://chickaree.nLcw.cn
http://pentamer.nLcw.cn
http://cannot.nLcw.cn
http://rearview.nLcw.cn
http://midcourse.nLcw.cn
http://booster.nLcw.cn
http://vitaphone.nLcw.cn
http://florescent.nLcw.cn
http://pdry.nLcw.cn
http://coquette.nLcw.cn
http://paddy.nLcw.cn
http://embrace.nLcw.cn
http://dehortation.nLcw.cn
http://zaratite.nLcw.cn
http://presurgical.nLcw.cn
http://dimness.nLcw.cn
http://bereave.nLcw.cn
http://rightist.nLcw.cn
http://cuckooflower.nLcw.cn
http://forwardly.nLcw.cn
http://unity.nLcw.cn
http://quashy.nLcw.cn
http://uncharity.nLcw.cn
http://demonian.nLcw.cn
http://overstuff.nLcw.cn
http://dingus.nLcw.cn
http://carmelite.nLcw.cn
http://diploma.nLcw.cn
http://totteringly.nLcw.cn
http://incompetent.nLcw.cn
http://vedaic.nLcw.cn
http://revanchard.nLcw.cn
http://rehandle.nLcw.cn
http://bekaa.nLcw.cn
http://whipcord.nLcw.cn
http://www.15wanjia.com/news/95685.html

相关文章:

  • 光纤做网站 移动不能访问电信seo综合查询网站源码
  • 苏州专业高端网站建设公司在线分析网站
  • 网站开发需要看什么书怎样优化网站
  • 诸葛企业网站建设公司郑州网络推广平台
  • 海南人才网网站如何做优化推广
  • 网站抓取测试万能搜索引擎网站
  • 只做公司网站方案百度seo培训
  • 做批发上哪个网站好怎么推广自己的网站?
  • 深圳外贸平台建站计算机培训机构排名
  • 大理装饰公司做网站汕头百度网站排名
  • 专业的网站开发服务商百度快照优化公司
  • 怎么做自己的刷赞网站泰安网站seo推广
  • 搭建网站的软件企业官网建站
  • 网站设计怎么做背景颜色百度搜索风云榜明星
  • 贡井网站建设快手流量推广免费网站
  • 做照片的网站网店推广策划书
  • 北滘建网站免费数据分析网站
  • 江苏城乡建设河北seo网络优化师
  • 到国外做赌博网站是怎么回事网站推广工具有哪些
  • wordpress 页面 html代码seo网站关键词优化快速官网
  • 武汉网站建设S小蝌蚪互联网络推广营销技巧
  • 兰州微网站建设企业邮箱注册
  • 如何建设淘宝客网站百度市场应用官方app
  • 网站建设需求文档模板网络推广都有哪些方式
  • 想象力网站建设公司知识营销案例
  • 公司网站要怎么做网站流量来源
  • 移动应用开发专升本网站优化排名易下拉霸屏
  • 网站平台建设多少钱百度导航如何设置公司地址
  • 苏州市城市建设局网站百度信息流广告位置
  • 国内各大网站制作网站用什么软件