问题标签 [image-classification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9548 浏览

python - 图像生成器中的错误:要求检索元素 0,但序列的长度为 0

  • 我正在尝试计算二进制类彩色图像分类问题中的真阳性、真阴性、假阳性、假阴性比率

  • 我有二进制类、面部和背景彩色图像,我必须使用 MLP 对它们进行分类。

我的问题是:我收到错误:

ValueError:要求检索元素 0,但序列的长度为 0

编辑:完整回溯

  • 在尝试分别从 2 个类预测每个文件夹时(而不是包含 2 个文件夹的根文件夹,每个类一个用于训练)

我产生错误的代码是:

0 投票
2 回答
140 浏览

image - 图像像素包含什么信息?

对于彩色图像,比如尺寸为 320 x 240,我们在图像中有 76,800 个像素。彩色图像的每个像素代表什么?它只是该像素的RGB值吗?形状和纹理如何以像素表示?如果彩色图像中的每个像素只包含 RGB 值,那么这些信息是否足以存储图像中对象的形状、大小和纹理?

0 投票
1 回答
319 浏览

python - 如何获得 Keras 模型的 F-1 准确率和混淆矩阵?

我有一个名为 train 的文件夹,其中有三个单独的文件夹,分别是“Covid”、“Pneumonia”、“Healthy”。我使用迁移学习创建了 VGG19 模型。我需要帮助为我的测试数据创建混淆矩阵。我已将我的火车数据拆分为 75%、25%。我已经尝试了一切来创建混淆矩阵并计算 F-1 分数。如果有人向我提供代码,那就太好了,因为我是新手。

0 投票
0 回答
60 浏览

machine-learning - 运行 keras 模型 VGG16,InceptionV3 总是出现 ValueError 错误:形状 (None, 1) 和 (None, 8, 8, 5) 不兼容

我已经尝试了数百次,尝试重塑X_train,y_train,无论如何,仍然返回这个错误。我尝试使用自己的基本 CNN 模型,效果很好,但使用迁移学习模型时,总是出错。我确定问题出在输入形状上,但无法解决。我提前感谢您的帮助。

这是输入形状:X_train.shape, y_train.shape

(994, 256, 256, 3), (994,)

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
55 浏览

python - 将图片矢量化以传递给分类器

我按照本教程创建了一个简单的图像分类:

https://blog.hyperiondev.com/index.php/2019/02/18/machine-learning/

在训练之前,我们对数据集中的图片进行矢量化,如下所示:

完成训练后,我想上传另一张图片(不在数据集中)并将其传递给分类器以检查它是否被预测(连同它的准确度分数)

但是我怎么能通过图片呢?我试过这个:

并得到一个错误:

那么,由于我没有单独的 x,y 值,因此如何对其进行矢量化。

0 投票
1 回答
396 浏览

c++ - 为 TensorFlow Lite C++ 编写 read_jpeg 和 decode_jpeg 函数

TensorFlow Lite 在他们的 repo 中有一个很好的 C++ 图像分类示例,在这里。但是,我正在使用 .jpeg 并且此示例仅限于使用bitmap_helpers.cc解码 .bmp 图像。

我正在尝试创建自己的 jpeg 解码器,但我并不精通图像处理,因此可以使用一些帮助。我正在重用这个 jpeg 解码器作为第三方帮助库。在示例的 bmp 解码中,我不太明白计算row_sizes并在header 之后获取字节数组是怎么回事。谁能阐明这将如何适用于 jpeg 解码器?或者,更好的是,是否已经有一个 C++ decode_jpeg 函数隐藏在我没有找到的某个地方?

最终实现必须在 C++ 中的 TensorFlow Lite 中。

太感谢了!

编辑:

以下是我到目前为止所拥有的。当我对相同的输入图像和 tflite 模型使用图像分类器的 Python 示例时,我没有得到相同的置信度值,因此这清楚地表明存在问题。我基本上从 read_bmp 复制并粘贴了 row_size 计算而不理解它,所以我怀疑这可能是问题所在。row_size 代表什么?

0 投票
1 回答
1497 浏览

python - Keras 如何对方法 flow_from_directory 中的数据进行洗牌?

我正在 Keras 中使用 CNN 训练、验证和测试图像分类器。我正在使用 flow_from_directory 生成训练、验证和测试数据集。

问题是,在 test_datagen 中,当我将 shuffle 标志设为 True 时,准确性下降,系统似乎没有给出任何好的结果,但我在训练和验证生成器中保持 shuffle = True。生成器如下:

训练和验证数据生成器:

测试数据生成器如下:

对于模型.预测:

  1. shuffle= False结果如下:

精度:0.6472019464720195

  1. shuffle= True结果如下:

精度:0.30170316301703165

如果有人能解释这种行为,我将不胜感激

0 投票
1 回答
29 浏览

deep-learning - 我们在哪里将标签传递给 CNN 图像分类器?

我有一个简单而基本的问题。当我们训练一个图像分类器模型(即使用 CNN)时,我们究竟在哪里告诉模型这是一只猫还是一只狗?在反向传播之前,模型知道它是狗还是猫,因为它正在相应地安排新的权重。我们的数据被标记,但我们没有读取或传递这些信息到网络。我正在使用更复杂的图像字幕。感谢您的澄清,在此先感谢您!

0 投票
1 回答
1095 浏览

tensorflow - 使用使用 make_image_classifier 创建的模型时在 TensorFlow Lite C API 中调整输入尺寸

抱歉,如果这个问题看起来很熟悉,我之前已经发布了更广泛的问题描述,但我已经删除了它,因为我在调查中取得了一些进展并且可以缩小到更具体的问题。

语境:

  • 我正在使用make_image_classifier.
  • 我想使用 C API 来加载生成的模型和标签图像。我在这里遇到数据输入问题。
  • 我可以使用label_image.py 示例标记图像,因此模型很好,问题在于我对 C API 的使用。
  • 如果我理解make_image_classifier正确,它会生成一个需要 4 维输入的模型。我们正在处理超出宽度、高度和通道的图像,我不知道第 4 维是什么。这种缺乏理解可能是我问题的根源。
  • 我在代码中包含了一些错误处理,并且在调整大小后尝试从输入缓冲区复制时发生了我遇到的错误。

问题:

Q1:为什么生成的模型make_image_classifier需要 4 维输入?有高度、宽度和通道,但第四个是什么?

当我使用 C API 执行以下操作以使用我的图像输入运行模型时:

我得到:

所以我最终做了:

据我所知,第一个维度大小用于批量大小,以防我要处理多个图像。它是否正确?

Q2:我应该在调用时使用相同的维度结构来构建我的数据输入TfLiteInterpreterResizeInputTensor吗?我得到这个图像RGB输入缓冲区的错误:

在构建一个模仿给定的输入维度的输入时,我也会遇到错误TfLiteInterpreterResizeInputTensor,但这似乎很愚蠢:

最后一个输入结构类似于 Pythonlabel_image.py在执行此操作时使用的输入结构:

Q3:我的输入缓冲区有什么问题导致TfLiteTensorCopyFromBuffer返回错误代码?

谢谢!

完整代码:

编辑#1:好的,所以在里面TfLiteTensorCopyFromBuffer

我的input_data_size值为 150,528(3 通道 x 224 像素高 x 224 像素宽),但tensor->bytes为 602,112(3 通道 x 448 像素高 x 224 像素 448,我假设?)。我不明白这种差异,尤其是因为我调用TfLiteInterpreterResizeInputTensor{1, 224, 224, 3}.

编辑#2:我相信我在这里找到了答案。确认后将解决此帖子。

0 投票
1 回答
59 浏览

pytorch - 为什么一些 vanilla RNN 初始化为带有 sequence_length=1 的隐藏状态以用于 mnist 图像分类

我遇到了几个使用 RNN 对 MNIST 数字进行分类的示例,使用 sequence_length=1 初始化隐藏状态的原因是什么?如果您正在对视频帧预测进行 1 步预测,您将如何初始化它?

输入通常表示为

在上面的示例中,图像是按列传递的吗?是否有另一种方法来表示 RNN 中的输入图像?它与如何初始化隐藏状态有什么关系?