Kangas:计算机视觉中的pandas

在这里插入图片描述

Kangas:计算机视觉中的pandas

  • 介绍
    • Kangas的优点
  • 使用Kangas读取CSV文件
  • 读取图像文件
  • Kangas DataGrid训练模型

介绍

在计算机视觉领域,Kangas是一种在图像数据处理和分析方面越来越受欢迎的工具之一。就像Pandas改变了数据分析人员处理表格数据的方式一样,Kangas正在为计算机视觉任务做同样的工作。

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

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

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

Kangas的优点

  1. 易于使用:Kangas的主要优点是其简化了处理计算机视觉数据的过程。它具有用户友好的API,数据专业人员可以加载、处理和分析视觉数据,而无需编写复杂的代码。这使得数据专业人员更容易专注于手头的任务,而不是数据处理的技术细节。
  2. 速度和效率:与其他计算机视觉工具相比,Kangas可以轻松处理大型数据集并快速处理它们,实现实时数据分析和决策。这使其非常适用于时间敏感的应用,如自动驾驶车辆,其中对视觉数据的快速和准确分析至关重要。
  3. 多样性:Kangas提供了广泛的机器学习算法,可应用于计算机视觉任务。这些算法可用于执行诸如图像分类、目标检测和图像分割等任务。
  4. 处理大量数据的能力:Kangas使用一种内存高效的数据结构,使数据专业人员能够以出色的性能处理大量图像和视频数据。这使其非常适用于处理高分辨率图像和视频数据。
  5. 灵活性:Kangas可以在Jupyter notebook、独立应用程序或Web应用程序等多平台应用中运行。

使用Kangas读取CSV文件

在Kangas和Pandas中,从CSV文件中读取数据非常相似。区别在于Kangas创建了一个DataGrid,而Pandas创建了一个DataFrame。以下代码:

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()

输出
在这里插入图片描述

与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

输出
在这里插入图片描述

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

Pandas和Kangas的相似之处

  1. 语法:Kangas和Pandas具有相似的语法,易于编写和使用。
  2. 数据处理:Kangas和Pandas都具有数据处理功能。两者都可以从csv、Json到xlsx(Excel)文件中读取任何格式的数据。Kangas使用DataGrid,而Pandas使用Data Frame和Series来存储数据。
  3. 数据操作:Kangas和Pandas都允许用户对数据进行过滤、排序、合并和重塑,但Kangas是以交互方式实现的。
  4. 索引:两个库都允许用户根据标签或条件对数据进行索引和选择。在Pandas中,可以使用loc和iloc方法来实现,而在Kangas中是通过DataGrid完成的。
  5. 数据分析:两个库都提供了基本的数据分析方法,如描述性统计、聚合和分组操作。

Kangas和Pandas的区别

  1. Kangas处理图像文件,而Pandas不处理图像文件。
  2. Kangas提供了一个用户界面来操作DataGrid中的数据,而
    Pandas只允许以编程方式进行操作。

Kangas DataGrid训练模型

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

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

  1. 延迟加载:Kangas DataGrid仅在需要时加载数据,非常适合显示大型数据集。
  2. 过滤和排序:用户可以根据各种条件对网格中显示的数据进行过滤和排序。
  3. 单元格编辑:用户可以编辑网格中的单个单元格,并且可以将更改保存回底层数据源。
  4. 列调整大小和重新排序:用户可以调整网格中的列大小和重新排序。
  5. 虚拟滚动: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/')

输出
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

macOS FreeBSD 如何刷新 DNS 缓存

macOS FreeBSD 如何刷新 DNS 缓存 全文:如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接:https://sysin.org/blog/how-to-flush-dns-cach…

AI绘画:切换黑色风格,安装更棒的主题!

从Stable Diffusion 出现的第一天起,我就开始关注这个项目,后来也出过几期教程。 一直以来都是只追求功能实现,不管界面的问题。现在我突然想要换一个帅气的主题了…就是这么突然! 默认的白色主题太….普通…既没有设计感啊&…

智能井盖传感器:以科技破解城市顽疾

在城市的道路网络中,井盖扮演着重要的角色,用于覆盖下方的管道和设施,然而,由于井盖的老化、损坏或被盗,常常会导致安全问题的发生,如路面塌陷、行人受伤等。井盖的状态监测和维护一直是城市管理者面临的挑…

社区分享|JumpServer开源堡垒机一直都是我的第一选择

编者注:本文由JumpServer开源堡垒机社区用户James Wei供稿。 “我最开始接触到的堡垒机就是JumpServer,最了解的也是JumpServer,已经完全习惯了JumpServer的使用习惯,这也是我一直选择JumpServer的一个重要原因。” ——JumpSer…

跟着AIGC学Linux:简介(一)

文章目录 1.Linux内核的历史2.基本概念3.发行版4.Linux应用领域5.Linux VS Windows横向对比表格: 1.Linux内核的历史 Linux内核最初由一位名叫Linus Torvalds的芬兰计算机科学家于1991年创建。当时,Torvalds是一名赫尔辛基大学的学生,他在寻…

Microsoft365有用吗?2023最新版office有哪些新功能?

office自97版到现在已有20多年,一直是作为行业标准,格式和兼容性好,比较正式,适合商务使用。包含多个组件,除了常用的word、excel、ppt外,还有收发邮件的outlook、管理数据库的access、排版桌面的publisher…

【Windows】虚拟串口工具VSPD7.2安装

【Windows】虚拟串口工具VSPD7.2安装 1、背景2、VSPD7.2安装3、创建虚拟串口 1、背景 ​Virtual Serial Ports Driver​是由著名的软件公司Eltima制作的一款非常好用的​虚拟串口工具​,简称:VSPD。 VSPD其功能如同 Windows机器上COM 串行端口的仿真器…

永磁同步直线电机学习笔记——什么是直线电机?

永磁同步直线电机(Permanent Magnet Linear Synchronous Motor,简称PMLSM)是一种电动机,它通过将永磁体和线圈组合在一起,将电能转化为机械运动。与传统的旋转电机不同,PMLSM是一种直线运动电机&#xff0c…

【Java高级语法】(十七)Stream流式编程:释放流式编程的效率与优雅,狂肝万字只为全面讲透Stream流!~

Java高级语法详解之Stream流 1️⃣ 概念及特征2️⃣ 优势和缺点3️⃣ 使用3.1 语法3.2 常用API详解3.3 案例 4️⃣ 应用场景5️⃣ 使用技巧6️⃣ 并行流 ParallelStream🌾 总结 1️⃣ 概念及特征 Java的Stream流是在Java 8中引入的一种用于处理集合数据的功能强大且…

【小沐学Web】Node.js搭建HTTPS 服务器

文章目录 1、简介1.1 HTTPS协议1.2 Node.js中的HTTPS 2、生成自签名证书2.1 key文件2.2 csr文件2.3 crt文件 4、代码测试4.1 Node.js简介4.2 Node.js的http模块4.3 Node.js的Express模块4.4 Node.js的https模块4.5 Node.js的httpsexpress模块 结语 1、简介 1.1 HTTPS协议 HTTP…

HackTheBox - 学院【CPTS】复习3 - XSS、文件包含、文件上传、命令注入

XSS 登录表单 document.write(<h3>Please login to continue</h3><form actionhttp://OUR_IP><input type"username" name"username" placeholder"Username"><input type"password" name"password&…

web漏洞之文件上传漏洞

文章目录 一、漏洞原因二、漏洞危害三、漏洞利用1.三个条件2.利用方式3.绕过方式a.绕过JS验证① BP绕过② F12绕过③ 菜刀上传实操 b.绕过MIME-Type验证c.绕过黑名单验证① 直接修改后缀名绕过② htaccess绕过(有拦截)③ 大小写绕过(有拦截)④ 空格绕过⑤ .号绕过⑥ 特…

Golang -> Golang 变量

Golang 变量 Golang 变量使用的三种方式变量的声明&#xff0c;初始化和赋值程序中 号的使用数据类型的基本介绍int 的无符号的类型&#xff1a;int 的其它类型的说明:整型的使用细节 小数类型/浮点型小数类型分类浮点型使用细节 字符类型字符类型使用细节字符类型本质探讨 布…

前端Vue自定义简单实用轮播图封装组件 快速实现轮播图

前端Vue自定义简单实用轮播图封装组件 快速实现轮播图&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13153 效果图如下&#xff1a; # cc-mySwiper #### 使用方法 使用方法 <!-- 自定义轮播图 swiperArr: 轮播数…

做项目,最难搞定的不是甲方爸爸...

早上好&#xff0c;我是老原。 前几天和一个老朋友吃饭的时候&#xff0c;他和我吐槽他上个月做的一个项目&#xff0c;实在太累了&#xff0c;几乎是没日没夜地赶进度&#xff0c;身体都快垮了。 我问他既然时间来不及&#xff0c;为什么不前期就和客户沟通好。 他说其实客…

什么是HTTP 500内部服务器错误,要怎么修复

HTTP 500是一种原始的错误代码&#xff0c;它指示网站服务器在处理请求时发生了内部错误&#xff0c;不过具体错误原因是不确定的。一般情况下&#xff0c;这种错误通常是由服务器程序上的bug或者配置问题造成的。当服务器收到请求时&#xff0c;尝试执行它时&#xff0c;但是发…

快速入门JavaScript异步编程:从回调到async/await的跨越

文章目录 I. 介绍异步编程的背景和基本概念本文主要讨论JavaScript中的异步编程 II. 回调函数回调函数的定义、作用以及使用场景回调地狱的问题及解决方案 III. PromisePromise的定义、作用以及使用场景Promise的状态及状态转换Promise的链式调用和错误处理 IV. async/awaitasy…

B049-cms04-浏览次数 富文本 轮播图 上传

目录 浏览次数页面加载发送请求后台处理请求前台展示 展示日期富文本编辑static下引入富文本资源文件夹模态框文本域替换成如下内容底部引入相关文件调整模态框样式把富文本选项移到模态框前面上传表情或图片等富文本添加操作手动清空富文本编辑器内容修改操作手动回显富文本编…

浅析 Jetty 中的线程优化思路

作者&#xff1a;vivo 互联网服务器团队- Wang Ke 本文介绍了 Jetty 中 ManagedSelector 和 ExecutionStrategy 的设计实现&#xff0c;通过与原生 select 调用的对比揭示了 Jetty 的线程优化思路。Jetty 设计了一个自适应的线程执行策略&#xff08;EatWhatYouKill&#xff09…

华为eNSP入门实验,Vlan配置,路由配置,用户模式,链路聚合

文章目录 一、同一交换机下的PC通信二、不交换机下的PC通信三、配置静态路由通信四、路由器rip协议配置五、路由器ospf协议配置六、单臂路由七、通过三层交换机使不同的Vlan能连通八、设备consolo密码模式九、设备consolo用户密码模式&#xff08;AAA模式&#xff09;十、Telne…