有没有办法可视化我的图像分类器识别图像的内容/方式?

数据挖掘 张量流
2022-03-03 06:17:19

使用张量流。如果我训练了我的图像分类器,就会有许多黑色素瘤和其他皮肤癌的特写图像。

然后要求它使用经过训练的模型对一张照片进行分类,该照片具有另一个元素,例如手上的黑色素瘤(背景中的其他元素看起来像黑色素瘤,例如具有黑色素瘤图案的假设桌布)。

有没有办法将图像分类器识别为黑色素瘤的内容可视化?输出一个圆圈/突出显示照片中发现的黑色素瘤?

3个回答

当我开始学习深度学习时,这个问题一直在我的脑海中。答案是我所理解的:

在训练阶段:实际上,当我们训练我们的模型时,它通过更新过滤器权重(即通过反向传播的参数)从图像中学习特征。这个训练有素的模型学习泛化输入图像的特征。

在测试阶段:借助更新的权重,现在我们的模型可以理解(这是什么图像)输入图像。

如果您想了解更多详细信息,可以访问以下链接:

Link1 [特别-步骤 4]
Link2 Link3

您正在寻找的是具有“注意机制”的模型。不幸的是,这意味着您必须更改模型并重新训练它。它比简单的图像分类器更复杂,但我可以向你保证,学习它的工作原理是值得的。或者您可以简单地找到实现它的现有存储库。

或者,您可以在包含黑色素瘤的较小图像上训练您的模型。预处理会更重。 然后,您将使用称为滑动窗口的边界框扫描更大的图像您将有每个小图像的概率。

滑动窗口(正式):

建议是:给定一个分类模型F(J)在哪里J是大小的图像w×h您将将此模型应用于图像I[m,n]通过将其切成许多块B[m,n]在哪里

B[m,n]=I[(mw2:m+w2),(nh2:m+h2)]

您将模型应用为F(B[m,n]),m[w,Ww]andn[h,Hh]在哪里WH是宽度和高度I.

需要注意的是,对于 OpenCV 图像,高度实际上是变量(numpy 数组)的第一个坐标。

如果你有平均大小的黑色素瘤图像,你可以通过 mn步长为平均大小的一半。

因此,您可以通过查看来搜索图像的哪些部分被归类为黑色素瘤

H[m,n]=F(B[m,n])
并将其用作二进制掩码来识别黑色素瘤分类的图像部分。

实际上,您不需要重新训练模型,您可以使用反卷积网络(参见Matthew Zeiler 解释本文的视频:可视化和理解深度神经网络)或从本文中获得灵感:解释和理解深度神经网络的方法。