如何用 Cell-DINO ViT-L/16 对 HPA-FoV 示例图像完成推理并提取特征?
发布时间:2026/9/15 15:12:30 锦皓数字建站

如何用 Cell-DINO ViT-L/16 对 HPA-FoV 示例图像完成推理并提取特征【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2dinov2 仓库中的 Cell-DINO 提供了面向细胞荧光显微图像的自监督预训练模型仓库自带的 notebooks/cell_dino/inference.ipynb 就包含一个现成的 HPA-FoV 推理示例用torch.hub.load加载在 HPA Field of View 数据上预训练的 ViT-L/16 骨干网络cell_dino_hpa_vitl16读取一张 4 通道的 HPA-FoV 示例图像按训练时的方式归一化得到该图像的特征张量并可进一步按线性评估的方式提取多层特征。下面按 docs/README_CELL_DINO.md、README 中 “DINOv2 for Biology” 章节和该 notebook 的实际内容给出这条路径的完整执行步骤。准备条件环境、模型权重与示例图像构建 Python 环境Cell-DINO 的安装说明见 docs/README_CELL_DINO.md可以直接遵循 DINOv2 README 的安装步骤或按其给出的命令构建 Python 3.10 环境在仓库根目录执行conda create -n py310 python3.10 conda activate py310 pip install -r requirements.txt pip install -U scikit-learn主 README 建议使用带 CUDA 支持的 PyTorch 安装 PyTorch加载模型时唯一的必需依赖notebook 中推理设备写为DEVICE cuda:0因此本机需要可用的 NVIDIA GPU。获取 HPA-FoV 预训练权重Cell-DINO 权重不提供直接下载链接需要按 README 说明申请打开 README “DINOv2 for Biology” 章节给出的申请地址 https://ai.meta.com/resources/models-and-libraries/cell-dino-downloads/ 提交请求申请被接受后会收到一封邮件内含全部可用模型权重的 URL 列表这些 URL 有两种用法先用wget下载到本地文件系统再通过pretrained_path指向本地权重或者在torch.hub.load()中通过pretrained_url直接在线下载加载README 特别要求请用wget而不是网页浏览器下载权重文件。Cell-DINO 共发布了四个模型HPA 单细胞、HPA Field of View、HPA Field of View 更大分辨率ViT-L/14、以及 cell painting 组合数据各一个。本文任务只需要其中的HPA Field of View那个权重对应 notebook 中的FOVurl变量或下载后的本地文件。准备示例图像README 说明 HPA-FoV 数据集目录下包含三张示例图像sample_images就是为快速测试推理准备的无需下载完整数据集。notebook 使用的示例文件名为HPA_FoV_00070df0-bbc3-11e8-b2bc-ac1f6b6435d0.png把这张图像放入自己选定的目录并在代码中把该目录路径赋给SAMPLE_IMAGES_DIRnotebook 示例值为sample_images/。加载 Cell-DINO ViT-L/16HPA-FoV 权重模型入口函数cell_dino_hpa_vitl16定义在 dinov2/hub/cell_dino/backbones.pyvit_large架构、patch size 16、image size 224输入通道默认 4与 HPA 图像通道数一致。notebook 中通过本地仓库加载REPO_DIR是 dinov2 仓库的本地目录import torch REPO_DIR # 替换为 dinov2 仓库所在本地目录 # 方式一用邮件中的 URL 直接在线下载并加载 cell_dino_vitl16_fov torch.hub.load(REPO_DIR, cell_dino_hpa_vitl16, sourcelocal, pretrained_urlFOVurl) # 方式二先用 wget 下载到本地再用本地路径加载 cell_dino_vitl16_fov torch.hub.load(REPO_DIR, cell_dino_hpa_vitl16, sourcelocal, pretrained_pathCHECKPOINT/PATH)FOVurl替换为邮件中 HPA Field of View 模型对应的 URLCHECKPOINT/PATH替换为已下载权重文件的本地路径两种方式二选一即可。notebook 的同一单元格里还加载了 cell painting 的 ViT-S/8 和 HPA 单细胞的 ViT-L/16本任务用不到可以省略。推理读取图像、归一化并提取特征import torch import torchvision from functools import partial DEVICE cuda:0 class self_normalize(object): def __call__(self, x): x x / 255 m x.mean((-2, -1), keepdimTrue) s x.std((-2, -1), unbiasedFalse, keepdimTrue) x - m x / s 1e-7 return x normalize self_normalize() # 1- Read one human protein atlas HPA-FoV image (4 channels) img torchvision.io.read_image(SAMPLE_IMAGES_DIR HPA_FoV_00070df0-bbc3-11e8-b2bc-ac1f6b6435d0.png) # 2- Normalise image as it was done for training img_hpa_fov img.unsqueeze(0).to(deviceDEVICE) img_hpa_fov normalize(img_hpa_fov) # 3- Load model cell_dino_model cell_dino_vitl16_fov cell_dino_model.to(deviceDEVICE) cell_dino_model.eval() # 4- Inference features cell_dino_model(img_hpa_fov) print(features)几点执行要点self_normalize是 notebook 注释中说明的“训练时使用的归一化”像素先除以 255再对每张图像做逐通道的均值/方差归一化方差使用unbiasedFalse分母加1e-7防除零。请原样保留不要替换成其它归一化方式。img.unsqueeze(0)是补上 batch 维度图像读取后按torchvision.io.read_image的默认 dtype 处理。结果验证print(features)会打印模型前向输出的特征张量这就是该 HPA-FoV 图像经 Cell-DINO ViT-L/16 提取的特征。notebook 的 HPA 单细胞示例中还给出了保存特征的写法如需落盘可参考torch.save(features.cpu(), sample_features_hpa.pt)。可选按线性评估方式提取多层特征如果后续要做线性评估notebook 提供了对应的特征提取写法标注为 Optional从骨干网络取最后若干层中间特征from dinov2.eval.utils import ModelWithIntermediateLayers autocast_ctx partial(torch.cuda.amp.autocast, enabledTrue, dtypetorch.float) model_with_interm_layers ModelWithIntermediateLayers(cell_dino_model, 4, autocast_ctx) features_with_interm_layers model_with_interm_layers(img_hpa_fov)ModelWithIntermediateLayersdinov2/eval/utils.py内部调用get_intermediate_layers(..., return_class_tokenTrue)第二个参数4是参与特征提取的末层 block 数输出包含 class token 的中间层特征供线性评估使用。边界与注意事项输入通道数cell_dino_hpa_vitl16默认in_channels4只适用于 4 通道的 HPA 图像notebook 中的示例图像即为一幅 4 通道 HPA-FoV 图像。cell painting 的 5 通道图像需要使用另一个模型ViT-S/8并按 notebook 中对应单元格的通道拼接方式处理不属于本任务。权重 URL 是申请通过后以邮件形式下发的且 README 要求用wget下载不要在浏览器中直接保存。Cell-DINO 的代码与模型权重仅供科研使用不得用于医疗诊断等临床用途代码采用 CC BY-NC 许可见 LICENSE_CELL_DINO_CODE权重采用 FAIR Non-Commercial Research 许可见 LICENSE_CELL_DINO_MODELS。本文的示例图像、文件名与权重获取流程均来自 docs/README_CELL_DINO.md、README 及 notebooks/cell_dino/inference.ipynb如果你的权重版本或目录结构与 notebook 不一致只需替换FOVurl/CHECKPOINT/PATH与SAMPLE_IMAGES_DIR这几个值代码主体不变。【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。