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

手机网站触摸版萧山中兴建设有限公司网站

手机网站触摸版,萧山中兴建设有限公司网站,wordpress侧边悬浮联系方式插件,做网站什么科目基于yolov5和paddle实现车辆检测,本项目提供3个预测训练模型,分别为YOLOv5s, YOLOv5m,YOLOv5l ,如果需要其他模型在百度云盘下载。本项目分为4类,的分别为car,bus,van,others可食用VisualDL服务工具,对训练各项数据进行…

基于yolov5paddle实现车辆检测

本项目提供3预测训练模型分别YOLOv5s, YOLOv5m,YOLOv5l 如果需要其他模型在百度云盘下载

本项目分为4的分别car,bus,van,others

可食用VisualDL服务工具训练各项数据进行实时可视化输出

1 YOLOv5训练数据集准备

解压数据集移动工作目录

#解压数据集

!ls /home/aistudio/data

!unzip -q /home/aistudio/data/data55670/VOCData.zip

!mv VOCData VOCdata

#将数据集移动工作

!mv /home/aistudio/VOCdata /home/aistudio/work/

%cd /home/aistudio/work/VOCdata

#重命名图片文件夹

!mv JPEGImages images

执行下面两段代码VOC格式数据集转换成YOLOV5标准格式

#第一段代码划分训练集验证集测试

%cd /home/aistudio/work/VOCdata #切换VOC数据目录

import os #导入操作系统模块

import random #导入随机模块

#设置数据集划分比例

trainval_percet = 0.1 #训练验证集数据比例 10%

train_percent=0.9 #训练集训练验证集比例 90%

#定义XML标注文件路径

xmlfilepath='/home/aistudio/work/VOCdata/Annotations' #XML标注文件存放地址

#创建ImageSets目录 如果不存在

if not os.path.exists('ImageSets/'):

os.makedirs('ImageSets') #创建多集目录

#创建所有XML文件列表

total_xml = os.listdir(xmlfilepath) #列出目录所有文件

num=len(total_xml) #计算XML文件总数

list=range(num) #创建0num - 1索引列表

#计算划分

tv = int(num * trainval_percent) #训练验证数量

tr = int(tv * train_percent) #训练数量(占训练验证集的比例)

#随机抽样

trainval = random.sample(list, tv) #总样本随机抽取训练验证集

train = random.sample(trainval, tr) #训练验证集随机抽取训练集

#打开文件准备写入

ftrainval = open('ImageSets/trainval.txt', 'w') #训练验证文件

ftest = open('ImageSets/test.txt', 'w') #测试集文件

ftrain = open('ImageSets/train.txt', 'w') #训练集文件

fval = open('ImageSets/val.txt', 'w') #验证文件

#遍历所有

for i in list:

#生成文件名 去掉xml扩展名

name = total_xml[i][:-4] + '\n' #文件名 + 换行符 -4符号

#根据样本所属集合写入不同文件

if i in trainval: #如果现在训练验证集

ftrainval.write(name) 写入训练验证集文件

if i in train: #如果训练集

ftest.write(name ) #写入测试集文件

else: 否则验证

fval.write(name) #写入验证集文件

else: #如果不在训练验证集

ftrain.write(name) #写入训练文件

#关闭所有文件

ftrainval.close()

ftest.close()

ftrain.close()

fval.close()

#第二段代码VOC格式转换YOLO格式

%cd /home/aistudio/work/VOCdata #切换VOC数据目录

import xml.etree.ElementTree as ET #导入XML解析模块

import pickle #导入序列化模块

import os #导入操作系统模块

from os import listdir, getcwd #导入目录操作函数

from os.path import join #导入路径链接函数

#定义数据集划分类型

sets = ['train','test','val']#训练集测试集验证集

#定义路径

Imgpath='/home/aistudio/work/VOCdata/images' #图片文件目录路径

xmlfilepath='/home/aistudio/work/VOCdata/Annotations' #XML标注文件路径

ImageSets_path='ImageSets/' #数据划分文件路径

#定义类别列表

def convert(size, box):

坐标转换函数

size: (width, height) 图片尺寸

box: (xmin, xmax, ymin, ymax)边界坐标

dw = 1./size[0] #宽度归一化因子

dh = 1./size[2] #归一化因子

#计算中心坐标

x=(box[0] + box[1])/2.0 x中心

y =(box[2] + box[3])/2.0 y中心

#计算宽度高度

w = box[1] - box[0] # 边界框宽度

h = box[3] - box[2] # 边界框高度

#归一化坐标

x =x * dw 归一化x中心

w =w *dw 归一化宽度

y=y * dh 归一化y中心

h = h * dh 归一化高度

return (x,y,w,h) 返回YOLO格式坐标

#定义标准转换函数

def convert_annotation(image_id):

转换单个XML标注文件

image_id 图像文件名 不含扩展名

#打开XML文件

in_file = open(xmlfilepath + '%s.xml'%(image_id))

#创建对应YOLO格式标签文件

out_file = open('labels/%s.txt' % (image_id), 'w')

#解析XML

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'.text) #获取难度标记

cls = obj.find('name').text #获取类别名称

#跳过不需要类别或者困难样本

if cls not in classes or int(difficult) == 1:

continue;

#获取类别ID

cls_id = classes.index(cls)

#获取边界框坐标

xmlbox = obj.find('bndbox')

b = (float(xmlbox.find('xmin').text), #xmin

float(xmlbox.find('xmax').text), #xmax

float(xmlbox.find('ymin').text, #ymin

float(xmlbox.find('ymax').text, #ymax)))

#转换为YOLO格式

bb = convert((w,h),b)

#写入标签文件:类别ID + 归一化坐标

out_file.write(str(cls_id) + "" + "".join([str(a) for a in bb]) + '\n')

#获取当前工作目录

wd = getcwd()

print(wd) #打印当前工作目录

#处理每个数据集划分

for image_set in sets:

#创建labels目录 如果不存在

if not os.path.exists('labels/'):

os.makedirs('labels/')

#读取划分文件的图像ID列表

image_ids = open(ImageSets + '%s.txt'%(image_set)).read().strip().split()

#创建图像路径列表文件

list_file = open('%s.txt' % (image_set), 'w')

#处理每个图像

for image_id in image_ids:

#写入图像绝对路径

list_file.wrote(Imgpath + '/%s.jpg\n'%(image_id))

#转换对应XML标注

convert_annotation(iamge_id)

#关闭文件

list_file.close()

关键功能说明

第一段代码 数据集划分

1 将数据集划分为

训练验证集10%

剩余作为训练集 90%

2 训练验证集再细分为

训练子集 占训练集征集的90%

验证子集 占训练集的10%

3 生成四个文件

trainval.txt 所有训练验证集样本

test.txt 训练子集样本

train.txt 非训练验证集样本 主训练集

val.txt 验证子集样本

第二段代码 格式转换

1 对每个数据集划分 train/test.val

创建图像路径列表文件 .txt

将VOC XML标注转换为YOLO格式的标签文件

2 转换过程

解析XML文件获取目标信息

过滤非目标类别和困难样本

将边界框坐标转换为YOLO格式,归一化中心点 + 宽高

每个目标保存为一行 class_id center_x center_y width, height

3 最终生成

train.txt/test.txt/val.txt 包含图像绝对路径

labels 目录,包含每个图像对应的YOLO格式标签文件

http://www.dtcms.com/a/457559.html

相关文章:

  • Python游戏开发入门:从零开始制作贪吃蛇小游戏
  • kanass入门到实战(11) - Kanass如何有效集成sward文档
  • 尚硅谷SpringBoot3零基础教程,课程介绍,笔记01
  • 51网站统计德州网站建设的公司
  • C++23 高级编程 Professional C++, Sixth Edition(一)
  • Verilog和FPGA的自学笔记3——仿真文件Testbench的编写
  • 记录gitee的使用
  • 动态业务流程的案例管理标准(CMMN)
  • 广东门户网站建设哪个网站有适合小学生做的题
  • .NET周刊【9月第4期 2025-09-28】
  • 一级a做爰片365网站天门建设局官方网站
  • 电子商城网站制作广东网站营销seo费用
  • HarmonyOS应用开发 - 无受限权限保存资源到媒体库
  • 网上书店电子商务网站建设企业网站模板下载psd格式
  • 京东手机项目:手机受欢迎的影响因素分析
  • linux zgrep命令介绍
  • 成都著名网站建设公司php 抓取 wordpress 文字内容
  • 高性能Go协程库ants实战指南(二)
  • [Android] 【最新更新】电子书/小说下载APP 遇见云书V3.2.0
  • golang面经——map模块和sync.Map模块
  • 【Pandas】pandas Index objects DatetimeIndex.dayofyear
  • 10BASE-T1S存在问题,还不能胜过CAN
  • 网站后台seo设置网站建设的安全性
  • 手机网站制作代理搜索引擎及门户网站介绍总结
  • MySQL、Nignx和Docker在Linux上的安装详解
  • Rust中的特征Trait
  • 《SaaS应用技术攻坚:从定制化到运维的六大核心实践拆解》
  • java-JDK8 日期时间类
  • 网站开发前途电影网站建设基本流程
  • 建网站怎么年赚网页设计网站页面搜索的代码