Pixels Databricks 医疗影像大规模处理方案技术分析

一、新闻概述

1. 标题

Pixels:Databricks 开源医疗影像处理解决方案加速器

2. 发布时间

2022 年 11 月 18 日(首次发布),持续更新中

3. 来源

Databricks Industry Solutions GitHub 仓库

二、核心内容

1. 事件摘要

A. 主要内容

Databricks 发布了名为 Pixels 的开源解决方案加速器,专注于医疗影像领域的大规模数据处理。该工具基于 Apache Spark 和 Delta Lake 构建,能够将海量 DICOM 医学影像文件转换为可查询的结构化数据。

B. 核心亮点

  • 支持 DICOM 标准医学影像的分布式处理
  • 集成 Spark 和 Delta Lake 实现可扩展元数据提取
  • 内置 OHIF Viewer 实现医学影像可视化
  • 支持增量处理和自动解压缩功能
  • 完全集成 Databricks Unity Catalog

2. 关键信息

A. 技术栈

  • Apache Spark(分布式计算框架)
  • Delta Lake(数据湖技术)
  • pydicom(DICOM 文件解析库)
  • python-gdcm(GDCM C++ 库的 Python 封装)
  • OHIF Viewer(开源医学影像查看器)

B. 核心功能

  • 影像目录编目和元数据提取
  • 缩略图自动生成
  • SQL 可访问的元数据查询
  • 多核多节点并行处理

C. 应用场景

  • 放射科影像分析(X 光、CT、MRI)
  • 心脏影像处理
  • 乳腺 X 光检查分析
  • 眼科和牙科影像处理

三、详细报道

1. 主要内容

A. 技术架构

Pixels 采用分布式架构设计,通过 Spark 实现大规模并行处理。其核心组件包括:

  1. Catalog 类:负责影像文件的扫描和编目
  2. DicomMetaExtractor:提取 DICOM 文件元数据
  3. DicomThumbnailExtractor:生成影像缩略图
  4. OHIF Viewer:提供 Web 端可视化能力
graph TB
    A[原始 DICOM 文件存储] -->|Catalog 编目| B[Spark 分布式集群]
    B -->|DicomMetaExtractor| C[元数据 DataFrame]
    B -->|DicomThumbnailExtractor| D[缩略图 DataFrame]
    C -->|Delta Lake| E[数据湖存储]
    D -->|Delta Lake| E
    E -->|SQL 查询| F[分析应用]
    E -->|OHIF Viewer| G[Web 可视化]
    H[Unity Catalog] -->|数据治理| E

mermaid

Pixels 技术架构图

B. 工作流程

Pixels 的数据处理流程分为四个阶段:

  1. 文件发现阶段:Catalog 类扫描指定路径下的所有 DICOM 文件
  2. 元数据提取阶段:使用 pydicom 库解析 DICOM 头信息
  3. 缩略图生成阶段:生成影像的预览图用于快速浏览
  4. 持久化阶段:将处理结果保存到 Delta Lake 供 SQL 查询
sequenceDiagram
    participant U as 用户
    participant C as Catalog
    participant S as Spark 集群
    participant D as Delta Lake
    participant V as OHIF Viewer

    U->>C: 1. 指定文件路径
    C->>S: 2. 扫描 DICOM 文件
    S-->>C: 3. 返回文件列表 DataFrame
    U->>C: 4. 调用 DicomMetaExtractor
    C->>S: 5. 分布式提取元数据
    S-->>C: 6. 元数据 DataFrame
    U->>C: 7. 调用 DicomThumbnailExtractor
    C->>S: 8. 生成缩略图
    S-->>C: 9. 缩略图 DataFrame
    C->>D: 10. 保存到 Delta Lake
    D-->>V: 11. 提供数据访问
    V-->>U: 12. Web 可视化展示

mermaid

Pixels 工作流程时序图

C. Python 类设计

Pixels 采用面向对象设计,核心 Transformer 基类定义了统一的数据转换接口:

classDiagram
    class Transformer {
        +transform(df): DataFrame
        -_with_path_meta(): DataFrame
    }
    Transformer <|-- DicomMetaExtractor
    Transformer <|-- DicomThumbnailExtractor
    Transformer <|-- DicomPillowThumbnailExtractor
    Transformer <|-- DicomPatcher
    Transformer <|-- PathExtractor
    Transformer <|-- TagExtractor

    class Catalog {
        Catalog(path, table): Catalog
        +catalog(path): DataFrame
        +load(): DataFrame
        +save(df)
    }

    DicomMetaExtractor --> Catalog
    DicomMetaExtractor ..> pydicom
    DicomThumbnailExtractor ..> pydicom

mermaid

Pixels 类设计图

2. 技术细节

A. 数据模型

Pixels 的核心数据模型由 object_catalog 表定义,包含以下关键字段:

字段名类型说明
rowIdbigint生成的唯一标识符
pathstring对象文件的绝对路径
modificationTimetimestamp文件修改时间戳
lengthbigint文件大小(字节)
relative_pathstring相对于编目基础路径的相对路径
local_pathstringPython UDF 使用的转换路径
extensionstring文件扩展名
path_tagsarray_string路径按分隔符拆分的标签数组
metastring文件头元数据的 JSON 字符串
is_anonboolean是否为匿名访问(无凭证)
thumbnailbinary缩略图二进制数据或结构体

B. 增量处理机制

Pixels 支持 AutoLoader 功能实现增量数据处理,通过设置 checkpoint 保存处理进度:

catalog_df = catalog.catalog(
    path,
    streaming=True,
    streamCheckpointBasePath=<checkpointPath>
)

这种设计允许持续监控新文件到达并自动处理,适合医疗影像持续产生的场景。

C. 自动解压功能

内置的 ZIP 文件自动解压功能简化了压缩影像包的处理:

catalog_df = catalog.catalog(
    path,
    extractZip=True,
    extractZipBasePath=<unzipPath>
)

3. 数据与事实

A. 性能特点

  • 分布式处理:利用 Spark 的多节点并行能力,可处理数百万影像文件
  • Delta Engine 加速:利用 Delta Lake 的优化引擎加速元数据分析
  • 可扩展性:支持水平扩展,处理能力随集群规模线性增长

B. 依赖库许可证

库名用途许可证
dbx.pixelsSpark 大规模影像处理Databricks
pydicomDICOM 文件读取封装MIT
python-gdcmGDCM C++ 库安装Apache Software License (BSD)
gdcmDICOM 文件解析BSD
OHIF Viewers医学影像查看器MIT

四、影响分析

1. 行业影响

A. 医疗影像数字化

Pixels 为医疗机构的影像数字化转型提供了开源工具链,降低了大规模影像处理的技术门槛。

B. 数据湖技术在医疗领域的应用

该项目展示了 Delta Lake 在医疗数据管理中的应用潜力,推动了数据湖技术向专业垂直领域渗透。

2. 用户影响

A. 医疗机构

  • 降低影像数据管理和分析成本
  • 提高影像数据利用效率
  • 支持基于 SQL 的灵活查询和分析

B. 研究人员

  • 提供大规模医学影像数据集的处理能力
  • 支持深度学习模型的训练数据准备
  • 简化影像预处理流程

3. 技术趋势

A. 医疗数据民主化

开源工具的出现降低了医疗数据分析的技术门槛,使更多机构能够利用先进的数据处理技术。

B. 云原生医疗应用

与 Databricks 和 Unity Catalog 的深度集成,体现了医疗应用向云原生架构演进的趋势。

五、各方反应

1. 官方立场

Databricks 将 Pixels 定位为行业解决方案加速器(Solution Accelerator),展示了其在垂直行业的技术实力。

2. 技术社区

该项目在 GitHub 上获得关注,为医疗 AI 和医学影像分析领域提供了新的工具选择。

3. 用户反馈

开源社区对将 Spark 分布式计算应用于医学影像处理的创新方案表示认可。

六、技术优势与局限

1. 技术优势

A. 大规模处理能力

基于 Spark 的分布式架构,可处理医疗机构产生的海量影像数据。

B. 与 Databricks 生态深度集成

充分利用 Delta Lake、Unity Catalog 等组件,提供完整的数据治理能力。

C. 标准兼容性

完全支持 DICOM 国际标准(ISO 12052),确保与现有医疗设备和系统的兼容性。

2. 当前局限

A. 依赖 Databricks 平台

当前实现与 Databricks 运行时紧密耦合,限制了在其他 Spark 环境的使用。

B. Unity Catalog 访问模式限制

使用 UC Volumes 时需要单用户访问模式集群,因为 UDF 在共享访问模式下无法访问 UC Volumes。

七、使用场景示例

1. 乳腺 X 光检查分析

from dbx.pixels import Catalog
from dbx.pixels.dicom import *

# 创建目录
catalog = Catalog(spark)
catalog_df = catalog.catalog('/Volumes/mammography_db/raw/images/')

# 提取元数据
meta_df = DicomMetaExtractor(catalog).transform(catalog_df)

# 生成缩略图
thumbnail_df = DicomThumbnailExtractor().transform(meta_df)

# 保存供 SQL 查询
catalog.save(thumbnail_df)

2. CT 影像批量处理

通过 OHIF Viewer,医生可以快速浏览和处理大量 CT 影像,支持多层面可视化。

八、未来发展方向

1. 平台解耦

未来可能会减少对 Databricks 平台的依赖,支持更多 Spark 发行版。

2. UDF 访问限制解除

随着 Databricks 平台的演进,共享访问模式集群对 UDF 访问 UC Volumes 的限制可能会被解除。

3. 更多影像格式支持

除了 DICOM,未来可能支持更多医学影像格式。

九、参考资料

  1. Pixels GitHub 仓库
  2. DICOM 官方网站
  3. OHIF Viewer 项目
  4. Delta Lake 官方文档
最后修改:2026 年 01 月 22 日
如果觉得我的文章对你有用,请随意赞赏