Kangas:计算机视觉中的Pandas

news/2025/3/31 10:24:29/

介绍

在计算机视觉领域,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, Imagedg = 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.ppmy.cn/news/71767.html

相关文章

Git——C站最详细的Git教程,一篇学会Git(window\linux通用)

Git——C站最详细的Git教程,一篇学会Git(window\linux通用) 文章目录 Git——C站最详细的Git教程,一篇学会Git(window\linux通用)Git简介Git作用为什么要进行源代码管理?Git的诞生Git管理源代码特点Git操作流程图解 工作区暂存区和仓库区工作区暂存区仓…

modbus协议与nodejs modbus-serial实现

nodejs可通过modbus-serial库来实现modbus协议 npm install modbus-srial 安装完后在examples目录下有例子说明如何使用,本文主要讲述作为客户端的使用方式。 polling_RTU是使用485串口来实现modbus通信, polling_TCP和 polling_UDP则使用TCP/UDP来实现…

深度学习中关于图像分类的设计

目录 一、前言 二、项目介绍 三、项目展示 四、项目经验分享 一、前言 深度学习是一种基于人工神经网络的机器学习技术,通过多层非线性变换来学习数据的高级抽象表示。深度学习在图像、语音、自然语言处理等领域都有广泛应用。深度学习的优点是可以处理大量数据…

AI 生成第6篇测试文章:用例编写指南

背景 在软件开发中,用例是描述系统如何与用户及其他系统交互的通用模型。用例可以帮助开发人员更好地理解和设计软件系统,同时也可作为系统的文档。因此,在编写用例时需要非常注意内容的细节和质量。 用例需要包含的内容 在编写用例时&…

【SpringBoot整合RabbitMQ(下)】

八、死信队列 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了, consumer 从 queue 取出消…

在博客逮到一个阿里8年测试开发,聊过之后我悟了....

老话说的好,这人呐,一旦在某个领域鲜有敌手了,就会闲得疋虫疼。前几天我在上班摸鱼刷社区的时候认识了一位腾讯测试开发大佬,在阿里工作了8年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内…

Git安装应用

Git版本控制 1. 概述 1.1 什么是版本控制 开发中实际场景 场景一:备份 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月以来的努力付之东流 ​ 场景二:代码还…

OpenGL之创建窗口

目录 什么是OpenGL? 核心模式与立即渲染模式 立即渲染模式 (Immediate mode) 核心模式(Core-profile) 状态机 对象 创建窗口 配置环境 什么是OpenGL? 一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),…