文章链接:[2004.09666] Data Efficient and Weakly Supervised Computational Pathology on Whole Slide Images (arxiv.org)
代码链接:GitHub - mahmoodlab/CLAM: Data-efficient and weakly supervised computational pathology on whole slide images - Nature Biomedical Engineering
一. openslide-python包的安装
首先创建项目和虚拟环境,然后执行
pip install opslide-python
然后直接import openslide会报错没有ddl,也就是没有链接。
去官网下载
OpenSlide on Windowshttps://openslide.org/docs/windows/
解压缩后放在E:\classify\CLAM\envs\Lib\site-packages目录下,然后把bin里面的ddl复制到E:\classify\CLAM\envs文件夹下:
然后就可以了。
二. pytorch包的安装
查看cuda版本:
nvcc --version
然后去官网下载对应版本:
# CUDA 11.6
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
查看是否可用:
import torch
print(torch.__version__)
# 检查CUDA是否可用
if torch.cuda.is_available():
print("CUDA可用!")
else:
print("CUDA不可用。")
# 获取CUDA设备数量
cuda_device_count = torch.cuda.device_count()
print("CUDA设备数量:", cuda_device_count)
三. h5py的安装
pip install h5py
四. scipy的安装
pip install scipy
五. patch的裁剪和拼接重建
对一张切片执行,提取组织区域,切割为patch并进行重建。
1.mask 文件夹包含分割结果(每张幻灯片一张图像)。
2.patchs 文件夹包含从每张幻灯片中提取的组织补丁的数组(每张幻灯片一个 .h5 文件,其中每个条目对应于补丁的左上角的坐标)
3.stitches 文件夹包含缝合的组织补丁的下采样可视化(一张图像) 每张幻灯片)(可选,不用于下游任务)
4.自动生成的 csv 文件 process_list_autogen.csv 包含已处理的所有幻灯片的列表,以及所使用的分段/修补参数。
六. topk包
git clone https://github.com/oval-group/smooth-topk.git
cd smooth-topk
python setup.py install
或者在github中下载:GitHub - oval-group/smooth-topk: Smooth Loss Functions for Deep Top-k Classification
topk
是一个Python包,用于实现基于top-k损失的机器学习模型。在机器学习中,top-k损失是一种常用的损失函数,通常用于多类别分类问题。它与交叉熵损失类似,但不仅考虑了正确类别的预测概率,还考虑了前k个最高概率的类别。该包提供了Smooth Top-k SVM模型的实现,这是一种基于top-k损失的支持向量机(SVM)模型。Smooth Top-k SVM模型在处理不平衡数据和多类别分类问题时通常表现良好。
from topk.svm import SmoothTop1SVM
七. 一些其他的东西
img_med = cv2.medianBlur(img_hsv[:,:,1], mthresh)
在这行代码中,img_hsv[:,:,1]
是一个二维数组,表示了 HSV 颜色空间中的饱和度通道的图像数据。mthresh
参数指定了中值滤波器的卷积核大小。这样,medianBlur
函数将对饱和度通道的图像数据进行中值滤波处理,并将结果保存在 img_med
变量中。
在图像处理中,特别是在颜色图像处理中,通常选择在亮度(Value)和饱和度(Saturation)通道上执行滤波操作,而不是在色调(Hue)通道上进行操作。这是因为:
-
饱和度通道保留了图像的结构信息:在 HSV 颜色空间中,饱和度通道表示了颜色的纯度或灰度程度。由于它保留了图像的结构信息,因此对饱和度通道进行滤波操作可以保持图像的边缘和轮廓。
-
饱和度通道对噪声相对不敏感:饱和度通道通常对光照变化和噪声具有较高的容忍度,因此在这个通道上执行滤波操作可以有效地减少图像中的噪声,而不会显著影响图像的质量和结构。
-
亮度通道可能受光照变化影响较大:在某些情况下,图像的亮度通道可能会受到光照变化的影响,这可能会导致在亮度通道上执行滤波操作时丢失一些细节或产生不良效果。
因此,通常建议在饱和度通道上执行滤波操作,以保留图像的结构信息并减少噪声。
八. 错误提示处理
“future” 模块:“future” 是一个 Python 模块,用于帮助实现 Python 2 和 Python 3 之间的兼容性。在 Python 2 中,一些功能和语法与 Python 3 不同。“future” 模块提供了一种方式,使得你可以在 Python 2 中使用类似于 Python 3 的功能。
pip install future
torch.inference_mode(): 是一个在 PyTorch 1.9 版本中新增的函数。它用于启用推理模式,以便在不计算梯度的情况下进行前向传播。在旧版本的 PyTorch 中运行,可以使用torch.no_grad()来替代 torch.inference_mode()