news 2026/8/21 21:16:52

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 21:15:06

构建弹性AI算力平台:混合云架构与成本优化实践

在AI算力需求持续爆发的背景下&#xff0c;大型科技公司与芯片巨头之间的合作与博弈&#xff0c;深刻影响着全球数据中心基础设施的布局与投资。近期&#xff0c;关于英伟达调整其与OpenAI在俄亥俄州数据中心项目合作细节的消息&#xff0c;引发了业界对AI基础设施供应链、成本…

作者头像 李华
网站建设 2026/8/21 21:12:23

Audacity 免费音频编辑:录音、降噪、混音到导出,5 分钟上手

Audacity 免费音频编辑&#xff1a;录音、降噪、混音到导出&#xff0c;5 分钟上手 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 采访录音带着机箱风扇声&#xff0c;播客剪辑要处理上百处口水音——而商业 DAW…

作者头像 李华
网站建设 2026/8/21 21:12:07

Quil:通过SSH在远程服务器驱动AI编程的轻量级解决方案

在本地开发环境资源有限&#xff0c;或者需要利用云端强大算力进行AI辅助编程时&#xff0c;你是否想过能像在本地IDE中一样&#xff0c;无缝地驱动一个AI编码助手在远程服务器上工作&#xff1f;传统的远程开发往往需要复杂的IDE插件配置和网络设置&#xff0c;而 Quil 的出…

作者头像 李华
网站建设 2026/8/21 21:10:57

uni-app X与uni-app究竟有什么不同?

uni-app 经典版与 uni-app x 是 DCloud 推出的两代跨平台开发框架。 1. 核心架构与渲染机制对比 (Architecture) 维度uni-app (经典版)uni-app x (下一代原生引擎)App端渲染引擎混合渲染&#xff08;Webview / Vue / nvue 混合&#xff09;纯原生渲染 (No WebView&#xff0c;…

作者头像 李华
网站建设 2026/8/21 21:10:52

043、表类型与表定义

043、表类型与表定义 昨天半夜被一个实习生拉去排障&#xff0c;程序逻辑看起来完全没问题&#xff0c;数据也没问题&#xff0c;就是把一条记录INSERT到内表的时候&#xff0c;运行时直接dump了。报错是ITAB_ILLEGAL_SORT_ORDER。我一看&#xff0c;这哥们用的内表是SORTED类…

作者头像 李华