ゼロショット学習に基づく画像認識は、従来の画像認識方法とは異なる新しいテクノロジーです。従来の画像認識では、トレーニング データを通じて特徴と分類ルールを学習する必要がありますが、ゼロショット学習ではモデルの事前トレーニングは必要ありません。認識対象となる画像の特徴に基づいてリアルタイムに分類を行うため、高速かつ正確な認識を実現します。 ゼロショット学習による画像認識は、スマートホーム、顔認識、スマートセキュリティなどの分野で広く使用されています。これにより、スマート ホーム デバイスがユーザーのニーズを迅速に特定し、それに応じて対応できるようになります。顔認識では、ゼロショット学習により、特徴に基づいて顔を正確に識別し、認識精度を向上させることができます。インテリジェント セキュリティの分野では、ゼロショット学習は危険なオブジェクトを特定し、より安全で信頼性の高い監視システムを提供するのに役立ちます。 つまり、ゼロショット学習に基づく画像認識技術は高速かつ正確であり、さまざまな分野によりインテリジェントなソリューションを提供します。
ゼロショット画像認識は、主に特徴抽出と分類の 2 つの段階に分かれています。
#特徴抽出段階では、ゼロショット学習画像認識アルゴリズムが、色、形状、テクスチャなど、認識対象の画像内のさまざまな特徴を自動的に分析します。それらをベクトルとして表します。これらのベクトルは、認識され、その後の分類に使用される画像の「指紋」と見なすことができます。#分類段階では、ゼロショット学習画像認識アルゴリズムは特徴ベクトルを使用して、以前に学習したカテゴリ特徴ベクトルと比較し、認識対象の画像に最も近いカテゴリを見つけます。これらのカテゴリ特徴ベクトルは、他の画像から抽出されたものであり、各カテゴリの特徴を表している。新しい画像を認識するとき、ゼロショット学習画像認識アルゴリズムは、各カテゴリの特徴ベクトルとの類似度に基づいて、認識対象の画像を最も近いカテゴリに割り当てます。
ゼロショット学習をより深く理解するために、例を通して説明します。ここでは、50 の異なる動物カテゴリを含む Animals with Attributes 2 (AWA2) データセットを採用し、各カテゴリは 85 の属性で記述されます。 10 カテゴリをトレーニング セットとしてランダムに選択し、残りの 40 カテゴリをテスト セットとして選択しました。モデルのトレーニングには属性ベースのアプローチを使用しました。
まず、必要なライブラリとデータセットをインポートする必要があります。
import numpy as np import pandas as pd import scipy.io as sio from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression # 导入数据集 data = sio.loadmat('data/awa2.mat') train_labels = data['train_labels'].astype(int).squeeze() test_labels = data['test_labels'].astype(int).squeeze() train_attributes = StandardScaler().fit_transform(data['train_attributes']) test_attributes = StandardScaler().fit_transform(data['test_attributes'])
次に、属性の説明を埋め込み空間内のベクトルに変換する必要があります。主成分分析 (PCA) を使用して、属性の説明を埋め込み空間のベクトルに変換します。最初の 10 個の主成分を埋め込みベクトルとして選択します。
from sklearn.decomposition import PCA # 将属性描述转换为嵌入空间中的向量 pca = PCA(n_components=10) train_embed = pca.fit_transform(train_attributes) test_embed = pca.transform(test_attributes)
次に、テスト セット内のカテゴリを予測するために分類器をトレーニングする必要があります。分類器としてロジスティック回帰を使用します。
# 训练分类器 clf = LogisticRegression(random_state=0, max_iter=1000) clf.fit(train_embed, train_labels) # 在测试集上进行预测 predicted_labels = clf.predict(test_embed)
最後に、モデルのパフォーマンスを評価するための精度を計算できます。
# 计算准确率 accuracy = np.mean(predicted_labels == test_labels) print('Accuracy:', accuracy)
この例では、属性ベースのアプローチを使用してモデルをトレーニングし、最初の 10 個の主成分を埋め込みベクトルとして選択しました。最終的に、テスト セットで精度 0.55 のモデルが得られました。
以上がゼロベース画像認識の学習方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。