如何在图像处理中删除特定数据

我在使用图像数据进行机器学习训练,并使用SIFT算法,但我的数据存在一些问题,其中一些图像的描述符为0。因此,当我完成训练和测试后,结果仅达到56%(显然,这不是我期望的结果)。为了解决这个问题,我决定删除那些描述符为0的图像。然而,我只能从包含图像描述符的images_descriptor数组中删除。我的问题在于,我不知道应该删除哪些图像,以便能够删除它们的’target’。
我的数据形状为: (15000, 64, 64, 3)

到目前为止,我的代码如下:

X = data['data']y = data['targets']#从X(即你的图像数据)中提取SIFT特征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中获取索引,以便我能知道哪些图像的描述符为0,方法是使用np.where。然后我可以从images_descriptor中删除相应的图像,并在y中删除它们。但我得到的结果是: (array([], dtype=int64)


回答:

针对数据中某些图像不包含特征的问题,我提供了一个解决方案,即删除任何不包含特征的数据

def extract_sift_feature(X, y):    images_descriptor = []    filter_images_descriptor = []    NoneType_index_list = []    sift = cv2.SIFT_create()    for i in range(len(X)):        _kp, des = sift.detectAndCompute(X[i], None)        images_descriptor.append(des)        #检查是否有图像的特征描述符为0         if des is None:          NoneType_index_list.append(i)    images_descriptor = np.array(images_descriptor)    #过滤掉特征描述符为0的图像     for i in range(len(images_descriptor)):        if images_descriptor[i] is not None:            filter_images_descriptor.append(images_descriptor[i])    filter_images_descriptor = np.array(filter_images_descriptor)    new_y = np.delete(y, NoneType_index_list)    return filter_images_descriptor, new_y

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注