极客前沿

AI 入门实战:从零搭建医学图像去隐私系统

2026-06-21 01:30
freeCodeCamp
查看原文

手把手教你用 Python 生成合成患者数据,训练 AI 自动去除医学图像中的隐私信息。

准备环境:安装 Python 和必备库

首先,你需要一台安装了 Python(一种简单易学的编程语言)的电脑。推荐从 python.org 下载最新版,安装时记得勾选“Add Python to PATH”。

打开终端(Windows 用户打开命令提示符或 PowerShell),输入以下命令安装我们需要的工具:

Tutorial Image
  • pip install faker —— Faker 是一个能自动生成假名字、地址、身份证号等信息的库,用来制造“假患者”。
  • pip install pydicom —— pydicom 用于读取和修改医学图像文件(DICOM 格式)中的元数据。
  • pip install pillow numpy —— 这两个库用来处理图像像素。

如果安装速度慢,可以加上国内镜像源,比如 pip install faker -i https://pypi.tuna.tsinghua.edu.cn/simple

生成假患者信息:用 Faker 创建合成数据

新建一个 Python 文件(比如 generate_phi.py),输入以下代码:

Tutorial Image
from faker import Faker
fake = Faker('zh_CN')  # 生成中文假数据
print(fake.name())      # 打印随机姓名
print(fake.ssn())       # 打印随机身份证号
print(fake.phone_number())  # 打印随机手机号

运行这个文件,你会看到控制台输出了几行随机信息。这就是我们需要的“合成患者隐私信息”(PHI,即受保护的健康信息)。在实际项目中,你可以循环生成几百个假患者,存成一个 CSV 文件备用。

将假信息注入医学图像

医学图像通常包含两部分隐私:一是图像上直接显示的文字(比如姓名、日期),二是藏在文件头(DICOM 元数据)里的字段。下面我们分别操作。

Tutorial Image

1. 在图像像素上添加文字

用 Pillow 库在图片上绘制文字,模拟医院超声设备在画面上叠加的患者信息:

from PIL import Image, ImageDraw, ImageFont
img = Image.open('ultrasound.png')
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('simhei.ttf', 30)  # 需要中文字体文件
draw.text((50, 50), fake.name(), fill='white', font=font)
img.save('ultrasound_with_phi.png')

2. 修改 DICOM 文件头

用 pydicom 读取一个真实的 DICOM 文件(比如从公开数据集 OpenPOCUS 获取的超声图像),然后替换其中的隐私字段:

Tutorial Image
import pydicom
ds = pydicom.dcmread('sample.dcm')
ds.PatientName = fake.name()
ds.PatientID = fake.ssn()
ds.save_as('sample_with_phi.dcm')

这样,我们就得到了一个“假隐私”的医学图像,可以用来测试去隐私 AI 模型。

验证效果:确认数据可用

最后一步,检查生成的图像是否正常:

  • 打开修改后的图片,确认文字位置和内容正确。
  • 用 pydicom 读取新 DICOM 文件,打印 ds.PatientName,看看是否变成了你设置的假名。

至此,你已经成功搭建了一个合成数据生成管道!下一步可以尝试用这些数据训练一个简单的目标检测模型(比如 YOLO),让它学会自动找到并抹掉图像中的文字。

内容来源

freeCodeCamp

发布时间

2026-06-21 01:30

返回 AI技术