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

huggingface下载的.arrow数据集读取与使用说明

1.数据下载方式:load_dataset

在这里插入图片描述

将数据集下载到本地:(此处下载的是一个物体目标检测的数据集

from datasets import load_dataset
# 下载的数据集名称,
model_name = 'keremberke/plane-detection'
# 数据集保存的路径
save_path = 'datasets'
#name参数为full或mini,full表示下载全部数据,mini表示下载部分少量数据
dataset = load_dataset(model_name, name="full")  
dataset.save_to_disk(save_path)

huggingface可以把处理好的数据保存成下面的格式:
在这里插入图片描述
下载到本地后的数据结构如下:
在这里插入图片描述

2.加载本地的arrow文件:load_from_disk

from datasets import load_from_disk
path = './train' # train:表示上述训练集在本地的路径
dataset = load_from_disk(path)

数据以类似于表格的形式存储,包含以下列名:[‘image_id’, ‘image’, ‘width’, ‘height’, ‘objects’]

image_id: 图片id
image:存储的图像文件,是PIL对象:<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1920x1080 at 0x29F8DFAA550>
width:图像宽度
height:图像高度
objects:图像其他相关信息,如标注的标签信息等
在这里插入图片描述

3.Arrow文件中结构说明

在这里插入图片描述

print(dataset[0])
运行结果如下:
"""
{'image_id': 11, 'image': <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1920x1080 at 0x2D70D08C3D0>, 'width': 1920, 'height': 1080, 'objects': {'id': [9], 'area': [36993], 'bbox': [[383.0, 268.0, 209.0, 177.0]], 'category': [0]}}
"""

'objects’中的bbox表示标记框(x1,y1,width,height);category:表示目标类别

显示图片:

img = dataset['image'][0]
plt.imshow(img)
plt.show()

显示标记框的示例代码如下:

# 取第一张图片
img = dataset['image'][0]
# 将PIL--RGB格式图片转化为CV--BGR图片
cv_img = cv2.cvtColor(numpy.asarray(img),cv2.COLOR_RGB2BGR)
box_info = dataset['objects'][0]['bbox'][0]
p1 = [int(box_info[0]),int(box_info[1])]
p2 = [int(box_info[0]+box_info[2]),int(box_info[1]+box_info[3])]
cv2.rectangle(cv_img, p1, p2, (0, 255, 0), 2)
cv2.imshow("img", cv_img)
cv2.waitKey(0)

在这里插入图片描述


http://www.kler.cn/a/15039.html

相关文章:

  • Linux进阶:压缩、解压
  • 网络爬虫 Python-(初始篇1 后期照样有)
  • 高级java每日一道面试题-2024年11月07日-Redis篇-Redis有哪些功能?
  • Spring Security SecurityContextHolder组件
  • 青少年编程与数学 02-003 Go语言网络编程 21课题、Go语言WebSocket编程
  • Nuxt3 动态路由URL不更改的前提下参数更新,NuxtLink不刷新不跳转,生命周期无响应解决方案
  • 初学者入门C语言指针与链表
  • CVE漏洞复现-CVE-2019-11043-PHP-FPM 远程代码执行漏洞
  • 地热井监测控制系统解决方案
  • 适用于Windows PC和Mac的最佳录屏软件Camtasia2023强悍来袭
  • C++设计模式21:策略模式
  • 如何高质量的提问题让chatgpt更明白我们的意图
  • delphi JSON用法
  • static_cast、dynamic_cast和reinterpret_cast区别和联系
  • 最好用的六款虚拟机软件,赶紧收藏
  • SAP-选择实施离散制造模式还是重复制造模式?
  • Java 版企业工程项目管理系统平台(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
  • 根据字符出现频率排序、从英文中重建数字----2022/4/25
  • 直击德国PLS展,联诚发倾力打造沉浸式视觉盛宴!
  • 上传了ipa但iTunes Connect没有构建版本问题
  • 巧用千寻位置GNSS软件|逐点放样应用技巧
  • U盘安装Windows11和ubuntu20.04双系统
  • 如何平衡倾斜摄影的三维模型轻量化数据文件大小和质量效果?
  • 设计模式-门面模式
  • BM38-在二叉树中找到两个节点的最近公共祖先
  • Android 11.0 framework中Launcher的启动流程分析