首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

YOLO系列算法使用bdd100k数据集训练的数据预处理及格式转换python代码

人工智能 4.31KB 9 需要积分: 1
立即下载

资源介绍:

内容简介 本资源提供了一套针对BDD100K数据集的Python代码,旨在辅助用户完成YOLO系列算法训练前的数据预处理及格式转换工作。内容概要上,该代码能够处理BDD100K数据集的复杂标注信息,包括图像路径、类别标签、边界框坐标等,并将其转换为YOLO算法训练所需的特定格式(如TXT文件),同时可能包括图像增强、归一化等预处理步骤,以优化训练效果。 适用人群: 深度学习爱好者与研究者,特别是专注于目标检测领域的学者和学生。 开发人员,需要利用BDD100K数据集进行YOLO算法训练的工程师。 寻求提升数据处理效率与准确性的数据科学家。 能学到什么: 了解BDD100K数据集的标注结构与特点。 掌握将BDD100K数据集转换为YOLO训练格式的方法。 学习图像预处理技术,如数据增强、归一化等,在目标检测训练中的应用。 提升Python编程能力,特别是文件操作、数据处理及条件逻辑的实现。 阅读建议: 在阅读前,建议对BDD100K数据集和YOLO算法有一定的了解。 逐步执行代码,理解每一步的作用,特别是数据解析、预处理和格式转换的逻辑。 尝试修改代码中的参数,如调整数据增强的
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright @ 2021 zuosi <807269961@qq.com> # Distributed under terms of the MIT license import re import os import json def search_file(data_dir, pattern=r'\.jpg$'): root_dir = os.path.abspath(data_dir) for root, dirs, files in os.walk(root_dir): for f in files: if re.search(pattern, f, re.I): abs_path = os.path.join(root, f) #print('new file %s' % absfn) yield abs_path class Bdd2yolov5: def __init__(self): self.bdd100k_width = 1280 self.bdd100k_height = 720 self.select_categorys=["person", "car", "bus", "truck"] self.cat2id = { "person": 0, "car": 1, "bus": 1, "truck": 1 } @property def all_categorys(self): return ["person", "rider", "car", "bus", "truck", "bike", "motor", "traffic light", "traffic sign","train"] def _filter_by_attr(self, attr=None): if attr is None: return False #过滤掉晚上的图片 if attr['timeofday'] == 'night': return True return False def _filter_by_box(self, w, h): #size ratio #过滤到过于小的小目标 threshold = 0.001 if float(w*h)/(self.bdd100k_width*self.bdd100k_height) < threshold: return True return False def bdd2yolov5(self, path): lines = "" with open(path) as fp: j = json.load(fp) # if self._filter_by_attr(j['attributes']): //去掉晚上的 # return for fr in j["frames"]: dw = 1.0 / self.bdd100k_width dh = 1.0 / self.bdd100k_height for obj in fr["objects"]: if obj["category"] in self.select_categorys: idx = self.cat2id[obj["category"]] cx = (obj["box2d"]["x1"] + obj["box2d"]["x2"]) / 2.0 cy = (obj["box2d"]["y1"] + obj["box2d"]["y2"]) / 2.0 w = obj["box2d"]["x2"] - obj["box2d"]["x1"] h = obj["box2d"]["y2"] - obj["box2d"]["y1"] if w<=0 or h<=0: continue # if self._filter_by_box(w,h)://去掉小目标 # continue #根据图片尺寸进行归一化 cx,cy,w,h = cx*dw,cy*dh,w*dw,h*dh line = f"{idx} {cx:.6f} {cy:.6f} {w:.6f} {h:.6f}\n" lines += line if len(lines) != 0: #转换后的以*.txt结尾的标注文件我就直接和*.json放一具目录了 #yolov5中用到的时候稍微挪一下就行了 yolo_txt = path.replace(".json",".txt") print(yolo_txt) with open(yolo_txt, 'w') as fp2: fp2.writelines(lines) #print("%s has been dealt!" % path) if __name__ == "__main__": bdd_label_dir = "E:\\数据集\\bdd100k\\bdd100k_labels\\bdd100k\\labels\\100k\\val" cvt=Bdd2yolov5() for path in search_file(bdd_label_dir, r"\.json$"): cvt.bdd2yolov5(path)

资源文件列表:

bdd100k_data_cv.zip 大约有8个文件
  1. bdd100k_data_cv/.vscode/
  2. bdd100k_data_cv/.vscode/settings.json 70B
  3. bdd100k_data_cv/bdd100k2yolo.py 3.35KB
  4. bdd100k_data_cv/change_txt_cls.py 487B
  5. bdd100k_data_cv/readpicpath.py 417B
  6. bdd100k_data_cv/split_data_yolov5.py 2.43KB
  7. bdd100k_data_cv/togray.py 436B
  8. bdd100k_data_cv/
0评论
提交 加载更多评论
其他资源 python3.8.2版本
python3.8.2版本
圈子系统可发帖,可开语音,可提取短视频
● 她是谁??? ●系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发。 ● 系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP ● 目前已开发升级至4.2版 适用领域 一、行业圈子:您可以使用在你的行业领域,让本行业的有交流和联系的圈子。 二、地方圈子:您可以使用在本地区,运营地方性的综合圈子或论坛,搭配商城频道,可以做类似美团的本地到店消费,搭配交友频道可做本地社交。搭配圈子可做信息发布类。 三、纯社交圈子:搭配交友频道,和语聊房间频道可运营娱乐社交类APP,可实现VIP充值盈利和虚拟礼物主播分成模式, 四、游戏开黑圈子:搭配语聊与交友。可作为游戏开黑组队和代练模式交易。 五、兴趣圈子:你所熟悉的某个兴趣点专注领域,种草社区结合商城系统。直接种草和电商结合。 六、活动搭子类:为用户提供活动组局、搭子、商家活动发布类产品。 七、我们提供十多款丰富功能的插件,可选择搭配。
Flutter 百分比指示器库
Flutter 百分比指示器库
Flutter 百分比指示器库 Flutter 百分比指示器库 Flutter 百分比指示器库
NetBox附件资源,解压缩就行
解压缩,放入程序集中,双击运行,直接使用
YOLO系列算法训练数据格式转换脚本
内容概要: 本资源提供了一套完整的Python脚本代码,用于将XLM和COCO格式的目标检测数据集转换为YOLO格式。内容概要上,该脚本通过读取XLM或COCO数据集的标注文件(如JSON格式),自动解析图像信息、类别标签及边界框坐标,并转换为YOLO算法所需的格式(通常是TXT文件)。 适用人群: 学生:对目标检测、深度学习及数据预处理感兴趣的初学者。 研发人员:具备一定编程基础,特别是Python和深度学习领域,希望快速实现数据集格式转换以提高工作效率的开发者。 科研人员:在目标检测领域进行研究的学者,需要处理多种格式数据集以进行算法验证和优化。 能学到什么: 掌握XLM、COCO与YOLO数据格式的差异及转换方法。 学习Python脚本编写技巧,特别是文件读写、数据处理及逻辑判断。 了解目标检测数据集标注文件的解析与转换流程。 阅读建议: 在阅读前,建议对XLM、COCO和YOLO数据格式有一定的了解。 逐步执行脚本中的代码,理解每一步的作用,特别是数据解析和格式转换的逻辑。 尝试修改脚本中的参数和路径,以适应不同的数据集和需求。 遇到问题时,可参考相关文档或寻求社区帮助
灵活且易于使用的页面转换
灵活且易于使用的页面转换
Delphi5+SqlServer+添加操作
Delphi5+SqlServer+添加操作
Xshell-7.0.zip
Xshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0.zipXshell_7.0