🫐Python显微外周血细胞图像增强颜色变换4种多层感知分类器
Python | 血细胞 | 增强颜色 | 多层感知 | 分类器 | 分类变量 | scikit-learn | Matplotlib | 数据集 | NumPy | Pandas | seaborn | 主成分分析(PCA) | 特征 | 相全性 | 灰度变换 | 颜色重新对齐和拉伸
显微外周血细胞图像数据
正常外周血数据集包含总共 17,092 个单个细胞的图像,这些图像是使用分析仪 CellaVision DM96 采集的。 所有图像均在颜色空间 RGB 中获得。 图像的格式和大小分别为 jpg 和 360×363 像素,由医院诊所的临床病理学家标记。
数据集特点:
该数据集在基于显微图像的血液学诊断领域非常有用,因为图像具有高质量标准,已由临床病理学专家进行注释,并涵盖了广泛的正常外周血细胞类型。
该数据集可用于执行机器和深度学习模型的训练和测试,以自动分类外周血细胞。
该数据集可用作模型基准测试和比较的公共规范图像集。
该数据集可用作模型权重初始化器。这意味着使用可用的图像来预训练学习模型,可以进一步训练来分类其他类型的异常细胞。
您可以看到以下内容: 背景颜色以及主要目标对象颜色在大多数情况下是相同的(但并非总是如此)! 为了更好地理解为什么这为我们提供了颜色值工程的机会,让我们来看看这些图像占据的 RGB 颜色空间。
这是原始数据集相同 RGB 颜色空间上的三个不同视图。 你可以看到,这个数据集只覆盖了整个立方体的一小部分,即所有 16'777'216 个可能的颜色值。 这为我们现在提供了三个独特的机会:
我们可以通过将 RGB 颜色转换为灰度图像来降低图像复杂性。
我们可以重新对齐和拉伸颜色值,以便 RGB 值更好地填充 RGB 颜色空间。
我们可以重新调整颜色值的方向,使三个立方体轴延伸到最大方差的方向。这最好通过主成分分析(PCA)方法完成。
图像颜色增强
灰度变换
示例:
from skimage.color import rgb2gray
X_tr_gray = rgb2gray(X_tr)[..., None]
X_va_gray = rgb2gray(X_va)[..., None]
X_te_gray = rgb2gray(X_te)[..., None]
gmin_tr = X_tr_gray.min()
X_tr_gray -= gmin_tr
X_va_gray -= gmin_tr
X_te_gray -= gmin_tr
gmax_tr = X_tr_gray.max()
X_tr_gray /= gmax_tr
X_va_gray /= gmax_tr
X_te_gray /= gmax_tr
X_va_gray = np.clip(X_va_gray, 0, 1)
X_te_gray = np.clip(X_te_gray, 0, 1)
X_tr_show = np.concatenate([X_tr_gray, X_tr_gray, X_tr_gray], axis=-1)
for i, view in enumerate([[-45, 10], [40, 80], [60, 10]]):
ax = fig.add_subplot(1, 3, i + 1, projection="3d")
ax.scatter(X_grays[:, 0], X_grays[:, 1], X_grays[:, 2], facecolors=X_grays, s=2)
ax.set_xlabel("R")
ax.set_ylabel("G")
ax.set_zlabel("B")
ax.xaxis.set_ticklabels([])
ax.yaxis.set_ticklabels([])
ax.zaxis.set_ticklabels([])
ax.view_init(azim=view[0], elev=view[1], vertical_axis="z")
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_zlim(0, 1)
plt.suptitle("Colors in Grayscale space", fontsize=20)
plt.show()
颜色重新对齐和拉伸
主成分分析(PCA)变换
特征相关性
图像分类测试
原始图像测试
灰度变换后测试
颜色重新对齐和拉伸后测试
主成分分析(PCA)变换后测试
4类多层感知分类模型
Last updated