Kangas: コンピュータ ビジョン内のパンダ

導入

コンピュータ ビジョンの分野では、Kangas は画像データの処理と分析のためのツールとしてますます人気が高まっています。Pandas がデータ アナリストが表形式データを扱う方法を変えたのと同様に、Kangas もコンピューター ビジョン タスクに対して同じことを行いました。

Kangas は、画像、ビデオ、オーディオなどの大規模なマルチメディア データセットを探索、分析、視覚化するためのオープンソース Comet ML ツールです。Kangas を使用すると、機械学習の専門家はデータ (構造化または非構造化) を視覚化、並べ替え、グループ化、クエリ、解釈して、有意義な洞察を得てモデル開発を加速できます。

一方、Pandas は、表形式データのデータ分析と操作のための人気のあるオープンソース Python ライブラリです。データのクリーニングや準備にも使用できます。他のライブラリと比べて使いやすく、高速かつ柔軟ですが、Kangas のような非構造化データ型をネイティブにサポートしていません。

Kangas はコンピュータ ビジョン データにとって、Pandas は表形式データにとって同様です。このチュートリアル全体でいくつかの例で説明するように、Kangas は画像を読み取り、操作し、分析するためのメソッドを提供します。

カンガスの利点

    • 使いやすさ: Kangas の主な利点は、コンピューター ビジョン データを扱うプロセスが簡素化されることです。ユーザーフレンドリーな API を備えているため、データ専門家は複雑なコードを記述することなく、ビジュアル データを迅速にロード、処理、分析できます。これにより、データ専門家はデータ処理の技術的な詳細ではなく、目の前のタスクに集中しやすくなります。

    • 速度と効率: 他のコンピューター ビジョン ツールと比較して、Kangas は大規模なデータ セットを簡単に処理して迅速に処理できるため、リアルタイムのデータ分析と意思決定が可能になります。そのため、視覚データの迅速かつ正確な分析が重要である自動運転車など、時間に敏感なアプリケーションでの使用に最適です。

    • 多様性: Kangas は、コンピューター ビジョン タスクに適用できる幅広い機械学習アルゴリズムを提供します。これらのアルゴリズムを使用して、画像分類、オブジェクト検出、画像セグメンテーションなどのタスクを実行できます。

    • 大量のデータを処理する機能: Kangas はメモリ効率の高いデータ構造を使用しており、データ専門家が大量の画像およびビデオ データを優れたパフォーマンスで処理できるようにします。これにより、高解像度の画像やビデオ データの処理に最適になります。

    • 柔軟性: Kangas は、Jupyter ノートブック、スタンドアロン アプリケーション、Web アプリケーションなどのマルチプラットフォーム アプリケーションで実行できます。

Kangas で CSV ファイルを読み取る

CSV ファイルからのデータの読み取りは、Kangas と Pandas で非常に似ています。違いは、Kangas は DataGrid を作成するのに対し、Pandas は DataFrame を作成することです。以下のコードは、CSV ファイルから DataGrid にデータを読み取る方法を示しています。

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

これは、CSV ファイルを読み取るための Pandas のコードと比較されます。

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

次に、次のコードを使用して CSV ファイル内のデータを視覚化します。

dg.show()

出力:

9f07a75359bd35e90691b548688ac0ec.png

CSV データ ファイルの Kangas 視覚化

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 に非常に似ていることがわかります。

パンダとカンガの類似点

    • 構文: Kangas と Pandas は類似した構文を備えており、記述と使用が簡単です。

    • データ処理: Kangas と Panda は両方ともデータ処理機能を備えています。どちらも、CSV、JSON、XLSX (Excel) ファイルまで、あらゆる形式のデータを読み取ることができます。Kangas は DataGrid を使用しますが、Pandas は DataFrame と Series を使用してデータを保存します。

    • データ操作: Kangas と Pandas の両方で、ユーザーはデータのフィルター、並べ替え、マージ、および再構成を行うことができますが、Kangas はそれを対話的に実行します。

    • インデックス作成: どちらのライブラリでも、ユーザーはタグや条件に基づいてデータのインデックスを作成し、選択できます。Pandas では loc メソッドと iloc メソッドを使用して操作しますが、Kangas では DataGrid から操作します。

    • データ分析: どちらのライブラリも、記述統計、集計、グループ化操作などの基本的なデータ分析手法を提供します。

カンガとパンダの違い

    • Kangas は画像ファイルを処理できますが、Pandas は処理できません。

    • Kangas はデータ操作のための DataGrid のユーザー インターフェイスを提供しますが、Pandas ではプログラムによる操作のみが可能です。

カンガの作成

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 は、コンピューター ビジョン データの処理と分析のパンダになろうとしています。ユーザーフレンドリーな API、速度、効率性、使いやすさにより、データ サイエンティストやコンピューター ビジョンの専門家にとって非常に貴重なツールとなっています。最先端の自動運転プロジェクトに取り組んでいる場合でも、単に研究目的でデータを分析している場合でも、Kangas は仕事を遂行するための完璧なツールです。

・ 終わり ・

幸せな生活

ef77ad2cc22045bd4abbc4fdfdfb14f5.png

おすすめ

転載: blog.csdn.net/weixin_38739735/article/details/130776454