画像データがあり、SIFT を使用して機械学習をトレーニングするために使用していますが、データに問題があり、一部の画像には画像記述子が含まれていません。そのため、トレーニングとテストを終えたときの結果は 56% しかありません (もちろん、期待した結果ではありません)。この問題を解決するために、イメージ ディスクリプタが含まれていないイメージをいくつか削除することにしました。ただし、画像記述子を含む images_descriptor 配列からのみ削除できます。ここでの問題は、どの画像を削除する必要があるかわからないため、「ターゲット」を削除できることです。
私のデータには形があります:(15000, 64, 64, 3)
これまでの私のコード:
X = data['data']
y = data['targets']
#Extract image descriptor using sift from X(Which is the data of your images)
images_descriptor = extract_sift_feature(X)
index_list = []
filter_images_descriptor = []
for i in range(len(images_descriptor)):
if images_descriptor[i] is not None:
filter_images_descriptor.append(images_descriptor[i])
if images_descriptor[i] is None:
index = np.where(images_descriptor == images_descriptor[i])
index_list.append(index[0])
filter_images_descriptor = np.array(filter_images_descriptor)
images_descriptor からインデックスを取得するためのインデックスを作成しようとしていますnp.where
。images_descriptor
次に、で削除した画像を削除できy
ます。しかし、これに対して受け取る結果は次のとおり(array([], dtype=int64)
です。