Kangas:计算机视觉中的Pandas

news2024/12/24 8:19:56

介绍

在计算机视觉领域,Kangas是一种越来越受欢迎的工具,用于图像数据处理和分析。类似于Pandas如何改变数据分析人员处理表格数据的方式,Kangas对计算机视觉任务也起到了同样的作用。

Kangas是Comet ML开源的工具,用于探索、分析和可视化大规模多媒体数据集,如图像、视频和音频。Kangas使机器学习专业人员能够可视化、排序、分组、查询和解释他们的数据(结构化或非结构化),以获得有意义的见解并加快模型开发速度。

另一方面,Pandas是一种流行的开源Python库,用于对表格数据进行数据分析和操作。它还可以用于数据清洗和准备。与其他库相比,它易于使用、快速和灵活,但不像Kangas那样原生支持非结构化数据类型。

Kangas对于计算机视觉数据来说就像Pandas对于表格数据一样。Kangas提供了用于读取、操作和分析图像的方法,我们将在本教程的几个示例中看到。

Kangas的优势

    • 易于使用:Kangas的主要优点是它简化了处理计算机视觉数据的过程。它具有用户友好的API,数据专业人员可以在不编写复杂代码的情况下快速加载、处理和分析视觉数据。这使得数据专业人员更容易专注于手头的任务,而不是数据处理的技术细节。

    • 速度和效率:与其他计算机视觉工具相比,Kangas可以轻松处理大型数据集并快速处理它们,实现实时数据分析和决策。这使其非常适合在时间敏感的应用中使用,如自动驾驶车辆,其中对视觉数据的快速准确分析至关重要。

    • 多样性:Kangas提供了广泛的机器学习算法,可应用于计算机视觉任务。这些算法可以用于执行诸如图像分类、目标检测和图像分割等任务。

    • 处理大量数据的能力:Kangas使用内存高效的数据结构,使数据专业人员能够以出色的性能处理大量图像和视频数据。这使其非常适合处理高分辨率图像和视频数据。

    • 灵活性:Kangas可以在多平台应用程序中运行,如Jupyter笔记本、独立应用程序或Web应用程序。

使用Kangas读取CSV文件

在Kangas和Pandas中,从CSV文件读取数据非常相似。区别在于Kangas创建了一个DataGrid,而Pandas创建了一个DataFrame。下面的代码展示了如何将数据从CSV文件读取到DataGrid中:

import kangas as kg
dg = kg.read_csv("path_to_csv_file")

这与Pandas中用于读取CSV文件的代码相比较:

import pandas as pd
df = pd.read_csv("path_to_csv_file")

接下来,我们将使用以下代码可视化CSV文件中的数据:

dg.show()

输出:

9f07a75359bd35e90691b548688ac0ec.png

Kangas对CSV数据文件的可视化

与Pandas的语法相比:

df.head()

请注意,Kangas的DataGrid是可交互的,而Pandas的DataFrame是静态的。

读取图像文件

与OpenCV等其他计算机视觉图像库不同,使用Kangas读取图像文件利用了Pandas的简洁性,以确保数据科学家将精力放在需要的地方。

要使用Kangas读取图像文件,请运行以下代码块:

import kangas as kg
image = kg.Image("path_to_images").to_pil()

通过运行以下代码中的变量名"image"来可视化图像文件:

image

输出:

b143c60ec0588cb163c7584250e80d1a.png

使用Kangas显示的土豆图像

从上面的示例中,您可以看到Kangas的语法与Pandas非常相似。

Pandas和Kangas的相似之处

    • 语法:Kangas和Pandas具有相似的语法,易于编写和使用。

    • 数据处理:Kangas和Pandas都具有数据处理功能。两者都可以从CSV、JSON到XLSX(Excel)文件读取任何格式的数据。Kangas使用DataGrid,而Pandas使用DataFrame和Series存储数据。

    • 数据操作:Kangas和Pandas都允许用户对数据进行筛选、排序、合并和重塑,但Kangas是以交互方式进行的。

    • 索引:两个库都允许用户根据标签或条件对数据进行索引和选择。在Pandas中,使用loc和iloc方法进行操作,而在Kangas中则是从DataGrid进行操作。

    • 数据分析:两个库都提供了基本的数据分析方法,如描述性统计、聚合和分组操作。

Kangas和Pandas的区别

    • Kangas可以处理图像文件,而Pandas不能。

    • Kangas为DataGrid提供了用户界面以进行数据操作,而Pandas只允许以编程方式进行操作。

创建 Kangas

DataGrid Kangas DataGrid是一个开源的SQLite数据库,提供存储和展示大量数据以及执行快速复杂查询的能力。DataGrid可以保存、共享,甚至可以远程提供服务。

Kangas DataGrid的一些关键特性包括:

    • 惰性加载:Kangas DataGrid仅在需要时加载数据,非常适合显示大型数据集。

    • 筛选和排序:用户可以根据各种条件筛选和排序在网格中显示的数据。

    • 单元格编辑:用户可以编辑网格中的单个单元格,并且这些更改可以保存回底层数据源。

    • 列大小调整和重新排序:用户可以调整和重新排序网格中的列。

    • 虚拟滚动:Kangas DataGrid支持虚拟滚动,意味着只有可见行在DOM中呈现,从而显著提高性能。

Kangas DataGrid易于定制和配置,允许开发人员根据其特定应用程序的需求来定制其设计和功能。

对于表格数据来说,创建Kangas DataGrid相对比较简单,而对于图像数据来说则不同。对于表格数据,只需使用Kangas读取CSV文件即可创建一个DataGrid,如下所示:

dg = kg.read_csv("/path_to_csv_file")
dg.show()

对于图像数据,下面是创建DataGrid的逐步过程:

    • 首先,收集数据或从数据存储库(如Kaggle)下载数据。将数据分割为x_train、x_test、y_train和y_test分区。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2,
                                                random_state=42)
    • 接下来,训练模型。

from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras.applications.mobilenet import MobileNet


# Define the model
model = Sequential([MobileNet(include_top=False,
                                      input_shape=(150, 150, 3),
                                      weights="imagenet",
                                      pooling='avg',
                                      classes=1000),
                    Dense(128, activation='relu'),
                    Dropout(0.25), Dense(1, activation='sigmoid')
                   ])


model.summary()


# compile model
model.compile(
          loss='categorical_crossentropy',
          optimizer='adam',
          metrics=['accuracy']
)


# fit the model
batch_size = 20
classifier = model.fit(


    X_train, y_train,
    steps_per_epoch=train_samples // batch_size,
    epochs=10,
    validation_data=(X_test, y_test),
    validation_steps=validation_samples // batch_size)
    • 创建并保存一个Kangas DataGrid。

from kangas import DataGrid, Image


dg = DataGrid(
    name="potato-tuber",
    columns=[
        "Epoch",
        "Index",
        "Image",
        "Truth",
        "Output",
        "score_0",
        "score_1",
        "score_2",             
    ],
)


# Make image of the test set for reuse
images = [Image(test, shape=(28, 28)) for test in X_test]


# Do it once before training:
outputs = model.predict(X_test)
epoch = 0
for index in range(len(X_test)):
  truth = int(y_test[index].argmax())
  guess = int(outputs[index].argmax())
  dg.append([epoch, index, images[index], truth, guess] + list(outputs[index]))




dg.save()
    • 探索和共享DataGrid。

创建DataGrid后,访问保存DataGrid的路径并复制路径。运行以下命令来探索创建的DataGrid:

kg.show('/path_to_datagrid/')

输出:

4a01172ac2ebde1599e551b05b0085bf.png

结论

Kangas正朝着成为计算机视觉数据处理和分析的Pandas的方向发展。其用户友好的API、速度、效率和易用性使其成为数据科学家和计算机视觉专家的宝贵工具。无论您是在进行前沿的自动驾驶项目还是仅仅为研究目的分析数据,Kangas都是完成工作的完美工具。

·  END  ·

HAPPY LIFE

ef77ad2cc22045bd4abbc4fdfdfb14f5.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/546988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Http协议①】认识http协议,学会使用fiddler抓包工具进行抓包.

前言: 大家好,我是良辰丫,今天我们一起来学习http协议,http协议是应用层的协议,应用层是最接近程序员的,那么,http协议到底是什么呢?我们往下看.💞💞 🧑个人主页:良辰针不戳 📖所属专栏:javaEE初阶 &#…

springboot+java养老院儿童福利院管理系统

安家儿童福利院管理系统包括儿童管理、申请领养管理、捐赠管理、楼栋管理、宿舍管理、分配信息管理、宿舍物品管理、报修管理、维修工管理、报修状态管理、留言管理、系统管理。通过对系统的实现得出安家儿童福利院管理系统具有安全稳定、操作简单、功能强大等特点,…

MySQL8.0卸载、安装和使用(二)

MySQL数据库的安装 注意: 必须用系统管理员身份运行mysql安装程序。安装目录切记不要用中文。 步骤一:双击mysql8的安装向导 步骤二:分为首次安装和再安装 1、首次安装 (1)如果是首次安装mysql系列的产品&#xff…

第06章_多表查询

第06章_多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了…

脑科学研究者的案头书(含下载资源)

脑科学研究者的案头书 <<< 回复关键词获取下载链接 >>> 《EEG Signal Processing and Machine Learning》&#xff08;Second Edition&#xff09; 简介&#xff1a; 《脑电信号处理与机器学习》书籍旨在描述脑电图(EEG)研究中的新技术和成果&#xff0c;主…

chatgpt赋能Python-python3捕获异常

Python3异常处理技术详解 在Python3中&#xff0c;异常处理技术是一项非常重要的工具。它能够帮助程序员避免不可预见的错误&#xff0c;减少不必要的程序崩溃&#xff0c;保证程序的稳定性。 什么是异常&#xff1f; 异常就是程序在执行过程中发生的错误或异常情况。不同的…

Redis+LUA脚本实现限流

文章目录 1、demo结构2、自定义接口3、编写写LUA脚本4、通过AOP切面识别需要限流的接口编写切面AOP通知类型 5、Redis限流自定义异常构建Redis限流自定义异常声明这个类为全局异常处理器专属日志 6、流量限制器RateLimiterRateLimitAlgApiLimitRateLimitRuleRuleConfig 7、Guav…

Win11系统不兼容怎么回退到Win10系统使用?

Win11系统不兼容怎么回退到Win10系统使用&#xff1f;有用户将自己的电脑系统升级到了Win11之后&#xff0c;发现使用起来非常的卡顿&#xff0c;自己的电脑配置不足。那么这个情况怎么去进行问题的解决呢&#xff1f;来看看以下详细的解决方法分享吧。 准备工作&#xff1a; 1…

Golang每日一练(leetDay0071) 同构字符串、反转链表

目录 205. 同构字符串 Isomorphic Strings &#x1f31f; 206. 反转链表 Reverse Linked-list &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 205. 同…

Debezium系列之:Debezium镜像仓库Quay.io,使用Debezium镜像仓库的方法和案例

Debezium系列之:Debezium镜像仓库Quay.io,使用Debezium镜像仓库的方法和案例 一、Debezium镜像仓库变动二、镜像仓库[Quay.io](https://quay.io/organization/debezium)三、使用镜像仓库Quay.io方法四、使用镜像仓库下载Debezium UI一、Debezium镜像仓库变动 Debezium2.2版本…

Linux RTC 驱动实验

RTC 也就是实时时钟&#xff0c;用于记录当前系统时间&#xff0c;对于 Linux 系统而言时间是非常重要的&#xff0c; 就和我们使用 Windows 电脑或手机查看时间一样&#xff0c;我们在使用 Linux 设备的时候也需要查看时 间。 一、Linux 内核 RTC 驱动简介 RTC 设备驱动是标准…

verdaccio + docker搭建私有npm仓库(有手就行)

一、环境准备 docker 二、步骤 运行verdaccio docker run -d --name verdaccio -p 4873:4873 --restartalways该命令执行完&#xff0c;一个本地的npm仓库就基本搭建好了&#xff0c;可以浏览器访问http://localhost:4873/ 查看&#xff0c;效果如下&#xff1a; 效果出是…

教你接入Midjourney,不用梯子也能玩

1、效果 话不多说&#xff0c;先上最终出图效果&#xff0c; 我给的关键词是一只白色的猫 2、接入流程 API文档可以来这里查&#xff08;可以白嫖100次midjourney出图和10次gpt4体验&#xff09;&#xff0c;我这里精简一下接入流程&#xff0c;方便大家快速接入 2.1、文字生…

JDK源码怎么学?看这篇文章就够了!

最近后台收到很多粉丝私信&#xff0c;说的是程序员究竟要不要去读源码&#xff1f;当下行情&#xff0c;面试什么样的薪资/岗位才会被问到源码&#xff1f; 对此&#xff0c;我的回答是&#xff1a;一定要去读&#xff0c;并且要提到日程上来&#xff01; 据不完全统计&…

远程访问群晖Drive并挂载为电脑磁盘同步备份文件「无需公网IP」

文章目录 前言视频教程1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 转发自CSDN远程穿透的文章&…

ARM的数据处理指令、跳转指令与储存器访问指令

最开始在此介绍一下CPSR寄存器中 N、Z、C、V 4位的作用&#xff1a; Bit[28]&#xff08;V&#xff09;&#xff1a; 当运算器中进行加法运算且产生符号位进位时该位自动置1&#xff0c;否则为0 当运算器中进行减法运算且产生符号位借位时该位自动置0&#xff0c;否则为1 …

头歌计算机组成原理实验—运算器设计(6)第6关:5位无符号阵列乘法器设计

第6关&#xff1a;5位无符号阵列乘法器设计 实验目的 帮助学生掌握阵列乘法器的实现原理&#xff0c;能够分析阵列乘法器的性能&#xff0c;能在 Logisim 中绘制阵列乘法器电路。 视频讲解 实验内容 在 Logisim 中打开 alu.circ 文件&#xff0c;在5位阵列乘法器中实现斜向…

阿里云要分拆上市,腾讯云、百度云跟不跟?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 十年磨一剑成就的阿里云开始兵行险招&#xff0c;在两年多来营收增速最低的一个财季&#xff0c;阿里云宣布开始分拆上市。 5月18日&#xff0c;阿里发布财报&#xff0c;在财报中宣布&#xff0c;阿里云将从阿里巴巴集团完…

[工具分享] 如何快速的添加海外客户的whatsApp和line进入通讯录

很多做外贸的朋友经常需要和海外的朋友联系&#xff0c;我们经常有时候需要添加海外客户的whatsApp和line等海外社交软件更好的与客户沟通&#xff0c;其他的App呢也是类似的,一下分享的方法 第一步、首先下载软件&#xff1a; 腾讯网盘&#xff1a;https://share.weiyun.com…

【已解决】grub引导项修复:Minimal BASH-like line editing is supported.

目录 1 问题背景2 问题探索3 问题解决4 告别Bug 1 问题背景 环境&#xff1a; Win10Ubuntu20.04 现象&#xff1a;双系统电脑向移动硬盘安装Ubuntu系统后&#xff0c;重启黑屏并显示Minimal BASH-like line editing is supported. For the first word, TAB lists possible comm…