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