当前位置: 首页 > news >正文

Cellpose-SAM 细胞分割实战指南:从单张图到批量处理与自训模型

Cellpose-SAM 细胞分割实战指南:从单张图到批量处理与自训模型

【免费下载链接】cellposea generalist algorithm for cellular segmentation with human-in-the-loop capabilities项目地址: https://gitcode.com/gh_mirrors/ce/cellpose

Cellpose-SAM 是一个开源深度学习细胞分割工具:输入荧光或明场显微图像,它自动计算流向场并输出细胞掩码,同时支持 2D、3D 体积数据以及在自有数据上的微调训练。

三步装好环境,五分钟跑起来 🖥️

Linux、Windows 与 macOS 都支持;8GB 内存即可运行,处理 3D 体积建议 16-32GB,Python 版本推荐 3.12(3.9 与 3.11 也可用)。

创建独立环境并安装带 GUI 的完整版本:

conda create -n cellpose python=3.12 conda activate cellpose python -m pip install 'cellpose[gui]'

不需要图形界面时,最后一行换成python -m pip install cellpose。装完后无需手动下载预训练权重:首次运行会自动拉取并缓存到~/.cellpose/models/

验证 GPU 加速:先装好 NVIDIA 驱动与 CUDA 库,Linux 上通过 pip 安装的 PyTorch 默认即为 GPU 版。打开 GUI 后若GPU复选框被勾选、终端打印出 CUDA 版本号,即说明生效;否则需卸载 CPU 版 torch 后按 PyTorch 官方命令重装,用conda list里 pytorch 版本带cuXX.X字样来确认。

pip 装不上时可用仓库自带的environment.yml直接创建环境:conda env create -f environment.yml

单张图像的五步分割法 🎯

启动图形界面:

python -m cellpose

几秒后窗口打开,终端会打印模型下载日志。随后按五步完成分割:

  1. .tif/.png/.jpg/.gif图像拖入窗口;
  2. 从模型库选预训练模型(内置cytonucleicpsam等),多通道图把细胞质与细胞核通道分到 CHAN1/CHAN2——Cellpose-SAM 对通道顺序不敏感,颠倒也能识别;
  3. calibrate自动估算细胞大小,或直接填写cell diameter(模型训练直径均值约 30px,细胞偏大就填大值);
  4. run segmentation,勾选 MASKS ON 时图像上叠加显示掩码;
  5. 按左右方向键切到文件夹里下一张图继续。

修正结果靠鼠标:右键画 ROI,Ctrl+左键删除错误掩码。结果写在图像旁的_seg.npy文件里——注意跑完模型不会自动落盘,按 Ctrl+S 保存。

Cellpose-SAM 算法总览:网络预测水平/垂直流向场,动态系统让像素"顺着流"汇聚到细胞中心,最终合并为掩码(f 面板)

两个阈值与一个迭代参数

参数默认值调整方向
flow_threshold0.4漏检细胞调高;异形假阳性过多调低
cellprob_threshold0.0漏检调低;暗区假阳性调高
niter随直径自适应长条形细胞不收敛时给到 2000 左右

整文件夹批量处理:CLI 一条命令 ⌨️

GUI 一张张拖图不适合几十张以上的场景,CLI 可一次性处理整个目录:

python -m cellpose --dir ~/images/ --chan 2 --pretrained_model cpsam --diameter 30 --do_3D

运行结束,目录里每个 tiff 旁多一个*_seg.npy。关键参数含义:

  • --chan:待分割通道(0 灰度、1 红、2 绿、3 蓝);
  • --pretrained_model:模型名或完整路径,自训模型同样适用;
  • --do_3D:把多 Z 的 tiff 当 3D 体积处理;
  • --stitch_threshold:按相邻切片掩码 IoU 做缝合而非真 3D,适合 YZ/XZ 切片质量差的数据。

内置四个模型按骨干区分:cpsamcpsam_v2基于 SAM,图块 256×256 不可改,其中 v2 版对低对比区域误检更少;cpdinocpdino-vitb基于 DINOv3,图块默认 384×384,遇超大对象可通过bsize调大。

示例细胞分割输出:输入图像与各模型生成的掩码结果并排对比,可见掩码完整度差异

在 notebook 中把多张同尺寸图像打包成一个数组并调大batch_size,GPU 可跨图共享一个批次的图块,批量吞吐有明显提升。

分割效果不理想时:三个典型症状与对策 📋

细胞个头偏大。模型训练直径覆盖 7.5–120px(均值 30)。偏大的细胞填大diameter,图像会按比例下采样(如填 90 则缩到 1/3 分辨率),精度与速度都受益。

3D 结果破碎或出现环形伪影。开flow3D_smooth,它先对流向场做高斯平滑再跑动态系统;伪影集中在 Z 方向时可传[2, 0, 0]逐轴指定。各向异性体积(Z 向采样比 XY 粗)同时设anisotropy,例如 2.0 表示 Z 向采样密度是 XY 的一半。3D 模式不参考flow_threshold,去假阳性改用min_size

各向切片质量差异大。默认 3D 实为 2.5D 策略:在 YX/YZ/XZ 切片算流向后取平均再三维动力学。GUI 左下角的 orthoview 可检查切片方向;若 YZ/XZ 不可用,关掉do_3D改走stitch_threshold缝合路线。

结果要进 ImageJ 做下游分析时,用 Ctrl+R 保存为标准 ImageJ ROI 格式即可直接导入,仓库还附带imagej_roi_converter.py转换脚本。

动态演示 Python 细胞分割结果到 ImageJ 分析工具链的无缝衔接过程

人机协同训练:把"能用"调到"刚刚好" 🔧

自有细胞系与成像方案下,微调比直接用内置模型更稳。GUI 内置了迭代式训练流程:

  1. 拖入一组风格相近的图像(同细胞类型、同成像协议);
  2. 从模型库选出最接近的内置模型跑一遍;
  3. 手绘加、Ctrl 删减,把掩码修对(自动存入_seg.npy);
  4. Models 菜单选Train new model...(Ctrl+T),选定起点模型并命名;
  5. 训完自动在文件夹下一张图上运行,回到第 3 步继续修正,循环迭代。

训练权重存到图像目录的models/子文件夹,GUI 自定义模型下拉框、CLI、notebook 都能按名字调用。

两个注意点:起点必须是内置cpsam模型;若从自训模型再训,网络会偏向早期图像,建议把待训图像全部放同一文件夹。3D 数据先运行make_train.py切出 YX/YZ/XZ 切片再按 2D 流程训练。

纯命令行训练同样可行,标签文件需与图像成对命名<name>_masks.tif(0=背景,1/2/3…=细胞编号):

python -m cellpose --train --dir ~/images/train/ --test_dir ~/images/test/ --n_epochs 100 --learning_rate 0.00001

结束会打印训练/测试损失曲线,权重落到~/images/train/models/。验证达标后可用cellpose/export.py打包,上传 BioImage.IO 供他人复用。

体积装不进内存:分布式分割 📦

3D 数据超出内存时,cellpose.contrib.distributed_cellpose模块把数据切成重叠块,分块并行分割再拼回完整结果。输入需为 zarr 格式,模块自带单 tiff 或瓦片文件夹转 zarr 的辅助函数;支持前景掩码(跳过纯背景块)、预处理函数列表(高斯平滑、多通道堆叠)以及 LSF 集群调度。

正式跑之前先用process_block(test_mode=True)试算单个块,确认参数无误,再交给distributed_eval处理全量体积。


下一步:在 notebooks/ 目录运行test_Cellpose-SAM.ipynb示例数据验证环境,再按 docs/ 目录逐章深入;遇到问题到项目 issue 区提问。

【免费下载链接】cellposea generalist algorithm for cellular segmentation with human-in-the-loop capabilities项目地址: https://gitcode.com/gh_mirrors/ce/cellpose

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4142732.html

相关文章:

  • 构建弹性AI算力平台:混合云架构与成本优化实践
  • 一台电脑+DCSD电缆读写iPhone系统配置:MagicCFG Reloaded免费完整指南
  • Audacity 免费音频编辑:录音、降噪、混音到导出,5 分钟上手
  • Quil:通过SSH在远程服务器驱动AI编程的轻量级解决方案
  • uni-app X与uni-app究竟有什么不同?
  • 043、表类型与表定义
  • 终端完全指南:从核心概念到高效实践,解决常见问题
  • BETAFPV Configurator 实战:5 分钟跑通遥控器配置与固件刷写桌面工具
  • CEM系统厂商排名视角下:2026学年教育行业学员标签体系与360度画像构建及续报运营
  • ORB-SLAM3 加权误差 马氏距离
  • Book118 文档下载器:免费把网页预览转成 PDF
  • 免费身份证归属地查询 接口实测
  • 容器安全入门:K8s常见基础安全风险通俗解读
  • DeepAgents 通用智能体开发指南
  • SpaceX收购Cursor:AI编程工具进入生态整合新阶段,开发者如何应对?
  • LangMARL:当大语言模型学会团队协作,开启多智能体强化学习新范式
  • CustomThreads:让 Fusion 360 快速生成 3D打印螺纹配置,FDM 也能顺利旋合
  • QModMaster:免费 ModBus 主站调试工具,5 分钟跑通 RTU/TCP 完整路径
  • DDrawCompat:三步让 DirectX 老游戏在 Win11 跑起来
  • Python自动化视频处理:精准提取51秒片段与关键帧序列生成实战
  • 强化学习中的上下文压缩:让智能体学会抓重点,攻克长视野任务难题
  • RobotHelper:免Root安卓自动化框架完整入门指南
  • Android EDLA项目常用网站介绍
  • IPv6 Toolkit 完整指南:17 个命令工具搞定 IPv6 安全评估、地址扫描与故障排查
  • 文档切分算法详解
  • TMSpeech 免费离线语音转文字:完整指南,从装模型到实时字幕
  • 逍遥安卓模拟器(逍遥模拟器)
  • 可循环复用型定制重型纸箱在珠三角制造业的普及前景与落地难点
  • NLP问题--中文分词
  • Iwara4A:用“暴力自动重连“驯服无响应的 Iwara 服务器